Una nuova serie di MCU e moduli wireless è alla base delle applicazioni IoT connesse

Di Redattori europei

Contributo di Editori europei di DigiKey

Qualsiasi modello di business basato sull'Internet delle cose (IoT) dipende da comunicazioni wireless affidabili e sicure trasmesse lungo i nodi, per applicazioni di controllo e analitica basate sul cloud. Gli sviluppatori alle prese con la progettazione di sensori e attuatori basati su microcontroller hanno a disposizione un'ottima scelta di piattaforme di sviluppo MCU e toolchain. In passato, fornire comunicazioni wireless non era altrettanto facile. Di fronte alle approvazioni normative regionali per il wireless, alla necessità di usare o costruire propri stack di protocolli wireless validati e alle complessità di tutto ciò che è RF, il progettista spesso adotta un modulo wireless preapprovato invece di affrontare le sfide che comporta la realizzazione di un progetto discreto.

Per soddisfare sia le esigenze di connettività wireless che quelle informatiche relativamente basse dei nodi periferici IoT e dei sensori, è nato un nuovo tipo di moduli e MCU wireless che non richiedono host MCU aggiuntivi. Questi dispositivi e moduli standalone o senza host accelerano e semplificano l'intero processo di progettazione. Tuttavia, le esigenze di uno sviluppatore non vengono soddisfatte solo dalla disponibilità di un modulo idoneo. Nell'ambiente di sviluppo dei prodotti di oggi, il progettista di tecnologie embedded non ha il tempo di apprendere da zero tutte le capacità del modulo. La disponibilità di driver software, snippet di codice e piattaforme di valutazione è importante quanto le capacità del dispositivo. Più rapidamente uno sviluppatore può attivare le comunicazioni del dispositivo con il cloud, più è probabile che il dispositivo arrivi sul mercato e abbia successo.

Un esempio di MCU wireless che ha tutte le caratteristiche idonee è la serie CC3200 SimpleLink™ di Texas Instruments. I dispositivi SimpleLink sono accompagnati da un ecosistema completo di schede di valutazione, esempi di codice e una SDK globale. Disponibile in contenitori di diverse dimensioni, il CC3200 integra un microcontroller di applicazioni ARM® Cortex®-M4 a 80 MHz con un sottosistema di processore di rete Wi-Fi 802.11 b/g/n. Questo secondo sottosistema ha un proprio core MCU ARM dedicato che serve ad alleviare il carico di tutti gli stack di comunicazioni Wi-Fi dall'MCU dell'applicazione.

Diagramma a blocchi panoramico sull'hardware CC3200 di Texas Instruments

Figura 1: Diagramma a blocchi panoramico sull'hardware CC3200.

Ottimizzato per progetti IoT basati su batteria, CC3200 ha numerose altre caratteristiche, fra cui funzioni di gestione della batteria e una serie completa di interfacce periferiche che comprendono GPIO, UART, SPI, PWM e ADC a 4 canali a 12 bit. Le caratteristiche principali sono illustrate nella Figura 1. Con 256 kB di RAM, CC3200 è dotato anche di un motore di crittografia hardware a 256 bit per una rapida crittografia AES, DES e 3DES, oltre a capacità di autenticazione SHA2 e MD5. Grazie a un proprio sottosistema di gestione di potenza con convertitori c.c./c.c. integrati, è in grado non solo di far fronte a un ampio intervallo di tensioni di alimentazione, ma anche di controllare le modalità di basso consumo energetico; le più basse portano il dispositivo in una modalità di ibernazione con l'RTC che continua a funzionare. In questa modalità consuma meno di 4 μA.

Panoramica del software embedded CC3200 di Texas Instruments

Figura 2: Panoramica del software embedded CC3200

Un'altra prospettiva del CC3200 è illustrata nella Figura 2, sulla capacità software embedded dei dispositivi. Il sottosistema Wi-Fi supporta le modalità Station, Access Point e Wi-Fi Direct, assieme alla sicurezza WPA2 Personal ed Enterprise e a WPS 2.0. Stack di server TCP/IP, TLS/SSL e HTTP embedded su chip.

L'intero spettro delle capacità del CC3200 è indicato nella Figura 3, in cui sono illustrate le interfacce GPIO e periferiche, la gestione di potenza e il numero relativamente esiguo di componenti passivi aggiuntivi necessari.

Diagramma a blocchi funzionale di CC3200 di Texas Instruments (clic per ingrandire)

Figura 3: Diagramma a blocchi funzionale CC3200.

L'idea alla base del progetto di CC3200 può essere capita quando si esaminano con attenzione le capacità multiplexing dei pin del dispositivo. Il multiplexing dei pin è un modo diffuso per raggruppare un folto numero di funzioni di interfacce periferiche nel contenitore più piccolo possibile. Consente inoltre di mappare il set di periferiche su pin specifici. Il multiplexing dei pin è il frutto della combinazione di configurazione hardware e controllo del registro. Tutti i dettagli di questo processo e le opzioni di mappatura disponibili sono documentati nella scheda tecnica di CC3200 di TI. Per agevolare la progettazione, TI ha creato una tabella di configurazioni consigliate per il multiplexing dei pin che rispondono a diversi casi di utilizzo (Figura 4). Questo approccio aiuta a definire il progetto fin dalle prime fasi attraverso un'ampia serie di applicazioni, sfruttando tutto il set di periferiche e la piedinatura disponibile.

Uso della piedinatura consigliata per CC3200 - Esempi(1)
  Strumenti avanzati di sicurezza domestica Audio Wi-Fi ++ Industriale Sensore-Tag Strumenti di sicurezza domestica Audio Wi-Fi ++ Industriale Wi-Fi remoto con tastierino 7x7 e audio Strumenti a sensore di allarme incendio con serratura porte senza telecamera Elettrodomestici industriali Spina intelligente di elettrodomestici industriali Elettrodomestici industriali GPIO
32 kHz esterno(2) 32 kHz esterno(2)               TCXO 40 MHz esterno (da -40 a 85 °C)  
Telecamera + I²S (Tx o Rx) + I²C + SPI + SWD + UART-Tx + (App Logger) 2 GPIO + 1 PWM + *4 riattivazioni sovrapposte dall'ibernazione I²S (Tx o Rx) + ADC a 1 canale + 1 UART a 4 fili + 1 UART a 2 fili + scheda SD a 1 bit + SPI + I²C + SWD + 3 GPIO + 1 PWM + 1 GPIO con riattivazione da ibernazione I²S (Tx o Rx) + ADC a 2 canali + UART a 2 fili + SPI + I²C + SWD + 2 PMW + 6 GPIO + 3 GPIO con riattivazione da ibernazione Telecamera + I²S (Tx o Rx) + I²C + SWD + UART-Tx + (App Logger) 4 GPIO + 1PWM + *4 riattivazioni sovrapposte dall'ibernazione I²S (Tx e Rx) + ADC a 1 canale + 2 UART a 2 fili + scheda SD a 1 bit + SPI + I²C + SWD + 4 GPIO + 1 PWM + 1 GPIO con riattivazione da ibernazione I²S (Tx e Rx) + ADC a 1 canale + UART (solo Tx) I²C + SWD + 15 GPIO + 1 PWM + 1 GPIO con riattivazione da ibernazione I²S (Tx e Rx) + ADC a 2 canali + UART a 2 fili + SPI + I²C + 3 PMW + 3 GPIO con riattivazione da ibernazione + 5 GPIO SWD + ADC a 4 canali + 1 UART a 4 fili + 1 UART a 2 fili + SPI + I²C + SWD + 1 PWM + 6 GPIO + 1 GPIO con riattivazione da ibernazione e abilitazione per TCXO a 40 MHz esterno ADC a 3 canali + UART a 2 fili + SPI + I²C + SWD + 3 PMW + 9 GPIO + 2 GPIO con riattivazione da ibernazione ADC a 2 canali + UART a 2 fili + I²C + SWD + 3 PWM + 11 GPIO + 5 GPIO con riattivazione da ibernazione  
Numero pin Piedinatura n.11 Piedinatura n.10 Piedinatura n.9 Piedinatura n.8 Piedinatura n.7 Piedinatura n.6 Piedinatura n.5 Piedinatura n.4 Piedinatura n.3 Piedinatura n.2 Piedinatura n.1

Figura 4: Configurazioni di multiplexing dei pin consigliate per CC3200.

Se si desidera incorporare il dispositivo CC3200 nella propria applicazione, si hanno a disposizione numerose opzioni di sviluppo. Oltre a progettare la propria PCB per l'applicazione, si potrebbe scegliere di usare il modulo CC3200 che include un CC3200 schermato, che supporta componenti passivi, cristalli e antenne su chip in un modulo compatto di soli 20,5 x 17,5 x 1,5 mm.

Per agevolare la prototipazione del modulo CC3200 è disponibile la scheda di valutazione CC3200 LaunchPad XL (Figura 5). In grado di connettersi direttamente a un PC tramite USB, assieme all'emulazione JTAG per la programmazione Flash, la scheda accoglie una selezione di LED utente, pulsanti, un accelerometro e un sensore di temperatura.

Immagine della scheda di valutazione CC3200 LaunchPad XL di Texas Instruments

Figura 5: Scheda di valutazione CC3200 LaunchPad XL.

TI offre numerose risorse dedicate alla famiglia SimpleLink, incluse pagine dei prodotti, Wiki di sviluppo software e pagine dedicate ai partner di ecosistemi cloud. L'SDK SimpleLink può essere scaricata da Wiki e offre numerose applicazioni di esempio, codice sorgente di applicazioni e informazioni tecniche. TI consiglia diversi IDE che godono del favore del settore da usare con SDK, fra cui Code Composer Studio e IAR Workbench. Vengono forniti anche file di intestazione e inclusione, assieme a script GCC e ad altre funzioni di libreria. Gli esempi di codice sono ben documentati con una descrizione scritta dell'applicazione, parametri configurabili chiave e spiegazione del funzionamento. Per ognuno, in C sono inclusi il set completo del codice sorgente e i file di intestazione. Un esempio illustra il CC3200 che comunica con la openweathermap.org del sito per richiedere i dettagli meteo per una specifica città e poi li visualizza su un Hyperterminal connesso. Vedere i risultati nella Figura 6.

Immagine dell'applicazione Get Weather di CC3200

Figura 6: Risultato dell'applicazione Get Weather di CC3200.

Altri esempi di codice trattano dell'implementazione dell'applicazione MQTT Client/Server, una demo e-mail e un progetto basato su sensore che sfrutta appieno la modalità di ibernazione.

Anche se gli esempi di applicazione forniti nell'SDK CC3200 si concentrano sull'uso di C/C++, sono disponibili molte altre opzioni. Una di queste alternative è MicroPython. Basato sul linguaggio di programmazione interpretativo Python 3, MicroPython è il risultato di una riuscita campagna Kickstarter ottimizzata per l'uso in microcontrollori. Una versione pronta per la rete di MicroPython supporta pienamente il dispositivo CC3200 e può essere scaricata da quel sito.

L'approccio CC3200 SimpleLink alla fornitura di comunicazioni Wi-Fi e di un processore di applicazioni si è conquistato un ampio sostegno sul mercato IoT. L'esempio di IBM illustra la connessione di CC3200 LaunchPad alla piattaforma Watson IoT di IBM tramite l'uso di MQTT. Altri partner di ecosistemi di piattaforme cloud includono Temboo e Xively.

Un'altra famiglia di moduli Wi-Fi standalone precertificati è la serie Bluegiga WF121 di Silicon Labs (Figura 7). Come CC3200, ha due parti componenti principali: un microcontroller dell'applicazione che usa un microcontroller a 32 bit serie PIC32 di Microchip a 80 MHz e una radio a 2,4 GHz conforme 802.11 b/g/n. Tutti i dettagli su questa serie, guide di riferimento ed esempi di applicazione sono reperibili qui.  

Immagine di Bluegiga WF121 di Silicon Labs

Figura 7: Immagine di Bluegiga WF121 di Silicon Labs.

Le comunicazioni tra host e ricetrasmettitore wireless avvengono tramite UART, USB o SPI, come indicato nella Figura 8. La figura mostra anche l'architettura software. Anche se è possibile usare la libreria host BGLib ANSI C per programmare applicazioni per il microcontroller, si può utilizzare anche il linguaggio di scripting BGScript di Bluegiga. Basato su una struttura di programmazione in stile BASIC, il linguaggio offre un modo semplice e facile da apprendere di creare applicazioni potenti e abbastanza complesse. Il linguaggio assicura comandi e funzioni per impostare e gestire collegamenti wireless, sicurezza, trasferimento dei dati e per interagire con le periferiche disponibili, GPIO, SPI, I2C, ecc.

Immagine dell'ambiente software Bluegiga di Silicon Labs

Figura 8: Ambiente software Bluegiga.

BGScript può essere usato anche in tutta la famiglia di moduli Bluegiga standalone, compresi quelli che assicurano la connettività Bluetooth. La Figura 9 illustra un breve esempio di codice BGScript di lettura dell'ADC del modulo.

Immagine di esempio BGScript per leggere ADC

Figura 9: Esempio BGScript per leggere ADC.

Bluegiga DKWF121 è una scheda di valutazione per la prototipazione di progetti Wi-Fi standalone che utilizza il modulo WF121. La scheda ha tutte le piedinature disponibili del modulo, il che facilita la connessione a progetti di prova. Tutti i pin GPIO sono presentati su piazzole attorno a un'ampia area di prototipazione. Una pagina utile del catalogo online con tutte le informazioni su come iniziare con DKWF121 è disponibile sul sito di DigiKey.

Come ricordato in precedenza, la famiglia Bluegiga comprende anche moduli Bluetooth standalone come BLE113. Mirato ad accessori e applicazioni di piccole dimensioni alimentate a batteria, lo sviluppo di applicazioni tramite BGScript è un modo estremamente comodo e facile di stabilire un collegamento e trasferire dati. La gamma di prodotti Bluegiga è ben supportata dalla comunità allargata di sviluppatori IoT e produttori professionisti, il che ha portato alla disponibilità di librerie a sostegno di altri linguaggi di sviluppo come bglib per Node.js e bgapi_py per Python. La Figura 10 mostra la semplicità d'uso della libreria Node.js per l'analisi dei dati Bluetooth in entrata nelle sue variabili separate.

Immagine dell'analisi dei dati Bluetooth in entrata

Figura 10: Analisi dei dati Bluetooth in entrata utilizzando la libreria Node.js BGLib sul modulo Bluegiga BLE113.

L'uso di un modulo wireless precertificato accelera moltissimo la progettazione di un'applicazione IoT, ma un modulo wireless standalone semplifica ulteriormente l'intero processo, oltre a ridurre la distinta base complessiva. Quando esaminano questo approccio, agli ingegneri di tecnologia embedded viene consigliato di passare in rassegna non solo le capacità hardware ma anche la quantità di strumenti software, la flessibilità del linguaggio di programmazione e gli esempi di applicazione disponibili. Con questo approccio, i dispositivi IoT standalone possono essere introdotti sul mercato in tempi rapidi, facendo risparmiare sulle preziose risorse di progettazione e sul budget.

 
DigiKey logo

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.

Informazioni su questo autore

Redattori europei

Informazioni su questo editore

Editori europei di DigiKey