Implementierung von LoRa Firmware Over the Air (FOTA) mit minimalem Stromverbrauch

Von Bill Giovino

Zur Verfügung gestellt von Nordamerikanische Fachredakteure von Digi-Key

Im Oktober 2018 hat die LoRa Alliance Spezifikationen für die Standardisierung der FOTA-Aktualisierung von IoT-Endpunkten veröffentlicht. Dies sind zwar gute Nachrichten für LoRa-Netzwerke, stellt aber für Entwickler von LoRa-Endpunkten mit niedrigem Energieverbrauch im IoT, die Flash-Mikrocontroller einsetzen, eine Herausforderung dar.

Verglichen mit Lesevorgängen erhöhen Schreibvorgange auf den Flash-Speicher von Mikrocontrollern den Stromverbrauch des Mikrocontrollers zwar nur vorübergehend, aber trotzdem drastisch. Zum Umgang mit dieser erhöhten Leistungsaufnahme ist auch ein größerer Spannungsregler erforderlich.

All dies ist nicht wünschenswert, und so wird in diesem Artikel beschrieben, wie ein Mikrocontroller mit FRAM in der Lage ist, die Firmware mit geringem Energieverbrauch zu speichern. Dies stellt zusammen mit einem der neuen LoRa-Transceiver eine stromsparende FOTA-Lösung im Vergleich zu dem herkömmlichen Ansatz mit einem Flash-Mikrocontroller dar.

Was ist LoRa?

Eines der Ziele des Internet der Dinge (Internet of Things, IoT) ist es, Daten drahtlos mit möglichst geringem Stromverbrauch zu übertragen. Entwickler von batteriebetriebenen Sensoranwendungen sind besonders daran interessiert, Sensordaten mit niedriger Geschwindigkeit über viele Kilometer drahtlos zu übertragen und dabei den Stromverbrauch zu minimieren. Die vorhandenen Lösungen Bluetooth und Zigbee sind nur für kurze Entfernungen gedacht und die Leistungsaufnahme von Mobilfunk ist relativ hoch. LoRa ist zu einer beliebten Lösung dieses Problems geworden.

LoRa ist eine Abkürzung für „Long Range“ (große Reichweite). Drahtlose LoRa-Netzwerke wurden für die Übertragung von Nicht-Echtzeit-Datenmengen mit geringer Geschwindigkeit über große Distanzen mit geringer Leistungsaufnahme entwickelt. Die Datenübertragungsrate liegt zwischen 0,3 Kbits/s und 5.5 Kbits/s und eignet sich damit für periodische Übertragung von Sensordaten. Die LoRa-Spezifikationen beschreiben die Modulation und die elektrischen Kennwerte des Netzwerks, während LoRaWAN (Wide Area Network) die Protokolle und das Datenformat eines LoRa-Netzwerks beschreibt.

LoRa moduliert ähnlich wie UKW ein Signal durch Änderung der Frequenz. Während ein richtig moduliertes UKW-Signal ständig die Frequenz ändert, ändert sich die Frequenz eines LoRa-modulierten Signals im Laufe der Zeit nur langsam. Dieses graduelle Anwachsen oder Absinken der Frequenz wird als „Chirp“ (Zirpen), und die Methode wird als Chirp-Modulation bezeichnet. Das Maß der Frequenzänderung im Laufe der Zeit wird als „Chirpiness“ bezeichnet.

LoRaWAN-Netzwerke sind immer nach einer Sterntopologie angelegt, und das Signal- und Zugangsprotokoll ist auf minimalen Energieverbrauch und minimale Signalkollisionen bei mehreren Endpunkten ausgelegt. Jeder LoRaWAN-Endpunkt sendet seine Daten an ein Gateway, das die Daten an ein anderes Netzwerk überträgt, z. B. an ein Ethernet- oder Wi-Fi-Netzwerk. Das Gateway erhält normalerweise sämtliche LoRaWAN-Daten und überträgt sie über das Netzwerk an einen Zentralcomputer, auf dem sie gespeichert oder weiterverarbeitet werden.

Die Reichweite einer drahtlosen Kommunikation hängt von der Umgebung ab. In städtischen Umgebungen sind LoRaWAN-Übertragungsentfernungen von 1,5 bis 5 km zu erwarten. In ländlichen Umgebungen sind Reichweiten von 5 bis 15 km möglich, und bei Sichtverbindung können bis zu 200 km erreicht werden. In einem Fall konnte ein LoRaWAN-Endpunkt in einem Wetterballon Daten über eine Entfernung von 700 km an ein Gateway auf dem Boden bei einer Übertragungsleistung von nur 25 mW übertragen.

Ein LoRa-Endpunkt besteht aus drei Abschnitten:

  1. Ein oder mehrere Sensoren zur Datenerfassung
  2. Ein Mikrocontroller
  3. Ein LoRa-Funk-Chip von Semtech

Die Sensoren sind der Grund für die Existenz des Endpunkts. Zu LoRa-Sensoranwendungen gehören die Überwachung von Temperatur und Luftfeuchtigkeit, von Flüssigkeitsständen und von Luft- und Flüssigkeitsdrücken. Diese Sensortypen erfassen statische Daten, die sich im Laufe der Zeit nicht schnell ändern und daher ohne negative Auswirkungen auf die Anwendung drahtlos mit nur 5,5 Kbits/s übertragen werden können.

Der Funk-Chip und die Antenne kommunizieren direkt über das LoRa-Netzwerk. Die Firma Semtech besitzt die Patente für den Übertragungsmechanismus von LoRa. Derzeit sind alle LoRa-Übertragungsgeräte mit Funk-Chips von Semtech oder mit Funkmodulen ausgestattet, in die ein Funk-Chip von Semtech eingebaut ist.

Der LoRa-Funk-Transceiver SX1262IMLTRT von Semtech ist für batteriebetriebene LoRa-Anwendungen bestimmt und erfüllt den LoRaWAN-Funkübertragungsstandard (Abbildung 1). Beim Senden und Empfangen von Daten zieht er nur 4,2 mA bei einer HF-Ausgangsleistung von +22 dBm. Eine Version mit noch geringerem Energieverbrauch, der SX1261, hat eine HF-Ausgangsleistung von +15 dBm. Beide sind Halbduplex-Transceiver im Sub-GHz-Bereich und arbeiten mit Modulationstechniken mit konstanter Einhüllender wie LoRa sowie mit Frequenzumtastung (Frequency Shift Keying, FSK). An Bord sind sowohl ein DC-DC-Abwärtswandler als auch ein LDO-Linearregler.

Diagramm: Die eigenständigen Halbduplex-Funkkomponenten SX1262IMLTRT und SX1261 von Semtech

Abbildung 1: SX1262IMLTRT und SX1261 von Semtech sind eigenständige Halbduplex-Funkkomponenten für LoRa-Anwendungen mit DC-DC-Abwärtswandler und LDO-Linearregler an Bord. (Bildquelle: Semtech)

Wahl eines Mikrocontrollers für einen LoRaWAN-Endpunkt

Der Mikrocontroller an einem LoRaWAN-Endpunkt liest und verarbeitet die Sensordaten und stellt zur Datenübertragung über das Netzwerk eine Verbindung mit dem SX1262 her. Der Mikrocontroller muss über genug Arbeitsspeicher für die Treiber des SX1262, die Sensortreiber und den Anwendungscode verfügen. Tabelle 1 enthält die Anforderungen an einen Mikrocontroller an einem LoRaWAN-Endpunkt mit dem Funk-Chip SX1262 von Semtech.

Anforderungen an einen LoRaWAN-Mikrocontroller Mindestanforderungen Empfohlene Anforderungen
Flash-Speicher 128 KB 256 KB oder mehr
RAM 8 KB 16 KB oder mehr
AES-128-Verschlüsselung Firmware-Routine Hardwareblock (erforderlich für Multicast-Downlinks)
Echtzeituhr (RTC) mit einer Auflösung von einer Millisekunde Nicht erforderlich, wenn ein interner Zeitgeber als Zeitreferenz verwendet wird Für OTA-Firmware-Aktualisierungen, Multicast und Synchronisierung der Uhrzeit über das Netzwerk erforderlich
Externe Interrupt-Pins für vom SX126x generierte Interrupts Zwei IRQ-Pins: BUSY und ein programmierbarer IRQ (DIO1) Vier IRQ-Pins: BUSY und drei programmierbare IRQ (DIO1 3)
SPI-Schnittstelle für SX126x Erforderlich: SCK, MOSI, MISO, CS Erforderlich: SCK, MOSI, MISO, CS
Generierung von 64-Bit-EUI-Adressen nach IEEE Erforderlich, Firmware-Routine Erforderlich, Firmware-Routine oder Hardwareblock
Mikrocontroller-CPU 8 Bit 16 Bit oder 32 Bit

Tabelle 1: Die Mindestanforderungen an einen Mikrocontroller für einen einfachen LoRaWAN-Endpunkt, der Sensordaten mit minimaler Verarbeitung erfasst und überträgt. Die empfohlenen Anforderungen ergeben ein robusteres System für komplexere Endpunkte. (Quelle der Tabelle: Semtech)

Laut Tabelle können die Mindestanforderungen für einen einfachen eigenständigen LoRaWAN-Endpunkt mit einem 8-Bit-Mikrocontroller implementiert werden. Hier kann es sich um einen einfachen LoRaWAN-Endpunkt mit geringer Leistungsaufnahme handeln, der nur gelegentlich Sensor-Rohdaten an ein Gateway übertragen muss.

Wenn der Endpunkt aber hohen Datenverkehr bewältigen muss oder die Sensordaten verarbeiten muss, sollten die empfohlenen Anforderungen in Tabelle 1 vorgezogen werden. Wenn der Arbeitsspeicher und die Prozessorleistung anwachsen, erhöht sich natürlich auch der Energieverbrauch des Endpunkts, und es wird eine Batterie mit höherer Kapazität benötigt. Dies widerspricht dem Entwicklungsziel von LoRaWAN für IoT-Endpunkte mit niedrigerem Energieverbrauch.

Es ist bei der Entwicklung eines LoRaWAN-Endpunkts wichtig, sich darauf zu konzentrieren, dass es sich um ein System mit niedrigem Energieverbrauch handelt, und zu vermeiden, dass sich Features einschleichen, die das System komplizierter machen und mehr Strom als nötig verbrauchen. Bei der Wahl eines Mikrocontrollers für einen LoRaWAN-Endpunkt sollte auf eine möglichst niedrige Taktfrequenz und einen kleinen Arbeitsspeicher geachtet werden, da der Energieverbrauch auch dadurch beeinflusst wird.

Aktualisierung der Firmware des Mikrocontrollers an einem LoRaWAN-Endpunkt

Im Oktober 2018 hat die LoRa Alliance die Durchführung von Firmware-Aktualisierungen über Funk (Firmware Updates Over The Air, FUOTA) an LoRa-Endpunkten für alle LoRa-Netzwerke standardisiert. Die neuen Standards schreiben eine netzweite Zeitsynchronisierung vor. Dadurch reduziert sich die Anzahl der verlorenen Datenpakete drastisch. Es werden auch Multicast-Übertragungen standardisiert, Diese sind erforderlich, wenn für mehrere Endpunkte dieselbe Firmware-Aktualisierung durchgeführt wird. Sowohl für die Zeitsynchronisierung als auch für Multicast-Übertragungen ist eine genaue Zeitbasis erforderlich. Dies bedeutet, dass alle LoRa-Endpunkte über Mikrocontroller mit einer auf eine Millisekunde genauen Echtzeituhr verfügen müssen.

Die Aktualisierung der Firmware eines LoRaWAN-Endpunkts ist eine wichtige Funktion, bringt aber ein neues Problem. Die Aktualisierung der Firmware vor Ort macht eine Neuprogrammierung des Programmspeichers des Mikrocontrollers, bei dem es sich typischerweise um einen nicht flüchtigen Flash-Speicher handelt, erforderlich. Bei der Programmierung von Flash-Speicher muss an die Speicherzellen eine Spannung von 10 V oder mehr angelegt werden. Damit ist nur zur Programmierung des Flash-Speichers ein größerer Spannungsregler und weitere Elektronik erforderlich. Da in manchen vernetzten Systemen möglicherweise nur einige Male im Jahr eine Firmware-Aktualisierung erforderlich ist, erhöht diese Investition die Kosten und nutzt zusätzlichen Platz auf der Platine ineffizient.

Es gibt eine Alternative zu Mikrocontrollern mit Flash-Speicher: Mikrocontroller mit FRAM (Ferroelectric Random Access Memory). FRAM-Speicher benötigt zur Programmierung einer Zelle nur 1,5 V. Ein gutes Beispiel, das die empfohlenen Anforderungen für einen LoRaWAN-Knoten erfüllt, ist der FRAM-basierte 16-Bit-Mikrocontroller MSP430FR6047 von Texas Instruments. Er verfügt über 256 KB FRAM-Programmspeicher und über eine Echtzeituhr mit Kalender und Alarmfunktionen. Der Verschlüsselungsblock unterstützt AES-128 und AES-256. Er unterstützt bis zu vier SPI-Anschlüsse und verfügt über eine ausreichende Anzahl von externen Interrupt-Eingängen für die vier vom Semtech SX1262 benötigten Interrupts. Dies macht die Kommunikation zwischen diesen beiden Bauelementen sehr einfach. Auch eine Generierung von 64-Bit-EUI-Adressen (Extended Unique Identifier) nach IEEE kann einfach in der Firmware implementiert werden (Abbildung 2).

Diagramm: MSP430FR6047 von Texas Instruments (zum Vergrößern klicken)

Abbildung 2: Der MSP430FR6047 hat 256 KB FRAM, 8 KB SRAM und eine Vielzahl von Peripheriebausteinen für Sensoranwendungen. (Bildquelle: Texas Instruments)

Der MSP430FR6047 ist für batteriebetriebene intelligente Zähler (Smart Meter) bestimmt. Er verfügt über einen integrierten Ultraschallsensor zur extrem genauen Erkennung von Wasserdurchfluss und Flüssigkeitsständen. Diese neuartigen Funktionen können einfach für viele verschiedene Sensoranwendungen angepasst werden.

Der MSP430FR6047 hat anstelle der empfohlenen 16 KB RAM nur 8 KB RAM, aber dies stellt bei einem LoRaWAN-Sensorendpunkt wahrscheinlich kein Problem dar, wenn keine komplexe Mischung von Sensordaten erforderlich ist. Auch bietet der MSP430FR6047 einen hohen Grad von Integration, wodurch sich die Leistung verbessert und Arbeitsspeicher und Platz auf der Platine eingespart wird. Das analoge Frontend für Ultraschallmessungen umfasst einen programmierbaren Impulsgenerator, einen 12-Bit-ADC (Analog-Digital-Wandler) und einen programmierbaren Verstärker. All dies sind nützliche Elemente bei der Erfassung von Daten mit analogen Sensoren.

Der MSP430FR6047 verfügt über einen 32-Bit-Hardware-Multiplizierer und einen LEA-Signalverarbeitungs-Core (Low Energy Accelerator), der unabhängig vom Core des MSP430 Berechnungen von 256-Punkt-FFTs durchführen kann. Der LEA beschleunigt die Signalverarbeitung von Anwendungen mit niedrigem Energieverbrauch, wodurch sich die Batterielaufzeit verlängert.

Der MSP430FR6047 verbraucht extrem wenig Energie, selbst im Vergleich mit 8-Bit- und 16-Bit-Mikrocontrollern, die bereits wenig Strom verbrauchen. Mit laufenden Peripheriebausteinen und 16-Bit-Core des MSP430 zieht er nur 120 µA/MHz. Im Standby-Modus mit laufender Echtzeituhr beträgt der Verbrauch nur 450 nA (Nanoampere). Der Mikrocontroller verfügt über einen Shutdown-Modus, in dem er nur 30 nA zieht, in dem die Echtzeituhr aber ausgeschaltet ist. Der Shutdown-Modus empfiehlt sich also nicht für einen LoRaWAN-Endpunkt.

Entwicklung mit FRAM für FUOTA

Für die Entwicklung von Firmware für den MSP430FR6047 steht die Evaluierungsplatine EVM430-FR6047 zur Verfügung. Sie wird über USB mit Strom versorgt und enthält sämtliche Hardware, die zur Evaluierung des MSP430 in einer Anwendung erforderlich ist. Die Evaluierungsplatine verfügt über Steckverbinder für BoosterPack™-Module, mit denen die Platine um zusätzliche Funktionen erweitert werden kann. Zum Anschluss von Sensoren sind zusätzliche Pins auf der Platine vorhanden.

Bild: Evaluierungsplatine EVM430-FR6047 von Texas Instruments

Abbildung 3: die Evaluierungsplatine EVM430-FR6047 von Texas Instruments für den MSP430FR6047 verfügt über ein LCD-Display und über Anschluss an alle Pins des MSP430FR6047. (Bildquelle: Texas Instruments)

Zur Evaluierung und zur Entwicklung mit dem SX1262 bietet Semtech das LoRa-MBED-Shield SX1262MB2CAS an (Abbildung 4).

Bild: MBED-Shield von Semtech für den SX1262

Abbildung 4: Das MBED-Shield von Semtech für den SX1262 ist eine einfache Evaluierungsplatine mit dem HF-Transceiver SX1262. (Bildquelle: Semtech)

Die BoosterPack-Steckverbinder für MSP430 bieten sämtliche für den Anschluss des MSP430 an das MBED-Shield SX1262 von Semtech erforderlichen Signale. Der BoosterPack-Steckverbinder verfügt über die erforderlichen vier SPI-Pins sowie über drei zusätzliche GPIO-Pins, die entweder als Eingang zur Abfrage des MSP430 oder als externe Interrupts konfiguriert werden können. Für den Fall, dass ein zusätzlicher externer Interrupt benötigt wird, sind vier Pins des BoosterPack-Steckverbinders mit einem der UARTs des MSP430 verbunden. Diese UART-Pins können als GPIO oder als externe Interrupts für das MBED-Shield konfiguriert werden. Das BoosterPack und das MBED-Shield sind zwar nicht Pin-kompatibel, aber die erforderlichen Verbindungen zwischen MSP430 und SX1262 können über Jumper hergestellt werden.

Zusätzlich bietet Texas Instruments die IDE Code Composer Studio™, die das Erstellen und Debuggen von MSP430-Code erlaubt.

Fazit

LoRa ist zu einem beliebten Standard zur Übermittlung von Sensordaten für das IoT geworden. Der Standard wurde um die Spezifikation für FUOTA erweitert, die neue Herausforderungen bezüglich der Batterielaufzeiten mit sich bringt. Durch die Wahl von Mikrocontrollern mit FRAM anstelle von Flash-Speicher kann der Energieverbrauch beim Schreiben dieser Aktualisierungen in den Speicher der Geräte stark reduziert werden.

Wie oben gezeigt, wird die Wahl des Mikrocontrollers noch wichtiger, wenn es um die Entladung der Batterie bei Erhaltung der Rechenleistung für die Anwendung geht.

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der Digi-Key Electronics oder offiziellen Politik der Digi-Key Electronics wider.

Über den Autor

Bill Giovino

Bill Giovino ist Elektronikingenieur mit einem BSEE von der Syracuse University und einer der wenigen, die erfolgreich vom Entwicklungsingenieur über den Anwendungsingenieur zum Technologiemarketing wechselten.

Seit über 25 Jahren wirbt Bill für neue Technologien vor technischem und nicht-technischem Publikum für viele Unternehmen, darunter STMicroelectronics, Intel und Maxim Integrated. Während seiner Zeit bei STMicroelectronics trug Bill dazu bei, die frühen Erfolge des Unternehmens in der Mikrocontroller-Industrie voranzutreiben. Bei Infineon inszenierte Bill die ersten Erfolge des Unternehmens im Bereich Mikrocontroller-Design in den USA. Als Marketingberater für sein Unternehmen CPU Technologies hat Bill vielen Unternehmen geholfen, unterbewertete Produkte in Erfolgsgeschichten zu verwandeln.

Bill war zudem ein früher Anwender des Internets der Dinge, einschließlich der Implementierung des ersten vollständigen TCP/IP-Stacks auf einem Mikrocontroller. Die Botschaft von „Verkauf durch Aufklärung“ und die zunehmende Bedeutung einer klaren, gut geschriebenen Kommunikation bei der Vermarktung von Produkten im Internet sind Bills Anliegen. Er ist Moderator der beliebten „Semiconductor Sales & Marketing Group“ auf LinkedIn und spricht fließend B2E.

Über den Verlag

Nordamerikanische Fachredakteure von Digi-Key