Firmware Over-the-Air (FOTA) im Narrowband-IoT (Teil 1/2 - Grundlagen)

Christian Pereira

Christian Pereira – Chief Operating Officer

Im Internet der Dinge „IoT“ ist die Möglichkeit eines nachträglichen Software-Updates von IoT-Geräten zwingend vorzusehen. Dies, um Fehler nachträglich zu beheben, neue Funktionalitäten auszurollen und nicht zuletzt aus Gründen der Cybersicherheit. Dieser zweiteilige Artikel behandelt die Besonderheiten von Firmware Over-the-Air (FOTA) im Mobilfunkdienst Narrowband-IoT (NB-IoT).

Symbolisierung von FOTA: Blauer Globus mit einer Visualisierung der Konnektivität

Warum dieser Artikel?

FOTA ist eine regelmäßige, sinnvolle Anforderung bei IoT Systemen. Dieser Artikel soll ein gutes Verständnis für die bei FOTA beteiligten Systeme sowie für die Herausforderungen und Umsetzungsvarianten übermitteln.

Was ist Firmware?

Im Internet der Dinge kommen „Eingebettete Systeme“(auch englisch „embedded system“) in einer Vielzahl von Anwendungsbereichen zum Einsatz. Beispielsweise in Geräten der Medizintechnik, Waschmaschinen, Flugzeugen, Kraftfahrzeugen, Kühlschränken, Fernsehern, DVD-Playern, Set-Top-Boxen, Routern, Mobiltelefonen oder allgemein in Geräten der Unterhaltungselektronik. Als „eingebettetes System“ werden dabei elektronische Rechner oder auch Computer bezeichnet, die in einen technischen Kontext eingebunden (eingebettet) sind. Hierbei übernimmt der Rechner entweder Überwachungs-, Steuerungs- oder Regelfunktionen, oder ist für eine Form der Daten- bzw. Signalverarbeitung zuständig. Dies ist beispielsweise beim Ver- und Entschlüsseln, Codieren bzw. Decodieren oder Filtern der Fall. In der Praxis findet man die Vernetzung einer Vielzahl von ansonsten autonomen, eingebetteten Systemen beispielsweise in Fahrzeugen oder Flugzeugen.

Oft werden eingebettete Systeme für spezielle Aufgaben angepasst. Hierbei wird in der Regel eine optimierte, gemischte Hardware-Software-Implementierung gewählt. Dabei wird die große Flexibilität einer Software mit der Leistungsfähigkeit der Hardware kombiniert. Die Software dient dabei sowohl zur Steuerung des Systems selbst als auch zur Interaktion des Systems mit der Außenwelt über definierte Schnittstellen oder Protokolle (z. B. Modbus, CAN-Bus, ZigBee für drahtlose Kommunikation oder IP über Ethernet).

Da die einmal ausgewählte Hardware, insbesondere im Feld, nachträglich nicht ohne Weiteres verändert werden kann, kommt der Embedded Software, auch Firmware genannt, eine besondere Bedeutung zu. Die für das Gerät benötigte Firmware wird in der Regel im Produktionsprozess über hierfür vorgesehene Schnittstellen auf das Gerät gebracht (Fachbegriff „geflasht“). Hierfür kommen sogenannte „Nagelbettadapter“ zum Einsatz, mit denen auch die Endprüfungen am Band unterstützt und durchgeführt werden. Damit können IoT Geräte im Fertigungsprozess bezüglich der Funktion des Gesamtsystems aus Hard- und Software getestet werden.

Wichtig ist, dass Weiterentwicklung und Pflege der Firmware im Normalfall auch nach Abschluss der Produktentwicklung stattfinden. Dies, um nachträglich festgestellte Fehler zu beheben, neue oder veränderte Funktionen des Gerätes zu ermöglichen oder auch neu entdeckte Sicherheitslücken –sogenannte Zero Day Exploits – zu beheben. Es kommt also in der Regel zu einer Versionierung der Firmware, die auf neu hergestellte und auch bereits im Einsatz befindliche Hardware ausgerollt, also installiert, werden muss.

Die Installation der neuen Firmware ist bei neu hergestellten Geräten keine Herausforderung, denn bei diesen Geräten wird die neueste Version der Firmware einfach im Produktionsprozess aufgespielt. Zu den Geräten im Feld gibt es aber keinen physischen Zugang mehr und genau hier kommt Firmware Over-the-Air (FOTA) für drahtlos vernetzte Geräte ins Spiel.

Was ist FOTA?

Firmware Over-the-Air (FOTA) bezeichnet das Aufspielen der Systemsoftware Firmware auf ein Endgerät. Endgeräte, die diese Funktionalität unterstützen, werden „FOTA-kompatibel“ genannt. Hierbei wird eine neue Version der Firmware zentral bereitgestellt und über eine Funkverbindung auf die entsprechenden Geräte übertragen. Die neue Firmware wird so auf dem Gerät abgelegt, dass sie nach einem Neustart („Reboot“) der Hardware auf dem Gerät läuft.

Um FOTA nutzen zu können, muss also nicht nur die Übertragung fehlerfrei und vollständig funktionieren, sondern der Boot-Prozess muss vom Endgerät und der bereits aufgespielten Firmware unterstützt werden. Die Systeme müssen in der Lage sein, den Empfang der neuen Firmware und die anschließende Installation zu gewährleisten. Eine Unterstützung seitens des Mobilfunknetzbetreibers ist für diesen geräteseitigen Prozess nicht notwendig.

Für die Over-the-Air-Übertragung einer neuen Firmware wurden bereits verschiedene Standards entwickelt und vereinbart, darunter auch OMA-DM von der Open Mobile Alliance (OMA).

Nach dem Aufruf einer zum Beispiel „Updatedienst“ genannten Funktion wird die neue Firmware über die Funkschnittstelle übertragen und anschließend installiert. Dabei kann es notwendig sein, das Endgerät neu zu starten oder die SIM-Karte neu anzumelden.

Welche Firmwarekomponenten gibt es bei NB-IoT Modems?

Auf dem NB-IoT Modem befindet sich Software für unterschiedliche Aufgaben:

  • Erstens die Modem-Firmware, welche die grundsätzliche Funktion des Modems ermöglicht. Hier vor allem die Protokolle zur Kommunikation über das Mobilfunknetz und basale Funktionen wie Verwaltung des aus Prozessor, Funkmodem und Speicher bestehenden Gesamtsystems.
  • Zweitens - in der Regel - ein Betriebssystem, welches die Nutzung von Funktionen unterstützt und vereinfacht.
  • Und drittens die Applikations- oder auch Anwendungssoftware, mit welcher die spezifischen Gerätefunktionen programmiert und hergestellt

Wenn über FOTA gesprochen wird, ist in den meisten Fällen implizit das Übertragen der Anwendungsfirmware gemeint. Die Anwendungsfirmware umfasst den spezifischen Geschäfts-Programmcode des Gerätes, das Edge SDK und andere Komponenten von Drittanbietern. Im Falle des von uns häufig genutzten Nordic NB-IoT Modems sind dies zum Beispiel NCS und Zephyr.

Die Modem-Firmware ist nicht Teil der Applikation-Firmware und meistens nicht FOTA-kompatibel. Ein Update der Modem-Firmware muss nach festen Anweisungen der Hersteller oft anders behandelt werden. Für das von grandcentrix verwendete Modem von Nordic gibt es hierfür die Anleitung “nRF9160Modem Updates”.

Welche Herausforderungen gibt es bei FOTA Updates im NB-IoT?

Wie an anderer Stelle beschrieben, stehen den vielen Vorteilen von NB-IoT (globale Verfügbarkeit, hohe Gebäudedurchdringung, energiearmer Betrieb) die Lasten einer schmalbandigen Funkverbindung, welche nur eine geringe Übertragungsgeschwindigkeit gestattet, gegenüber. Insbesondere, da die zur Verfügung stehende Bandbreite in einer Funkzelle von allen NB-IoT-Teilnehmern in der Zelle geteilt wird. Dies hat zur Folge, dass bei vielen Geräten in einer Zelle nicht immer die volle, theoretische Bandbreite zur Verfügung steht. Besonders herausfordernd ist allerdings, dass NB-IoT Geräte oft energiesparend eingesetzt werden. Befinden sich die Geräte in den NB-IoT Energiesparmodi wie PSM oder eDRX, so sind diese Geräte nicht jederzeit erreichbar. In diesen Modi sind die Geräte „schlafend“ und können nicht einfach netzseitig angesprochen werden. In diesen Fällen muss überwacht werden, wann die Geräte aufwachen, denn nur dann gibt es entsprechende Zeitfenster, in denen die Geräte angesprochen werden können.

Dieser Umstand erfordert eine entsprechende Geräteverwaltung, welche die Notwendigkeit von Firmwareupdates für Geräte feststellt, deren Status bezüglich der Erreichbarkeit überwacht, dann den FOTA-Prozess startet und den erfolgreichen Abschluss sicherstellt.

In diesem Artikel widmeten wir uns den beteiligten Systemen und auch den Herausforderungen von FOTA bei NB-IoT prinzipiell. Im zweiten Teil des Artikels gehen wir darauf ein, was in der Praxis bei FOTA zu beachten ist und welche Unterstützung grandcentrix für FOTA im NB-IoT bietet.