Bearbeiter | (nur für Mitarbeiter:innen einsehbar) |
Betreuer | Prof. Dr. Ulf Kulau |
Professor | Prof. Dr.-Ing. Lars Wolf |
Projekt | PotatoNet |
IBR Gruppe | CM (Prof. Wolf) |
Art | Masterarbeit |
Status | abgeschlossen |
Beginn | 2015-06-09 |
EinleitungDurch das Absenken der Spannung bei höheren Temperaturen kann die Energieeffizienz drahtloser Sensorknoten erhöht werden. Um zu evaluieren, wie viel Energie in verschiedenen, realen Anwendungen eingespart werden kann, soll das Oszilloskop Kernspannung und Stromverbrauch des INGA über einen Zeitraum hinweg messen. Jeder Knoten besteht - wie die nachfolgende Abbildung zeigt - neben dem undervolting-fähigen INGA aus einem WRTnode, der genutzt wird, um die Programmierung und Überwachnung des INGA, sowie die Kommunikation mit dem zentralen Rechner bereitzustellen. Die dritte Komponente ist das in dieser Arbeit weiterzuentwickelnde Oszilloskop. Da der Fokus dieser Arbeit auf der Verteilung der Messung liegt, soll nicht ausschließlich punktuell an einem Knoten gemessen werden. Vielmehr soll das PotatoScope auf möglichst vielen Knoten verfügbar sein, sodass eine verteilte Energiemessung auf dem gesamten Sensornetz erfolgen kann. Hierdurch können Media Access Control (MAC), Routing oder auch die erwähnten Undervolting Protokolle im realen Einsatz evaluiert werden. Neben der Optimierung des Oszilloskops liegt demnach ein Schwerpunkt auf der Verwaltung und Ansteuerung der Oszilloskope über den WRTnode mit Hilfe des Linux-Rechners. Somit soll es für den Nutzer (Forscher) möglichst einfach sein, verschiedene Messungen zu verwalten. Um die Messungen der Knoten im Netz besser zuordnen und verwalten zu können, soll es möglich sein, die Knoten in Gruppen einzuteilen. AufgabenstellungZur Messung von Strom- und Spannungswerten existiert bereits ein Prototyp des Oszilloskops, welcher in dieser Arbeit weiterentwickelt und auf geringe Kosten hin optimiert werden soll. Zunächst sind ein geeigneter Prozessor, sowie kostengünstige Bauteile - wie zum Beispiel Shunt-Widerstand und Referenzspannungsquelle - mit akzeptablen Temperaturkoeffizienten vorab zu evaluieren, um die geforderte maximale Abweichung von weniger als 5% über den gesamten Temperaturbereich zu erreichen (vgl. Kapitel 2). Da es möglich sein soll, das Oszilloskop auch außerhalb des vorgestellten Testbeds zu nutzen, ist eine USB-Schnittstelle bereitzustellen, mit der die Daten des Oszilloskops ausgelesen und die Betriebsmodi gesetzt werden können. Zum Zwischenspeichern der Daten soll eine SD-Karte dienen. Da bei der Messung große Datenmengen anfallen, sollen diese optional komprimiert werden. Durch das gleichzeitige Messen zweier Kanäle (Stromverbrauch und Kernspannung) und die 12-bit Darstellung jeder Messgröße, werden bei einer Messung mit beispielsweise 500kHz 1.5MByte/Kanal pro Sekunde und je Knoten generiert. Bei zehn Knoten sind dies 15MB pro Sekunde. Hinzu kommen weitere Meta-Informationen wie Header-Daten oder ein Zeitstempel. Daher soll evaluiert werden, inwiefern die Daten komprimiert werden können. Wo dies geschieht ist dem Studenten überlassen. Denkbar ist eine Komprimierung auf dem Oszilloskop selbst, dem WRTnode bevor es an den zentralen Rechner übertragen wird, oder aber auf dem zentralen Rechner, der über die Daten aller Knoten verfügt. Anschließend sollen mehrere Oszilloskope gefertigt und die vorhandene Software angepasst bzw. weiterentwickelt werden, sodass zwei Kanäle gleichzeitig gemessen und die Daten sowohl auf der SD-Karte gespeichert, als auch an einen zentralen Server übermittelt werden können. Um den Energieverbrauch Ereignissen und Codefragmenten besser zuordnen zu können, soll es eine Möglichkeit geben, vom INGA den Start/Stop einer Messung zu starten (Trigger), als auch Marker zu setzen, die einen Punkt in der Messung markieren. Die Software auf dem WRTnode ist so zu entwickeln, dass Signale zum Starten und Stoppen der Messung gesendet bzw. vom zentralen Rechner empfangen und weitergeleitet werden können. Folgende Modi sind auf dem Oszilloskop zu implementieren:
Da jeder Sensorknoten selbstständig misst und diese Daten zunächst nur lokal verfügbar sind, soll der zentrale Rechner eine wesentliche Rolle spielen. Zum Einen soll auf ihm eine zentrale Steuerungseinheit implementiert werden, mit der (automatisiert) verschiedene Arten von Messungen gestartet bzw. programmiert werden können. Folgende Aufgaben soll der zentrale Linux-Rechner übernehmen:
Um die Daten zentral zu sammeln ist eine Datenbank (zum Beispiel MySQL oder TinyDB) zu wählen. Neben den Daten von Messungen soll die Datenbank auch zur Verwaltung der automatischen Messungen dienen. Da jeder Knoten ein für sich abgeschlossenes System ist, ist zu prüfen, inwiefern eine zeitliche Synchronisation zwischen den Knoten bzw. den Messungen notwendig und umzusetzen ist. Als Ansteuerung soll in erster Linie ein Konsolen-Programm dienen, dass eine Verbindung zur Kommunikation und Steuerung zum zentralen Linux-Rechner (zum Beispiel über eine SSH-Verbindung) aufbaut. So können über die Konsole auf dem eigenen Computer direkt Daten heruntergeladen oder neue Messungen programmiert werden. Dabei ist es für den Nutzer transparent ob dies auf einer Gruppe oder einem einzelnen Knoten geschieht. Abschließend soll das Oszilloskop evaluiert werden. Zu prüfen ist zum Beispiel die maximale Samplerate beim Messen und die Transferrate zum zentralen Linux-Rechner. Danach sollen verschiedene Szenarien wie zum Beispiel verschiedene Routing-Protokolle oder das Undervolting beispielhaft gemessen und bewertet werden. Links |
Technische Universität Braunschweig
Universitätsplatz 2
38106 Braunschweig
Postfach: 38092 Braunschweig
Telefon: +49 (0) 531 391-0