Het implementeren van LoRa Firmware Over the Air (FOTA) met minimaal stroomverbruik
Bijgedragen door De Noord-Amerikaanse redacteurs van DigiKey
2019-02-13
In oktober 2018 kondigde de LoRa Alliance specificaties aan die updates van Firmware Over The Air (FOTA) voor IoT-eindpunten standaardiseerden. Dit is natuurlijk goed nieuws voor LoRa-netwerken, maar vormt tegelijkertijd een uitdaging voor ontwerpers van energiezuinige IoT LoRa-eindpunten die microcontrollers met flashgeheugen gebruiken.
In vergelijking met lezen, laat het schrijven naar het flashgeheugen van de microcontroller het stroomverbruik van de microcontroller tijdelijk maar dramatisch stijgen. Ook moet een grotere spanningsregelaar worden gebruikt om het verhoogde stroomverbruik te kunnen hanteren.
Geen van deze aspecten is wenselijk, maar dit artikel zal beschrijven hoe een microcontroller met FRAM kan worden gebruikt als een energiezuinige manier om firmware te schrijven. Gekoppeld aan een nieuwe LoRa-transceiver vormt de combinatie een meer energiezuinig oplossing voor FOTA in vergelijking met de traditionele benadering met microcontroller met flashgeheugen.
Wat is LoRa?
Bij het Internet of Things (IoT) is een van de doelen om gegevens draadloos te verzenden en daarbij zo min mogelijk energie te verbruiken. Ontwerpers van op batterijen werkende sensortoepassingen hebben zich met name het hoofd gebroken over hoe ze laagfrequente sensorgegevens draadloos over vele kilometers kunnen verzenden en het verbruik van batterijvermogen daarbij tot het minimum kunnen beperken. Bestaande oplossingen als Bluetooth en Zigbee zijn ontworpen voor korte-bereik-toepassingen terwijl mobiele data relatief zwaar zijn. LoRa maakt furore als populaire oplossing voor dit probleem.
LoRa staat voor long range, lange afstand. Draadloze LoRa-netwerken werden ontwikkeld voor de overdracht over lange afstanden van niet-realtime gegevens bij lage gegevenssnelheid en laag energieverbruik. De gegevenssnelheid ligt tussen de 0,3 kilobits/seconde (kbits/s) en 5,5 kbits/s, wat het systeem geschikt maakt voor periodieke overdracht van sensorgegevens. Terwijl de specificaties van LoRa de modulatie en elektrische kenmerken van het netwerk beschrijven, beschrijft LoRaWAN (wide area network) de protocollen en het dataformaat van een LoRa-netwerk.
LoRa-signalen vertonen een overeenkomt met FM-signalen; een signaal wordt gemoduleerd door de frequentie ervan te veranderen. Maar terwijl een correct gemoduleerd FM-signaal onmiddellijk van frequentie verandert, verloopt de verhoging of verlaging van de frequentie van een LoRa-gemoduleerd signaal trager over een tijdsperiode. Deze geleidelijke verhoging of verlaging van frequentie wordt chirp genoemd, en de methode wordt aangeduid als chirp-modulatie. De snelheid van frequentieverandering in de tijd wordt "chirpiness" genoemd.
LoRaWAN-netwerken zijn altijd in een stervormige topologie georganiseerd en het signaal- en toegangsprotocol is altijd ontworpen om zo min mogelijk energie te verbruiken en signaalbotsingen voor meerdere eindpunten tot het minimum te beperken. Elk LoRaWAN-eindpunt stuurt zijn gegevens naar een gateway die de gegevens op zijn beurt aan een ander netwerk, bijvoorbeeld Ethernet of Wi-Fi, overdraagt. Gewoonlijk ontvangt de gateway alle LoRaWAN-gegevens en draagt deze via het netwerk over aan een centrale computer voor opslag of verdere verwerking.
Het bereik van draadloze communicatie is altijd afhankelijk van de omgeving. In steden en dorpen kunnen de afstanden voor LoRaWAN-overdracht naar verwachting zo'n 1,6 tot tot 4,8 km bedragen. In landelijke gebieden kan dit 4,8 tot 14,5 km worden, terwijl gegevensoverdracht via directe zichtlijnen kan afstanden tot 210 km kan overbruggen. In één geval slaagde een LoRaWAN-eindpunt in een weerballon erin om gegevens over te dragen aan een 700 km verderop gelegen gateway op de grond, en verbruikte hierbij slechts 25 milliwatt (mW) zendvermogen.
Elk LoRa-eindpunt heeft drie secties:
- Een of meer sensors om gegevens te verzamelen
- Een microcontroller
- Een Semtech LoRa-radiochip
De sensors zijn de reden waarom het eindpunt bestaat. LoRa-sensortoepassingen kunnen onder meer temperatuur- en vochtbewaking, vloeistofpeilbewaking van water en brandstof en lucht- en vloeistofdruk omvatten. Deze sensortypes verzamelen statische gegevens die niet snel veranderen in de loop van de tijd en daarom draadloos kunnen worden verzonden op een snelheid van slechts 5,5 kbit/s zonder dat dit impact heeft op de toepassing.
De radiochip en antenne communiceren rechtstreeks via het LoRa-netwerk. Semtech is het bedrijf dat de patenten op het LoRa-overdrachtsschema bezit. Momenteel gebruiken alle LoRa-radio's ofwel Semtech radiochips ofwel radiomodules met Semtech radiochips erin.
De SX1262IMLTRT LoRa-radiotransceiver van Semtech is ontworpen voor op batterijen werkende LoRa-toepassingen en voldoet aan de LoRaWAN radiotransmissiestandaard (Afbeelding 1). Bij het verzenden of ontvangen van gegevens trekt hij slechts 4,2 milliampère (mA) met een RF-uitgangsvermogen van +22 dBm. Een versie met nog lager energieverbruik, de SX1261, heeft een RF-uitgangsvermogen van +15 dBm. Beide zijn half-duplex transceivers die in het sub-GHz bereik werken en modulatieschema's met constante omhulling, zoals LoRa, of frequentieverschuiving (frequency shift keying - FSK) hanteren. Op de kaart vinden we zowel DC-DC buckconverter als lineaire LDO-regeling.

Afbeelding 1: de Semtech SX1262IMLTRT en SX1261 zijn autonome half-duplex radio's voor LoRa-toepassingen die zowel een DC-DC buckconverter als lineaire LDO-regeling op de kaart bevatten. (Bron afbeelding: Semtech)
Het selecteren van een microcontroller voor een LoRaWAN-eindpunt
De microcontroller in een LoRaWAN-eindpunt leest en verwerkt de sensorgegevens en dient ook als interface naar de SX1262 om de gegevens over het netwerk te versturen. De microcontroller moet genoeg geheugen hebben voor de drivers, sensor-drivers en toepassingscode van SX1262. Vereisten voor een microcontroller in een LoRaWAN-eindpunt dat gebruik maakt van de Semtech SX1262 radiochip zoals getoond in Tabel 1.
|
Tabel 1: de minimumvereisten voor een microcontroller voor een eenvoudig LoRaWAN-eindpunt dat sensorgegevens verzamelt en verzendt met minimale verwerking. Voor meer complexe eindpunten liggen de vereisten hoger, om een meer robuust systeem te verkrijgen. (Bron tabel: Semtech)
Zoals uit de tabel valt af te leiden kunnen de minimumvereisten voor een standalone basis-LoRaWAN-eindpunt op een 8-bits microcontroller worden geïmplementeerd. Dit kan een simpel, weinig stroom verbruikend LoRaWAN-eindpunt zijn dat slechts af en toe onbewerkte sensorgegevens naar een gateway hoeft terug te sturen.
Als het eindpunt echter veel verkeer te verwerken krijgt of wat voor bewerking dan ook op de sensorgegevens moet uitvoeren, moeten de aanbevolen vereisten uit Tabel 1 worden gevolgd. Het spreekt voor zich dat het stroomverbruik van het eindpunt toeneemt naarmate het geheugen en de verwerkingskracht in een LoRaWAN-eindpunt toenemen, waardoor een batterij met meer capaciteit nodig is. Dit is tegenstrijdig met de ontwerpintentie van LoRaWAN, oftewel het realiseren van energiezuinige IoT-eindpunten.
Bij het ontwerpen van een LoRaWAN-eindpunt is het belangrijk om gefocust te blijven op het feit dat het systeem energiezuinig moet zijn, en niet toelaten dat er ongemerkt toch functies naar binnen sluipen die het systeem complexer maken, zodat uiteindelijk meer stroom wordt verbruikt dan strikt noodzakelijk is. Bij het kiezen van een microcontroller voor een LoRaWAN-eindpunt dient erop te worden gelet dat de kloksnelheid en geheugengrootte zo laag mogelijk worden gehouden, aangezien deze ook van invloed zijn op het stroomverbruik.
Het updaten van microcontroller-firmware in een LoRaWAN-eindpunt
In oktober 2018 heeft de LoRa Alliance gestandaardiseerd hoe Firmware Updates Over The Air (FUOTA) voor LoRa-eindpunten moeten worden uitgevoerd voor alle LoRa-netwerken. De nieuwe standaarden voorzien in netwerk-wijde kloksynchronisatie, met een drastische vermindering van het aantal verloren gegane datapakketten als resultaat. Ook multicast-transmissie wordt gestandaardiseerd, iets wat nodig is bij het verzenden van dezelfde firmware-update aan meerdere eindpunten. Zowel kloksynchronisatie als multicast-transmissie vereisen een nauwkeurige tijdbasis, wat betekent dat alle LoRa-eindpunten microcontrollers moeten hebben met een RTC die tot op één milliseconde nauwkeurig is.
Het updaten van firmware in LoRaWAN-eindpunten is natuurlijk van groot belang, maar brengt wel een nieuw probleem met zich mee. Het in het veld updaten van firmware betekent herprogrammering van het programmageheugen van de microcontroller, en dit is doorgaans het niet-vluchtige flashgeheugen. Voor het programmeren van het flashgeheugen moet 10 volt of meer op de geheugencel worden toegepast. Dit vereist een grotere spanningsregelaar en bijbehorende circuits, alleen om het flashgeheugen te programmeren. Aangezien firmware-updates bij sommige netwerksystemen slechts een paar keer per jaar plaatsvinden, betekent dit een investering die de kosten omhoog jaagt en extra, op inefficiënte wijze gebruikte ruimte op de printplaat inneemt.
Er bestaat echter een alternatief voor microcontrollers met flashgeheugen: een microcontroller met ferro-elektrisch random access memory (FRAM). Een FRAM-geheugen heeft maar 1,5 volt nodig om een cel te programmeren. Een goed voorbeeld van een apparaat dat aan de aanbevolen vereisten voor een LoRaWAN-knoop voldoet, is de 16-bits MSP430FR6047 FRAM-gebaseerde microcontroller van Texas Instruments. Deze heeft 256 Kbytes FRAM-programmageheugen en een RTC met kalender- en alarmfuncties. Een versleutelingsblok ondersteunt AES-128 en AES-256. Hij ondersteunt maximaal vier SPI-poorten en heeft meer dan genoeg externe interrupt-ingangen om de vier door de Semtech SX1262 benodigde poorten te ondersteunen, zodat het tot stand brengen van een interface tussen de twee apparaten bijzonder gemakkelijk wordt gemaakt. Ook kan het genereren van de IEEE 64-bit extended unique identifier (EUI) eenvoudig in firmware worden geïmplementeerd (Afbeelding 2).
Afbeelding2: de MSP430FR6047 heeft 256 Kbytes FRAM, 8 Kbytes SRAM en een breed scala aan randapparaten voor op sensors gebaseerde toepassingen. (Bron afbeelding: Texas Instruments)
De MSP430FR6047 is ontworpen voor op batterijen werkende, slimme meters en heeft een geïntegreerd ultrasoon detectie-randapparaat voor uitermate nauwkeurige waterstroom- en vloeistofpeildetectie. Deze geavanceerde functies laten zich gemakkelijk voor vele verschillende sensortoepassingen aanpassen.
Alhoewel de MSP430FR6047 slechts 8 Kbytes RAM heeft in plaats van de aanbevolen 16 Kbytes, hoeft dit geen probleem te zijn bij een LoRaWAN-sensoreindpunt als er geen complexe sensorfusie-verwerking nodig is. De MSP430FR6047 heeft bovendien een hoge mate van integratie, hetgeen de prestaties verbetert en tegelijkertijd geheugen en ruimte op de printplaat bespaart. Een analoog front-end voor ultrasone sensortoepassingen omvat een programmeerbare pulsgenerator, een 12-bits analoog/digitaal-omzetter (ADC) en een programmeerbare versterker, allemaal erg handig bij het verzamelen van gegevens van analoge sensors
De MSP430FR6047 heeft een 32-bits hardware-multiplicator en een low-energy accelerator (LEA) signaalverwerkingskern die in staat is om 256-punts FFT-berekeningen uit te voeren, onafhankelijk van de MSP430 kern. De LEA versnelt de signaalverwerking voor energiezuinige toepassingen, waardoor de batterijlevensduur wordt verlengd.
De MSP430FR6047 verbruikt extreem weinig energie, zelfs binnen de context van 8-bits en 16-bits microcontrollers die van nature al energiezuinige apparaten zijn. Bij werkende MSP430 16-bits kern en randapparatuur bedraagt het verbruik slechts 120 micro-ampère per megahertz (µA/MHz). De standbymodus met werkende RTC trekt slechts 450 nano-ampère (nA). De microcontroller heeft een uitschakelmodus met een verbruik van slechts 30 nA, maar hierin wordt ook de realtime klok (RTC) uitgeschakeld, waardoor de uitschakelmodus niet wordt aangeraden voor een LoRaWAN-eindpunt.
Ontwerpen met FRAM voor FUOTA
Voor de ontwikkeling van MSP430FR6047 firmware is hetEVM430-FR6047 evaluatiebord beschikbaar. Dit wordt gevoed via USB en bevat alle hardware die nodig is om de MSP430 in een toepassing te evalueren. Het evaluatiebord heeft connectors voor BoosterPack™-modules om extra functionaliteit toe te voegen. Op het bord zijn extra pennen beschikbaar om sensors aan te sluiten.

Afbeelding 3: het evaluatiebord EVM430-FR6047 van Texas Instruments voor de MSP430FR6047 heeft een LCD-display en geeft toegang tot alle pennen op de MSP430FR6047. (Bron afbeelding: Texas Instruments)
Voor evaluatie en ontwikkeling van de SX1262 biedt Semtech de SX1262MB2CAS LoRa MBED shield (Afbeelding 4).

Afbeelding 4: de Semtech MBED shield voor de SX1262 is een eenvoudig evaluatiebord dat de SX1262 RF-transceiver bevat. (Bron afbeelding: Semtech)
De MSP430 BoosterPack-connectors bieden alle signalen die nodig zijn voor het tot stand brengen van een interface tussen MSP430 en de Semtech SX1262 MBED shield. De BoosterPack-connector heeft de vier benodigde SPI-pennen alsmede drie extra GPIO-pennen die ofwel als polled inputs naar de MSP430 ofwel als externe interrupts kunnen worden geconfigureerd. Als een extra externe interrupt nodig is, worden vier van de pennen op de BoosterPack-connector met een van de MSP430 UART's verbonden. Deze UART-pennen kunnen ofwel als GPIO ofwel als externe interrupts voor de MBED shield worden geconfigureerd. Alhoewel de BoosterPack en MBED shield niet fysiek compatibel zijn qua pennen, kunnen ze gemakkelijk van een jumper worden voorzien om de benodigde verbindingen tussen de MSP430 en de SX1262 te realiseren.
Daarnaast biedt Texas Instruments Code Composer Studio™, een IDE die schrijven en debugging van MSP430 code ondersteunt.
Conclusie
LoRa maakt furore als populaire standaard voor het overdragen van IoT-sensorgegevens. De standaard werd uitgebreid om ruimte te maken voor FUOTA, hetgeen nieuwe uitdagingen met zich mee bracht voor wat betreft een lange batterijlevensduur. Door te kiezen voor op microcontrollers die op FRAM zijn gebaseerd in plaats van op flashgeheugen, kunnen ontwerpers het vermogen, dat nodig is om deze updates naar het apparaatgeheugen te schrijven, drastisch verminderen.
Ook is duidelijk geworden dat de keuze van microcontrollers nog belangrijker wordt om leegtrekken van de batterij tot het minimum te beperken en tegelijkertijd voldoende verwerkingsvermogen voor de toepassing te leveren.
Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.





