Bei Sensornetzen und ihren Anwendungen handelt es sich um ein aktives Forschungsgebiet, das von zahlreichen Forschungsgruppen mit unterschiedlichsten Anwendungsgebieten weiterentwickelt wird. Da die Anwendungen der Sensornetze immer komplexer werden und die erwartete Lebenszeit der Sensornetze weiter steigt, werden Verfahren benötigt, um Fehler der Anwendung über die Funkschnittstelle zu korrigieren bzw. die Anwendung an veränderte Anforderungen anzupassen. Diese Ansätze zur Aktualisierung des Programmcodes müssen möglichst wenig Energie für die Durchführung des Programmupdates benötigen, um die Lebenszeit des Sensornetzes nicht unnötig zu verkürzen.
In dieser Arbeit wird FeuDel (FlexCup Deluge) vorgestellt, das FlexCup und Deluge zu einer neuen funktionalen Einheit verbindet, um Aktualisierungen des Programmcodes mit einem geringen Energieverbrauch zu ermöglichen. Dabei stellt FlexCup ein Verfahren dar, um eine Anwendung in mehrere Komponenten aufzuteilen und auf den Knoten zu einer Gesamtanwendung zu verbinden. Dagegen stellt Deluge ein effizientes und etabliertes Verfahren zur Verteilung und Aktualisierung des kompletten Programmcodes einer Anwendung dar.
Durch die Verbindung von FlexCup und Deluge ist in dieser Arbeit FeuDel entwickelt worden, dass in vielen Fällen einen um den Faktor 2-5 geringeren Energieverbrauch als Deluge aufweist.
Das vorgestellte Gesamtkonzept besteht aus zwei aus FlexCup stammenden Anwendungen, dem FlexCup-Analyzer und dem FlexCup-Linker, sowie dem Codeverteilungsalgorithmus auf den Knoten, der ebenfalls den Namen FeuDel trägt, einer PC-Seite FeuDelPC, über die das Versenden der Updates gesteuert wird, und einem Bootloader.
Eine geringfügig veränderte Version des FlexCup-Analyzers analysiert die Komponenten der Anwendung und generiert die Eingabedatei für FeuDelPC. Aus in dieser Eingabedatei enthaltenen Parametern und gewissen aus einem Linker-Skript abgeleiteten Regeln berechnet FeuDelPC die Platzierung der Komponenten auf den Sensorknoten und injiziert die für das Update nötigen Daten in das Sensornetz. Diese Daten werden dann durch FeuDel im Sensornetz verteilt und für die spätere Bearbeitung durch den FlexCup-Linker im externen Flash abgelegt. Sobald die empfangenen Daten zur Integration bereit sind, ruft FeuDel einen ebenfalls auf den Knoten installierten Bootloader auf. Dieser sorgt für die Ausführung einer angepassten Version des FlexCup-Linkers, die die neuen Daten in die bereits auf den Knoten vorhandenen Daten integriert und den ausführbaren Programmcode der Zielanwendung erstellt. Zu guter Letzt wird der so erstellte Programmcode über im Bootloader untergebrachte Funktionen in den Programmspeicher des Sensorknotens kopiert und ausgeführt.
Am Schluss dieser Ausarbeitung werden die Ergebnisse dieser Arbeit zusammengefasst und ein Ausblick auf zukünftige Erweiterungen und Optimierungen des Gesamtsystems gegeben.
|