BLE: soluzioni a confronto

Il Bluetooth è una delle tecnologie di comunicazione short range più utilizzate in assoluto. Ogni smartphone ne è dotato e, grazie ad esso, può connettersi ad una miriade di dispositivi che espongono i servizi più disparati. Eppure negli ultimi anni il Bluetooth ha subito un rinnovamento drastico con la nascita dello standard Bluetooth Low Energy o BLE. Nonostante la non retrocompatibilità con il BT BR/EDR (la versione classica), questa tecnologia, nata appunto per soddisfare esigenze di applicazioni low power, si è subito resa un valido standard comunicativo nei device wearable: le dimensioni ridotte dei chip (ottenute grazie all’estrema integrazione e all’utilizzo di antenne su PCB o chip antenna) e la bassa potenza necessaria al loro funzionamento sono i fattori su cui si fonda il successo del BLE. Mettiamo a confronto le migliori soluzioni che il mercato mette a disposizione degli ingegneri per realizzare prodotti BLE enabled.

Wireless SoCs vs BLE standalone modules

Nello sviluppo di un dispositivo con interfaccia BLE, gli ingegneri sono davanti alla seguente scelta: includere nella BOM un modulo standalone, configurabile tramite comandi predefiniti e con funzionalità ben specifiche, oppure prevedere nel progetto elettrico un SoC wireless, totalmente programmabile da uno sviluppatore firmware. Sicuramente ci sono pro e contro per entrambe le soluzioni.

Utilizzare un modulo standalone è probabilmente la via più semplice. Questi moduli solitamente comunicano con un microcontrollore tramite un’interfaccia seriale UART, e possono essere configurati con dei comandi AT, esattamente come un modem GSM. Una volta impostata la configurazione, questi moduli saranno perfettamente operativi; inoltre i produttori mettono in commercio delle soluzioni già certificate con antenne integrate, in modo da migliorare il time-to-market e diminuire i costi di sviluppo. Di contro questo tipo di modulo è meno versatile per quanto riguarda le funzionalità rispetto alla soluzione del SoC wireless, è più costoso, e prevede l’affiancamento di una unità di elaborazione (MCU o MPU), che fa ulteriormente salire i costi e gli ingombri su PCB. Uno dei leader sul mercato di moduli Bluetooth è la Quectel, ad esempio con il suo MC60E, che integra in un singolo package un modem GSM/GPRS, GNSS e BLE, con una serie infinita di funzionalità e campi di applicazione.

L’utilizzo di un SoC wireless, invece, è decisamente una soluzione più versatile, in quanto permette allo sviluppatore firmware di avere a bordo di un solo chip sia la MCU (con la sua RAM e la sua FLASH), sia l’unità radio con lo stack BLE pilotabile tramite una API, solitamente proprietaria del produttore. Ciò significa inevitabilmente avere il pieno controllo del flusso applicativo e, quindi, una maggiore flessibilità del dispositivo. Inoltre questi moduli hanno spesso costi molto bassi e occupano piccoli spazi sulla board. Di contro c’è la maggiore difficoltà di utilizzo: c’è bisogno di un progettista firmware esperto per ottenere i risultati voluti. Data la crescente richiesta di beacon, dispositivi wearable e IoT (home appliance), i produttori di silicio si sono buttati sul mercato con svariati modelli e moduli che mettono a disposizione un’interfaccia radio a 2.4GHz con stack BLE. Vediamo alcune soluzioni di SoC wireless proposte dai produttori.

Moduli ESP32 di Espressif

Uno dei SoC più venduti al mondo è certamente l’ESP32 della Espressif. Questo chip, impacchettato in una serie di moduli con diverse caratteristiche di RAM e FLASH, è davvero superlativo: ad un costo di circa 2$ include due core Xtensa con frequenze di clock fino a 240MHz, svariate periferiche di comunicazione (SPI, I2C, I2S, UART, LCD controller), pin analogici e GPIO/PWM, crypto engine e tanto altro. Rispetto al suo predecessore ESP8266, la caratteristica che ha decretato il suo successo è la possibilità del microcontrollore di accedere alla radio non solo usando lo stack WiFi proprietario (in modalità sia station che acces point) ma anche con Bluetooth, e in contemporanea.

Figura 1: ESP32 devkit (source: cnx-software)

Lo stack Bluetooth comprende sia la versione classica BR/EDR che la possibilità di usare il BLE. L’ambiente di sviluppo software ESP-IDF, infatti, mette a disposizione degli ingegneri due librerie differenti: la NimBLE, compliant con le specifiche BLE 5.0, ed in grado di fornire connettività per BLE Mesh, e la libreria Bluedroid, che supporta sia Bluetooth classico che BLE. La raccomandazione della Espressif è di utilizzare NimBLE se si è certi che nel progetto non ci sia necessità del Bluetooth classico, in quanto questa libreria è più leggera in termini di footprint e memoria RAM utilizzata.

In pieno stile ESP32, la scelta della libreria per pilotare la radio è effettuata tramite menu di configurazione “menuconfig”, che permette di includere solo i moduli software di cui lo sviluppatore ha bisogno. In questo modo si evita di appesantire l’output di compilazione.

La documentazione per l’uso delle librerie Bluetooth è decisamente esaustiva: il sito Espressif riporta una panoramica del modulo radio, e l’API per l’accesso alle funzionalità. Inoltre l’ambiente è già fornito di esempi di utilizzo della periferica di comunicazione, e la comunità Espressif è molto attiva sul forum ufficiale.

Gli ingegneri elettronici, però, prima di scegliere questo modulo per il loro sviluppo hardware devono fare i conti con i consumi del chip. Purtroppo l’ESP32 mal si adatta alle situazioni in cui è richiesto un low-power spinto (come sistemi wearable e a batteria in generale), e i picchi di corrente possono arrivare a 250mA e oltre durante le trasmissioni radio. E’ vero che ESP32 offre differenti modalità di power-management, e qualche miglioramento sulla gestione della potenza c’è stata con la versione ESP32S, ma siamo ben lontani dai risultati ottenibili da altri chip. Bisogna quindi tenere a mente che i target per questo SoC sono i dispositivi alimentati tramite rete.

Serie nRF5x di Nordic Semiconductor

Nordic Semiconductor, produttore di silicio norvegese, è un’azienda in costante crescita che negli ultimi anni ha puntato tutto sullo sviluppo di SoC wireless a basso consumo per la IoT e i dispositivi wearable. Nordic offre infatti una pletora di chip in grado di mettere in comunicazione i device con le più disparate tecnologie wireless, dal very-short e short range (NFC/RFID, BLE, Zigbee, ANT, Thread) al long range (LTE-M e NB-IoT). Caratteristica molto interessante è senza dubbio la possibilità di sviluppare uno stack radio proprietario a 2.4GHz; questa feature è sicuramente molto apprezzata dagli sviluppatori più esperti.

Rispetto al chip ESP32, i SoC Nordic vantano dei consumi assolutamente più interessanti e adatti alle applicazioni a batteria. Il sistema senza radio accesa presenta consumi massimi (senza utilizzo del power management) di 2.6uA, mentre durante le trasmissioni radio a +8dBm si arriva a circa 15mA. Questi consumi così bassi sono raggiungibili grazie alla presenza di un doppio stadio di regolazione LDO e DCDC interno configurabile, e una tensione di alimentazione che parte da 1.7V.

La potenza di trasmissione radio è anch’essa configurabile, e va da -20dBm a +8dBm con step di 4dB.

Figura 2: Nordic Semiconductor nRF52 DevKit (source: Nordic Semiconductor)

A differenza dell’ESP32, i moduli Nordic supportano solo BLE e non il Bluetooth classico. Le funzionalità della radio sono accessibili mediante un firmware speciale, denominato SoftDevice, che Nordic mette a disposizione in formato oggetto in più versioni, ognuna delle quali contiene più o meno funzionalità, quindi utilizzabile in base alle necessità.

Nordic ha stretto un accordo con Segger, azienda leader nella produzione del debugger J-Link, per il quale si rende accessibile in maniera gratuita agli sviluppatori l’ambiente Segger Embedded Studio. SES è completo di tutti gli strumenti per agevolare l’implementazione ed il debug di firmware sui SoC Nordic. A corredo dello SDK e dell’ambiente Segger, Nordic ha sviluppato e fornisce in maniera gratuita un’app per smartphone, nRF Connect, utilissima per testare i firmware sviluppati con BLE.

Per cominciare a prendere confidenza con un SoC BLE è possibile acquistare il kit di sviluppo nRF52 SDK con a bordo il chip nRF52832, in grado di comunicare via BLE e NFC, al costo di circa 30€. Inoltre la community Nordic, molto attiva sul forum ufficiale DevZone e in rapida espansione, si rivela un supporto notevole sia per gli sviluppatori meno esperti che per i più navigati (skilled). Per chi invece ha bisogno di moduli già certificati, qui è possibile trovare tutti i costruttori di moduli pronti all’uso che integrano chip Nordic, elenco davvero prezioso che permette di diminuire il time-to-market e risparmiare i costi delle certificazioni.

Famiglia STM32WB di STMicroelectronics

La crescente necessità di ampliare l’offerta di dispositivi BLE è evidenziata anche dalla scelta di STMicroelectronics, negli ultimissimi anni, di costruire chip wireless in grado di fornire tale tecnologia. ST infatti ha messo sul mercato la famiglia di SoC wireless STM32WB, che implementano gli stack BLE, ZigBee, Thread e permettono lo sviluppo di uno stack proprietario aderente allo standard 802.15.4.

Figura 3: ST STM32WB55 Nucleo pack (source: STMicroelectronics)

Gli STM32WB usano la stessa tecnologia ultra low power degli STM32L4, ma sono costituiti da 2 MCU: un Cortex M4 per eseguire il firmware custom con frequenze fino a 64MHz, ed un Cortex M0+ dedicato allo stack radio; questa scelta si è rivelata vincente, in quanto l’esecuzione del firmware custom è indipendente dall’esecuzione dello stack radio, che deve rispettare un timing ben preciso per comunicare con gli altri dispositivi. E’ evidente che questa famiglia è la scelta migliore per applicazioni in cui sono presenti processi real-time.

La MCU Cortex M4 è equipaggiata con tutte le classiche periferiche che ST mette a disposizione sui suoi microcontrollori dello stesso livello, il che rende riutilizzabile il firmware già sviluppato per un processore più datato e che ha bisogno di implementare un nuovo tipo di connettività.

Per cominciare ad utilizzare le MCU STM32WB è possibile acquistare il kit di sviluppo STM32WB55 Nucleo pack al costo di circa 40€, che comprende una scheda form factor Nucleo ST ed una scheda in formato USB key, entrambi ovviamente dotati di una MCU della famiglia STM32WB.

Lo sviluppo del firmware è notevolmente agevolato dall’ambiente STM32Cube IDE, che include un tool grafico che permette di configurare ogni aspetto delle periferiche ed i clock della MCU, e genera automaticamente il codice di inizializzazione del microcontrollore: una funzionalità che crea dipendenza agli sviluppatori che ne fanno abuso!

Davide Di Gesualdo
Embedded Systems Engineer e Technical Writer, da sempre appassionato di tecnologia, informatica ed elettronica, collabora con testate giornalistiche tecniche nazionali ed internazionali per favorire la divulgazione delle nuove tecnologie di telecomunicazione e dei sistemi embedded.