Suche

» erweiterte Suche » Sitemap

Technische Wissenschaften


» Bild vergrößern
» weitere Bücher zum Thema


» Buch empfehlen
» Buch bewerten
Produktart: Buch
Verlag: Bachelor + Master Publishing
Erscheinungsdatum: 04.2016
AuflagenNr.: 1
Seiten: 84
Abb.: 24
Sprache: Deutsch
Einband: Paperback

Inhalt

Ein in Zukunft an Bedeutung stark zunehmender Bereich der Computernetze ist die automatisierte mobile Datenerfassung mittels Sensorknoten, welche batteriebetrieben und völlig autark in einem drahtlosen Sensornetz zu verschiedenen Zwecken eingesetzt werden können. Das Fraunhofer Institut für Integrierte Schaltungen arbeitet selbst an einer proprietären Implementierung solcher Sensorknoten und der dazugehörigen Software. Wie in den meisten Bereichen der Informatik steigt mit zunehmenden Möglichkeiten die Komplexität der Software auf den Geräten, was zwangsläufig dazu führt, dass in der Software verstärkt Fehler auftreten können. Im Rahmen dieser Diplomarbeit wurde ein Konzept und eine Implementierung eines Bootloaders entwickelt, welcher eine Aktualisierung der Software dieser Sensorknoten ermöglicht. Dabei wurde auf die Anforderung, größtmögliche Ausfallsicherheit beim Installationsvorgang eines Firmware-Images zu gewährleisten, eingegangen. Das Konzept sieht vor, dass verschiedene Sicherungsmechanismen einen unbenutzbaren Sensorknoten verhindern sollen und mehrere Firmware-Images auf dem Sensorknoten verwaltet werden können. Die prototypische Implementierung realisiert die Teile des Konzepts, welche ohne ohne Kenntnis des endgültigen Aktualisierungsmechanismus (in Bezug auf Teilaktualisierungsverfahren und Übertragungsmethodik) implementiert werden konnten.

Leseprobe

Textprobe: Kapitel 4: Konzeption: In diesem Kapitel wird das Konzept, welches die Basis der Bootloader-Implementierung bildet, vorgestellt. Zunächst werden jedoch die Grundlagen, auf welchen dieses Konzept aufbaut, beschrieben. Dazu gehören die Anforderungen, welche durch das Fraunhofer Institut vorgegeben wurden und die Fähigkeiten der Plattform, auf welcher dieser Bootloader implementiert werden soll. Im Anschluss wird die Funktionalität auf die am Aktualisierungsprozess beteiligten Komponenten aufgeteilt, um die Rolle des Bootloaders einzugrenzen. Der nachfolgenden Abschnitte gehen dann auf die einzelnen Punkte der Funktionalität des Bootloaders ein. 4.1 Anforderungen an den Bootloader: Der im Rahmen dieser Diplomarbeit entwickelte Bootloader sollte als wichtigste Anforderung höchstmögliche Sicherheit bei der Aktualisierung der Software aufweisen. Da ein Sensorknoten auch unzugänglich installiert sein könnte, ist es wichtig, dass bei der Aktualisierung der Firmware Mechanismen zur Verfügung stehen, um ein fehlerhaftes Update ohne PC zu korrigieren. Der Bootloader sollte außerdem mit einem zum Zeitpunkt der Bearbeitung der Diplomarbeit in Entwicklung befindlichen neuen Betriebssystem für die Sensorknoten-Plattform integriert werden. Dabei sollte er eine Zwischenschicht zur Abarbeitung der Hardware-Interrupts einfügen und dem Betriebssystem dynamische Interrupt Service Routinen (ISR) ermöglichen, was aufgrund der Speicheraufteilung (siehe Abschnitt 4.8) ohnehin notwendig wurde. Da ein Bootloader nicht die Kernanwendung auf einem Mikrocontroller darstellt und die Speicher Ressourcen in einem Embedded-System in der Regel begrenzt sind, sollte der Bootloader so wenig Code-Speicher wie möglich belegen und demzufolge die Funktionalität auf das wesentliche beschränkt werden. 4.2 Bootloader Fähigkeiten des MSP430: Der MSP430 bietet selbst keine Unterstützung für einen Bootloader. Dies macht es Notwendig vor allem die Behandlung von Interrupts und die Absicherung des Installationsprozesses als Software zu implementieren. Die Konzepte dieser beiden Notwendigkeiten werden in den nachfolgenden Abschnitten näher beschrieben. Der eingesetzte Mikrocontroller besitzt zwar einen integrierten Boostrap Loader (siehe Abschnitt 3.1.3), ein Einsatz dessen für den angestrebten Zweck ist jedoch nicht so ohne Weiteres möglich, da er nicht vom Mikrocontroller selbst angesprochen werden kann. Eine Möglichkeit den BSL dennoch einzusetzen wäre ihn durch einen weiteren Controller auf dem Sensorknoten anzusprechen und die Daten von dort aus an den BSL des MSP430 zu senden. Dieser Lösungsansatz wurde jedoch aufgrund der dadurch notwendigen Änderungen an der Hardware verworfen und nicht weiter verfolgt. Deshalb wurde die nachfolgend beschriebene reine Softwarelösung entwickelt. 4.3 Aufteilung der Funktionalität: Eine zentrale Frage bei der Entwicklung eines Gesamtkonzeptes die zuerst beantwortet werden muss ist, ob die Aktualisierungsfunktionalität völlig unabhängig von der Hauptanwendung auf dem Sensorknoten realisiert werden soll oder ob die Aktualisierung des Firmware-Images als Teil der Hauptanwendung abläuft. Das Problem welches es hier zu beachten gilt ist, dass an diejenigen Adressen im Flash-Speicher nicht geschrieben werden kann, welche gleichzeitig ausgeführt werden. Da nicht sichergestellt werden kann, dass bei einem Firmware-Update nicht auch der für die Aktualisierung verantwortliche Code selbst überschrieben werden muss, ist es notwendig, dass der Aktualisierungs-Code bei der Aktualisierung als Teil der Hauptanwendung im Arbeitsspeicher ausgeführt wird. Schlägt das Update jedoch zum Beispiel aufgrund eines ungewollten Resets (siehe Unterabschnitt 4.6.2) fehl und die Hauptanwendung kann nicht mehr fehlerfrei ausgeführt werden, so kann die Anforderung nach höchstmöglicher Sicherheit nicht erfüllt werden, da auch der Aktualisierungsteil zum Beispiel für die Installation einer Rettungs-Firmware verwendet werden könnte. Die im hier vorgestellten Konzept verwendete Lösung ist, einen Bootloader als eigenständige Anwendung zu verwenden, welcher die Hauptanwendung vollständig aktualisieren kann und verschiedene Sicherungsmechanismen (siehe Abschnitt 4.6) bietet. 4.4 Ablauf eines Firmware Updates: Ein Firmware-Image wird in der Regel auf einem üblichen Arbeits-PC für die jeweilige Zielplattform erstellt und vorbereitet. Bei einem normalen Update der Firmware über eine kabelgebundene Schnittstelle wird das Firmware-Image über einen integrierten Bootloader oder via JTAG (siehe Abschnitt 3.1.3) in den Anwendungsspeicher geschrieben. Die Daten werden dazu je nach verwendetem Dateiformat (siehe Abschnitt 2.4) in die entsprechenden Byte-Werte umgewandelt. Eine Überprüfung der Daten auf dem Chip findet in der Regel nach dem Schreibvorgang statt. Bei einem Firmware-Update über die Luftschnittstelle ist der Ablauf etwas anders. Im Falle eines Updates der Software auf der S1 Sensorknotenplattform würde eine Aktualisierung wie in Abbildung 4.1 dargestellt ablaufen. Zuerst müsste ein Firmware-Image in geeigneter Weise von einem Host-PC zu einem Knoten übertragen werden. Dabei gilt es zu beachten, dass dies in möglichst effizienter Weise geschieht, also im Idealfall mit so wenig Daten wie möglich. Sinnvoll ist es außerdem das aktualisierte Firmware-Image, beziehungsweise die Aktualisierungsdaten, an alle im Funknetz befindlichen Sensorknoten zu senden. Beim erfolgreichen Empfang eines Teils des Firmware-Images wird dieser in das auf dem Sensorknoten befindliche EEPROM gespeichert. Die Position, an welche die Daten geschrieben werden sollen, muss der empfangenden Anwendung jedoch vorher mitgeteilt werden. Dies muss in einem für den Zweck der Firmware-Image Übermittlung zu entwickelnden Übertragungsprotokoll vorgesehen werden. Wie die Organisation mehrerer Firmware-Images oder einzelner Image-Teile im externen Speicher geschehen kann wird in Unterabschnitt 4.9.1 betrachtet. Wurde ein Firmware-Image oder eine Teil- Aktualisierung komplett und fehlerfrei empfangen, so wird im EEPROM in einem für den Bootloader reservierten Statusbereich an der dafür vorgesehenen Adresse ein Flag gesetzt, welches dem Bootloader mitteilt, dass ein neues Firmware-Image zur Aktualisierung bereit liegt. Außerdem wird dort festgehalten, wo sich die für die Aktualisierung notwendigen Daten im EEPROM befinden. Abschließend muss die Aktualisierung nach einem Neustart des Sensorknoten vom Bootloader vorgenommen werden. Dazu werden die Aktualiserungsdaten gemäß der Konfiguration im Statusbereich des externen Speichers ausgelesen und in den Anwendungsspeicher geschrieben. Dabei sorgen verschiedene Sicherungsmechanismen dafür, dass ein Update mit minimalem Risiko durchgeführt wird und bei einem Fehlerfall verschiedene Strategien zur Rückführung des Knotens in einen definierten Zustand zur Verfügung stehen (siehe Abschnitt 4.6). Die in Abbildung 4.1 dargestellten Schritte sind im Einzelnen folgende: 1. Übertragen des Firmware-Images vom Host-PC zum Sensorknoten, beziehungsweise zum Sensornetz 2. Speichern des Firmware-Images im EEPROM auf dem Sensorknoten 3. Auslesen des Firmware-Images aus dem EEPROM nach einem Reset des Sensorknoten 4. Schreiben des Firmware-Images in den Anwendungsspeicher und Reset des Sensorknoten […]

weitere Bücher zum Thema

Bewerten und kommentieren

Bitte füllen Sie alle mit * gekennzeichenten Felder aus.