Tesori Sepolti: Sbloccare la Potenza di Elaborazione dei Moduli Wireless In sintesi I progettisti di sistemi embedded fanno leva sulla potenza di elaborazione, spesso trascurata, di un modulo wireless, per eliminare il microcontrollore e creare un sistema avanzato basato su connettività cellulare che risulta essere più piccolo, più efficiente e molto più economico da realizzare. Questo documento fornisce le linee guida per la scelta di un modulo che può agire sia come microcontrollore che modem. © 2012 Sierra Wireless Inc. 2 Il modulo wireless Quando si trovano a dover considerare vari metodi per aggiungere una connettività a un sistema embedded, molti progettisti dei mercati industriali e automotive scelgono un modello wireless. Questo avviene per diverse ragioni: i moduli wireless sono componenti pre-integrati, quindi già ottimizzati per affidabilità, potenza e progettazione, ed eseguono le comunicazioni cellulari richiedendo sforzi minimi per la configurazione. Inoltre, essendo pre-certificati per l’utilizzo con reti esistenti 2G e 3G, sono pronti per essere implementati in tutto il mondo. La Figura 1 fornisce uno schema di un tipico modulo wireless. Il modulo contiene i circuiti analogici e digitali necessari per la produzione, trasmissione e decodifica dei dati su rete cellulare. Figura 1. Diagramma di un tipico modulo wireless Lo sviluppatore può interagire con il modulo attraverso interfacce familiari tra cui UART e USB e non deve preoccuparsi dei complessi aspetti analogici della comunicazione cellulare. Questo porta notevoli risparmi alle aziende che non dispongono ancora di competenza wireless in-house, dal momento che la comunicazione di frequenza radio cellulare (RF) è una disciplina altamente specializzata che richiede spesso l’attenzione a tempo pieno di un progettista analogico esperto. Gli ingegneri, abituati a lavorare nel dominio digitale, non hanno le competenze per progettare un sistema cellulare per conto proprio, in questo caso utilizzare una soluzione preintegrata e pre- collaudata presenta una valida alternativa. Rispetto a una soluzione personalizzata di frequenza radio, un modulo wireless può ridurre il time-to-market, essere meno costoso in fase di debug e prototype e più conveniente nella produzione. © 2012 Sierra Wireless Inc. 3 Molto spesso, i progettisti utilizzano un modulo wireless in combinazione con un microcontrollore standard. Il microcontrollore è il componente centrale del sistema, gestisce l’applicazione e l’interazione con varie periferiche tra cui il modulo wireless. In questa configurazione il modulo wireless si prende cura delle comunicazioni cellulari e di molto altro. L’approccio a usare un modulo wireless come componente ausiliario in una progettazione basata su microcontrollore è spesso il metodo più veloce per aggiungere connettività wireless a un sistema, specialmente quando si parte da una infrastruttura esistente. La maggior parte del progetto rimane invariato e l’aggiunta di un modulo wireless è un compito relativamente semplice. L’architettura aggiornata e dotata di connettività cellulare può essere pronta per l’uso in pochissimo tempo. Tuttavia, poiché il modulo wireless e il microcontrollore sono di solito le due voci più costose quando si tratta di materiali, utilizzare entrambi in un sistema può essere dispendioso. Se i volumi restano bassi il costo del sistema può non costituire un problema, ma appena le quantità iniziano ad aumentare il costo delle componenti può diventare rapidamente una questione da non sottovalutare. Fortunatamente spesso i progettisti possono utilizzare un approccio alternativo. Dando un’occhiata più da vicino all’offerta si capisce che molti moduli wireless sono effettivamente in grado di andare oltre la semplice gestione delle comunicazioni cellulari. Questo perché i moduli wireless in genere integrano un chipset altamente ottimizzato, originariamente progettato per l’impiego in telefonia cellulare low-end e mid-range, che include un microcontrollore ARM a 32-bit. Usando questa potenza di elaborazione incorporata, i progettisti possono utilizzare unicamente il modulo senza un microcontrollore esterno per gestire l’intera applicazione. Il modulo wireless può comportarsi sia come processore centrale che come modem, eliminando la necessità di un microcontrollore stand alone costoso. Il sistema risultante è più compatto, utilizza meno energia e riduce notevolmente il costo di materiali. © 2012 Sierra Wireless Inc. 4 Talento nascosto La Figura 2 descrive in maniera più dettagliata il modulo wireless indicato nella Figura 1. Il circuito di controllo è in realtà un nucleo ARM9, una delle architetture di controllo più utilizzate in tutti i sistemi embedded. Figura 2. Diagramma dettagliato di un modulo wireless, nucleo ARM9 Quando il chip del modulo wireless è stato originariamente progettato alla fine degli anni ’90, ARM9 veniva utilizzato come microcontrollore principale per i telefoni cellulari. Oltre a gestire le comunicazioni cellulari, ARM9 supportava la tastiera, un piccolo schermo LED, varie funzioni audio come per esempio suonerie e altri file MP3 e connessioni basate su USB per personal computer. Oggi, nell’attuale incarnazione del modulo wireless come modem cellulare per sistemi embedded, la funzione primaria del microcontrollore ARM9 è il controllo cellulare. La gestione delle comunicazioni cellulari in genere utilizza meno del 20% della capacità di trasformazione totale del microcontrollore ARM9, in modo da averne a disposizione una grande quantità in eccesso per molte altre funzioni. Il fatto che i moduli wireless di solito includono un nucleo ARM9 non è sempre evidente nei documenti di marketing. Le prestazioni delle reti wireless sono spesso più enfatizzate rispetto alla potenza di elaborazione attraverso volantini di prodotti che evidenziano le specifiche delle performance cellulari, tra cui l’interfaccia aria, la gamma di frequenza, la trasmissione dati, approvazioni normative e operatori di rete compatibili. Le sub-componenti utilizzate nel modulo © 2012 Sierra Wireless Inc. 5 non sono sempre menzionate e può essere difficile trovare un diagramma a blocchi. Ciò è comprensibile dal momento che i moduli wireless sono progettati per operare come soluzioni drop-in per la connettività cellulare: sapere esattamente cosa c’è dentro il pacchetto non è di solito la prima preoccupazione del tecnico. Quindi è abbastanza facile dimenticare che nel modulo rimangono risorse ARM9 inutilizzate. D’altra parte i progettisti non possono sempre supporre che il proprio modulo wireless possa assumere un’intera applicazione, dal momento che non tutti i moduli forniscono l’accesso alla capacità in eccesso dei microcontrollori ARM9. Alcuni moduli sono configurati per operare in maniera più semplice come modem, con un solo supporto limitato per la personalizzazione. Questi usano lo stesso chip di base dei moduli completamente programmabili, ma vengono forniti con un unico sottoinsieme di pin del microcontrollore ARM9 che si connettono al pacchetto esterno. Il pieno potenziale del nucleo ARM9 rimane quindi inaccessibile. Se il progettista desidera utilizzare il modulo wireless sia come microcontrollore che come modem, è importante selezionare un modulo che supporti la personalizzazione e fornisca l’accesso completo al core ARM. A oggi, gli sviluppatori hanno un’ampia selezione tra cui scegliere. I tre moduli elencati nella Tabella 1 sono tutti attualmente disponibili e sono già stati configurati come combinazione microcontrollori/modem in implementazione su larga scala. Ogni modulo integra un ARM946, una variazione del nucleo ARM9 con funzioni DSP spesso usato su ASIC (si stanno sviluppando moduli con altri core ARM, tra cui ARM926 e ARM11, quindi i progettisti avranno prossimamente ancora più opzioni). Tabella 1. Esempi di funzionalità integrate e caratteristiche di performance Modulo Wireless AirPrime Q2687 AirPrime SL6087 AirPrime SL8080 Interfaccia Aria 2G GSM/GPRS/EDGE 2G GSM/GPRS/EDGE 3G HSDPA Processore ARM946/DSP ARM946/DSP ARM926/DSP Frequenza Core 26 or 104 MHz 26 or 104 MHz 184 MHz Disponibilità di utilizzo Fino a 87 MIPS Fino a 87 MIPS Fino a 180 MIPS Voltaggio I/O Da 1.8 a 2.8 V Da 1.8 a 2.8 V 1.8 V Consumo in modalità 2.4 mA 1.9 mA 2.7 V 2 1 x 4- o 8-wire 1 x 4- o 8-wire Embedded MIPS stand-by UART © 2012 Sierra Wireless Inc. 6 Modulo Wireless AirPrime Q2687 AirPrime SL6087 AirPrime SL8080 USB 2.0 1 velocità massima 1 full speed (12 Mbps) 1 full speed (12 Mbps) (12 Mbps) 1 velocità massima 1 1 (12 Mbps) 1 velocità massima Up to 26 Up to 7 (12 Mbps) Yes Yes Yes SPI 2 1 1 GPIO Up to 44 Up to 26 Up to 7 RTC Si Si Si Interfaccia SIM 1.8 o 3 V 1.8 o 3 V 1.8 or3 V Range di temperatura Da -40 a 85 °C Da -40 a 85 °C Da -40 a 85 °C Impronta 30 x 40 x 4 mm 25 x 30 x 2.65 mm 25 x 30 x 2.35 mm Embedded Le esigenze specifiche di hardware e software varieranno a seconda dell’applicazione, ma le specifiche riportate in Tabella 1 possono fungere da guida per la selezione iniziale. Oltre alle statistiche di base, sono a disposizione diverse funzioni relative alla prestazioni dell’hardware, alla programmabilità del software, al supporto progettuale e ai servizi di gestione dei dispositivi. Vediamole una alla volta. Prestazioni dell’hardware E’ importante assicurarsi che il modulo wireless disponga di risorse adeguate per sostenere l’ applicazione completa e, quindi, controllare i sistemi MIPS disponibili e le risorse di memoria, così come anche il consumo di potenza, specialmente se l’applicazione utilizza una batteria. Potenza di elaborazione CPU e MIPS sono condivisi tra applicazione e firmware per le comunicazioni cellulari. La Tabella 2 indica il consumo medio della CPU in un modulo tipico. Tabella 2. Consumo medio della CPU per servizio Servizio Consumo della CPU GSM idle state 2% GSM call state 15% GPRS transfer rate 18% © 2012 Sierra Wireless Inc. 7 Per calcolare il numero di MIPS a disposizione per l’applicazione bisogna sottrarre i MIPS necessari per la comunicazione cellulare dal totale disponibile. Per esempio, se un modulo wireless funziona a 104 MHz ha a disposizione un totale di 87 MIPS, quindi il trasferimento GPRS consumerà il 18% di quest’ultimo (0,18 x 87), o circa 16 MIPS. Il totale di 87 MIPS meno 16 MIPS usati per il GPRS è uguale a 71 MIPS disponibili per l’applicazione. (E’ interessante notare che, anche durante l’esecuzione di trasferimento GPRS, questo modulo wireless campione è più potente di un processore CORTEX-M0 che offre in genere 50 MIPS). Inoltre, sono necessarie funzionalità che consentono di massimizzare le prestazioni core. Per esempio, l’accesso diretto a un basso livello di API per UART, tra cui un gestore interrupt, rende più semplice per la CPU la guida di chipset esterni per funzionalità GPS, Bluetooth o ZigBee. © 2012 Sierra Wireless Inc. 8 Risorse di memoria Le risorse di memoria del modulo wireless sono ripartite tra il firmware cellulare e l’applicazione principale, allo stesso modo delle risorse della CPU. Un’unità di gestione della memoria (MMU), progettata sul nucleo ARM9, protegge la memoria utilizzata dal firmware in un modulo 3G campione. Figura 3. Utilizzo della memoria in un modulo campione Il modulo campione dispone di 128 Mbyte di memoria flash NAND totale e 64 Mbyte di memoria RAM totale. Il firmware cellulare ha bisogno di 82 Mbyte di memoria flash NAND totale per dati non volatili e 43 Mbytes di RAM per variabili globali, memoria heap e stack di chiamata. I restanti 46 Mbyte di flash NAND e 21 Mbyte di RAM sono © 2012 Sierra Wireless Inc. 9 disponibili per l’applicazione principale. Poiché la memoria flash NAND non può eseguire codici direttamente, il codice viene copiato nella RAM per l’esecuzione. Per applicazioni con lunga durata, alcuni moduli offrono una funzionalità che estende la vita delle memorie flash, riducendo il numero di cancellazioni flash. Il sistema conserva i dati per alcune variabili nel corso di ripristino hardware o software. Questo aumenta anche la velocità di riavvio, soprattutto dopo un evento imprevisto, perché i dati possono essere conservati all’interno della RAM. Consumo energetico La maggior parte dei moduli includono funzionalità che consentono di risparmiare energia, sopratutto quando il sistema è inattivo. Il consumo in modalità stand-by varia tipicamente tra 1,9 mA e 5,7 mA, il che può essere abbastanza per un sistema a batteria. Tuttavia, non può essere sufficientemente basso per un’applicazione con requisiti relativi al consumo di potenza, nel qual caso, si possono ottenere risultati migliori attraverso l’utilizzo di un microcontrollore esterno. Il consumo può essere notevolmente ridotto grazie a moduli funzionanti in modalità sleep nel momento in cui lo stack GSM non è attivo e in grado di controllare altre caratteristiche, tra cui le sequenze di avvio veloce o la capacità di singoli blocchi di potenza, in base al loro stato di funzionamento. La trasmissione radio grava sulla batteria, perciò, sospendere i servizi che richiedono picchi di corrente durante la trasmissione può ridurre il consumo energetico complessivo. Per esempio, alcuni moduli offrono una funzione speciale che sospende altre operazioni richiedenti un’alta intensità di utilizzo della batteria quando le trasmissioni wireless stanno avendo luogo, come una stampa. Progettazione software Il modulo wireless dovrebbe fornire la massima flessibilità per la configurazione del core ARM9. La maggior parte dei sistemi embedded trae beneficio da un sistema operativo in tempo reale (RTOS). La migliore opzione è un sistema operativo in tempo reale multi-tasking e preventivo, che supporta un linguaggio di programmazione conosciuto, come ANSI o C++ e privo di royalty per mantenere ridotto il costo totale di proprietà. Ricercare linguaggi di scripting disponibili e applicazioni di library fanno risparmiare tempo e semplificano la progettazione. RTOS Sono disponibili diversi moduli con RTOS personalizzato per applicazioni machine-to-machine (M2M). Essi comprendono GSM e stack TCP/IP e sono ottimizzati per air time e consumo di energia. E’ necessario, inoltre, considerare le caratteristiche audio tra cui VDA class 2A per il settore automotive, diagnostica e filtri audio, nonché © 2012 Sierra Wireless Inc. 10 funzioni player/recorder/sniffer. La funzionalità per la protezione dei dati, come il sistema di sicurezza dei file, SSL e motori di crittografia, aiutano ad aumentare la sicurezza dell’applicazione. ARM9 dovrà probabilmente gestire più eventi asincroni esterni e necessiterà funzioni di timing accurate. Per questo si ha bisogno di RTOS in grado di ridurre la latenza per eventi asincroni e che possano guidare diversi ICs collegati tramite DPI o I2C. In questo modo è possibile estendere la progettazione con funzioni aggiuntive come un controller CAN, contachilometri o sensori airbag, controllori Wi-Fi o Ethernet, dispositivi aggiuntivi USB o UART. Inoltre, un timer hardware integrato (spesso un timer/cattura unità), combinato con bassa latenza interrupt, consente di copiare gli eventi esterni con un livello relativamente elevato di precisione e può eliminare la necessità di timer esterni. Molti dispositivi embedded rimangono in servizio per un tempo molto lungo. La scelta di RTOS con supporto per gli aggiornamenti software in remoto può rendere facile la gestione dei dispositivi una volta che sono sul campo. Se l’operatore cambia la sua rete o se l’applicazione deve essere aggiornata, la funzione di aggiornamento del software può essere utilizzata per apportare modifiche. Gli aggiornamenti over-the-air possono ridurre, inoltre, la necessità per le chiamate di servizio e aiutare le aziende a evitare il richiamo. Library di applicazione Tra le cose che possono far guadagnare del tempo ai progettisti, c’è una buona selezione di library. Questi componenti software pre-configurati e ottimizzati per applicazioni specifiche possono aiutare il progettista a non scrivere codici per le funzioni di uso comune, in modo da velocizzare l’implementazione e rendere il debug semplice e veloce. La Tavola 3 fornisce una lista campione di library disponibili e le funzioni necessarie. Tabella 3. Library campione Library Caratteristiche supportate Internet UDP, TCP, FTP, HTTP, SNMP, email, gateway Sicurezza SSL, HTTPS, jamming detection Localizzazione GPS, NMEA frame, TTFF eCall In-band modem Aplix Java virtual machine Custom library Proprietary IP © 2012 Sierra Wireless Inc. 11 Strumenti di sviluppo L’idea è quella di scegliere un modulo che offra un quadro esaustivo per la creazione di un’applicazione completa. Esaminare l’ambiente di sviluppo e chiedere servizi di supporto possono aiutare a semplificare la progettazione e a ridurre il time-to-market. Alcuni moduli sono disponibili con uno strumento basato su PC, spesso chiamato ambiente di sviluppo integrato (IDE), che consente al progettista di sviluppare, compilare e scaricare, testare ed eseguire il debug di un’intera applicazione. Per questo si ha bisogno di un IDE basato su Eclipse, un ambiente multi linguaggio che permette agli sviluppatori di creare applicazioni attraverso Java, C o C++. Altri strumenti che permettono di risparmiare tempo comprendono la compilazione del progetto con toolchain e parametri Gcc, debug intergrato tra cui punti di interruzione, step-by-step e watchpoint, oltre alla possibilità di monitorare il target con AT, trace e controllo di memoria. Le library di applicazione, di cui sopra, costituiscono un’altra forma di sostegno e sono spesso accompagnate da applicazioni e progetti come esempio. Servizi di gestione dei dispositivi Una volta che il modulo wireless è stato configurato c’è il problema di come assicurare l’implementazione, il servizio e il mantenimento dei sistemi. Inviare tecnici ogni volta che c’è un problema al software o un upgrade del firmware è dispendioso e richiede tempo. Inoltre, il rilascio dei richiami del prodotto per affrontare i problemi può pregiudicare gravemente le operazioni. Molte delle applicazioni che utilizzano i moduli wireless hanno una lunga durata, infatti, non è insolito per i sistemi wireless essere utilizzati per 10, 15 o anche 20 anni, quindi la manutenzione può costituire una seria considerazione. Per facilitare la transizione dallo sviluppo all’implementazione e per sostenere la manutenzione in corso, alcuni moduli wireless sono inoltre disponibili con un servizio di gestione basato su cloud che permette alle aziende di monitorare e aggiornare i dispositivi distribuiti da remoto, attraverso un portale web. Questi servizi offrono un modo per testare, installare e gestire i moduli wireless su qualsiasi scala e in qualsiasi posizione, garantendo al contempo sicurezza e bassi costi. I servizi di gestione possono essere utili con qualsiasi sistema con modulo wireless, ma sono particolarmente utili quando l’intera applicazione è su modulo, in quanto il monitoraggio overthe-air e gli aggiornamenti possono essere utilizzati per valutare e modificare l’applicazione stessa e non solo le funzioni connesse alle telecomunicazioni. La scelta di un modulo wireless supportato da servizi di gestione può apportare vantaggi significativi durante le fasi di sviluppo e di funzionamento sul campo. © 2012 Sierra Wireless Inc. 12 Conclusioni L’uso eccessivo della capacità di elaborazione di un modulo wireless per sostituire un microcontrollore può produrre un sistema basato su connettività cellulare più piccolo, più efficiente e meno costoso da produrre. Non tutti i moduli wireless possono essere configurati come microcontrollori delle applicazioni, ma i progettisti dispongono ancora di un certo numero di opzioni tra cui scegliere. Durante la scelta è importante considerare alcune specifiche hardware, come per esempio la potenza di elaborazione, le risorse di memoria e il consumo energetico. I progettisti hanno, inoltre, bisogno di valutare le opzioni per la programmazione software, come framework tra cui RTOS e un set completo di library software. In aggiunta, è necessario avere un modulo supportato da un ambiente di sviluppo completo e facile da usare e, idealmente, supportato da servizi di gestione del dispositivo che renda più semplice e meno costoso la fornitura di supporto a lungo termine per i sistemi distribuiti. © 2012 Sierra Wireless Inc. 13