OTA-Updates mit Silicon Labs SoCs und MCUs So bringt man den «Gecko» sicher zum Laufen

Von Andreas Leu Lesedauer: 4 min

Anbieter zum Thema

Regelmässige Updates von Firmware und Programmen erhöhen die Funktionalität und Sicherheit bei Geräten. Eine Aktualisierung vor Ort ist dabei zeitaufwändig und teuer.Ein guter Grund, neue Firmware oder Programme sicher und zuverlässig «über die Luft» auf die entwickelte Hardware aufzuspielen. Wie Entwickler eine Over-the-Air (OTA) Updatemöglichkeit in ihrer Anwendung umsetzen, zeigen wir hier am Beispiel von Silicon Labs´ Wireless Gecko Familie.

(Bild: Glyn)

Eine stromsparende Lösung für eine OTA-Übertragung zu batteriebetriebenen Geräten bietet der Hersteller Silicon Labs mit seiner Wireless Gecko 2 Serie. Distributor Glyn erläutert in einem 47-seitigen Whitepaper, wie ein sicheres «Over-the-Air» (OTA) «Device-Firmware-Upgrade» (DFU) von Bluetooth-Anwendungen mit signierten und verschlüsselten Upgrade-Dateien als Mikrocontroller (MCU) oder System-on-Chip (SoC) durchgeführt wird.

Was bedeutet OTA DFU überhaupt?

Over-The-Air Device Firmware Upgrade (OTA DFU) bedeutet, dass die Gerätefirmware über eine Bluetooth-Verbindung aktualisiert werden kann. Um ein Bluetooth OTA-Upgrade zu ermöglichen, muss das Zielgerät mit einer geeigneten Gecko-Bootloader-Konfiguration und zusätzlich mit einer Bluetooth-Anwendung programmiert werden, die OTA unterstützt.

Eine mit Silicon Labs Bluetooth SDK ab Version 2.7 entwickelte Bluetooth-Anwendung besteht aus zwei Teilen.

  • Der Apploader (bereitgestellt als vorkompilierter Binärcode), als Apploader bezeichnet.
  • Der Bluetooth-Stack (als vorkompilierte Bibliothek) + Benutzeranwendung, auch als Anwendung bezeichnet.

Die OTA-Funktionalität ist in den Apploader-Code integriert. Wenn das Gerät im DFU-Modus neu gestartet wird, wird der Apploader anstelle der Benutzeranwendung gestartet. Dadurch ist es möglich, OTA-Upgrades ohne jegliche Beteiligung der Benutzeranwendung durchzuführen.

Die einzige Anforderung an die Benutzeranwendung ist die Fähigkeit, einen Neustart in den DFU-Modus auszulösen. Der Neustart in den DFU-Modus kann auf verschiedene Weise ausgelöst werden – als teilweise OTA-Upgrade oder komplettes OTA Upgrade. Es ist Sache des Anwendungsentwicklers zu entscheiden, welche am besten geeignet ist. Die meisten der im Bluetooth SDK enthaltenen Beispielanwendungen haben bereits OTA-Unterstützung in den Code integriert (unter Verwendung der OTA DFU-Softwarekomponente). In diesen Beispielen wird der DFU-Modus durch den Silicon Labs OTA-Dienst ausgelöst, der als Teil der GATT-Datenbank der Anwendung enthalten ist (von der OTA DFU-Softwarekomponente bereitgestellt).

Auf welche Weise werden die Secure Keys generiert?

Silicon Labs setzt bei der Implementierung des Sicherheitskonzepts auf die asymmetrische Schlüsselkryptographie. Die Kryptographie mit asymmetrischem Schlüssel verwendet zwei Schlüssel: einen privaten Schlüssel zum Erstellen einer digitalen Signatur und einen öffentlichen Schlüssel zum Verifizieren der Signatur. Private Schlüssel werden geheim gehalten und nur einmal zum Signieren des Firmware-Upgrade-Images verwendet. Dies geschieht ausserhalb der Gecko Serie 2 MCU. Öffentliche Schlüssel werden in die MCU gebrannt, damit hochgeladene Images während des Upgrades und optional bei jedem Neustart überprüft werden können. Der Hersteller setzt bei den neuen Produkten der Serie 2 auf ein «doppeltes Schlüsselpaar».

Das bedeutet es gibt ZWEI öffentliche und ZWEI private Schlüssel. Das Silicon Labs Keys Schlüsselpaar wird vom Hersteller während der Produktion festgelegt. Es besteht aus einem privaten Schlüssel, der bei Silicon Labs sicher hinterlegt ist, und aus einem öffentlichen Schlüssel, der bei der Produktion in den OTP-Speicherbereich der MCU geschrieben wird. Mit diesem Schlüsselpaar wird zum Beispiel der «First Stage Bootloader» signiert. Auf diese Weise wird sichergestellt, dass sich nur ein Original First Stage Bootloader auf der MCU befindet oder upgedatet werden kann. Das Schlüsselpaar «Developer Keys» wird vom Entwickler erzeugt, um den kundenspezifischen «Second Stage Bootloader», den «Application Loader» und den «Application Code» zu signieren.

Wie werden Bootloader erstellt?

Der Gecko Bootloader ist in der Gecko SDK Suite enthalten. Eine Reihe von vordefinierten Konfigurationen ist verfügbar, um Entwickler bei der einfachen Erstellung neuer Bootloader-Projekte für verschiedene Zwecke zu unterstützen. Für verschiedene Geräte werden unterschiedliche Bootloader-Konfigurationen empfohlen:

  • Für 256 kB Geräte verwendet man die „Bluetooth in-place OTA DFU Bootloader“ Konfiguration.
  • Für 512 kB-Geräte verwendet man den «Internal Storage Bootloader» (Single Image auf einem Device mit bis zu 512 kB Flash).
  • Für 1024 kB-Geräte verwendet man den «Internal Storage Bootloader» (Single Image auf einem Device mit bis zu 1 MB Flash).

Der genaue Ablauf und die Programmierschritte sind detailliert im Whitepaper ausgeführt.

Wie überträgt man die Programme via Bluetooth 5.x und OTA-Prozess?

Um ein Silicon Labs Gecko Serie 2 Derivat OTA DFU von der Basisanwendung auf die Upgrade-Anwendung zu aktualisieren, wird ein zusätzliches Gerät benötigt. Das kann ein Bluetooth fähiger Computer oder auch ein Smartphone sein. Im Whitepaper wird gezeigt, wie das Firmwareupgrade mit dem Smartphone und die LABS EFR Connect App realisiert.

Jetzt Newsletter abonnieren

Verpassen Sie nicht unsere besten Inhalte

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Zusammengefasst als gratis Download

In seine 47-seitigen Whitepaper hat Glyn alle Schritte für einen Einstieg in die Secure Upgrade OTA DFU Welt zusammengefasst. So einfach wie möglich, aber so komplex wie nötig. Leser der Markt & Technik steht dieses «SUPPORT-Paper» als Down-Load gratis zur Verfügung: www.glyn.de/News-Events/Whitepaper

(ID:49046791)