Creare rapidamente un dispositivo di rete a maglie compatibile con più protocolli
Contributo di Editori nordamericani di DigiKey
2019-04-09
I dispositivi connessi sono spesso collegati in rete tramite una delle diverse topologie di rete a maglie che migliorano la robustezza della rete, la copertura dell'area e limitano il consumo energetico. In genere, i progettisti dovevano scegliere uno di questi protocolli concorrenti e incompatibili e implementare poi lo stack software sulla piattaforma hardware scelta. Ora possono evitare entrambe queste attività impegnative.
Grazie ai progressi fatti nel campo dell'integrazione, gli sviluppatori possono scegliere un controller di rete a maglie a basso costo e poco ingombrante che supporta diversi standard concorrenti, tra cui Thread, Zigbee e Bluetooth Low Energy (BLE). Questa soluzione offre diversi gradi di flessibilità:
- Consente di procedere con la progettazione e selezionare un protocollo in seguito, durante il ciclo di lavoro.
- Consente di testare e scegliere empiricamente il protocollo più idoneo per l'applicazione, utilizzando un unico dispositivo e una sola piattaforma di sviluppo.
- È possibile utilizzare una sola piattaforma per più applicazioni e regioni geografiche.
- Consente di distribuire i dispositivi con un protocollo e di sostituirlo in seguito con un aggiornamento firmware.
Questo articolo descriverà alcuni dei principi base della rete a maglie wireless prima di presentare la famiglia SoC (system-on-chip) wireless Mighty Gecko e gli strumenti di sviluppo correlati di Silicon Labs. Verrà quindi mostrato come un progettista può utilizzarlo come piattaforma per creare rapidamente una rete a maglie operativa basata su vari protocolli di rete concorrenti.
Cos'è una rete a maglie wireless?
Le reti a maglie wireless si differenziano dalle familiari reti a stella come Wi-Fi, o i protocolli punto-punto, in base alle originali specifiche Bluetooth. In una rete a maglie, i pacchetti di dati possono "saltare" da un dispositivo collegato a un altro finché non raggiungono la loro destinazione (Figura 1). Inoltre, per comunicare con tutti gli altri dispositivi nella stessa rete, è sufficiente che ogni singolo dispositivo si trovi nel raggio d'azione di un altro dispositivo in rete. Ad esempio, un dispositivo nel seminterrato può comunicare con uno nell'attico, anche se nessuno dei due potrebbe avere abbastanza energia RF per raggiungere direttamente l'altro. Un buon protocollo di rete a maglie ottimizza il percorso in base alle esigenze dell'applicazione.

Figura 1: Una rete a stella (in alto) ha un router centrale o un punto di accesso attraverso il quale tutti i nodi devono comunicare, mentre in una rete a maglie (in basso) tutti i nodi collaborano per distribuire i dati in una rete. (Immagine per gentile concessione di Silicon Labs)
Dato che tutti i dispositivi di una rete a maglie collaborano inviando messaggi alla loro destinazione, la rete può tollerare nodi mancanti, difettosi o spenti. Presumendo che ogni nodo si trovi nel raggio d'azione di più nodi, questa capacità di salto e instradamento rende le reti a maglie estremamente robuste e tolleranti ai guasti. Il concetto è simile al protocollo TCP/IP che sta alla base della stessa Internet: i pacchetti di dati alla fine trovano la loro destinazione, anche se non sempre attraverso un percorso diretto.
Esistono diversi protocolli di rete a maglie concorrenti, tutti incompatibili fra loro anche se si basano su principi fondanti simili. Zigbee, Thread e BLE sono tre esempi. Operano tutti nella stessa banda di 2,4 GHz ma utilizzano protocolli per reti a maglie diversi, per cui non interagiscono.
Ogni protocollo per reti a maglie wireless ha vantaggi e svantaggi e spetta agli sviluppatori decidere quale sia lo standard più idoneo al loro caso. Talvolta, invece di adottare uno degli standard potrebbero preferire creare una propria rete a maglie wireless proprietaria. Questa decisione potrebbe essere dovuta a motivi di sicurezza, per differenziare il prodotto oppure per implementare una serie di caratteristiche uniche.
Presentazione di Mighty Gecko
Per massimizzare la flessibilità e ridurre i tempi di progettazione e sviluppo è una buona idea scegliere un controller di rete wireless che supporti più standard. Ciò offre agli sviluppatori quattro tipi di flessibilità. In primo luogo, rinvia la decisione sulla scelta dello standard di rete fino a una fase molto avanzata del ciclo di progettazione, per ascoltare il parere dei clienti o per integrare informazioni di mercato più aggiornate. In secondo luogo, permette agli sviluppatori di testare in laboratorio diversi standard di rete e scegliere il migliore sulla base di prove empiriche. In terzo luogo, consente di implementare un'unica piattaforma in più prodotti che utilizzano standard di rete diversi. Questo potrebbe essere particolarmente utile quando si servono diversi mercati geografici in tutto il mondo. In quarto luogo, consente di modificare, migliorare o aggiornare sul campo il dispositivo o la piattaforma, eventualmente anche cambiando la rete che supporta.
Per dare ai progettisti questa flessibilità, Silicon Labs ha sviluppato la famiglia Mighty Gecko di dispositivi SoC wireless per reti a maglie (Figura 2). La famiglia (chiamata internamente EFR32MG) comprende diversi componenti correlati, tutti basati sullo stesso core del processore a 32 bit Arm® Cortex®-M4 a 40 MHz.
Figura 2: Basata su un Arm Cortex-M4, la famiglia di SoC Mighty Gecko ha quasi tutto ciò che serve per un controller di rete a maglie wireless. (Immagine per gentile concessione di Silicon Labs)
Le scelte comprendono le dimensioni della memoria flash su chip (256, 512 o 1024 kB), le dimensioni della SRAM interna (32, 64, 128 o 256 kB), il tipo di contenitore e l'intervallo di temperatura. Tutti i SoC Mighty Gecko sono specificati per l'intervallo di temperatura industriale (da -40 °C a +85 °C) e alcuni sono qualificati per temperature estese/automotive (da -40 °C a +125 °C).
Come SoC, Mighty Gecko ha quasi tutto ciò che serve per un controller di rete a maglie wireless. La sezione radio in alto a sinistra del diagramma a blocchi mostra due sezioni RF separate: una per la banda a 2,4 GHz con un massimo di 19 dBm di potenza di trasmissione utilizzata per Thread, Zigbee e BLE, e una radio sub-GHz separata con una potenza fino a 20 dBm per la realizzazione di reti proprietarie.
Il chip ha anche un'ampia gestione dell'alimentazione su chip, un intervallo di tensione di funzionamento da 1,8 a 3,8 V, un convertitore c.c./c.c. integrato e la capacità "wake-on-radio", che permette all'intero chip di mettersi in modalità standby a basso consumo finché non riceve un pacchetto radio. Inoltre, il rilevamento incorporato della forza del segnale, il rilevamento del modello di preambolo, il rilevamento del frame e il timeout consentono al chip di attivarsi solo in occasione di trasmissioni radio che lo interessano, non necessariamente per tutto il traffico radio.
Invece di progettare da zero una scheda basata su Mighty Gecko, è molto più facile iniziare con un kit di sviluppo e valutazione già pronto. Lo starter kit SLWSTK6000B prevede tutto l'hardware e il software necessari per configurare e testare una piccola rete a maglie.
Il kit include tre set identici di schede, ognuno dei quali è composto da una scheda principale e da una scelta di schede radio plug-in (Figura 3). Un singolo set potrebbe essere utile per una valutazione precoce o per lo sviluppo di software, ma per testare la rete ne servirebbero almeno due, e tre o più per testare le capacità della rete a maglie. È quindi logico che il kit SLWSTK6000B venga fornito con tre set completi di tutto l'occorrente.

Figura 3: Uno starter kit SLWSTK6000B include tre set identici di schede principali e schede radio plug-in per creare una piccola rete a maglie. (Immagine per gentile concessione di Silicon Labs)
Quello che potrebbe sembrare un grande circuito integrato al centro della scheda principale è di fatto un display LCD (Figura 4). Il display monocromatico da 128×128 pixel richiede pochissima potenza e memorizza internamente i dati dei pixel, quindi non deve essere aggiornato. Il chip del microcontroller Mighty Gecko si trova sulla scheda radio plug-in più piccola.

Figura 4: Coppia scheda principale/scheda radio dello starter kit per reti a maglie SLWSTK6000B. Il grande dispositivo al centro è un display LCD bitmap. (Immagine per gentile concessione di Silicon Labs)
Le schede radio plug-in possono essere rimosse e sostituite su ogni scheda principale e il kit viene fornito con due tipi diversi per ogni scheda principale (per un totale di sei schede radio). Tutte le schede nel kit supportano Zigbee e Thread nella banda di 2,4 GHz, ma sono disponibili anche altre schede con altre caratteristiche e frequenze RF, comprese quelle che supportano frequenze sub-GHz per reti proprietarie.
Non è obbligatorio ma è buona norma assemblare l'hardware e accenderlo prima di installare ed eseguire l'IDE software. Basta scegliere una scheda radio e premerla delicatamente sulle basette corrispondenti della scheda principale. L'alimentazione può essere fornita in diversi modi (ad es. tramite batteria, adattatore c.a. o USB), ma il più semplice è un cavo USB che offre alcuni vantaggi aggiuntivi. Il collegamento USB si trova sul bordo sinistro della scheda principale, di fronte alla scheda radio.
Una volta accesa la scheda, si accenderà un LED blu vicino al connettore USB e l'LCD quadrato al centro si illuminerà. Dopo una breve pausa, si illuminerà e inizierà a pulsare anche un LED verde.
Per i passi successivi, è meglio mantenere l'hardware collegato al sistema di sviluppo tramite il cavo USB. È inoltre consigliabile spostare il piccolo interruttore di alimentazione a tre posizioni (vicino all'angolo in basso a sinistra della scheda principale) fino alla posizione "AEM" all'estrema destra.
Installazione del software
Simplicity Studio è l'ambiente di sviluppo integrato (IDE) di Silicon Labs per Mighty Gecko e per molti altri microcontroller della società. Per scaricare il software gratuito, visitare la pagina di download di Simplicity Studio della società. Installare ed eseguire Simplicity Studio prima di continuare.
Eseguire Simplicity Studio e attenersi alle istruzioni per completare le altre fasi di configurazione specifiche per l'hardware del kit di sviluppo e del software desiderato. Il processo è semplice, ma richiede alcune decisioni e probabilmente un passo in più per la registrazione dell'hardware.
Se la scheda principale è ancora collegata al PC di sviluppo come raccomandato sopra, Simplicity Studio rileverà l'interfaccia USB dell'hardware durante la sua installazione e scaricherà e configurerà automaticamente alcune caratteristiche specifiche dell'hardware.
Il passo successivo è scaricare il software specifico per l'hardware per questo kit di sviluppo. Simplicity Studio offre due opzioni: "Install by Device" (Installazione in base al dispositivo) e "Install by Product Group" (Installazione in base al gruppo di prodotti) (Figura 5). Entrambe le opzioni produrranno lo stesso risultato, ma è più facile selezionare la prima, quindi fare clic sul grande pulsante verde "Install by Device".

Figura 5: Simplicity Studio offre due possibilità per caricare il software specifico per il progetto: installazione in base al dispositivo e installazione in base al gruppo di prodotti. (Immagine per gentile concessione di DigiKey)
Simplicity Studio dovrebbe rilevare automaticamente la scheda di sviluppo ma, anche se non lo facesse, è facile individuare manualmente il pacchetto software richiesto. Basta digitare "SLWSTK6000B" nella casella di ricerca, come mostrato nella Figura 6. Fare doppio clic sul pacchetto di supporto software suggerito, quindi fare clic su Next.

Figura 6: Digitando SLWSTK6000B nella casella di ricerca, il software richiesto viene individuato rapidamente. (Immagine per gentile concessione di DigiKey)
Simplicity Studio evidenzierà poi il supporto software aggiuntivo disponibile per questa configurazione hardware. Alcuni di questi software sono riservati agli utenti che si sono registrati presso Silicon Labs e/o che hanno registrato l'hardware. Pertanto, alcune opzioni potrebbero essere disattivate e temporaneamente non disponibili, come mostrato nella Figura 7.

Figura 7: L'accesso ad alcuni software dipende dalla prova di acquisto dell'hardware. (Immagine per gentile concessione di DigiKey)
Gli stack software per Thread, Zigbee e altri protocolli sono subordinati alla prova di acquisto dell'hardware abilitato per la rete a maglie, come il kit di sviluppo SLWSTK6000B. Prima di procedere è quindi importante completare i seguenti passi di registrazione.
Per prima cosa individuare il codice esadecimale a 10 cifre scritto all'esterno della scatola dello starter kit Mighty Gecko. (Per informazioni su come trovare la chiave a 10 cifre, fare riferimento a "Access to Silicon Labs Wireless Mesh Stacks" nella Knowledge Base Zigbee e Thread di Silicon Labs.) Quindi fare clic sul link "Register Kit" sulle opzioni Thread o EmberZNet (Zigbee), come mostrato sopra. Questo completerà la registrazione dell'hardware e sbloccherà gli stack del protocollo di rete a maglie. Fare clic su Next per procedere.
Infine, Simplicity Studio presenterà un lungo elenco di tutte le opzioni software che consiglia di installare, fra cui uno o più compilatori C, sistemi operativi opzionali in tempo reale, strumenti di profilazione e molte altre opzioni (Figura 8). Alcune opzioni possono essere attivate o disattivate manualmente, se lo si desidera, ma in genere è meglio accettare la dotazione software suggerita. Quando si è pronti, fare clic su Next.

Figura 8: L'elenco finale del software per Simplicity Studio mostra tutte le opzioni software consigliate, compreso uno o più compilatori C, sistemi operativi opzionali in tempo reale e strumenti di profilazione. (Immagine per gentile concessione di DigiKey)
Per ultimo, Simplicity Studio mostrerà il suo contratto di licenza software principale che copre tutti i componenti software che sta per installare. Leggere e accettare la licenza, quindi fare clic su Next per l'ultima volta.
L'installazione del software richiede diversi minuti. Al termine, chiudere e riavviare Simplicity Studio. Tutto è pronto per iniziare a creare applicazioni di rete a maglie utilizzando Thread, Zigbee, Bluetooth o un protocollo proprietario personalizzato. Per permettere agli sviluppatori di partire con il piede giusto, Simplicity Studio include alcuni semplici programmi demo preconfigurati, oltre a un codice di esempio che può essere modificato.
Conclusione
Creare dispositivi connessi in modalità wireless che utilizzano una rete a maglie è diventata un'operazione semplice grazie a un kit preconfigurato di hardware compatibile e software pre-testato. La flessibilità dell'hardware consente una rapida valutazione empirica dei diversi protocolli di rete, come Zigbee, Thread e BLE, e anche di passare in futuro da un protocollo all'altro. Questo passaggio può avvenire sia durante la fase di progettazione e sviluppo, sia dopo la distribuzione del prodotto finale.
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.



