Sbloccare la Potenza di Elaborazione dei Moduli

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