Die Konfiguration der Module wurde laut Contiki Port. @ANY durchgeführt. Zusätzlich wurde das Contiki SNMP aus SNMP Contiki 2.6 auf die Module angepasst und zu den Contiki Autostart-Prozessen hinzugefügt (siehe SNMP ANS Module).
Die maximale Entfernung wurde mithilfe von ping6
ermittelt. Dazu wurde der räumliche Abstand langsam vergrößert während im zeitlichen Abstand von eine Sekunde solange eine PING Nachricht versendet wurde, bis irgendwann keine Antwortnachricht mehr gemessen wurde. Zur Durchführung wurden vollständig geladene Akkus mit 800mAh des Herstellers VARTA verwendet.
max. Abstand: 80m
→ Die Messung wurde auf Freier Strecke durchgeführt.
max Abstand: 57m
→ Messung wurde ebenfalls auf freier Strecke durchgeführt, jedoch wurde prinzipiell erwartet, dass die 900MHz Module eine größere Reichweite als die 2,4GHz Module besitzen. Jedoch muss beachtet werden, dass die 2,4GHz Module einen Sendeverstärker besitzen, welcher in den 900MHz Modulen nicht eingesetzt wird.
→ Zu beachten ist weiterhin, dass sich bei den Versuchen gezeigt hat, dass die Sub-GHz Module gegenüber Störungen viel empfindlicher sind als die 2,4GHz Module. Ein störungsfreier Betrieb war während der Messung nicht möglich, so war es kaum möglich eine Übertragung mit einem Verlust <30% zu erreichen.
→ Messung muss erneut durchgeführt werden, da der verwendete USB Stick nicht korrekt funktioniert. Durch Nutzung eines neuen USB 900MHz USB-Sticks ist die Störanfälligkeit nicht mehr höher als bei den 2,4GHz USB Sticks.
RPL im vermaschten Betrieb zu testen, kann bei großen Reichweiten der einzelnen Knoten sehr aufwendig werden. Deshalb gibt es innerhalb den rf230bb
-Funktreibern die Möglichkeit die Empfangs und Sendestärke der Module zu regulieren. Innerhalb der Datei contiki-conf.h
für den Atmel Raven ist folgender Kommentar zu finden:
/* Define MAX_*X_POWER to reduce tx power and ignore weak rx packets for testing a miniature multihop network.
* Leave undefined for full power and sensitivity.
* tx=0 (3dbm, default) to 15 (-17.2dbm)
* RF230_CONF_AUTOACK sets the extended mode using the energy-detect register with rx=0 (-91dBm) to 84 (-7dBm)
* else the rssi register is used having range 0 (91dBm) to 28 (-10dBm)
* For simplicity RF230_MIN_RX_POWER is based on the energy-detect value and divided by 3 when autoack is not set.
* On the RF230 a reduced rx power threshold will not prevent autoack if enabled and requested.
* These numbers applied to both Raven and Jackdaw give a maximum communication distance of about 15 cm
* and a 10 meter range to a full-sensitivity RF230 sniffer.
#define RF230_MAX_TX_POWER 15
#define RF230_MIN_RX_POWER 30
*/
Diese Makros lassen sich natürlich auch für das Zigbit Modul nutzen. Somit kann der rpl-border-router
sowie das Modul mit den Compilerflags RF230_MAX_TX_POWER
und RF230_MIN_RX_POWER
kompiliert werden. Dadurch ist die Reichweite pro Modul etwa auf 15cm begrenzt. Innerhalb des Makefiles sieht diese Anweisung dann wie folgt aus:
CFLAGS+= -DRF230_MAX_TX_POWER=15 CFLAGS+= -DRF230_MIN_RX_POWER=30
Da innerhalb Sensornetzwerken keine großen Datenströme übertragen werden, ist es sinnvoll die maximale Datenrate mittels ICMP und Echo Requests durchzuführen. Hierbei sind eventuell folgende Hinweise hilfreich:
ping6
erlaubt das Versenden von Nachrichten mit einem Abstand von weniger als 100ms nicht, sollen Übertragungstests mit Paketabstand unterhalb 100ms durchgeführt werden bietet es sich an Ping Paketen abzufangen und mit Scapy zu injizieren. Hierbei müssen entweder die Header Checksummen neu berechnet werden, oder innerhalb den Modulen die Checksummenüberprüfung deaktiviert werden. Dies kann innerhalb der Datei contiki-conf.h
im platform
Ordner geändert werden (#define UIP_CONF_IPV6_CHECKS
).ping6
mit dem size
(-s) Parameter eine Größe von 73 bei 0 Hops und 65 bei >0 Hops verwendet werden. Um zu überprüfen ob auch wirklich die kompletten 102 Byte Nutzdaten pro Frame verwendet werden, kann innerhalb des RPL-Border-Router Quellcodes in der 6lowmac Implementierung der Debug Modus aktiviert werden. Ein Beispiel einer für diese Zwecke modifizierten Datei ist hier siclowmac.c zu betrachten (Änderungen zur Signalisierung der Eingehenden und Ausgehenden Daten ist mit /*sz*/ markiert).