Diplomarbeit ? Konzeption und Evaluierung eines ... - CES
Diplomarbeit ? Konzeption und Evaluierung eines ... - CES
Diplomarbeit ? Konzeption und Evaluierung eines ... - CES
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Hardwareabstraktion<br />
4.1. Softwarearchitektur<br />
Damit sich der Entwurf der auf dem Sensorknoten laufenden Anwendung quasi vollständig<br />
auf die Programmlogik konzentrieren kann, wird von der Firmware eine große<br />
Menge an Funktionen angeboten, um einfach auf die Hardware des Knotens zugreifen<br />
zu können. Der Zugriff auf die Hardware erfolgt hierbei über normale Funktionsaufrufe.<br />
Um beispielsweise die Spannung der Stromversorgung (<strong>und</strong> somit dem Ladezustand<br />
der Akkus) abzufragen, genügt es, die entsprechende Funktion aufzurufen.<br />
Selbstverständlich kann die jeweilige Anwendung auch direkt auf die Hardware zugreifen,<br />
sofern dies nötig ist.<br />
” Callback“ Mechanismus<br />
Damit die Anwendung nicht ständig aktiv nachfragen muss, ob neue zu verarbeitende<br />
Ereignisse vorliegen, bietet es die Firmware an, für bestimmte Ereignisse eigene Funktionen<br />
2 anzumelden, welche dann aufgerufen werden, wenn das Ereignis auftritt. Da<br />
die Ereignisse überwiegend von der Hardware ausgelöst werden (<strong>und</strong> zwar auch dann,<br />
wenn die CPU in einem Stromsparzustand ist), trägt diese Vorgehensweise auch zum<br />
Energiesparen bei.<br />
Die Firmware verwaltet hierzu eine Liste mit Funktionspointern. Wenn ein Ereignis<br />
auftritt, welches einen ” Callback“ auslösen kann, wird statt des direkten Sprungs auf<br />
den Funktionspointer eine Wrapper-Funktion aufgerufen. Diese überprüft dann, ob das<br />
Sprungziel überhaupt existiert <strong>und</strong> eine gültige ” Callback-Funktion“ ist <strong>und</strong> führt erst<br />
dann den Sprung aus. Über bestimmte Funktionen kann die Anwendung ihre eigenen<br />
Funktionen in diese Liste eintragen lassen. Es ist somit nicht nötig, alle möglichen ” Callbacks“<br />
in der Anwendung zu implementieren. Es müssen nur die von der Anwendung<br />
benötigten Funktionen implementiert <strong>und</strong> registriert werden.<br />
RF Komponente<br />
Da die Ansteuerung des Funkchips von jeder Anwendung benötigt wird (<strong>und</strong> auch von<br />
der Firmware selbst zur Durchführung des kabellosen Softwareupdates), wurde eine<br />
komplette Softwarekomponente zur Konfiguration <strong>und</strong> Verwendung des Funkchips in<br />
der Firmware implementiert.<br />
Die API 3 der Komponente erlaubt es, Pakete mit einer Länge von bis zu 64kByte zu<br />
senden <strong>und</strong> zu empfangen. Ebenfalls unterstützt wird der ” Wake-on-Radio“ Mechanismus<br />
(siehe 3.3.1 <strong>und</strong> 4.3.1). Über die bereits vorgestellte Callback-Schnittstelle kann die<br />
2 Die aufgerufenen Funktionen werden ” Callback-Funktionen“ genannt.<br />
3 API steht für engl. application programming interface, deutsch: ” Schnittstelle zur Anwendungsprogrammierung“.<br />
Im weiteren Sinne wird die Schnittstelle jeder Bibliothek (Library) als API<br />
bezeichnet.<br />
33