Home

Entwurf und Implementierung eines Sensornetzwerks zur Erfassung

image

Contents

1. 96 Das Klassendiagramm des Client Programms e 97 Tabellenverzeichnis 3 1 Die technischen Daten des MTM CMS000 MSP 0040 15 3 2 Die Architektur verschiedener Betriebssysteme 000080 es 20 3 3 Das Ausf hrungsmodell verschiedener Betriebssystemen 21 3 4 Die Echtzeitf higkeit verschiedener Betriebssysteme 2 2 22 2 2 nme 22 3 5 Eine bersicht ber verschiedene Routingprotokolle 2 004 37 Xi 1 Einleitung Wohn und B ror ume werden meist mithilfe einer Zentralheizung beheizt Hierbei wird an zentraler Stelle ein W rme bertragungsmedium in der Regel Wasser im W rmeerzeuger erhitzt und ber Rohrleitungen zu den Heizfl chen bef rdert Der Weg zu den Heizk rpern wird auch Vorlauf genannt In den Heizk rpern wird die W rme an die Umgebung abgegeben und das erkaltete Medium flie t ber den R cklauf zur ck zum W rmeerzeuger Die Temperatur in den R umen ergibt sich durch die f r alle R ume global am W rmeerzeuger geregelte Vorlauftemperatur und die lokal eingestellten Durchflussraten an den Heizk rpern Die Regelung der Vorlauftemperatur wird von einer durch die Au entemperatur und einen manuell am W rmeerzeuger eingestellten Wert parametrisierten Heizkurve bestimmt Hierbei gilt Je niedriger die Au Bentemperatur umso h her die Vorlauftemperatur und vice versa Der Einstellwert des W rmeerzeugers bestimmt die Stei
2. 3 8 Positionsbestimmung von Sensorknoten CE Emmen 3 8 1 Global Positioning System GPS 2 2 CC Emmen 3 8 2 Bounding Box Verfahren 2 2 2 CC m mm 3 8 3 Spinning Indoor Localization SpinLoc 222 En a 4 Entwurf und Implementierung des Sensornetzwerks 4 1 Technologiesausw hlz r lt lt am a 4 Soe a OE RPS See A ee we a a A Fennen WU os amp Se oe ee BB ea AS rs a en 4 2 1 Entwurf von Directed Diffusion 0 0000 eee eee A Liz Entwurf der Anwendine o 2 4 2 2 a a5 er he eh OMS a HELA aon 4 2 3 Entwurf der Sensordatenerfassung 2 2 2 CC m mn 4 3 Implementierung der Basisstation CC mm 4 4 Implementierung der Sensorknoten 2 2 2 Emm nn nen AAA Etistellunssp ramieter a e ia ee hee Se ea A a 5 Entwurf und Implementierung des PC Programms DE Technolos eauswahl 2 22 222 zu a a ee ee Ss I ee a aves 5 2 Entwurf und Implementierung des Servers Co Coon 5 3 Entwurf und Implementierung des Clients 2 CC Coon OO 13 14 18 18 22 28 30 33 36 38 41 44 45 47 49 52 56 57 58 61 6l 64 65 71 74 75 76 83 85 85 86 93 Vil Inhaltsverzeichnis 54 Der DebUescIver vie 4 20 2 A OSE A A OE Se EE 98 6 Evaluation 99 7 Fazit und Ausblick 105 Literaturverzeichnis 107 Anhang 111 A Inhaltsverzeichnis der beiliegenden CD e 111 Vill Abbildungsverzeichnis 2 2 2 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8
3. DGV04 EGEO2 Fira AL KARAKI J N KAMAL A E Routing techniques in wireless sensor networks a survey In IEEE Wireless Communications 11 2004 December Nr 6 S 6 28 AKYILDIZ lan F SU Weilian SANKARASUBRAMANIAM Yogi CAYIRCI Erdal Wi reless sensor networks a survey In Computer networks 38 2002 Nr 4 S 393 422 BACHMAIER Sebastian A UML 2 0 for modeling TinyOS components In G ITG KuVS Fachgespr ch Drahtlose Sensornetze Hamburg 2009 BHATTI Shah CARLSON James DAI Hui DENG Jing ROSE Jeff SHETH Anmol SHUCKER Brian GRUENWALD Charles TORGERSON Adam HAN Richard MANTIS OS an embedded multithreaded operating system for wireless micro sensor platforms In Mob Netw Appl 10 2005 Nr 4 S 563 579 BONNET Philippe CULLER David ESTRIN Deborah GOVINDAN Ramesh HOR TON Mike KANG Jeonghoon LEVIS Philip NACHMAN Lama STANKOVIC Jack SZEWCZYK Rob WELSH Matt WOLISZ Adam TEP 120 TinyOS Alliance Structure 2006 BALDUS Heribert KLABUNDE Karin MUSCH Guido Reliable Set Up of Medical Body Sensor Networks In Wireless Sensor Networks 2004 S 353 363 BOUKERCHE Azzedine Algorithms and Protocols for Wireless Sensor Networks 1 Wiley 2009 BRINKSCHULTE Uwe UNGERER Theo Mikrocontroller und Mikroprozessoren 2 Sprin ger 2007 CULLER David E ESTRIN Deborah SRIVASTAVA Mani B Guest Editors Introduction Overview
4. CARL VON OSSIETZKY universitat OLDENBURG DEPARTMENT F R INFORMATIK SYSTEMSOFTWARE UND VERTEILTE SYSTEME Entwurf und Implementierung eines Sensornetzwerks zur Erfassung eines Temperaturprofils in Wohn und Buroraumen Diplomarbeit 31 Mai 2010 Nils Schr der Uhlhornsweg 5 26129 Oldenburg Erstpr fer Prof Dr Ing Oliver Theel Zweitpr fer Dipl Inform Felix Oppermann Erklarung zur Urheberschaft Hiermit versichere ich dass ich diese Arbeit selbstst ndig verfasst und keine anderen als die angege benen Hilfsmittel und Quellen benutzt habe Oldenburg den 31 Mai 2010 Nils Schr der 1V Funkbasierte Sensornetzwerke erm glichen die Erfassung von Umweltparametern mithilfe von Sensoren und das Steuern angeschlossener Aktoren Hierbei st ein wichtiges Designkriterium das verwendete Netz werkprotokoll welches energieeffizient und fehlertolerant sein muss Anhand des Anwendungsfalls der Temperaturmessung innerhalb von Wohn und B ror umen wird in dieser Arbeit ein solches Sensornetz werk entworfen implementiert und getestet Ebenfalls wird ein GUI Programm zur Messdatenbetrachtung und berwachung des Sensornetzwerks vorgestellt Wireless Sensor Networks permit to collect environmental parameters by using sensors and to control connected actuators An important criterion of design is the use of a network protocol that has to be energy efficient and fault tolerant Within this thesis such a sensor network is design
5. Ja a Mit dem Start Stop Timer wird gepr ft ob Interessen ab sofort be b Der Interessentimer l st aus und alle ansthen dient werden sollen oder ein Interesse abgearbeitet wurde den Interessen werden bedient Abbildung 4 4 Die Flussdiagramme des Systems zur Interessenbedienung Es wird zun chst der Eventhandler des Start Stop Timers n her betrachtet vergleiche hierzu das Fluss diagramm in Abbildung 4 4 a Dieser ndert nicht nur den Status der Interessen sondern berechnet auch den Zeitpunkt nextShot zu dem die n chste nderung eines Interessenstatus zu erwarten ist Hierdurch feuert der Start Stop Timer immer genau in den Abst nden in denen auch Arbeit ansteht Auch hier wurde wieder auf einen schonenden Ressourcenumgang geachtet Lost der Start Stop Timer aus so wird der erste belegte Eintrag in der Interessentabelle selektiert Wird das Interesse bereits bedient so wird berpr ft ob das Ende der Messung erreicht st Bei Messende wird der Eintrag aus der Interessentabelle gel scht Wenn das Ende noch nicht erreicht ist wird die Zeit bis zum Messende berechnet und mit nextShot verglichen Der Wert von nextShot wird auf die berechnete Zeit gesetzt wenn diese kleiner als nextShot ist Wird das Interesse hingegen noch nicht bedient so wird gepr ft ob der Startzeitpunkt gekommen ist In diesem Fall wird isServed auf true gesetzt und die Zeit bis 69 4 Entwurf und Implementierung des Sensornetzwerks zum Messende m
6. n c n 1 Va 0 499 f z 2 9k tee k n x Der Wert 500 ist gew hlt worden da dies die maximale Anzahl der gleichzeitig darstellbaren Werte des Client Programms ist M chte der Benutzer die Daten genauer betrachten so kann er den Zeitraum der Messung reduzieren Abschie end werden die Messwerte an das Client Programm geschickt Luftfeuchteoffset Spannungsoffset Sensorknoten L 1 Reale Zeit Reale Zeit Reale Zeit Reale Zeit N N Luftfeuchte Spannung Zeitstempel Zeitstempel Zeitstempel Art des Interesses Interessen ID Messaufl sung Abbildung 5 4 Das Entity Relationship Modell der Datenbank zur Speicherung der Messdaten Temperatur Zeitstempel i Adressbereichs beginn N Periodisches Adressbereichs Interesse ende Startzeitpunkt d Endzeitpunkt Nachdem die Funktionsweise des Servers gekl rt wurde fehlt noch die Definition des Datenbankschemas Dieses wird mit dem Entity Relationship Modell in Abbildung 5 4 illustriert Zun chst gibt es eine Tabelle f r die Sensorknoten in der die Sensorknotenadresse und Offsets f r die Sensoren gespeichert werden Der Prim rschl ssel ist die Sensorknotenadresse Dar ber hinaus gibt es je eine Tabelle f r die Messgr en welche die reale Zeit also hierzulande die mitteleurop ische Zeit den Zeitstempel der Messung in der Zeit des Sensornetzwerks und den Messwert
7. 7 Fazit und Ausblick Sensornetzwerke nehmen einen immer wichtigeren Stellenwert in unserer Gesellschaft ein In den letzten Jahren sind diverse Sensornetzwerke f r verschiedenste Anwendungsf lle entstanden Viele davon befin den sich jedoch noch im Teststadium Die berwiegende Mehrheit der w hrend dieses Projekts gelesenen Ver ffentlichungen zu Sensornetzwerken m Feldeinsatz wurde jedoch nicht f r den Einsatz in Geb uden entworfen Es ist jedoch besonders interessant Daten ber den Temperaturverlauf innerhalb von Geb u den zu sammeln F r konventionelle Warmwasserheizungen kann auf Grundlage dieser Daten eine bessere Regelstrategie gefunden werden und die modernen Warmluftheizungen setzen eine Temperaturerfassung sogar voraus Gerade letztere gewinnen aufgrund der Forderung nach Energieeffizienz und Niedrigenergie h usern einen immer gr eren Stellenwert In dieser Arbeit ist ein solches Sensornetzwerk zur Erfassung eines Temperaturprofils innerhalb von Wohn und B ror umen entstanden Dieses ist zudem auch n der Lage ein Luftfeuchtigkeits und Lichtprofil zu erstellen womit auch das Klima und die Nutzung der R ume besser untersucht werden k nnen Das vorge stellte Sensornetzwerk besitzt eine Messaufl sung von 100 Millisekunden und versieht alle Messwerte mit einem Zeitstempel Weiterhin ist ein PC Programm entstanden mit dem der Benutzer das Sensornetzwerk ohne gro e Kenntnisse ber dessen Funktionsweise betreiben kann
8. In Tabelle 3 2 werden Betriebssysteme der oben vorgetellten Architekturen genannt Ausf hrungsmodell Das Ausf hrungsmodell hat den gr ten Einfluss auf die Performanz der Betriebs 20 systeme f r Sensornetzwerke Obwohl die Debatte ber das beste Ausf hrungsmodell f r Betriebs systeme noch anh lt besitzt die Mehrheit aller Betriebssysteme ein ereignisgetriebenes Modell Die mit Abstand zweitgr te Klasse s nd die threadbas erten Betriebssysteme Eine Zuordnung von Be triebssystemen zu diesen beiden Klassen findet in Tabelle 3 3 statt Bei ereignisbasierten Ausf hrungsmodellen wird die Berechnung innerhalb von Eventhandlern aus gef hrt Diese besitzen n den meisten Betriebssystemen eine Run to completion Semantik Da nur ein einziger Eventhandler zur Zeit laufen kann gibt es nur einen Stack und somit keinen Overhead bei der Stackverwaltung Es m ssen nicht mehrere Speicherbereiche f r verschiedene Stacks freige halten werden Hinzu kommt die M glichkeit schneller auf neu eintreffende Ereignisse mit h herer Priorit t zu reagieren Bei der Energieverwaltung ist dieses Modell von Vorteil Wenn keine Auf gaben mehr anstehen kann es sich schlafen legen bis neue Ereignisse eintreffen Aus diesen drei Gr nden sind ereignisgetriebene Betriebssysteme zu w hlen wenn besonderer Wert auf die Effizi enz gelegt wird Nachteil st jedoch eine geringere Fehlertoleranz aufgrund der nicht vorhandenen Speicherisolation von Anwendung
9. Network 1 Error f newGradient uint16_t uint16_t void m yg newError uint16_t uint8_t void F sendPeriodicinterest uint16_t uint8_t uint16_t uint32_t uint32_t uint16_t uint16_t uint16_t uint8_t void F sendOneShotinterest uint16_t uint8_t uint16_t int8_t uint16_t uint16_t uint8_t void 7 sendPeriodicData uint16_t uint16_t uint16_t uint16_t int32_t void sendBestGradient void sendinteresttableEntry uint8_t uint8_t uint32_t uint32_t uint32_t uint32_t uint32_t bool bool void NodelnSync void 0 0000000 m o 000000 newlnterest message_t void uint8_t void CC2420ActiveMessagec Network Network s et E PL gt LowPowerListening _ NetworkP H e Boot Boot a lece Error gt R i Paii d SE af ye _ Weds gt Leds errorReceiver AMReceiverc ReceiveData gt Receive ee y Pr RadioControl gt SplitControl RadioPacket gt Packet Y Receivelnterest gt Receive O Ledsc 7 AMPacket gt AMPacket RadioSend gt AMSend dataReceiver AMReceiverC Y BEE A interestReceiver AMReceiverC eMessageC Abbildung 4 10 Das Komponentendiagramm von NetworkC In Abbildung 4 10 ist das Komponentendiagramm von der Komponente NetworkC abgebildet Diese be steht aus den Komponenten LedsC ActiveMessageC CC2420Ac
10. Routing GBR MCFA CADR Cougar Acquire EAR LEACH TEEN amp APTEEN Klassifizierung Daten Mobilitat aggregation QoS Skalierbarkeit M glich Nein Eingeschr nkt Eingeschr nkt Nein Schlecht Flach a eee oe Nein Eingeschr nkt Sehr Ja Nein Gut eingeschr nkt Ja Fich Bingeschrinkt Ja Nein Eingeschr nkt Fen Nein Nein Nein Gui Flach Nein Nein Eingeschr nkt Flach Nen 3 Nein Eingeschr nkt Flach Eingeschr nkt Ja Nein Eingeschr nkt Flach Eingeschr nkt Eingeschr nkt Hierarchisch FixeBS la Nen Ow Hierarchisch Fixe BS Ja Nein Gut PEGASIS Hierarchisch FmeBS Nein Nein Ow Hierarchisch Nen Nein Nein Schlecht Hierarchisch Nein Nein Nein du Hierarchisch Nein a Nein Gut MECN SMECN SOP HPAR VGA Sensor aggregate TTDD GAF GEAR SPAN MFR GOAFR SAR Hierarchisch a Nem Nein Schlecht M glich Geographisch Eingeschr nkt Nein Nein Gu Geographisch Eingeschr nkt Nein Nein Eingeschr nkt_ Geographisch Eingeschr nkt Nein Nein Eingeschr nkt_ Geographisch Nein Nein Nein Fingeschr nkt Geographisch Nein Nein Nein Gu QoS Eingeschrink SPEED QoS Nen Nen Ja Eingeschr nkt Multi pfad Ja Ja Ja Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Nein Ja Nein Nein Nein Nein Nein
11. die Sensoren die Werte liefern erfragt das Modul SensorikP ber die Schnittstelle GlobalTime bei der Zeitsynchronisation die aktuelle globale Zeit pr ft ob sie valide ist und erzeugt dann das Ereignis data Ready SensorMoteC nimmt die Werte und den Zeitstempel im Eventhandler entgegen und ruft damit das Kommando SendPeriodicData bei DirectedDiffusionC auf Dieses Modul leitet den Aufruf abermals mit einem gleichnamigen Kommando an das Modul NetworkP weiter Hier wird aus den Daten ein Datenpaket gepackt und als Zieladresse der beste Gradient genutzt Dann wird das Paket in die slowQueue eingereiht Mittels checkSendData wird danach berpr ft ob bereits gen gend Datens tze zum Senden vorliegen Ist dem so wird der Sendetask gepostet Anschlie end kehrt der Kommandoaufruf bis in das Modul Sen 82 4 4 Implementierung der Sensorknoten sorMoteC zur ck und die Bedienung des Interesses ist beendet Jetzt kann der Sendetask den Prozessor bekommen und ber ActiveMessageC das Paket an die Zieladresse senden 4 4 1 Einstellungsparameter Um den Ressourcenbeschr nkungen gerecht zu werden sollten die verwendeten Datenstrukturen immer so klein w e m glich gew hlt werden Ist eine Tabelle zu gro so geht Speicher und beim Arbeiten n der Tabelle auch Rechenleistung verloren Aus diesem Grund wurden in der Datei defines h Konstanten definiert welche die Gr e der wichtigen Datenstrukturen an einer zentralen Stelle definieren So kann
12. die dann bereits 1m Falle des Betriebssystems mitsamt Ger tetreibern f r die Sensoren und der Zeitsysnchronisation fertig implementiert vorlagen Viel Arbeit musste jedoch mit der praktischen Nutzung dieser Software verbracht werden Die Sensorknoten besitzen nur wenige direkt zu s ngliche Ein und Ausgabeger te in Form von drei LEDs und einem Knopf Es war nicht immer einfach Fehler zu lokalisieren Zwar gibt es auch Simulationsumgebungen aber in der realen Welt mit im glei chen Frequenzband operierenden WLANs und anderen St rquellen verh lt sich die Software ganz anders M chte man eine neue Version testen so muss man die Software immer umst ndlich auf jeden einzelnen Sensorknoten aufspielen und diese dann wieder je nach Testfall im gesamten Haus verteilen Dennoch konnten alle bis auf eine Anforderung erf llt werden Die nicht erf llte Anforderung war jedoch nur w nschenswert und f r den Fall gedacht dass gegen Ende der Projektlaufzeit noch Zeit brig geblieben w re Im Nachhinein stellte sich jedoch heraus dass die gesteckten Ziele bereits sehr ambitioniert waren Es sind keine gro en Fehler in dem System bekannt so dass insgesamt ein positives Fazit gezogen werden kann Abschlie end wird hiermit die entstandene Software unter die GNU General Public License GPL gestellt 106 Literaturverzeichnis AKK04 ASSCO2 Bac09 BCD 05 BCE 06 BKM04 Bou09 BUO 7 CES04 CIOS CTL 08
13. die in diesem Unterabschnitt n her betrachtet und erl utert werden Unterschiedliche Synchronisationsprotokolle beziehen dabe unterschiedliche Feh lerquellen mit n hre Synchronisation ein Je mehr Fehlerquellen einbezogen werden um so genauer aber auch aufw ndiger und damit ressourcenintensiver ist das Synchronisationsverfahren Wie in Abbildung 3 18 zu sehen kann die Kommunikation ihrem zeitlichen Verlauf nach in mehrere Ab schnitte unterteilt werden Dieses ist das feingranul rste Schema in aktuellen Fachaufs tzen und wur de auch von den in dieser Arbeit vorgestellten Zeitsynchronisationsprotokollen verwendet MKSL04 EGEO2 GKS03 Im Folgenden werden die einzelnen Zeitintervalle der Kommunikation beschrieben Sender Senden Zugeifen bertragen Verbreiten y Empf nger t Abbildung 3 18 Die Fehlerquellen bei der Zeitsynchronisation nach MKSLO4 Zeit zum Senden Wenn sich ein Sensorknoten zum Versenden einer neuen Nachricht entscheidet ver geht eine Zeitspanne von der ersten Intention des Sendens bis zum Eintreffen der Nachricht in der MAC Schicht Dies umfasst zum einen das Packen der Daten n ein Paket und zum anderen das Durchreichen durch alle Schichten des Netzwerkprotokolls Je nach verwendetem Netzwerkproto koll und Betriebssystem werden nichtdeterministische Zeiten f r Kontextwechsel Unterbrechungs behandlungen Systemaufrufe und zum bertragen des Pakets an den Funkchip ben tigt Auc
14. erh lt das Modul der Ba sisstation ein Boot Event sobald der Sensorknoten gebootet wurde Im Booteventhandler wird Timerl periodisch mit einem Intervall von zwei Sekunden gestatet Dies bedeutet dass er fortan alle zwei Se kunden ein Timerevent ausl st Dar ber hinaus werden die Schnittstellen zur Kommunikation ber die SplitControl Schnittstelle gestartet die Paketvermittlung ist danach aktiv Zur Paketvermittlung werden die beiden Komponenten Serial und Radio mit ihren Schnittstellen zur Active Message Schicht genutzt Die Komponente CC2420ActiveMessageC stellt dem Basisstationsmodul die Schnittstelle zum Setzen der Zyklendauer des LPLs zur Verf gung Die Komponente TimeSyncC implementiert das FTSP das ebenfalls die Bootschnittstelle nutzt um nach 75 4 Entwurf und Implementierung des Sensornetzwerks Mainc a N Serial SerialActiveMessageC N oftwarelnit gt Init N A E 2 SerialControl gt SplitControl Boot gt Boot UartSend gt AMSend f A UartReceive gt Receive UartPacket gt Packet O Ledsc N O Timesyncc a UartAMPacket gt AMPacket Leis gt Leds GlobalTime gt GlobalTime 7 or Basestationp a Ma a an z RadioControl gt SplitControl gt L PowerList 2 RadioSend gt AMSend oe ia RadioReceive gt Receive RadioSnoop gt Snoop a RadioPacke
15. glichen Fehler bei SpinLoc Ein berblick ber das entworfene Sensornetzwerk Die Softwareschichten des entworfenen Sensornetzwerks Die Flussdiagramme zum Aufnehmen eines neuen Interesses Die Flussdiagramme des Systems zur Interessenbedienung Das Flussdiagramm zum Senden von Paketen Das Flussdiagramm zum Anfordern neuer Sensordaten Das Komponentendiagramm der Basisstation Das Komponentendiagramm der Sensorknoten Das Komponentendiagramm von Directed Diffusion Das Komponentendiagramm von NetworkC Das Komponentendiagramm der Sensordatenerfassung Das Ablaufdiagramm f r ein eintreffendes periodisches Interesse 2 222220 Das Ablaufdiagramm f r die Bedienung eines periodischen Interesses 1 von2 Das Ablaufdiagramm f r die Bedienung eines periodischen Interesses 2 von 2 Eine bersicht ber das entworfene und implementierte System Das Aktivit tsdiagramm zum Steuern des Sensornetzwerks Abbildungsverzeichnis 5 3 5 4 J 5 6 5 7 5 8 59 Das Aktivit tsdiagramm zur Datenverarbeitung im Server 89 Das ER Modell der Datenbank 042 22 8 0 2 O44 3 8 90 Das Klassendiagramm des Servers 92 Ein Bildschirmfoto des Client Programms 2 2 2 CC Em mn 93 Das Aktivit tsdiagramm zum Verwalten des Lageplans im Client Programm 95 Das Aktivit tsdiagramm zur Datenbetrachtung
16. implementiert und getestet Hierbei handelt es sich um eine reine Datenerfassung der Temperatur und weiterer Umweltgr en wie Luftfeuchte und Lichtwerte an interessanten Punkten des Geb udes Die erfassten Daten k nnen in einem Diagramm betrachtet werden welches dann Auskunft ber z B den Tem peraturverlauf an einem Punkt des Geb udes ber einen bestimmten Zeitraum gibt Diese Daten k nnen als Grundlage f r eine Regelung oder Regelungsplanung f r die Heizleistungen der Heizk rper herange zogen werden Dies st jedoch nicht mehr Bestandteil dieser Arbeit Direkt angewendet werden kann das entwickelte Sensornetz zur Aufdeckung von falschem L ftungs und Heizverhalten der Nutzer Zum einen k nnen ber die Lichtwerte Aussagen ber die Nutzung der R ume gemacht werden was eine manuelle Heizleistungsreduzierung ergeben kann Zum anderen f hrt Feuchtigkeit oft zu Schimmelbildung Erkennt man in den Messwerten eine hohe Luftfeuchte bei sinkenden Temperaturen so kommt es bei geschlossenen Fenstern zu Kondensation Diese Situation kann nun erkannt und verhindert werden 2 Anforderungsdefinition In diesem Kapitel werden die Anforderungen an das System hergeleitet und detailliert beschrieben Hierzu werden zun chst im Abschnitt 2 1 die Aufgabe und die hieraus resultierenden Anforderungen beschrieben Darauffolgend werden im Abschnitt 2 2 einzelne Anforderungen definiert welche aus der Aufgabenbe schreibung abgeleitet wurden und zur Evalu
17. 3 9 3 10 3 11 3 12 3 13 3 14 3 15 3 16 3 17 3 18 3 19 3 20 3 21 3 22 3 23 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 4 11 4 12 4 13 4 14 5 1 32 Das Anwendungsfalldiagramm f r das PC Programm Das Anwendungsfalldiagramm f r das Sensornetzwerk Der typische Aufbau eines einfachen Sensornetzwerks Die Softwareschichten in einem Sensornetzwerk Der MTM CM5000 MSP von Maxfor Die Architektur des MTM CMS000 MSP Das Klassifikationsschema fiir Betriebssysteme Die Komponente MainC von TinyOS Der verwendete Funk Netzwerkstapel von TinyOS Der verwendete serielle Netzwerkstapel von TinyOS Die Architektur von MANTIS OS Ein Speicherabblild eines laufenden Contiki OS Der Funktionsaufruf von Serviceroutinen in Contiki OS Ein allgemeiner Protokollstapel f r Sensornetzwerke Ein Klassifikationsschema fiir Routingprotokolle Das Flooding Protokoll 4 Das Directed Diffusion Protokoll Die Beziehung zwischen aktueller und gemessener Zeit Die Klassifizierung der Anwendungen f r Zeitsynchronisation Die Fehlerquellen bei der Zeitsynchronisation Die Reference Broadcast Synchronization in Multi Hop Netzwerken Der hierarchische Aufbau des TPSN Die Positionsbestimmung mit Bounding Boxes Die Positionsbestimmung mit SpinLoc Die m
18. Abbildung 3 20 Durch das Zusammenspiel des Timers und des Events Radio receive wird danach weiterhin das gesamte Sensornetz periodisch mit Synchronisationsnachrichten geflutet und die Synchronit t aufrecht erhalten Es bleibt noch die Frage zu kl ren w e der Root gew hlt wird Erh lt ein Sensorknoten ein Synchroni sationspaket von einem Root niedriger Adresse als der eigenen so setzt er die Variable Heartbeat auf 0 Im Eventhandler des periodischen Timers wird bei jedem Ausl sen des Timers die Variable Heartbeat er hoht Ubersteigt sie den Wert ROOT_TIMEOUT so wird angenommen dass keine Verbindung zum Root besteht Er ist entweder gestorben es besteht keine Kommunikationsverbindung mehr zu ihm oder das Sensornetzwerk wurde gerade erst aufgestellt In diesen Fallen ibernimmt der Sensorknoten die Funtkion des Roots bis er ein Synchronisationspaket eines anderen Knotens mit niedrigerer Adresse erh lt event Timer fired 2 heartBeats 4 1 myRootID myID 6 amp amp heartBeats gt ROOT_TIMEOUT Rz store IME A AD T n mbneries NUMENTRTES CIMET 10 myRootID myID 12 meg TOO E JD ME AROOTE JD msg seqNum highestSeqNum 14 Radio send msg 16 1 myRootID myID thighestSeqNum 20 event Radio receive TimeSyncMsg x msg 22 TE me 9 O e E O OD 24 MERSO gt MUSSO Ds else if msg gt rootID gt myRootID 26 msg gt seqNum lt highestSeqNum return 51 3 Techniken in Sen
19. Antwort an einen anderen Knoten B und merkt sich den Versendezeitpunkt B antwortet mit einem Paket so dass A anhand des Empfangszeitpunktes die Dauer des gesamten Vorgangs und damit wieder die Entfernung berechnen kann Hierbei ist zu beachten dass die Zeit zwischen Eintreffen und Versen den bei B abgezogen werden muss Diese Zeit kann empirisch ermittelt werden Beide Varianten von ToA haben jedoch den Nachteil dass sich Funksignale nahezu mit Lichtgeschwindigkeit ausbreiten und die Si gnallaufzeiten deshalb extrem kurz sind Dies kann nur mit dedizierter Hardware gemessen werden Eine 55 3 Techniken in Sensornetzwerken L sung f r diesen Ansatz ist auf langsamere Signale wie Schall auszuweichen Hierbei wird allerdings eine Sichtlinie vorausgesetzt VDMC08 Seite 197ff Ein weiteres Verfahren ist Time Difference of Arrival TDoA Hierbei sind alle Sensorknoten mit Laut sprecher und Mikrofon ausgestattet Sensorknoten A sendet zun chst ein Paket per Funk welches ein folgendes akustisches Signal ank ndigt wartet eine festgelegte Zeitspanne t und versendet dann das akus tische Signal Erh lt Sensorknoten B das Funkpaket so merkt er sich den Zeitpunkt und nutzt die Zeit spanne t zum Einschalten seines Mikrofons B kann nach dem Empfang des akustischen Signals dessen S gnallaufzeit aus der Zeitdifferenz der Eintreffzeitpunkte abz glich t berechnen Bei dieser Berechnung wird vereinfachend von einem instantanen Eintreffen des Funkpaket
20. Es wird empfohlen die H lfte zu w hlen damit in einem Fehlerfall noch Datenpakete zwischengespeichert werden k nnen MAXSENSORREADINGSPENDING INTERESTTABLEENTRIES Gibt die Gr e der Warte schlange f r Sensoranfragen in der Sensordatenerfassung an Jedes Interesse in der Interessentabelle k nnte gleichzeitig eine Anfrage stellen Daher ist es logisch genau so viele Anfragen auch annehmen zu k nnen 83 5 Entwurf und Implementierung des PC Programms In diesem Kapitel wird der Entwurf und die Implementierung des PC Programms zur Speicherung und Betrachtung der Daten aus dem Sensornetzwerk vorgestellt Mit diesem kann der Benutzer wie in der Anforderungsdefinition in Kapitel 2 festgelegt das Sensornetzwerk betreiben Sensornetzwerk mit Server PC Programm Client Basisstation 7 7 Ny 4 2 Ins lt y Serielle o gt Schnittstelle Abbildung 5 1 Eine bersicht ber das System zur Erfassung der Temperaturverteilung innerhalb von Wohn und B ror umen Die Anforderung W2 w nscht eine Trennung des PC Programms in einen Server und in ein Client Programm Zusammen mit dem in Kapitel 4 vorgestellten Sensornetzwerks ergibt sich somit das in Ab bildung 5 1 dargestellte System zur Erfassung der Temperaturverteilung innerhalb von Wohn und B ror umen Der Server steuert das Sensornetzwerk mithilfe der Interessenachrichten ber die mittels se rieller Schnittstelle angeschlossene Basisstation und speichert
21. Kompensation des Offsets betrachtet Um das bisherige Modell um eine Kompensa tion des Skews zu erweitern wird die oben gegebene Gleichung angepasst Anstatt einen Mittelwert ber alle Offsets zu bilden wird eine lineare Regression der kleinsten Abweichungsquadrate durchgef hrt So erh lt man eine Gerade die Auskunft ber die Frequenz der eigenen Uhr relativ zu der des anderen Knotens gibt gl Sender von Referencebeacons g Empf nger von Referencebeacons a Ein Multi Hop Netzwerk mit vier Zonen relativ zueinander b Der Graph der Zeitpfade des in Abbildung synchronisierter Sensorknoten 3 19 a dargestellten Multi Hop Netzwerks Jede Kante spiegelt eine Zeitreferenz wider Abbildung 3 19 Die Reference Broadcast Synchronization in Multi Hop Netzwerken nach EGEO2 Auf diese Weise k nnen jedoch nur Zeitrelationen f r benachbarte Sensorknoten berechnet werden Um dennoch eine Synchronisation im gesamten Netzwerk zu erreichen werden Pfade zur Konvertierung ge sucht In Abbildung 3 19 a ist ein Multi Hop Netzwerk mit vier Referenzbeaconsendern dargestellt Die 46 3 7 Zeitsynchronisation in Sensornetzwerken Sensorknoten 4 7 8 und 9 empfangen die Referenzbeacons von jeweils zwei Sendern Sie k nnen da her zwischen den anderen Sensorknoten vermitteln Will beispielsweise Knoten die Zeit eines erfassten Ereignisses in die Zeit des Knotens 7 konvertieren so wird sie erst in die Zeit des Knotens 4 konvertiert und dann in die
22. Komponenten bieten Schnitstellen an und benutzen sie um miteinander zu interagieren Der Benutzer einer Schnittstelle stellt eine Anfrage an den Schnittstellenanbieter call command und der Anbieter antwortet mit einem Ereignis signal event Das Stellen von Anfragen und das Ausl sen von Ereignissen verhalten sich hierbei wie Funktionsaufrufe in C Die Programmierung in nesC wird anhand einer Hallo Welt Komponente die nach dem Einschalten der Sensorknoten eine LED zum Leuchten bringt im Folgenden erl utert module HalloWeltC uses interface Boot uses interface Leds implementation event void Boot booted call Leds led00n Listing 3 1 Das Modul eines Hallo Welt Programms Zun chst wird das im Listing 3 1 gegebene Modul erstellt Ein Modul besteht aus der Moduldefinition worin die benutzten und angebotenen Schnitstellen angegeben werden und der Modulimplementierung worin d e Eventhandler und Kommandos der Schnittstellen implementiert werde Im Fall des Hallo Welt Programms wird sobald die Bootschnittstelle das Ereignis booted ausl st das Kommando zum Einschal ten einer LED bei der LED Schnittstelle abgesetzt Schnittstellen werden jeweils in einer eigenen Datei definiert die den gleichen Namen wie die Schnittstelle tr gt Nutzt eine Komponente eine Schnittstelle so muss s e alle dort definierten Ereignisse implementieren Bietet eine Komponente eine Schnittstelle an so m ssen analog alle Komm
23. M chte das Client Programm einen Sensorknoten kalibrieren so wird ein Paket f r einmalige Interessen zur Kalibrierung eines Sensors gepackt und an die Basisstation gesendet Parallel hierzu wird nachge schaut ob der Sensor bereits in der Datenbank vorhanden ist Ist dies nicht der Fall so wird der Sensor der Datenbank hinzugef gt In beiden F llen wird anschlie end der Offset des Sensors bei dem Sensorknoten in der Datenbank gespeichert Um das Ansteuern von Aktoren zu zeigen kann das PC Programm die LEDs schalten Hierzu wird le diglich ein Paket mit einem einmaligen Interesse zum Schalten der LEDs gepackt und an die Basisstation gesendet Analog erfolgt die Anforderung der Sensorknotenadresse des besten Gradienten der Sensorknoten Bei allen hier vorgestellten Abl ufen wird beim Packen der Interessen Pakete im Header der Pakete die Quelladresse O gesetzt weil diese die Adresse der Basisstation ist und als AM Typ der Interessenkanal angegeben Nachdem das Sensornetzwerk jetzt gesteuert werden kann bleibt zu kl ren wie die Daten aus dem Sen sornetzwerk entgegengenommen und dem Benutzer zug nglich gemacht werden Hierbei verlangt Anfor derung E3 auch die persistente Speicherung der Messdaten vergleiche Abschnitt 2 2 In Abbildung 5 3 wird das Aktivit tsdiagramm zum Entgegennehmen Bereitstellen und Speichern der Daten aus dem Sensornetzwerk vorgestellt Dieses entspricht den serverseitigen Anwendungsf llen des Anwendungsfalldiagram
24. Widget selectedsensor sensorMocde dataview OWidget floorPlan QLabel infoview OWidget fllorMame OString nhodeld int position QPoint height int dataPlot QwtPlot drowpEventfevent ODropEwent m usefressEventiewent gt OMouseEwent remoweselectechensorf setFloorNMameiname QString setNlodeld cd int setPosition pos QPoint setHeightih int setMeasuredDatal data sensorData setsensorinfotmsg datahMsg requestGracientinodeld int setLEDfnodeld int value int Abbildung 5 9 Das Klassendiagramm des Client Programms In Abbildung 5 9 ist das Klassendiagramm des Client Programms zu sehen Die Klasse main besitzt je el ne Instanz der Netzwerkschnittstelle und des Hauptfensters mainWindow Die Netzwerkschnittstelle ist das exakte Gegenst ck zu der Netzwerkschnittstelle des Servers Die Klasse mainWindow implementiert die 97 5 Entwurf und Implementierung des PC Programms Bedienelemente und besitzt f r jeden Knopf einen Eventhandler in dem die entsprechenden Operationen etwa das ffnen der Nebenfenster durchgef hrt werden Daf r besitzt sie je eine Instanz f r das Feh lerfenster das Einstellungsfenster das Serververbindungsfenster und das Fenster zum Hinzuf gen neuer Sensorknoten in eine Ebene Au erdem besitzt das Hauptfenster die Liste mit den Ebenenobjekten Jedes Ebenenobjekt besitzt wieder um eine Liste mit Sensorknotenobjekten Zieht der Benutzer einen neuen Sensorknoten
25. alle eintreffenden Messdaten Via TCP IP Protokollstapel kommuniziert er ber ein Netzwerk mit dem Client Dieser d ent dem Benuter zum Setzen von Konfigurationsparametern f r das Sensornetzwerk und erm glicht die Datenbetrachtung Im Folgenden wird in Abschnitt 5 1 die Auswahl der Technologien mit denen das PC Programm umgesetzt wurde vorgestellt Anschlie end werden in den Abschnitten 5 2 und 5 3 der Entwurf und die Implemen tierung des Servers und des Clients beschrieben Ohne das PC Programm k nnte man das Sensornetzwerk zwar nicht betreiben aber im Mittelpunkt dieser Arbeit steht das Sensornetzwerk Um rasch voranzuschreiten wurde hier entgegen der Entwicklung des Sensornetzwerks nicht das Wasserfallmodell eingesetzt Der Entwurf und die Implementierung des PC Programms fand ein einem Schritt statt und wurde mittels Rap d Prototyping durchgef hrt 5 1 Technologieauswahl Die Entwicklung des PC Programms wird unter GNU Linux durchgef hrt Daher ist dieses System auch die Zielplattform es soll aber dennoch bei der Entwicklung auf Plattformunabh ngiskeit geachtet werden Es finden aber keine Tests f r andere Plattformen statt weshalb diese nicht offiziell unterst tzt werden Das PC Programm wurde in der Programmiersprache C implementiert GUI Programme implementiert man heute typischerweise mit einer objektorientierten Sprache Die Wahl fiel auf C weil das Sensor netzwerk mittels nesC implementiert wurde und so m gliche k
26. als die Abbildung f T S Hierbei ist T eine Menge diskreter Zeitpunkte und 5 die Menge aller Zust nde des Systems Ein Prozess kann auch als sequentielles Programm auf einem Prozessor in seiner Umgebung angesehen werden Die Umgebung besteht aus dem Programm selbst den Registern des Prozessors den Daten im Hauptspeicher sowie Daten im allgemeinen Sinn etwa belegten Betriebsmitteln The05 Seite 32f Threads sind sogenannte Leichtgewichtsprozesse Sie realisieren mehrere Kontrollfl sse innerhalb desselben Adressraums welcher an einen Prozess gebunden ist Sie geh ren somit eindeutig zu genau einem Prozess und teilen sich mit ihm und untereinander auch die Umgebung The05 Seite 136 In der Welt der Sensornetzwerke wird nicht so streng zwischen einem Prozess und einem Thread unterschieden die Begriffe werden synonym benutzt Mikrocontroller besitzen keine Memory Ma nagement Unit MMU zur einfachen Implementierung getrennter Adressr ume Aufgrund der Res sourcenbeschr nkungen vergleiche Abschnitt 3 4 und des Einbenutzer Betriebes implementieren die Betriebssysteme eine solche auch nicht In dem Betriebssystem TinyOS existieren keine Prozesse es werden aber Threads mit einem op tionalen Modul angeboten Unb Entgegen der eigentlichen Threaddefinition k nnen sie keinem anderen Thread zugeordnet werden mit dem sie sich die Umgebung teilen 3 Techniken in Sensornetzwerken In dem Betriebssystem Contiki existieren sowohl Prozes
27. an fest definierten bekannten Positionen oder bei zus tzlich ben tigter Hardware der Fall Bou09 324 Verfahren mit oder ohne Sichtlinie zwischen den Sensorknoten Eine Sichtlinie zwischen den Sensorknoten ist genau dann gegeben wenn s ch keine Objekte auf der direkten Linie zwischen zwei beliebigen Sensorknoten in einem Sensornetzwerk befinden SSSO7 Die Unterscheidung der Posi tionsbestimmungsverfahren zwischen denjenigen mit und ohne Sichtlinie ist eng mit den vorherigen beiden Klassifizierungsmerkmalen verbunden Bei den aktiven Verfahren wird die Ausbreitung des generierten Signals mehr oder minder stark von Objekten zwischen den Sensorknoten beeinflusst Gleiches gilt bei den Verfahren mit einer zus tzlichen Infrastruktur Dar ber hinaus k nnte es auch n tig sein bei der Ausbringung die Sensorknoten so aufzustellen dass eine Sichtlinie gegeben ist Wie oben erw hnt wird ein solcher Eingriff in das Design auch als Positionsbestimmungsverfahren mit Infrastruktur bezeichnet Ankerknoten im Sensornetz vorhanden oder nicht Von manchen Positionsbestimmungsverfah ren werden Ankerknoten im Netzwerk vorausgesetzt welche dann auch bei den zentralen und akti ven Verfahren die Generierung von Referenzsignalen bernehmen Die Verfahren mit Ankerknoten unterscheiden sich in deren ben tigter Anzahl denn die Genauigkeit der Positionsbestimmung wird hiervon nicht selten beeinflusst Bou09 324 Verfahren f r Innenr ume oder f rs Freie Ni
28. auf die Metainformationen des Pakets Unter der Active Message Schicht befindet sich die Unique Send Schicht Diese fiigt jedem Paket eine fortlaufende Nummer hinzu um doppelte Pakete beim Empf nger in der Unique Receive Schicht ent 25 3 Techniken in Sensornetzwerken Carrier Sense Multiple Access Schicht TransmitP und ReceiveP Abbildung 3 7 Der in dieser Arbeit verwendete engergieeffiziente Funk Netzwerkstapel fiir TinyOS decken zu k nnen Hierzu wird sich immer die letzte erhaltene Nummer zu jeder Sensorknotenadresse gemerkt und Pakete gleicher Nummer vom selben Sender werden fallen gelassen Ist der CC2420 Funkchip eingeschaltet so nimmt er einen Strom von 7 bis 19 mA auf In TEP 105 MHK wird ein Low Power Listener LPL zum Energiesparen vorgestellt welcher zwischen den im letzten Ab satz beschriebenen Schichten sitzt und den Energieverbrauch des Funkchips reduziert Hierzu wiederholt der Funkchip immer wieder einen Arbeitszyklus der aus einer Schlafphase und einer Aktivphase besteht Die Dauer des Arbeitszykluses und der prozentuale Anteil der Aktivphase kann mit einer Schnittstelle direkt aus der Anwendungsschicht heraus gesetzt werden Solange der LPL keine Daten empf ngt oder sendet schaltet er den Funkchip w hrend der Schlafphase aus schaut in der Aktivphase nach ob Daten eintreffen und beginnt von neuem wenn das nicht der Fall ist M chte ein Sensorknoten Daten senden so sendet der LPL des Senders das Paket imme
29. aus dem newSen sorWindow auf den Lageplan so wird in dem entsprechenden Floorobjekt das Ereignis dropEvent ausge l st und der Sensor kann in die Sensorknotenliste aufgenommen werden Jede sensorNode Instanz besitzt ein eigenes Tab Widget als Fenster in dem zwei Tabs f r die Darstellung der Messdaten die bersicht ber die aktuellen Sensorknotenwerte und die Ansteuerung der Aktoren stattfindet 5 4 Der Debugserver Neben den in den letzten beiden Abschnitten vorgestellten Programmen f r den PC ist auch ein Debugser ver entstanden Dieser soll hier nur der Vollst ndigkeit halber erw hnt werden Aufgabe des Debugservers ist es einem Entwickler des Systems eine einfache M glichkeit zum Testen des Sensornetzwerks an die Hand zu geben Er kann damit direkt periodische und einmalige Interessen erstellen und die empfangenen Daten betrachten Der Debugserver besteht aus der seriellen Komponente die auch im Server genutzt wird Benutzt wird diese mit einer kleinen GUI in der die periodischen und einmaligen Interessen jeweils in einem Tab feld weise jedes Datum der Nutzdaten kann direkt eingegeben werden definiert werden k nnen In einem QTextEdit Widget werden die ankommenden Datenpakete in Textform ausgegeben In einem weiteren QTextEdit Widget werden die Informationsnachrichten mit der Sensorknotenadresse des Senders und der enthaltenen Nummer ausgegeben Der Debugserver wurde auch in dieser Arbeit bei der Implementierung des Senso
30. bekannter nicht von dem Sensor netz selbst errechneter Position im Raum Sie besitzen entweder ein GPS Modul oder die Position wird beim Aufstellen festgehalten Im Kontrast hierzu werden Sensorknoten mit unbekannter oder gesch tzter Position unbekannte Knoten unknown nodes oder agents genannt VDMC08 195f Soll die absolute Position des Sensornetzes oder einzelner Sensorknoten m Raum bekannt sein so muss mindestens ein Ankerknoten im Netz vorhanden sein Ansonsten kann man nur Aussgen ber die relative Position der Sensorknoten zueinander machen Basisstation Base station Als Basisstation werden die Sensorknoten bezeichnet welche das Sen sornetzwerk mit einer bestehenden Kommunikationsinfrastruktur wie dem Internet verbinden so dass ein Benutzer auf die gesammelten Daten zugreifen kann AKK04 Sie kann einen festen Stand ort besitzen oder mobil sein Es k nnen eine oder mehrere Basisstationen im Netz existieren In fast allen Netzwerktopologien stellt die Bas sstation gleichzeitig die Datensenke dar Wird die Verbin dung zu bestehenden Netzwerken von einem herk mmlichen PC mit Funknetzwerkkarte realisiert so spricht man nicht von einer Basisstation sondern von einem Gateway Basisstationen sind in die sem Fall alle direkt an den Gateway sendenden Sensorknoten Lebensdauer Lifetime Die Lebensdauer ist die Zeitspanne w hrend derer der Sensorknoten nach dem Einschalten seine Aufgabe erf llt Die Lebensdauer ist in der Re
31. ben tigt eine M glichkeit zur Be stimmung von Entfernungen aus denen dann die Position der Sensorknoten berechnet werden kann Daher werden m Folgenden einige Verfahren zur Entfernungsbestimmung vorgestellt Wie bereits in Abschnitt 3 1 beschrieben wurde macht die Empfangssignalst rke des Funksignals eine Aussage ber die Entfernung zum Sender Hierzu wird in regelm igen Abst nden von den Sensorknoten ein Datenpakt beliebigen Inhalts an die benachbarten Sensorknoten gesendet oder die regul re Kommu n kation genutzt wenn man sich darauf verlassen kann dass diese regelm ig stattfindet In der Theorie nimmt die Empfangssignalst rke im Quadrat zur Entfernung ab Eine empirische Untersuchung zu diesem Zusammenhang haben Z Zhong und T He durchgef hrt ZH09 Sie haben festgestellt dass kein netz werkweiter monotoner Zusammenhang besteht Man kann aber die Empfangssignalstarke als sehr guten Indikator f r relative Entferungen im Sinne von nah oder fern f r benachbarte Sensorknoten benutzen Problematisch bei der Entfernungsbestimmung anhand der Empfangssignalst rke sind der nicht perfekte quadratische Zusammenhang in der Praxis unberechenbare Verluste verursacht durch Hindernisse Re flexionen an Objekten Hintergrundrauschen unzureichende Genauigkeit der Hardware bei der Erfassung der Empfangssignalst rke und Aufstellungsh he sowie die Orientierung der Sensorknotenantenne In eige nen Experimenten konnten die Erkenntnisse
32. bestehend aus neun Sensorknoten und der einen Basisstation Auf dem PC kam der Debugserver zum Einsatz Test der Interessenverbreitung Dieser Test sollte zeigen ob alle Sensorknoten ein an das Sen sornetzwerk versendetes Interesse auch empfangen Hierzu wurde ein Interesse nach der Tem peratur welches im Abstand von einer Sekunde bedient werden sollte an das Sensornetzwerk versendet Es stellte sich heraus dass durchschnittlich in acht von zehn F llen alle Sensorknoten das Inter esse erhielten In 10 der F lle erhielt einer der Sensorknoten das Interesse nicht und in den restlichen 10 erhielten mehrere Sensorknoten das Interesse nicht Es ist zu vermuten dass in den Fehlerf llen Kollisionen so h ufig vorkamen dass die max male Anzahl an Versende versuchen tiberschritten wurde Der Wert von 80 wird jedoch als recht gut angesehen zumal auch andere Forscher mit diesem Problem k mpfen Als Beispiel kann das im Abschnitt 3 2 vorgestellte System zur Vulkan berwachung genannt werden WALJ 06 Test des Start Stop Timers Dieser Test sollte zeigen ob der Start Stop Timer die Interessen korrekt startet und wieder beendet Hierzu wurden zwei Interessen an einen Sensorknoten des Sensornetzwerks versendet Das erste lieferte die Temperatur und das zweite die Luftfeuchte Die Start und Endzeitpunkte lagen in der Zukunft und unterschieden sich um drei bzw zehn Sekunden Das Resultat war dass der erste Wert fiir die Temperatur einen um
33. der Sensorknoten immer auf den aktuellen Anwendungsfall angepasst werden Diese Konstanten werden m Folgenden mit ihrem Standardwert gennannt und erl utert FASTQUEUELEN 20 Gibt die Anzahl der Pakete an die in der fastQueue aufgenommen werden k n nen SELOWQUEUELEN 50 Gibt die Anzahl der Pakete an die in der slowQueue aufgenommen werden k nnen GRADIENTTABLEENTRIES 10 Gibt die Anzahl der Eintr ge in der Gradiententabelle an GRADIENTAGE 360000 Wenn die Gradienten lter als GRADIENTAGE Millisekunden sind werden sie aus der Gradiententabelle gel scht sofern noch andere j ngere Gradienten vorhanden sind GRADIENTUPDATEPACKETGECOUNT 30 Die berpr fung der Gradienten ist sehr recheninten siv Um Ressourcen zu schonen wird die berpr fung des Gradientenalters nur alle GRADIENTUPDA TEPACKETCOUNT Pakete durchgef hrt INTERESTTABLEENTRIES 20 Gibt die Anzahl der Eintr ge in der Interessentabelle an INTERESTHISTORYCOUNT 10 Gibt die Anzahl der Eintr ge in der Tabelle mit den bekannten In teressen an Es ist zu beachten dass nicht mehr als INTERESTHISTORYCOUNT verschiedene Interessen innerhalb einer Zeitspanne von ca einer Sekunde versendet werden sollten PACKETSTOHOLD 25 Gibt die Anzahl der zu sammelnden Datenpakete in der slowQueue an be vor sie versedet werden sollen Es ist zu beachten dass PACKETSTOHOLD immer echt kleiner als SLOWQUEUELEN sein muss Ansonsten w rden nie Datenpakete versendet werden
34. der Autoren nachvollzogen werden Eine Wand macht schnell einen Unterschied von zwei bis drei Metern Dessen ungeachtet wird die Empfangssignalst rke gerne f r Positionsbestimmungsverfahren herangezogen Funkchips bieten das Auslesen der Empfangssignalst rke von Haus aus an es muss so keine zus tzliche Hardware verbaut werden und die Kosten sowie der Ener gieverbrauch werden kleingehalten Au erdem wird erwartet dass in Zukunft die Genauigkeit der Funk chips bei der Messung der Empfangssignalst rke zunimmt Bou09 Seite 312f Auch jetzt schon kann eine Verbesserung der Aussagekraft erzielt werden indem man nach dem Aufstellen f r einen Knoten die Emp fangssignalstarke in festgelegten Entfernungen misst in das Berechnungsmodell zudem die Umgebung mit einbezieht und beim Aufstellen auf gleiche Orientierugen der Sensorknotenantennen achtet Deutlich genauer bei der Entfernungsmessung ist das Time of Arrival ToA Verfahren das in zwei Vari anten existiert In der ersten Variante wird von den Sensorknoten ein Datenpaket mit einem Zeitstempel des Versendezeitpunktes verschickt Der empfangende Sensorknoten kann aus der Zeitdifferenz zwischen Versenden und Eintreffen mit der bekannten Ausbreitungsgeschwindigkeit des Signals die zur ckgelegte Strecke berechnen Diese Variante ben tigt im Gegensatz zur zweiten Variante eine Zeitsynchronisation zwischen den Knoten In der zweiten Variante versendet ein Sensorknoten A ein Paket zur Anforderung einer
35. der Interessenausbreitung stellt die Vorhaltung der bisher bedienten Interessen dar Man kann sich merken welche Knoten in der Vergangenheit bereits ein Interesse an gleichen Sensorwerten be antwortet haben und diese gezielt wieder ansprechen Auch hier muss periodisch nach bisher unbekannten Nachbarn geschaut werden In allen Alternativen ist sichergestellt dass ein Interesse wie n Abbildung 3 15 a zu sehen am Ziel ankommt Wie bereits oben beschrieben wird bei jedem Eintreffen eines Interesses der Gradient zum Sender ge bildet Es entsteht ein Graph von Interessen wie er in Abbildung 3 15 b zu sehen ist Zur Berechnung der Gradienten gibt es abermals mehrere M glichkeiten Wird mit einem Gradienten von 1 beim ersten Versenden gestartet und bei jedem weiteren Versenden addiert so gibt der Gradient Auskunft ber die Hop Entfernung zum Ziel Alternativ kann mit 0 gestartet werden und jeder Sensorknoten addiert seine Entfernung zum Sender eines Interesses und nimmt diesen Wert als Gradienten f r seine Interessentabelle und zum Weitersenden des Interesses Als Wert f r die Entfernung kann z B die RSSI genutzt werden vergleiche hierzu Abschnitt 3 8 Alalog zu den Entfernungen kann die verf gbare Restenergie der Sensor knoten aufsumiert werden M cht ein Sensorknoten nun ein Interesse bedienen so sendet es die Daten zu dem Sensorknoten mit dem besten Gradienten des Interesses So verfahren auch alle dieses Datenpaket erhaltenen Sensorknot
36. die Ebene 0 zu Danach sendet er ein Level Discovery Paket mit seiner eindeutigen Adresse und seiner Ebene an die Broadcastadresse Alle Sensorknoten die dieses Paket erhalten weisen sich selber die erhaltene Ebene 1 zu und versenden selbst ein neues Level Discovery Paket mit ihrer Adresse und Ebenennummer Hat ein Sensorkonten eine Ebene erhalten so ignoriert er fortan alle Level Discovery Pakete Dieser Vorgang wiederholt sich bis sich alle Sensorknoten einer Ebene zugewiesen haben Es ist eine Hierarchie entstanden wie in Abbildung 3 20 Es kann passieren dass ein Sensorknoten keiner Ebene zugewiesen wird Dies kann der Fall sein wenn es zu Kollisionen auf der MAC Schicht kam oder der Sensorknoten erst eingeschaltet wurde als die Level Discovery Phase bereits abgeschlossen war Aus diesem Grund wartet der Sensorknoten nach dem Ein 47 3 Techniken in Sensornetzwerken Rootnode Ebene O Ebene 1 g Ebene 1 g g Abbildung 3 20 Der hierarchische Aufbau des TPSN nach VDMC08 Seite 229 schalten immer eine gewisse Zeit Hat er dann keine Ebene zugewiesen bekommen so verschickt er ein Level Request Paket Die Nachbarknoten antworten mit einem Level Discovery Paket und der Sensor knoten weist sich die kleinste erhaltene Ebene zu Analog handelt der Sensorknoten wenn er zu einem sp teren Zeitpunkt keinen Kontakt mehr zu der h heren Ebene besitzt Geht der Kontakt zum Rootnode verloren so w hlen die Sensorknoten der Ebene 1
37. diese Signale definieren die sie erzeugen sobald ein bestimmtes Ereignis in einem Objekt eintritt Des Weiteren definieren Objekte Slots die von anderen Objekten ber Ereignisse in Kennt nis gesetzt werden wollen um daraufhin Operationen durchzuf hren Mittels connect k nnen Signale mit mehreren Slots mehrerer Objekte verbunden werden Einzige Bedingung hierf r ist eine identische Funktionssignatur das Signal Slot Konzept ist damit datentypsicher Erzeugt jetzt ein Objekt ein Signal so werden alle verbundenen Slots benachrichtigt Fire Die Anzeige der Messdaten in einem Zeit Werte Diagramm wird mit Hilfe von Qt Widgets for Technical Applications Qwt realisiert Dies ist eine Bibliothek f r Qt welche Widgets f r technische Anwendungen bereitstellt Die Bibliothek st zu beziehen ber http qwt sourceforge net Als Entwicklungsumgebung wird der Qt beigelegte Qt Creator verwendet 5 2 Entwurf und Implementierung des Servers In diesem Abschnitt werden der Entwurf und die Implementierung des Servers vorgestellt Wie bereits in der Einleitung dieses Kapitels beschrieben hat der Server die Aufgabe das Sensornetzwerk zu steuern und dem Benutzer so die Interaktion mit diesem zu erm glichen In Abbildung 5 2 ist das Aktivit tsdiagramm zur Steuerung des Sensornetzwerks durch das Versenden von Interessen dargestellt Dieses Aktivit tsdiagramm entspricht der Realisierung des Anwendungsfall diagramms f r das Sensornetzwerk siehe Anf
38. durch einheitli che Schnittstellen zu abstrahieren Dies beinhaltet unter anderem eine Prozessor und Speicherverwaltung Multithreading Multitasking Scheduling und Zugriff auf die Peripherie wie Funk serielle Kommunika tion sowie Ein und Ausgabe Tan92 Seite 1ff Hinzu kommt ein Mechanismus zur Koordination von parallelen Abl ufen und besonders wichtig bei Sensorknoten eine Energieverwaltung In den folgenden Unterabschitten 3 5 1 bis 3 5 4 wird zun chst ein Vergleich zwischen erh ltlichen Be triebssystemen f r Sensorknoten durchgef hrt gefolgt von einer genaueren Betrachtung der Betriebssyste me TinyOS MANTIS OS und Contiki Die ersten beiden sind die am meisten eingesetzten Betriebssysteme in Sensornetzwerken und Contiki wird neben TinyOS an der Universit t Oldenburg und dem An Institut OFFIS h ufig benutzt 3 5 1 Vergleich erh ltlicher Betriebssysteme Es existieren verschiedene Sensorknoten speziell angepasst auf unterschiedliche Anwendungsf lle Die in Abschnitt 3 4 beschriebenen Ressourcenbeschr nkungen f hren bei Betriebssystemen f r Sensorkno ten zu einer Abw gung zwischen Funktionalit t und m glichst geringen Hardwareanforderungen welche je nach Sensorknoten Anwendungsfall Kombination anders ausfallen muss In diesem Abschnitt werden ausgew hlte Betriebssysteme klassifiziert und miteinander verglichen Die Autoren Reddy et al RKJKO3 schlagen das in Abbildung 3 5 zu sehende Klassifikationsschema vor Sie sp
39. e skalieren Kosten und Gr e Sensorknoten sind sowohl klein als auch preiswert und so muss auch die Zeitsyn chronisation sich an diese Limitierungen halten Ein teurer und gro er GPS Empf nger kann nicht 43 3 Techniken in Sensornetzwerken auf jedem Sensorknoten installiert werden Zus tzliche Hardware sollte wenn m glich vermieden oder nur auf einer geringen Anzahl der Sensorknoten eingesetzt werden Verf gbarkeit und Bereich Alle Sensorkonten im Sensornetzwerk k nnen sich entweder mit einer globalen Zeit synchronisieren oder eine kleine Gruppen von benachbarten Knoten synchronisie ren sich untereinander zu einer lokalen Zeit Nicht alle Anwndungen ben tigen eine globale Sicht der Zeit und gerade in gro en Sensornetzwerken kann durch lokale Zeitzonen viel Energie und Bandbreite bei der Synchronisation gespart werden Hierbei ist jedoch wichtig dass f r jeden Sen sorknoten eine f r seine Aufgaben valide Zeit zur Verf gung steht 3 7 1 Fehlerquellen bei der Zeitsynchronisation Die berwiegende Mehrheit der Synchronisationsprotokolle beruht auf dem Austausch von Nachrichten zwischen den Sensorknoten Eine Kommunikation zwischen den Sensorknoten wird nur dann nicht be n tigt wenn jeder Sensorknoten sich mit einer externen Infrastruktur wie z B dem GPS synchronisiert Dies ist jedoch nur in wenigen Sensornetzwerken der Fall Bei der Kommunikation der Sensorknoten un tereinander kommt es zu nichtdeterministischen Fehlern
40. ein Sensornetzwerk mit einem Sensorknoten versendet 101 6 Evaluation Resultat war dass ca alle 20 Sekunden 20 Datenpakete auf einmal eintrafen Das PC Programm wurde mittels Rapid Prototyping umgesetzt und die einzelnen Funktionen direkt nach ihrer Implementierung getestet Es fand daher keine getrennte Testphase statt und die Tests werden daher nicht so ausf hrlich dokumentiert wie im Sensornetzwerk Es soll an dieser Stelle nur gesagt werden dass keine Fehler bekannt sind Die Komponente mit der seriellen Schnittstelle konnte beilaufig bei der Benutzung des Debugservers w hrend der Tests des Sensornetzwerks getestet werden Zudem wurde der Inhalt der Datenbank nach einem Interesse f r alle vier Werte mit einer Messaufl sung von einem Wert pro Sekunde ber einen Zeitraum von 10 Minuten berpr ft Es waren 599 Werte in der Datenbank vorhanden Es fehlte somit lediglich ein Wert Also kann das Versenden der Interessen bis zur Aufnahme der Ergebnisse n die Datenbank ebenfalls als getestet angesehen werden Im Folgenden soll das entstandene System zur Erfassung eines Temperaturprofils in Wohn und B ror u men bewertet werden Dazu werden zun chst wie bereits in der Einleitung dieses Kapitels angek ndigt die einzelnen Anforderungen aus Abschnitt 2 2 durchgegangen El Datenerfassung Diese Anforderung kann im vollen Umfang als erf llt angesehen werden Es wer den Umgebungstemperatur Luftfeuchte Lichtwerte und dadr ber hinaus s
41. einen neuen Rootnode was erneut zu einer Level Discovery Phase f hrt und eine neue Hierarchie formt Nach einer gewissen Zeit initiiert der Rootnode die Synchronisationsphase indem er ein Zeitsynchroni sationspaket schickt Dieses enth lt seine Ebenennummer 0 Alle Knoten die dieses Paket erhalten und der Ebene 1 angeh ren warten eine zuf llige Zeit ab um Kollisionen zu vermeiden Danach starten sie eine Zwel Wege Synchronisation mit dem Rootnode die im folgenden Absatz beschrieben wird Die Sen sorknoten der Ebene 2 empfangen ebenfalls zumindest die Nachricht des Sensorknotens der Ebene 1 da sie ebenfalls innerhalb seiner Funkreichweite sind Sie ignorieren die Nachricht als solche nutzen sie je doch als ihr Startsignal Sie warten eine zuf llige Zeit plus die Zeit welche die Sensorknoten der Ebene 1 zum Synchronisieren ben tigen um dann mit einem Sensorknoten der Ebene 1 ebenfalls eine Zwei Wege Synchronisation durchzuf hren Dieser Vorgang wiederholt sich bis sich alle Ebenen synchronisiert haben Die Zwei Wege Synchronisation wird von Sensorknoten A gestartet der seine Uhr an die Uhr des Sensor knotens B angleichen m chte Wie in Abbildung 3 20 zu sehen sendet A hierzu ein Synchronisationspuls paket an B welcher die Ebenennummer von B und den Zeitpunkt des Versendens C a t enth lt B erh lt das Paket zum Zeitpunkt C ta wobei gilt Ca to Ca t1 A d Dabei bezeichnet A den Offset der Knoten und d die Zeit zum Verbr
42. igen Abst nden gesendet werden Zudem sind die Sensorknoten in der Lage einen Fehler bei der Kommunikation zu erken nen und die Daten vorzuhalten bis eine neue Verbindung zur Basisstation hergestellt wurde Des Weiteren wurde extra darauf geachtet dass ein multipfadf higes Routingprotokoll verwendet wird Diese Anforderung wird daher insgesamt als erf llt angesehen wobei hier sicher noch Verbesse rungspotential vorhanden ist ES Datenspeicherung Die Daten werden gespeichert und die Anforderung kann damit als erf llt an gesehen werden E6 Aktoransteuerung Die einmaligen Interessen k nnen f r die Ansteuerung der Aktoren genutzt werden was auch anhand der LEDs umgesetzt wurde Diese Anforderung ist damit ebenfalls erf llt E7 Datenvisualisierung Dem Benutzer werden die Messdaten in einem Zeit Wert Diagramm pr sen tiert und die Anforderung ist somit erf llt 102 W1 Komplexe Visualisierung Es ist eine Anwendung entstanden in welcher der Benutzer Ebenen de finieren und Sensoren positionieren kann Diese ist bersichtlich aufgebaut und intuitiv zu bedienen Dem Benutzer werden die Messdaten in einem Zeit Werte Diagramm pr sentiert wodurch er auf einen Blick die Daten berschauen kann und Trends in den Daten gut erkennbar sind Diese Anfor derung ist daher erf llt W2 Trennung zwischen Benutzerschnittstelle und Sensornetzkontrolle Das PC Programm besteht aus einem Server und einem Client Programm Die Anforderung ist er
43. ist der erh hte Kommunikationsaufwand Bei FTSP und RBS k nnen mit Broadcastpakten alle Nach barknoten auf einmal synchronisiert werden bei TPSN synchronisieren s ch hingegen immer nur zwei Sensorknoten miteinander MKSLO4 Die Synchronisationsgenauigkeit bei RBS liegt nach Aussage der Autoren bei f nf Mikrosekunden auf Mica Sensorknoten EGEO2 Die Entwickler von TPSN haben ebenfalls RBS und zus tzlich ihr TPSN auf Mica Sensorknoten bei der Synchronisation zweier benachbarter Knoten getestet und konnten eine Genauigkeit von 16 9 usec f r TPSN und 29 1 usec f r RBS messen GKS03 Die Urheber von FTSP stellten eine Synchronisationsgenauigkeit von 1 48 usec bei zwei benachbarten Sensorknoten und 3 usec bei zwei sechs Hops voneinander entfernten Knoten fest MKSL04 FTSP und TPSN besitzen beide einen Baum zum Verbreiten der Synchronisationsnachrichten Bei TPSN wird dieser jedoch explizit gebildet und muss bei einer sich ver ndernden Netzwerktopologie st ndig neu gebildet werden Beim FTSP bildet sich der Baum indirekt durch die Synchronisationspakete Hierdurch ist FTSP auch bei mobilen Sensorknoten im Sensornetzwerk ausgezeichnet geeignet MKSLO4 Bei einer gegebenen Synchronisationsperiode von t Sekunden verschickt jeder Sensorknoten alle t Sekun den ein Paket bei FTSP zwei Pakete bei TPSN und 1 5 Pakete bei RBS Bei letzterem wurde mit einem Paket pro Zeitaustausch und 0 5 Paketen f r das Referenzpacket gerechnet 3 8 Positionsbestimm
44. jeder Sensorknoten erreichbare Nachbarknoten kennen und Regionen des Sen sornetzwerks mit h herer Sensorknotendichte und mehr Energie in Richtung des Ziels finden So kann vermieden werden dass wenige Pfade immer wieder benutzt werden und sich so Daten stauen oder die Energieversorgung einzelner Sensorknoten berm ig beansprucht wird Es ist Aufgabe des Routingprotokolls die Lebensdauer des Sensornetzwerks zu maximieren und stets eine verl ssliche Kommunikation zu gew hrleisten Hierbei verlangen einige Anwendungen auch die bertragung der Daten innerhalb einer bestimmten Zeit Dynamiken im Sensornetzwerk Die meisten Netzwerktopologien gehen davon aus dass die Sensor knoten station r sind Einige Anwendungen erfordern jedoch auch mobile Sensorknoten oder Basis stationen Das Routingprotokoll muss Datenpakete sicher von und zu mobilen Knoten leiten k nnen Dar ber hinaus sind von Sensorknoten gemessene Ereignisse je nach Anwendung dynamisch oder statisch Dynamische Eereignisse wie in Anwendungen zur Zielverfolgung erfordern eine periodi sche bertragung und bedingen viele Daten welche zur Basisstation geleitet werden m ssen Wird ein statisches Ph nomen wie die Temperatur an einem Ort erfasst so kann das Routingprotokoll reaktiv arbeiten und die Daten zu einem passenden Zeitpunkt an die Bas sstation weiterleiten Aggregation von Daten Die Messdaten der einzelnen Sensorknoten stammen oft von demselben Ph nomen ab und so k nnen
45. m glicher Datenweg fur Sensorwerte Ein kabelloses Sensornetzwerk in seiner einfachsten Form kann laut VDMCOS Seite 1 definiert werden als Netzwerk bestehend aus Sensorknoten welche in der Lage sind Umweltgr en zu messen und die gesammelten Daten ber eine kabellose Verbindung zu kommunizieren Die Sensorknoten sind station r oder beweglich und sie k nnen sich ihrer Position bewusst sein oder auch nicht Die gesammelten Infor mationen werden in einigen F llen von anderen Sensorknoten weitergeleitet an die Senke gesendet wo sie lokal verarbeitet oder von einem angeschlossenen Gateway in ein anderes Netzwerk weitergeleitet werden Vergleiche hierzu Abbildung 3 1 Das Gateway ist entweder ein Sensorknoten ein kleines eingebettetes System w e ein PDA oder ein PC Es besitzt meist eine unersch pfliche Stromversorgung gr ere Re chenleistung sowie Speicher und weitere Netzwerkhardware um per Satellit UMTS GSM oder direkt per Ethernet mit anderen Netzwerken wie dem Internet verbunden zu sein Von hier aus kann der Benutzer auf das Sensornetzwerk zugreifen Die Anwendungsenwicklung bei Sensornetzen unterscheidet sich in vielen Punkten von der Entwicklung f r PCs In Abschnitt 3 4 werden die Anforderungen bei der Entwicklung von Software f r Sensornetzwer ke er rtert In Abbildung 3 2 st der typische Schichtaufbau der Software eines Sensornetzes zu sehen Auf den Sen sorknoten setzt ein Betriebssystem auf In Abschnitt 3 5 wird
46. oben vorgestellten Kommandos ein Informationspaket aus den bergebe nen Parametern und reiht es in die fastQueue ein Die Informationspakete werden derzeit haupts chlich f r Fehlernachrichten verwendet es sind die in Listing 4 6 vordefinierten Werte mit den Bedeutungen zu entnehmen GlobalTime CH 1 Sensorik y YetLocalTime uint32_t readSensors uint8_t error_t lt getGlobalTime uint32_t error_t setVotageOffset int16_t void Jocal2Global uint32_t error_t setTemperatureOffset int16_t void y Ylobal2Local uint32_t error_t MW setHumidityOffset int16_t void setLightOffset int16_t void dataReady uint16_t uint16_t uint16_t uint16_t uint32_t void Sensor SensorikP wv se _ a Temperature gt Temperature a Light gt Read Humidity gt Humidity gt Read il EA r a O LightSensor HamamatsuS10871TsrC Sht11 Sensirionsht11c VoltageSensor Voltagec Y Abbildung 4 11 Das Komponentendiagramm der Sensordatenerfassung Das Komponentendiagramm fiir die Sensordatenerfassung findet sich in Abbildung 4 11 Die Komponente SensorikC besteht neben dem Modul SensorikP aus den Komponenten VoltageC SensirionSht11C und HamamatsuS10871TsrC Dies sind die Treiber f r den Spannungssensor den Temperatur sowie Luft feuchtesensor und den Lichtsensor Sie bieten jeweils eine Schnittstelle zum Durchf hren einer Messung an Das Modul Sensor
47. of Sensor Networks In IEEE Computer 37 2004 Nr 8 S 41 49 CHAKRABARTY Krishnendu IYENGAR S S Scalable Infrastructure for Distributed Sen sor Networks 1 Springer 2005 CHANG Ho lin TIAN Jr ben LAI Tsung Te CHU Hao Hua HUANG Polly Spin ning beacons for precise indoor localization In SenSys 08 Proceedings of the 6th ACM conference on Embedded network sensor systems ACM 2008 S 127 140 DUNKELS Adam GRONVALL Bjorn VOIGT Thiemo Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors In Proceedings of the 29th Annual IEEE International Conference on Local Computer Networks Washington DC USA IEEE Computer Society 2004 S 455 462 ELSON Jeremy GIROD Lewis ESTRIN Deborah Fine grained network time synchroni zation using reference broadcasts In SIGOPS Oper Syst Rev 36 2002 Nr SI S 147 163 FIRMA BUDERUS http www buderus de Online Ressource Abruf 22 03 2010 107 Literaturverzeichnis Firb Firc Fird Fire GKS03 GL GvHS05 HHSHO6 IGE 03 KA08 KPCT 07 Lev LG09 LS MHK MHLCO07 108 FIRMA HAMAMATSU http sales hamamatsu com assets pdf parts_ S S1087_etc pdf Online Ressource Abruf 23 05 2010 Si photodiode S1087 51133 series FIRMA MAXFOR http www maxfor co kr eng en_sub5_1_1 html Online Ressource Abruf 23 03 2010 Technische Daten des verwendeten Sens
48. sind z B Sensoren das Dateisystem LEDs und der Zufallsnummernger nerator Auf solche Ger te wird angelehnt an UNIX mit den Funktionen read write mode und ioctl zugegriffen Mit mode k nnen dabei Ger te an und ausgeschaltet werden Ger te mit asynchronem Zugriff sind alle zur Kommunikation verwendeten Ger te wie die Funk und die serielle Schnittstelle Solche Ger te erfordern die F higkeit Daten im Hintergrund zu empfangen und zu senden Es gibt bei diesen Ger ten zus tzlich die M glichkeit einen synchronen Zugriff zu starten wenn man z B auf ein neu eintreffendes Paket warten m chte Hiebei k nnen auch mehrere Netzwerkger te angegeben werden Die Ger tetreiber sind in MOS nicht in einem Thread sondern in interruptgesteuerten Zustandsautomaten implementiert Um Kopieroperationen zwischen den Schichten zu umgehen besitzt die Netzwerkschicht eine zur Kompilierzeit anzugebende Anzahl an vorallozierten Puffern Die Ger tetreiber fordern Puffer bei der Netzwerkschicht an f llen diese und geben sie an den Anwendungsthread weiter Ist die Anwendung mit der Verarbeitung der Daten fertig so muss sie den Puffer wieder an die Netzwerkschicht zuriickgeben Sto05 Die MOS Energieverwaltung MOS bietet sowohl explizite als auch implizite Funktionen zur Energieverwaltung 29 3 Techniken in Sensornetzwerken Die explizite Energieverwaltung wird mit Hilfe der mode Funktion realisiert Es werden nicht nur die Stadien an und aus a
49. the 7th international conference on Information processing in sensor networks IEEE Computer Society 2008 S 3 14 KIM Sukun PAKZAD Shamim CULLER David DEMMEL James FENVES Gregory GLASER Steven TURON Martin Health monitoring of civil infrastructures using wi reless sensor networks In Proceedings of the 6th international conference on Information processing in sensor networks ACM Press 2007 S 254 263 LEVIS Philip TEP 111 message_t LEVIS Philip GAY David TinyOS Programming 1 Cambridge University Press 2009 LEVIS Philip SHARP Cory TEP 106 Schedulers and Tasks Moss David HUI Jonathan KLUES Kevin TEP 105 Low Power Listening Moss David HUI Jonathan LEVIS Philip CHOI Jung I TEP 126 CC2420 Radio Stack 2007 MKSL04 MLV09 MS08 RKJKO3 SGST 06 SLT 07 SSS07 Sta08 Sto05 Tan92 The The05 Unb VDMCOS WALJ 06 WALW 06 Wik10 Literaturverzeichnis MAROTI Mikl s KUSY Branislav SIMON Gyula LEDECZI Akos The flooding time synchronization protocol In SenSys 04 Proceedings of the 2nd international conference on Embedded networked sensor systems ACM 2004 S 39 49 MOZUMDAR Mohammad Mostafizur R LAVAGNO Luciano VANZAGO Laura A com parison of software platforms for wireless sensor networks MANTIS TinyOS and ZigBee In ACM Trans Embed Comput Syst 8 2009 Nr 2 S 1 23 MAROTI Miklos S
50. werden kann Einige Funkchips s nd nicht n der Lage das Bytealignment des ankommenden Datenstroms zu er fassen In diesem Fall muss der Netzwerkstapel anhand des bekannten Synchronisationsbytes die einkom mende Nachricht an die korrekte Position verschieben Hierdurch kommt es zu einer Verz gerung von bis zu 400 us welche jedoch mit dem Bitoffset und der bertragungsrate bestimmt werden kann MKSLO4 3 7 2 Reference Broadcast Synchronization RBS Die Reference Broadcast Synchronisation RBS wurde von Elson et al im Jahr 2002 vorgeschlagen und z hlt damit zu den ersten Synchronisationsprotokollen speziell f r Sensornetzwerke EGEO2 Bei der RBS senden die Sensorknoten sogenannte Referenzbeacons mit Hilfe eines Broadcasts an hre Nachbarknoten Das Referenzbeacon enth lt keinen Zeitsempel der Inhalt des Pakets spielt f r RBS keinerlei Rolle Statt dessen halten d e Empf nger den Empfangszeitpukt fest und nutzen diesen als Referenz zum Vergleich ihrer Uhren Wichtig ist hierbei dass der Broadcast vom Funkchip implementiert wird Nur so ist ge w hrleistet dass alle empfangenden Sensorknoten denselben Zeitpunkt festhalten Durch den Verzicht auf Zeitinformationen innerhalb der Synchronisationspakete wird der kritische Pfad auf die Fehlerquellen beim Empf nger reduziert Lediglich die Zeit zum Annehmen und Empfangen spielt eine Rolle und die beson ders gro e und nichtdeterministische Zeit zum Senden ist komplett eleminiert Verglei
51. 1 Transmissionen durchgef hrt Ist das Netzwerkprotokoll zu dieser Da tenweiterleitung f hig so spricht man von einem Multi Hop Sensornetzwerk VDMC08 Seite 3 Mikrocontroller Ein Mikrorechensystem ist ein Datenverarbeitungssystem bestehend aus Prozessorkern Speicher Ein und Ausgabeschnittstellen sowie einem verbindenden Bussystem Au erdem sind bereits ein oder mehrere Peripherie Ger te also A D Wandler Sensoren oder Timermodule ange schlossen Ein Mikrocontroller ist ein Mikrorechner der auf einem einzigen Chip realisiert wurde um mit m glichst wenig Schaltungsaufwand Steuerungs und Kommunikationsaufgaben zu l sen BUO7 Seite 1 Analog Digital Wandler A D converter Viele Sensoren sind analog und nutzen zur Ausgabe eine Spannung als Repr sentanten des Messwertes Ein Analog Digital Wandler A D Wandler setzt diese Spannung in einen digitalen Wert um welcher weiterverarbeitet und gespeichert werden kann A D Wandler unterscheiden sich durch die Abtastfrequenz und die Messaufl sung Die Abtastfre quenz angegeben in Hz gibt Auskunft ber die Anzahl der Wandeloperationen pro Sekunde Die Aufl sung angegeben in Bit bestimmt die Genauigkeitsgrenze f r die Umsetzung des Spannungs wertes in einen digitalen Wert Es ist zu beachten dass die Aufl sung des A D Wandlers meist der begrenzende Faktor f r die Schrittweite zwischen zwei Werten eines angeschlossenen Sensors ist Prozess oder Thread Ein Prozess ist formal definiert
52. ALLAI Janos TEP 133 Packet level time synchronization 2008 REDDY Adi M KUMAR AVU P JANAKIRAM D KUMAR G A Operating Systems for Wireless Sensor Networks A Survey 2003 SOUSA Joao B GON ALVES G SOUSA A PINTO J LEBRES P Pilot Experiment of an Early Warning Fire Detection System In 3rd European Workshop on Wireless Sensor Networks Switzerland 2006 SZEWCZYK Robert LEVIS Philip TURON Martin NACHMAN Lama gt BUONADONNA Philip HANDZISKI Vlado TEP 112 Microcontroller Power Management 2007 STOLERU Radu STANKOVIC John A SON Sang H Robust node localization for wireless sensor networks In EmNets 07 Proceedings of the 4th workshop on Embedded networked sensors ACM 2007 ISBN 978 1 59593 694 3 S 48 52 STANKOVIC John A Wireless Sensor Networks In JEEE Computer 41 2008 Nr 10 S 92 95 STOJMENOVIC Ivan Handbook of Sensor Networks 1 Wiley 2005 TANNENBAUM Andrew S Modern Operating Systems 1 Prentice Hall 1992 THEODOR HEIMEIER METALLWERK GMBH Auslegung von Thermostatventilen http heimeier com de index asp art wissenswertes amp id 135 Online Ressource Abruf 29 04 2010 THEEL Oliver Skriptum zur Vorlesung Betriebssysteme 1 2005 UNBEKANNT TOSThreads Tutorial http docs tinyos net index php TOSThreads_Tutorial The_TOSThreads_library Online Ressource Ab ruf 29 04 2010 VERDONE Roberto DARDARI Davide MAZZINI Gianluc
53. Als Ergebnis werden ihm die erfassten Daten in einem Diagramm pr sentiert M chte man die reinen Messdaten haben so kann man auch direkt auf die Datenbank zugreifen Somit sind alle M glichkeiten zur Weiterverarbeitung der Daten gegeben Das vorgestellte Sensornetzwerk ist auch gut erweiterbar Es stehen noch mehrere Interessen zur Definiti on zur Verf gung und ber herausgef hrte Pins des Mikrocontrollers bei dem verwendeten Sensorknoten k nnen weitere Sensoren angeschlossen werden Dieses Sensornetzwerk kann damit allgemein f r die Sammlung von Umweltdaten genutzt werden Dar ber hinaus k nnen leicht weitere Paketformate hinzu gefiigt werden um auch andere Daten bertragen zu k nnen Wird die Menge der Daten die zu senden sind zu gro so kann das Routingprotokoll auch um eine Datenaggregat on erweitert werden Neben der Datenerfassung zur Heizungsregelung kann das Sensornetzwerk auch gut f r Forschungszwecke genutzt werden Es wurde ein eigenes Routingprotokoll implementiert welches es wert ist weiter unter sucht zu werden Es wird bereits die Senderichtung der Sensorknoten mit dem Interesse nach dem besten Gradienten implementiert So kann bereits jetzt die Baumstruktur der Netzwerkknoten zusammengesetzt werden Dar ber hinaus w re es interessant zu untersuchen wie sich das Routingprotokoll in gr eren Sensornetzwerken verh lt Die bei der Bearbeitung gelesenen Ver ffentlichungen zu Praxiseins tzen um fassten selten mehr al
54. Autoren Hartung et al vorgestellt HHSH06 Es hat nicht die Aufgabe Feuer zu erkennen sondern in einem Brandfall die Feuerwehr mit lokalen Wetterinforma tionen zu versorgen Hiermit k nnen der weitere Verlauf und die Ausbreitungsrichtung des Feuers bestimmt werden was dann zur Einsatzplanung herangezogen wird Auch ist eine bessere Brandge fahrabsch tzung von noch nicht betroffenen Gebieten m glich Ein wichtiges Designkriterium war daher das Sensornetzwerk besonders schnell und einfach aufstellen zu k nnen Des Weiteren muss das Sensornetzwerk mit gro en H henunterschieden zurechtkommen um auf Br nde Einfluss neh mende Inversionswetterlagen zu erkennen Eine Inversionswetterlage bezeichnet eine entgegen der 11 3 Techniken in Sensornetzwerken Regel mit zunehmender H he steigende Temperatur Das Sensornetzwerk besteht aus drei einzelnen Sensornetzwerken mit insgesamt 13 Sensorknoten Hinzu kommen f nf Knoten mit Langreichwei tenrichtfunk max mal 50 km sowie WLAN wovon zwei mit Webcams ausgestattet sind Die Ba s sstation besitzt zudem eine Satellitensch ssel die eine Verbindung zum Internet herstellt Die drei Sensornetze werden n Gebieten mit hoher Brandgef hrdung ausgebracht Sie messen Temperatur relative Luftfeuchte Windgeschwindigkeit sowie Windrichtung und senden die Daten alle 15 Mi nuten ber die Richtfunkknoten zur Basisstation Die Sensorknoten werden von zwei AA Batterien mit Energie versorgt und besitzen ein
55. Dateinamen Danach wird die Liste aller Ebenen durchgegangen F r jede Ebene wird der Name der Ebene und der Pfad zur Bilddatei in einer Bin rdatei gespeichert Darauffolgend werden die Anzahl der Sensorknoten der Ebene und die Sensorknoten selbst mit den Positionsangaben gespeichert Zum Laden eines Geb udeplans gibt der Benutzer wiederum zun chst die Datei an in der die zu ladende Geb udeansicht gespeichert ist Danach wird f r jede in der Datei vorhandene Ebene analog zum Hin zuf gen einer neuen Ebene wieder ein Tab erzeugt Diesem werden dann die neu instanziierten Sensor knotenobjekte hinzugef gt die mit den in der Datei gespeicherten Informationen erstellt worden sind Abschlie end wird der Tab in die Liste der Ebenen aufgenommen und angezeigt Um die Ebenen und Sensorknoten auf einfache Art und Weise laden und speichern zu k nnen wurden die Stream Operatoren berschrieben So kann ein Floor oder Sensorknotenobjekt mit dem Stream Operator in einen Dateistrom geschrieben oder aus ihm gelesen werden In Abbildung 5 8 ist das Aktivit tsdiagramm zur Datenbetrachtung und Interaktion mit dem Sensornetz werk abgebildet Um sensorknotenspezifische Funktionen durchzuf hren klickt der Benutzer auf das Icon eines Sensorknotens woraufhin s ch ein Fenster ffnet M chte der Benutzer die Messdaten betrachten so kann er hier ein Zeitfenster angeben woraufhin das Client Programm die Daten beim Server anfragt Treffen angeforderte Daten e
56. Die Kommandos sendPeriodicData sendBestGradient und sendInterestTable sorgen wie bereits er w hnt f r die Interessenbedienung der Schnittstelle Network Das Kommando sendPeriodicData packt aus den bergebenen Daten ein Datenpaket und reiht es in die slowQueue ein w hrend sendBestGradient die Sensorknotenadresse des besten Gradienten n mmt und sie in einem Informationspaket verpackt wel ches in die fastQueue eingereiht wird Bisher nicht implementiert ist sendInterestTable Die Kommandos sendOneShotInterest sendPeriodicInterest und newGradient werden vom Mechanismus der Interes senverbreitung im Modul DirectedDiffusionP genutzt um neue Interessen zu versenden und einen neuen Gradienten in die Gradiententabelle aufzunehmen Beim Versenden neuer Interessen wird aus den ber gebenen Werten das jeweilige Interessenpaket gepackt und in die fastQueue eingeh ngt Wird ein neuer Gradient bergeben so wird zun chst d e Gradiententabelle aktualisiert also veraltete Gradienten entfernt und anschlie end der neue Gradient einsortiert Dar ber hinaus definiert die Schnittstelle Network das Event new nterest Dieses Ereignis wird von Net workP beim Eintreffen eines neuen Interessenpakets ausgel st DirectedDiffusionP implementiert einen Eventhandler der das Interesse entgegennimmt und verarbeitet Die Schnittstelle Error bietet allen Komponenten die M glichkeit an Informationspakete zu verschicken NetworkP packt analog zu den
57. Ein reaktives Routingprotokoll ist ausreichend da statische Umweltparameter erfasst werden vergleiche Abschnitt 3 6 Directed Diffusion wird n einer auf das Sensornetzwerk zugeschnittenen Form f r TinyOS innerhalb dieser Arbeit in Abschnitt 4 2 entworfen und seine Implementierung in Abschnitt 4 4 vorgestellt Im Folgenden geht es um die Auswahl des Zeitsynchronisationsprotokolls vergleiche hierzu auch Ab schnitt 3 7 Das Routingprotokoll Directed Diffusion ben tigt keine Zeitinformationen und stellt daher keine Anforderungen an das Zeitsynchronisationsprotokoll Anforderung E3 verlangt dagegen eine Genau igkeit von 250 ms um die Sensorwerte eindeutig einem Zeitpunkt zuordnen zu k nnen Alle vorgestellten Synchronisationsprotokolle bieten eine Genauigkeit weit unter diesem Wert an RBS scheidet jedoch aus da es speziell f r relative Zeitsynchronisation ausgelegt ist In diesem Sensornetzwerk ist eine einheitliche globale Zeit erforderlich um Messungen gleichzeitig zu starten und Sensorwerte dezentral mit einheitli chen Zeitstempeln zu versehen Das Zeitstempeln der Datenpakete auf die Bas sstation zu beschr nken ist nicht ausreichend da der Paketfluss nicht deterministischen Zeitspannen unterliegt In dieser Arbeit wird das FTSP verwendet Gegen ber dem TPSN synchronisiert es genauer und organisiert seinen Baum implizit Ausfallende Sensorknoten beinflussen nicht die Zeitsynchronisation des FTSP Be steht keine Verbindung mehr zu einem Tei
58. Fehler auftritt wird das aktuelle Paket aus seiner Warteschlange entfernt In jedem Fall beginnt der Vorgang anschlie end von vorne Die fastQueue ist neutral gegen ber dem AM Typ des Pakets Jedes Paket aus der fastQueue wird auf dem AM Kanal gesendet der in dem Paket gesetzt wurde Die slowQueue hingegen sendet alle Daten auf dem Datenkanal Bei einer m glichen Erweiterung kann so die fastQueue auch f r beliebige andere Pakete genutzt werden die slowQueue bleibt Datenpaketen vorbehalten damit hier eine eventuelle Aggregation der Messwerte stattfinden kann 4 2 2 Entwurf der Anwendung Im Folgenden wird die Anwendung entworfen Hierzu wird zun chst gekl rt welche Interessen in dem System innerhalb dieser Arbeit implementiert werden sollen Anforderung El verlangt die Datenerfassung siehe Abschnitt 2 2 Die Sensorknoten besitzen Sensoren f r die Temperatur die Luftfeuchte den Lichtwert und die Batteriespannung Es soll m glich sein die Werte in jeder beliebigen Kombination erfassen zu k nnen Daher gibt es insgesamt 24 16 verschiedene periodische Interessen Die unteren vier Bit von der Art des Interesses stehen hierbei jeweils f r eine Messgr e Anforderung E6 verlangt die Ansteuerung von Aktoren Die Sensorknoten besitzen drei LEDs die hier als Attrappe f r einen Aktor herhalten sollen Das erste einmalige Interesse ist die Ansteuerung der LEDs wobei der mitgegebene und acht Bit breite Wert den Zustand jeder einzelnen LED ko
59. Funkschnittstelle vermittelt Alle wichtigen Informationen zur Basis station sind m Abschnitt 4 3 zu finden 4 2 1 Entwurf von Directed Diffusion Durch eine Anpassung von Directed Diffusion auf den gegebenen Anwendungsfall der Temperaturpro filerfassung kann das Routingprotokoll effizienter in Bezug auf Bandbreite und Rechenleistung gemacht werden Damit wird implizit auch der Energieverbrauch gemindert Dar ber hinaus st das Format der Interessentabelle und der Interessen ebenfalls anwendungsabh ngig Zun chst werden die Interessen im Sensornetzwerk n her betrachtet Es k nnen insgesamt zwei verschie denartige Interessen ausgemacht werden Zum einen ist es die Hauptaufgabe des Sensornetzwerks die Sensordaten in periodischen Abst nden zu erfassen und an die Basisstation zu schicken Zum anderen gibt es Aufgaben die nur eine einmalige Aktion bedingen wie die Aktorenanstuerung und das Setzen von Kalibrierungswerten f r die Sensoren Die beiden Typen werden im Folgenden periodisches und ein maliges Interesse genannt In Listing 4 1 sind die definierten Paketformate f r diese zwei Interessenarten aufgefiihrt Beide Typen bestehen aus der Sensorknotenadresse dem Gradienten des Senders der Art des Interesses einer eindeutigen Interessen ID und einem Zieladressbereich zur Bestimmung des Empf ngers Dar ber hinaus besitzt ein periodisches Interesse noch eine Startzeit eine Zeit f r das Messende und die Messaufl sung Ein einmaliges Inte
60. Hinzu kommen zwei Funktionen um aus den Werten der Attribute das Paket inklusive Header zu packen und umgekehrt Die Klasse seriallnterface bietet einen Slot zum Senden der Interessenachrichten an Hierzu reiht sie das bergebene Interesse in die Sendeliste des seriellen Threads ein Der eigentliche Sendevorgang wird von der Klasse serialThread ausgef hrt welche den seriellen Thread implementiert Dieser schaut immer wie der nach ob neue Datenpakete bereitstehen oder ob Interessen gesendet werden sollen In diesem Fall findet er das neue Interesse vor und sendet es an die Bas sstation Der eigentliche Zugriff auf die seriel le Schnittstelle wird von der Klasse serialSource realisiert der den seriellen Netzwerkstapel von TinyOS implementiert Wenn ein neues Paket vom Sensornetzwerk eintrifft so reicht serialThread es an die Klasse seriallnterface weiter wo die Art des Datenpakets bestimmt wird Je nach Art wird dann analog zu den Interessenobjekten ein Datenobjekt erstellt und per Signal an die anderen Komponenten des Servers weitergeleitet Das Senden und Empfangen wird mit einem Thread implementiert damit langandauernde Operationen im Server nicht das Empfangen von Paketen behindern k nnen So ist sichergestellt dass der Nachrichtenpuf fer des Betriebssystems n cht berlaufen kann und somit keine Pakete verloren gehen Den Zugriff auf die Datenbank realisiert die Klasse databaselnterface welche Slots zum Speichern der Daten Interessenp
61. Nein Nein Nein Tabelle 3 5 Eine bersicht ber verschiedene Routingprotokolle f r Sensornetzwerke nach AKK04 und 37 3 Techniken in Sensornetzwerken Das Flooding Protokoll ist der klassische Ansatz der einfachen Datenweiterleitung ohne komplexen Rou tingalgorithmus und Kenntnisse ber die Netzwerkstruktur VDMC08 Seite 174 Beim Flooding wird von jedem Sensorknoten jedes erhaltene Paket an alle Nachbarn weitergeleitet Dieser Prozess setzt sich fort bis entweder eine bestimmte Anzahl an Hops berschritten wurde oder das Paket das Ziel erreicht hat Ein Beispiel hierf r ist in Abbildung 3 14 gegeben worin Sensorknoten A ein Paket an Sensorknoten C schicken m chte Zun chst versendet A ein Paket an seine beiden Nachbarn B und E vergleiche Abbildung 3 14 a Da B und E jeweils nicht der Zielknoten sind versenden sie das Paket weiter an alle ihre Nachbarn A D und C vergleiche Abbildung 3 14 b C ist das Ziel und versendet im n chsten Schritt das Paket nicht weiter Die anderen beiden Knoten A und D brechen die Weiterleitung aufgrund des Hop Z hlers ab sofern die maximale Hop Entfernung erreicht wurde Die Hop Entfernung in diesem Sensornetz betr gt zwe da jeder Sensorknoten jeden Sensorknoten mit minimal zwei Hops erreichen kann Eine bessere Abbruchentfernung sind jedoch drei Hops Hiermit kann ein beliebiger Sensorknoten ausfallen und alle verbleibenden k nnen sich noch erreichen In diesem Fall w rden in dem oben gen
62. Redundanzen auftreten Die Routingprotokolle sollten hnliche Daten in mehreren Paketen erkennen und zu einem aggregieren Die Anzahl der bertragungen wird damit reduziert und sowohl Energieversorgung als auch Bandbreite k nnen geschont werden Die Aggre gation wird hierbei von einer Aggregationsfunktion vorgenommen Diese implementiert Methoden die von der Filterung der Daten nach Duplikaten Bildung von Minimum Maximum sowie Durch schnittswert der Daten bis hin zu komplexen Berechnungen reichen Es ist eine Fusion der Daten e1 ner Umweltgr e von mehreren Sensorknoten mit verschiedenen Messaufl sungen zu einem Datum 34 3 6 Netzwerkprotokolle fiir Sensornetzwerke mit besserer Aufl sung und geringerem Hintergrundrauschen denkbar Die ben tigte Rechenleistung f r solche Verfahren muss vom Routingprotokoll bedacht werden Die Aggregation der Daten ist nur sinnvoll wenn die eingesparte Energie durch weniger Kommunikation den Mehraufwand bei der Berechnung wieder gutmacht Heterogenit t des Sensornetzwerks Nicht in allen Sensornetzwerken besitzen alle Sensorknoten dieselben F higkeiten in Bezug auf Rechenleistung Speicherverm gen Kommunikation und Ener gieversorgung In heterogenen Sensornetzwerken k nnen die einen Sensorknoten f r die Datenfu sion bestimmt sein andere bilden einen sicheren Funkweg zur Basisstation und wiederum andere Sensorknoten nur f r d e Datenerfassung zust ndig Das verwendete Routingprotokoll muss s
63. S wird in der Version 2 x aus dem TinyOS CVS vom 16 07 2009 verwendet da die se zu Beginn der Implementierung die neueste Version ohne bekannte Fehler war Bezugs quelle http sourceforge net projects tinyos Als Entwicklungsumgebung kommt Eclipse mit dem von der ETH Z rich herausgegebenen YETI 2 Plugin f r TinyOS zum Einsatz Bezugsquelle http tos ide ethz ch wiki Der Quellcode wird mit dem nesC Compiler der Version 1 3 1 in C ber setzt und mit dem msp430 gcc n der Version 3 2 3 f r den Sensorknoten gebaut Uisp n der Version 20050519t nyos wird genutzt um das Bin rabbild auf den Sensorknoten zu schreiben Die letzten drei 61 4 Entwurf und Implementierung des Sensornetzwerks Werkzeuge wurden aus dem Ubuntu Repository verwendet Obwohl man die Komponenten auch mit der UML 2 Spezifikation beschreiben kann Bac09 kommt in dieser Arbeit das YETI 2 Plugin zur Erstellung der Komponentendiagramme zum Einsatz Dieses ist in der Lage automatisch aus dem Quellcode solche Diagramme zu erzugen Nachdem das verwendete Betriebssystem geklart wurde steht der Netzwerkstapel fest vergleiche Unterab schnitt 3 5 2 Mit diesem ist eine energieeffiziente Kommunikation zwischen benachbarten Sensorknoten m glich Es fehlt ein geeignetes Routingprotokoll um die Kommunikation zwischen mehr als ein Hop entfernten Sensorknoten zu gew hrleisten Im Folgenden werden die Eigenschaften des Sensornetzwerks n her untersucht um darauf aufbauend ei
64. SP synchronisiert die Uhren aller Sensorknoten im Sensornetzwerk zu der Uhr eines Root genann ten Sensorknotens Hierbei ist die lokale Zeit des Roots die globale Zeit des Sensornetzwerks Zun chst wird die Synchronisation der Sensorknoten mit direkter Funkverbindung zu dem Root betrach tet Hierzu sendet der Root n periodischen Abst nden Broadcastnachrichten mit einem Zeitstempel des Versendezeitpunktes TinyOS bietet ein Modul zum Versenden spezieller Synchronisationspakete an Wie bereits beschrieben wurde findet das Hinzuf gen des Zeitstempels beim Versenden und das Erfassen der Ankunftszeit beim Empfangen auf der MAC Schicht innerhalb des Kernels statt Es ist somit auch die Aufgabe des Betriebs systems diese Operationen durchzuf hren Da alle Synchronisationsprotokolle ohne externe Infrastruktur denselben im Unterabschitt 3 7 1 beschriebenen Fehlerquellen bei der Funk bertragung unterliegen bietet es s ch f r das Betriebssystem an eine Schnittstelle zum Versenden von Synchronisationspaketen bereit zustellen Die Implementierungen der einzelnen Synchronisationsprotokolle bleiben somit plattformunab h ngig und die Forschungen zur Bereinigung der Zeitfehler bei der bertragung k nnen zentral an einer Stelle umgesetzt werden In TinyOS existiert die Schnittstelle TimeSyncAMSend mit der TimeSyncPackets versendet werden k n nen MS08 Wird von einer Anwendung ein Event zum Versenden eines solchen Pakets ausgel st so merkt sich de
65. Sensornetzwerks Daher sollte das verwendete Verfahren m glichst we nig Speicher und Rechenleistung konsumieren um unter anderem einen geringen Energieverbrauch zu gew hrleisten Dar ber hinaus sollte der Funkkanal nicht mehr als n tig belastet werden Eine weitere An forderung ist die Skalierbarkeit Das Verfahren sollte sowohl in kleinen als auch in gro en sowie in dicht als auch n d nn besiedelten Netzen gleich gut mit den Ressourcen umgehen Dabei sollte die Genauigkeit der Positionsbestimmung nicht von diesen Parametern abh ngig sein Hinzu kommt die Forderung nach Robustheit Das Verfahren sollte tolerant bei ungenauen Distanzen und Winkelangaben zu Ankerknoten sowie bei Kommunikationsfehlern sein und die Beschaffenheit des Aufstellungsgebietes sollte keine Rol le spielen Als letzte Anforderung st d e Selbstorganisation zu nennen Die Positionsbestimmung sollte aus dem Netz selber erfolgen es sollte keine zus tzliche Infrastruktur vorausgesetzt werden Bou09 Seite 310 Kein bisher bekanntes Positionsbestimmungsverfahren wird allen Anforderungen gerecht es muss pas send zu der Anwendung eine Abw gung zwischen den oben genannten Anforderungen getroffen werden Aus diesem Grund ist eine Vielzahl von Verfahren entwickelt worden die nach den folgenden Punkten klassifiziert werden k nnen Verteiltes oder zentrales Verfahren Bei den zentralen Positionsbestimmungsverfahren wird die Po sitionsbestimmung von einem oder wenigen spezie
66. Spanien Griechenland Kalifornien oder Australien haben jedes Jahr mit schweren Waldbr nden zu k mpfen Es ist wichtig die Br nde so schnell w e m glich zu erkennen je fr her man den Brand entdeckt umso kleiner und damit einfa cher ist es ihn zu l schen VDMCO0O8 Seite 17 Ein noch nicht sehr weit entwickeltes Sensornetzwerk zur Erkennung von Waldbr nden wurde von Congalves et al ver ffentlicht Die ausgebrachten Sensoren messen die Temperatur die relative Luft feuchte und Lichtwerte SGS 06 Die Daten werden an eine Basisstation weitergeleitet wo sie weiterverarbeitet gespeichert und zus tzlich per GSM an einen Server geschickt werden Mit Hilfe einer eigens entwickelten Software namens MonSense k nnen die Daten am Server oder per Laptop direkt an der Basisstation eingesehen werden In ihrem letzten Feldeinsatz wurden 32 Sensorkno ten auf einer Fl che von 20 Hektar ausgebracht was bei einer gleichm igen Verteilung ca einem Sensor pro 6250 m entspricht Mit den gegebenen Sensoren und der eingesetzten Software kann ein Waldbrand jedoch nur bei einem gro en Feuer in unmittelbarer N he zum Sensor detektiert werden Das Experiment hat nach Aussage der Autoren eher einen Forschungscharakter zur Ermittlung einer optimalen Sensorknotenverteilung und dient zur Untersuchung von Routingprotokollen Ein fortgeschritteneres und bereits im akt ven Ensatz befindliches System mit dem Namen Fire Wea ther Net Fire WxNet wurde von den
67. TSP wurde von Mar ti t al im Jahr 2004 vorgestellt MKSLO04 Es stellt analog zu TPSN eine globale Uhrzeit zur Verf gung und verfolgt den Ansatz el ner in talen Synchronisation welche die gesamte Lebensdauer des Sensornetzwerks aufrechterhalten wird Wie der Name FTSP bereits impliziert erreicht dieses Protokoll eine Zeitsynchronisation indem es in re gelm igen Abst nden das gesamte Netzwerk mit Synchronisationsnachrichten flutet Hierdurch ist das FTSP besonders robust gegen Kommunikationsfehler und dynamische Netzwerktopologien Die Synchro nisationsnachrichten werden wie bei dem TPSN in der MAC Schicht mit einem Zeitstempel versehen so dass die Zeit zum Senden au er acht gelassen werden kann Die Autoren behaupten ebenfalls von ihrem Protokoll dass es besonders ressourcenschonend sei insbesondere bei der Bandbreite der Kommunikati on Ein Vergleich der Synchronisationsprotokolle RBS und TPSN mit dem FTSP findet am Ende dieses Unterabschnittes statt Das FTSP wird f r das in dieser Arbeit entworfene Sensornetzwerk zur Erfassung eines Temperaturprofils in Wohn und B ror umen zur Zeitsynchronisation benutzt Begr ndet wird diese Auswahl in Unterab schnitt 4 1 Dieses Synchronisationsverfahren wird daher besonders ausf hrlich besprochen und die Aus f hrungen beziehen sich auf die TinyOS beiliegende Implementierung Die Quelltexte sind in voller Lange auf der beiliegenden CD enthalten s ehe A Funktionsweise von FTSP Das FT
68. Zeit von Knoten sieben Um in einem Netzwerk solche Zeitpfade zur Konvertierung zu organisieren wird ein wie in Abbildung 3 19 b zu sehender Graph konstruiert In diesem sollte m glichst der k rzeste Weg zwischen den Punkten gefunden werden da sich bei jeder Konvertierung die Ungenau igkeiten addieren Diese Vorgehensweise skaliert nicht gut mit der Gr e des Netzwerkes Die Autoren schlagen vor dass die Zeitkonvertierung Bestandteil des Routingprotokolls sein K nnte In diesem Fall werden die erfassten Daten auf dem Weg von der Quelle zur Senke bei jedem Hop in die Zeit des Empf ngers konvertiert Alle bei der Senke eintreffenden Daten liegen dann in der Zeit der Senke vor Ein weiterer Punkt ist die Synchronisierung relativ zu einer Zeit wie der koordinierten Weltzeit UTC RBS bietet von Haus aus eine M glichkeit die Knoten relat v zu einer anderen Zeit zu synchronisieren Es liegt daher nahe einen Sensorknoten mit einem GPS Empf nger auszustatten und allen Sensorknoten im Netzwerk bekannt zu machen dass man sich bei diesem einen Sensorknoten mit der UTC Zeit synchroni s eren kann 3 7 3 Timing sync Protocol for Sensor Networks TPSN Das Timing sync Protocol for Sensor Networks TPSN wurde von Ganeriwal et al im Jahr 2003 vorgeschlagen GKS03 Im Gegensatz zu RBS beruht es nicht auf einer Empf nger Empf nger Synchronisierung sondern verfolgt den klassischen Ansatz der Sender Empf nger Synchronisierung Die Autoren sind de
69. a CONTI Andrea Wireless Sensor and Actuator Networks 1 Elsevier 2008 WERNER ALLEN Geoff LORINCZ Konrad JOHNSON Jeff LEES Jonathan WELSH Matt Fidelity and yield in a volcano monitoring sensor network In Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation USENIX Associa tion 2006 S 27 43 WERNER ALLEN Geoffrey LORINCZ Konrad WELSH Matt MARCILLO Omar JOHNSON Jeff RUIZ Mario LEES Jonathan Deploying a Wireless Sensor Network on an Active Volcano In IEEE Internet Computing 10 2006 Nr 2 S 18 25 WIKIPEDIA List of wireless sensor nodes Wikipedia The Free Encyclope dia Version 2010 http en wikipedia org w index php title List_ of wireless sensor _nodes 0ldid 354054449 Online Ressource Abruf 7 04 2010 109 Literaturverzeichnis WXR T04 WHANG Daniel H XU Ning RANGWALA Sumit CHINTALAPUDI Krishna GO XOL 07 110 ZH09 VINDAN Ramesh WALLACE John W Development of an Embedded Networked Sensing System for Structural Health Monitoring In Proceedings of the International Workshop on Smart Materials and Structures Technology Center for Embedded Network Sensing 2004 XU Yurong OUYANG Yi LE Zhengyi FORD James MAKEDON Fillia Mobile anchor free localization for wireless sensor networks In DCOSS 07 Proceedings of the 3rd IEEE international conference on Distributed computing in sensor systems Spring
70. akete und Gradienten bereitstellt Hinzu kommt ein Slot und ein Signal zum Auslesen der gespeicherten Sensorwerte Der Zugriff auf die Datenbank st ebenfalls in einem Thread realisiert Insbesondere Anfragen aus dem Client Programm nach aufgezeichneten Daten k nnen lange dauern In dieser Zeit werden andere auflaufende Anfragen in zwei Listen vorgehalten Die Schnittstelle zum Netzwerk und damit zum Client Programm realisiert die Klasse networkInterface Diese instanziiert den von Qt mitgelieferten TCP Server Die Netzwerkschnittstelle bietet Signale und Slots f r die bereits beschrieben Anfragen des Client Programms an Hierbei werden zwischen Server und Client Programm Daten mithilfe von Objekten ausgetauscht z B Interessenobjekte oder Ergebnisobjekte einer Datenanfrage Um die Objekte ber die serielle Netzwerkverbindung zu bertragen werden sie se rialisiert Zur Serialisierung wurden die Stream Operatoren der einzelnen Objekte tiberschrieben Damit k nnen Objekte in einen Datenstrom geschrieben werden und umgekehrt Zentrales Element des Servers ist die Klasse control welche je eine Instanz der beschriebenen Klassen besitzt Zu dem beherberst s e die Liste aller Messungen und den Timer zum periodischen Senden der pe riodischen Interessen Bootet der Server so startet control die beiden Threads setzt die serielle Schnittstelle zum Sensornetzwerk und veranlasst die Datenbankschnittstelle dazu sich mit der Datenbank zu verbinden Dar ber
71. akt zu den Satelliten Somit ist es am besten f r das Freie und nur sehr bedingt f r Innenr ume geeignet GPS setzt keine Zeitsynchronisation voraus und ermittelt dreidimensionale Koordi naten 3 8 2 Bounding Box Verfahren e Ankerknoten 6 Ankerknoten o Unbekannter Knoten e Unbekannter Knoten a Bounding Box mit zwei Ankerknoten b Bounding Box mit drei Ankerknoten Abbildung 3 21 Die Positionsbestimmung mit Bounding Boxes Die Bounding Box Methode ist ein einfach zu berechnendes Positionsbestimmungsverfahren Es grenzt die Fl che in der sich die unbekannten Sensorknoten befinden k nnen ein Wie in Abbildung 3 21 dar gestellt wird um jeden Ankerknoten i mit der Position x y innerhalb der Reichweite des unbekannten Sensorknotens ein Quadrat mit der Seitenl nge 2 d gelegt Dabei bezeichnet d den Abstand zwischen dem Ankerknoten und dem unbekannten Sensorknoten Nun kann die blau gef rbte Schittfl che der einzelnen Quadrate wie folgt berechnet werden Imax x di max y d x min x di min y d mit i 1 n Als Position des unbekannten Kontens wird die Mitte der berechneten Schnittflache genommen In Abbil dung 3 21 b ist eine solche Situation mit drei Ankerknoten abgebildet Die Ungenauigkeit ist gro wenn die Ankerknoten und der Sensorknoten auf einer Linie liegen welche die Quadrate nahe der Mitte ihrer Seiten schneidet Vergleiche hierzu Abbildung 3 21 a In einem solchen Fall k nnte es auc
72. als Attribute besitzen Hinzu kommt noch die Adresse des messenden Sensorknotens welche zusammen mit der realen Zeit den Prim rschl ssel ergibt Jeder Sensor knoten besitzt beliebig viele Messwerte der Messgr en jeder Messwert geh rt aber eindeutig zu einem 90 5 2 Entwurf und Implementierung des Servers Sensorknoten Au erdem werden in der Datenbank die periodischen Interessen mit ihren Werteauspr gun gen gespeichert Der Prim rschl ssel ist hierbei die eindeutige Interessen ID wobei zu beachten ist dass lediglich die erste genutzte ID gespeichert wird Wenn der Timer im Server das Interesse erneut versendet wird jeweils eine neue Interessen ID generiert welche aber nicht in der Datenbank gespeichert wird Die Tabelle mit den Interessen findet in dem hier vorgestellten System noch keine Verwendung Sie wurde lediglich der Vollst ndigkeit halber mit aufgenommen In Abbildung 5 5 st das Klassendiagramm mit den wichtigen Klassen des Servers zu sehen Funktionen und Attribute die f r das Verst ndnis unwesentlich s nd wurden weggelassen Es wird zun chst die Schnittstelle zum Sensornetzwerk betrachtet Ein Interesse ist entweder ein Objekt der Klasse periodicInterest oder oneShotInterest Beide wurden von der Klasse interest abgeleitet um per Polymorphie an Funktionen derselben Signatur bergeben werden zu k nnen und besitzen als Attribute die interessenspezifischen Gr en auf welche per Setter und Getter zugegriffen wird
73. andos implementiert werden Im Listing 3 2 sind die Schnittstellendefinitio nen der f r dieses Programm n tigen Schnittstellen zu sehen In dem hier vorgestellten Beispiel wird eine Schnittstelle zum Kernel ben tigt die das Ereignis booted ausl st sobald das Betriebssystem hochgefahren ist Hinzu kommt eine Schnittstelle zu der LED Komponente interface Boot event void booted interface Leds command void led0On command void led0Off Listing 3 2 Die benutzten Schnittstellen des Hallo Welt Programms Mittels einer Konfiguration werden die Schnittstellen mehrerer Komponenten schl ssig miteinander ver bunden Es ist so eine bergeordnete Komponente entstanden die mithilfe anderer Komponenten eine Funktion anbietet In Listing 3 3 ist die Konfiguration der Hallo Welt Komponente zu sehen Im oberen Bereich Zeile 1 werden die von dieser Komponente ben tigten und angebotenen Schnitstellen genannt 23 3 Techniken in Sensornetzwerken configuration HalloWeltAppC implementation components MainC LedsC HalloWeltC Mio o ouluin ea Hed Welt Leds Leds Ca leds Listing 3 3 Die Konfiguration eines Hallo Welt Programms Da es sich bei dieser Konfiguration um die Hauptkonfiguration der Anwendung handelt ist der Teil hier leer Anschlie end werden die benutzten Komponenten aufgef hrt und die Schnittstellen miteinander ver bunden LGO9 Seite 10ff TinyOS besteht aus einer Ansammlun
74. angesehen werden Wie in Abbildung 3 11 zu sehen ist werden die Serviceroutinen von der Service Schicht verwaltet Sie h lt Informationen ber die laufenden Sevices vor und erm glicht anderen Prozessen installierte Services zu finden Ein Service besteht immer aus einem Serviceinterface und einem Prozess der das Interface implementiert Anwendungsprogramme die einen Service nutzen wollen werden zu diesem Zweck gegen ein Serviceinterfacestub gelinkt das die Nutzung erm glicht Der Serviceinterfacestub kapselt die Nutzung von Services so dass sie aus Sicht der Anwendungsprogramme einem Funktionsaufruf gleichen Hierbei nutzt der Stub die Service Schicht zur Lokalisation des Serviceinterfaces vergleicht die Versionsnummer des Services mit sich selbst und f hrt bei positivem Ergebnis die Funktion aus Anwendungsprozess Serviceinterface Serviceprozess Abbildung 3 11 Der Funktionsaufruf von Serviceroutinen in Contiki OS nach DGV04 Die Contiki Energieverwaltung Contiki besitzt keine Abstraktionsschicht f r die Energieverwaltung Es geht davon aus dass die Energie verwaltung anwendungsabh ngig ist und somit auch von dieser implementiert werden muss Hierzu gibt der Scheduler Auskunft ber die Anzahl der laufbereiten Prozesse auf deren Grundlage die Anwendung das System herunterfahren und den Prozessor in einen Schlafmodus versetzen kann Wacht der Prozessor durch eine externe Unterbrechung wieder auf so springt der Pollingm
75. ann neu berechnet wenn ein Dirty Bit gesetzt ist Die Hardwaretreiber der einzelnen Ger te sind daf r verantwortlich das Dirty Bit bei einer nderung zu setzen Die hier beschriebene Energieverwaltung ist implizit ein Anwendungsprogramm muss sich nicht um die Steuerung des Energiezustandes k mmern Jedoch reagiert die Energieverwaltung lediglich auf die mo mentane Auslastungssituation In einigen F llen ben tigt eine Anwendung viel Rechenleistung in kurzen Abst nden oder geringe Latenzen welche bereits vom Aufwachen aus dem niedrigsten Energiezustand berschritten werden In solchen F llen hat eine Komponente die M glchkeit mittels der Schnittstelle Mcu PowerOverride den niedrigsten erlaubten Energiezustand anzugeben Die Energieverwaltung bleibt zwar implizit aber die Anwendung kann so die Energieverwaltung begrenzen oder ausschalten Neben dem Mikrocontroller ist der Funkchip der gr te Energieverbraucher Dieser wird mit dem LPL zeitweise automatisch ausgeschaltet Eine Beschreibung des LPLs von TinyOS fand bereits im vorherigen Unterabschnitt statt 3 5 3 MANTIS OS Das MANTIS Operating System MOS ist ein weitverbreitetes Betriebssystem Es ist angelehnt an UNIX und bietet mehr eingebaute Funktionen als TinyOS MOS Anwendungen werden in C geschrieben und innerhalb von Threads ausgef hrt Der MOS Kernel beinhaltet einen Scheduler und Mechanismen zur Synchronisation Sto05 Seite 188 Hauptkonstruktionsmerkmale sind Flexibilit t
76. annten Beispiel die Sensorknoten A und D jedoch noch ein weiteres Mal das Paket weiterleiten Die gr te Schw che von Flooding ist die schlechte Skalierbarkeit gegen ber der Sensornetzgr e Es wird ein Vielfaches mehr an Paketen versendet als n tig berlappungen f hren dazu dass ein Sensorkno ten mehrfach die Kopie desselben Paketes erh lt VDMC08 Seite 174 Reflexionen f hren dazu dass sich gleiche Pfade mehrmals abdecken und die Nachrichtenzahl im Sensornetzwerk sprunghaft ansteigt Diese Effekte verursachen nicht unerhebliche Probleme bei der Kommunikationsbandbreite und der Energiever sorgung Flooding ist blind f r die Netzwerkstruktur und die aktuell vorhandenen Ressourcen hat aber den Vorteil dass es robust gegen ber Sensorknotenausf llen ist und die Pakete an alle Knoten im Netzwerk weiterleitet CIOS Seite 12 GOSSIP Eine leichte Verbesserung von Flooding ist das GOSSIP Protokoll Erh lt ein Sensorknoten ein Paket so sendet es dies an genau einen zuf llig ausgew hlten Nachbarn weiter Dieser Vorgang wird fortgesetzt bis das Paket das Ziel erreicht hat Hierdurch kann der sprunghafte Anstieg bei der Kommunikation vermieden werden jeder Sensorknoten hat zu jedem Zeitpunkt nur ein einziges Paket ASSC02 Das Uberlappungs problem bleibt jedoch weiterhin bestehen VDMC08 Seite 174 GOSSIP hat zudem den gro en Nachteil dass die bertragungszeit der Pakete sehr lang werden kann Es eignet sich somit eher schlecht
77. ation des Systems herangezogen werden 2 1 Aufgabenbeschreibung Es soll ein System zur Erfassung der Temperaturverteilung innerhalb von Wohn und B ror umen entwor fen und implementiert werden Dieses besteht aus zwei Komponenten Die eine Kompnente ist ein wie in Kapitel 1 beschriebenes Sensornetzwerk zur Erfassung von Temperatur Luftfeuchte und Lichtwerten an neuralgischen Stellen innerhalb des Geb udes Die andere Komponente ist ein PC Programm welches in der Lage ist die aufgezeichneten Sensorwerte persistent zu speichern und dem Benutzer eine einfache Betrachtung der Daten zu erm glichen Bei dem Sensornetzwerk sind verschiedene Herausforderungen zu bew ltigen welche im Folgenden kurz beschrieben werden Hierzu ist jeweils eine umfassende Literaturrecherche durchzuf hren der aktuelle Stand der Technik zu dokumentieren und eine geeignete L sung f r das jeweilige Problem auszuw hlen oder zu entwickeln Die Betriebsdauer eines Sensorknotens ist bei fehlerfreiem Betrieb durch die Batterielaufzeit begrenzt CES04 So ist es enorm wichtig m glichst schonend mit den Energiereserven umzugehen um die Lauf zeit zu maximieren Hierzu soll der Knoten m glichst oft in einen Ruhezustand versetzt werden Weiterhin ist f r eine gleichzeitige Sensordatenerfassung und f r die Kommunikation zwischen den Sensorknoten eine Zeitsynchronisation der Knoten untereinander erforderlich Ein weiterer wichtiger Punkt in einem Sensornetzwerk ist die ve
78. ben PC sitzen an dem auch das Sensornetz angeschlossen ist komplexe Auswertung Es ist w nschenswert dass Algorithmen gefunden werden die auf Basis der aufgezeichneten Temperaturverl ufe eine Empfehlung f r die Heizleistung geben Damit kann dann eine intelligente Heizungsregelung implementiert werden 3 Techniken in Sensornetzwerken Dieses Kapitel f hrt in die Welt der Sensornetze ein Es werden Grundlagen und Begriffe gekl rt und die Techniken welche fiir den Entwurf und die Implementierung eines Sensornetzes zur Temperaturpro filerfassung in Wohn und B ror umen ben tigt werden vorgestellt Dieses Kapitel ist auch als schneller Einstieg in den Themenbereich der Sensornetzwerke f r Folgearbeiten zu diesem Thema innerhalb der Abteilung Systemsoftware und verteilte Systeme gedacht Zun chst werden in Abschnitt 3 1 Begriffe aus der Welt der Sensornetzwerke definiert Sensornetzwerke entwickeln sich zu einer wichtigen neuen Klasse von eingebetteten Systemen in unserer Umwelt Bou09 Seite 21 Sie werden fiir eine Vielzahl von verschiedensten Anwendungen eingesetzt eine ausgew hlte bersicht in Abschnitt 3 2 gibt einen Einblick in die Anwendungsscenarien fiir Sensor netzwerke In Abschnitt 3 3 werden dann die von der Abteilung angeschafften Sensorknoten vorgestellt Gateway Benutzerschnittstelle 4 m Le G sersorknotr Abbildung 3 1 Der typische Aufbau eines einfachen Sensornetzwerks Verbindung Ein
79. ber wie bereits beschrieben bei der Funkkommunikation bei Reichweiten unter 300 Metern zu vernachl ssigen F r die Anwendungen und hier im Speziellen das FTSP verhalten sich diese Sychronisationspakete wie normale Pakete auch Trifft jetzt bei den Sensorknoten ein vom Root gesendetes Paket ein so wird es an die FTSP Instanz weitergereicht Diese entnimmt dem Paket den vom Root hinzugef gten Zeitstempel der globalen Zeit zum Sendeevent aus dem Datenbereich des Pakets und erfragt bei dem Betriebssystem die oben beschriebene lokale Zeit des Sendeevents Eine solche Kombination von Zeitstempeln wird auch Syn chronisationspunkt genannt Aus hm l sst sich durch Differenzbildung der Offset der Uhren bestimmen Alle Sensorknoten besitzen eine Tabelle in der sie die letzten n Defaultwert n 8 Synchronisations punkte bestehend aus der eigenen lokalen Zeit des Sendeevents beim Root und dem berechneten Offset vorhalten Mit Hilfe dieser Tabelle wird eine lineare Regression durchgef hrt um den Skew zu berechnen welche bei jedem neu eintreffenden Synchronisationspaket neu durchgef hrt wird FTSP bietet anderen Modulen eine Schnittstelle zum Zugriff auf die globale Zeit und zum Umrechnen zwi schen lokaler und globaler Zeit an dessen Implementierung in Listing 3 4 dargestellt wird Um die lokale Zeit in die globale Zeit umzurechnen wird der Durchschnitt aller Offsets und der durch die unterschiedlich schnell laufenden Uhren hervorgerufenen Fehler a
80. ca drei Sekunden abwei chenden Zeitstempel zu dem der Luftfeuchte aufwies Die letzte Messung der Luftfeuchte wies einen um ca zehn Sekunden abweichenden Zeitstempel gegen ber der letzten Temperaturmes sung aus Der Start Stop Timer funktioniert damit korrekt Test des Interessentimers Dieser Test sollte zeigen ob der Interessentimer die Interessen in der richtigen Messaufl sung bedient Hierzu wurden Interessen mit verschiedenen Messaufl sun gen an das Sensornetzwerk gesendet Es ergab sich dass die Zeitstempel zweier aufeinanderfolgender Messungen die gew nsche Differenz aufwiesen Des Weiteren war zu beobachten dass die Messaufl sung bei einer Mes sung aller vier Werte maximal 100 Millisekunden betragen durfte damit die Sensordatenerfas sung das Interesse noch in der gew nschten Messaufl sung bedienen konnte Test der Parallelit t Dieser Test sollte zeigen dass auch mehrere periodische Interessen parallel auf einem Sensorknoten korrekt abgearbeitet werden Hierzu wurden vier Interessen mit glei cher Startzeit zu verschiedenen Werten an das Sensornetzwerk gesendet Die Messaufl sungen betrugen zwei vier acht und 16 Sekunden Als Ergebnis blieb festzuhalten dass alle Interessen auch in der vorgesehenen Messaufl sung bedient wurden In den F llen in denen Messungen zum gleichen Zeitpunkt n tig waren wi chen die Zeitstempel um bis zu einer halben Sekunde voneinander ab Test der einmaligen Interessen Dieser Test sollte
81. ch den Gegebenheiten der Sensorknoten anpassen und die Daten gegebenenfalls an andere Knoten mit speziellen F higkeiten weiterleiten Datenerfassungsmodell des Sensornetzwerks Je nach Anwendung ist die Sensordatenerfassung zeitgesteuert ereignisgesteuert anforderungsgesteuert oder ein Hybr d aus den dreien Bei einem zeitgesteuertem Modell werden die Daten periodisch erhoben wie beispielsweise bei der kontinu ierlichen Erfassung der Temperatur Bei ereignisgesteuerten Modellen wird immer dann eine Mes sung vorgenommen wenn ein bestimmtes Ereignis in der Umwelt stattgefunden hat Im Gegensatz dazu warten bei anforderungsgesteuerten Modellen die Sensorknoten auf eine Anfrage nach Sensor werten Dar ber hinaus k nnen Mischungen etwa eine periodische Messung auf Anfrage f r einen bestimmten Zeitraum vorkommen Die Routingprotokolle m ssen das Datenerfassungsmodell be r cksichtigen und gegebenenfalls das Datenaufkommen vorherbestimmen Energieverbrauch Der Energieverbrauch ist beim Routing der Pakete zwischen den Sensorknoten ei ne wichtige Gr e und muss vom Routingprotokoll bedacht werden Bei nahezu allen bisher vor gestellten Designkriterien findet eine Abw gung zwischen Energiesparen und Funktionalit t statt Zus tzlich k nnen Routingprotokolle bei einigen Anwendungen zeitweise bestimmte Sensorkno ten ausschalten um die Lebensdauer des Sensornetzwerks zu erh hen Es muss aber auch bedacht werden dass der Energiverbrauch des Fu
82. che hierzu 3 7 1 Dar ber hinaus muss der Sender lediglich einen Broadcastping starten was vergleichsweise ressourcen schonend ist RBS realisiert laut Aussage der Autoren ein energieeffizientes Synchronisationsprotokoll mit einer Genauigkeit von ca f nf Mikrosekunden 45 3 Techniken in Sensornetzwerken Funktionsweise von RBS Gegeben sei eine Menge benachbarter Sensorknoten Einer davon sendet ein Referenzbeacon welches von den Knoten A und B empfangen wird Sie halten den Empfangszeitpunkt C t und Cg t im Ker nel innerhalb der Unterbrechungsbehandlungsroutine des Funkchipger tetreibers fest um die Zeit zum Empfangen m glichst klein zu halten Danach senden sie diese Information an den jeweils anderen Sen sorknoten Somit besitzen s e beide sowohl den eigenen Empfangszeitpunkt als auch den des anderen und k nnen den Offset als Differenz der Werte bestimmen Die Sensorknoten sind jetzt relativ zueinander syn chronisiert Dies st f r viele Anwendungen in Sensornetzen bereits ausreichend Um einen Fehler durch seltene Verz gerungen bei der Zeit zum Empfangen zu vermeiden z B hervorgerufen durch eine kurz zeitig hohe Prozessorauslastung wird eine Sequenz von m Referenzbeacons versendet Der Offset O wird als Mittelwert der einzelnen Offsets bestimmt Allgemein gilt damit f r die Offsets von n empfangenden Sensorknoten 1 m VAen Ben OJIA B Cp kltk Caklt mB En OJA B 7 OBa la Carlt Bisher wurde nur die
83. chnen F r die Implementierung der Basisstation wird die Komponente BaseStation welche TinyOS als Beispie limplementierung beiliegt als Grudlage genutzt Diese implementiert bereits die Vermittlung der Pakete zwischen serieller und Funkschnittstelle Sie wurde so erweitert dass sie ebenfalls den LPL zum energie effizienten Zugriff auf das Funkmedium nutzt Die Basisstation ist zwar direkt an den PC angeschlossen und verf gt somit ber eine unersch pfliche Energieversorgung jedoch muss zur Kommunikation mit den Sensorknoten selbstverst ndlich dasselbe Zugriffsprotokoll genutzt werden Dar ber hinaus wurde die Ba sisstation um das FTSP und einen Timer erweitert dessen Eventhandler die aktuelle Zeit an den PC sendet Die Originalquelltexte der Komponente BaseStation befinden sich zum Vergleich auf der beiliegenden CD siehe im Anhang A In Abbildung 4 7 st das Komponentendiagramm der Basisstation zu sehen Die Komponente der Basissta tion besteht aus den Komponenten MainC TimeSyncC TimerMilliC LedsC SerialActiveMessageC Ac tiveMessageC und CC2420ActiveMessageC sowie aus dem Modul mit der Implementierung der Basissta tion MainC bootet den Sensorknoten und bindet die Kernkomponenten von TinyOS ein und TimeSyncC stellt eine globale Uhrzeit zur Verf gung Die Komponenten SerialActiveMessageC ActiveMessageC und CC2420ActiveMessageC bilden die beiden Netzwerkstapel ber die Schnittstelle Boot die von der Komponente MainC angeboten wird
84. chronisationsprotokolle vorgestellt Diese sind zum einen die bekanntesten Zeitsynchronisationsprotokolle fiir Sensornetzwerke namentlich die Reference Broadcast Synchronization RBS sowie das Timing sync Protocol for Sensor Networks TPSN und zum anderen das in dem in dieser Arbeit entworfenen Sensornetzwerk verwendete Flooding Time Synchronization Pro tocol FTSP MKSL04 Zeitkritische Anwendungen kann man mit der in Abbildung 3 17 gegebenen Klassifizierung in drei Klassen einteilen Sto05 Seite 199ff F r die Anwendungen ist dabei nicht nur der reine Zugriff auf die Zeit wichtig sondern insbesondere dass die Uhren der einzelnen Sensorknoten miteinander synchronisiert sind Beobachter Sensornetzwerk reale Welt Abbildung 3 17 Die Klassifizierung der Anwendungen f r Zeitsynchronisation in Sensornetzwerken nach Sto05 Seite 200 Die erste Klasse a besteht aus Anwendungen die einem externen Beobachter als Schnittstelle zur n teraktion mit dem Sensornetzwerk dienen Dieser richtet Aufgaben an das Sensornetz fragt Daten ab und nimmt Managmentfunktionen wahr Er kann sowohl ein Benutzer als auch ein autonom agierendes Com putersystem sein Gestellte Aufgaben werden oftmals an einen Zeitpunkt oder ein Zeitfenster gebunden und sollen dann auch auf den einzelnen Sensorknoten gleichzeitig und zur angegebenen Zeit ausgef hrt werden Die Werte der erfassten Umweltgr en m ssen einen Zeitstempel erhalten welch
85. cht alle Positionsbestimmungsverfahren sind sowohl f r den Einsatz innerhalb als auch au erhalb von Geb uden geeignet weil sich die Umgebungen stark unterscheiden Bou09 Seite 324 In Geb uden ist das Sensornetz in vielen F llen dichter und es sind andere Umwelteinfl sse als in der freien Natur vorhanden Au erhalb von Geb uden ist eher eine Sichtlinie zwischen den Sensorknoten zu erwarten Relative oder absolute Positionsbestimmung Relative Positionsbestimmungsverfahren ermitteln die Position der Sensorknoten relativ zu einem festen Punkt im Sensornetz meist der Basisstati on Absolute Verfahren bestimmen die globale Position der einzelnen Knoten die h ufigste Form sind L ngen und Breitengrad sowie die H he ber dem Meeresspiegel Bou09 324 Entferungsbasierte und nicht entfernungsbasierte Verfahren Bei entfernungsbasierten Positi onsbestimmungsverfahren wird die Sensorknotenposition mithilfe der Entfernungen zwischen den Sensorknoten ermittelt Dies geschieht entweder mit spezieller Hardware zur Entfernungsmessung die jeder Knoten besitzen muss oder durch eine genaue Systemkalibrierung und Profilierung des Aufstellungsgebietes Ein Beispiel f r letzteres ist die Positionsbestimmung anhand der Empfangs s gnalst rke Nicht entfernungsbasierte Verfahren ermitteln die Position mit ihren Sensoren einer zus tzlichen Infrastruktur oder anhand ihrer Nachbarknoten ZH09 Mobile oder statische Sensorknoten Nicht alle Positionsbest
86. d Implementierung des Clients des Netzwerkes Hierzu gibt der Benutzer Messaufl sung und Messgr en an und das Client Programm schickt eine Messnachricht an den Server Analog w rd eine Nachricht zum L schen der Interessentabelle versendet wenn der Benutzer die Messungen stoppen m chte Erh lt der Server ein neues Datenpaket aus dem Sensornetzwerk so sendet er es an das Client Programm weiter Das Clientprogramm sucht wieder den passenden Sensor und setzt die Messwerte in einer ber sicht in der die letzten gemessenen Werte jeder Gr e angezeigt werden W nscht der Benutzer bei der Datenbetrachtung Werte aus dem Sensornetzwerk statt der Datenbank Echtzeitmodus so werden die eintreffenden Daten auch in den Puffer des Anzeigewidgets gesetzt Analog werden neu eintreffende Gra dienten ebenfalls in die bersicht des Sensorknotens aufgenommen Trifft eine neue Fehlernachricht ein so wird der zugeh rige String n das Fenster mit den Fehlern geschrie ben main networkinterface editMode bool floors QList lt floor gt 11 settingsview OTabWidget serversettings QWidget sensornetworksetings QTabwidget 1 1 1 newMeasurementimsg interestM sg signal 1 deletemMeasurement signal OT ab widget BE Connection Wind ov 1 1 connectT oH stehost QString port int nodeld OLineEdit MousePressEvent event gt OMouseEwent D floor sensorblode sensorlist QList lt sensorNocde gt sensorview QTab
87. d das Ereignis booted erzeugt welches von Anwendungen mit der Schnittstlle Boot empfangen werden kann und anschlie end der Leerlauftask TaskLoop ausge f hrt Der TinyOS Netzwerkstapel Zur Kommunikation der Sensorknoten ber den Funkchip bietet TinyOS mehrere Komponenten aus denen sich ein Netzwerkstapel bilden l sst In TEP 126 MHLCO7 wird der Netzwerkstapel f r den CC2420 Funkchip welcher vom Maxfor Sensorknoten verwendet wird beschrieben Er besteht aus mehreren Schichten die jeweils eine spezielle Funktionalit t anbieten um eingehende und ausgehende Datenpa kete zu modifizieren zu filtern und zu bertragen Jede Schicht kann Pakete aus der darunterliegenden Schicht entgegennehmen bearbeiten und an die dar berliegende Schicht weiterreichen Je nach Anwen dung werden verschiedene Schichten zu einem Netzwerkstapel gestapelt Der Netzwerkstapel des n dieser Arbeit entworfenen Sensornetzwerks ist in Abbildung 3 7 zu sehen Auf der Anwendungsschicht befinden sich die Anwendungen f r welche die Active Message Schicht die Kommunikation mit anderen Sensorknoten von dem Netzwerkstapel abstrahiert Die Active Message Schicht bietet hierzu vier Schnittstellen AMSend versendet neue Pakete an einen oder mehrere Sensorkno ten und die Schnittstelle Receive meldet neu eintreffende Pakete mittels eines Ereignisses Hinzu kommt eine Kontrollschnittstelle zum Starten und Stoppen des Netzwerkstapels und eine Sendeschnittstelle zum Zugriff
88. d die Spannung der Sensorkno tenbatterie zu messen Dazu werden in Abschnitt 4 1 zun chst die zu verwendenden Technologien ausgew hlt wobei die in Ka pitel 3 gewonnenen Erkenntnisse ber cksichtigt und erste Entwurfsentscheidungen getroffen werden Die Auswahl der Technologien stellt entscheidende Weichen und bedingt die Struktur des Sensornetzwerks Es ist bereits hier aufgrund der beschr nkten Ressourcen eine Abw gung zwischen Funktionalit t und Perfor manz zu treffen und dieser Abschnitt ist somit bereits dem Entwurf des Sensornetzwerks zuzuordnen Nachdem die Struktur des Sensornetzes feststeht wird in Abschnitt 4 2 der Entwurf fortgesetzt Dazu wird zun chst ein kleiner berblick ber den Aufbau des Sensornetzwerks gegeben und anschlie end werden die einzelnen Komponenten vorgestellt Dann werden die Funktionsweise der einzelnen Komponenten und wichtige Datenstrukturen erl utert Abschlie end werden die Implementierungen der Basisstation sowie der Sensorknoten in den Abschnitten 4 3 und 4 4 vorgestellt 4 1 Technologieauswahl Anhand der Anforderungsdefinition aus Kapitel 2 und insbesondere der erforderlichen Anforderungen El bis E6 werden in diesem Abschnitt die f r das Sensornetzwerk ben tigten Technologien festgelegt Zun chst einmal ist ein Betriebssystem f r die einzelnen Sensorknoten zu w hlen Ohne ein Betriebssystem m sste die Anwendung f r den Sensorknoten in C von Grund auf neu geschrieben werden d h inklusive N
89. ddiert welcher sich aus der Zeitdifferenz der aktuellen lokalen Zeit und der mittleren Zeit aller Synchronisationspakete multipliziert mit dem Skew ergibt async command error_t GlobalTime getGlobalTime uint32_t x time xtime call GlobalTime getLocalTime return call GlobalTime local2Global time async command error_t GlobalTime local2Global uint32_t time xtime offsetAverage int32_t skew int32_t time localAverage return is_synced async command error_t GlobalTime global2Local uint32_t xtime uint32_t approxLocalTime time offsetAverage reime approxbocallime Gnr E skew anu sZ EJ approxLocalTime localAverage return is_synced Listing 3 4 Die Schnittstellenimplementierung der Zeitschnittstelle vom FTSP Im Folgenden wird jetzt beschrieben wie FTSP in Multi Hop Netzwerken funktioniert In die Synchronisationsnachrichten wird neben der globalen Zeit ebenfalls die Sensorknotenadresse des Roots und eine Sequenznummer mit aufgenommen In periodischen Abst nden feuert auf jedem Sen sorknoten ein Timer der neue Synchronisationsnachrichten verschickt wenn er selber der Root ist oder gen gend Daten in seiner Tabelle besitzt um davon auszugehen dass er synchronisiert ist Sensorknoten die nicht der Root sind setzen als Sequenznummer die letzte erhaltene Sequenznummer Der Root erh ht 50 3 7 Zeitsynchronisation in Sensornetzwerken die Sequenznummer mit jedem Versc
90. de lediglich die Bearbeitung eingehender Interessen betrachtet Es bleibt zu kl ren wie mit eintreffenden Datenpaketen von Nachbarknoten und allen vom Sensorknoten zu verschickenden Paketen umgegangen wird Hierzu wird im Folgenden die Interaktion von Directed Diffusion mit dem Netzwerk erl utert TinyOS bietet mit dem Active Message Type die M glichkeit mehrere Verbindungen ber einen Funkchip aufzubauen siehe Unterabschnitt 3 5 2 Pakete eines AM Typs besitzen jeweils einen eigenen Eventhand ler und k nnen so auseinandergehalten werden In dem hier entworfenen Sensornetzwerk wird zwischen drei Paketarten mit eigenem AM Typ unterschieden Es gibt Interessenpakete Datenpakete und Informa tionspakete Letztere enthalten die Sensorknotenadresse und Statusinformationen in Form einer acht Bit breiten Zahl Sie werden insbesondere f r Fehlermeldungen genutzt Informations und Interessenpakete sollen gegen ber den Datenpaketen priorisiert werden Die Active Message Schicht bietet ein reines Versenden von Paketen an Ist zum aktuellen Zeitpunkt keine Verbindung zum Zielknoten herzustellen so w rd das Paket verworfen und ein Fehler gemeldet Dar ber hinaus kann es vorkommen dass gleichzeitig sowohl die Anwendung als auch Directed Diffusion ein Paket verschicken m chte Die Anwendung k nnte auch zwei Datenpakete so schnell nacheinander senden wollen dass Directed Diffusion noch mit der Verarbeitung des ersten Paketes besch ftigt st wenn das z
91. dem es ein eine Messung beschreibendes Objekt sen 86 5 2 Entwurf und Implementierung des Servers Sensornetzwerk steuern Es gibt eine weitere Messung in der Messliste Sensor ist bereits in Datenbank Abbildung 5 2 Das Aktivit tsdiagramm zum Steuern des Sensornetzwerks 87 5 Entwurf und Implementierung des PC Programms det Die Messung wird zun chst in die Liste der Messungen aufgenommen Hierzu wird geschaut ob bereits eine identische Messung existiert Eine Messung ist analog zur Definition bei den Sensorknoten identisch wenn Art des Interesses Messaufl sung und Adressbereich bereinstimmen Ist dies der Fall so wird lediglich der Messzeitraum neu gesetzt Des Weiteren muss das Client Programm nicht zwangsl ufig einen Messzeitraum mit angeben Ist kein Zeitraum angegeben so wird der Messstart auf O und das Mes sende auf die Konstante MAXINT gesetzt damit die Messung permanent stattfindet Anschlie end wird wie bereits beim Timer beschrieben ein Paket f r periodische Interessen gepackt und an die Basisstation gesendet Parallel hierzu wird das Interessen Paket an die Datenbank gegeben und dort gespeichert Derzeit unterst tzt das System lediglich das Stoppen aller Messungen Wird dieses von dem Client Programm in Auftrag gegeben so wird die Liste mit den Messungen geleert und ein einmaliges Interes senpaket zum L schen der Interessentabelle der Sensorknoten sowohl gepackt als auch an die Basisstation gesendet
92. die Zeitspanne die in der Literatur als typisch angesehen wird CES04 E3 Zeitsynchronisation Die Uhren der einzelnen Sensorknoten m ssen hinreichend genau synchro nisiert werden damit eine gleichzeitige Messwerterfassung und eine problemlose Kommunikation gew hrleistet ist Die Zeitsynchronisation wird bei der hier entwickelten Anwendung als hinreichend angesehen wenn die Sensorknoten um nicht mehr als 250 Millisekunden voneinander abweichen Dieser Wert entspicht einem Viertel der Messaufl sung so k nnen immer zwei Messwerte verschie dener Sensorknoten eindeutig einander zugeordnet werden E4 Selbstorganisation der Sensorknoten Die Sensorknoten m ssen sich beim Einschalten selbstst n dig zu einem Netz organisieren Neu hinzukommende Knoten sollen im laufenden Betrieb mit dem 2 Anforderungsdefinition ES E6 E7 Einschalten in das Sensornetz aufgenommen werden F llt ein Sensorknoten aus so soll das verblei bende Sensornetz diesen Fehler eigenst ndig kompensieren k nnen wenn noch ein Pfad zwischen allen Sensorknoten vorhanden ist Dies ist notwendig um auftretende Fehler bedingt durch defekte Hardware oder Energiemangel kompensieren zu k nnen Datenspeicherung Es m ssen Messdaten Zeitstempel der Messung und Position persistent gespei chert werden Dies ist notwendig um auch zu einem sp teren Zeitpunkt die Daten betrachten zu k nnen Aktoransteuerung Auch wenn Aktoren f r den eigentlichen Inhalt dieser Arb
93. die Aufgabe des Betriebssystems geschildert 3 Techniken in Sensornetzwerken und es findet ein Vergleich von erh ltlichen Betriebssystemen fiir Sensorknoten statt Ein zentrales Element eines Betriebssystems f r Sensorknoten ist das verwendete Netzwerkprotokoll welches n Abschnitt 3 6 vorgestellt wird Die Middleware erg nzt das Betriebssystems um Funktionen beispielsweise zur Zeitsyn chronisation Abschnitt 3 7 und zur Positionsbestimmung Abschnitt 3 8 Sta08 Auf der Middleware setzt die eigentliche Anwendung auf Bei der Middleware und der Anwendung ist die Systemgrenze nicht in allen F llen bei einem einzelnen Sensorknoten zu ziehen Bei dem in dieser Arbeit vorgestellten System zur Temperaturprofilerfassung ist die Anwendung zwar auf Sensorknoten beschr nkt der Mechanismus zur Zeitsysnchronisation muss jedoch als systemweit angesehen werden Alle Zeitsynchronisationsinstanzen der einzelnen Sensorknoten kommunizieren untereinander und beeinflussen s ch gegenseitig Anwendung Middleware Betriebssystem Betriebssystem Betriebssystem Sensorknoten Sensorknoten Sensorknoten Abbildung 3 2 Die Softwareschichten in einem Sensornetzwerk nach RKJKO3 3 1 Begriffsdefinitionen In diesem Abschnitt werden Definitionen zu Begriffen und Objekten aus dem Themenbereich der ka bellosen Sensornetzwerke gegeben Hier sind insbesondere wichtige Begriffe zu finden die in mehreren Kapiteln dieser Arb
94. diert Die unteren drei Bit geben Auskunft ber den zu setzenden Zustand der LED und die folgenden drei Bit geben an ob der zu setzende Zustand f r die jeweilige LED wirklich gesetzt werden soll So kann auch der Zustand einer LED ver ndert werden ohne die anderen LEDs zu beeinflussen Des Weiteren m ssen die Sensoren kal briert werden k nnen Hierzu werden vier einmalige Interessen 71 4 Entwurf und Implementierung des Sensornetzwerks Abbildung 4 5 Das Flussdiagramm zum Senden von Paketen 12 4 2 Feinentwurf implementiert die je einem Sensor einen Offset zum aktuellen Messwert diktieren Hinzu kommen noch zwei einmalige Interessen die f r Debuggingzwecke gedacht sind Zum einen kann die Sensorknotenadres se des derzeit besten Gradienten mit einer Informationsnachricht versendet werden zum anderen kann die Interessentabelle gel scht werden Es sind damit 16 periodische und 7 einmalige Interessen vordefiniert Directed Diffusion kapselt bereits die Interessenausl sung Die Anwendung besteht daher lediglich aus zwei Eventhandlern welche periodische und einmalige Interessen abarbeiten Der Eventhandler der periodischen Interessen schaut nach ob das Interesse zu den definierten periodischen Interessen geh rt Ist dies nicht der Fall wird eine Informationsnachricht mit einem Fehler verschickt Ansonsten werden die zu messenden Werte von der Sensordatenerfassung samt Zeitstempel der Messung angefordert und an die Basissta
95. e Interessentabelle als auch die Gradienten 66 4 2 Feinentwurf typedef struct gradienttableEntry laine IG e ao ce JID Poco ess Cies ea esor Boci isFree gradienttableEntry_t Listing 4 2 Der Aufbau eines Gradiententabelleneintrags typedef struct interesttableEntry ibi oe a e ess Wir abate UINE Ss 28 oe ele lige erval Pas Acie ste cea e Cia eones DOI cea boo tsk ree interesttableEntry_t Listing 4 3 Der Aufbau eines Interessentabelleneintrags tabelle pflegt Zum anderen gibt es den Mechanismus der anhand der Interessentabelle die periodischen Interessen bedient Inital wird ein neues Interesse von der Basisstation an alle Nachbarknoten gesendet Erh lt ein Sensor knoten ein neues Interesse so k mmert sich der Verbreitungsmechanismus wie in Abbildung 4 3 a zu sehen um Verbreitung und Datenhaltung Zun chst wird der Gradient zum Sender gebildet und in die Gra diententabelle an der richtigen Stelle aufgenommen Die Gradiententabelle ist sortiert damit beim deutlich haufiger vorkommenden Routen von Datenpaketen zur Basisstation nicht lange der beste Gradient gesucht werden muss Anschlie end wird anhand der eindeutigen Interessen ID gepr ft ob der Sensorknoten das Interesse bereits erhalten hat Hierzu wird eine Liste mit den n letzten erhaltenen Interessen IDs gef hrt Ist die Interessen ID nicht in dieser Liste vorhanden so wird das Interesse als neu angesehen Ist ein In teresse
96. e Lebensdauer von vier Monaten Die Richtfunkknoten sind mit Solarpanels ausgestattet Strukturelle berwachung Mit Sensornetzwerken kann die strukturelle Integrit t von Geb uden Schiffen Flugzeugen Br cken u s w berwacht werden Ein Prototyp eines Sensornetzwerks zur Messung von Schwingungen in Geb uden wurde von Whang et al entwickelt WXR 04 Dieses soll sobald es das Prototypenstadium verlassen hat im Four Seasons Geb ude in Sherman Oaks Kalifornien aufgestellt werden Es misst dann an 120 Stellen die auftretenden Vibrationen und mit einem Dehnungsstreifen an 96 Stellen die Verschie bung Ein Erdbeben sch digte das Four Seasons 1994 so stark dass es f r den Abriss vorgesehen ist Aus diesem Grund k nnen an das leerstehende Geb ude erzwungene harmonische und seismische Schwingungen angelegt werden Die vom Sensornetzwerk erhobenen Daten bilden die Grundlage f r eine Erforschung der Auswirkung sowie Ausbreitung von Schwingungen in Geb uden Statiker k nnen die Informationen zur Konstruktion zuk nftiger Geb ude heranziehen Schwingungen tre ten in Geb uden nicht nur durch Wind Erdbeben oder terroristische Anschl ge auf sondern auch kleinste Schwingungen verursacht durch Aufz ge oder Menschen m Treppenhaus sind von Belang Br cken m ssen in regelm igen Abst nden mit direkten Methoden wie Sichtinspektionen und R ntgenabtastungen und indirekten Methoden hierzu z hlen Ver nderungen im Verhalten und de
97. e Messun gen der Umweltgr en verantwortlich und senden diese an die Basisstation welche die Daten an das PC Programm weiterreicht siehe Sensorknoten A In Abbildung 4 2 sind die einzelnen Softwareschichten der Sensorknoten zu sehen Direkt auf den verwen deten Sensorknoten vom Typ MTM CM5000 MSP setzt TinyOS mit seinem Netzwrkstapel auf Directed Diffusion bietet mit seinen Interessen eine direkte M glichkeit die Anwendung auf dem Sensorknoten zu steuern Das verwendete Interessensystem wird vom Routingprotokoll implementiert die Interessen wer den jedoch von der Anwendung bedient Somit ist das Routingprotokoll eng mit der Anwendung verzahnt und befindet sich deshalb 1m Netzwerkstapel auf der Anwendungsschicht zwischen der Anwendung und der Active Message Schicht siehe Unterabschnitt 3 5 2 Die Anwendung bedient die Interessen sie im plementiert also die im Sensornetzwerk definierten Interessen Hierzu kann s e die Sensordatenerfassung als Bezugsquelle f r Sensorwerte nutzen Als Middleware zur Zeitsynchronisation ist das FTSP ber alle Sensorknoten verteilt und stellt eine globale Zeit zur Verf gung 64 4 2 Feinentwurf Abbildung 4 2 Die Softwareschichten des entworfenen Sensornetzwerks Im Folgenden wird der Entwurf von Directed Diffusion der Anwendung und der Sensordatenerfassung f r die Sensorknoten vorgestellt Die Basisstation ben tigt keinen eigenen Entwurf da sie lediglich Pakete zwischen serieller Schnittstelle und
98. e zustandsorientierten Modelle verfolgen einen hnlichen Ansatz wie endliche Automaten Eine Anwendung besteht aus einer Menge von Zust nden und Antworten auf Ereignisse Ereignisse f hren bas erend auf der Eingabe zu einem Zustands bergang Eine Neupro Tabelle 3 2 Die Architektur verschiedener Betriebssysteme RKJK03 Monbolithisch Modular VM TinyOS VMSTAR MagnetOS Contiki Mate MagnetOS 3 5 Betriebssysteme f r Sensorknoten Tabelle 3 3 Das Ausf hrungsmodell verschiedener Betriebssysteme RKJKO3 Ereignisbasiert Threadbasiert Hybrid Andere TinyOS MANTIS OS Contiki SenOS EEE reine Tin SOS kOS Nano RK crime one CORMOS EYES SSS PEEROS grammierung kann einfach durch einen Austausch der Zustands bergangstabelle erreicht werden Als Beispiel fiir ein zustandsorientiertes Betriebssystem kann SenOS genannt werden Die objekt basierten und datenzentrierten Modell sind derzeit nicht von Bedeutung und sollen hier daher nicht besprochen werden Neuprogrammierung Die Fahigkeit zur Neuprogrammierung tiber das Netzwerk wird von den Sen sornetzwerkforschern als wichtig angesehen da oftmals die Sensorknoten nach dem Einsetzen in die Umwelt nicht mehr physikalisch erreichbar sind Als Neuprogrammierung bezeichnet man die F higkeit zum Hinzuf gen L schen und ndern der installierten Software Diese wird durch den Einsatz sogenannter Quelltextverteilungprotokolle erreicht Eine Neuprogrammierung kann je nach Protokoll auf
99. echanismus an und benachrichtigt die Anwendung oder den Eventhandler der aufgetretenen Unterbrechung Analog muss sich der Kommunikationsstapel selbstst ndig um den Energiemodus des Funkchip k mmern 32 3 6 Netzwerkprotokolle fiir Sensornetzwerke 3 6 Netzwerkprotokolle fur Sensornetzwerke Die Kommunikationsfunktionen werden bei Sensorknoten mit einem speziell an Sensornetzwerke ange passten Netzwerkprotokollstapel realisiert In Unterabschnitt 3 5 2 wurde bereits der von TinyOS verwen dete Protokollstapel vorgestellt in diesem Abschnitt wird ein betriebssystemunabh ngiger Blick auf die Kommunikation der Sensorknoten geworfen Von Akyildiz et al wird der in Abbildung 3 12 zu sehende Netzwerkprotokollstapel beschrieben ASSCO2 Auf der Anwendungsschicht befindet sich ein Protokoll das den Anwendungen der Sensorknoten einen einheitlichen Zugriff auf das Netzwerk bietet Anwendungen k nnen Daten verschicken und erhalten und m ssen sich nicht um die Implementierung des Netzwerks k mmern Die Transportschicht ist nur n tig wenn das Sensornetzwerk mit einem externen Netz wie dem Internet direkt kommunizieren k nnen soll Dies st nur selten der Fall und wird daher hier auch nicht weiter besprochen In der Vermittlungsschicht stellen die Routingprotokolle eine Verbindung zwischen den einzelnen Sensorknoten und der Datensenke her Sie steuern den Paketfluss und organisieren so die Sensorknoten zu einem Sensornetzwerk Die Verbin dungsschic
100. ed implemented and tested for the use case of temperature measurement within home and office buildings Also a GUI application to show the measuring data and to monitor the sensor network is presented Inhaltsverzeichnis 1 Einleitung 2 Anforderungsdefinition 2 1 Aufsabenbeschreibung sis x w oe he BGA Se ad a NE 2 2 ANIONIC E dE RA ae to De ah acta SR are A as Be ae ee 3 Techniken in Sensornetzwerken Sob Besriitsdeiimitionen za BR 2 EM ies Are er aa ae ee ER oh OS Bas 3 2 Ausgew hlte Anwendungsbeispiele e e 3 3 Die verwendeten Sensorknoten 2 2 CC aaa 3 4 Ressourcenbeschr nkungen und resultierende Anforderungen an Betriebssysteme und An wendungen bei Sensornetzwerken mn nn 3 5 Betriebssysteme f r Sensorknoten 2 2 2 Cm m mn nenn 3 5 1 Vergleich erh ltlicher Betriebssysteme 2222 2 Co on nn o AN Sn MANIDOS saura das E A eA as a de ee lr A deb 334 ACOMUKE ona ie E A eae ete e a a ee Ia sa 3 6 Netzwerkprotokolle f r Sensornetzwerke 0000 eee 3561 JEIOOGUIC ergene ERA A REA A 3 02 Directed DIFUSION y 0 E 22 22 A ee hee Bien kb 3 7 Zeitsynchronisation in Sensornetzwerken e 3 7 1 Fehlerquellen bei der Zeitsynchronisation 2 000000 ee 3 7 2 Reference Broadcast Synchronization RBS 3 7 3 Timing sync Protocol for Sensor Networks TPSN 3 7 4 Flooding Time Synchronization Protocol FTSP
101. egen ber keine Kenntnisse ber die Sensorknotenpositionen Zudem werden die Sensorknoten determi nistisch von einem Menschen aufgestellt und sind nicht mobil Insgesamt ist somit aus den Anforderungen nicht abzuleiten dass die Sensorknoten selbst ber eine Positionsbestimmung verf gen m ssen Die Daten werden eindeutig einem Sensorknoten zugeordnet und erst in dem PC Programm mit Positionsangaben zusammengebracht Der Benutzer gibt hierzu nach dem Aufstellen der Sensorknoten die Positionen in eine Karte im PC Programm an Damit entf llt auch eine Umrechnung der globalen Koordinaten in das Koordinatensystem der Karte F r die manuelle Positionsbestimmung spricht auch das Fehlen eines geeigneten und realisierbaren Po sitionsbestimmungsverfahrens In jedem Raum des Geb udes k nnen sich mehrere Sensoren befinden Um dabe einzelne Sensorknoten zu unterscheiden sollte die Positionsbestimmung auf einen Meter ge nau sein und im dreidimensionalen Raum funktionieren um Sensorknoten auf verschiedenen H hen und Etagen zu ber cksichtigen Einfache Verfahren ohne Infrastruktur wie z B das Bounding Box Verfahren aus Unterabschnitt 3 8 2 erreichen eine solche Aufl sung nicht Verfahren mit Infrastruktur bzw zus tz lich ben tigter Hardware eignen sich nicht weil weitere Kosten entstehen mehr Energie verbraucht wird 63 4 Entwurf und Implementierung des Sensornetzwerks und sie zu aufw ndig sind Somit fallen auch GPS und SpinLoc aus Daraus f
102. ei Gr nde Die Sen sorknoten werden nicht alle zum selben Zeitpunkt eingeschaltet wodurch es zu einer Offset genannten Zeitverschiebung zwischen den Uhren kommt Der Offset ist definiert als die Differenz der Uhren zweier Sensorknoten also Offset O t C t Cg t Ferner vollziehen die verbauten Quarze keine perfekte Schwingung Sie unterliegen Schwankungen die sich f r ein gro es Zeitintervall jedoch gegenseitig aufhe ben Au erdem ist die Frequenz der Schwingung auf verschiedenen Sensorknoten bedingt durch ungenaue Fertigung und Alterungsprozesse nicht identisch Die Frequenzabweichung zweier Sensorknoten wird als Skew bezeichnet und ist definiert als die Differenz der Takte zweier Sensorknoten ber einen Zeitraum also Skew S t a _ Lal GyHSOS VDMCO8 Seite 195 Folglich gilt in der Regel f r zwei verschiedene Sensorknoten C 4 t 4 Cg t Dieser Abschnitt besch ftigt sich mit Protokollen zur Synchronisation der Sensorknotenuhren Um die enorme Bedeutung der Zeitsynchronisation bei Sensornetzwerken herauszustellen werden zun chst An wendungen genannt und klassifiziert Darauffolgend werden Designkriterien f r Synchronisationsproto kolle vorgestellt Anschlie end wird in Unterabschnitt 3 7 1 die Funktionsweise der Zeitsynchronisation beschrieben wobei insbesondere auf die m glichen Fehlerquellen eingegangen wird Abschlie end werden 41 3 Techniken in Sensornetzwerken in den Unterabschitten 3 7 2 bis 3 7 4 drei Zeitsyn
103. eit Verwendung finden Auch werden Begriffe aufgef hrt die in dieser Arbeit keine gro e Relevantz besitzen jedoch f r eine bersicht ber das Fachgebiet von Bedeutung sind Der berwiegende Teil der Fachliteratur ist in englischer Sprache gehalten zum leichteren Verst ndnis werden die englischen Synonyme in Klammern angegeben Sensorknoten Node oder Mote in Anlehnung an die Gr e Ein Sensorknoten besteht aus den vier Teilkomponenten Recheneinheit Funkeinheit Spannungsversorgungseinheit und Sensoreinheit Bou09 Seite 22 Je nach Anwendung kommen noch andere Komponenten etwa zur Positionsbe stimung oder Datenspeicherung hinzu ASSCO2 Sensorknoten besitzen typischerweise inklusive Stromquelle maximal die Gr e einer Zigarettenschachtel Des Weiteren ist die alle Komponenten verbindende Recheneinheit meist mithilfe eines Mikrocontrollers realisiert welcher typischerweise mit einer Taktrate von 10 bis 20 MHz betrieben wird Vergleiche hierzu die Hardwarespezifikation der verwendeten Sensorknoten m Abschnitt 3 3 Kabelloses Sensornetzwerk Wireless Sensor Network kurz WSN Als kabelloses Sensornetz werk wird ein Rechnernetz bestehend aus Sensorknoten welche n der Lage sind Umweltparameter zu erfassen und diese kabelungebunden zu kommunizieren bezeichnet Die Kommunikation findet nicht nur zwischen den direkten Nachbarn statt sondern kann auch ber mehrere Sensorknoten ge routet werden Sensornetzwerke sind entweder autark od
104. eit nicht notwendig sind so sollen sie schon im Entwurf des Sensornetzwerks bedacht werden damit die M glichkeit zum Hinzuf gen einer Regelung zum System gegeben ist Diese Anforderung leitet sich insbeson dere aus dem Anspruch an die Erweiterbarkeit des Systems ab Datenvisualisierung Gespeicherte Daten m ssen in Diagrammform vom Benutzer abgerufen wer den k nnen Diese Anforderung ist wichtig damit der Benutzer die erfassten Daten leicht auswerten und auf einen Blick sofort Tendenzen in den Daten erkennen kann Zudem soll der Zugriff auf die momentanen Messwerte des laufenden Sensornetzes m glich sein W nschenswerte Anforderungen wi W2 W3 komplexe Visualisierung Es ist w nschenswert dass eine umfangreiche Benutzeroberfl che f r einen nicht mit dem System vertrauten Anwender entsteht Sensorknoten sollen auf einem Lage plan positioniert werden k nnen Diese Anordnung sollte in mehreren Ebenen und dreidimensional erfolgen Es ist weiterhin w nschenswert dass aus den diskreten Messpunkten Temperaturen f r beliebige Punkte errechnet werden k nnen Trennung zwischen Benutzerschnittstelle und Sensornetzkontrolle Es ist w nschenswert dass das PC Programm in ein grafisches Client Programm f r die Benutzerinteraktion und ein Server Programm zur Speicherung der Daten und Kontrolle des Sensornetzwerks unterteilt wird GUI und Server sollen ber das Netzwerk kommunizieren k nnen Der Benutzer muss damit nicht an dem sel
105. eiten Annehmen und Empfangen Es wird hierbei angenommen dass die Zeit zum bertragen deckungsgleich mit der Zeit zum Annehmen ist und somit nicht ber cksichtigt werden muss Zum Zeitpunkt Cg t3 sendet B ein Acknowledgementpaket an A welches die Ebenennum mer von B und die Zeiten Ca t Cg t2 und Cg t3 enth lt A merkt sich den Zeitpunkt des Eintreffens Ca t und best tigt B mit einem Acknowledgementpaket den Erhalt Nun kann A den Offset und die Zeit zum bertragen berechnen und seine Uhr synchronisieren Es gilt Ca ta Calt1 Calta Calts aa Calta Calt1 Calta Cala 2 2 Hierbei wird davon ausgegangen dass w hrend der kurzen Zeitspanne des Vorgangs der Offset der Uhren von A und B konstant bleibt Dar ber hinaus wird der Skew bei der Synchronisation nicht ber cksich tigt Stattdessen wird die Synchronisationsphase periodisch wiederholt Um die Periodendauer festzulegen A 48 3 7 Zeitsynchronisation in Sensornetzwerken muss man bei der zu verwendenden Sensorplattform den maximalen Drift der Sensorknotenuhren empi risch ermitteln Bei einer gegebenen maximalen Synchronisationsungenauigkeit kann man dann berechnen in welchen Zeitintervallen die Synchronisationsphase wiederholt werden muss Die Autoren haben f r eine Genauigkeit von 10 ms ein Intervall von 34 min f r Berkleysensorknoten ermittelt 3 7 4 Flooding Time Synchronization Protocol FTSP Das Flooding Time Synchronization Protocol F
106. ekanntem Knoten Vergleiche hierzu Abbildung 3 22 a Dieser Vorgang wird an schlieBend f r die anderen Ankerknoten im Sensornetzwerk wiederholt Besitzt die Basisstation die Winkel aller Ankerknoten so berechnet sie wie in Abbildung 3 22 b zu er kennen ist die Position der unbekannten Knoten als Schnittpunkt der Geraden von den Ankerknoten durch den unbekannten Knoten In der Praxis kann der Winkel nicht hochgenau bestimmt werden was dazu f hrt dass sich bei mehr als zwei Ankerknoten die Geraden nicht in einem Punkt schneiden Eine solche Situation wird in Abbildung 3 23 a verdeutlicht Die Autoren schlagen hierf r vor den gewichteten Schwerpunkt der Schnittpunkte als Sensorknotenposition anzunehmen Die Gewichte der Punkte ergeben sich aus dem spitzen Winkel der 58 3 8 Positionsbestimmung von Sensorknoten A3 A2 A2 Al A1 g Unbekannter Knoten 6 Ankerknoten a Die Geraden schneiden sich in der Praxis selten in b Die Geraden schneiden sich in einem kleinen einem Punkt spitzen Winkel Abbildung 3 23 Die m glichen Fehler bei SpinLoc nach CTL 08 zwischen den beiden Geraden am Schnittpunkt auftritt Je kleiner dieser ist um so gr ber ist die Auswir kung von ungenauen Geradengleichungen auf den Positionsfehler Vergleiche hierzu Abbildung 3 23 b SpinLoc ist ein zentrales aktives Positionsbestimmungsverfahren mit Infrastruktur Die Autoren sind sich noch nicht sicher inwieweit eine Sichtlinie ben tigt wird Unt
107. en Auch muss sich der Programmierer selber entscheiden wann er die Kontrolle wieder an das Betriebssystem abg bt Ein weiterer Punkt ist die Portierung von C Quelltext Dieser muss von der blichen iterativen Programmierung aufw ndig in ereignisgetrie benen Quelltext berf hrt werden Bei einem Ausf hrungsmodell mit Threads wird die Berechnung logisch nach Aufgaben auf meh rere Threads verteilt Als Vorteile sind hier zu sehen dass sich der Proggrammierer nicht um die Prozessorkontrolle und das Timing k mmern muss Des Weiteren besteht eine Isolation zwischen den Speicherbereichen verschiedener Anwendungen und eine Portierung von C Quelltext ist leicht zu bewerkstelligen Wird ein preemptiver Scheduler eingesetzt so k nnen mehrere Threads quas gleichzeitig ausgef hrt werden Nachteil ist bei diesem Modell jedoch ein gerade auf Mikrocontrol lern nicht unerheblicher Overhead durch den Umgebungswechsel bei einem Threadwechsel Die ser ist auch f r zeitnah zu erledigende Aufgaben wegen der h ufigen Unterbrechung hinderlich Es muss f r den Stack eines jeden Threads ein Speicherbereich bereitgehalten werden Dies ist nicht besonders g nstig weil bei Betriebssystemen f r Sensornetzwerke aufgrund der nicht vorhandenen Memory Managment Unit bei Mikrocontrollern keine virtuelle Speicherverwaltung genutzt wird Weitere in der Literatur bekannte Ausf hrungsmodelle sind zustandsorientiert basieren auf Objek ten oder sind datenzentriert Di
108. en bis das Paket am Ziel angekommen ist Vergleiche hierzu Abbildung 3 15 c Der beste Gradient ist hierbei je nach Berechnungsmethode der kleinste oder gr te So nehmen die Pakete autmatisch den besten Weg zu r ck zur Senke egal ob kurze Entfernungen oder Wege mit der meisten Restenergie als optimal angesehen werden 39 3 Techniken in Sensornetzwerken 40 Quelle A i _ ae eE e e A g N N e a P ee g g pooo a g 7 Senke Senke ES ES ss 5 xy i ng int g iS REN Quelle B r ee w y Quelle B ___ Y E ersornoten gt Senden eines Interesses Des Ermittlung von Gradienten a Das Interesse wird von der Senke an beide b Beim Versenden der Interessen werden die Quellen gesendet Gradienten in Richtung der Senke gebildet an 6 Senke A Quell Des Senden von Daten c Die Datenpakete flie en entlang der besten Gradienten zur Senke Abbildung 3 15 Das Directed Diffusion Protokoll nach IGE 03 3 7 Zeitsynchronisation in Sensornetzwerken Directed Diffusion skaliert deutlich besser mit der Netzwerkgr e als Flooding Die Pakete von der Quelle zur Senke werden gezielt ber den besten Weg gesendet Dabei wird auf die Ressourcen und die zugrunde liegende Netzwerkstruktur eingegangen Es werden nur so viele Pakete wie n tig verschickt Beim ver breiten der Interessen kann durch geschicktes weiterversenden ebenfalls ein Vorteil gegen ber Flooding entstehen Selbst wenn d
109. en Bits auf der Senderseite bis zum Eintreffen auf der Empf ngerseite Hierbei vergeht bei der nahezu mit Licht geschwindigkeit stattfindenden Funkkommunikation weniger als eine Mikrosekunde bei bertra gungen ber nicht mehr als 300 Meter Verglichen mit den anderen Zeitspannen kann diese somit vernachl ssigt werden Zeit zum Annehmen Analog zu der Zeit zum bertragen ben tigt der Empf nger eine gewisse Zeit um die Nachricht Bit f r Bit entgegenzunehmen bevor er sie an die MAC Schicht weiterreichen kann Die Zeit zum Annehmen ist genauso gro wie die Zeit zum bertragen und berschneidet sich mit dieser Zeit zum Empfangen Nachdem alle Bits bei der MAC Schicht des Empf ngers eingetroffen sind ver geht eine Zeitspanne bis die Daten in der Anwendungsschicht angekommen sind Es muss zun chst ein Paket gepackt werden welches dann die einzelnen Schichten des Netzwerkstapels durchl uft Hierbei k nnen wieder die unter Zeit zum Versenden beschriebenen betriebssystemtypischen Verz gerungen auftreten Diese Zeitspanne kann minimiert werden wenn fr hzeitig der Eintreffzeitpunkt eines neuen Pakets in einer tiefen Ebene des Betriebssystems festgehalten wird Dies k nnte z B innerhalb der Unterbrechungsbehandlung des Netzwerkger tetreibers geschehen Dar ber hinaus kommt es noch zu einem Fehler hervorgerufen durch das Bytealignment der je nach ver wendeter Hardware und Implementierung der Zeit zum Annehmen oder Empfangen zugeordnet
110. en jedoch freiwillig den Prozessor abgeben Der Kernel unterst tzt synchrone und asynchrone Ereignisse Asynchrone Ereignisse werden vom Ker nel in die Prozessschlange eingeh ngt und zu einem sp teren Zeitpunkt ausgef hrt Synchrone Ereignisse hingegen verdr ngen den Erzeugerprozess und werden sofort ausgef hrt Der Erzeugerprozess wird genau dann wieder dem Prozssor zugewiesen wenn der Ereignisprozess bis zum Ende ausgef hrt wurde Aus Sicht des Erzeugerprozesses stellt das Erzeugen eines synchronen Ereignisses somit einen Funktionsaufruf dar Alle Prozesse teilen sich einen gemeinsamen Stack Asynchrone Ereignisse reduzieren den Speicherbedarf des Stacks da bis zum Beginn ihrer Behandlung alle vorherigen Prozesse bis zum Ende ausgef hrt wurden und mit einem neuem leeren Stack begonnen werden kann Eine weitere Funktionalit t des Contiki Kernels ist der Pollingmechanismus Dieser wird von nah an der Hardware operierenden Prozessen zur Abfrage von Statusinformationen der Hardware genutzt Prozesse k nnen bei der Pollingkomponente Interesse anmelden Der Scheduler gibt der Pollingkomponente zwi schen zwei Prozessen den Prozessor so dass diese die eingetragenen Prozesse in der Reihenfolge der Pollingpriorit t informieren kann Die Bibliotheken in Contiki Der Kernel von Contiki bietet nur rudiment re Funktionen zum Multiplexing der CPU und Funktionen zum Eventhandling Der Rest des Systems ist mithilfe von Bibliotheken implementiert So i
111. en sp ter f r die im Abschnitt 6 stattfindende Evaluation herangezogen Hierbei wird unterschieden zwischen erforderlichen und w nschenswerten Anforderungen anhand derer sich der Erfolg des implementierten Systems messen lassen kann Erforderliche Anforderungen sind f r einen erfolgreichen Projektabschluss auf jeden Fall zu erf llen Die w nschenswerten Anforderungen sind hingegen als freiwillige Zusatzleistung anzusehen Erforderliche Anforderungen El Datenerfassung Die Sensorknoten m ssen mindestens Umgebungstemperatur Luftfeuchte und Lichtwerte erfassen k nnen Dies ist zwingend notwendig um ein Wert Zeit Diagramm der genann ten Gr en zu erstellen Es soll mindestens eine zeitliche Messaufl sung von einem Wert jeder Mess gr e pro Sekunde erreicht werden Dieser Wert wurde willk hrlich gew hlt Auf der einen Seite ist zu bedenken dass Temperatur nderungen sich aufgrund der Tr gheit der Sensoren nicht beliebig schnell erfassen lassen jedoch die Messaufl sung das Datenaufkommen und damit das zu verwen dene Routingprotokoll stark beeinflusst Auch ist davon auszugehen dass sich die Temperatur in einem Raum nicht im Sekundentakt ndern kann E2 Laufzeit der Sensorknoten Die Batterielaufzeit soll maximiert werden da diese die Lebensdauer des Sensornetzwerks ohne Wartung begrenzt Es ist w nschenswert dass das Sensornetz bei Mes sungen m Minutentakt mindestens ein Jahr mit einem Satz Batterien operieren kann Dies ist
112. enen Neuerungen zun chst vorgschlagen und nach ihrer Aufnahme in TinyOS dokumentiert werden Arbeits gruppen k nnen TEPs erstellen und einreichen Eine Arbeitsgruppe besteht immer aus mindestens drei Menschen die sich intern treffen und sowohl TEPs als auch Quellcode der Alliance vorschlagen Spezielle Langzeitgruppen k mmern sich dabei um besonders wichtige Bereiche und Subsysteme etwa Routing Management Plattformenunterst tzung Tests und Tools zum Programmieren BCE 06 TinyOS selbst und die Anwendungen f r TinyOS werden in nesC geschrieben das eine speziell f r Ti nyOS entwickelte Spracherweiterung zu C ist NesC Quellcode wird zun chst mit dem nesC Compiler in C Quellcode berf hrt und dann mit einem C Compiler f r die jeweilige Sensorknotenplattform in das B1 n rformat bersetzt Da TinyOS kein dynamsiches Linken unterst tzt hat der Compiler eine vollst ndige Sicht von dem Aufrufgraphen der Anwendung und kann den Quellcode optimal f r den C Compiler vor bereiten Der C Compiler erh lt eine einzige C Quelldate1 und kann neben den blichen Optimierungen 22 3 5 Betriebssysteme f r Sensorknoten z B Entfernen von unbenutzten Variablen und Code Inlining auch ber die Aufrufgrenzen der einzelnen Komponenten hinweg Optimierungen vornehmen LGO9 Seite 12f TinyOS ist ereignisbasiert und besteht aus explizit durch Programmanweisungen miteinander verbundenen Komponenten die jeweils eine bestimmte Funktion anbieten
113. ens eine einfache Schnittstelle zum Einbinden neuer Sensorik weitgehend bieten s e bereits Treiber f r die g ngigsten Sensoren an Dateisystem Es ist nicht immer m glich die erfassten Daten sofort an die Senke zu schicken Gr nde hierf r sind Hardwarefeher Umweltbedingungen oder Paketkollisionen auf dem Funkkanal Sen sorknoten m ssen in der Lage sein ber einen l ngeren Zeitraum Daten zu sammeln und lokal zu speichern Daher besitzen sie einen mehrere Megabyte gro en Hintergrundspeicher zur Erg nzung 17 3 Techniken in Sensornetzwerken des sehr knappen Arbeitsspeichers Ein Betriebssystem sollte eine Abstraktionsschicht zum einfa chen effizienten und verl sslichen Zugriff darauf f r Anwendungen bereitstellen Ein zirkul rer Puffer erf llt die Anforderungen simpler Programme komplexere Anwendungen er fordern jedoch ein an die Ressourcenbeschr nkungen in Sensornetzen angepasstes Dateisystem Es gibt drei wesentliche Anwendungen an Dateisysteme f r Sensorknoten Diese sind das eher seltene Auslesen und Schreiben von Bin rcodeabblidern sowie Konfigurationsparametern wie Abtastraten und Kal brierungswerten Der h ufigste Anwendungsfall ist das sequentielle Schreiben und Lesen von Sensordaten Zufallszugriffe sind hingegen in der Welt der Sensornetzwerke recht selten In fast allen F llen kommen auf Sensorknoten Flashspeicher zur persistenten Speicherung zum Einsatz Es ist zu beachten dass diese nur eine limitierte Anzahl v
114. er Verlag 2007 S 96 109 ZHONG Ziguo HE Tian Achieving range free localization beyond connectivity In Sen Sys 09 Proceedings of the 7th ACM Conference on Embedded Networked Sensor Systems ACM 2009 S 281 294 Anhang A Inhaltsverzeichnis der beiliegenden CD Bin Enth lt die entstandenen Programme in gebauter Form Quellen Enth lt alle Quelldateien der entstandenden Programme Debugserver Enth lt die Quellen des Debugservers PC Programm Client Programm Enth lt die Quellen des Client Programms PC Programm Server Enth lt die Quellen des Servers Sensornetzwerk Basisstation Enth lt die Quellen der Basisstation Sensornetzwerk Sensorknoten Enth lt die Quellen der Sensorknoten TinyOS Enth lt die ausgecheckte Fassung des TinyOS Repositorys mit Entwicklungsstand vom 16 07 2009 app Enth lt die TinyOS beiliegenden Beispielanwendungen doc txt Enth lt die TinyOS Enhancement Proposals TEP support sdk sf sfsource c Die Implementierung des seriellen Protokollstapels von TinyOS fiir PC Anwendungen tos Enthalt alle Quellen von TinyOS tos lib ftsp Enth lt die Quellen des Flooding Time Synchronization Protokolls doc Enth lt alle w hrend der Projektlaufzeit entstandenen Textdokumente Benutzerhandbuch pdf Das Benutzerhandbuch fiir das System zur Erfassung eines Tempera turprofils innerhalb von Wohn und B ror umen Einstiegsvortrag pdf Die Folien des zu Beginn der Projektlaufzeit gehaltene
115. er f r Messun gen zum selben Zeitpunkt identisch ist Nur so kann man die Daten sp ter einem Zeitpunkt zuordnen sie chronologisch sortieren und verschiedene Messgr en desselben Ortes sowie dieselben Messgr en ver schiedener Orte miteinander in Zusammenhang bringen Dies bildet f r den Beobachter die Grundlage f r eine aussagekr ftige Auswertung der Daten Die zweite Klasse b besteht aus Anwendungen zur Interaktion der Sensorknoten untereinander Oftmals werden Daten verschiedener Sersorknoten auf dem Weg von der Quelle zur Senke aggregiert Vorausset zung hierf r sind exakt miteinander synchronisierte Uhren damit nicht f lschlicherweise gleiche Messwer te von unterschiedlichen Zeitpunkten zusammengef hrt werden Des Weiteren wird eine synchronisierte Zeit von Netzwerkfunktionen ben tigt Es kann immer nur ein Sensorknoten gleichzeitig auf einem Funk kanal senden ansonsten kommt es zu Kollisionen Um dies zu unterbinden wird beim Zeitmultiplexver fahren jedem Sensorknoten ein Timeslot zugeordnet in dem er senden darf Dar ber hinaus wechselt der Funkchip um Energie einzusparen zeitweise n den Schlafmodus Die Schlafzyklen der einzelnen Sensor knoten m ssen aufeinander abgestimmt sein Ferner nutzen auch andere Komponenten wie die Sensorik oder der Hintergrundspeicher Energiesparfunktionen Zu all dem kommen noch einzelne Anwendungen f r Spezialaufgaben hinzu Als Beispiel seien hier Positionsbestimmungsverfahren genannt be
116. er mit einem anderen Netzwerk wie dem Internet verbunden Die Sensorknoten k nnen station r oder beweglich sein VDMC08 Seite 1 Sind die Sensorknoten in der Lage angeschlossene Aktoren zu steuern wird auch von kabellosen Sensor und Aktornetzen gesprochen VDMC08 Seite 4 3 1 Begriffsdefinitionen Heterogenes und homogenes Sensornetzwerk Homogenit t oder Heterogenit t beschreiben die im Sensornetzwerk verwendeten Sensorknoten In homogenen Sensornetzwerken sind alle Sensor knoten von identischer Hardware w hrend in heterogenen Netzen mindestens zwei verschiedene Hardwareplattformen zum Einsatz kommen Zur Zeit befnden sind berwiegend homogene Sen sornetzwerke im Einsatz Bou09 Seite 21 Auch das in dieser Arbeit entwickelte Sensornetz ist homogen Heterogene Sensornetze bestehen meist aus besonders energiesparenden kleinen Knoten zur Datenerfassung und vereinzelnten durch Anschluss an ein Stromnetz mit energie versorgten Sensorknoten mit mehr Rechenleisung und gr eren Speichern zur Datenverarbeitung Man beachte dass Homogenit t und Heterogenit t keine Aussage ber die auf den Sensorknoten installierte Software machen Multi Hop Sensornetzwerk Typischerweise k nnen in einem Sensornetzwerk nicht alle Sensorknoten bedingt durch die begrenzte Funkreichweite direkt miteinander kommunizieren Zum Austausch von Daten zweier dieser Knoten m ssen n dazwischenliegende Knoten die Daten weiterleiten und es werden insgesamt n
117. erden w hrend die alten noch nicht fertig erfasst wurden Dies ist genau dann der Fall wenn mehrere Messungen mit sehr geringer Messaufl sung gleichzeitig in der Interessentabelle vorhanden sind In einem solchen Fall soll die zweite Messung dennoch stattfinden Sie findet dann zwar nicht zu dem richtigen Zeitpunkt statt dieser Fehler kann jedoch sp ter anhand des Zeitstempels erkannt werden Die Sensordatenerfassung soll jede in Auf trag gegebene Messung durchf hren Um dies zu erreichen wird eine Warteschlage f r die Messungen eingef hrt Abbildung 4 6 Das Flussdiagramm zum Anfordern neuer Sensordaten In Abbildung 4 6 ist das Flussdiagramm f r die Sensordatenerfassung dargestellt Eine neue Anfrage wird 74 4 3 Implementierung der Basisstation in die Warteschlage aufgenommen Anschlie end wird berpr ft ob bereits Messungen laufen Ist dies der Fall ist diese Anfrage hier zun chst beendet Die aktuelle Messung wird die neue Anfrage starten sobald sie abgeschlossen und die neue Messung an der Reihe ist Andernfalls wird die n chste Messung aus der Warteschlange selektiert Darauffolgend wird die Messung der relevanten Gr en gestartet Anschlie end wird auf das Ende aller Messungen gewartet die aktuelle Zeit beim Synchronisationsprotokoll erfragt und an die Anwendung gemeldet Sind alle anstehenden Messungen aus der Warteschlange abgearbeitet endet die Sensordatenerfassung Ansonsten wird der Messvorgang mit der n chste
118. ersuchungen hierzu sind geplant Die Po sitionsbestimmung erzielte im Testaufbau bei 600 Hz Interferenzfrequenz und drei Ankerknoten mit 133 Umdrehungen pro Minute f r 90 der Werte eine Genauigkeit von 70 cm CTL 08 Dies kann mit einer sr eren Anzahl an Ankerknoten verbessert werden was jedoch aufgrund der nacheinander auszuf hren den Winkelmessungen zu gr eren Latenzzeiten f hrt Abhilfe schafft ein noch zu entwickelndes Schedu ling welches in gro en Netzen mehrere Messungen von nicht in Nachbarschaft stehenden Ankerknoten gleichzeitig durchf hrt Die Bas sstation ben tigt zur Berechnung der Position aus den Messdaten 0 47 Sekunden pro unbekanntem Knoten somit ist das Verfahren nur f r statische oder wenige sich langsam bewegende Sensorknoten geeignet SpinLoc wurde explizit f r Innenr ume entworfen ist nicht entfer nungsbasiert setzt eine Zeitsynchronisation voraus und berechnet die Position relativ zur Basisstation Derzeit ist nur eine zweidimensionale Positionsbestimmung m glich es kann jedoch mit hinzugef gten vertikal statt horizontal rotierenden Ankerknoten auch die H he bestimmt werden 59 4 Entwurf und Implementierung des Sensornetzwerks In diesem Kapitel werden der Entwurf und die Implementierung des Sensornetzwerks zur Erfassung eines Temperaturprofils in Wohn und B ror umen vorgestellt Das Sensornetzwerk dient dem Zweck innerhalb der einzelnen R ume des Geb udes Temperatur Luftfeuchte Lichtwerte un
119. es nach dem Versenden ausgegangen es definiert somit den Zeitpunkt des Losschickens minus t Das akustische Signal breitet sich hingegen deutlich langsamer aus so dass die hier beschriebene Zeitdifferenz von den Sensorknoten gemessen und zur Berechnung der Entfernung genutzt werden kann Dieses Verfahren ist sehr genau bei Umgebungen mit einer Sichtlinie zwischen den Sensorknoten es funktioniert allerdings am besten mit kalibrierten Laut sprechern sowie Mikrofonen und in Umgebungen ohne Echo Sto05 Seite 282 Eine weitere genutzte Gr e welche als Grundlage zur Positionbestimmung herangezogen wird ist der Winkel von eintreffenden Signalen Angle of Arrival AoA zu einem Referenzknoten einem Funkmast oder der mit einem elektronischen Kompass ermittelten geographischen Orientierung Der Winkel kann mithilfe eines Feldes von Empf ngern bestimmt werden Es sind mehrere Funkempf nger oder Mikrofone bei einem Sensorknoten so angeordnet dass die Richtung des eintreffenden Signals aus der Zeitdifferenz des Eintreffens zwischen den Empf ngern bestimmt werden kann Hierbei wird eine Genauigkeit n der Gr enordnung von wenigen Grad erzielt Nachteilig sind jedoch die gro en Hardwarekosten und die Unterbringung der Hardware auf der typischen kleinen Sensorknotenfl che Sto05 283 Einen anderen Ansatz bei der Winkelbestimmung verfolgen Chang et al CTL 08 Sie befestigen einen Ankerknoten an einem Motor der den Ankerknoten auf einer Kreisbahn b
120. estTimer fired I I I I I I I I I I signal DirectedDiffusion PeriodicInterest interest I I I I I I call Sensorik readSensors interest Aufruf beendet I Abbildung 4 13 Das Ablaufdiagramm fiir die Bedienung eines periodischen Interesses 1 von 2 wahr gesetzt und der Interessentimer gestartet Er feuert sobald das Interesse bedient werden soll Dar aufhin wird das Ereignis PeriodicInterest der Schnittstelle DirectedDiffusion erzeugt und damit im Modul SensorMoteC der passende Eventhandler gestartet Dieser bekommt die Art des Interesses mit bergeben SensorMoteC ruft das Kommando readSensors der Schnittstelle Sensorik auf und gibt so die Anfrage nach dem Interesse weiter In SensorikC l uft der Eventhandler an der bei den Treibern der Sensoren ein Er eignis zur Anfrage der Sensorwerte erzeugt Der Programmfluss kehrt zu SensorMoteC zur ck und die Interessenbedienung ist vorerst beendet SensorMoteC DirectedDiffusionP NetworkP ActiveMessageC signal Sensorik dataReady par I I call DirectdDiffusion SendPeriodicDate par I I I call Network sendPeriodicDate par par temp hum light time checkSendData post send Aufruf beendet Aufruf beendet signal AMC AMSend dest msg len der Sendtask l uft Abbildung 4 14 Das Ablaufdiagramm f r die Bedienung eines periodischen Interesses 2 von 2 In Abbildung 4 14 ist das Ablaufdiagramm f r den zweiten Teil der Interessenbedienung zu sehen Sobald
121. etzwerkstapel und Ger tetreiber f r die Sensoren und den Funkchip Dies ist innerhalb der Projektlaufzeit nicht zu realisieren In Abschnitt 3 5 wurden ausf hrlich Betriebssysteme f r Sensorknoten besprochen und miteinander verglichen Die Wahl f r das in diesem Sensornetz verwendete Betriebssystem f r Sensorkno ten f llt auf TinyOS Hierf r sprechen mehrere Gr nde Da der MIM CM5000 MSP Sensorknoten von Maxfor von der Abteilung Systemsoftware und verteilte Systeme gestellt wird und als gegeben angesehen werden muss ist es von enormem Vorteil dass TinyOS diese Plattform bereits unterst tzt Es sind sogar bereits Treiber f r die verbauten Sensoren vorhanden Die Entwicklung kann damit z gig starten und die Anforderung El f r die Datenerfassung ist ohne die Entwicklung eines Ger tetreibers zu realisieren Des Weiteren besitzt TinyOS eine Energieverwaltung f r den Mikrocontroller und den Funkchip Ein m glichst effizienter Umgang mit den Energieressourcen ist oberstes Gebot n Sensornetzwerken und wird auch in Anforderung E2 verlangt Ein weiterer Grund f r TinyOS ist das ereignisbasierte Ausf hrungsmodell Die ses ist besonders ressourcenschonend vergleiche Unterabschnitt 3 5 1 und passt zu dem Programmfluss in der hier entworfenen Anwendung Abschlie end fiel die Entscheidung auch deswegen auf TinyOS weil bereits Erfahrungen damit an der Universit t Oldenburg gemacht wurden und somit Wissen ber TinyOS lokal vorhanden ist TinyO
122. ewegt Hierdurch kann mithilfe des Doppleref fektes der Winkel unbekannter Knoten und einem Referenzknoten bestimmt werden Das von den Autoren vorgeschlagene Verfahren zur Positionsbestimmung wird in Unerabschnitt 3 8 3 beschrieben 3 8 1 Global Positioning System GPS Das Global Positioning System GPS besteht aus 24 Satelliten Sie umrunden die Erde zweimal am Tag in einer solchen Umlaufbahnenkonstellation dass zu jeder Zeit an jedem Ort mindestens vier Satelliten empfangen werden k nnen Ein GPS Empf nger berechnet die Entfernung zu mindestens drei Satelliten per Time of Arrival Ein vierter Satellit wird zur Zeitsynchronisation des Empf ngers mit den Satelliten ben tigt Anhand des Zeitpunktes wird ferner 1m GPS Empf nger dank der bekannten Satellitenbahnen die Position der Satelliten berechnet Man besitzt nun drei Punkte und deren Entfernung und kann per Trilateration die Position des GPS Empf ngers bestimmen Bou09 Seite 334 Als L sung erh lt man im dreidimensionalen Fall zwei valide L sungen denn drei Kugeln um verschiedene Punke schneiden sich in maximal zwei Punkten Eine L sung befindet sich allerdings weit im Weltraum oberhalb der Satelliten Die Genauigkeit der Positionsbestimmung betr gt je nach verwendetem GPS Empf nger und den derzeitigen Satellitenpositionen zwei bis 15 Meter Bou09 Seite 334 Es werden der L ngen und der Breitengrad sowie die H he berechnet des Weiteren stehen die Uhrzeit und bei mehreren Messun
123. f llt W3 Komplexe Auswertung Diese Anforderung konnte nicht erf llt werden Der Umfang des Projekts war mehr als ausreichend und daher wurde nicht mehr mit dem Themenbereich der Auswertung begonnen Die Entwicklung einer Regelung ist ein Themenbereich f r sich weswegen man sich bewusst daf r entschied diesen Bereich nicht blo oberfl chlich anzuschneiden Der Fokus wurde auf die Entwicklung des Datenerfassungssystems gelegt damit ein m glichst m chtiges System f r Anschlussforschungen zur Verf gung steht Wie nun feststeht wurden bis auf eine alle Anforderungen erf llt Der Schwerpunkt der Arbeit lag auf der Entwicklung des Sensornetzwerks Dies ist daher auch deutlich m chtiger als das PC Programm Hierbei kann man auch beim PC Programm mehr Funktionen auf Server als auf Clientseite finden Der Server kann die M glichkeiten des Sensornetzwerks in vollem Unfang nutzen Das Client Programm unterst tzt keine Interessen die nur einzelne Sensorknoten bedienen k nnen Diese Funktion k nnte aber leicht hin zugef gt werden und wurde lediglich aus Zeitgr nden weggelassen da diese Funktion nicht von der An forderungsdefinition vorgegeben wurde Verbesserungen beim Sensornetzwerk k nnen neben dem bereits erw hnten Aufr umen der Gradiententa belle insbesondere bei der Sicherheit der bertragung an alle benachbarten Sensorknoten stattfinden Diese beiden Punkte k nnten verbessert werden indem der Sensorknoten regelm ig alle sei
124. freigeben ist das Schl sselwort nicht gesetzt meldet der Compiler einen Fehler LG09 Seite 71 Andererseits kann man einzelne Bl cke des Quellcodes mit dem Schl sselwort atom als atomar definieren Dann werden zur Ausf hrung die Interrupts ausgeschaltet Tasks n TinyOS besitzen keinen R ckgabewert und nehmen keine Parameter entgegen Zudem kann ein Task nur genau dann gepostet werden wenn kein gleicher Task bereits gepostet aber noch nicht gestartet wurde Somit kann ein Modul einen Task maximal einmal instantiieren ein Task kann sich aber selber erneut posten LS Jeder Task besitzt einen eigenen Stack da aber nur ein Task zur selben Zeit laufen kann kommt TinyOS mit einem Stack zu jedem Zeitpunkt aus Ein Arbeitsspeicherabbild eines laufenden TinyOS besteht unten aus einem Datenbereich auf dem der Heap aufsetzt und nach oben w chst Von oben w chst der Stack des aktuellen Tasks n Richtung des Heaps TinyOS besitzt keinen Mechanismus um ein Ineinanderlaufen von Heap und Stack zu verhindern Des Weiteren ist auch kein Speicherschutz vorhanden was aber mehreren Modulen den Zugriff auf dieselben Datenstrukturen erlaubt Sie allozieren hierzu Speicher auf dem Heap mittels einer statischen Variablen und k nnen ber die Schnittstellen eine Referenz auf die Speicherstelle an andere Module bergeben LG09 Seite 36ff In Abbildung 3 6 ist die Komponente MainC zu sehen die jede Anwendung f r TinyOS einbinden muss S e ist f r den Boo
125. g slot sendserverErrorferror Ostring slot senchensornfoimsg dataMsg slot requestiensorDatainodelD int start ODateTime end QDateTime signal sendsensorDiata data sensorData slot newb easurementims interesthisg signal nowDatadrriveci pkt OByteArray gt signal newlatoArrived okt QByteArray signal deletemMeasurements signal requestGracdientinodeid int signal sendGradientinodeid int gradient int slot 1 calibratesensorinodeld int sensarlype int offset int signal setLED nodeid int value int signal 1 databaselnterface 1 pendinginputs OQueue lt OS Query pendingRequests OQueue lt Reqguest gt sawesensorreadings msg datahsg slot A sawelnterestimsg interesthisg void open device QString int saveCalibration nodeld int sensorType int offset int void close woid gethensorreadings nadelD int start QDateTime end ODateTime slot getLalibrationenodeld int sensorlype inti int sendsensorDiata data sensorData signal wiritefpkt OBYteaArray void read OBYteArray Abbildung 5 5 Das Klassendiagramm des Servers 5 3 Entwurf und Implementierung des Clients Abschlie end bleibt noch zu erw hnen dass lediglich die QtCore Bibliothek f r den Server verwendet wird Dadurch ben tigt er keine graphische Benutzeroberfl che 5 3 Entwurf und Implementierung des Clients In diesem Abschnitt werden der Entwurf und die Impleme
126. g von Komponenten und kann so immer passend f r die jeweilige An wendung zusammengestellt werden So gibt es neben den Systemkomponenten wie Scheduler Timer oder Bootkomponente f r viele Aufgaben die passende Komponente Dies umfasst zum einen Ger tetreiber f r Hardware w e einem Sensor oder Funkchip zum anderen aber auch Software w e ein Routingprotokoll oder Datenfilter Der Entwurf von Komponenten f r TinyOS kann mittels Komponentendiagrammen verdeutlicht werden In ihnen ist die Beziehung zwischen den einzelnen Komponenten und Modulen sowie der Schnittstellen verbindungen dazwischen auf einen Blick zu erkennen Der TinyOS Kernel In TinyOS werden alle Operationen von einem Task oder einer Unterbrechungsbehandlungsroutine durch gef hrt Tasks k nnen zu jeder Zeit gepostet werden Der TinyOS Scheduler f hrt sie dann zu einem sp te ren Zeitpunkt nacheinander einzeln aus das hei t er ist nicht preemptiv und plant nach dem FIFO Prinzip ein Im Gegensatz dazu k nnen Unterbrechungen zu jedem Zeitpunkt auftreten Da sowohl Tasks als auch Unterbrechungsbehandlungsroutinen innerhalb der Module implementiert werden und hier Kommandos oder Ereignisse ausl sen k nnen st die Ausf hrung nicht nur auf das Modul beschr nkt Bei der Im plementierung von Komponenten muss daher immer auf kritische Abschnitte geachtet werden Einerseits kann man mit dem Schl sselwort async Kommandos und Ereignisse f r Unterbrechungsbehandlungsrou tinen
127. gel durch die Energiereserve begrenzt In seltenen F llen ist der Datenspeicher der limitierende Faktor Arbeitszyklus Duty cycle Um beim Funkchip Energie zu sparen wird bei der Kommunikation ein Arbeitszyklus aus Schlafphase und Aktivphase eingef hrt der immer wieder periodisch wiederholt wird In der Schlafphase ist der Funkchip ausgeschaltet und in der Aktivphase ist er im Hoch leistungsmodus Solange keine Daten gesendet oder empfangen werden entspricht die L nge der Aktivphase einem bis zwei Prozent der L nge des Arbeitszyklus Empfangssignalst rkenangabe Received signal strength indication kurz RSSI Bei der 10 Funkkommunikation gibt die Empfangssignalst rkenangabe Auskunft ber die St rke des empfan genen Funksignals Sie w rd h ufig zur Entfernungsmessung zwischen Sensorknoten eingesetzt In der Theorie n mmt die Empfangssignalst rke mit der Entfernung zum Sender im Quadrat ab In der Praxis tritt bei einer Messung der Empfangssignalst rkenangabe ein Rauschen auf das die 3 2 Ausgew hlte Anwendungsbeispiele Positionsbestimmung in der Gr enordnung von mehreren Metern ungenau werden l sst Sto05 Seite 279f Die Empfangssignalst rke wird gemessen in Dezibel pro Milliwatt dBm Bou09 Seite 312 Aufstellung Deployment Das Ausbringen der Sensorknoten in die Umwelt wird als Aufstellen be zeichnet Die Position der Sensorknoten im Raum hat Auswirkungen auf die Netzabdeckung die Kommunikationskosten und da
128. gen die Geschwin digkeit und Richtung zur Verf gung GPS hat s ch weltweit als dominantes Positionsbestimmungsverfahren m zivilen und milit rischen Be reich etabliert Es ist allerdings zur Positionsbestimmung in Sensornetzwerken nur bedingt geeignet GPS Module sind teuer und konsumieren inakzeptabel viel Strom Ein gro es Problem ist eine gute Verbindung zu den Satelliten In Geb uden in urbanen Umgebungen unter Wasser und bei schlechtem Wetter ist der Empf nger nicht in der Lage Signale zu empfangen Aus diesen Gr nden kommt GPS oftmals nur auf einer kleinen Anzahl der Sensorknoten zum Einsatz um beispielsweise einem relativen Positionsbestim mungsverfahren eine Abbildung des lokalen Koordinatensystems auf das globale zu erm glichen In dem in Abschnitt 3 2 vorgestellten System zur Vulkan berwachung wird ein einziger Sensorknoten mit einem 56 3 8 Positionsbestimmung von Sensorknoten GPS Empfanger ausgestattet GPS wird hier lediglich als Referenzzeitgeber fiir die Zeitsynchronisation genutzt WALJ 06 Bei GPS handelt es sich um ein absolutes entfernungsbasiertes verteiltes und passives Positionsbestim mungsverfahren ohne Ankerknoten f r statische oder mobile Sensorknoten Es wird eine Infrastruktur in Form der Satelliten ben tigt Diese sind zwar weltweit kostenlos vorhanden aber f r ein Sensornetzwerk auf fremden Planeten muss dies bedacht werden Es wird keine Sichtlinie zwischen den Sensorknoten ben tigt aber Kont
129. gen zu starten und die Sensorkalibrierung vorzunehmen zum anderen um nach Anforderung E6 Aktoren anzusteuern Des Weiteren m ssen Messwerte und Sta tusnachrichten von den Sensorknoten an die Basisstation geschickt werden k nnen Eine Kommunikation zwischen beliebigen Sensorknoten ist aus der Anforderungsdefinition nicht abzuleiten Geht man zus tz lich davon aus dass Messungen nur selten neu gestartet werden m ssen und man die Sensorkalibrierung nur einmalig nach dem Aufstellen vornimmt so bersteigt das Paketaufkommen zur Basisstation hin das Paketaufkommen von ihr weg Das Datenaufkommen der Aktoren spielt bei dieser Betrachtung eine unter geordnete Rolle die Sensordatenerfassung liegt im Fokus dieser Arbeit 62 4 1 Technologieauswahl Anhand der Betrachtung von Routingprotokollen in Abschnitt 3 6 wurde Directed Diffusion als Routing protokoll f r das Sensornetzwerk gew hlt Es passt gut auf die oben beschriebenen Eigenschaften des hier vorliegenden Sensornetzwerks Directed Diffusion ist flach unterst tzt eine Datenaggregation ist mul tipfadfahig und organisiert die Sensorkonten selbstst ndig zu einem Multi Hop Netzwerk indem es Inter essen verbreitet Durch die letzten beiden F higkeiten wird es somit auch der Anforderung E4 bez glich Selbstorganisation und Robustheit gegen ber Ausf llen gerecht Von der Basisstation werden Interessen an die Sensorknoten gesendet und diese k nnen danach Daten an die Basisstation schicken
130. h ngige Programmcode in eigenen Dateien gekapselt wird und ein Mechanismus zum Austausch einzelner Komponenten vorgesehen ist Anpassbarkeit Anwendungen f r Sensornetzwerke verteilen sich ber verschiedenste Disziplinen Dies 16 reicht vom Messen von Umweltparametern Steuern von Aktoren bis hin zur Zielverfolgung und an derem Ein Betriebssystem muss f r verschiedene Anwendungen auch verschiedene Anforderungen erf llen Diese k nnten z B Echtzeitf higkeiten Neuprogrammierung m laufenden Betrieb oder ein nur unregelm iger Kontakt zur Basisstation sein 3 4 Ressourcenbeschr nkungen und resultierende Anforderungen an Betriebssysteme und Anwendungen bei Sensornetzwerken Parallele Abl ufe Zu einem Zeitpunkt k nnen in einem Betriebssystem oder in der Anwendung mehrere Aufgaben auflaufen Als Beispiel k nnen die Erfassung neuer Sensorwerte und die Bearbeitung der letzten erfassten Sensorwerte genannt werden Es kann auch zu jeder Zeit ein neues Datenpaket ber Funk oder serielle Schnittstellen eintreffen Aufgaben werden durch Threads Tasks oder Ereignisse repr sentiert welche oftmals auch auf denselben Datenstukturen agieren Um bei derartigen Daten zugriffen keine Fehler entstehen zu lassen muss das Betriebssystem Mechanismen zur Behandlung konkurrierender Operationen anbieten Auch in der Welt der Sensornetzwerke s nd Semaphore be kannt Die meistgenutze Variante ist jedoch ein wechselseitiger Ausschluss Mutex genannt welc
131. h die aktuelle Prozessorauslastung durch andere Anwendungen spielt eine Rolle Diese Zeit kann in einer Gr enordnung von mehreren hundert Millisekunden liegen und ist h ufig bereits gr er als die zu erreichende Genauigkeit der Zeitsynchronisation Zeit zum Zugreifen Sobald das Paket in der MAC Schicht auf der Senderseite eingetroffen ist muss es eine Zeitspanne bis zum Versenden des ersten Bits warten Einen Funkkanal kann immer nur ein Sen der zur selben Zeit benutzen und bis der Kanal frei ist k nnen Millisekunden bis mehrere Sekunden 44 3 7 Zeitsynchronisation in Sensornetzwerken vergehen Dies ist sowohl vom verwendeten MAC Protkoll als auch von der derzeitigen Netzauslas tung abh ngig Die Zeit zum Zugreifen auf den Kanal ist die am wenigsten deterministische Gr e bei dem Austausch eines Datenpaketes zwischen zwei Sensorknoten Zeit zum bertragen Dies ist die Zeit die der Funkchip des Senders ben tigt um das Paket Bit f r Bit auf der physikalischen Schicht ber den Funkkanal zu versenden Es wird eine Zeitspanne n der Gr enordnung von mehreren zehn Millisekunden ben tigt welche jedoch mit der bekannten Paketgr e und der bertragungsrate abgesch tzt werden kann bernimmt der Funkchip nicht die Aufgabe des MAC Layers so k nnen jedoch nicht berechenbare Unterbrechungen m Mikrocon troller f r weitere Verz gerung sorgen Zeit zum Verbreiten Es vergeht eine Zeitspanne zwischen dem Verlassen der einzeln
132. h keine Schnitt fl che geben wenn die berechneten Entfernungen zu kurz bestimmt wurden Am besten st das Ergebnis bei unbekannten Knoten in den Ecken der Quadrate Sto05 289 Dieses Positionsbestimmungsverfahren eignet sich am besten bei Sensorknoten mit wenig Rechenleistung Die Berechnung ist einfach und ohne den Einsatz von Gleitkommaoperationen durchzuf hren Die Genau igkeit ist jedoch nicht so gut wie bei mathematisch aufw ndigeren Verfahren Bounding Box ist ein verteilts passives Verfahren ohne Infrastruktur fiir eine zweidimensionale Positions bestimmung Es wird keine Sichtlinie zwischen den Knoten vorausgesetzt solange die Entfernungsmes sung eine solche nicht verlangt Es miissen Ankerknoten im Netz vorhanden sein von denen die unbekann ten Knoten die Position anfordern k nnen Ist diese absolut so berechen auch die unbekannten Knoten eine 57 3 Techniken in Sensornetzwerken absolute Position Des Weiteren handelt es sich um ein entfernungsbasiertes Positionsbestimmungsverfah ren Ist man nicht n der Lage Entfernungen zu ermitteln Kann aber auch d e maximale Funkreichweite als Distanz angenommen werden Das Verfahren kann innerhalb und au erhalb von Geb uden zum Einsatz kommen und ben tigt keine Zeitsynchronisation Aufgrund der einfachen Berechnung kann es auch f r mobile Sensorknoten eingesetzt werden 3 8 3 Spinning Indoor Localization SpinLoc A1 A2 A3 g o Referenzknoten g Unbekannter Knote
133. her auf Ausschalten der Interrupts beruht Ein weiterer wichtiger Punkt ist die beschr nkte physikalische F higkeit von Mikrocontrollern bei parallelen Abl ufen Zum einen besitzt die Mehrzahl aller Mikrocontroller lediglich einen Kern Zum anderen handelt es sich meist um RISC Architekturen der MSP430 besitzt 27 Grundinstruk tionen und 24 emulierte das hei t aus Grundinstruktionen zusammengesetzte Instruktionen Einen Task zu posten und der Umgebungswechsel bei Threads ist somit auf Mikrocontrollern recht teuer Aufgrund der Run to completion Semantik von Tasks muss daher zwischen Ausf hrungsdauer mit hierbei ausgeschalteten Interrupts und der Anzahl der Taskwechsel abgewogen werden Netzwerk Die Kommunikation mit anderen Knoten oder mit einem PC ist eine wichtige Funktion von Sensorknoten Anwendungen f r Sensornetzwerke sehen so gut wie nie eine Benutzerinteraktion direkt an den Sensorknoten vor nach dem Aufstellen operieren sie autark Meist besitzen diese auch nur wenige LEDs zur Ausgabe und selten Kn pfe zur Eingabe So stellt das Netzwerk die einzige Schnittstelle zum Menschen dar Obwohl die typische Paketgr e bei Sensornetzwerken nur ca 32 Bytes betr gt ist dies in Anbe tracht der geringen Speicherressourcen von Mikrocontrollen nicht wenig Netzwerkstapelimplemen tierungen mit Cross Layer Schnittstellen verhindern haufiges Kopieren von Speicherbereichen Zur Kommunikation mit anderen Sensorknoten kommt weitgehend Funk zu
134. hicken einer neuen Nachricht Vergleiche hierzu Zeilen 9 bis 18 in dem Pseudocodelisting 3 5 Erh lt ein Sensorknoten eine neue Synchronisationsnachricht so nimmt er sie nur bei einer kleineren oder gleichgro en Rootadresse als von bisher erhaltenen Paketen entgegen denn der Root ist per Definition im mer der Sensorknoten mit der niedrigsten Sensorknotenadresse In gro en Sensornetzwerken sind h ufig sehr viele Synchronisationsnachrichten unterwegs und beim Flooding der Pakete kann es passieren dass man ein und dasselbe Synchronisationspaket mehr als einmal erh lt Daher werden alle Pakete mit einer kleineren Sequenznummer als der aller bisher erhaltenen Synchronisationspakete ebenfalls abgelehnt An schlie end wird anhand des angenommenen Synchronisationspakets d e eigene Synchronit t berpr ft Ist der Sensorknoten nicht mehr synchron zum Root so wird die Tabelle mit den Synchronisationspunkten geleert Abschlie end wird der neue Synchronisationspunkt in die Tabelle aufgenommen und Offset sowie Skew neu berechnet Vergleiche hierzu das Event Radio receive m Listing 3 5 Betrachtet man das Protokoll nach der Aufstellung des Sensornetzwerks so beginnt zun chst nur der Root seine Nachbarn zu synchronisieren Diese w ederum fangen selber damit an Synchronisationspakete zu versenden sobald sie gen gend Daten besitzen Dieser Prozess setzt sich fort und es entsteht indirekt eine Baumstruktur hnlich der beim TPSN siehe dazu auch
135. hinaus verbindet control die Signale mit den Slots So wird z B das Signal newSensorReading mit dem Slot saveSensorReadings der Datenbankschnittstelle und dem Slot sendSensorInfo der Netzwerk schnittstelle verbunden Jedes Qt Programm muss die QCoreApplication einbinden welche die Eventschleife von Qt beinhaltet Diese realisiert das Signal Slot Konzept indem es bei neuen Signalen die entsprechenden Slots aufruft Die Klasse main welche nach dem Start des Servers der Einstiegspunkt ist besitzt ein Objekt dieser Klasse und die control Instanz 91 5 Entwurf und Implementierung des PC Programms 92 main 1 seriallnterface newDatasrrived pkt OByte rrayd slot timer QTimer newlnfoArrived pkt OByteArray slot measureList QList newsensorreadingsimsg daraMsg signal sendServerErrorierror Ostring signal newErrorimsg errorMsg signal sendsensorinfo msg dataMsg signal hewOradient nocdeid int gradient int signal new easurementims interestMsg slot connectTosensornetidewice Ostring woid deleteMeasurements slot sendinterest msg interestM sg slot requestGradient nodeid int slot callbratesensorinodeld int sensorType int offset int slot OThread setLEDinodeid int value int slot newErrorimsg errorMsg slot timerFired slot networkinterface server Tcpserver seriall hreag device Ostring se erialDewce dewce Ostring woid sendinterestimsg interestM s
136. hnischen Daten des MTM CM5000 MSP Firc Mikrocontroller Programmspeicher Arbeitsspeicher Hintergrundspeicher Stromaufnahme im Aktivmodus Stromaufnahme im Schlafmodus Lichtsensor Hamamatsu S1087 Temperatursensor Sensirion SHT11 Luftfeuchtesensor Sensirion SHT11 Analog Digital Wandler Funkchip Ubertragungsrate Reichweite Stromaufnahme TI MSP430F 1611 16M Hz A8kB 10kB IMB 1 8mA 9 14 A 600nm peak 40 C 123 8 C Aufl sung 0 01 C Genauigkeit 0 4 C 0 100 RH Aufl sung 0 03 RH Genauigkeit 3 0 RH 8 Kan le 12 Bit Aufl sung TI CC2420 250kb s 150m outdoor 20 bis 30m in Geb uden RX 18 8m A TX 17 4m A Schlafmodus 14A 15 3 Techniken in Sensornetzwerken Sto05 Seite 177ff beschreiben die im Folgenden genannten Einschr nkungen und die hieraus resultieren den Anforderungen an Betriebssysteme Die Grenzen zwischen Betriebssystem API und Programm sind nicht so differenziert zu erkennen wie bei herk mmlichen PCs Das Betriebssystem und die API stellen oft nur ein Framework f r die Anwendung da welche h ufig stark mit diesen verzahnt ist Daher gelten f r Anwendungen dieselben Prinzipien wie f r Betriebssysteme Rechenleistung Sensorknoten haben eine geringe Rechenleistung von wenigen MIPS Rechenintensive Operationen sollten daher vermieden oder m glichst performant implementiert werden Da nicht alle Betriebssysteme preemptives Scheduling unterst tzen vergleiche 3 5 1 so
137. ht ist f r Punkt zu Punkt und Punkt zu Multipunkt Verbindungen verantwortlich Sie erkennt Datenrahmenstrukturen und k mmert sich um die Datenstr me der Bit bertragungsschicht Hierbei ist ein Medium Access Control Protokoll MAC Protokoll f r den Zugriff auf das bertragungsmedium zust n dig In der Bit bertragungsschicht wird die Funkfrequenz gesetzt die Tr gerwelle generiert und moduliert eingehende Funksignale detektiert und Daten verschl sselt Anwendungsschicht Transportschicht Vermittlungsschicht Verbindungsschicht m 5 D Q D lt 2 2 O Bit bertragungsschicht Abbildung 3 12 Ein allgemeiner Protokollstapel f r Sensornetzwerke nach ASSC02 Klassische MAC und Routingprotokolle f r funk und kabelbasierte Netzwerkger te sind f r kabello se Sensornetzwerke nicht geeignet Kabellose Sensornetzwerke unterscheiden sich in vielen Punkten von herk mmlichen Netzwerken Die Sensorknoten unterliegen den n Abschnitt 3 4 beschriebenen Ressour cenbeschr nkungen und insbesondere die Energieversorgung wird von den klassischen Protokollen zu sehr belastet VDMC08 Seite 163 Zudem werden die Sensorknoten in einigen F llen zuf llig aufgestellt selten wird eine genaue Aufstellungsplanung mit vordefinierten Positionen vorgenommen Sie m ssen s ch daher selbstst ndig zu einem Netzwerk organsieren k nnen Dabei sind die Sensorknoten nich im mer gleich verteilt einige haben viele Nachbarn und ande
138. i denen Si enallaufzeiten gemessen und Zeitstempel zwischen Sensorknoten ausgetauscht werden m ssen Die dritte Klasse c besteht aus Anwendungen die dem Sensornetzwerk zur Interaktion mit der realen Welt dienen Wird dasselbe Ereignis von mehreren Sensorknoten erfasst so m ssen die einzelnen Daten fusioniert werden Ein physikalisches Ereignis darf nicht durch eine parallele Erfassung von mehreren Sen 42 3 7 Zeitsynchronisation in Sensornetzwerken sorknoten zu mehreren Ereignissen werden Ein weiterer Aspekt bei der Datenfusion ist das Zusammen f hren von unterschiedlichen Messgr en zu einem Zeitpunkt oder derselben Messgr e zu verschiedenen Zeitpunkten Als Beispiel f r letzteres kann die Berechnung der Geschwindigkeit aus den von zwei Sensor knoten zu zwei Zeitpunkten erfassten Positionen eienes Objekts genannt werden Weitere Anwendungen zur Interaktion mit der realen Welt sind bei der Ansteuerung von Aktoren zu finden Komplexe und im Raum weit verteilte Steueroperationen werden von mehreren miteinander kooperierenden Sensorknoten durchgef hrt Hierzu ist ebenfalls eine einheitliche Sicht der Zeit die Grundvorraussetzung Zur Zeitsynchronisation im Internet hat sich das Network Time Protocol NTP durchgesetzt Hierbei syn chronisieren die Clients ihre Uhren mit der des Servers in einer Gr enordnung von Millisekunden durch eine statistische Auswertung der Umlaufzeiten der Zeitstempelpakete Bei dem in Sensornetzwerken typi
139. ie Interessen per Flooding verbreitet werden so ist dies nicht so dramatisch da n der Regel nur selten neue Interessen an das Netzwerk gerichtet werden Als Nachteil von Directed Dif fusion ist die Ausrichtung auf das einsammeln von Daten zu nennen Es geht davon aus das die Daten vornehmlich von Quelle zu Senke flie en Eine Kommunikation zwischen zwei beliebigen Sensorknoten ist so nicht vorgesehen In einem solchen Fall k nnte man sich jedoch eines speziellen Sendeinteresses bedienen das extra einen Gradienten zu dem Zielknoten aufbaut Benutzt man Flooding bei der Interes senverbreitung so ist in diesem Fall Directed Diffusion sogar schlechter als Flooding 3 7 Zeitsynchronisation in Sensornetzwerken Ca t Uhr mit Offset Perfekte Uhr wee Uhr mit Schwankungen se Uhr mit Skew Gemessene Zeit Aktuelle Zeit t Abbildung 3 16 Die Beziehung zwischen aktueller und gemessener Zeit nach VDMC08 Seite 195 Jeder Sensorknoten verwaltet seine eigene Uhr welche aus Hardware und Softwarekomponenten besteht Ein verbauter Quarzoszillator schwingt mit einer bekannten Frequenz und l st nach einer festen Anzahl an Schwingungen eine Unterbrechung aus Die Anzahl der Unterbrechungen wird in der Software mitge z hlt Eine solche Uhr auf dem Sensorknoten A wird C4 genannt und die von C4 gemessene Uhrzeit zum aktuellen Zeitpunkt t ist Ca t GvHS05 Wie in Abbildung 3 16 zu sehen ist die gemessene Zeit Ca t t Hierf r gibt es dr
140. ieBend soll das Zusammenspiel der einzelnen Komponenten anhand eines Ablaufdiagrammes ver deutlicht werden Dieses ist angelehnt an die Sequenzdiagramme bei der objektorientierten Programmie rung Eine spezielle Form der Sequenzdiagramme fiir TinyOS existiert nicht interestReceiver NetworkP DirectedDiffusionP signal Receivelnterest receive msg payload len PARES EE RS ee ae signal Network newinterest msg payload len addToKnowninteresttable interestlD addTolnteresttable payload wiv de Lb 3 updatelnterestSystem calculateGradient payload x call Network newGradient gradient updateGradients Aufruf beendet call Network sendPeriodicInterest nodelD gradient post send VJ wl I Aufruf beendet Abbildung 4 12 Das Ablaufdiagramm f r ein eintreffendes periodisches Interesse Im Ablaufdiagramm in Abbildung 4 12 wird angenommen dass den Sensorknoten ein neues periodisches Interesse erreicht welches an ihn gerichtet ist Wenn ein neues Interessenpaket eintrifft wird in NetworkP der Eventhandler zum Empfangen von periodischen Interessen aufgerufen Dieser erzeugt ber die Schnitt stelle das Ereignis newInterest bei dem Modul DirectedDiffusionP und bergibt an dessen Eventhandler eine Referenz auf das Paket sowie die Nutzdaten und Nutzdatenl nge In DirectedDiffusionP wird die Interessen ID in die Liste der bekannten Interessen aufgenommen und das Interesse in die Interessenta belle eingepfleg
141. ige LEDs zur Verf gung Betrieben wird das Sensorboard mit einer Stromquelle auf Basis von zwei AA Batterien Firc In Tabelle 3 1 ist eine detallierte bersicht ber die technischen Daten der verwendeten Sensorknoten gegeben 3 4 Ressourcenbeschr nkungen und resultierende Anforderungen an Betriebssysteme und Anwendungen bei Sensornetzwerken Sensorknoten besitzen im Gegensatz zu herk mmlichen PCs nur sehr beschr nkte F higkeiten in Bezug auf Rechenleistung Speicherausstattung und Bandbreite Laut dem Moore schen Gesetz verdoppelt sich die Anzahl der Transistoren auf einer konstanten und kosteneffektiven Chipfl che ca alle 18 Monate Dies f hrt bei PCs in der Regel zu einer Verdoppelung der Speicherkapazit t und der Rechenleistung Bei Sensorknoten hingegen erwarten die meisten Forscher dass diese bei gleichbleibender Leistung kleiner und kosteng nstiger werden CES04 Hiervon ausgehend wird man in den kommenden Jahren mit den derzeit angebotenen Ressourcen auskommen m ssen Die beschr nkten Ressourcen m ssen aus diesem Grund bei Entwurf und Implementierung von Betriebs systemen und Anwendungen f r Sensorkonten bedacht werden Reddy et al RKJK03 und Stojmenovic 14 3 4 Ressourcenbeschr nkungen und resultierende Anforderungen an Betriebssysteme und Anwendungen bei Sensornetzwerken N In y gt gt Sensorknoten MTM CM5000 MSP Abbildung 3 4 Die Architektur des MTM CM5000 MSP Tabelle 3 1 Die tec
142. ikP implementiert die Kommandos der Schnittstelle Sensorik Diese sind zum einen die vier Kommandos zum Setzen der Kalibrierungswerte und zum anderen das Kommando readSensor zum Initiieren einer neuen Messung Wird readSensor aufgerufen so wird wie in Unterabschnitt 4 2 erl utert 79 4 Entwurf und Implementierung des Sensornetzwerks enum Die Interessentabelle ist voll INTERES PPA BLE he FULDE Ls Es trat ein Fehler beim Senden auf SENDDONE ERROR S 7275 Beim Senden wurden zwei Datenpakete vertauscht sollte nicht vorkommen knnen SEND ERROR 35 Es ist kein Gradient in der Gradiententabelle vorhanden NO_GRADIENT ERROR 4 Ein eintreffendes Paket hat nicht die Laenge die es haben sollte PASEA USAS NEAR se o DTNA ES ONTO eko mis EEA E nice NOTATENE UNC RO Rae 26 Vie Gradvent enbawel Me ast voi GRADE Ni A MEE UTA AA i Das empfangene Interesse ist weder ein periodisches noch ein einmaliges UNKNOWN EEN TERESITEMSCGERRRORZ IT Dass One Shoes Iimeeresseney seem se Qer zelt Desc Ndek gt em Interesse wurde fallengelassen CONE SSH Olen HERE DROP snk OR i a Die Art des Interesses ist der Anwendung nicht bekannt AN SANO EE MENA 1G Listing 4 6 Die 1m System vordefinierten Fehler eine Messung der bergebenen Messgr en gestartet Ist eine Messung beendet so erzeugt SensorikP das Ereignis dataReady und bergibt so der Anwendung das Ergebnis Fragt man bei einem der Sensorentreiber einen Messwe
143. immungsverfahren sind in der Lage die Position von mobilen Sensorknoten zu ermitteln Die Mehrzahl der Verfahren wurde f r stati sche Sensorknoten entworfen Sie sind zwar in der Lage sich ver ndernde Positionen zu erfassen indem sie immer wieder neu gestartet werden aber dies zieht einen nicht unerheblichen Rechen und 54 3 8 Positionsbestimmung von Sensorknoten Kommunikationsaufwand nach sich Diese Methodik ist je nach Verfahren wegen der Positionsbe rechnungsperiodendauer nur bei langsamen Bewegungen akzeptabel XOL 07 Zeitsynchronisation erforderlich oder nicht Die einen Positionsbestimmungsverfahren setzen eine Zeitsynchronisation zwischen den Sensorknoten voraus die anderen nicht Bei den Verfahren wel che eine Zeitsynchronisation voraussetzen nimmt die Genauigkeit der Zeitsynchronisation einen gro en Einfluss auf die Genauigkeit der Positionsbestimmung VDMC08 Seite 194 Ermittlung zwei oder dreidimensionaler Position Es wird unterschieden zwischen Verfahren zur Positionsbestimmung in der Flache und im Raum Nutzt man ein Positionsbestimmungsverfahren welches davon ausgeht dass sich alle Sensorknoten in einer Ebene befinden so ist die ermittelte Position fehlerhaft wenn sich die einzelnen Knoten in verschiedenen H hen befinden Nur ein Po sitionsbestimmungsverfahren f r den Raum ist in der Lage die Aufstellungsh he der Sensorknoten zu erfassen Die Klasse der entfernungsbasierten Positionsbestimmungsverfahren
144. in so wird der Sensorknoten anhand der Sensorknotenadresse in allen Listen der Sensorknoten in allen Tabs gesucht Danach werden die Messdaten in den Datenpuffer des QWT Anzeigewidgets zum Erzeugen von Datenkurven geschrieben Des Weiteren kann der Benutzer in dem Fenster des Sensorknotens dessen Sensoren kal brieren Hierzu gibt er einen Offset an welcher anschlie end von dem Client Programm an den Server gesendet wird Analog kann der Benutzer hier auch den Zustand der LEDs setzen oder die Sensorknotenadresse des besten Gradienten anfordern Auch hierzu erzeugt das Client Programm eine entsprechende Anfrage beim Server Im Einstellungsfenster des Client Programms kann der Benutzer die Messparameter setzen oder die Mes sung stoppen Der Client unterst tzt derzeit lediglich das Starten globaler Messungen f r alle Sensorknoten 94 5 3 Entwurf und Implementierung des Clients Lageplan verwalten Bearbeitungsmodus Ja Bearbeitungsmodus Bearbeitungsmodus Ja Bearbeitungsmodus O Es gibt weitere Y Es gibt weitere Abbildung 5 7 Das Aktivit tsdiagramm zum Verwalten des Lageplans im Client Programm 95 5 Entwurf und Implementierung des PC Programms Messdaten betrachten und Konfigurations parameter des Sensornetzwerkes setzen Datendarstellung des Sensorknotens ist im Echtzeitmodus Abbildung 5 8 Das Aktivit tsdiagramm zur Datenbetrachtung und Interaktion mit dem Sensornetzwerk 96 5 3 Entwurf un
145. in Bezug auf Cross Plattform Unterst tzung und Fernwartung in Form von Neuprogrammierung und Fernzugriff BCD 05 In Abbildung 3 9 ist der Aufbau von MOS zu sehen Alle zum MOS geh renden Komponenten sind in Blau gehalten wohingegen die Anwendung aus den t rkis gef rbten Threads besteht Zentrales Element ist die MOS System API S e trennt die Anwendung von dem Betriebssystem und der Hardware ab und gew hr leistet eine plattform bergreifende Unterst tzung der Anwendung Die API verbindet die Komponenten Kernel Netzwerkschicht Kommandoserver f r die Fernwartung und die Ger teschicht In den folgenden Unterabschnitten werden Kernel inklusive Speicherverwaltung die Ger teschicht sowie die Netzwerkschicht und die Energieverwaltung von MOS n her beschrieben und erl utert Der MOS Kernel MOS besitzt einen Multithreaded Kernel mit einem Interface angelehnt an die POSIX Semantik Das Sche duling ist priorit tsbasiert mit Round Robin bei Threads gleicher Priorit t F r jeden Thread existiert ein Eintrag in der globalen Threadverwaltungstabelle Die Gr e dieser Tabelle wird zur Kompilierzeit fest gelegt wodurch es eine feste maximale Anzahl an Threads im System und einen fixen Speicher Overhead gibt In dem Tabelleneintrag werden alle wichtigen Informationen bis auf die Umgebung diese wird auf dem Stack gespeichert vorgehalten BCD 05 Der traditionelle POSIX Ansastz ist Programmierern be reits bekannt und bietet daher einen ei
146. ind lediglich noch die externen Interrupts aktiviert Die letzte M glichkeit die hier genannt werden soll ist der Programmierstil Ein Zustandswechsel der oben genannten Komponenten ist meist relativ energieintensiv und sollte bes ser vermieden werden Aufgaben k nnen oftmals auch angesammelt und dann direkt nacheinander ausgef hrt werden Stromsparmechanismen werden in zwei Kategorien unterteilt Die impliziten Mechanismen funk tionieren autark durch das Betriebssystem ohne eine Interaktion durch die Anwendung wohingegen die expliziten Mechanismen mit einem Funktionsaufruf von der Anwendung initiiert werden Je nach Betriebssystem sind die oben genannten Mechanismen zum Energiesparen implizit oder explizit Portabilit t Im Gegensatz zu herk mmlichen PCs die eine recht einheitliche Hardwarearchitektur mit nur wenigen verschiedenen Befehlss tzen besitzen handelt es sich bei Sensorknoten meist um hoch angepasste Systeme Zum einen ist das Gebiet der Sensorknoten noch recht jung und entwickelt sich fast taglich weiter Zum anderen gibt es eine F lle an verschiedenen Plattformen mit verschie denen Mikrocontrollern Sensoren Speicherbausteinen Funkl sungen und weiteren Komponenten Im Bereich der eingebetteten Systeme ist es auch nicht un blich f r eine neue Anwendung eine neue Hardwareplattform zu entwickeln um diese bestm glich an die Aufgabe anzupassen Die Por tierung auf ein neues System wird enorm erleichtert wenn der hardwareab
147. ionbestimmung hinzu und installiert im Krankenhaus eine Kommunikationsin frastruktur so k nnen ansonsten auf keine anderen medizinischen Ger te angewiesene Patienten sich frei im Krankenhaus bewegen Werden bendenkliche Vitalwerte gemessen wird das Pflegepersonal ber den Aufenthaltsort und die Art des Notfalls informiert VDMCOS Seite 20 Eine weitere Anwendung zur Patienten berwachung kann in einem Altenheim zum Einsatz kom men Senile oder demente Kunden k nnen mit einm Sensornetzwerk in ihrem Verhalten berwacht werden Sie erlangen durch diese neue Technologie ein gro es St ck an Freiheit wieder indem das Pflgepersonal weniger Einschr nkungen bez glich ihres Bewegungsfreiraumes machen muss und eine vermindete Aktivit ts berwachung stattfinden kann 3 3 Die verwendeten Sensorknoten Von der Abteilung Systemsoftware und verteilte Systeme wurden insgesamt 130 der n Abbildung 3 3 zu sehenden Sensorknoten des Typs MTM CM5000 MSP der koreanischen Firma Maxfor angeschafft Diese Knoten s nd kompatibel zu der bekannten Sensorplattform TelosB der Firma Crossbow welche sich bereits als einer von mehreren gro en Anbietern am Markt etabliert hat Daher laufen auf dem MTM CM5000 MSP Sensorknoten bereits mehrere Betriebssysteme und freie Implementierungen von Treibern f r die Sensorik bis hin zu Routingprotokollen Damit ist die Wahl der Sensorplattform f r diese Arbeit von der Abteilung bereits abgenommen worden Weil das Sensornetz i
148. ist derzeit der Fall wenn die beinhaltete Zahl gr er oder gleich 20 ist da der Bereich unter 20 f r Fehler reserviert bleiben soll Dann wird 20 subtrahiert da bei der Speicherung der Gradientenadresse im Sensornetzwerk zur Differenzierung zwischen Fehlern und Gradienten 20 addiert wurde und der Gradient an den Server gesendet M chte der Benutzer am Client Programm Messdaten einer in der Vergangenheit liegenden Messung be trachten so kann das Client Programm diese Daten beim Server anfragen Hierzu gibt der Benutzer ber 88 5 2 Entwurf und Implementierung des Servers Sensorknotendaten speichern und dem Client Programm zur Verf gung stellen Datenpaket Synchronisationspaket Paketart Informations paket a o a 4 Anzahl der Werte Abbildung 5 3 Das Aktivit tsdiagramm zum Entgegennehmen der Daten aus dem Sensornetzwerk und zum Senden von Messdaten an das Client Programm 89 5 Entwurf und Implementierung des PC Programms den Client einen Zeitraum den Sensorknoten und die Messgr e an Der Server holt daraufhin die Da ten aus der Datenbank Wenn die Anzahl der Werte gr er als 500 ist so w rd die Datenmenge reduziert um Bandbreite bei der Kommunikation zu sparen Die Datenreduktion geschieht per gleitendem Mittel wertfilter Ist g a die Folge der aus der Datenbank geholten Messwerte c deren Anzahl und f x die zu berechnende Folge der 500 Werte so ergibt sich mit ganzzahlig aufgerundetem n
149. isten F llen zeichnen sich hierarchische Sensornetzwerke nicht durch unterschiedliche Sensor knotenhardware aus sondern durch die Organisation des Sensornetzwerks in einer Hierarchie Mittels eines Clusterverfahrens wird das Sensornetzwerk in kleinere Teilbereiche unterteilt in denen mindestens ein Clusterhead eine Sonderrolle einnimmt Die Clusterheads bilden miteinander ein eigenes Netzwerk das R ckgrat des gesamten Sensornetzwerks Uber dieses k nnen alle Sensorknoten miteinander kommu nizieren Die St rke dieses Verfahrens ist insbesondere bei sehr gro en Sensornetzwerken zu finden denn das Sensornetzwerk wird stark vereinfacht Die einzelnen Sensoren m ssen nun nur noch mit einem typi scherweise in der Nachbarschaft liegenden Clusterhead kommunizieren und dieser k mmert sich um die Verbindung zur Senke oder zu anderen Sensorknoten Die dritte Klasse sind die geographischen Routingprotokolle sie nutzen Standortinformationen um die Daten zu routen Die Sensorknoten kennen ihre eigene Position und die Position der Nachbarn Trifft ein neues Paket ein werden diese Informationen genutzt um das Paket in Richtung des Zielgebietes weiterzu leiten Parallel zur Unterteilung nach Netzwerkstruktur k nnen die Routingprotokolle anhand wichtiger Desi snentscheidungen unterschieden werden Auf Quality of Service QoS basierende Routingprotokolle set zen den Schwerpunkt bei der verl sslichen Kommunikation Wie bei den Designkriterien unter Fehle
150. it nextShot verglichen Soll das Interesse noch nicht bedient werden so wird die Zeit bis zum Starten der Messung mit nextShot verglichen Der Wert von nextShot wird in beiden Fallen auf den berechneten Wert gesetzt wenn dieser kleiner als nextShot ist Dieser Vorgang wird fiir alle Interessen tabelleneintr ge wiederholt und anschlie end kann der Start Stop Timer mit dem Wert von nextShot neu gestartet werden Nun wird der Eventhandler f r die Interessenbedienung der periodischen Interessen betrachtet siehe das Flussdiagramm in Abbildung 4 4 b Es musste ein Weg gefunden werden bei dem alle Interessen mit einem Timer bedient werden da sich die Anzahl der Timer nur zur Kompilierzeit festlegen l sst W rde man einen bestimmten Pool an Timern vorsehen so w rde entweder viel Speicher unn tz verwendet wer den oder die Anzahl der maximal im System vorhandenen Interessen w re stark beschr nkt Es wurde die Variable servelnterval eingef hrt die den Wert des gr ten gemeinsamen Teilers aller Messaufl sungen der Interessen im System annimmt Der Interessentimer l st immer in Perioden der Dauer servelnterval aus und berpr ft welche Interessen bedient werden m ssen Die Interessen merken sich innerhalb der Interessentabelle n der Spalte waitedServelntervals d e Anzahl der verstrichenen servelntervals L st der Interessentimer aus so wird der erste belegte Eintrag selektiert der einen aktiven Status be sitzt Ist die Anzahl der gewarte
151. lbereich des Sensornetzes so h lt das FTSP sogar beide Teilnetze untereinander synchron Es synchronisiert dann die beiden Teilnetze miteinander sobald s e w eder verbun den sind Anforderung E4 nach Selbstorganisation der Sensorknoten und Robustheit gegen ber Ausf llen wird somit vom verwendeten Zeitsynchronisationsprotokoll erf llt Das FTSP ben tigt keine Infrastruk tur oder zus tzliche Ger te Es macht somit keine Einschr nkungen hinsichtlich des Aufstellungsortes des Sensornetzwerks die Kosten der Sensorknoten werden nicht erh ht und es w rd keine Energie f r externe Ger te verschwendet Auch liegt bereits eine fertige Implementierung des FTSP f r TinyOS vor die auch den LPL des Netzwerkstapels nutzt und damit als energieeffizient angesehen werden kann Zudem ver schickt es nur halb so viele Pakete wie TPSN vergleiche Unterabschnitt 3 7 4 Das FTSP ist damit auch effizient in Bezug auf die Bandbreite Es geht also bescheiden mit den vorhandenen Ressourcen um und steht Andorderung E2 nach einer langen Lebensdauer des Sensornetzes nicht im Weg Die TinyOS beiliegende Implementierung von FTSP wurde in Unterabschnitt 3 7 4 bereits vorgestellt Die Verwendung innerhalb dieses Sensornetzwerks wird in Abschnitt 4 3 beschrieben Abschie end wird gekl rt wie die Sensordaten einer Position zugeordnet werden k nnen Ein solche Zu ordnung ist laut Abschnitt 3 8 f r eine Datenauswertung unabdingbar Das Routingprotokoll ben tigt dem g
152. lesche Variablen Diese geben Auskunft ber erhaltene Acknowledgements von versendenten Paketen und die Korrektheit der CRC Summe bei empfan genen Paketen Die Nutzdaten bestehen aus einem maximal TOS_DATA_LENGTH gr en Struct welcher per Voreinstellung auf 28 Bytes gestellt ist Eine Anwendung greift auf die einzelnen Bereiche des Paketes mittels der AMPacket Schnittstelle zu Hiermit kann sie ein neues Paket packen und wie oben beschrieben mittels AMSend tiber die Active Message Schicht verschicken oder aus erhaltenen Paketen die Nutzdaten und Metadaten extrahieren 26 3 5 Betriebssysteme f r Sensorknoten Analog zum Netzwerkstapel f r die Funkkommunikation existiert ein Netzwerkstapel zur Kommunikation mit einem PC ber die serielle Schnittstelle des Sensorknotens Dieser wird in TEP 113 beschrieben GL und st in Abbildung 3 8 zu sehen Dispatcher Protokollschicht Encoder Framer UART Schicht Abbildung 3 8 Der in dieser Arbeit verwendete serielle Netzwerkstapel f r TinyOS nach GL In der UART Schicht wird die Hardware zur seriellen Kommunikation des Mikrocontrollers angespro chen Es werden die bertragungsgeschwindigkeit und die Anzahl sowohl der Stoppbits als auch der zu sendenden und empfangenden Bytes gesetzt Zudem realisiert diese Schicht das eigentliche Senden und Empfangen einzelner Bytes Sie ist im Gegensatz zu den kommenden drei Schichten plattformabh ngig Der Encoder Framer erkennt bei dem eintreffende
153. lheit der Heizkurve In Wohngeb uden wird oft zus tzlich die Temperatur eines Raumes meist des Wohnzimmers zur Regelung der Vorlauftemperatur mit herangezogen So ist es m glich einen Raum genau auf eine Temperatur zu regeln und zudem bei der Heizkurve solare Einstrahlung durch Fenster und die Isolierung des Hauses mit einzubeziehen Fira In den einzelnen R umen wird die Temperatur anhand der Ventile an den Heizk rpern eingestellt Je h her die Durchflussraten der Heizk rper im Raum umso h her ist auch die Temperatur Es kommen meistens Thermostatventile zum Einsatz Bei diesen kann der Benutzer eine Raumtemperatur einstellen welche je nach Hersteller innerhalb einer Bandbreite von ca 2 C geregelt wird The Die Regelung geschieht hier mit Hilfe eines Dehnstoffelements im Thermostatventil Eine oft gew nschte im gesamten Geb udekomplex einheitliche Temperatur l sst sich so jedoch nur sehr schwer realisieren Verschiedene Gegebenheiten wie Heizleistung der einzelnen Heizk rper M belst cke vor den Heizk rpern und die W rmeisolierung erfordern verschiedene Thermostateinstellungen f r ver schiedene R ume und verschiedene Heizk rper Offene T ren bewirken zudem eine Interaktion der Regel kreisl ufe zwischen mehreren R umen Unter Umst nden werden so R ume geheizt welche bereits durch Nachbarr ume ausreichend geheizt w rden Einstellparameter f r die Thermostate sind so nur sehr schwer ohne eine l ngerfristige Temperaturve
154. lig ist hierbei jedoch die Begrenzung der Sensoren durch die Eing nge am Ger t und die immer neu vorzunehmende Verkabelung des Pati enten wenn er andere Untersuchungsr ume aufsuchen muss oder das Bett aus eigener Motivation verlassen m chte Aus diesen Gr nden haben Baldus et al ein kabelloses Sensornetzwerk zur Pati enten berwachung entworfen BKM04 Das System besteht aus drei verschiedenen Ger ten Me dizinische Sensorknoten werden direkt am Patienten angebracht und messen Gr en wie z B den Blutdruck die Sauerstoffkonzentration des Blutes und die Herzspannungskurve Ebenfalls direkt am Patienten angebracht wird der Patientenidentifikationssensorknoten welcher als Controller f r die medizinischen Sensorknoten dient und den Patienten eindeutig identifiziert Das dritte Ger t ist ein Setupstift mit dem die zuvor beschriebenen Ger te nach der Anbringung am Patienten initalisiert werden Das Sensornetz sendet seine Daten an einen neben dem Bett stehenden Monitor wobei das System zuverl ssig unter Echtzeitanforderung arbeitet Kostendruck m Gesundheitswesen zwingt Krankenh user zur Reduktion des Pflegepersonals Ins besondere bei Nachtschichten bei denen bereits heute nur noch eine Krankenpflegefachkraft f r eine gro e Anzahl an Patienten zust ndig ist k nnte das Personal durch eine Erweiterung des vorgestell ten Systems durch eine Alarmfunktion entlastet werden F gt man den Patientenidentifikationssen sorknoten eine Posit
155. lle in der jeder Eintrag f r genau ein Interesse steht also alle Attribute gleiche Werte annehmen Die Interessentabelle speichert den Zeitstempel des letzten Eintreffens eines Interesses ftir jeden Nachbarn einen Gradienten von dem das Interesse eingetroffen ist und Attri bute des Interesses um verschiedene Interessen voneinander unterscheiden zu k nnen Hinzu kommt ein Verfallsdatum welches vom Zeitstempel und dem Zeitintervall des Interesses abgeleitet wird Trifft ein Interesse bei einem Knoten ein so wird in der Interessentabelle das Vorhandensein gepr ft Ist es noch nicht vorhanden so wird ein neuer Eintrag erzeugt insbesondere wird auch ein Gradient berechnet und mit der eindeutigen Adresse des Senders gespeichert Ist bereits ein Interesseneintrag vorhanden aber noch kein Gradient zum Sender wird dieser dem Eintrag hinzugef gt und der Zeitstempel und das Ver fallsdatum werden aktualisiert Ist bereits ein Interesseneintrag und ein Gradient zum Sender vorhanden werden nur Zeitstempel und Verfallsdatum aktualisiert Nachdem die Interessentabelle aktualisiert wurde entscheidet der Knoten ob er dieses Interesse weiter ins Netz propagiert Um entscheiden zu k nnen ob ein Interesse berhaupt weiter ins Netz propagiert wird kann man beim Erhalten des Interesses d e Differenz des alten und des neuen Zeitstempels bilden und das Interesse verwerfen wenn nicht eine Minimaldauer berschritten wird Die naheliegende L sung alle Inte
156. llen Sensorknoten vorgenommen Diese senden die ermittelten Positionen an die jeweiligen Sensorknoten Bei den verteilten Positionsbestimmungs verfahren berechnet jeder Sensorknoten selbstst ndig seine Position was nicht bedeuten muss dass es nicht auch hier spezielle Ankerknoten gibt welche Referenzsignale aussenden Bou09 324 Zentrale Verfahren k nnen rechenintensive Operationen auf wenige darauf ausgelegte Sensorkno ten verlagern Als Nachteile sind jedoch ein Overhead be der Kommunikation und die schlechte Skalierung in Bezug auf die Netzgr e zu nennen SSS07 Passives oder aktives Verfahren Aktive Positionsbestimmungsverfahren nutzen vom Sensornetz ge 53 3 Techniken in Sensornetzwerken nerierte Signale zur Positionsbestimmung Die pass ven Verfahren ben tigen entweder eine zus tzli che Infrastruktur oder verwenden globale Ereignisse wie den Schattenwurf vorbeiziehender Wolken beziehungsweise akustische Signale der Umwelt KA08 Verfahren mit oder ohne Infrastruktur Ein Verfahren kann entweder eine zus tzliche Infrastruktur ben tigen oder auch nicht Eine Infrastruktur sind z B die Satelliten des GPS aber auch selbst auf gebaute Komponenten wie ein Projektor der ein bekanntes Muster auf das Sensorfeld projiziert Des Weiteren wird auch von ben tigter Infrastruktur gesprochen wenn die vorherige Sensornetzin frastruktur zur Positionbestimmung angepasst werden muss Dies ist z B bei einer Aufstellung der Ankerknoten
157. llte man lange laufende Tasks vermeiden oder in mehrere kleinere Aufgaben unterteilen Dies gilt auch f r die ereignisge triebenen Betriebssysteme welche ein Ereignis in der Regel bis zum Ende ausf hren und in der Zwischenzeit nicht auf neue Ereignisse mit wom glich h herer Priorit t reagieren k nnen Speicher Neben der Energie ist der Speicher eine der gr ten Beschr nkungen bei Sensorknoten Die heute am Markt erh ltlichen Sensorknoten besitzen typischerweise einen Programm und Ar beitsspeicher zwischen 4 KB und 4 MB sowie Hintergrundspeicher in der Gr enordnung von we nigen MB Hier ist zu beachten dass sowohl das Betriebssystem die eigentliche Anwendung und unter Umst nden eine Middleware n den Programmspeicher passen muss Einige Betriebssysteme bieten zwar auch ein Nachladen von Modulen aus dem Hintergrundspeicher an es ist aber dennoch eine optimale Speichrausnutzung Voraussetzung Energieverwaltung Sensorknoten werden in der Mehrzahl von Batterien mit Energie versorgt die dann der begrenzende Faktor f r die Lebensdauer sind Es gibt mehrere M glichkeiten die Energiereser ven zu schonen Naheliegend ist es Komponenten wie den Funkchip den externen Flashspeicher oder den USB Chip bei Nichtbenutzung auszuschalten Eine andere M glichkeit bieten die Schlad modi der Mikrocontroller Ist derzeit keine Rechenarbeit zu erledigen kann er vom Hochleistungs modus in einen von mehreren Schlafmodi wechseln Im Tiefschlaf s
158. m Einsatz was energe tisch die teuerste Option ist Daher ist das Netzwerkprotokoll speziell das eingesetzte Routingver fahren stark an die Aufgabe der Anwendung angepasst Au erdem sollte der Datenverkehr soweit w e m glich reduziert werden Die Bandbreite des Funkkanals bei Sensornetzwerken ist stark be srenzt und liegt in der Regel zwischen 39 kb s CC1000 und 256 kb s CC2420 ZigBee Dies muss auch bei dem Betriebssystem mitbedacht werden wenn es z B um die Synchronisation zwi schen mehreren Knoten geht Die Netzwerkimplementierung ist erfahrungsgem auch n dem in dieser Arbeit vorgestelltem Sys tem der Hauptanteil der Entwicklung Eine detallierte Betrachtung der Netzwerkfunktionalit t findet in Abschnitt 3 6 statt Sensorik Wie der Name Sensornetzwerk bereits impliziert ist die Anbindung von Sensoren an die Sen sorknoten essentiell Moderne Sensoren werden zumeist ber ein Bussystem wie SPI oder PC ange bunden Diese Busse verhelfen zwar zu einem einheitlichen Zugriff auf die Sensoren bez glich Ti ming u s w jedoch verlangen die Sensoren oft spezifische Aufw rm und Anfragesequenzen Einen Treiber f r Sensoren zu schreiben ist nicht trivial und verz gert die Entwicklung von Anwendungen Dar ber hinaus gibt es gegen ber der PC Welt mit Maus und Tastatur als pr m ren Eingabeger ten eine F lle an verschiedenen Sensoren um alle m glichen Umweltparameter zu erfassen Zu gu ten Betriebssystemen geh rt mindest
159. mplmentiert z B eine Bibliothek preemptives Multithreading S e beinhaltet einen Scheduler und eine Stackverwaltung welche jedem Thread einen eigenen Stack bereitstellt auf dem auch die Register des Prozessors bei einem Threadwechsel gespeichert werden M chte ein Programm Multithreading nutzen so muss es gegen diese Bibliothek gebaut werden In Contiki werden Programme auf drei verschiedene Arten mit Bibliotheken verlinkt Programme k nnen statisch mit Bibliotheken innerhalb des Kerns verlinkt werden Diese Art der Verlin kung kommt insbesondere bei sprachspezifischen und h ufig genutzen Funktionen zum Einsatz Eine weitere M glichkeit ist die statische Verlinkung mit Bibliotheken die Bestandteil des ladbaren Pro gramms sind Anwendungsfall sind hier insbesondere Funktionen die programmspezifisch sind und daher nur von einer Anwendung benutzt werden 31 3 Techniken in Sensornetzwerken Letzte M glichkeit ist die Implementiertung der Bibliotheksfunktionen mittels eines Services Vorteil hier bei ist die M glichkeit des dynamischen Austausches zur Laufzeit Die Contiki Serviceroutinen In Contiki realisiert ein Service h ufig oder von verschiedenen anderen Prozessen genutzte Funktionen Typische Beispiele sind der Kommunikationsstapel Ger tetreiber f r Sensoren und andere Hardware aber auch bergeordnete Funktionen zur Datenberechnung wie Sensordatenfilter Die Serviceroutinen k nnen somit als eine Art gemeinsame Bibliothek
160. ms f r das PC Programm siehe Anforderungsdefinition in Abschnitt 2 1 Trifft ein neues Paket von der Basisstation ein so wird anhand der L nge der Nutzdaten des Paketes der Pakettyp bestimmt Handelt es sich um ein Synchronisationspaket der Basisstation so wird die Zeit des Servers mit der Zeit des Sensornetzwerks synchronisiert Hierzu wird ein an RBS siehe Unterabschnitt 3 7 2 angelehntes Verfah ren benutzt Analog zu RBS wird der Offset zwischen der mitteleurop ischen Zeit des PCs mit der Zeit des Sensornetzes gebildet Der Offset zwischen den beiden wird dann als Mittelwert aller Offsets berechnet Trifft nun ein Datenpaket ein so wird der Zeitstempel aus der Zeit des Sensornetzwerks durch Addition des berechneten Offsets in die mitteleurop ische Zeit umgerechnet Anschlie end wird das Datenpaket zum einen an die Datenbank zur Speicherung weitergereicht und zum anderen an das Client Programm gesendet Dies kann die Messdaten als die aktuellsten verf gbaren Daten dem Benutzer anzeigen Ist das neu eingetroffene Paket ein Informationspaket so wird nachgeschaut ob die beinhaltete Zahl einer definierten Fehlernummer entspicht zu den Fehlernummern siehe Abschnitt 4 4 Ist dies der Fall wird eine ausformulierte Fehlermeldung zun chst in eine Logdatei geschrieben und anschlie end an das Client Programm gesendet Handelt es sich nicht um einen Fehler des Sensornetzwerks so wird gepr ft ob es sich um eine Gradientenadresse handelt Dies
161. n Ankerknoten a Der Winkel zwischen Referenzknoten und Anker b Die Position der unbekannten Knoten wird durch den knoten wird bestimmt Schnitt der Geraden bestimmt Abbildung 3 22 Die Positionsbestimmung mit SpinLoc nach CTL 08 SpinLoc wurde von Chang et al vorgeschlagen und berechnet die Position der unbekannten Knoten mit hilfe von Winkeln zwischen Sensorknoten CTL 08 Der Name SpinLoc steht f r Spinning Indoor Loca lization und beruht auf der Winkelbestimmung mittels zentrisch um einen Punkt rotierender Ankerknoten Infolgedessen kommt es beim Senden zu einem Dopplereffekt der je nach Richtung zum Ankerknoten unterschiedlich ausgepr gt ist Sensorknoten senden im Bereich von 400 MHz bis 2 4 GHz Diese Fre quenzen k nnen mit den typischen Taktraten von 10 MHz nicht erfasst werden Als L sung hierf r wird das Signal der Frequenz f von einem Assistenzknoten mit einem Signal sehr hnlicher aber fixer Fre quenz fa berlagert Es entsteht ein dopplereffektmoduliertes Interferenzmuster im Ausbringungsgebiet Ein Referenzknoten und die unbekannten Knoten k nnen jetzt die Interferenzfrequenz If f l mit einem am A D Wandler angeschlossenen Empfangssignalst rkesensor messen mit einem Zeitstempel versehen und an die Basisstation senden Diese berechnet mit den bekannten Positionen der Ankerknoten und des Referenzknotens f r jeden Ankerknoten aus den Messwerten zu einem Zeitpunkt den Winkel zwischen Referenzknoten und unb
162. n Datenstrom die protokollspezifischen Trennzeichen und meldet s e der Protokollschicht Anhand der Meldungen aus dem Encoder Framer nimmt die Protokollschicht den Datenstrom eines Paketes entgegen und berechnet und berpr ft die Pr fsumme Dar ber hinaus k mmert sie sich um Protokollpa kete wie Acknowledgements Der Dispatcher erstellt aus dem Datenstrom ein Paket und reicht es an die Anwendungsschicht weiter Er kann analog zu dem Netzwerkstapel f r die Funkkommunikation mittels Send und Receive Schnitstellen Pakete von der Anwendung versenden oder hr neue Pakete melden Das Paketformat der seriellen Kommunikation verh lt s ch bis auf das Fehlen der Metadaten analog zu dem der Funkkommunikation Es besteht laut TEP 111 Lev aus einem Header und Nutzdaten Der Header besteht aus der Zieladresse der Nutzdatenl nge einer Gruppen ID und dem Active Message Type um mehrere getrennte Verbindungen ber einen Funkchip aufbauen zu k nnen Die TinyOS Energieverwaltung Jeder Mikrocontroller besitzt mehrere Energiezust nde welche s ch hinschtlich ihrer Rechenleistung des Energieverbrauchs der Zeit zum Wechseln in den Hochleistungsmodus und der verf gbaren Peripherie un terscheiden Der 1m Maxfor verbaute Mikrocontroller MSP430 besitzt neben dem Hochleistungsmodus in dem alle Komponenten eingeschaltet sind und Instruktionen verarbeitet werden f nf Energiesparzust nde Diese reichen von LPMO in dem lediglich die CPU und der Taktgebe
163. n Einstiegsvortrags Proposal pdf Die zu Beginn der Projektlaufzeit abgegebene Arbeitsvereinbarung Diplomarbeit pdf Die schriftliche Ausarbeitung zu dem Projekt dieses Dokument 111
164. n Geb uden mit humanvertr glichen klimatischen Bedingungen zum Einsatz kommt entf llt eine n der Literatur beschriebene Auswahl der Hardware aufgrund der Umgebungsbedingungen ohnehin ASSCO2 Das hier vorgestellte System wird so entworfen dass es die gegebene Sensorplattform mit hren Hardwareressourcen als Ausgangsbas s ber cksichtigt In Abbildung 3 4 ist die Architektur dieser Sensorknoten zu sehen Zentraler Bestandteil ist der Msp430 Mikrocontroller von Texas Instruments Dieser wird mit 16 MHz getaktet und ist die zentrale Rechen 13 3 Techniken in Sensornetzwerken y MAR ii i CEE ae Abbildung 3 3 Der MIM CM5000 MSP von Maxfor einheit mit Arbeits und Programmspeicher Er besitzt zudem eine serielle Schnittstelle die mithilfe e1 nes externen USB Chips die Kommunikation mit einem PC erlaubt Des Weiteren hat der Msp430 einen internen Spannungssensor und einen A D Wandler mit acht Kan len und zw lf Bit Aufl sung An den A D Wandler sind zwei Lichtsensoren angeschossen Der eine misst die totale Lichteinstrahlung der an dere die photosynthetisch aktive Lichteinstrahlung Uber den I2C Bus ist ein kombinierter Temperatur und Luftfeuchtigkeitssensor angeschlossen Eine weitere wichtige Komponente ist der per SPI Bus angebun dene Funkchip CC2420 welcher die Kommunikation zwischen den Sensorknoten realisiert Au erdem ist als Hintergrundspeicher ein 1 MB Flashmodul verbaut und zur Anzeige stehen drei farb
165. n Messung wiederholt Bei der Sensordatenerfassung wurde insbesondere darauf geachtet dass alle Messungen zun chst gestartet werden und dann erst auf alle Ergebnisse gewartet wird Von der Implementierung her ist es deutlich einfa cher die Messungen sequentiell durchzuf hren In einem solchen Fall w rde sich die Dauer des Messvor gangs jedoch verl ngern Die Sensoren s nd als externe Komponenten anzusehen die alle parallel arbeiten k nnen Diese M glichkeit sollte unbedingt genutzt werden damit der Zeitstempel m glichst nahe an der tats chlichen Erfassungszeit liegt 4 3 Implementierung der Basisstation Die Basisstation hat die Aufgabe an der seriellen Schnittstelle eintreffende Pakete an das Sensornetzwerk zu senden und vom Sensornetzwerk empfangene Pakete an die serielle Schnittstelle weiterzuleiten Dabei werden weder die Nutzdaten noch die Informationen im Header der Pakete ver ndert Es bleibt im Header insbesondere der AM Typ und die Zieladresse erhalten Dar ber hinaus ist die Basisstation die Masteruhr Die Sensorknoten synchronisieren sich immer gegen ber der Uhr des Sensorknotens mit der niedrigsten Adresse Daher erh lt die Basisstation immer die Sensorknotenadresse 0 Zudem ist die Basisstation daf r zust ndig dem PC Programm in regelm igen Abst nden die aktuelle Zeit des Sensornetzwerks mitzutei len Das PC Programm nutzt diese Daten um die Zeitstempel der Messwerte in die aktuelle mitteleurop i sche Zeit umzure
166. n Routingprotokoll auszuw hlen Hierzu wird zun chst das typische Datenaufkommen in dem Sensornetzwerk betrachtet Die Sensorwerte m ssen regelm ig zu einer oder mehreren Datensenken gesendet werden wo s e das PC Programm entge gennimmt Die Paketgr e eines Datensatzes bestehend aus Sensorknotenadresse Zeitstempel Tempera tur Luftfeuchte Licht und Spannungswert betr gt 14 Byte f r die Daten plus 11 Byte f r den Header und 2 Byte f r die Priifsumme Lev Dies ergibt eine Paketgr e von 27 Byte Die Abteilung Systemsoftware und verteilte Systeme hat insgesamt 130 Sensorknoten angeschafft und f r diese Arbeit stehen 10 davon zur Verf gung Sollen alle Sensorknoten die Daten mit derselben Messaufl sung erfassen und an eine Sen ke m Sensornetzwerk schicken so ist dieser Sensorknoten der Falschenhals bei der Kommunikation Der Funkchip des Sensorknotens kann mit maximal 250 kb s also 31 25 kB s Daten bertragen vergleiche Abschnitt 3 3 Daraus ergibt sich die maximale theoretische Anzahl an Paketen die jeder Sensorknoten pro Sekunde in dem Sensornetzwerk mit nur einer Datensenke versenden d rfte 31 2552 __ Pakete 27B 130 s Im praktischen Fall kommen noch unvorhersehbare Verluste durch Kollisionen hinzu verursacht von den Sensorknoten die um das Medium konkurrieren Dazu kann nicht immer ausgeschlossen werden dass im selben Frequenzband operierende WLANs die Kommunikation behindern Von Anforderung El wird eine Mes
167. n ein neues Informationspaket ein so wird es in die fastQueue eingereiht M chte die Anwendung oder Directed Diffusion ein Interesse oder eine Information versenden so wird ein neues Paket gepackt und ebenfalls in die fastQueue eingereiht Veranlasst die Anwendung hingegen das Verschicken eines neu en Datensatzes so wird ein Datenpaket gepackt und genau wie eintreffende Datenpakete in die slowQueue eingereiht In Abbildung 4 5 ist das Flussdiagramm des Sendevorgangs zu sehen Dieser wird immer genau dann ge startet wenn entweder ein neues Paket in die fastQueue oder das n te Paket in die slowQueue eingeh ngt wurde Zun chst wird der beste Gradient aus der Gradiententabelle selektiert Dies ist aufgrund der Sor tierug der erste Eintrag Ist kein Eintrag vorhanden so wird der Vorgang abgebrochen Ansonsten wird zuerst die fastQueue auf wartende Pakete berpr ft Wenn hier Pakete vorhanden sind wird das n chste selektiert Handelt es sich dabei um ein Interessenpaket wird es an alle Nachbarknoten geschickt Alle anderen Pakete werden an die Sensorknotenadresse des Gradienten versendet Sind keine Pakete n der fastQueue vorhanden wird die slowQueue auf Pakete berpr ft Wenn dort auch keine Pakete vorhanden sind wird der Vorgang beendet Ansonsten wird das n chste Paket der slowQueue selektiert und an den Sensorknoten des Gradienten verschickt In allen F llen wird anschlie end gewartet bis der Sendevorgang abgeschlossen ist Wenn kein
168. nd einer Menge von Prozessen Prozesse k nnen sowohl einzelne Eventhandler einer Anwendungen als auch Serviceroutinen sein Die Interprozesskommunika tion findet ber den Kernel statt Ebenfalls erkennt man anhand der Abbildung die Trennung zwischen Programm und Arbeitsspeicher es handelt sich somit um eine Harvard Architektur Ein Contiki System wird zur Kompilierzeit in zwei Teile partitioniert Zum einen in den an die Anwendung angepassten Kern Dieser besteht typischerweise mindestens aus Kernel Programmlader Laufzeitumgebung und dem Kommunikationsservice inklusive Ger tetreiber f r die Funkschnittstelle Der Kern wird in ein einzelnes Bin rabbild gebaut welches zur Laufzeit nur noch komplett ausgetauscht werden kann Zum anderen besteht das Contiki System aus einer Menge von Programmen und weiteren Services welche vom Programmlader dynamisch zur Laufzeit hinzugef gt und entfernt werden k nnen Als Quelle hierf r sind sowohl der Hintergrundspeicher als auch das Netzwerk nutzbar Der Contiki Kernel Der Contiki Kernel besteht aus einem leichtgewichtigen und priorit tsbasiertem Eventscheduler der f r neu auftretende Ereignisse einen Prozess erzeugt und in regelm igen Abst nden die Pollinghandler der Prozesse aufruft Der Programmablauf wird somit vollst ndig durch neue Ereignisse oder durch Pollingauf rufe gesteuert Hierbei ist der Eventscheduler nicht preemptiv Ereignisse besitzen eine Run to completion Semantik S e k nn
169. ne Nachbarn auf Er reichbarkeit pr ft und eine Tabelle mit seinen Nachbarn vorh lt Bei der Interessenausbreitung k nnte dann statt eines Broadcasts ein gezielter Weiterversand der Interessen an einzelne Sensorknoten erfolgen Da durch kann der Empfang der Pakete best tigt werden und nicht mit einem Acknowledgement antwortende Sensorknoten erhalten das Interesse erneut Au erdem k nnte dann bei jeder Aktualisierung der Nachbar schaftstabelle die Gradiententabelle aufger umt werden Eine solche Tabelle wurde nicht eingef hrt da sie bereits in TinyOS f r die Zukunft geplant ist und dann eingesetzt werden kann wenn das Betriebssystem um diese Funktion erweitert wurde Eine weitere Verbesserung des Sensornetzwerks w re die Definition eines generischen Paketformats wel ches f r mehrere verschiedene Aufgaben eingesetzt werden kann In dem hier vorgestellten Sensornetz werk werden z B die Gradienten schon mithilfe der Informationsnachrichten gesendet die eigentlich f r Fehler und Statusmeldungen vorgesehen sind Die Definition eines generischen Paketformats ist jedoch nicht einfach da zur Kompilierzeit der Aufbau des Datenbereichs eines Pakets fest angegeben werden muss Zudem unterscheidet der Server eintreffende Pakete anhand der Gr e des Datenbereichs Dadurch kann Bandbreite gespart werden indem nicht ein Pakettypfeld in jedes Paket aufgenommen werden muss Positiv ist jedoch zu erw hnen dass der Kanal f r die Informationspakete ne
170. neu so wird es in die Tabelle mit den bekannten Interessen aufgenommen Die berpr fung der Interessen ID hat den Vorteil dass gleiche Interessen nicht noch mal bearbeitet werden Dar ber hinaus kann beim Flooding der Interessen zur Verbreitung im Sensornetz die Anzahl der Pakete reduziert werden Es treten zwar immer noch Reflexionen auf aber Mehrfachreflexionen und Zyklen werden verhindert Mit den Ressourcen wird schonend umgegangen indem doppelt eintreffende Interessen verworfen werden Danach wird berpr ft ob das Interesse f r den empfangenden Sensorknoten bestimmt ist Ist dies nicht der Fall so wird es nur noch an alle Nachbarknoten weiterversendet Ansonsten wird berpr ft ob es sich um ein periodisches oder einmaliges Interesse handelt Einmalige Interessen werden nicht in die Interes sentabelle aufgenommen sondern direkt bedient indem in der Anwendung ein Ereignis ausgel st wird Hierbei werden Art des Interesses und der mitgegebene Wert als Parameter bergeben Periodische Inter essen werden in die Interessentabelle aufgenommen und der Mechanismus zur Interessenbedienung auf den neuesten Stand gebracht Beim Aufnehmen der Interessen in die Interessentabelle muss nachgeschaut werden ob ein gleichartiges Interesse bereits vorhanden ist Ein Interesse ist genau dann gleichartig wenn sowohl die Art des Interesses interest und die Messaufl sung interval bereinstimmen In einem sol chen Fall wird bei dem vorhandenen Interesse
171. nfachen Einstieg in die Anwendungsprogrammierung f r MANTIS jedoch bedingt er gegen ber ereignisbasierten Betriebssystemen l ngere Ausf hrungszeiten einen gr e ren Quellcode und l ngere Unterbrechungsantwortzeiten MLV09 Der Arbeitsspeicher wird in zwei Bereiche aufgeteilt Globale Variablen werden zur Kompilierzeit alloziert der brige Arbeitsspeicher wird als Heap verwaltet Bei Erzeugung eines neuen Threads alloziert der Kernel Speicher vom Heap f r den Threadstack Da alle Threads in einem gemeinsamen Adressraum existieren muss die maximale Stackg e beim Erzeugen der Threads angegeben werden Sto05 Der Speicher wird wieder freigegeben wenn der Thread beendet wird Aufgrund des gemeinsamen Adressraums k nnen die Stacks der Threads auch ineinander wachsen und so Fehler produzieren MOS besitzt keinen Schutzmechanismus dagegen jedoch wird beim Erzeugen des 28 3 5 Betriebssysteme f r Sensorknoten Abbildung 3 9 Die Architektur von MANTIS OS nach Sto05 Seite 190 Threads der Stack mit OxEF vollgeschrieben So ist MOS in der Lage bereits aufgetretene Fehler zu er kennen und zu reagieren Sto03 Der MOS Kernel bietet des Weiteren bin re Semaphore Mutex und Semaphore mit Z hlvariable an Die MOS Ger te und Netzwerkschicht MOS unterscheidet bei der Hardware zwischen Ger ten mit asynchronem und synchronem Zugriff Sie besitzen jeweils eine einheitliche Zugriffsschnittstelle Ger te mit synchronem Zugriff
172. nftige Entwickler des in dieser Arbeit vorgestellten Systems typischerweise C und C beherrschen Zudem s nd diese Sprachen bereits weitver 85 5 Entwurf und Implementierung des PC Programms breitet und es existieren Compiler fiir diverse Betriebssysteme und Plattformen Hier wird gcc in Version 4 4 1 eingesetzt der ber die Internetadresse http gcc gnu org bezogen werden kann Der Server kommuniziert mit der Basisstation mittels der TinyOS beiliegenden Implementierung des seriel len Protokollstapels Dieser greift unter Linux mit termios welches ein Bestandteil der GNU C Bibliothek ist auf die serielle Schnittstelle zu Unter Windows wird die Windows System API genutzt Zur Umsetzung der graphischen Benutzerschnittstelle kommt die C Klassenbibliothek Qt zum Einsatz Diese wurde von der Firma Trolltech entwickelt und steht seit der bernahme von Trolltech durch Nokia unter der LGPL F r Qt spricht dass es plattformunabh ngig ist und bereits vom Autor dieser Arbeit eingesetzt wurde Dar ber hinaus bietet Qt Module f r den Zugriff auf das Netzwerk und auf Datenbanken an die auch f r diese Zwecke vom PC Programm genutzt werden Qt wird in Version 4 5 eingesetzt und kann im Internet ber http qt nok1a org bezogen werden Qt verwendet den Meta Object Compiler moc genannten Pr prozessor um C um das Signal Slot Konzept zu erweitern Dieses erm glicht eine einfache Kommunikation zwischen verschiedenen Objek ten Hierzu k nnen
173. ngeboten sondern auch geratespezifische Zwischenschritte wie standby Alle Ger te werden nach dem Einschalten des Sensorknotens ausgeschaltet gelassen bis sie von der An wendung explizit eingeschaltet werden Sie verbleiben in diesem Zustand bis die Anwendung die Ger te wieder ausschaltet Greift die Anwendung synchron auf ein ausgeschaltetes Ger t zu so wird es einge schaltet die Operation durchgef hrt und wieder ausgeschaltet Dennoch ergibt es einen Sinn dass die Anwendung Ger te explizit einschalten kann Einige Ger te verbrauchen beim Einschalten sehr viel Ener gie Weiss die Anwendung bereits dass sie ein Ger t h ufig benutzt so schaltet sie es explizit an und nur bei l ngeren Zugriffspausen aus Die CPU des eingebetteten Systems wird bei MOS mittels impliziter Energieverwaltung geregelt Das Zustandsmodell des MOS Kernels besteht aus den drei Zust nden active idle und power save Im Zustand active 1st die CPU im High power Modus und f hrt Threads mit maximaler Geschwindigkeit aus Im Idle Modus wird nur der Idlethread ausgef hrt die Interrupts und die Peripherie sind eingeschaltet Im Power save Modus ist alles bis auf die externen Interrupts und einen Timer ausgeschaltet Zwischen den Zust nden wird wie folgt gewechselt Ist noch mindestens ein Thread laufbereit so verbleibt die CPU im Power Modus Wartet mindestens ein Thread an einem Interrupt so verbleibt die CPU im dle Modus Threads k nnen nicht nur an einem Interr
174. nks mit der Entfernung zunimmt Mehrere kurze Verbin dungen sind somit g nstiger als wenige weite bertragungen Das Routingprotokoll kann einzelne Wege nach hrem Energieverbrauch bewerten und die Pakete entlang des besten Pfades zum Ziel bef rdern Aufgrund der gro en Anzahl an verschiedenen oft wiederspriichlichen Anforderungen ist eine Vielzahl von Routingprotokollen mit unterschiedlichsten Ans tzen entstanden Um einen berblick ber diese zu gewinnen wird d e von Boukerche vorgeschlagene Taxonomie vorgestellt und mit Ausf hrugen zu einer hnlichen Taxonomie von Al Karaki et al erg nzt Bou09 Seite 132ff AKK04 Routingprotokolle in Sensornetzwerken Abbildung 3 13 Ein Klassifikationsschema f r Routingprotokolle nach Bou09 Seite 133 Wie in Abbildung 3 13 zu sehen k nnen Routingprotokolle entsprechend ihrer Netzwerkstruktur in fla che hierarchische und geographische Protokolle unterteilt werden In flachen Routingprotokollen sind alle Sensorknoten f r hnliche Aufgaben zust ndig und keiner nimmt im Netzwerk eine Sonderrolle ein 35 3 Techniken in Sensornetzwerken In hierarchischen Routingprotokollen sind einzelne Sensorknoten besser ausgestattet oder bieten andere Funktionalit ten an Es handelt sich also um ein Routingprotokoll f r ein nicht heterogenes Sensornetz werk vergeliche hierzu die Ausf hrungen zu Heterogenit t von Sensornetzwerken bei den Designkriterien f r Routingprotokolle In den me
175. ntabelleneintrag das Zeitfenster der Messung auf die Werte des neuen Interesses gesetzt Dies ist eine Designentscheidung die getroffen wurde um Interessen auch nachtr glich anpassen zu k nnen Abschlie end werden sowohl periodische als auch einmalige Interessen an alle benachbarten Sensorknoten weiterversendet 67 4 Entwurf und Implementierung des Sensornetzwerks a Ein neues Interesse trifft bei dem Sensorknoten ein und b Bei periodischen Interessen muss das Inter wird verarbeitet essensystem auf den neusten Stand gebracht werden Abbildung 4 3 Die Flussdiagramme zum Aufnehmen eines neuen Interesses in die Interessentabelle 68 4 2 Feinentwurf Der Mechanismus zur Interessenbedienung besteht aus zwei Timern Der Start Stop Timer sorgt daf r dass die Bedienung eines periodischen Interesses gestartet oder beendet wird indem isServed bei einem Interesse in der Interessentabelle entsprechend gesetzt wird Der Interessentimer veranlasst die Bedienung der Interessen mit isServed true in der vorgesehenen Messaufl sung Der Status der Interessen ndert sich relativ zu der Bedienung der Interessen in der Regel nur selten Durch die Unterteilung in aktive und inaktive Interessen muss bei der Bedienung nicht berpr ft werden ob ein Interesse gestartet oder beendet werden soll Dies spart viel Rechenzeit was in diesem Fall nicht nur den knappen Ressourcen zugute kommt sondern auch die max mal m gliche Messaufl sung erh ht
176. ntierung des Client Programms beschrieben Dieses erm glicht dem Benutzer die Messdatenbertachtung und Steuerung des Sensornetzwerks Um die folgenden Ausf hrungen besser verst ndlich zu machen werden zun chst die Benutzeroberfl che und die dahintersteckenden Funktionen grob beschrieben Eine ausf hrliche Anleitung zur Benutzung des Systems wird mit dem auf der beiliegenden CD zu findenden Benutzerhandbuch geboten ClientApp Datei About PO s MM Erdgeschoss 1 Stockwerk EJ 2 Stockwerk Multifunktionsraum Fr Treppenhaus lt Fabian Nils Wohnzimmer Bad Abbildung 5 6 Ein Bildschirmfoto des Client Programms In Abbildung 5 6 ist ein Bildschirmfoto des Client Programms zu sehen Anforderung W1 wiinscht eine komplexe Visualisierung vergleiche Abschnitt 2 2 Diese wurde umgesetzt indem jede Ebene des Ge b udes eine Bilddate als Lageplan nutzt in der die Sensoren per Drag and Drop vom Benutzer platziert werden k nnen Jedes Stockwerk eines Geb udes wird in einem Tab dargestellt In der Drucktastenleiste befinden sich folgende Kn pfe die von links nach rechts beschrieben werden Das erste Icon ffnet ein Fenster in dem die Adresse des Servers angegeben wird und die Verbindung zum Server hergestellt werden kann Das Icon daneben ffnet ein Fenster in dem alle aufgetretenen Fehler sowohl des Sensornetzwerks als auch des Servers aufgelistet werden Das dritte Icon ffnet das Fens
177. obe Referenz f r eine Anwesenheit von Menschen genommen werden soll wird das Testergebnis als ausreichend bewertet Test der Zeitsynchroniation Der Test der Zeitsynchronisation sollte zeigen ob sie eine globale Zeit herstellt und ob die Genauigkeit ausreichend ist Hierzu sind in TinyOS bereits Testprogramme vor handen Es wurde auf acht Sensorknoten das Programm FtspLpl geschrieben welches das FTSP zusammen mit dem LPL bereitstellt Sobald diese Sensorknoten eine beliebige Nachricht erhalten erfassen sie sofort die aktuelle globale Zeit und senden sie an die Basisstation welche an einem Laptop angeschlossen ist Ein Sensorknoten wurde mit dem RadioCountToLeds Beispielprogramm von TinyOS programmiert Dieses sendet in Abst nden von einer Sekunde eine Nachricht an alle be nachbarten Sensorknoten So erhalten alle FTSP Sensorknoten gleichzeitig diese Pakete und sollten 99 6 Evaluation somit dieselbe Zeit an die Basisstation senden Am PC wurden die empfangenen Zeitinformationen mit dem Serial Listener von TinyOS betrachtet Die acht Sensorknoten wurden im Haus so verteilt dass nicht alle Sensorknoten direkt mitein ander kommunizieren konnten Anschlie end wurde mit dem Laptop samt Basisstation und dem RadioCountToLeds Sensorknoten an der Kette der FTSP Sensorknoten entlanggegangen In einem zweiten Test wurde in der Mitte der Synchronisationskette ein Sensorknoten entfernt die Zeiten in beiden Teilbereichen gemessen und anschlie end de
178. ogar noch die Batterie spannung erfasst Es wird eine Messaufl sung von 0 1 Sekunde erreicht was um den Faktor 10 besser als der geforderte Wert ist E2 Laufzeit der Sensorknoten Eine Laufzeit von einem Jahr war gefordert Es ist schwierig diese Anforderung genau zu bewerten weil die Laufzeit nicht so einfach berechnet werden kann Die Messaufl sung und die Anzahl der Sensorknoten 1m Sensornetzwerk haben einen gro en Einfluss auf das Datenaufkommen und damit auch den Energiebedarf Das oberste Gebot war jedoch bei der gesamten Entwicklung so schonend w e m glich mit den Ressourcen umzugehen Es wird ein energieeffizientes Betriebssystem Routingprotokoll und MAC Protokoll verwendet Die Laufzeit der Sensorknoten kann damit als maximiert angesehen werden weswegen diese Anforderung als erf llt betrachtet wird E3 Zeitsynchronisation Die Sensorknoten synchronisieren sich mit einer durchschnittlichen Genau igkeit von zehn Millisekunden was um den Faktor 25 besser ist als der geforderte Wert Diese Anforderung ist damit erf llt E4 Selbstorganisation der Sensorknoten Die Sensorknoten organisieren sich nach dem Aufstellen autonom zu einem Sensornetzwerk Neu hinzukommende Sensorknoten integrieren sich mit dem n chsten Interesse selbstst ndig in das Sensornetzwerk Kritischer ist der Ausfall eines Sensorknotens Dieser wird erst nach dem Versenden eines Interesses kompensiert Der Server stellt jedoch sicher dass Interessen in regelm
179. olgt zudem dass die gro e Klasse der entfernungsbasierten Verfahren die Entfernungen in diesem Sensornetzwerk mithilfe der Emp fangss gnalst rke berechnen m ssten Es ist jedoch keine Sichtlinie zwischen den Sensorknoten gegeben Reflexionen und Hindernisse verf lschen den Wert der Empfangssignalst rke signifikant so dass keine hinreichend genaue Positionsbestimmung f r diese Anwendung erzielt wird ZH09 4 2 Feinentwurf Nachdem in Abschnitt 4 1 die verwendeten Technologien ausgew hlt wurden steht der Aufbau des Sen sornetzwerks fest Es ist homogen hat eine flache Netzwerktopologie wird deterministisch aufgestellt und die Sensorpositionen werden vom Benutzer im PC Programm angegeben Es kommt TinyOS als Betriebs system Directed Diffusion als Routingprotokoll und FTSP als Zeitsynchronisationsprotokoll zum Einsatz G sersornoien g Basisstation Interesse Daten Abbildung 4 1 Ein berblick ber das entworfene Sensornetzwerk Das Sensornetzwerk besteht wie in Abbildung 4 1 zu sehen aus einer Basisstation und unter Ber ck sichtigung der Betrachtungen in Unterabschnitt 4 1 aus bis zu 130 Sensorknoten Die Basisstation ist die Schnittstelle zwischen dem PC Programm und dem Sensornetzwerk sie ist direkt an einen PC ber die serielle Schnittstelle angeschlossen Das PC Programm kann so Anfragen in Form eines Interesses an die einzelnen Sensorknoten schicken siehe Sensorknoten B und C Die Sensorknoten sind f r di
180. on ca 10 000 Schreiboperationen pro Seite vertragen Zudem ist ein Schreibvorgang energetisch teuer da eine Seite zun chst in den Arbeitsspei cher geladen dort modifiziert und anschlie end zur ckgeschrieben werden muss Ein Beispiel f r ein speziell an die oben genannten Anforderungen angepasstes Dateisystem ist das Extremely Low Frequency ELF Flash File System Instandhaltung Sensornetzwerke bestehen gew hnlich aus mehreren hundert Sensorknoten Diese sind unter Umst nden ber eine gro e Fl che verteilt oder nicht mehr physikalisch erreichbar z B nach einer Aufstellung per Flugzeug Anwendung und Betriebssystem sollten eine M glichkeit zur Fern wartung anbieten Auch eine M glichkeit zum Austausch des Betriebssystems und der Anwendung ist eine oft anzutreffende Anforderung 3 5 Betriebssysteme f r Sensorknoten Bei vielen eingebetteten Systemen f r ein einziges Anwendungsgebiet wie DVD Player oder Mikrowel len kommt auch heute noch kein Betriebssystem zum Einsatz Mehrzweckger te wie PDAs oder Handys besitzen meist eine speziell angepasste Variante der bekannten PC Betriebssysteme wie z B Windows Mobile oder Embedded Linux Sensorknoten befinden sich zwischen diesen beiden Extremen Sie besit zen zwar meist eine spezifische Aufgabe jedoch kommt auch hier in j ngster Vergangenheit oftmals ein Betriebssystem zum Einsatz Sto05 Seite 174f Aufgabe eines Betriebssystems ist es die systemnahen Funktionen von der Anwendung
181. orMoteAppC besteht aus den Komponen ten MainC TimerMilliC LedsC TimeSyncC DirectedDiffusionC SensorikC und dem Modul das die Anwendung implementiert MainC bindet analog zur Implementierung der Basisstation die Kernkompo nenten von TinyOS ein und die Anwendung nutzt die Schnittstelle Boot TimeSyncC stellt wieder die Schnittstelle GlobalTime zur Verf gung und implementiert das FTSP Die Komponente SensorikC im plementiert die Sensordatenerfassung und bietet die Schnittstelle Sensorik an wahrend die Komponente DirectedDiffusionC das Routingprotokoll implementiert welches die Schnittstellen DirectedDiffusion und 76 4 4 Implementierung der Sensorknoten SensorMoteAppC Sensor gt Sensorik Leds gt Leds _ Timer1 gt Timer Pu lt App SensorMoteC Mr Pr e 7 DirectedDiffusion a DirectedDiffusion Error gt Error A GlobalTime gt GlobalTime Boot gt Boot e m Pi O DirectedDiffusionC e Mainc Abbildung 4 8 Das Komponentendiagramm der Sensorknoten Error anbietet Die Konfiguration der Komponente SensorMoteAppC versorgt SensorikC und DirectedDif fusionC mit der Schnittselle Global Time sowie TimeSyncC und DirectedDiffusionC mit der Schittstelle Boot Das Modul SensorMoteC implementiert die Anwendung indem es f r alle Ereignisse der Schnittstellen Boot Timer Sensorik und DirectedDiffusion je einen Eventhandler implementiert Sobald Tin
182. orderungsdefinition in Abschnitt 2 1 und wurde um die M glichkeiten des in Kapitel 4 vorgestellten Sensornetzwerks erweitert Zentrales Element des Servers ist eine Liste von Messungen die durchgef hrt werden sollen Sie entspicht der Menge aller im System vorhandenen periodischen Interessen also der Menge aller Interessentabellen eintr ge aller Sensorknoten In periodischen Abst nden von f nf Minuten feuert ein Timer der die Liste durchgeht und f r jeden Eintrag ein Paket f r perodische Interessen packt Dieses wird im Anschluss an die Basisstation gesendet und damit im Sensornetzwerk verbreitet Ein Messlisteneintrag besteht aus der Art des Interesses der Messaufl sung dem Zeitraum in dem die Messung durchgef hrt werden soll und dem Adressbereich der Sensorknoten welche die Messung durchf hren sollen Des Weiteren wird beim Packen des Interesse Pakets eine fortlaufende Nummer als Interessen ID und O als Gradient in den periodischen Interessen gesetzt Die Liste der Messungen wird regelm ig an das Sensornetzwerk gesendet damit auch sp ter hinzukom mende Sensorknoten die Interessen erhalten Dar ber hinaus werden so die Gradienten der Sensorknoten aktualisiert Das Client Programm steuert das Sensornetzwerk ber die auf der linken Seite des Aktivit tsdiagramms eintreffenden Objekte die den Server jeweils zu einer Aktion veranlassen welche 1m Folgenden beschrie ben werden Das Client Programm kann eine Messung starten in
183. orkno tens FIRMA SENSIRION http octopart com sht11 sensirion 910236 datasheets Online Ressource Abruf 23 05 2010 Datasheet SHT1x SHT10 SHT11 SHT15 FIRMA TROLLTECH Signals and Slots http doc trolltech com 4 6 signalsandslots html Online Ressource Abruf 08 05 2010 GANERIWAL Saurabh KUMAR Ram SRIVASTAVA Man B Timing sync protocol for sensor networks In SenSys 03 Proceedings of the Ist international conference on Embedded networked sensor systems ACM 2003 S 138 149 GREENSTEIN Ben LEVIS Philip TEP 113 Serial Communication GANERIWAL Saurabh CAPKUN Srdjan HAN Chih Chieh SRIVASTAVA Mani B Se cure time synchronization service for sensor networks In WiSe 05 Proceedings of the 4th ACM workshop on Wireless security ACM 2005 S 97 106 HARTUNG Carl HAN Richard SEIELSTAD Carl HOLBROOK Saxon FireWxNet a multi tiered portable wireless system for monitoring weather conditions in wildland fi re environments In Proceedings of the 4th international conference on Mobile systems applications and services 2006 S 2841 INTANAGONWIWAT Chalermek GOVINDAN Ramesh ESTRIN Deborah HEIDEMANN John SILVA Fabio Directed diffusion for wireless sensor networking In EEE ACM Trans Netw 11 2003 Nr 1 S 2 16 Kwon YoungMin AGHA Gul Passive Localization Large Size Sensor Network Locali zation Based on Environmental Events In IPSN 08 Proceedings of
184. r Ansicht dass ein Handshake zwischen zwei Sensorknoten mit einem direkten Austausch von Zeitinformationen zwischen zwei Sensorknoten der bessere Weg ist Dies begr nden sie mit der M g lichkeit moderner Funkchips zum Zeitstempeln der Pakete direkt in der MAC Schicht So nimmt auch bei TPSN die Zeit zum Senden keinen Einfluss auf die Genauigkeit Des Weiteren wird bei TPSN nicht die Zeit eines Sensorknotens relativ zu einem anderen berechnet sondern eine globale Zeit ist auf jedem Sensorknoten direkt und zu jeder Zeit verf gbar TPSN erzeugt eine sich selbst organisierende Ebenenhierarchie von Deamons hnlich zu NTP die in ihrer eigenen Ebene als Client und nach unten hin als Server agieren Jeder Sensorknoten befindet sich in genau einer Ebene und kann mit mindestens einem Sensorknoten der h herliegenden Ebene direkt kommunizie ren Auf der obersten Ebene befindet sich nur ein einzieger Sensorknoten der Rootnode genannt wird Dieser stellt die Masteruhr dar und kann z B mit einem GPS Empfanger ausgestattet werden wenn sich das Netzwerk gegen ber der UTC Zeit synchronisieren soll Funktionsweise von TPSN Die Zeitsynchronisation mit TPSN wird in zwei Phasen realisiert In der Level Discovery Phase wird die Hierarchie aufgebaut und in der Synchronisationsphase werden die einzelnen Uhren miteinander synchro nisiert Die Level Discovery Phase beginnt sobald das Netzwerk augfgestellt wird Der Rootnode ist vordefiniert und weist sich selber
185. r Auswahl wird ein Image Label Objekt mit dem Bild erzeugt und einem neu instanzierten Floor Objekt hinzugef gt welches in einem neuen Tab Objekt als Widget gesetzt wird Besitzt das Bild eine Aufl sung kleiner oder gleich 1024 x 768 so wird es immer auf Fenstergr e skaliert Ist es gr er so befindet sich das Floor Objekt innerhalb einer Scrollbox in dem Tab Abschlie end wird das neue Tab Objekt in die Liste der Geb udeebenen aufgenommen und angezeigt M chte der Benutzer ein Stockwerk entfernen so werden alle Sensorknotenobjekte die in diesem Stock werk positioniert wurden gel scht Anschlie end wird der Tab aus der Liste der Geb udeebenen entfernt und gel scht M chte der Benutzer einen neuen Sensorknoten hinzuf gen so ffnet s ch ein Fenster mit einem Sensor knotenicon und der Aufforderung zur Eingabe der Sensorknotenadresse Hat der Benutzer die Sensorkno tenadresse angegeben so kann er das Icon per Drag and Drop auf den Lageplan ziehen Jedes Floor Objekt eines Stockwerkes besitzt eine Liste mit Sensorknotenobjekten Es wird nun ein neues Sensorknotenobjekt erzeugt die Position auf dem Lageplan dar n gesetzt und das Objekt in die Liste der Sensorknoten des Floor Objektes aufgenommen Soll ein Sensorknoten aus dem Geb udeplan entfernt werden so wird das Sensorknotenobjekt aus der Liste der Sensorknoten des Floor Objektes gel scht Soll der Plan des Geb udes gespeichert werden so w hlt der Benutzer zun chst einen
186. r Eventhandler die korrespondierende lokale Zeit und st t das Versenden an Sobald der Funkchip mit der bertragung beginnt l st er einen Interrupt aus und in der Unterbrechungsbehandlungs routine wird die Zeitdifferenz zwischen Event und Start der bertragung berechnet Diese Differnz wird dem Paket beigef gt Trifft das Paket beim Empf nger ein so merkt er sich n der Unterbrechungsbehand lungsroutine den Eintreffzeitpunkt Anschlie end wird die mitgeschickte Zeitdifferenz vom Eintreffzeit punkt abgezogen und das Ergebnis in den Metadaten des Pakets gespeichert Diese Zeit repr sentiert den Zeitpunkt des Sendeevents beim Sender in der lokalen Zeit des Empf ngers 49 3 Techniken in Sensornetzwerken F r diese Implementierung muss der Funkchip das Ver ndern des Endes der Nachricht nach dem Start der Ubertragung unterstiitzen Tut er dies nicht wird alternativ dem Synchronisationspaket nicht die Zeitdif ferenz zwischen Sendeevent und Start der bertragung beigef gt sondern lediglich die Sendeeventzeit Sobald die Ubertragung startet merkt sich der Sender den Zeitpunkt sendet diesen in einer zweiten Nach richt hinterher und die oben beschriebene Differenz wird erst beim Empfanger gebildet F r beide Varianten wurde somit die Zeit zum Senden Zugreifen und Empfangen komplett eliminiert und die Zeit zum Annehmen wird auf die Dauer einer Unterbrechungsbehandlung begrenzt Die Zeit zum Verbreiten wird nicht ber cksichtigt ist a
187. r Sensorknoten wieder hinzugef gt Zun chst wurde gemessen dass es zwischen zehn und 30 Sekunden dauerte bis die initiale Syn chronisation hergestellt war Danach wiesen alle Sensorknoten eine einheitliche globale Zeit auf die maximal um 50 Millisekunden und m Durchschnitt um zehn Millisekunden voneinander abwich Nachdem das Synchronisationsnetz in zwei Teile geteilt wurde drifteten die globalen Zeiten deut lich auseinander Es war nach 30 Minuten eine Abweichung von ber 30 Sekunden festzustellen Nachdem die Netze wieder verbunden worden waren synchronisierten sie sich wieder Test des LPL Der Test des LPL sollte zeigen ob keine Pakete verloren gehen Der LPL wies in einigen Versionen von TinyOS aus dem CVS Fehler auf Er ist auch der Grund warum TinyOS genau in der Version vom 16 07 2009 genutzt werden muss Hierzu wurden die Beispielanwendungen RadioCountToLeds und BaseStation um den LPL erwei tert Der Sensorknoten mit RadioCountToLeds sendete in periodischen Abst nden von 100 Milli sekunden ein Paket an die Basisstation worin jeweils eine Sequenznummer mitgeschickt wird So kann am PC berpr ft werden ob Pakete verlorengegangen sind Dieser Test konnte erfolgreich durchgef hrt werden Der eine Sensorknoten sendete alle Pakete erfolgreich an die Basisstation Test des Interessensystems Es wurden mehrere Tests durchgef hrt um das Interessensystem zu tes 100 ten Ausgangsbedingung war jeweils ein aufgestelltes System
188. r ausgeschaltet sind bis zu LPM4 in dem alle Komponenten bis auf die externen Unterbrechungen ausgeschaltet sind In TEP 112 SLT 07 wird der Mechanismus zum Wechseln zwischen den Energiezust nden in TinyOS beschrieben Ziel hierbei ist es den Mikrocontroller immer in den m glichst besten Energiezustand zu versetzen Sobald der Scheduler keinen Task mehr zum Einplanen vorfindet also die Taskwarteschlange leer ist ruft er das Kommando McuSleep sleep auf Der Prozessor befindet sich nun in einem der oben vorgestellten Niedrigenergiemodi bis eine Unterbrechung auftritt Unterbrechungsquellen sind zum einen die Peripherie wie Funkchip oder Sensoren oder ein interner Timer des Mikrocontrollers Um zu entscheiden in welchen Energiezustand die Sleepfunktion den Mikrocontroller berf hrt nutzt TinyOS eine mikrocontrollerabh ngige Funktion zur Berechnung des Energiezustandes f r die Schlafpha se Ergebnis der Berechnungsfunktion ist der niedrigste Energiezustand in dem alle derzeit ben tigten Hardwareger te noch eingeschaltet sind L uft z B nur noch ein Timer im System so wird in den tiefs 21 3 Techniken in Sensornetzwerken ten Energiezustand gewechselt in dem dieser noch voll funktionsfahig ist Der Mikrocontroller wechselt mehrmals in der Sekunde den Energiezustand Um nicht jedesmal einen neuen Energiezustand von der Berechnungsfunktion ermitteln zu lassen wird sich der Energiezustand fiir die Schlafphase gemerkt Er wird nur d
189. r strukturellen Eigenschaften auf Sch den untersucht werden Sukun et al haben ein bereits im produktiven Einsatz befindliches Sensornetzwerk zur indirekten berwachung der Integrit t an der Golden Gate Bridge angebracht KPC 07 Dieses ist zum einen zur kontinuierlichen ber wachung und zum anderen zur Katastrophenwarnung bei Erdbeben und Explosionen ausgelegt Es misst mit 64 Sensorknoten auftretende Vibrationen mit einer Aufl sung von 30uG Hierbei werden pro Sekunde 1000 Werte erfasst und an eine Basisstation mit Internetanschluss gesendet Besondere herausforderung bei dieser Installation ist die l ngliche Anordnung des Sensornetzwerks entlang der Br cke Es musste ein Netzwerkprotokoll entwickelt werden welches besonders gut bei die Multi hop Anforderung umsetzt Weiter musste die salzige und feuchte Umgebung in Meeresn he bei der Hardwareauswahl bedacht werden Gegen ber dem vorher eingesetzten konventionellen System mit verkabelten Sensoren ist das Sensornetzwerk mit 600 pro Knoten gegen ber mehreren tausend Dol lar pro Messpunkt bei gleicher Datenqualit t um einiges g nstiger Vulkan berwachung In einem Gemeinschaftsprojekt der Universit ten Harvard North California New 12 Hampshire und des Instituto Geofisico ist ein Sensornetzwerk zur berwachung der Aktivit t von Vulkanen entstanden WALW 06 WALJ 06 Es kann sowohl als Fr hwarnsystem f r Vulkanaus br che als auch zur Erhebung wissenschaftlicher Daten einge
190. r wieder erneut bis der LPL des Empfangers den Empfang best tigt oder eine Zeit von zwei Arbeitszyklen vergangen ist Der Funkchip greift auf den Kanal mittels CSMA CA zu um Kollisionen zu vermeiden Ein Paket wird nur gesendet wenn der Kanal derzeit nicht belegt ist Ist der Kanal belegt wartet der Funkchip eine kurze Zeit und berpr ft erneut den Status des Kanals In der Carrier Sense Multipe Access Schicht werden in dem Paket Wartezeiten f r den CSMA Algorithmus gesetzt und es wird dem LPL das Ein und Ausschalten des Funkchips erm glicht Ganz unten befinden sich die Module TransmitP und ReceiveP Sie implementieren die Unterbrechungsbe handlungen des Funkchips und binden diesen ber den SPI Bus an Ein Paket besteht laut TEP 111 Lev immer aus einem Header Nutzdaten einem Footer und Metadaten Header Footer und Metadaten sind vom Funkchip abh ng g Der Header enth lt 1m Falle des CC2420 Funkchips unter anderem die Paketl nge die Ziel und Quelladresse und einem Active Message Type zur Unterscheidung von mehreren Funkverbindungen verschiedener Komponenten ber einen Funkchip Der Footer ist hingegen be1 dem CC2420 leer es wird lediglich eine zwei Byte gro e Pr fsumme angeh ngt Die Metadaten werden nicht mitgesendet sondern dienen den einzelnen Schichten zum Speichern und Austauschen von Informationen zu einem Paket Hierunter fallen beim CC2420 die Sendeleistung die Empfangssignalst rke der Empfangszeitpunkt und zwei boo
191. re befinden sich in d nn bev lkerten Regionen Dar ber hinaus erzeugen in Sensornetzwerken Ereignisse viele Daten innerhalb eines kurzen Zeitraums was von den Kommunikationsprotokollen bedacht werden muss Im Gegensatz zum Internet mit seinem IP Protokoll ist es in Sensornetzwerken oft wichtiger die Daten zu bekommen als genau zu wissen wo sie herstammen VDMCO0O8 Seite 173 Zudem flie en die Daten in Sensornetzwerken in der Mehrheit von vielen Punkten zu genau einer Basisstation Die Daten sind oft Beobachtungen derselben Umgebung zu bestimmten Gr en und k nnen auf den Weg zur Senke miteinander fusioniert werden Das von TinyOS verwendete MAC Protokoll CSMA CA mit dem LPL zum Energiesparen wurde bereits in Unterabschnitt 3 5 2 betrachtet Eine Alternative zum LPL ist SMAC es unterteilt den Zugriff auf den 33 3 Techniken in Sensornetzwerken Funkkanal in Sleep und Listen Phasen Die Zeitpunkte werden mit einem Synchronisationspaket bekannt gegeben und andere Sensorknoten k nnen in der n chsten Listen Phase Daten bermitteln VDMC08 Seite 172f Diese und weitere Alternativen zu MAC Protokollen liegen jedoch au erhalb des Fokus dieser Arbeit In diesem Abschnitt werden jetzt Routingprotokolle speziell fiir Sensornetzwerke betrachtet Hierzu wer den zun chst die Anforderungen genannt und im Anschluss wird eine Taxonomie f r Routingprotokolle vorgestellt Um den Ressourcenbeschr nkungen insbesondere bei der Energieversorgung ge
192. rechen hierbei von einem Klassifikationsschema anstatt einer Klassifizierung da mehr als ein Charakteristikum zur Unterscheidung herangezogen wird Unterschiede sind zu finden in der Architektur 18 3 5 Betriebssysteme fiir Sensorknoten dem Ausf hrungsmodell der F higkeit zur Neuprogrammierung dem Scheduling der Energieverwaltung der Portabilit t auf neue Hardwareplattformen und der F higkeit zur Simulation Im Folgenden werden die einzelnen Punkte genauer erl utert und Betriebssysteme den jeweiligen Kategorien zugeordnet Basis hierf r bildet nicht nur das Fachreferat der oben genannten Autoren sondern auch Sto05 Seiten 186 195 Monolithisch p Modular oder eee komponentenorientiert Virtuelle Maschine Architektur Ereignisgetrieben Ausf hrungsmodell Prozesse Threads Hybrid wee Auf Anwendungsebene Auf Modul Komponentenebene Betriebssystem Neuprogrammierung A p ie Auf Instruktionsebene Auf Variablenebene Scheduling Fehtzeit en Keine Echtzeit Energieverwaltung Portabilit t Diverses g Simulationsunterst tzung Abbildung 3 5 Das von Reddy et al RKJK03 vorgeschlagene Klassifikationsschema f r Betriebssysteme Architektur Die Architektur des Kernels beeinflusst ma geblich die Art und Weise wie das Betriebssys tem Funktionen anbietet Hierbei besteht ein Trade off zwischen Performance und Flexibilit t Es wird zwischen drei Architekturen unterschieden 1 Monolithische Be
193. recht zu werden muss das verwendete Routingprotokoll an die Anwendung und die Gegebenheiten des Sensornetzes angepasst sein Im Folgenden werden Desingkriterien nach Al Karaki und Kamal AKK04 und Boukerche Bou09 Seite 131f genannt Sensorknotenaufstellung und Skalierbarkeit Die Sensorknoten k nnen entweder zuf llig oder de terministisch aufgestellt worden sein Kennt man die Lage und Nachbarschaftsbeziehungen der Se norknoten so k nnen von dem Routingprotokoll feste Pfade zur Paketvermittlung genutzt werden Andernfalls muss das Paket selber einen Weg von Quelle zur Senke und je nach Anwendung auch zwischen beliebigen Sensorknoten finden In beiden F llen muss jedoch die Aufstellungsverteilung bedacht werden Sensornetzwerke k nnen auf einem gro en oder kleinen Gebiet aufgestellt sein Je nach Lage und Anwendungsfall haben sie nur wenige Nachbarknoten bis hin zu mehreren hundert Alle Routingprotokolle m ssen mit der Gr e skalieren und bei nicht gleichm igen Sensorknoten verteilungen Flaschenh lse in der Kommunikation ber cksichtigen Fehlertoleranz und Quality of Service Die Sensorknoten k nnen wegen Energiemangels physika lischer Sch den oder Hardwaredefekten ausfallen Hierbei sind die Ausfallraten deutlich h her als in herk mmlichen Netzwerken zwischen PCs Das Routingprotokoll muss robust gegen ber Aus fallen sein indem es diese schnell erkennt und Pakete ber alternative Wege leitet Um Ausf llen zu begegnen muss
194. resse besitzt hingegen noch eine Variable um Aktoren Werte mitge ben zu k nnen Es werden die nx Datentypen von TinyOS verwendet welche eine plattformunabh ngige Kommunikation zwischen verschiedenen Sensorknoten sicherstellen Die Bitbreite der Variablen orientiert sich an den Gegebenheiten Adressen sind in TinyOS 16 Bit breit FTSP bietet eine 32 Bit breite Zeitinfor mation an Die Art des Interesses ist 8 Bit breit ein Sensorknoten kann damit zwischen 256 verschiedenen Interessen pro Interessentyp unterscheiden typedef nx_struct PeriodicInterestMsg ao ELSE e anoden 4 nx uint Ic Interes nx Uline kG t interesiID 6 n Uine 2 e Sic aie rime 65 4 Entwurf und Implementierung des Sensornetzwerks Oye Ubon 2 1 S E A E 8 ee a nx_uint16_t targetadress 10 nx_uint16_t targetadressEnd OE E o O SIE 2 PeriodicInterestMsg_t 14 typedef nx_struct OneShotInterestMsg 16 ee Valve dG e Oe D ie NENES ie AL Sie sos 18 as Dubai de ae Sic D oe SiGe IG rei 20 nx_uint16_t targetadress nx_uint16_t targetadressEnd 22 RX eb ee ce Mee gradar AE jOneShotInterestMsg_t Listing 4 1 Die Nutzdaten der Interessenpakete im Sensornetzwerk Directed Diffusion funktioniert vom Prinzip her in dem hier entworfenen Sensornetzwerk genau so wie es in Unterabschitt 3 6 2 anhand des Fachaufsatzes von Intanagonwiwat et al vorgestellt wurde Das PC Programm versendet tiber die Basisstation Interessen per Flooding an das Sensornetzwe
195. ressen zu verwerfen bei denen bereits ein Eintrag in der Interessentabelle besteht die man also bereits erhalten und weiterversendet hat bietet sich nicht an Hier k nnte man kein Interesse erkennen welches von gleicher Natur wie das urspr ngliche ist also gleiche Sensorwerte zu einem sp teren Zeitpunkt anfordert Hat man sich daf r entschieden das Interesse weiter zu propagieren so stellt sich die Frage an welche Knoten Hier sind mehrere Alternativen m glich Die einfachste Form ist ein Broadcast an alle Nach barknoten was dem Floodingprotokoll entspricht Dies wird h ufig angewendet da die Knoten oft keine Informationen ber deren Nachbarn besitzen Es w re jedoch g nstig die Nachbarn zu kennen Man kann alle Knoten exkludieren von denen man bereits einen Gradienten zu dem aktuellen Interesse in der Inter essentabelle gespeichert hat von denen man also das Interesse bereits erhalten hat Es ist hierbei jedoch darauf zu achten dass so gleichartige Interessen sich nicht durch das Netz propagieren lassen Eine L sung f r dieses Problem ist es einen Zeitstempel mit in das Interesse aufzunehmen um jedes Interesse eindeutig zu machen Als weitere Herausforderung m ssen die Nachbarn st ndig aktuell gehalten werden Insbesondere in dynamischen Sensornetzen in denen zur Laufzeit neue Knoten hinzukommen und entfernt werden k nnen muss die Menge aller Nachbarn periodisch aktualisiert werden Eine weitere Alternative zur Entscheidung
196. rf und Implementierung des Sensornetzwerks hen neben dem Modul DirectedDiffusionP aus den Komponenten NetworkC LedsC und zweimal der Komponente TimerMilliC Die Implementierung von Directed Diffusion wurde in zwei logische Bl cke unterteilt Das Modul DirectedDiffusionP implementiert die Mechanismen zur Interessenverbreitung und verarbeitung und die Komponente NetworkC k mmert sich um Paketverwaltung und versand Dazu bietet sie die beiden Schnittstellen Network und Error an Die beiden Timer sind zum einen der Interessen timer und zum anderen der Start Stop Timer Vergleiche hierzu auch Unterabschnitt 4 2 1 Dar ber hinaus verbindet die Konfiguration der Komponente DirectedDiffusionC die Schnittstellen Boot und GlobalTime mit NetworkC Das Modul DirectedDiffusionP implementiert die von der Anwendung zur Interessenbedienung ben tig ten Kommandos der Schnittstelle DirectedDiffusion Die Kommandos sendPeriodicData sendBestGra dient und sendInterestTable rufen mit den bergebenen Parametern ein gleichnamiges Kommando der Schnittstelle Network auf da die Kommandos in der Paketverwaltung bearbeitet werden Der Befehl clea rInterestTable h lt die beiden Timer an und l scht den Inhalt der Interessentabelle Der Aufruf nodeln Sync wird ebenfalls an NetworkC delegiert Die beiden Ereignisse OneShotInterest und PeriodicInterest werden ausgel st wenn die Anwendung ein Interesse beantworten soll 1
197. rfassung der derzeitigen Umwelt parameter sowohl innerhalb als auch au erhalb der Geb ude notwendig Zum anderen m ssen dezentrale Aktoren angesteuert werden K nnen I Einleitung Um ein verteiltes Ph nomen zu erfassen bietet sich ein Sensornetzwerk an Ein solches besteht aus klei nen batteriebetriebenen Ger ten mit Sensorik und drahtloser Netzwerkf higkeit welche meist maximal die Gr e einer Zigarettenschachtel besitzen Eine einfache Installation ist aufgrund der portablen Ener giequelle und der funkbasierten Kommunikation hierbei gegeben An den Sensorknoten angeschlossene Sensoren erm glichen die Messung von Umweltparametern wie Temperatur Luftfeuchte ffnungszustand von Fenstern und T ren oder Anwesenheit von Menschen Wei terhin k nnen Aktoren angeschlossen werden welche in den hier skizzierten Beispielen die elektrischen Ventile der Heizk rper oder die L ftungsklappen einer Warmluftheizung sind Insbesondere bei den Warm luftheizungen kann bedingt durch die automatisierte Temperaturregelung nicht auf ein Sensornetzwerk verzichtet werden Damit ist man in der Lage eine intelligentere Heizungsregelung zu realisieren In einem B rogeb ude kann so die Heizleistung in einzelnen R umen in der Nacht reduziert werden und dennoch zum Arbeitsbeginn bereits wieder die gew nschte Temperatur automatisch hergestellt sein In dieser Diplomarbeit wird ein solches Sensornetzwerk zur Erfassung der Temperaturverteilung entwor fen
198. ries tze eingelegt Zur Referenzmessung der Lichtwerte lag leider kein passendes Messger t vor Es wurde daher der Lichtsensor mit der Hand abgedeckt in einen abgedunkelten Raum bei eingeschalteter Deckenbeleuchtung gelegt und in di rektes Sonnenlicht gehalten Es zeigte sich dass der Sensorknoten die Temperatur im Vergleich zu dem USB Stick um ca 2 5 C zu hoch ma Die Luftfeuchte wich durchschnittlich um 5 RH m Bereich zwischen 55 RH und 80 RH ab Luftfeuchten unter 55 RH waren nicht bei den Tests vorhanden und ber 80 RH war die Abweichung unspezifisch Es zeigte sich jedoch dass sowohl der Sensorknoten als auch der USB Stick irgendwann 99 RH erreichten Ferner konnte beobachtet werden dass der Sensorkno ten um den Faktor 2 tr ger war als der USB Stick Es dauerte nach dem Aufstellen des Sensorknotens zehn Minuten bis sich die Messwerte f r Temperatur und Luftfeuchte auf einen Wert eingependelt hatten Die Spannug der Batterien wurde mit den Sensorknoten zwischen 2 6 V und 2 9 V gemessen Mit einem Spannungsmesser wurden Spannungen zwischen 2 8 V und 3 0 V gemessen Bedenkt man dass die mit dem Spannungsmesser gemessenen Werte ohne Belastung gemessen wurden k n nen die mit dem Sensorknoten gemessenen Werte als korrekt angesehen werden Die Lichtwerte betrugen bei der Abdeckung mit der Hand nahezu 0 und der Wert bei Sonneneinstrahlung war etwa um den Faktor 5 h her als der bei Zimmerbeleuchtung Da die Lichtmessung nur als gr
199. rk wobei Gradien ten aufgebaut werden und die Sensorknoten ihre Antwort auf das Interesse anhand der Gradienten zuriick zur Basisstation leiten In dem hier entworfenen Sensornetzwerk gehen alle Interessen von der Basisstation aus beliebige Sensor knoten schicken sich keine Nachrichten Es ist daher nicht n tig die Gradienten an ein Interesse zu binden Es wird zus tzlich zu der Interessentabelle eine Tabelle gef hrt in der alle Gradienten aufgenommen wer den Das hat mehrere Vorteile Einerseits m ssen Paare aus Gradienten und Sensorknotenadresse nicht mehrfach vorgehalten werden Gibt es zwei Interessen mit gleichen Gradienten Sensorknotenadressen Paar so w rde die von Intanagonwiwat et al vorgestellte Variante das Paar doppelt speichern Anderer seits muss bei Erhalt eines neuen Interesses und damit eines neuen Gradienten das Interesse nicht in der Interessentabelle gesucht werden Dies gilt auch f r das Routing der Daten von der Quelle zur Basisstati on Durch eine Trennung zwischen Interessen und Gradiententabelle m ssen nur die Interessen die von diesem Sensorknoten bedient werden sollen n die Interessentabelle aufgenommen werden Es kann somit Speicher Rechenleistung und dadurch auch Energie gespart werden Dar ber hinaus ist es bei dem hier vorliegenden Sensornetzwerk nicht von Bedeutung zu welchem Interesse Daten geh ren S e sollen alle an d e Basisstation gesendet werden Indem man eine Gradiententabelle f r alle Da
200. rnetzwerk welche in dem in Abbildung 2 2 zu sehenden Anwendungsfalldiagramm dargestellt sind Es kann eine neue Messung starten wobei es auch die M glichkeit haben muss die Messgr e und die Aufl sung sowie den Messzeitraum und die Zielsensoren die die Messung durchf hren sollen anzugeben Des Weiteren hat das PC Programm die M glichkeit alle Messungen auf den Sensorknoten abzubrechen Weitere Anwendungsf lle sind die Kalibrierung der Sensoren und das Abfragen von Statusinformationen Es werden auch einige nichtfunktionale Anforderungen aufgestellt Mit ein Hauptgrund f r die Entwicklung dieses Systems ist das Bestreben erste Erfahrungen mit Sensor netzwerken fiir die Abteilung Systemsoftware und verteilte Systeme zu sammeln Es ist daher dadrauf zu achten bei Designentscheidungen auch ihre Bediifnisse mit einzubeziehen Ferner ist eine ingenieurm ige Vorgehensweise an den Tag zu legen Das hei t dass nach einem Ent wicklungsmodell vorgegangen wird Hier ist es das Wasserfallmodell Es wird eine Anforderungsdefiniti on aufgestellt ein Entwurf der einzelnen Komponenten findet statt gefolgt von der Implementierung des Systems Abschie end findet eine Testphase statt Um das System in Zukunft nutzen und weiterentwickeln zu k nnen muss es zum einen leicht wartbar und zum anderen gut dokumentiert sein 2 2 Anforderungen Im Folgenden werden einzelne Anforderungen aus der vorangegangenen Aufgabenbeschreibung abgelei tet Diese werd
201. rnetzwerks genutzt um das Verhalten der einzelnen Komponenten nachzuvollziehen und zu testen 98 6 Evaluation In diesem Kapitel wird das entworfene und implementierte System zur Erfassung eines Temperaturpro fils in Wohn und B ror umen evaluiert Hierzu werden zun chst die durchgef hrten Tests vorgestellt und anschlie end die in der Anforderungsdefinition in Abschnitt 2 2 aufgestellten Anforderungen auf ihre Um setzung berpr ft Den Anfang machen die Tests des Sensornetzwerks Test der Sensordatenerfassung Der Test der Sensordatenerfassung sollte zeigen ob diese Kompo nente in der Lage ist die Sensorwerte richtig zu erfassen und insbesondere die im Abschnitt 4 4 vorgestellten Formeln zur Umrechnung des erfassten Wertes in die jeweilige Umweltgr e berpr fen Hierzu wurde eine kleine Testanwendung geschrieben die alle f nf Sekunden die Messwerte von Temperatur Luftfeuchte Licht und Spannung mit der Sensordatenerfassungskomponente misst und an die unmodifizierte Basisstation aus den Anwendungsbeispielen von TinyOS sendet Auf der Seite des PCs wurde der Debugserver zur Anzeige der Daten benutzt Der Sensorknoten wurde ins Badezimmer neben einen USB Stick PCE HT71 der Firma PCE Grou pe Europe gelegt welcher Temperatur und Luftfeuchte misst Anschlie end wurde die Dusche an gestellt um die Luftfeuchte auf 100 RH zu bringen Des Weiteren wurden die Spannung der Sen sorknotenbatterien gemessen und verschiedene Batte
202. rt an so erh lt man als Ergebnis zun chst nur einen Auslesewert welcher in die jeweilige Messgr e innerhalb des Moduls SensorikP umgerechnet wird Die Umrechnung der Temperatur T in C und der relativen Luftfeucht RAjjneg ohne Temperaturkom pensation und RA rue mit Temperaturkompensation in kann bei 3 Volt Versorgungsspannung und dem Auslesewert SO laut dem Datenblatt des SHT11 Fird berechnet werden mit T 39 6 0 1 SOr RHyjincar 4 0 0405 SOgy 2 8E SO RHyure T 25 0 01 0 00008 SOry RHiinear Der Wert f r die Spannung wird ber den A D Wandler des Mikrocontrollers erfasst Dieser besitzt eine Aufl sung von 12 Bit Um die Spannung zu erhalten wird der A D Wandlerwert durch die Messaufl sung dividiert und mit der Referenzspanung des Wandlers multipliziert SO 4096 Der Lichtwert wird mit einer Fotodiode bestimmt die einen Widerstand von 100 kOhm besitzt Man kann mit dem Ohmschen Gesetz V J R den gemessenen Spannungsabfall ber dem Sensor in den Strom fluss durch den Sensor umrechnen und anhand des Datenblattes Firb damit den Wert der totalen solaren Einstrahlung berechnen V 3 80 4 4 Implementierung der Sensorknoten _ 4096 100000 TSR 1E I 1000 Die Werte f r die Spannung und die Temperatur werden in SensorikP dabei jedoch noch mit 100 multipli Ziert um mit den ganzzahligen Datenpaketen fiir diese Werte zwei Nachkommastellen zu tibertragen Abschl
203. rteilungserfassung zu ermitteln In Industriegeb uden kommt daher oftmals eine Warmluftheizung zum Einsatz Dabei wird an zentraler Stelle mit einem W rmetauscher warme Luft einer bestimmten Temperatur erzeugt Die Warmluft wird dann ber L ftungssch chte in die einzelnen R ume bef rdert Temperatursensoren bestimmen hierbei die Menge der zugef hrten Luft Warmluftheizungen erfordern jedoch aufgrund der W rmetauscher der Sensorinfrastruktur und der auf w ndigeren L ftungssch chte einen deutlich h heren Installations und Technikaufwand wie anhand einer Werksbesichtigung des Bahlsenwerks in Varel nachvollzogen werden konnte Aus diesem Grund kommt eine Warmluftheizung meist nur in Produktionshallen zum Einsatz Der Verwaltungstrakt bei dem besich tigten Bahlsenwerk ist ebenfalls mit einer herk mmlichen Warmwasserheizung ausgestattet Warmluftheizungen erlangen in j ngster Zeit jedoch einen immer gr eren Marktanteil In gro en Hoch h usern k nnen die Fenster meist nicht ge ffnet werden Dies zieht die Installation eines L ftungssystems nach sich von dem dann auch die Klimatisierung bernommen wird Auch Niedrigenergieh user besit zen h ufig ein L ftungssystem da so d e Klimatisierung und der Luftaustausch energieeffizienter realisiert werden k nnen Energieeffizienz bei Heizsystemen in Geb uden nimmt einen immer gr eren Stellenwert ein Um die Re gelung bei Heizsystemen intelligenter zu gestalten ist zum einen eine E
204. rten Zustand heraus als effizient bezeichnet Netzwerkdynamik Ungeachtet dessen ob die Sensorknoten zuf llig oder deterministisch aufgestellt wurden ist die Netzwerktopologie dynamisch Gr nde hierf r sind mobile Sensorknoten eine dy namische Partitionierung des Netzwerkes zur Laufzeit und durch leere Batterien ausfallende Sensor knoten Die Zeitsynchronisation muss daher auch in sich ver ndernden Netzwerktopologien zuver l ssig funktionieren Lebensdauer Die Lebensdauer der Synchronisation bezeichnet den Zeitraum in dem die Uhren nach er folgter Synchronisation als synchron angesehen werden Es wird unterschieden zwischen kurzzeitig und persistent Bei einer kurzzeitigen Lebensdauer findet die Synchronisation nur dann statt wenn sie ben tigt wird Bei der persistenten Synchronisation findet eine initiale Synchronisation statt die dann bis zum Ende der Lebensdauer des Sensorknotens immer wieder korrigiert wird Hier sind zu jeder Zeit synchronisierte Uhren vorhanden Infrastruktur Sensorknoten werden unter Umst nden zuf llig in unbekannten und gef hrlichen Gebieten ausgebracht Sie m ssen sich selber zu einem Netzwerk organisieren und es kann nicht davon aus gegangen werden dass eine Infrastruktur vorhanden ist Es ist nicht wie bei dem NTP gew hrleistet dass eine korrekte Uhrzeit nur wenige Hops entfernt st Die Aufgabe der Zeitsynchronisation muss auch mit mobilen Sensorknoten funktionieren und sollte gut mit der Netzgr
205. rto leranz und Quality of Service bereits beschrieben wird versucht die Lebensdauer des Sensornetzwerks zu maximieren und hierbei die einzelnen Pakete sicher an ihr Ziel zu leiten Multipfadprotokolle berechnen mehrere m gliche Pfade f r die Datenpakete Die Pakete werden dann entlang des besten Pfades zum Ziel gesendet Fallt ein Pfad aus so hat das Routingprotokoll alternative Wege zur Kompensation des Fehlers Die letzte Klasse sind die attributbasierten Routingprotokolle Bei diesen werden die Pakete anhand der Daten in den Paketen weitergeleitet Dieser Ansatz geht davon aus dass alle Sensorknoten hnliche Auf gaben erf llen Somit ist jeder von ihnen in der Lage zu entscheiden ob ein Paket fallengelassen wird ob es mit anderen Paketen aggregiert wird oder an welchen Sensorlknoten es weitergeleitet werden soll In Tabelle 3 5 ist eine bersicht ber Routingprotokolle speziell f r Sensornetzwerke zu finden Im Fol genden werden in den Unterabschnitten 3 6 1 und 3 6 2 die f r diese Arbeit relevanten Routingprotokolle genauer beschrieben 3 6 1 Flooding E e Sensorknoten a Sensorknoten A sendet das Paket an seine b Die Nachbarknoten B und E versenden das Nachbarn Paket ebenfalls an ihre Nachbarn Verbindung Ein m glicher Datenpfad Abbildung 3 14 Das Flooding Protokoll f r Sensornetzwerke 36 3 6 Netzwerkprotokolle f r Sensornetzwerke Bou09 Seite 134 ff SPIN Flooding Directed Diffusion Rumor
206. rwendete Netzwerkstruktur Hierzu m ssen die Anforderungen an die Netzwerktopologie erarbeitet werden und es muss insbesondere ein passendes Routingverfahren zum Einsatz kommen Als Herausforderung ist die geforderte M glichkeit zur Selbst organisation der Sensorknoten zu nennen Es soll m glich sein dass sich ein Sensor durch Einschalten automatisch in ein bestehendes Sensornetz integriert Das PC Programm enth lt die grafische Benutzerschnittstelle des Systems und soll dem Anwender die Interaktion mit dem laufenden Sensornetzwerk sowie eine Betrachtung aufgezeichneter Daten in Form von Temperaturverl ufen erm glichen Hier muss eine Datenbank genutzt werden welche sowohl die Daten der Sensorknoten als auch deren Position im Raum speichert Zur Verdeutlichung der M glichkeiten des PC Programms ist ein Anwendungsfalldiagramm in Abbildung 2 1 gegeben Der Benutzer kann diverse globale Einstellungen vornehmen Damit das PC Programm sich mit dem Sensornetzwerk verbinden kann muss er die serielle Schnittstelle an der ein Sensorknoten ange schlossen ist angeben Dar ber hinaus m ssen dem PC Programm der Datenbankname und die Zugangs daten bekannt gemacht werden Der Benutzer hat auch die M glichkeit eine neue Datenbank anzulegen Sind diese Vorraussetzungen erf llt so kann er die Messaufl sung und die zu erfassenden Messgr en angeben Um die Sensoren auf einem Lageplan darzustellen kann ein Geb udegrundriss geladen werden Hat der Benu
207. s 100 Sensorknoten meistens sogar deutlich weniger Der Abteilung Systemsoftware und Verteilte Systeme stehen 130 Sensorknoten zur Verf gung In den gelesenen Ver ffentlichungen wurde bei gr eren Sensornetzwerken die Sicherheit der Paket bertragung betrachtet Gerade in gro en Netzen kann es h ufig zu Kollisionen kommen w hrend gleichzeitig ein hoher Prozentsatz an erfolgreich von der Quelle zur Senke bertragenen Paketen erstrebenswert ist Hierbei kann der Debugserver zum direkten Zugriff auf das Netzwerk genutzt und f r entsprechende Untersuchungen erweitert werden Bei der Entwicklung des vorgestellten Sensornetzwerks wurde eine ingenieurm ige Vorgehensweise an den Tag gelegt Zun chst wurden die Anforderungen festgelegt um die Aufgabe besser zu verstehen und mit dem Auftraggeber eine gemeinsame Basis bez glich der umzusetzenden Funktionen zu haben Danach wurde ein Entwurf erstellt und implementiert Abschlie end wurde das entstandene System anhand der Anforderungen evaluiert Bei der Bearbeitung zeigte sich dass viel Literatur gelesen werden musste Die Mechanismen in Sen sornetzwerken unterscheiden s ch aufgrund der Ressourcenbeschr nkungen erheblich von herk mmlichen PC Programmen Daher wurden ausf hrlich die m glichen Alternativen beschrieben um eine Auswahl zu treffen Der Entwurf des Sensornetzwerks umfasste n nicht unerheblichem Ma e das Verst ndnis der ein 105 7 Fazit und Ausblick zusetzenden Technologien
208. s Ressourcenmanagment CIO5 Seite 19 Es wird zwischen zwei Arten des Aufstellens unterschieden Beim zuf lligen Aufstellen random deployment kann die La ge der Sensorknoten ohne eine Positionsbstimmung nur grob gesch tzt werden Das ist z B der Fall wenn sie von einem Flugzeug aus abgeworfen wurden Beim deterministischen Aufstellen de terministic deployment ist zumindest dem Menschen die genaue Lage des Sensors bekannt Die Sensorknoten werden einzeln genau an einer definierten Stelle aufgestellt CIOS Seite 6f 3 2 Ausgew hlte Anwendungsbeispiele Sensornetze werden in Zukunft einen immer gr eren Stellenwert in unserer Gesellschaft einnehmen Das Fachgebiet der Sensornetzwerkforschung ist eine sehr junge Disziplin die Zahl der Fachaufs tze zu diesem Thema begann erst um das Jahr 2002 allm hl ch anzusteigen Diese Entwicklung ist der kleiner und billiger werdenden Hardware insbesondere bei der Funktechnologie zu verdanken ASSC02 M gliche Einsatzszenarien von Sensornetzwerken sind bei der Umwelt berwachung im Gesundheitswe sen bei der Standortverfolgung von Tieren in der Unterhaltungselektronik bei stimmungsbasierten An wendungen im Transport und der Logistik in Heim und B ro sowie in der Industrie zu finden VDMC08 Seite 16 Im Folgenden werden einige Anwendungen n her skizziert um die Relevanz von Sensornetzwerken in unserer Gesellschaft herauszustellen Feuermeldesystem fur Walder Viele Regionen der Erde wie
209. saufl sung von einem Datenpaket pro Sekunde gefordert was fast um den Faktor zehn kleiner ist als der maximale theoretische Wert Das Sensornetzwerk kommt also mit einer Datensenke aus diese wird im Folgenden Basisstation genannt Zudem kann auf eine Aggregation der Daten verzichtet werden es w re aber n tzlich wenn das verwen dete Routingprotokoll eine solche f r sp tere Erweiterungen bereits vors he Die Sensorknoten werden fest an einer Stelle aufgestellt Das Routingprotokoll muss daher keine mobilen Sensorknoten ber cksichtigen Dar ber hinaus sind alle Sensorknoten von gleicher Bauweise es handelt sich also um ein homogenes Sen sornetzwerk Aus diesem Grund bietet es sich nicht an bestimmte Sensorknoten f r bestimmte Aufgaben vorzusehen In diesem Sensornetzwerk sind alle Sensorknoten bis auf die Basisstation mit derselben Soft ware bespielt Das Routingprotokoll muss daher keine Pakete zu Sensorknoten mit speziellen F higkeiten weiterleiten k nnen Au erdem bietet es sich hierdurch nicht an eine hierarchische Netzwerkstruktur zu w hlen Kein Sensorknoten besitzt eine besondere Funkreichweite oder Lebensdauer um sich gut zur Orga nisation eines Subnetzes zu eignen Dazu ist die Netzwerkgr e mit 130 Sensorknoten noch berschaubar Ein flaches Routingprotokoll ist damit ausreichend Aus der Anforderungsdefinition geht hervor dass Pakete von der Basisstation zu den Sensorknoten ge schickt werden m ssen zum einen um Messun
210. schen Funkkanal kommt es in der MAC Schicht bei jedem Hop zu nichtdeterministischen Verz gerungen n der Gr enordnung von mehreren 100 Millisekunden Das NTP ist so nur bedingt f r Sensornetzwerke geeignet MKSLO04 Bei dem Entwurf von Zeitsynchronisationsprotokollen sind laut Bou09 Seite 507f verschiedene Desi enkriterien zu beachten Dort wird eine Metrik zur Evaluation gegeben wobei nicht alle Punkte gleichzei tig zu erf llen sind Je nach Anforderung der Anwendung besteht ein Trade off zwischen den einzelnen Punkten Synchronisationsgenauigkeit Die von einem Synchronisationsprotokoll verlangte Genauigkeit rich tet sich ma geblich nach der Aufgabe die mit den synchronisierten Uhren erf llt werden soll Es wird zwischen drei Ebenen unterschieden Erstens eine reine zeitliche Sortierung der Daten Events und Aufgaben zweitens eine Synchronisation bei der die einzelnen Sensorknoten einen berblick ber Skew und Offset der Nachbarknoten besitzen die dritte und komplexeste Ebene ist die Syn chronisat on der Uhren gegen ber einer globalen Zeit innerhalb des Netzwerkes Effizienz Selbstverst ndlich unterliegen auch die Zeitsynchronisationsprotokolle den in Abschnitt 3 4 ausf hrlich besprochenen Ressourcenbeschr nkungen Sie m ssen diese bei ihren Konzepten zur Synchronisation und bei der Implementierung mit ber cksichtigen Au erdem wird eine m glichst kurze Zeitspanne zur Synchronization der Uhren aus einem nicht synchronisie
211. se als auch Threads Prozesse realisieren Ereignisse und existieren innerhalb derselben Umgebung Threads werden zwar eindeutig einem Prozess zugeordnet sie besitzen jedoch eine eigene Umgebung Im weiteren Verlauf dieser Arbeit wird daher von Threads gesprochen sofern die Quelle nicht expli zit den Prozessbegriff nutzt Task Als Task wird in der Welt der Sensornetzwerke ein Thread bezeichnet welcher keinen Umgebungs wechsel hervorruft und auf die Variablen des erzeugenden Threads zugreifen kann Er kann als se quentielles Programm angesehen werden das in der Umgebung des taskerzeugenden Threads l uft Weiterhin ist es wichtig zu wissen dass Tasks eine Run to completion Semantik besitzen Sie wer den bis zum Ende ununterbrechbar ausgef hrt RKJK03 Im Gegensatz zu Funktionsaufrufen wird bei der Erzeugung des Tasks der Kontrollfluss des Erzeugers weitergef hrt und der Task wird zu einem spateren Zeitpunkt vom Scheduler dem Prozessor zugewiesen Quelle und Senke Source and Sink Als Quellen werden diejeniegen Sensorknoten im Sensornetz werk bezeichnet die mit ihren Sensoren Umweltparameter erfassen Senken sind alle Sensorknoten im Netz welche Daten von anderen Sensorknoten entgegennehmen und persistent speichern oder an ein anderes Netzwerk weiterleiten Die Daten flie en somit immer von der Quelle zur Senke Ein Sensornetzwerk kann mehrere Quellen und Senken beinhalten Ankerknoten Anchor node Ankerknoten sind Sensorknoten mit
212. setzt werden In einem ersten Feld versuch wurde es 19 Tage am Vulkan Reventador in Ecuador ausgebracht und detektierte 229 in teressante Ereignisse Erdbeben Ersch tterungen und Eruptionen Das Sensornetzwerk besteht aus 16 Sensorknoten ausgestattet mit Seismometer und Mikrofon Die Basisstation ist mit einem Lang reichweitenfunkmodem verbunden welches die gesammelten seismischen und akustischen Daten an einen Laptop im nahegelegenen Observationszentrum schickt Ein GPS Empf nger ist an einen Sen sorknoten angeschlossen und dient der Zeitsynchronisat on als Referenzzeitgeber Die Sensorknoten werden von D Batterien mit Energie versorgt Aufgrund der Datenerfassungsrate von 100 Werten pro Sekunde betr gt die Lebensdauer jedoch nur rund eine Woche Auch k nnen so hohe Datenauf 3 3 Die verwendeten Sensorknoten kommen nicht ber die hier verwendete Funkschnittstelle versendet werden Sie werden zun chst in einem Ringpuffer gespeichert Ein in den Sensorknoten implementierter Ereignisdetektor informiert den Laptop ber signifikante Abweichungen vom Durchschnitt Melden dem Laptop mehrere Sen sorknoten ein Ereignis so fordert er von allen Sensorknoten die Daten des betreffenden Zeitraums an Patienten berwachung Die kontinuierliche berwachung der Vitalfunktionen von Patienten ist ein Schl sselprozess in Krankenh usern und findet heutzutage mit kabelgebundenen Sensoren statt die an ein Ger t neben dem Bett angeschlossen sind Nachtei
213. sornetzwerken 28 highestSegqNum msg gt seqNum 30 TEN oor ID my heartBeats 0 32 if numEntries gt NUMENTRIES_ LIMIT 34 co gerError msg EIME ERROR LIMTE clearRegressionTable 36 addEntryAndEstimateDrift msg 38 Listing 3 5 Die wesentlichen Funktionen von FTSP in Multi Hop Netzwerken angelehnt an MKSL04 Vergleich von FTSP mit RBS und TPSN In diesem Unterabschitt wird das FTSP mit den in den vorherigen Unterabschnitten 3 7 2 und 3 7 3 vorge stellten Synchronisationsprotokollen RBS und TPSN verglichen MKSLO04 Dieser Vergleich bietet sich an weil RBS und TPSN schon h ufig in der Praxis verwendet wurden es liegen somit auch Messdaten vor weil beide ebenfalls spezielle Synchronisationsprotokolle f r Sensornetzwerke sind und weil beim Entwurf vom FTSP Ideen dieser beiden Protokolle aufgegriffen wurden RBS nutzt nur Zeitstempel auf Seiten des Empf ngers und eliminiert dadurch die Fehlerquellen auf Seiten des Senders vollst ndig FTSP f gt die Zeitstempel in der MAC Schicht hinzu und ist damit nur unwe sentlich ungenauer TPSN ist in der Lage auch die Zeit zum Verbreiten zu entfernen In diesem Protokoll wird jedoch nicht die Zeit zum Senden kompensiert Durch die Zwei Wege Synchronisation muss einer der Knoten von dem Empfangsmodus in den Sendemodus wechseln was bei einigen Funkchips eine lage Zeit in Anspruch n mmt und somit Fehler verursacht Ein weiterer Nachteil der Zwei Wege Synchronisation
214. t gt Packet RadioAMPacket gt AMPacket Timer Timermillic CC2420ActiveMessagec Radio ActiveMessagec Abbildung 4 7 Das Komponentendiagramm der Basisstation dem Programmstart einen eigenen Timer zu starten Dieser sendet fortan die Synchronisationspakete an das Sensornetzwerk wie es in Unterabschnitt 3 7 4 beschrieben wurde L st Timerl aus so wird im Eventhandler die von TimeSyncC implementierte Schinttstelle GlobalTime genutzt um die aktuelle Zeit zu erfragen und auf Val dit t zu berpr fen S eht das FTSP den Sensorknoten als synchron an was nach einer initalen Setupphase immer der Fall ist weil der Sensorknoten die niedrigste Adresse besitzt so sendet es die Zeitinformationen an den PC Hierbei wird lediglich ein Zeitstempel bertragen vergleiche Listing 4 5 Die Komponente LedsC implementiert die Ansteuerung der LEDs Beim Weiterleiten eines Pakets wird der Zustand der ersten LED ge ndert muss ein Paket aufgrund eines Fehlers fallen gelassen werden ndert s ch der Zustand der zweiten LED typedef nx_struct timeMsg 3 AnS mes tano timeMsg_t Listing 4 5 Die Nutzdaten der Zeitpakete an den PC 4 4 Implementierung der Sensorknoten In diesem Unterabschnitt wird die Implementierung der Sensorknoten vorgestellt Das Komponentendiagramm der Anwendung zur Erfassung eines Temperaturprofils f r Wohn und B ror ume ist in Abbildung 4 8 zu sehen Die Komponente Sens
215. t Darauffolgend wird das Interessenverarbeitungssystem auf den neusten Stand gebracht und der Gradient berechnet Der Gradient ist n der derzeitgen Implementierung die Hop Entfernung zur Datensenke Bei der Berechnung des Gradienten wird also zu dem Gradienten einfach 1 addiert Danach wird der neue Gradient an das Modul NetworkP bergeben Hier wird zun chst die Gradiententabelle aufger umt und dann der Gradient aufgenommen Nachdem der Kommandoaufruf zur ckgekehrt ist ruft DirectedDiffusionP das Kommando sendPeriodicInterest der Schnittstelle Network auf und bergibt dabei die Daten des neuen Interesses Dies sind die Daten des alten Interesses mit dem neu berechneten Gradien ten NetworkP packt ein neues Interessenpaket reiht es in die fastQueue ein und startet den Sendetask Der Kommandoaufruf kehrt erneut zur ck und das neue Interesse wurde verarbeitet Jetzt startet der Sendetask und versendet ber die Active Message Schicht das Paket an alle benachbarten Sensorknoten Es vergeht eine bestimmte Zeit bis das Interesse bedient werden soll Dann startet der Programmfluss wie er im Ablaufdiagramm in Abbildung 4 13 zu sehen ist Der Start Stop Timer feuert und l st ein Ereig nis in DirectedDiffusionP aus Der isServed Eintrag des Interesses wird jetzt in der Interessentabelle auf 81 4 Entwurf und Implementierung des Sensornetzwerks DirectedDiffusionP SensorMoteC l l l event StartStopTimer fired l a l SensorikP event inter
216. ten Intervalle multipiziert mit dem servelnterval gr er oder gleich der Messaufl sung des Interesses so wird es bedient indem in der Anwendung ein Ereignis ausgel st wird Anschlie end kann die Anzahl der gewarteten Intervalle auf 1 gesetzt werden Andernfalls wird lediglich waitedServelntervals um 1 erh ht Dieser Vorgang wiederholt sich bis alle Eintr ge der Interessentabelle abgearbeitet wurden Es wird nun auch deutlich warum der Mechanismus f r neu eintreffende Interessen die Interessenbedie nung aktualisieren muss sobald ein neues Interesse in die Tabelle aufgenommen wird Dieser Vorgang ist in Flussdiagramm 4 3 b dargestellt Zun chst wird der gr te gemeinsame Teiler aller Messaufl sungen berechnet Wenn der nteressentimer nicht l uft ist derzeit noch kein Interesse im System vorhanden Das servelnterevall wird dann auf den Wert der Messaufl sung des neuen Interesses gesetzt und sowohl nter essentimer als auch Start Stop Timer werden gestartet Der Aktualisierungsvorgang ist beendet L uft der Interessentimer bereits so m ssen die Werte der waitedServelntervals angepasst werden Hierzu werden die gewarteten Intervalle mit dem alten servelnterevall multipliziert und anschlie end durch das neue serve Interevall dividiert Der Interessentimer wird auf das neue servelnterevall gesetzt und der Start Stop Timer wird einmalig ausgel st damit das neue Interesse in die Berechnung des nextShot Intervalls eingehen kann Bisher wur
217. ten ist Zun chst wurde ein periodisches Inter esse an den nicht direkt mit der Basisstation in Verbindung stehenden Sensorknoten gesendet Danach wurde der Sensorknoten welcher der beste Gradient dieses Sensorknotens war ent fernt Anschlie end wurde ein neuer Sensorknoten mit einer anderen Adresse an dessen Stelle gelegt Das Ergebnis war dass erst nach dem Versenden eines weiteren Interesses der neue Sensor knoten den alten verdr ngen konnte Das liegt dadran dass die Gradiententabelle lediglich bei neuen Interessen bereinigt wird solange das maximale Gradientenalter nicht erreicht ist Als Verbesserung k nnte man periodisch einen Timer feuern lassen der die Gradiententabelle aufr umt Um dies sicher erledigen zu k nnen m sste jedoch ein Handshake mit den Gradi enten in der Tabelle durchgef hrt werden Diese Option wurde zwar in Betracht gezogen aber letztendlich f r zu aufw ndig bei der gegebenen Restlaufzeit des Projekts angesehen Das ent worfene Sensornetzwerk ist damit nur bedingt vor Ausf llen gesch tzt begegnet dem jedoch indem es die Interessen vom Server n periodischen Abst nden immer wieder neu versendet Test des Sendeverhaltens von Datenpaketen Dieser Test sollte zeigen ob die slowQueue eine de finierte Anzahl an Datenpaketen ansammelt bevor sie gesendet werden Hierzu wurde die Anzahl der anzusammelnden Pakete auf 20 gesetzt und ein Interesse nach der Temperatur mit einer Messauf l sung von einer Sekunde an
218. ten wird n Tabelle 3 4 gegeben Energieverwaltung Die Energieverwaltung beinhaltet den Zugriff auf und die Kontrolle ber alle f r den Energieverbrauch wichtigen Komponenten des Sensorknotens Das Betriebssystem bietet hier zu Energieverwaltungsschnittstellen an Wichtige Komponenten sind insbesondere der Prozessor der Funkchip und die Stromversorgung wobei f r letztere im Falle einer Batterie lediglich eine berwa chung angeboten wird Jedes Betriebssystem hat seine eingene Vorgehensweise bei der Implemen tierung einer solchen Energieverwaltung Die Mechanismen versuchen mit verschiedenen Ans tzen bestm glich zu erkennen wann eine Kompnente ausgeschaltet werden kann Bei threadbasierten Betriebssystemen wird hierzu gerne der Scheduler benutzt Vergleiche zu diesem Themenbereich auch den Punkt Energieverwaltung im Abschnitt 3 4 21 3 Techniken in Sensornetzwerken Tabelle 3 4 Echtzeitf higkeit verschiedener Betriebssysteme RKJK03 Echtzeitf hig Nicht echtzeitf hig Nano RK TinyOS CORMOS SOS PEEROS Contiki DCOS EYES t kernel SenOS OSSTAR MagnetOS kOS T2 MANTIS OS Portabilitat Die Hardwareplattformen von Sensorknoten entwickeln sich noch recht rasch und in vielfal tige Richtungen Viele verschiedene sind bereits heute auf dem Markt erh ltlich Es ist bereits bei der Entwicklung von Betriebssystemen auf eine einfache Portierbarkeit zu achten M chte man sich heute f r ein Betriebssystem f r seinen Sensorknoten en
219. ten zum Routen nutzt ist sichergestellt dass die Daten immer auf dem besten Weg versendet werden aber nicht nur das Hinzu kommt eine gr ere Sicherheit gegen ber Ausf llen im Sensornetzwerk Periodische Interessen k nnen mitunter einen sehr langen Zeitraum m Sensornetzwerk bestehen F llt w hrend der Bedienung des Inter esses der bei seiner Verbreitung gefundene Pfad zur Senke aus so kann ein Pfad eines anderen wom glich j ngeren Interesses genutzt werden Der Aufbau eines Eintrages in der Gradiententabelle besteht wie in Listing 4 2 dargestellt aus der Adresse des benachbarten Sensorknotens dem zugeh rigen Gradienten und dem letzten Zeitpunkt an dem die Verbindung berpr ft wurde Nachdem die Interessen und die Gradiententabelle definiert wurden fehlt als letzte Datenstruktur f r Direc ted Diffusion die in Listing 4 3 angegebene Definition der Interessentabelle Ein Interessentabelleneintrag besteht immer aus der Art des Interesses der Messaufl sung und dem Zeitspanne in welchem es peri odisch bedient werden soll Die beiden brigen Spalten waitedServelntervals und isServed werden von dem Mechanismus zur Interessenbedienung ben tigt und im weiteren Verlauf erl utert Im Folgenden wird der Programmfluss von Directed Diffusion anhand von Flussdiagrammen erl utert Directed Diffusion wurde f r das Sensornetzwerk in zwei Teilen entworfen Zum einen gibt es den Mecha nismus der Interessen im Netzwerk verbreitet und sowohl di
220. ter f r die globalen Einstellungen Hier werden die Datenbankadresse die serielle Schnittstelle zum Sensornetz werk und die Messeinstellungen angegeben Die folgenden zwei Icons speichern und laden den aktuellen Geb udeplan Das sechste Icon wechselt zwischen dem Bearbeitungs und dem Ansichtsmodus Im Be arbeitungsmodus werden mit den letzten vier Kn pfen Sensoren hinzugef gt und entfernt und Ebenen hinzugef gt und umbenannt Zudem s nd die Sensorknotenicons verschiebbar Im Ansichtsmodus k n 93 5 Entwurf und Implementierung des PC Programms nen die Sensorknotenicons angeklickt werden woraufhin sich ein Fenster zur Betrachtung der Daten des Sensorknotens und zur Ansteuerung angeschlossener Aktoren ffnet Im Folgenden wird jetzt die Funktionsweise des Client Programms erkl rt In Abbildung 5 7 ist das Ak tivitatsdiagramm zur Verwaltung des Lageplans des Geb udes dargestellt Alle Abl ufe werden hierbei durch die Aktion des Benutzers gestartet und entspringen daher einem Signal Zudem muss f r die ersten vier Abl ufe der Bearbeitungsmodus aktiviert sein In der Implementierung sind die jeweiligen Kn pfe im Ansichtsmodus deaktiviert so dass die hier zu sehende berpr fung nie stattfinden muss und der Benutzer bei einem Klick auf einen aktivierten Knopf in jedem Fall die Aktion durchf hren kann M chte der Benutzer ein neues Stockwerk hinzuf gen so ffnet sich ein Fenster zur Auswahl der Bilddatei des Lageplans Nach erfolgte
221. tion versendet Die Nutzdaten des Pakets bestehen wie n Listing 4 4 zu sehen aus der Sensorknotenadresse dem Zeitstempel der Messung und je einem Wert f r jeden Messwert Da die Temperatur auch negative Werte annehmen kann ist dieser Wert als einziger mit einem Vorzeichen behaftet typedef nx_struct dataMsg 2 Ne ING te alo e 4 Na Mes Ep nx o ola ge 6 nx_intl6_t temperature A a we 8 PO e Rai MSEE Listing 4 4 Die Nutzdaten der Datenpakete Es wurde entschieden immer alle vier Werte zu bertragen egal wie viele Umweltgr en tats chlich er fasst wurden Diese Entscheidung beruht auf der Annahme dass bei einer durchgef hrten Messung in den meisten Fallen alle Daten erfasst werden sollen die mit der gegebenen Hardware erfassbar sind Wiir de man nur je einen Wert senden so miisste das Paket einen weiteren Wert mit tibertragen Dieser gabe an um welche Umweltgr e es sich handelt Eine solche Vorgehensweise stellt eine Verschwendung der Bandbreite da Zudem ist es bei den minimalen Paketgr enunterschieden g nstiger ein einziges Paket zu versenden anstatt vier nur etwas kleinere Es m sste sonst f r jedes Paket einzeln bei jedem Hop per CSMA der Zugriff auf das Funkmedium erfolgen Au erdem besitzt jedes Paket einen Header wodurch abermals Bandbreite verloren geht In den wenigen F llen n denen nicht alle Werte erfasst werden sollen setzt die Sensordatenerfassung einen speziellen Wert um die Nichterfassung
222. tiveMessageC und dreimal AMRecei verC ActiveMessageC und CC2420ActiveMessageC implementieren den energieeffizenten Netzwerksta pel fiir den Funk und bieten die Schnittstellen zum Starten des Funkchips zum Senden von Paketen zum Setzen des Schlafintervalls des LPL und zum Bearbeiten der Header der Pakete an Die drei Instanzen der Komponente AMReceiverC bieten die Schnittstelle zum Empfangen von Paketen aus der Active Massage Schicht an Jeder dieser Empf nger geh rt zu einem der in Unterabschnitt 4 2 1 eingef hrten Kan le So werden drei verschiedene Ereignisse ausgel st je nachdem ob ein Interessenpaket ein Informationspaket oder ein Datenpaket eingetroffen ist Sobald der Sensorknoten gebootet ist wird auch im Modul NetworkP das Ereignis Booted ausgel st Daraufhin wird der Netzwerkstapel gestartet und die Datenstrukturen initialisiert Interessenpakete werden jedoch erst angenommen wenn das Modul SensorMoteC die Synchronit t meldet Daten und Informati 18 4 4 Implementierung der Sensorknoten onspakete treffen noch nicht ein da dieser Sensorknoten noch keine Interessen gesendet und daher kein anderer ihn in seiner Gradiententabelle hat W rde er dennoch solche Pakete erhalten so w rde er sie in ei ne der Warteschlangen einreihen und versenden sobald er selber ein Interesse und damit einen Gradienten empf ngt Das Modul NetworkP bietet die Schnittstellen Network und Error an und implementiert daher dessen Kom mandos
223. triebssysteme bestehen aus der Anwendung und den notwendigen Betriebs systemkomponenten Sie formen ein Systemabbild fiir genau einen Sensorknoten Das bringt Nachteile mit sich wenn zu erwarten ist dass sich Anforderungen an die Anwendung h ufig ndern Es muss in einem solchn Fall das gesamte Systemabbild neu auf den Sensorknoten geschrieben werden 2 Bei modularen Betriebssystemen bestehen aus der Anwendung und Betriebssystemfunktionen aus einer Menge miteinander interagierender Module Diese k nnen zur Laufzeit geladen und entladen werden Werden Anderungen bei der Anwendung erwartet sollte eine modulare Ar chitektur gew hlt werden Sie vereinfacht die Quellcodewartung und modifikation Nachteil modularer Betriebssysteme ist der Overhead zum Finden zusammenh ngender Speicherberei che beim Modulladevorgang Hinzu kommt eine Adressumrechnung bei Modulen mit Verwei sen in andere Speicherbereiche 3 Eine virtuelle Maschine bietet der Anwendung eine Abstraktionsebene f r dynamische und statische Komponenten an Die Anwendung besteht aus Instruktionen f r diese virtuelle Ma schine und eine Rekonfiguration ist besonders einfach Das gesamte Sensornetzwerk wird als eine Entit t angesehen es gibt nur ein f r alle Sensorknoten m Netzwerk einheitliches Sys 19 3 Techniken in Sensornetzwerken temabbild Virtuelle Maschinen k nnen auf herk mmlichen Betriebssystemen basieren Mate baut auf TinyOS auf und ContikiVM auf Contiki auf
224. tscheiden so ist eine vorhandene Unterstiit zung des Betriebssystems daf r von enormem Vorteil Die in Wikipedia gepflegte Tabelle Wik10 gibt Auskunft ber die unterst tzten Knoten von Betriebssystemen f r Sensorknoten Simulationsunterst tzung Eine Simulationsunterst tzung ist genau dann gegeben wenn derselbe Quelltext das gleiche Verhalten in der realen Welt wie in der Simulationsumgebung zeigt Einige Betriebssysteme bieten eine Simulationsumgebung zum Testen der Anwendung vor dem Aufstellen an Diese sind namentlich TinyOS SOS MANTIS OS und Contiki Der Umfang der Simulations umgebung ist nicht bei allen Betriebssystemen gleich 3 5 2 TinyOS TinyOS ist ein leichtgewichtiges und speziell an kabellose Sensorknoten mit wenig Leistung angepass tes Betriebssystem LGO9 Seite 5 Es wurde anfangs von einer Gruppe Wissenschaftler der Universit t Berkley um David Culler zu Forschungszwecken entwickelt Mittlerweile hat es sich als eines der gro en Betriebssysteme f r Sensornetzwerke etabliert ist quelloffen steht unter der BSD Lizenz und liegt seit dem 06 04 2010 in der stabilen Version 2 1 1 vor In dieser Arbeit w rd jedoch noch die Version 2 x aus dem CVS vom 16 07 2009 verwendet Die Entwicklung von TinyOS wird heute von der TinyOS Alliance vorangetrieben der Privatpersonen Organisationen und Unternehmen aus Forschung und Industrie ange h ren Das Entwicklungsmodell st tzt sich auf die TinyOS Enhancement Proposals TEPs mit d
225. tvorgang verantwortlich 24 3 5 Betriebssysteme f r Sensorknoten Boot FI o booted void F me oftwarelnit Softwarelnit arein arein T ng m f Platforminit gt Init Softwarelnit Init O TinySchedulerC 1 TaskBasic 1 Scheduler ef postTask error_ E 2s P n Mm o init void t E runTask void D Init e runNextTask bool F e _ init error_t m e taskLoop void Gy Sched SchedulerBasicP FE Motelnit gt Init MoteClockinit gt MoteClog F n McuSleep gt McuSleep DS MotePlatforme 4 MoteClockc 4 D Sleep McuSleepc Abbildung 3 6 Die Komponente MainC von TinyOS Der Bootvorgang wird von dem Modul RealMainP durchgef hrt Sie initalisiert den Scheduler und die Hardware indem jeweils das Kommando init aufgerufen wird Die Komponente PlatformC implemen tiert die plattformabh ngige Hardwareiinitalisierung und die Komponente TinySchedulerC realisiert den Scheduler Diese besitzt die Module Sched und Sleep Sched implementiert den Scheduler und besitzt zwei Schnittstellen Die Schnittstelle Scheduler bietet Kommandos zum Initalisieren zum Ausf hren des n chs ten Tasks und f r d e Taskschleife an Erzeugt wird ein neuer Task mit der Schnittstelle TaskBas c Das Modul Sleep wird sp ter bei der Energieverwaltung erl utert Sobald der Bootvorgang abgeschlossen ist wir
226. tzer bereits zuvor Sensoren darauf positioniert so werden s e mitgeladen Anschlie end kann der Benutzer Sensoren auf dem Geb udegrundriss hinzuf gen verschieben und entfernen Die aktuelle Ansicht ist nach diesen Aktionen inklusive der Sensoren wieder speicherbar Klickt der Benutzer einen der Sensoren an werden hm die aufgezeichneten Daten in einem Zeit Wert Diagramm pr sentiert Ein weiterer Anwendungsfall st die Betrachtung von sowohl im PC Programm als auch im Sensornetzwerk aufgetretenen Fehlern 2 Anforderungsdefinition PC Programm Serielle Schittstelle angeben Datenbank angeben Einstellung vornehmen Datenbank initalisieren Messgr e angeben Messaufl sung angeben I aes A extend Sensorpositionen speichern DK l Sensorposition angeben include l Sensordaten anfordern Sensordaten betrachten extend include Sensordaten speichern Aus Sensordaten Diagramm erzeugen Benutzer Aufgetretene Fehler betrachten Abbildung 2 1 Das Anwendungsfalldiagramm ftir das PC Programm Sensornetzwerk TT Messgr e angeben I I l Messung sta include include Zielsensoren angeben Messung stoppen Sensoren kalibrieren Statusinformationen anfordern PC Programm Abbildung 2 2 Das Anwendungsfalldiagramm f r das Sensornetzwerk 2 2 Anforderungen Damit das PC Programm die oben beschriebenen Funktionen anbieten kann stellt es Anforderungen an das Senso
227. ufstellungsverteilung Die anderen ben tigen spezielle Hardware welche zuviel Energie verbraucht zu gro oder zu teuer ist In gro en Sensornetzwerken halten die Annahmen unter realistischen Bedingungen nicht und es kann nicht jeder Sensorknoten mit zus tzlicher Hardware ausgestattet werden Andererseits sind Positionsbestimmungsverfahren generell zu ungenau wenn nicht vereinfachende Annah men getroffen werden Die Herausforderung an die Sensornetzwerkforscher ist es Positionsbestimmungs verfahren zu entwickeln die hinreichend genau zu m glichst geringen Kosten in gro en Sensornetzwerken unter realistischen Bedingungen arbeiten SSSO7 In diesem Abschnitt werden zun chst die Anforderungen an ein Positionsbestimmungsverfahren betrach tet und ein Klassifikationsschema vorgestellt Darauffolgend werden Verfahren zur Distanz und Winkel bestimmung beschrieben Anschlie end werden in den Unterabschnitten 3 8 1 bis 3 8 3 ausgew hlte Po sitionsbestimmungsverfahren vorgestellt Dabei handelt es sich um ein allgemein bekanntes Positionsbe stimmungsverfahren GPS um ein einfaches Positionsbestimmungsverfahren Bounding Box und um ein komplexes aber daf r genaueres Positionsbestimmungsverfahren SpinLoc Eine wichtige Anforderung an ein Positionsbestimmungsverfahren ist der effiziente Umgang mit den Res sourcen vergleiche Abschnitt 3 4 Die Positionsbestimmung ist zwar wichtig aber in den meisten F llen nicht die eigentliche Aufgabe des
228. um in regelm igen Abst nden Daten von der Quelle zur Senke zu senden Es wird vornehmlich eingesetzt um eine Information im gesamten Netzwerk bekannt zu machen 3 6 2 Directed Diffusion Directed Diffusion wurde von Intanagonwiwat et al vorgeschlagen und geh rt zu der Klasse der flachen anforderungsbasierten Routingprotokolle IGE 03 Alle im Netz vorhandenen Messgr en werden von jeweils einem Attribut Wert Paar beschrieben Die Datensenke kann nun ein Interesse in Form einer Aufgabe an das Netzwerk melden Ein Interesse besteht normalerweise aus einem Attribut einem Zeitintervall das beschreibt in welchem Abstand die Daten quelle den Messwert des Attributs periodisch senden soll Hinzu kommt der Gradient des Senders und ein weiteres Zeitintervall welches beschreibt wie lange eine Datenquelle ihre Messung vornehmen soll Optional kann eine weitere beschreibende Komponente f r die Zielknoten hinzugef gt werden So kann entweder ber Gradientenentfernung r umliche Beschreibung der Sensorknoten oder Knotenadressberei che die Zielsensorknotenmenge eingeschr nkt werden Ein solches Interesse wird im Netzwerk verbreitet und Gradienten f r den Weg von Datenquelle zu Datensenke werden hierbei aufgebaut Im Folgenden wird beschrieben wie die Interessen im Netz verbreitet die Gradienten berechnet und die Daten zur Senke geschickt werden 38 3 6 Netzwerkprotokolle f r Sensornetzwerke Jeder Sensorknoten pflegt eine Interessentabe
229. ung von Sensorknoten Es ist h ufig sehr wichtig genau zu wissen wo sich die Sensorknoten befinden wie die im Folgenden genannten Gr nde verdeutlichen Bou09 Seite 109f Man muss den erfassten Sensordaten einen Ort zu ordnen k nnen um eine qualifizierte Aussage ber das Ausbringungsgebiet des Sensornetzes aus hnen ab leiten zu k nnen Kennt man die Position der einzelnen Knoten so kann man beim Transport der Daten zur 32 3 8 Positionsbestimmung von Sensorknoten Senke eine Korrelation zwischen den Daten benachbarter Sensorknoten ermitteln und das Datenaufkom men reduzieren Hinzu kommt die M glichkeit zur Evaluation der Abdeckung des Gebietes mit Sensoren sowie die Sensorendichte darin Des Weiteren ist bei einigen Anwendungen eine eindeutige Adressierung der Sensorknoten anhand ihrer Position sinnvoll Sensordaten k nnen damit gezielt f r einen Standort oder ein Gebiet angefordert werden und die Klasse der geographischen Routingprotokolle nutzt eine solche Benennung als Grundlage zum Routen der Datenpakete Das Problem der Positionsbestimmung wird von den Sensornetzwerkforschern derzeit noch n cht als gel st angesehen Es wurde zwar schon eine Vielzahl von Verfahren vorgeschlagen diese sind aber noch nicht an realistische Einsatzbedingungen angepasst Die einen Positionsbestimmungsverfahren machen vereinfach te Annahmen wie etwa eine Sichtlinie zwischen den Sensorknoten eine hohe Dichte an Ankerknoten oder Wissen ber die A
230. upt warten sondern auch eine Sleep Funktion aufrufen Warten alle Threads an sleep so wechselt der Kernel in den Power save Modus Der oben erw hnte Timer wird hierbei dazu genutzt die CPU wieder aufzuwecken BCD 05 Sto05 3 5 4 Contiki Contiki ist ein von Adam Dunkels et al entwickeltes leichtgewichtiges Betriebssystem das sie 2004 mit ihrem Fachaufsatz DGV04 aus dem alle in diesem Unterabschnitt zu findenden Informationen stammen vorstellten Contiki ist in C implementiert und wurde bereits auf mehrere Plattformen portiert unter anderem auch auf den MSP430 von Texas Instruments und auf die AVR Reihe von Atmel Gegen ber MANTIS OS und TinyOS besitzt Contiki das Alleinstellungsmerkmal dynamisch Programme und Serviceroutinen nachla den zu k nnen und dennoch den Ressourcenbeschr nkungen in Sensornetzen gerecht zu werden Dar ber hinaus kann Contiki w hrend der Laufzeit einzelne Programmteile ber das Netzwerk austauschen Dies f hrt zu einer sehr flexiblen Architektur ROM Kommunikations Geladenes Programm service Laufzeitumgebung HAA he Kommunikations Pr ogrammlader ne Kernel Ka Kernel Abbildung 3 10 Ein Speicherabblild eines laufenden Contiki OS nach DGV04 Wie in Abbildung 3 10 zu sehen ist besteht ein laufendes Contiki aus dem Kernel dem Programmlader 30 3 5 Betriebssysteme f r Sensorknoten der Laufzeitumgebung inklusive Bibliotheken u
231. utral gegen ber dem Paket format ist Somit ist das Hinzuf gen neuer Nachrichtentypen f r den Datenaustausch von der Quelle zur Basisstation ohne weiteres m glich Was noch aussteht st ein Test des Sensornetzwerks ber einen l ngeren Zeitraum Das System wurde maximal sechs Stunden am St ck betrieben f r Langzeittests blieb gegen Ende der Bearbeitungszeit kein Raum mehr Es soll jedoch auch erw hnt werden dass andere bereits im produktiven Einsatz befindliche Sensornetzwerke auch kurze Aufstellungszeiten aufweisen Das Sensornetzwerk zur Vulkan berwachung wurde insgesamt nur 19 Tage ausgebracht und selbst w hrend dieser Zeit kam es zu diversen Fehlern WALJ 06 Abschlie end soll erw hnt werden dass das entwickelte Sensornetzwerk nicht nur in Wohn und B ro r umen eingesetzt werden kann Alle Komponenten des Sensornetzwerks also Betriebssystem Routing 103 6 Evaluation protokoll Zeitsynchronisationsprotokoll Sensordatenerfassung und die Anwendung stellen keinerlei Be dingungen an den Aufstellungsort Es muss lediglich sichergestellt sein dass die Basisstation an ein Ger t mit Netzwerkzugang angeschlossen ist Dies kann auch ein kleines eingebettetes System mit einer Linux Distribution sein So kann als Plattform f r den Server auch ein Router oder NAS Ger t genutzt werden Aufgrund der Plattformunabhangigkeit k nnen Server und Client Programm sowohl unter Windows als auch unter GNU Linux eingesetzt werden 104
232. verschiedenen Ebenen m glich sein Auf Anwendungsebene wird das gesamte Sys temabbild ausgetauscht auf Modulebene k nnen einzelne Module oder Komponenten ausgetauscht werden Es gibt auch Quelltextverteilungprotokolle welche das Austauschen einzelner Instruktionen oder Variablen unterst tzen Als Beispiele f r Quelltextverteilungsprotokolle sollen hier lediglich die f r TinyOS unterst tzen Protokolle XNP MOAP und Deluge erw hnt werden Scheduling Anwendungsf lle f r Sensornetzwerke k nnen in die Kategorien periodisch aperiodisch sowie hierbei in zeitkritisch und nicht zeitkritisch unterteilt werden Periodische Anwendungen bestehen aus in definierten Zeitintervallen immer wiederkehrenden Auf gaben als Beispiel kann das in dieser Arbeit entwickelte System zur Temperaturmessung genannt werden Bei aperiodischen Anwendungen kann der Abarbeitungszeitpunkt nicht von der Anwendung vorhergesagt werden Ein Beispiel hierf r ist ein Feuer berwachungssystem Alle Betriebssysteme beherrschen sowohl periodische als auch aperiodische Aufgaben Sicherheitskritische Anwendungen f r Sensornetzwerke etwa Feuer berwachungssysteme setzen eine Echtzeitf higkeit vorraus Diese wird im Betriebssystem mithilfe des Schedulers realisiert Ein Scheduler st genau dann echtzeitf hig wenn er die Abarbeitung einer Aufgabe innerhalb einer vor definierten Zeitspanne erledigt Eine bersicht ber die Echtzeitf higkeiten von Betriebssystemen f r Sensorkno
233. weite aufl uft Um diesen Problemen zu begegen kann man zwei Warteschlangen f r den sequentiellen Zugriff auf den Funk einf hren Steht ein neues Paket zum Versenden an so kann man es unter gegenseitigem Ausschluss in die jeweilige Warteschlange einf gen Es wird dort vorgehalten bis es erfolgreich versendet wurde Es 70 4 2 Feinentwurf gibt zwei Warteschlangen um eine Priorisierung von Interessen und Informationspaketen vor den Daten paketen zu realisieren Die fastQueue nimmt Pakete auf die schnellstm glich versendet werden sollen Die slowQueue n mmt Datenpakete auf und sendet sie erst dann wenn eine bestimmte Anzahl an Paketen zusammengekommen ist Dies geschieht aus zweierlei Gr nden Zum einen kann man so vor dem Senden der Datenpakete eine Aggregation vornehmen Zum anderen erreicht man damit einen energieeffizienteren Zugriff auf das Medium Wie bereits in Unterabschnitt 3 5 2 erl utert wurde sendet der LPL ein Paket im mer wieder neu bis der Empf nger aufwacht und das Paket entgegennimmt Ist ein Paket beim Empf nger eingegangen so erwartet er weitere und bleibt f r eine gewisse Zeit lauschbereit Sendet man also viele Pakete n einem Schwung so muss lediglich das erste Paket mehrfach versendet werden Abschlie end wird betrachtet w e die Pakete geroutet werden Beim Eintreffen eines neuen Interessenpa ketes wird es wie oben beschrieben an den Mechanismus zur Interessenverarbeitung weitergeleitet Trifft hingege
234. yOS geboo tet hat wird tiber die Bootschnittstelle das Ereignis Booted ausgel st Die Anwendung startet draufhin einen periodischen Timer L st der Timer aus wird nachgeschaut ob sich der Sensorknoten mit dem Sen sornetzwerk synchronisiert hat Besitzt der Sensorknoten eine valide globale Uhrzeit so wird Directed DiffusionC mit dem Kommando NodelnSync freigegeben und der Sensorknoten ist bereit Der Timer wird daraufhin gestoppt Andernfalls beginnt der Vorgang von neuem und die LEDs werden als optisches Zeichen zum Blinken gebracht Die Ereignisse der Schnittstellen Sensorik und DirectedDiffusion werden Zu einem spateren Zeitpunkt beleuchtet DirectedDiffusionC 1 DirectedDiffusion E SendPeriodicData uint16_t uint16_t uint16_t uint16_t int32_t void SendBestGradient void Sendinteresttable void Clearinteresttable void NodelnSync void Timer2 Timerminic TimerM O Tmer2 rimeric a u OneShotinterest uint8_t uint8_t void w u a P Timer1 TimerMilliC A Periodicinterest uint8_t void N StartStopTimer gt Timer o IntgrestTimer gt Timer x DirectedDiffusion DirectedDiffusion gt Bl Bl BB El _ DiffusionNetwork DirectedDiffusionP O Ledsc GlobalTime Abbildung 4 9 Das Komponentendiagramm von Directed Diffusion Die Komponente DirectedDiffusionC besteht wie im Komponentendiagramm in Abbildung 4 9 zu se T1 4 Entwu
235. zeigen ob die einmaligen Interessen korrekt bedient werden Dazu wurde ein einmaliges Interesse zum Setzen der LEDs n verschiedenen Variationen an das Sensornetzwerk gesendet Es kam heraus dass der Status der LEDs im mer dem Wert entsprechend ge ndert wurde Die einmaligen Interessen und damit auch die Aktorenansteuerung funktionieren entsprechend dem Entwurf Test des Routingprotokolls Es wurden mehrere Tests durchgef hrt um das Routingprotokoll zu tes ten Ausgangsbasis war wieder ein Sensornetzwerk wie bei den Tests des Interessensystems Hierbei wurde jedoch darauf geachtet dass mindestens ein Sensorknoten keine direkte Verbindung zur Ba sisstation besa Test der Multi Hop Kommunikation Dieser Test sollte zeigen ob auch in Multi Hop Netzwerken die Daten korrekt tiber mehrere Sensorknoten ihren Weg zur Basisstation finden Dazu wurde ein Interesse nach der Sensorknotenadresse des besten Gradienten an alle Sensor knoten versendet Damit konnte zum einen gezeigt werden dass die Interessenantwort auch bei der Basisstation ankommt und zum anderen dass die Sensorknoten mindestens tiber einen anderen Sensorknoten die Daten an die Basisstation senden Es zeigte sich dass alle Antworten bei der Basisstation angekamen und einige von ihnen nicht die Basisstation als besten Gradienten eingetragen hatten Test der Robustheit gegenuber Ausfallen Dieser Test sollte zeigen wie robust das Sensor netzwerk gegen ber Ausf llen von Sensorkno
236. zu signalisieren der au er halb des Wertebereichs des jeweiligen Sensors liegt Der Eventhandler fiir die einmaligen Interessen schaut analog nach ob das vorliegende Interesse definiert ist Auch hier wird eine Informationsnachricht mit einer Fehlernummer bei einem negativen Ergebnis des Pr fvorgangs versendet Ist das Interesse jedoch vorhanden so wird ein Task gepostet der das Interesse implementiert Einmalige Interessen k nnen mitunter sehr unterschiedlich sein Sie werden innerhalb eines Tasks implementiert da nicht abzusehen ist wie lange die Ausf hrung dauert Sowohl die periodischen als auch die einmaligen Interessen k nnen sehr leicht erweitert werden Bei pe r odischen Interessen kann man innerhalb des Eventhandlers einfach einen neuen Fall bei der Fallunter scheidung der Interessenart hinzuf gen Bei einmaligen Interessen implementiert man einen neuen Task und l sst diesen analog innerhalb der Fallunterscheidung im Eventhandler der einmaligen Interessen star ten 73 4 Entwurf und Implementierung des Sensornetzwerks 4 2 3 Entwurf der Sensordatenerfassung AbschlieBend erfolgt der Entwurf der Sensordatenerfassung Sie muss in der Lage sein von der Anwen dung den Befehl zum Erfassen der Werte entgegenzunehmen dann die entsprechen Sensorwerte abzu fragen und diese anschlieBend mit dem Zeitstempel der Messung wieder an die Anwendung zu melden Hierbei ist zu beachten dass unter Umst nden bereits neue Werte angefragt w

Download Pdf Manuals

image

Related Search

Related Contents

manual de usuario  Untitled  CUSTOMER INFORMATION 2011-11-18  花粉センサ評価セット(PoE 対応筐体付き) 取扱説明書  User Guide Speaker phone GewaTel 200  mikapack 15 user man... - ADB Lighting Technologies  Ethernut 3.0 Rev-E Hardware User`s Manual  Sample Headline 1  Downloads - Wincor Nixdorf  OLYMPUS Studio 取扱説明書  

Copyright © All rights reserved.
Failed to retrieve file