Come creare sistemi wireless a bassa potenza con Bluetooth Smart 4.0
Contributo di Editori europei di DigiKey
2014-06-12
Il mercato dei dispositivi wireless a bassa potenza e portatili sta esplodendo e la specifica Bluetooth Low Energy 4.0 è una parte fondamentale dello sviluppo di tali sistemi. Questo articolo esamina come si possano utilizzare moduli da produttori quali Laird Wireless, connectBlue e Bluegiga con supporto della specifica 4.0 per sviluppare dispositivi indossabili e apparecchiature medicali a bassa potenza con ambienti di sviluppo come quello fornito da CSR.
In linea con il crescente interesse per i dispositivi di elaborazione indossabili, la connettività a basso consumo della specifica Bluetooth LE 4.0 consente di realizzare una vasta gamma di tali dispositivi, dai sistemi portatili per fitness alle palle da basket intelligenti.
Articoli di uso quotidiano come orologi da polso, braccialetti, guanti e perfino spazzolini da denti vengono aggiornati integrandovi la tecnologia wireless Bluetooth, che consente loro di acquisire i dati e trasferirli ad applicazioni su smartphone o tablet. Il 96% dei dispositivi indossabili venduti nel 2013 era costituito da monitor per attività sportive e di fitness e ABI Research stima che nel 2014 verranno venduti 32 milioni di tali dispositivi con tecnologia Bluetooth Smart.
Per il mercato degli articoli sportivi e indossabili è essenziale poter alimentare i dispositivi mediante batterie piccole o ricaricabili e la capacità di mantenere attivo un collegamento embedded per vari anni mediante un'unica batteria sta spingendo il settore ad adottare la tecnologia Bluetooth Smart; tale approccio richiede alcune considerazioni di fondo a livello di progettazione, da un punto di vista sia hardware, sia software.
La caratteristica chiave della tecnologia Bluetooth Smart è costituita dalla sua capacità di operare con le applicazioni installate su smartphone o tablet esistenti. Tuttavia, se Bluetooth Low Energy usa le stesse frequenze nella banda ISM a 2,4 GHz del precedente "Classic Bluetooth", si serve di un protocollo più semplice di spostamento della frequenza gaussiana per ridurre il consumo di potenza. Usa anche canali a 2 MHz più piccoli e modulazione a divisione di spettro in sequenza diretta (DSSS).
Tale combinazione fa sì che le specifiche LE e Classic non siano direttamente compatibili. Tuttavia, questo non rappresenta un problema per lo sviluppatore dato che tutti i chip e i moduli certificati come compatibili Bluetooth possono funzionare in entrambi i modi: Classic per i dispositivi meno recenti o Bluetooth Smart nel caso della versione DSSS. L'indicazione ‘Bluetooth Smart Ready' identificava inizialmente i dispositivi a doppia modalità, tipicamente laptop o smartphone, il cui hardware era compatibile con periferiche Bluetooth sia Classic, sia LE, mentre l'etichetta ‘Bluetooth Smart' identifica quelli dotati unicamente di predisposizione LE.
Bluetooth Smart offre vantaggi di bassa potenza derivanti dall'uso dei canali a 2 MHz che danno una velocità di collegamento di 1 Mbit/s e un throughput dell'applicazione di 270 kbit/s. Anche se inferiore a quella di Bluetooth Classic, la velocità di trasmissione per le applicazioni viene compensata riducendo la latenza da 100 a 6 ms. La potenza massima di trasmissione viene inoltre ridotta a 10 mW, riducendo la portata a meno di 50 metri, che sono tuttavia più che sufficienti per le applicazioni domestiche e indossabili a corto raggio. Tale soluzione agevola inoltre l'implementazione dei sistemi BLE 4.0, poiché si riducono le preoccupazioni associate al bilancio di collegamento complessivo.
Un produttore di moduli come Laird Wireless è in grado di celare in larga misura tale complessità. Il modulo BL600 di Laird Wireless riunisce un ricetrasmettitore Nordic Semiconductor, un'antenna e le relative interfacce in un ingombro compatto, di soli 19 x 12,5 mm. I moduli incorporano tutto l'hardware e il firmware richiesti per supportare lo sviluppo di applicazioni BLE, incluse le interfacce UART, SPI, I²C, ADC e GPIO per il collegamento di periferiche e sensori. La connessione tramite queste interfacce è relativamente semplice in caso di collegamenti a uno, due o più fili.

Figura 1: Il modulo BL600 Bluetooth Smart di Laird Wireless consente di aggiungere facilmente la connettività ai progetti esistenti.
L'acquisizione dei dati da tali collegamenti è gestita mediante una serie di profili fra cui Blood Pressure, Heart Rate, Health Thermometer, Proximity e Find Me. Tali profili, detti profili di attributo generico (GATT), forniscono un'interfaccia di programmazione di applicazioni (API) client-server all'interno del sistema operativo, oltre a servizi e descrittori.
Un servizio è un insieme di caratteristiche correlate che collaborano per lo svolgimento di una determinata funzione. Il servizio Health Thermometer include caratteristiche per la misurazione di un valore di temperatura e un intervallo temporale fra le misurazioni. I descrittori forniscono maggiori informazioni sulle caratteristiche, come l'indicazione delle relative unità di misura (ad esempio gradi Celsius) e i valori massimi e minimi che i sensori sono in grado di misurare.
Gli attributi di servizi, caratteristiche e descrittori sono identificati collettivamente da identificatori universali (UUID). Bluetooth SIG ha riservato un intervallo di UUID (con formato xxxxxxxx-0000-1000-8000-00805F9B34FB) per attributi standard e questi sono rappresentati come valori in formato breve a 16 o 32 bit nel protocollo, invece che a 128 bit, per contenere le dimensioni del codice e la complessità.
Operazioni GATT
Il protocollo GATT fornisce al client un certo numero di comandi per scoprire informazioni sul server. Queste includono la scoperta degli UUID per tutti i servizi principali, l'individuazione di un servizio con un determinato UUID e quindi i servizi secondari, oltre a trovare tutte le caratteristiche per un determinato servizio.
Vengono messi a disposizione dei comandi per trasferire i dati sulle caratteristiche dal server al client (lettura) e dal client al server (scrittura). Un valore può essere letto specificando l'UUID della caratteristica o tramite un valore handle, che proviene dai comandi di rilevamento informazioni. Le operazioni di scrittura identificano sempre la caratteristica dall'handle, ma hanno la possibilità di richiedere o non richiedere una risposta dal server.
Il protocollo GATT offre inoltre notifiche e indicazioni. Il client può richiedere una notifica per una particolare caratteristica dal server, che può poi inviare il valore al client ogni volta che si rende disponibile. Ad esempio, il server di un sensore della temperatura potrebbe notificare al proprio client ogni volta che effettua una misurazione. Si evita così il polling del client al server, riducendo la necessità di un regolare collegamento radio. Un'indicazione è simile a una notifica, tranne che richiede una risposta dal client, come conferma che ha ricevuto il messaggio.
Laird aggiunge un linguaggio di programmazione basato sugli eventi che rende possibile il funzionamento standalone del modulo così da permettere il collegamento dei sensori tramite una qualsiasi interfaccia senza la necessità di un processore esterno. Un'applicazione smartBASIC semplice incapsula l'intero processo end-to-end di lettura, scrittura ed elaborazione dei dati del sensore e l'uso successivo di BLE per trasferirli a qualsiasi dispositivo Bluetooth v4.0 – smartphone, tablet, gateway o computer.
Oltre a disporre delle certificazioni FCC modulare, CI, CE e MIC, i moduli possono essere totalmente qualificati come prodotti finali Bluetooth. Ciò consente ai progettisti di integrarli nei loro dispositivi esistenti, senza la necessità di un'ulteriore qualifica Bluetooth, con una notevole accelerazione delle attività di sviluppo.
Altri produttori di moduli, come Bluegiga e connectBlue, utilizzano hardware BLE Texas Instruments per realizzare moduli che supportano la versione 4.0. Il modulo BLE112 di Bluegiga può essere alimentato direttamente da una batteria a bottone standard da 3 V, oppure da due batterie AAA e può pertanto essere inserito anche negli oggetti più piccoli, dai portachiavi agli accessori per iPhone. Nella modalità di riposo a bassissima potenza, esso assorbe soltanto 500 nA, con tempi di riattivazione di poche centinata di microsecondi, prolungando la durata della batteria. Nel modulo connectBlue, in grado di funzionare per un massimo di 10 anni con una sola batteria a bottone, sono integrati un sensore di temperatura e un accelerometro.
Il modulo OLP425 di connectBlue è qualificato come sottosistema di controllo e supporta profili, servizi e attributi Bluetooth Low Energy sviluppati dal cliente. Il modulo utilizza il SoC CC2540 di TI, sul quale vengono eseguiti sia l'applicazione, sia lo stack del protocollo Bluetooth Low Energy. Ciò comprende il codice oggetto con lo stack più aggiornato del protocollo BLE, che supporta più collegamenti, progetti campione e applicazioni e copre una vasta gamma di profili con codice sorgente.
Il package dei codici esemplificativi connectBlue OLP425 include progetti campione per l'accesso a LED, sensori di temperatura e accelerometri con il software embedded sviluppato utilizzando l'ambiente IAR Embedded Workbench per il core 8051 del chip.
Transceiver
Il progetto del modulo CC2540 è suddiviso in tre aree principali, vale a dire moduli associati alla CPU, moduli associati all'alimentazione, ai test e alla distribuzione di segnali di clock e moduli associati alle comunicazioni radio (Figura 2).

Figura 2: Diagramma a blocchi del ricetrasmettitore Bluetooth Smart 4.0 CC2540 di TI.
CPU e memoria
Dal punto di vista degli sviluppatori, il cuore del SoC è rappresentato dal core a ciclo singolo della CPU, compatibile con il core 8051. Tale core è dotato di tre bus distinti di accesso alla memoria (SFR, DATA e CODE/XDATA), di un'interfaccia di debug e di un'unità di interrupt esteso con 18 ingressi.
L'arbitro della memoria costituisce il cuore del sistema, in quanto collega la CPU e il controller DMA con le memorie fisiche e tutte le periferiche tramite il bus SFR. Tale arbitro dispone di quattro punti di accesso alle memorie, ciascuno in grado di mapparsi su una fra tre memorie fisiche, vale a dire una SRAM, una memoria flash e i registri XREG/SFR ed è responsabile dell'arbitraggio fra gli accessi simultanei alla stessa memoria fisica e del loro sequenziamento.
Nella figura 2, il bus SFR è descritto schematicamente come un bus comune che collega tutte le periferiche hardware all'arbitro della memoria. Il bus SFR presente nel diagramma a blocchi permette inoltre di accedere ai singoli registri del banco registri radio, benché questi siano in realtà mappati nello spazio di memoria XDATA. La SRAM da 8 kB si mappa sullo spazio di memoria DATA e su parti degli spazi di memoria XDATA. Si tratta di una SRAM a bassissima potenza, che conserva il proprio contenuto anche quando la parte digitale viene spenta (vale a dire nelle modalità di potenza 2 e 3). Il blocco flash da 128/256 kB fornisce la memoria di programma non volatile e programmabile in-circuit del dispositivo e si mappa negli spazi di memoria CODE e XDATA.
Periferiche
Le operazioni di scrittura sul blocco flash vengono effettuate tramite un controller flash che permette la cancellazione per pagine e la programmazione a 4 byte; nel sistema è inoltre disponibile un versatile controller DMA a cinque canali. Quest'ultimo accede alla memoria utilizzando lo spazio di memoria XDATA e ha pertanto accesso a tutte le memorie fisiche. La configurazione di ciascun canale (trigger, priorità, modalità di trasferimento e di indirizzamento, puntatori di origine e di destinazione e conteggio di trasferimento) avviene mediante descrittori DMA che possono trovarsi in qualunque punto della memoria. Per un funzionamento efficiente, è possibile utilizzare molte delle periferiche hardware (core AES, controller flash, USART, timer, interfaccia ADC e altre ancora) con il controller DMA effettuando trasferimenti di dati fra un singolo indirizzo SFR o XREG e la memoria flash/SRAM.
Ciascun modulo CC2540 contiene un indirizzo IEEE univoco a 48 bit che è possibile utilizzare come indirizzo pubblico per un dispositivo Bluetooth. I progettisti sono liberi di servirsi di tale indirizzo o di specificarne uno, come descritto nella specifica Bluetooth.
Il controller di interrupt serve un totale di diciotto sorgenti di interrupt suddivise in sei gruppi, ciascuna associata a un livello di priorità scelto fra quattro alternative. Quando il dispositivo si trova nella modalità di riposo (modalità di potenza 1 e 2), le richieste di interrupt per I/O e timer di spegnimento vengono gestite riportando il modulo CC2540 nella modalità attiva.
L'interfaccia di debug implementa un'interfaccia seriale proprietaria a due fili utilizzata per il debug in-circuit. Tale interfaccia di debug permette di cancellare o programmare l'intera memoria flash, di controllare quali oscillatori sono abilitati, di arrestare e avviare l'esecuzione dei programmi degli utenti, di eseguire le istruzioni sul core 8051, di impostare i punti di interruzione del codice e di procedere un passo alla volta lungo le istruzioni del medesimo. Tali tecniche consentono di eseguire in modo elegante il debug in-circuit e la programmazione di una memoria flash esterna.
Il controller di I/O è responsabile di tutti i pin di I/O per uso generico. La CPU è in grado di configurare se affidare il controllo di determinati pin ai moduli periferici o se mantenerli sotto il controllo del software e, in tal caso, se configurare ciascun pin come un ingresso o un'uscita, nonché di specificare l'eventuale collegamento di un resistore di pull-up o di pull-down nella piazzola. Per garantire la flessibilità in varie applicazioni, ciascuna periferica collegata ai pin di I/O può scegliere fra due posizioni diverse di tali pin.
Il timer di spegnimento è del tipo a bassissima potenza ed è in grado di utilizzare un oscillatore esterno a cristallo a 32,768 kHz o un oscillatore RC interno a 32,753 kHz. Il timer di spegnimento è sempre in funzione in tutte le modalità operative, eccetto la modalità di potenza 3. Fra le applicazioni tipiche di tale timer figurano quelle come contatore in tempo reale o come timer di riattivazione per l'uscita dalle modalità di alimentazione 1 o 2.
Un timer watchdog integrato permette al modulo CC2540 di reimpostarsi se il firmware si blocca. Una volta attivato dal software, il timer watchdog deve essere azzerato periodicamente; in caso contrario, allo scadere del tempo impostato esso esegue un reset del dispositivo.
Il timer 1 è a 16 bit e dispone di funzioni di timer/contatore/PWM. È dotato di un prescaler programmabile, di un valore del periodo a 16 bit e di cinque canali di conteggio/acquisizione programmabili individualmente, ciascuno dotato di un valore di confronto a 16 bit. Ciascun canale di conteggio/acquisizione può essere utilizzato come uscita PWM o per acquisire la temporizzazione dei fronti dei segnali di ingresso. È inoltre possibile configurare ciascun canale in una modalità di generazione IR, nella quale esso effettua il conteggio dei periodi del timer 3; in tal caso, la sua uscita è posta in AND con quella del timer 3 per generare segnali IR consumer modulati, con un'interazione minima della CPU.
Il timer 2 è a 40 bit e viene utilizzato dallo stack Bluetooth Low Energy. È dotato di un contatore a 16 bit con un periodo del timer configurabile e un contatore di overflow a 24 bit che è possibile utilizzare per tenere traccia del numero di periodi trascorsi. Viene utilizzato un registro di acquisizione a 40 bit anche per registrare l'istante esatto in cui viene ricevuto/trasmesso un delimitatore di inizio frame oppure in cui una trasmissione termina. Sono inoltre presenti due registri a 16 bit di confronto dei timer e due registri a 24 bit di confronto di overflow, che è possibile utilizzare per assicurare agli interrupt radio o generici una temporizzazione esatta per l'avvio di RX o TX.
I timer 3 e 4 sono a 8 bit e dispongono di funzioni di timer/contatore/PWM. Sono dotati di un prescaler programmabile, di un valore del periodo a 8 bit e di un canale di conteggio programmabile con un valore di confronto a 8 bit. Ciascun canale di conteggio può essere utilizzato come un'uscita PWM.
Le interfacce USART 0 e USART 1 sono configurabili individualmente come un master/slave SPI o come un'interfaccia UART. Oltre a un controllo hardware del flusso, esse forniscono una doppia bufferizzazione sia su RX, sia su TX e sono pertanto ideali per le applicazioni full duplex con throughput elevati. Ciascuna interfaccia USART dispone di un proprio generatore di baud rate ad alta precisione; i timer normali sono pertanto disponibili per altri impieghi. Quando sono configurate come slave SPI, le interfacce USART campionano i segnali in ingresso utilizzando direttamente il clock SCK invece di altri schemi di sovracampionamento e sono pertanto indicate per velocità di trasmissione dei dati elevate.
Per le applicazioni che richiedono un livello di sicurezza più elevato, il core AES di crittografia/decrittazione offre all'utente la possibilità di crittografare e decrittare i dati utilizzando l'algoritmo AES con chiavi a 128 bit. Il core AES supporta inoltre le autenticazioni ECB, CBC, CFB, OFB, CTR e CBC-MAC e fornisce un supporto hardware per CCM.
Il convertitore A/D supporta una risoluzione da 7 a 12 bit, con un corrispondente intervallo di larghezze di banda, rispettivamente da 30 a 4 kHz. Sono possibili conversioni c.c. e audio con un massimo di otto canali di ingresso (pin del controller di I/O). Per gli ingressi è possibile selezionare la configurazione a terminazione singola o differenziale. La tensione di riferimento può essere interna, AVDD, oppure un segnale esterno a terminazione singola o differenziale. Il convertitore A/D è inoltre dotato di un canale di ingresso per sensori di temperatura. Il convertitore A/D è in grado di automatizzare il processo di conversione o campionamento periodico su una sequenza di canali.
L'amplificatore operazionale è studiato per fornire al convertitore A/D un guadagno e una bufferizzazione front-end. Entrambi gli ingressi, come pure l'uscita, sono disponibili su pin, consentendo di personalizzare completamente la rete di retroazione. Per le applicazioni che necessitano di una buona precisione unita a un guadagno elevato, è disponibile una modalità stabilizzata con chopper.
Il comparatore analogico a bassissimo consumo permette alle applicazioni di riattivarsi dalle modalità PM2 o PM3 utilizzando un segnale analogico. Entrambi gli ingressi sono cablati su pin, ma la tensione di riferimento deve essere fornita esternamente. L'uscita del comparatore è collegata al rilevatore di interrupt del controller di I/O; la MCU può trattare tale uscita come un normale interrupt di I/O su pin.
Anche CSR, un altro produttore di ricetrasmettitori Bluetooth e chip SoC, fornisce una serie completa di strumenti di sviluppo software, progettazione di schede e test di produzione basati sui suoi chip uEnergy. Questo chip alloggia in un modulo di riferimento con interfaccia di programmazione USB e interfacce per diffondere l'I/O a sensori e attuatori specifici per l'applicazione. L'ambiente di sviluppo software autorizzato xIDE CSR include applicazioni di esempio per profili Bluetooth Smart comuni e applicazioni host per smartphone sia iOS che Android per semplificare il progetto. La scheda target viene in genere alimentata dalla connessione USB host ma può essere gestita in modalità standalone da una batteria a bottone incorporata per consentire misurazioni della potenza.

Figura 3: Il sistema di sviluppo CSR Bluetooth Smart.
L'integrazione dei moduli nei progetti è relativamente facile, anche se vi sono diverse scelte importanti da fare quando si usano le batterie per fornire l'alimentazione a questi dispositivi.
Il modello BLE112 di Bluegiga può essere utilizzato direttamente con una batteria a bottone. Data la resistenza interna relativamente alta di una batteria a bottone, è consigliata l'installazione di un condensatore da 100 μF in parallelo con la batteria. La resistenza interna di una batteria a bottone inizialmente è dell'ordine di 10 ohm, ma aumenta rapidamente con l'uso della capacità.
Maggiore è il valore del condensatore, maggiore sarà la capacità efficace della batteria e più lunga la durata per l'applicazione. Il valore minimo del condensatore dipende dall'applicazione finale e dalla potenza di trasmissione massima usata. La corrente di dispersione di un condensatore da 100 μF va da 0,5 a 3 μA e, in genere, i condensatori ceramici hanno una corrente di dispersione minore dei condensatori elettrolitici al tantalio o alluminio.

Figura 4: Modulo BLE112 Bluetooth Smart di Bluegiga. L'uso di un condensatore sulla batteria può aumentarne la durata.
Un'altra opzione è rappresentata dall'uso di un convertitore c.c./c.c. per ridurre il consumo di corrente durante le fasi TX/RX e di elaborazione dei dati. Sono disponibili vari convertitori c.c./c.c. a bassissima potenza e con modalità di by-pass, che riducono del 20% circa il consumo di corrente durante la trasmissione quando si utilizzano batterie a bottone da 3 V. Per garantire le prestazioni radio, si consiglia di utilizzare un manicotto di ferrite allo scopo di filtrare tutto l'eventuale rumore in eccesso presente nelle linee di alimentazione.
Conclusione
Una generazione totalmente nuova di apparecchiature connesse portatili, indossabili e per uso domestico si appresta a beneficiare della tecnologia Bluetooth Smart. La versione 4.0 di Bluetooth Low Energy permette di espandere facilmente i progetti esistenti, consentendo loro di collegarsi a smartphone e tablet per supportare una vasta gamma di nuove applicazioni. Moduli pre-qualificati e kit di sviluppo a supporto di dispositivi hardware altamente integrati aiutano gli sviluppatori a introdurre tale capacità in modo rapido e agevole.
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.

