La connettività IoT con STM32 e LoRa

L'aumento dei dispositivi connessi ha posto l'accento sulla comunicazione wireless a bassa potenza. Una delle tecnologie che contribuirà alla diffusione completa dell’ecosistema IoT sarà LoRa (Long Range Radio). Con l’ingresso nella LoRa Alliance,  STMicroelectronics ha concentrato i suoi sforzi nel mercato IoT, attraverso soluzioni hardware e software per un corretto sviluppo di applicazioni LoRa, caratterizzate da un basso consumo energetico al fine di consentire ai dispositivi di lavorare in piena autonomia per lunghi periodi.    

Introduzione

In qualità di membro della LoRa Alliance, STMicroelectronics offre un ricco set di strumenti hardware dedicati alla valutazione e allo sviluppo di soluzioni LoRa. In combinazione con il pacchetto di espansione software LoRaWAN per STM32Cube (I-CUBE-LRWAN), che comprende un insieme di librerie ed esempi applicativi, questi strumenti hardware rappresentano il modo più rapido per costruire dispositivi end-node LoRaWAN. Il kit B-L072Z-LRWAN1 LoRa è uno strumento di sviluppo per soluzioni basate su tecnologie di modulazione LoRa e FSK/OOK. Il punto di forza è il modulo all-in-one CMWX1ZZABZ-091 della Murata con un microcontrollore a 32 bit STM32L072CZ e un ricetrasmettitore SX1276 della SemTech. Il ricetrasmettitore sfrutta il protocollo LoRa garantendo un lungo raggio di comunicazione, elevata immunità ai disturbi e bassi consumi di corrente. Usando una tecnica di modulazione LoRa brevettata da SemTech, SX1276 può raggiungere una sensibilità di oltre -148dBm. La banda di frequenze in cui lavora LoRa viene definita come Sub-Giga Hz, riferita anche come banda ISM (Industrial-Scientific and Medical). Si tratta di uno spettro elettromagnetico riservato per applicazioni non commerciali, pronto per essere utilizzato in ambiti scientifici, medicali e industriali. SX1276 è destinato ad applicazioni su un'ampia gamma di frequenza e copre tutte le bande sub-GHz disponibili (168MHz, 434MHz, 470MHz, 868MHz e 902MHz). Il modulo CMWX1ZZABZ-091 (Figura 1) permette l’accesso a tutte le periferiche del STM32L072 come ADC, timer a 16 bit, I2C, SPI.

Il kit include un'interfaccia di debug ST-LINK / V2-1, LED, pulsanti, antenna, connettori per la compatibilità con Arduino Uno e connettore USB OTG in formato Micro-B. Lo stack LoRaWAN è certificato in classe A e C, disponibile all'interno del pacchetto firmware I-CUBE-LRWAN dove sono presenti numerosi esempi per aiutare gli utenti nella progettazione (Figura 2).

Figura 1: Schema a blocchi del modulo all-in-one CMWX1ZZABZ-091 della Murata

 

Figura 2: Il kit B-L072Z-LRWAN1 LoRa della STMicroelectronics

I-NUCLEO-LRWAN1  è una soluzione integrata nata dalla collaborazione tra USI e STMicroelectronics, che consente di imparare e sviluppare soluzioni IoT utilizzando tecnologie LoRa e FSK / OOK.  Include il modulo USI LoRaWAN, connettori Arduino, un connettore SMA, un'antenna di 50 Ω e tre sensori ambientali della ST Microelectronics (figura 3).

Figura 3: Il modulo I-NUCLEO-LRWAN1

 

Figura 4: Il modulo P-NUCLEO-LRWAN1 con l'antenna e la board (bianca)  nucleoL073RZ. Il modulo verde è il SX1272MB2xAS.

P-NUCLEO-LRWAN1 (figura 4) è un altro strumento di sviluppo per tecnologie LoRa e FSK / OOK.  Questo modulo, in associazione con la soluzione software I-CUBE-LRWAN, fornisce i mezzi per creare un completo nodo LoRaWAN conforme alla classe A e basato sul SemTech SX1272MB2xAS LoRa extension. Viene fornito con una scheda NUCLEO-L073RZ basata sul microcontrollore STM32L0 32 bit con processore ARM Cortex-M0.

LoRaWAN

LoRaWAN è una Wide Area Network a bassa potenza (acronimo di Low Power Wide Area Network), con caratteristiche tecniche tali da supportare la comunicazione bidirezionale per Internet of Things (IoT), machine-to-machine (M2M) e per altre applicazioni industriali. La tecnologia LoRaWAN è ottimizzata per un basso consumo energetico ed è progettata per supportare grandi reti con milioni e milioni di dispositivi. Gli analisti di mercato stimano una forte riduzione dei costi di gestione attraverso l’IoT e l'Industry 4.0.  Il numero totale di connessioni IoT crescerà da alcuni miliardi nel 2015 ad oltre 30 miliardi nel 2020, con un CAGR di oltre il 16%. Le caratteristiche innovative di LoRaWAN includono il supporto per garantire la ridondanza del collegamento, la geolocalizzazione, basso costo e bassa potenza con la possibilità di sfruttare tecnologie di energy harvesting che permettono la mobilità e la facilità di utilizzo dell'Internet delle cose. I protocolli LoRaWAN sono definiti dal LoRa Alliance e formalizzati nel LoRaWAN Specification. LoRa Alliance, lanciato nel marzo 2015, oggi vanta più di 300 aziende che si dedicano allo sviluppo di tecnologie per LoRa IoT, M2M, smart city e altre applicazioni industriali e commerciali.

L'associazione LoRa Alliance è impegnata per l'interoperabilità e la qualità della rete, con diversi prodotti dei vari membri disponibili in tutto l'ecosistema. Il programma LoRa Alliance Certified sfrutta la competenza di industrie e consorzi di tutto il mondo per mantenere la visione del LoRa Alliance.

L’architettura di rete LoRaWAN è tipicamente disposta in una topologia a stella-di-stelle in cui il gateway è un ponte trasparente che rinvia dei messaggi tra i dispositivi e un server di rete centrale nel backend. I gateway sono collegati al server di rete tramite connessioni IP standard, mentre i dispositivi finali utilizzano la comunicazione wireless single-hop verso uno o più gateway. Tutte le comunicazioni end-point sono generalmente bi-direzionali, ma con supporto anche del funzionamento multicast per l'aggiornamento del software (Figura 5).

Figura 5: Architettura di una rete LoRaWAN

Una rete LoRaWAN prevede i seguenti componenti: end-devices o dispositivi terminali posizionati in località remote e dotati di sensori e attuatori; Gateway LoRa, ovvero l’interfaccia verso gli end-points; LoRa Network Server: l’unità che gestisce la rete. Un computer remoto per la raccolta e l’analisi dei dati.  La comunicazione tra dispositivi finali e gateway viene sparsa su diversi canali di frequenza e velocità di trasmissione dati. La selezione della velocità di trasmissione dati è un trade-off tra range di comunicazione e la durata del messaggio. Grazie alla tecnologia spread spectrum, le comunicazioni con diverse velocità di trasferimento dati non interferiscono tra loro e creano una serie di canali "virtuali" aumentando così la capacità del gateway. Per ottimizzare sia la vita della batteria dei dispositivi finali che la capacità globale della rete, il server di rete LoRaWAN gestisce la velocità dei dati e l'uscita RF per ciascuna estremità del dispositivo per mezzo di uno schema di data rate adattativo (ADR). Le reti a livello nazionale rivolte all’internet delle cose come le infrastrutture critiche e i dati personali per le società, hanno bisogno di una comunicazione sicura. Questo è stato risolto da vari strati di crittografia, quali Unique Network key (EUI64) che garantisce la sicurezza a livello di rete; Unique Application key (EUI64), invece, garantisce la sicurezza a livello di applicazione; e, infine, Device specific key (EUI128) relativamente al dispositivo.

Per LoRaWAN, i dispositivi terminali o end-points rappresentano i sensori e gli attuatori che inviano i dati da e per il mondo reale. Il protocollo suddivide questi dispositivi in tre categorie o classi per affrontare le diverse esigenze applicative in una vasta gamma di mercati. Le classi sono denominate con i termini: classe A, classe B e classe C:

  • Bi-directional end-devices (Classe A): dispositivi con comunicazione bidirezionale. I dispositivi che appartengono a questa categoria hanno un più basso consumo di energia e una limitata capacità di comunicazione.
  • Dispositivi con comunicazione bidirezionale + extra slots (Classe B). I dispositivi in questione possono attivare ulteriori finestre temporali in modalità di ricezione, per mettersi in ascolto di eventuali dati provenienti dal gateway.
  • Ascolto senza interruzioni (Classe C): i dispositivi finali in classe C hanno finestre di ricezione sempre attive, tranne nei casi in cui sono loro che trasmettono i dati.

Il kit P-NUCLEO-LRWAN1 della STMicroelectronics

Il kit P-NUCLEO-LRWAN1 è basato su una scheda NUCLEO-L073RZ, e una di espansione I-NUCLEO-SX1272D LoRa RF da SemTech Corporation con un'antenna sub-gigahertz SMA. La scheda di espansione fornisce una modulazione LoRa ad alte prestazioni e FSK/OOK. È ottimizzata per l'uso nelle bande 868MHz e 915MHz, e la sua potenza di uscita massima è 14dBm. P-NUCLEO-LRWAN1 è compatibile con l'espansione del software I-CUBE-LRWAN1, uno stack middleware certificato e conforme alle specifiche LoRaWANTM V1.0.1. La scheda NUCLEO-L073RZ incorpora un microcontrollore STM32L073RZ a 32 bit basato su Cortex-M0+ con 192 Kbyte di memoria Flash e 20 Kbyte SRAM. La scheda è alimentata tramite USB o batterie 3xAAA o AA posizionate sul retro della scheda con il ponticello JP5 a E5V (Figura 6 e 7).

Figura 6: il kit P-NUCLEO-LRWAN1 (modulo Nucleo)

 

Figura 7: il kit P-NUCLEO-LRWAN1 (modulo SX-1272D)

Per un corretto utilizzo della piattaforma, è necessario eseguire i seguenti passi di installazione:

  • Installare l'ambiente di sviluppo integrato (IDE). Tre toolchain sono supportati: IARTM EWARM, Keil MDK-ARMTM e AC6 SW4STM32
  • Installare un browser web.
  • Installare il driver ST-LINK / V2-1.
  • Stabilire il collegamento con la scheda NUCLEO-L073RZ collegando la porta USB alla porta USB del PC.
  • Installare un software del terminale come Tera Term e configurare il dispositivo come da figura 8.

Figura 8: configurazione seriale del modulo P-NUCLEO-LRWAN1

Il Kit B-L072Z-LRWAN1 LoRa della STMicroelectronics

Il kit B-L072Z-LRWAN1 LoRa sfrutta in un unico modulo la combinazione hardware del microcontrollore (MCU) STM32L072CZ e la connettività LoRa RF. Il kit a basso costo e facile da usare fornisce un programmatore e debugger incorporato ST-LINK / V2-1 per il microcrontrollore STM32L0 (Figura 9, 10 e 11).

Figura 9: Schema a blocchi del kit B-L072Z-LRWAN1

 

Figura 10: Kit B-L072Z-LRWAN1 (top layout)

 

Figura 11: kit B-L072Z-LRWAN1 (bottom layout)

Tra le nuove funzionalità supportate su ST-LINK / V2-1 troviamo l’interfaccia virtuale porta COM su USB, l’interfaccia di archiviazione di massa e la richiesta di gestione dell'alimentazione USB per potenze superiori a 100 mA.  ST-LINK / V2-1 richiede un driver USB che può essere scaricato dal sito della casa madre (STMicroelectronics) per i sistemi operativi Windows. E’ consigliabile installare prima i driver e poi collegare al PC la scheda B-L072Z-LRWAN1. ST-LINK / V2-1 incorpora un meccanismo di aggiornamento del firmware attraverso la porta USB. La casa madre consiglia, periodicamente, di aggiornarsi con i nuovi sviluppi sul prodotto ST-Link / V2-1 circa l’aggiunta di nuove funzionalità, correzioni di bug e il supporto per le nuove famiglie di microcontrollori.

Il kit è progettato per essere alimentato in vari modi. Attraverso una porta USB del PC con un cavo USB Micro-B, oppure con una delle seguenti fonti esterne: +3.3 V collegata al CN13;  7-12 V tra i connettori Arduino Uno V3: VIN sul pin 8 e GND sul pin 7 di CN4; USB 2.0 FS Micro-B sul connettore CN11 (modalità Device). In’ultima istanza, il kit può essere alimentato con un pacco batterie 3xAAA attraverso il connettore posto sul lato inferiore (figura 11) della scheda (le batterie non sono comprese all’interno della confezione del kit).  Per ridurre ulteriormente il consumo di corrente del bordo, il LED7 deve essere scollegato aprendo il ponticello SB18. Gli utenti non hanno la necessità di gestire le diverse configurazioni con ponticelli o interruttori. Gli alimentatori sono gestiti internamente da una serie di diodi sui rispettivi rami di alimentazione. Il modulo Murata LoRa incorpora un proprio TCXO a 32 MHz controllato da STM32 con il pin PA12 (quando il pin 1 di JP9 è collegato al pin 2 di JP9), oppure in modalità sempre attiva (quando il pin 2 di JP9 è collegato al pin 3 di JP9).  Qualora l'applicazione lo richieda, la scheda può essere fornita anche di un clock ad alta velocità. Inoltre, se necessario, il kit può essere dotato di un oscillatore a cristallo esterno per ogni esigenza applicativa.

Il kit B-L072Z-LRWAN1 Discovery include un’antenna 900 MHz 50 ohm che deve essere collegata al connettore SMA CN10 per la comunicazione RF. Ci sono due percorsi progettati per il segnale RF (freccia blu nella figura 12), il percorso predefinito è collegato al connettore SMA (freccia rossa in figura 12), mentre l'altra  è riferita al connettore U.FL CN9 (freccia verde nella figura 12). Ogni percorso del segnale RF comprende una circuiteria di matching per ogni esigenza di progettazione. Inizialmente, il percorso predefinito collega il segnale RF LoRa al connettore SMA attraverso resistenze da 0 Ohm che sono montati in corrispondenza di C14 e C15. Come illustrato nella figura 12, C13 e C14 hanno un pad comune sul layout del circuito. Questo permette ai progettisti di indirizzare il segnale a uno dei due connettori ruotando semplicemente il componente C13 nella giusta posizione.

Figura 12: percorso del segnale RF sulla scheda B-L072Z-LRWAN1 verso i due connettori antenna SMA o U.FL

I-CUBE-LRWAN

Il pacchetto I-CUBE-LRWAN è un'estensione software LoRaWANTM per STM32Cube, costituito da un insieme di librerie ed esempi applicativi per microcontrollori della serie STM32L0, STM32L1 e STM32L4 che agiscono come dispositivi finali.  Questo pacchetto supporta una serie di schede di espansione della SemTech quali SX1276MB1MAS e SX1272MB2DAS; include un'applicazione in esecuzione sulla scheda NUCLEO-L053R8, NUCLEO-L152RE, NUCLEO-L476RG e kit B-L072Z-LRWAN1 Discovery incorporato nel modulo CMWX1ZZABZ-091 di Murata. Supporta inoltre un modulo di tecnologia USI LoRaWAN attraverso la scheda di espansione I-NUCLEO-LRWAN1 descritta nei paragrafi precedenti.

Le caratteristiche principali di I-CUBE-LRWAN sono le seguenti:

  • facilità di aggiungere soluzioni LoRa a basso consumo;
  • basso carico della CPU;
  • non sono richiesti requisiti di latenza;
  • piccola occupazione di memoria.

Il pacchetto I-CUBE-LRWAN è diviso in diversi moduli: LoRaMac layer module, LoRa utilities module, LoRa crypto module e LoRa core module. In figura 13 è visualizzato uno schema a blocchi del firmware per I-CUBE-LRWAN. HAL (Hardware Abstraction Layer) utilizza le API Cube per guidare l'hardware MCU richiesto dall'applicazione.  RTC fornisce un'unità di tempo centralizzata che continua a funzionare anche in modalità basso consumo (modalità stop). L'allarme RTC viene utilizzato per riattivare il sistema in tempi specifici gestiti dal timer server. Il driver radio utilizza SPI e hardware GPIO, e fornisce anche un set di API per essere utilizzato dal software di livello superiore.

Figura 13: schema a blocchi del firmware

Conclusioni e considerazioni

LoRa offre una lunga durata della batteria di almeno 10 anni, in alcuni casi fino a 20. In termini di distanze LoRa funziona bene in ambienti urbani densi con più edifici dove più sensori possono connettersi a reti di grandi distanze, che lo rende perfetto per le applicazioni agricole. LoRa Alliance è un'associazione aperta senza scopo di lucro, formata da tutte quelle aziende che credono fortemente nell'Internet delle cose. La famiglia STM32 di microcontrollori a 32 bit basata su processore ARM Cortex-M combina elevate prestazioni, elaborazione del segnale digitale, funzionalità in tempo reale e bassa potenza di gestione, mantenendo una piena integrazione e facilità di sviluppo. Con i kit di sviluppo LoRa, STMicroelectronics ha introdotto una serie di sistemi di prototipazione rapida per l’IoT per realizzare Low Power Wide Area Network (LPWAN). L’ecosistema STM32 fornisce una vasta gamma di risorse per lo sviluppo di progetti, compresi esempi di codice per una vasta gamma di applicazioni. Gli sviluppatori potranno inoltre utilizzare altri sistemi di sviluppo, soprattutto gli strumenti online ARM mbed.

 

 

 

 

 

 

Scarica subito una copia gratis

Una risposta

  1. Avatar photo Maurizio Di Paolo Emilio 25 Aprile 2017

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend