Progettazione di applicazioni intelligenti Bluetooth Low Energy con rete a maglie Bluetooth - Parte 1
Contributo di Editori nordamericani di DigiKey
2018-03-21
Nota: La parte 1 di questa serie in due parti illustra in dettaglio l'architettura e le capacità del protocollo Bluetooth Mesh 1.0. Il protocollo è stato introdotto come uno stack complementare al firmware di Bluetooth Low Energy e porta per la prima volta la connettività di rete a maglie open-standard in Bluetooth Low Energy. Inoltre, questo articolo illustra i vantaggi e gli svantaggi di una rete a maglie Bluetooth, consentendo ai progettisti di confrontarla con altre tecnologie wireless alternative a bassa potenza per determinare se può essere la scelta giusta per le loro applicazioni wireless. La Parte 2 descrive come integrare la rete a maglie Bluetooth nei progetti Bluetooth Low Energy utilizzando i circuiti integrati e i kit di sviluppo disponibili presso i fornitori DigiKey.
La connettività di rete a maglie è un requisito fondamentale per le tecnologie wireless a bassa potenza destinate alle applicazioni intelligenti, perché abbatte i limiti del campo di portata, facilita la scalabilità e aumenta la robustezza. Tuttavia, i progettisti che desiderano utilizzare Bluetooth Low Energy fino a poco tempo fa non avevano accesso alle reti a maglie.
Tale situazione li ha costretti a optare per altre tecnologie come Zigbee e Thread per applicazioni di domotica, anche se Bluetooth Low Energy avrebbe tutti i requisiti di idoneità per tutto il resto. (Vedere l'articolo di DigiKey "Confronto tra tecnologie wireless a bassa potenza").
Bluetooth SIG ha ora colmato questa lacuna con l'introduzione di una specifica supplementare, Bluetooth Mesh 1.0. Questa specifica non richiede hardware aggiuntivo e può essere eseguita su tutti i chip Bluetooth Low Energy (v4.0, 4.1, 4.2 e 5). Alcuni fornitori stanno già supportando Bluetooth Mesh 1.0 con le proprie implementazioni firmware delle specifiche e degli strumenti di sviluppo associati.
Tuttavia, prima di intraprendere la progettazione di reti a maglie adottando la nuova specifica, i progettisti dovrebbero prendere conoscenza delle differenze tra l'implementazione da parte di Bluetooth SIG rispetto alle tecnologie alternative. Ad esempio, è bene sapere quale compromesso è stato adottato relativamente alla semplicità, al consumo energetico e alla flessibilità. Tali differenze infatti influenzano le scelte progettuali e il processo.
Questo articolo tratta la specifica e spiega l'architettura della rete a maglie Bluetooth per i progettisti. Ne descrive le caratteristiche operative e come supporta applicazioni per la casa e, ad esempio, l'illuminazione intelligente. L'articolo si conclude con l'introduzione di alcuni strumenti di progettazione di reti a maglie Bluetooth e soluzioni hardware e software di supporto.
I vantaggi della rete a maglie
Bluetooth Low Energy è stato inizialmente progettato per integrare il Bluetooth "classico" estendendo la tecnologia wireless a dispositivi periferici con una modesta capacità della batteria. Esempi di periferiche sono i sensori sportivi come le cinture di rilevamento della frequenza cardiaca o i giocattoli controllati in modalità wireless. Ogni periferica comunica attraverso un canale indipendente con un dispositivo di supervisione centrale, ad esempio uno smartphone, formando una topologia di rete a stella.
In parte grazie alla sua interoperabilità con gli smartphone, Bluetooth Low Energy si è rapidamente esteso ad altri settori, tra cui la casa intelligente per applicazioni come il controllo dell'illuminazione. In questo tipo di applicazioni, gli svantaggi delle reti a stella sono diventati ben presto evidenti.
Ad esempio, le soluzioni Bluetooth Low Energy sono in grado di gestire solo un numero limitato di connessioni simultanee (in genere otto). Gli impianti di illuminazione con un numero di lampadine superiore non possono essere controllati con un unico comando, introducendo quindi il fattore latenza. In secondo luogo, in una grande casa, le lampadine in luoghi lontani potrebbero essere fuori dalla portata del controller centrale.
In una rete a maglie, invece di un dispositivo centrale che comunica con i singoli dispositivi periferici, viene trasmesso un messaggio da un punto all'altro della rete saltando attraverso canali bidirezionali che collegano più nodi. In questo modo, la rete a maglie offre notevoli vantaggi perché consente il controllo simultaneo di decine di dispositivi collegati, supera le limitazioni di portata e crea ridondanza. (Figura 1.)

Figura 1: Topologia della rete a maglie. Un messaggio può essere inoltrato da un punto della rete a un altro saltando attraverso canali bidirezionali che collegano più nodi. (Immagine per gentile concessione di Silicon Labs)
Lo stack di rete a maglie Bluetooth
Dalla sua introduzione come parte della Bluetooth Core Specification 4.0, Bluetooth Low Energy è stato rivisto con le versioni 4.1, 4.2 e 5. Bluetooth 5 ha introdotto miglioramenti in termini di portata, velocità di trasmissione, diffusione e coesistenza. (Vedere l'articolo di DigiKey "SoC e strumenti Bluetooth Low Energy compatibili con Bluetooth 4.1, 4.2 e 5 pronti ad affrontare le sfide IoT").
Essendo l'ultima versione, si potrebbe supporre che Bluetooth Mesh 1.0 costituisca solo un aggiornamento a Bluetooth 5, ma non è così. Qualsiasi chip Bluetooth Low Energy della generazione precedente (4.0, 4.1, 4.2, 5) può essere modificato per eseguire Bluetooth Mesh con un semplice aggiornamento del firmware, consentendo alle installazioni sul campo di trarre vantaggio dalla nuova tecnologia.
La chiave di questa retrocompatibilità deriva dal fatto che Bluetooth Mesh non è parte integrante dello stack Bluetooth Low Energy, ma è una nuova entità separata composta da sette livelli (Figura 2).

Figura 2: Bluetooth Mash è costituito da uno stack di sette livelli che integra il protocollo Bluetooth Low Energy. (Immagine per gentile concessione di Bluetooth SIG)
Quando il nodo Bluetooth Mesh riceve un messaggio, lo trasmette ai livelli superiori dallo stack Bluetooth Low Energy sottostante attraverso il livello portante fino al livello della rete. Il livello di rete applica vari controlli per decidere se passare il messaggio ai livelli di trasporto o eliminarlo.
Si noti che la specifica Bluetooth Mesh definisce un livello host completamente nuovo che condivide alcuni concetti con il livello host Bluetooth Low Energy, ma non è compatibile con esso. Questo meccanismo è un po' diverso rispetto a tecnologie concorrenti come Zigbee e Thread, che sono state progettate fin dall'inizio per includere la rete a maglie (Figura 3).

Figura 3: Disposizione dello stack di Bluetooth Mesh (azzurro) all'interno del protocollo Bluetooth Low Energy (blu scuro). La specifica Bluetooth Mesh definisce un livello host completamente nuovo che condivide alcuni concetti con il livello host Bluetooth Low Energy, ma non è compatibile con esso. (Immagine per gentile concessione di Nordic Semiconductor)
Nodi di rete a maglie Bluetooth
Bluetooth Mesh utilizza quattro tipi di nodi di rete:
I nodi relè ricevono e inoltrano i pacchetti attraverso la rete. Uno svantaggio dei nodi relè è che devono rimanere costantemente in allerta, il che aumenta in modo significativo il consumo di energia. Questo non è uno svantaggio per le applicazioni alimentate dalla rete, come l'illuminazione intelligente, ma è un problema per i nodi non alimentati dalla rete, come gli interruttori incorporati nella rete.
I nodi a bassa potenza (LPN) adottano le caratteristiche standard di risparmio energetico di Bluetooth Low Energy (ovvero rimanere in stato di sospensione per lunghi periodi) e quindi possono funzionare per molto tempo alimentati da batterie o grazie all'energy harvesting. Ogni LPN è collegato ad un nodo amico alimentato dalla rete elettrica, che rimane sveglio e memorizza eventuali messaggi diretti all'LPN. Quando l'LPN entra in modalità di ricezione (secondo un programma prestabilito) accetta i messaggi in cache, funziona come indicato e torna in modalità di risparmio energetico.
I nodi proxy consentono ai dispositivi che non includono lo stack di Bluetooth Mesh di connettersi a una rete a maglie Bluetooth. Ciò è utile, ad esempio, quando un consumatore desidera utilizzare uno smartphone tradizionale per controllare una rete di illuminazione intelligente. L'interazione avviene tramite il nodo e l'interfaccia GATT (Generic Attribute) del dispositivo (Figura 4).

Figura 4: Bluetooth Mesh utilizza quattro tipi di nodi. In questa immagine, tutte le lampadine e gli interruttori, ad eccezione della lampadina all'estrema sinistra, sono nodi relè alimentati dalla rete elettrica. (Immagine per gentile concessione di Ericsson)
Il sensore di temperatura è un LPN alimentato a batteria e riceve periodicamente messaggi dal nodo "amico" alimentato dalla rete elettrica formato dalla lampadina all'estrema sinistra. Lo smartphone forma un nodo proxy utilizzando l'interfaccia GATT dello stack Bluetooth Low Energy anziché lo stack Bluetooth Mesh.
Prima che un nuovo nodo possa partecipare al normale funzionamento della rete a maglie, deve essere "approvvigionato" da un fornitore. Si tratta di un dispositivo affidabile con accesso a tutti i nodi di una rete. Al nuovo nodo viene assegnato un indirizzo, insieme a chiavi di rete e di dispositivo. Dopo il provisioning, la chiave del dispositivo viene utilizzata per stabilire un canale sicuro per configurare il nuovo nodo. Bluetooth Mesh può supportare fino a 32.000 nodi.
Architettura di Bluetooth Mesh
Bluetooth Mesh utilizza una tecnica di "flooding" per inviare messaggi attraverso la rete. Ogni pacchetto viene trasmesso ad ogni nodo della rete fino al raggiungimento della/e destinazione/e. Un messaggio può essere indirizzato a un singolo nodo, a un gruppo di nodi o a tutti i nodi.
I gruppi di nodi sono mirati utilizzando un indirizzo di gruppo che definisce un elemento della rete, ad esempio le luci di una singola stanza. Inoltre, la specifica definisce quattro indirizzi di gruppo fissi: All-proxies, All-friends, All-relays e All-nodes (Tutti i proxy, Tutti gli amici, Tutti i relè e Tutti i nodi) per indirizzare in modo specifico i tipi di nodo. (Notare che gli LPN non possono essere indirizzati in modo specifico a causa della loro dipendenza dai nodi amici.)
La scelta di un'architettura flooding su rete a maglie e di un indirizzamento di gruppo rafforza l'idoneità di Bluetooth Mesh per applicazioni di domotica. Ad esempio, una rete a maglie con flooding permette un comando "ON" da un interruttore per propagarsi rapidamente attraverso una rete di luci intelligenti con ogni nodo che riceve il comando e agisce di conseguenza. Le luci del gruppo target si accendono quasi istantaneamente. La latenza minima nella rete è molto inferiore, ad esempio, a quella di una rete a stella, dove serve un dispositivo centrale per trasmettere un comando individuale ad ogni luce collegata.
Nel funzionamento tipico, i canali di advertising di Bluetooth Low Energy vengono utilizzati per pubblicizzare la presenza di un dispositivo Bluetooth e cercare altri dispositivi che desiderano comunicare. Una volta che i dispositivi si sono abbinati, la comunicazione si sposta su uno dei 37 canali a piena larghezza di banda, accelerando il throughput.
Al contrario, Bluetooth Mesh mantiene le cose semplici e abbassa la latenza non spostandosi su canali a banda larga una volta che i nodi sono stati collegati, infatti continua a utilizzare i canali di advertising per trasferire informazioni.
L'aspetto negativo di questa disposizione è la ridotta larghezza di banda della rete e il rischio di congestione, in quanto solo tre frequenze a throughput limitato gestiscono tutto il traffico. Per gestire tale congestione entrano in gioco due meccanismi. Il primo è un contatore "Time To Live" (TTL) che definisce quante volte uno specifico pacchetto può essere inoltrato (un valore tipico è di tre passi). Il secondo è una cache di pacchetti che cattura i pacchetti che hanno percorso per intero la rete a maglie; a quel punto si presume che non sia necessaria un'ulteriore trasmissione.
Lo sviluppatore può anche utilizzare una funzione opzionale di relaying per preservare la larghezza di banda, per cui i nodi possono ricevere i pacchetti, ma non trasmetterli. Il compromesso è una perdita di flessibilità.
Bluetooth Mesh: modelli invece di profili
Bluetooth Mesh segue l'architettura della tecnologia Bluetooth utilizzando i profili GATT che consentono a molte applicazioni di condividere una struttura informativa comune. Ma nello stack di Bluetooth Mesh questi profili sono chiamati Modelli.
Un Modello rappresenta uno specifico comportamento o servizio e definisce un insieme di stati e messaggi che agiscono su tali stati. I modelli standard coprono scenari di utilizzo tipici come la configurazione del dispositivo, le letture dei sensori e il controllo della luce. I fornitori possono anche creare modelli personalizzati.
I modelli in un nodo sono disposti in elementi, ognuno dei quali funge da entità virtuale nella rete a maglie con un indirizzo univoco. Ogni messaggio in arrivo è gestito da un modello in un elemento (Figura 5).

Figura 5: Ogni nodo di rete (Mesh Device) incorpora modelli raggruppati in elementi. Ogni elemento ha un indirizzo univoco e i modelli in un elemento gestiscono i messaggi in arrivo. (Immagine per gentile concessione di Nordic Semiconductor)
I modelli parlano tra loro attraverso un sistema di "pubblicazione e sottoscrizione". La pubblicazione invia un messaggio e i nodi sono configurati per sottoscrivere i messaggi inviati a indirizzi specifici per l'elaborazione.
Nella Figura 6, l'interruttore della luce all'estrema sinistra (interruttore 1) pubblica l'indirizzo del gruppo Cucina. I Nodi Luce 1, Luce 2 e Luce 3 sottoscrivono l'indirizzo di Cucina e quindi ricevono, elaborano e agiscono sui messaggi (come i comandi "on" e "off") pubblicati verso questo indirizzo. Va notato che Luce 3 sottoscrive anche l'indirizzo della sala da pranzo e può quindi essere azionata sia dall'Interruttore 2 che dall'Interruttore 1.

Figura 6: Comunicazioni tra i modelli attraverso un sistema di pubblicazione e sottoscrizione Un modello può essere sottoscritto da più di un publisher. (Immagine per gentile concessione di Bluetooth SIG)
(Si noti che i modelli sono un soggetto coinvolto). Si consiglia di consultare il riferimento 1 per maggiori dettagli oltre a quanto riassunto in questo articolo).
Progettazione con Bluetooth Mesh
Alcuni fornitori di Bluetooth Low Energy hanno introdotto stack di Bluetooth Mesh conformi agli standard. Poiché Bluetooth Mesh è complementare al protocollo Bluetooth Low Energy già consolidato, non è necessario che uno sviluppatore sostituisca uno stack di questo tipo, maturo e collaudato, con uno nuovo per sfruttare Bluetooth Mesh. Inoltre il firmware Bluetooth Mesh apporta tutte le caratteristiche della nuova tecnologia a progetti nuovi o esistenti, senza che lo sviluppatore debba scrivere molto codice nuovo.
Nordic Semiconductor, ad esempio, ha recentemente aggiunto SDK nRF5 per Mesh alla sua linea di kit di sviluppo. Il kit di sviluppo software include una selezione di driver, librerie ed esempi ed è progettato per funzionare in diversi ambienti di sviluppo integrato (IDE) e compilatori tra cui CMake e SEGGER Embedded Studio.
Il codice compilato viene eseguito sul kit di sviluppo nRF52 DK della società che si basa sul suo chip nRF52832.
La documentazione di Nordic descrive come sviluppare una rete a maglie con istruzioni chiare su come compilare lo stack di Bluetooth Mesh, come effettuare il provisioning delle maglie, come costruire una rete e come creare nuovi modelli.
Nella Figura 7 viene portato come esempio un nuovo dispositivo (una lampadina) configurato utilizzando SDK nRF5 per Mesh. In questa illustrazione, la lampadina segnala al Provisioner che sta cercando una rete a cui connettersi. Il Provisioner convalida il beacon della lampadina e lo invita a entrare a far parte della rete. Se l'autenticazione ha esito positivo, al dispositivo vengono fornite le chiavi e gli indirizzi necessari per accedere alla rete e prepararsi per la configurazione. Successivamente alla lampadina viene consegnata la chiave applicativa "domotica". Viene impostato lo stato di pubblicazione del "Server OnOff" (che controlla la lampadina) e infine viene aggiunta una sottoscrizione al "gruppo di illuminazione".

Figura 7: Provisioning e configurazione di una lampadina in una rete a maglie che utilizza l'SDK nRF5 di Nordic Semiconductor per Mesh. (Immagine per gentile concessione di Nordic Semiconductor)
Silicon Labs offre anche Bluetooth Mesh con il suo Starter kit Bluetooth EFR32 Blue Gecko. La società raccomanda l'acquisto di tre o quattro kit per costruire un prototipo di rete a maglie. I kit sono basati sul suo SoC Bluetooth Low Energy EFR32MG1. Oltre all'hardware, lo sviluppatore avrà bisogno di un SDK Bluetooth e di un SDK Bluetooth Mesh, entrambi scaricabili dal sito web della società.
Per iniziare a implementare la tecnologia Bluetooth Mesh di Silicon Labs è necessario Simplicity Studio IDE. Gli strumenti di sviluppo includono dimostrazioni precompilate, note applicative ed esempi. È disponibile un'applicazione Android per fornire, configurare e controllare i nodi Bluetooth Mesh da un'applicazione per smartphone.
STMicroelectronics ha adottato un approccio simile a quello di Nordic Semiconductor e di Silicon Labs con un SDK che consente lo sviluppo di dispositivi in rete basati sui suoi SoC Bluetooth Low Energy BlueNRG-2.
Conclusione
Bluetooth Mesh porta la rete a maglie a Bluetooth Low Energy, eliminando la necessità di utilizzare il firmware di rete proprietario per le applicazioni relative alle case intelligenti.
La tecnologia offre semplicità a fronte di un lieve aumento del consumo energetico e di una certa flessibilità. Un vantaggio chiave è che la tecnologia è compatibile con tutti i chip Bluetooth Low Energy, non solo con i prodotti Bluetooth 5 più recenti.
I fornitori di chip Bluetooth Low Energy hanno iniziato a introdurre kit di sviluppo software Bluetooth Mesh per integrare i loro prodotti hardware e i loro protocolli firmware maturi.
La Parte 2 di questo articolo spiegherà in dettaglio come integrare Bluetooth Mesh in Bluetooth Low Energy utilizzando hardware, firmware e kit di sviluppo facilmente disponibili.
Riferimento
- "Bluetooth Mesh Networking/ An Introduction for Developers", Bluetooth SIG, Agosto 2017.
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.


