Come implementare il firmware via etere (FOTA) LoRa con un consumo energetico minimo
Contributo di Editori nordamericani di DigiKey
2019-02-13
Nell'ottobre del 2018 LoRa Alliance ha annunciato delle specifiche che hanno standardizzato gli aggiornamenti firmware via etere (FUOTA) per gli endpoint IoT. Quella che è indubbiamente una buona notizia per le reti LoRa, rappresenta invece una sfida per i progettisti di endpoint LoRa a basso consumo per IoT che utilizzano microcontroller basati su flash.
Rispetto alla lettura, la scrittura sulla memoria flash del microcontroller ne aumenta temporaneamente ma in modo significativo il consumo energetico. Inoltre, per gestire la maggiore potenza richiede un regolatore di tensione più grande.
Nessuna di queste due cose è auspicabile, ma questo articolo descriverà come usare un microcontroller con FeRAM per scrivere firmware con un basso consumo. Abbinato a un nuovo transceiver LoRa, rappresenta una soluzione a basso consumo per FOTA rispetto al tradizionale approccio di un microcontroller basato su flash.
Che cos'è LoRa?
Con Internet delle cose (IoT), uno degli obiettivi è trasmettere i dati in modalità wireless consumando meno energia possibile. L'invio in modalità wireless a bassa velocità dei dati dei sensori su distanze di molti chilometri, riducendo al minimo l'uso dell'alimentazione della batteria, è stato una fonte non indifferente di preoccupazione per i progettisti di applicazioni di sensori alimentati a batteria. Fra le soluzioni esistenti, Bluetooth e Zigbee sono progettate per applicazioni a corto raggio e i dati cellulari sono relativamente energivori. Una delle soluzioni più diffuse per ovviare a questo problema è LoRa.
LoRa è l'abbreviazione di "long range", ovvero lungo raggio. La tecnologia di rete wireless LoRa è stata sviluppata per trasmettere a bassa velocità, a basso consumo e a lungo raggio dati non in tempo reale. La velocità dei dati è compresa tra 0,3 kilobit/secondo (kbit/s) e 5,5 kbit/s, ed è quindi appropriata per i trasferimenti periodici dei dati dei sensori. Mentre le specifiche LoRa descrivono la modulazione e le caratteristiche elettriche della rete, LoRaWAN (Wide Area Network) descrive i protocolli e il formato dei dati di una rete LoRa.
La segnalazione LoRa è simile all'FM in quanto modula un segnale cambiandone la frequenza. A differenza però di un segnale FM correttamente modulato che cambia la frequenza all'istante, un segnale modulato LoRa la aumenta o diminuisce lentamente lungo un arco di tempo. Questo aumento o questa riduzione graduale della frequenza è detto chirp e il metodo è detto modulazione chirp. La velocità di variazione della frequenza nel tempo è detta "chirp".
Le reti LoRaWAN hanno sempre una topologia a stella e il protocollo di segnalazione e di accesso è studiato per usare poca corrente e ridurre al minimo le collisioni fra i segnali per endpoint multipli. Ogni endpoint LoRaWAN invia i propri dati a un gateway che li trasferisce a un'altra rete, ad esempio Ethernet o Wi-Fi. In genere il gateway riceve tutti i dati LoRaWAN e li trasferisce via rete a un computer centrale perché vengano archiviati o elaborati ulteriormente.
La portata di qualsiasi comunicazione wireless dipende dall'ambiente. Nei centri urbani le distanze di trasmissione LoRaWAN previste possono andare da 1,5 a 4,5 km circa. Nelle aree rurali possono variare tra 4,5 e 14,4 km e le trasmissioni di dati con linea visuale libera possono arrivare a 210 km. In un caso, un endpoint LoRaWAN in un pallone sonda è riuscito a trasmettere i dati a un gateway a terra lontano oltre 700 km usando una potenza di trasmissione di soli 25 mW.
Ogni endpoint LoRa è costituito da tre sezioni:
- Uno o più sensori per raccogliere i dati
- Un microcontroller
- Un chip radio LoRa Semtech
I sensori sono la ragione dell'endpoint. Le applicazioni dei sensori LoRa possono includere il monitoraggio della temperatura e dell'umidità, il monitoraggio del livello di fluidi come acqua e carburante e le pressioni dell'aria e dei liquidi. Questi tipi di sensori raccolgono dati statici che non cambiano rapidamente nel corso del tempo e possono quindi essere trasmessi in modalità wireless a soli 5,5 kbit/s senza che vi sia alcun impatto sull'applicazione.
Il chip radio e l'antenna comunicano direttamente sulla rete LoRa. Semtech è la società che detiene i brevetti sullo schema di trasmissione LoRa. Attualmente tutte le radio LoRa usano chip radio Semtech o moduli radio che al loro interno hanno dei chip radio Semtech.
Il transceiver radio LoRa SX1262IMLTRT di Semtech è destinato ad applicazioni LoRa alimentate a batteria ed è conforme allo standard di trasmissione radio LoRaWAN (Figura 1). Quando trasmette o riceve i dati, assorbe solo 4,2 mA con una potenza di uscita RF di +22 dBm. Una versione meno potente, SX1261, ha una potenza in uscita RF di +15 dBm. Sono entrambi dei transceiver half-duplex che operano nell'intervallo sub-GHz e gestiscono schemi di modulazione costante dell'envelope come LoRa, nonché la polarizzazione a variazione di fase della frequenza (FSK). Sia il convertitore buck c.c./c.c. che la regolazione LDO lineare sono integrati.

Figura 1: SX1262IMLTRT e SX1261 di Semtech sono transceiver radio half-duplex autonomi per applicazioni LoRa che includono sia un convertitore buck c.c./c.c. che una regolazione LDO lineare integrati. (Immagine per gentile concessione di Semtech)
Scelta di un microcontroller per un endpoint LoRaWAN
Il microcontroller in un endpoint LoRaWAN legge ed elabora i dati dei sensori e si interfaccia con SX1262 per trasmetterli via rete. Il microcontroller deve avere una memoria sufficiente per i driver SX1262, i driver dei sensori e il codice applicativo. Nella Tabella 1 sono indicati i requisiti per un microcontroller in un endpoint LoRaWAN quando si utilizza il chip radio SX1262 di Semtech.
|
Tabella 1: Sono indicati i requisiti minimi per un microcontroller per un endpoint LoRaWAN semplice che raccoglie e trasmette i dati dei sensori con un'elaborazione minima. Per endpoint più complessi, i requisiti consigliati forniscono un sistema più robusto. (Tabella per gentile concessione di Semtech)
Come da Tabella, i requisiti minimi per un endpoint LoRaWAN autonomo di base possono essere implementati su un microcontroller a 8 bit. Può trattarsi di un endpoint LoRaWAN semplice e a basso consumo che solo occasionalmente deve trasmettere a un gateway i dati non elaborati dei sensori.
Tuttavia, se l'endpoint gestisce molto traffico o deve eseguire una qualche elaborazione dei dati dei sensori, occorre seguire i requisiti consigliati nella Tabella 1. Ovviamente, man mano che la memoria e la potenza di elaborazione in un endpoint LoRaWAN aumentano, aumenta anche il suo consumo energetico, per cui è richiesta una batteria di maggiore capacità. Questo va contro l'intenzione di progettare endpoint IoT LoRaWAN a basso consumo.
Quando si progetta un endpoint LoRaWAN, è importante non perdere di vista il fatto che si tratta di un sistema a basso consumo ed evitare di introdurre funzioni che complicherebbero il sistema e finirebbero con l'assorbire più energia del necessario. Al momento di scegliere un microcontroller per un endpoint LoRaWAN, occorre preoccuparsi di contenere il più possibile la velocità di clock e le dimensioni della memoria, in quanto incidono anche sul consumo energetico.
Aggiornamento del firmware del microcontroller in un endpoint LoRaWAN
Nell'ottobre del 2018, LoRa Alliance ha standardizzato l'esecuzione di aggiornamenti firmware via etere (FUOTA) per gli endpoint LoRa per tutte le reti LoRa. I nuovi standard si occupano della sincronizzazione del clock a livello di rete, che riduce drasticamente il numero di pacchetti di dati persi. Vengono standardizzate anche le trasmissioni multicast, come richiesto quando si trasmette lo stesso aggiornamento del firmware a più endpoint. Sia la sincronizzazione del clock che le trasmissioni multicast richiedono una base temporale accurata, il che significa che tutti gli endpoint LoRa devono avere dei microcontroller con un RTC preciso fino a un millisecondo.
Anche se l'aggiornamento del firmware negli endpoint LoRaWAN è una funzione importante, porta con sé un nuovo problema. Aggiornare il firmware sul campo significa riprogrammare la memoria del programma del microcontroller, che in genere è di tipo flash non volatile. Per programmare la memoria flash occorre applicare 10 V o più alla cella di memoria. E per far questo serve un regolatore di tensione più grande, con la relativa circuiteria. Dato che in alcuni sistemi collegati in rete gli aggiornamenti del firmware potrebbero avvenire solo poche volte all'anno, si tratta di un investimento che aumenta i costi e utilizza in modo inefficiente lo spazio su scheda aggiuntivo.
L'alternativa a un microcontroller con memoria flash è un microcontroller con memoria ad accesso casuale ferroelettrica (FeRAM). La memoria FeRAM ha bisogno di soli 1,5 V per programmare una cella. Un buon esempio che soddisfa i requisiti consigliati per un nodo LoRaWAN è il microcontroller basato su FeRAM MSP430FR6047 a 16 bit di Texas Instruments. Ha 256 kB di memoria di programma FeRAM e un RTC con funzioni calendario e allarme. Un blocco di crittografia supporta AES-128 e AES-256. Supporta fino a quattro porte SPI e ha un numero di ingressi di interrupt esterni più che sufficiente per supportare i quattro necessari a SX1262 di Semtech, il che rende molto facile interfacciare i due dispositivi. Inoltre, è facile implementare nel firmware la generazione di EUI (Extended Unique Identifier) estesi a 64 bit IEEE (Figura 2).
Figura 2: MSP430FR6047 ha 256 kB di FeRAM, 8 kB di SRAM e un'ampia gamma di periferiche per applicazioni basate su sensori. (Immagine per gentile concessione di Texas Instruments)
MSP430FR6047 è progettato per contatori intelligenti alimentati a batteria ed è dotato di una periferica di rilevamento a ultrasuoni integrata che assicura un rilevamento estremamente accurato del flusso dell'acqua e del livello del liquido. Queste funzionalità avanzate possono essere facilmente adattate per molte applicazioni diverse di sensori.
Anche se MSP430FR6047 ha solo 8 kB di RAM invece dei 16 kB consigliati, questo potrebbe non essere un problema in un endpoint di sensore LoRaWAN se non è richiesta un'elaborazione complessa Sensor Fusion (condivisione di dati tra più sensori). Inoltre, MSP430FR6047 ha un livello elevato di integrazione che migliora le prestazioni risparmiando al contempo memoria e spazio su scheda. Un front-end analogico per applicazioni di rilevamento a ultrasuoni include un generatore di impulsi programmabile, un convertitore analogico/digitale (ADC) a 12 bit e un amplificatore a guadagno programmabile, tutti molto utili per la raccolta di dati da sensori analogici.
MSP430FR6047 ha un moltiplicatore hardware a 32 bit e un core di elaborazione dei segnali LEA (Low Energy Accelerator) in grado di eseguire calcoli FFT di 256 punti indipendente dal core MSP430. LEA accelera l'elaborazione dei segnali per applicazioni a basso consumo, prolungando la durata della batteria.
MSP430FR6047 consuma pochissima energia anche in presenza di microcontroller a 8 e 16 bit, che sono di per sé dispositivi poco energivori. Quando il core MSP430 a 16 bit e le periferiche sono in funzione, assorbe solo 120 µA/MHz. La modalità standby con RTC in esecuzione assorbe solo 450 nA. Il microcontroller ha una modalità di spegnimento che assorbe solo 30 nA, ma disattiva anche il clock in tempo reale (RTC), per cui tale modalità non è consigliata per un endpoint LoRaWAN.
Progettazione con FeRAM per FUOTA
Per lo sviluppo del firmware MSP430FR6047 è disponibile la scheda di valutazione EVM430-FR6047. È alimentata dall'USB e contiene tutto l'hardware necessario per valutare l'MSP430 in un'applicazione. Per essere più funzionale, la scheda di valutazione è provvista di connettori per i moduli BoosterPack™. Sono inoltre disponibili altri pin per il collegamento dei sensori.

Figura 3: La scheda di valutazione EVM430-FR6047 di Texas Instruments per MSP430FR6047 è dotata di un display LCD e consente l'accesso a tutti i pin su MSP430FR6047. (Immagine per gentile concessione di Texas Instruments)
Per la valutazione e lo sviluppo di SX1262, Semtech fornisce la scheda shield MBED LoRa SX1262MB2CAS (Figura 4).

Figura 4: La scheda shield MBED di Semtech per SX1262 è una semplice scheda di valutazione che contiene il transceiver RF SX1262. (Immagine per gentile concessione di Semtech)
I connettori BoosterPack MSP430 offrono tutti i segnali necessari per interfacciare MSP430 con la scheda shield MBED SX1262 di Semtech. Il connettore BoosterPack è dotato dei quattro pin SPI necessari e di altri tre pin GPIO supplementari che possono essere configurati come ingressi in polling a MSP430, oppure come interrupt esterni. Se è richiesto un interrupt esterno supplementare, quattro pin del connettore BoosterPack vengono connessi a uno degli UART MSP430. Questi pin UART possono essere configurati come GPIO o interrupt esterni per la scheda shield MBED. Sebbene BoosterPack e la scheda shield MBED non siano fisicamente compatibili a livello di pin, possono essere facilmente ponticellati per offrire le connessioni necessarie tra MSP430 e SX1262.
Inoltre, Texas Instruments offre Code Composer Studio™, un IDE che supporta la scrittura e il debug del codice MSP430.
Conclusione
LoRa si è affermato come standard per la trasmissione dei dati dei sensori IoT. Lo standard è stato esteso per includere FUOTA, ma questo ha portato con sé nuove sfide per una lunga durata della batteria. Scegliendo microcontroller basati su FeRAM al posto della memoria flash, i progettisti possono ridurre notevolmente la potenza necessaria per scrivere questi aggiornamenti sulla memoria del dispositivo.
Inoltre, come mostrato, la scelta dei microcontroller diventa ancora più importante per ridurre al minimo il consumo della batteria, fornendo al tempo stesso una potenza di calcolo sufficiente per l'applicazione.
Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.





