Bluetooth Low Energy – Tutorial, Focus Tecnico & Knowledge Base
Bluetooth Low Energy (BLE) nasce come una parte della Bluetooth Core Specification: spesso interpretato come un’espressione del Bluetooth Classic, il realtà il BLE ha un design totalmente differente e si pone obiettivi diversi rispetto al Bluetooth Classic.
BLE è progettato per essere uno standard radio con un consumo di energia il più basso possibile, un costo contenuto, una ristretta ampiezza di banda ed una ridotta complessità.
Questi obiettivi sono evidenti analizzando le Core Specification 4.0 e successivi, dalle quali si evince che BLE è definito come uno standard implementabile dai produttori di elettronica in quanto in grado di funzionare su dispositivi con scarse risorse energetiche e con budget limitati.
BLE: le tappe evolutive
Introdotta la versione 4.0 nel 2010, la tecnologia Bluetooth Low Energy ha percorso da allora continue tappe evolutive, tra cui l’update 4.1 nel 2013: pur mantenendo inalterati concetti ed architettura rispetto alla precedente versione, la release 4.1 innesta modifiche e migliorie grazie soprattutto all’esperienza diretta degli utenti, garantendo l’interoperabilità dei dispositivi tra passato e presente (la versione 4.1 è retro-compatibile con quella 4.0).
BR/EDR (Classic Bluetooth), i dispositivi Bluetooth conformi allo standard precedente all’introduzione della versione 4.0
BLE (Bluetooth Low Energy), i dispositivi conformi allo standard 4.0 e successivi.
Da queste due tecnologie derivano poi due diverse tipologie di dispositivi:
Dispositivi single-mode (BLE , Bluetooth Smart) implementano BLE e possono comunicare con apparati single-mode e dual-mode, ma non con dispositivi che supportano solo BR/EDR
Dispositivi dual-mode (BR/EDR/LE, Bluetooth Smart Ready) implementano sia BR/EDR che BLE e possono comunicare con ogni device BLE.
BLE: tipologie di reti e ruoli
I dispositivi BLE possono comunicare con il mondo esterno in due modi diversi:
- Broadcasting & Observing
- Connection
ciascuno con caratteristiche, vantaggi e limitazioni diverse.
Utilizzando la modalità di invio dati senza connessione (Connectionless Broadcasting), il dispositivo BLE trasmette i dati ad un qualsiasi apparato in ascolto (scanning device o receiver) che si trovi ad una distanza utile per recepire il segnale: questo sistema permette quindi di inviare dati in una sola direzione a qualsiasi dispositivo in grado di ‘raccoglierli’.
In questa modalità operativa di Broadcasting i dispositivi sono definitivi Broadcaster ed Observer, ciascuno con un ruolo differente nell’invio e ricezione dei dati (Advertising Data Packet):
- il dispositivo Broadcaster invia periodicamente i dati (di tipo non-connectable) a chiunque sia in grado di riceverli: si tratta quindi di un device ottimizzato per le applicazioni di sola trasmissione ad intervalli regolari (ping rate);
-
Un esempio di apparato Observer è il BlueWave Bluetooth Smart Gateway, che è in ascolto dei pacchetti advertising provenienti dai Tag BLE (o da altri dispositivi BLE) e li invia ad un server.
La modalità di Broadcasting rappresenta l’unico modo per un dispositivo BLE (o Tag BLE) di inviare dati contemporaneamente a più dispositivi.
il dispositivo Observer effettua periodicamente scansioni sulle frequenze predefinite per ricevere advertising packet provenienti dall’apparato Broadcaster: un dispositivo, quindi, ottimizzato per la ricezione dell’advertising data packet. - il dato inviato dal dispositivo Broadcaster, l’Advertising Data Packet, è un insieme di dati costituito al massimo da 31 byte (Payload – Standard Advertising Packet), utilizzato dal Broadcaster per segnalare la propria presenza ed inviare dati ai dispositivi in ascolto.
L’Advertising Data Packet contiene informazioni standard, codificate dal Bluetooth SIG (Special Interest Group) e relative ai servizi che il dispositivo/Tag BLE espone, tra cui impostazione del ping rate e della potenza di emissione, Heart Rate Measurement e Health Thermometer (il pacchetto può ospitare anche informazioni ad hoc, quindi liberamente costruite dal produttore).
Oltre all’Advertising Packet è possibile ricevere un ulteriore pacchetto, definito Scan Response Data, dello stesso formato del precedente e con una capacità massima di 31 byte.
Lo Scan Response può essere richiesto dal dispositivo BLE Observer effettuando una Scan Request: se il dispositivo Broadcaster è abilitato, invia anche il pacchetto di Scan Response, raggiungendo così un massimo di 62 byte di dati inviati.
Connection
Se risulta necessario mandare dati in entrambi le direzioni, ossia reciprocamente tra due dispositivi, oppure se i 62 byte disponibili con i pacchetti di advertising non sono sufficienti, interviene la modalità operativa Connection, affinché si instauri uno scambio dati periodico e permanente tra due dispositivi.
In questo caso lo scambio dei dati avviene solo tra i due dispositivi connessi, per garantire la riservatezza del dato: mentre l’Advertising Data Packet è intercettato da tutti i dispositivi in ascolto, in modalità Connection i dati trasmessi coinvolgono solamente i 2 dispositivi, chiamati Central e Peripheral.
- Central (Master)
Il dispositivo BLE Central scansiona periodicamente le frequenze predefinite per individuare pacchetti di advertising che accettano connessioni (Connectable Advertsing Packet) e, una volta riconosciuti, inizia una connessione con il dispositivo/tag BLE che li ha emessi.
Stabilita la connessione, il Central gestisce i tempi e l’invio periodico dei dati. - Peripheral (Slave)
Il dispositivo BLE Peripheral invia periodicamente advertising, informando di accettare connes-sioni (connectable advertising packet), ed acconsente ad eventuali richieste di connessione pro-venienti dai dispositivi Central.
Una volta attivata la connessione, si attiene alle regole dettate dal Central in merito ai tempi e alle modalità di invio periodico dei dati.
Dalla versione 4.1 sono state eliminate una serie di limitazioni sui ruoli, rendendo così possibili le seguenti combinazioni:
- un dispositivo può essere sia Central che Peripheral nello stesso tempo
- un Central può essere connesso a più Peripheral
- un Peripheral può essere connesso a più Central
Uno dei vantaggi nell’uso della connessione è che i dati possono essere organizzati in campi o proprietà, definiti servizi e caratteristiche.
Le connessioni hanno anche la capacità di utilizzare meno energia della modalità Broadcasting, perché permettono di modificare, estendendolo o riducendolo, il tempo che intercorre tra i Connection Event.
Le funzioni di sicurezza sono svolte dal Security Manager, un insieme di protocolli ed algoritmi disegnati per fornire al Bluetooth Protocol Stack la capacità di creare e scambiare chiavi di sicurezza; sono queste chiavi che permettono a due dispositivi di comunicare in modalità sicura attraverso un link criptato (AES), verificano l’identità del dispositivo remoto e, se richiesto, oscurano il Bluetooth Device Address per impedire a dispositivi con intenzionalità malevole di tracciare/individuare un particolare dispositivo.
Un altro degli aspetti inerenti la sicurezza riguarda l’identificazione certa di due dispositivi tra loro: questa funzione è svolta attraverso i ‘Resolvable Private Address’.
Le funzioni di sicurezza sono svolte dal Security Manager, un insieme di protocolli ed algoritmi disegnati per fornire al Bluetooth Protocol Stack la capacità di creare e scambiare chiavi di sicurezza; sono queste chiavi che permettono a due dispositivi di comunicare in modalità sicura attraverso un link criptato (AES), verificano l’identità del dispositivo remoto e, se richiesto, oscurano il Bluetooth Device Address per impedire a dispositivi con intenzionalità malevole di tracciare/individuare un particolare dispositivo.
Un altro degli aspetti inerenti la sicurezza riguarda l’identificazione certa di due dispositivi tra loro: questa funzione è svolta attraverso i ‘Resolvable Private Address’.
BLE: tipologia dei dati trasmessi
Advertising Data Packet
L’Advertising Data Packet contiene, oltre alla parte dati di 31 byte, le seguenti informazioni:
AT – Advertising Type
Lunghezza 1 byte, indica la tipologia del pacchetto di advertising inviato: un pacchetto può essere, ad esempio, di tipo connectable (in questo caso il dispositivo che lo ha inviato accetta connessioni) oppure non-connectable.
AAT – Advertising Address Type
Lunghezza 1 byte, determina la tipologia dell’indirizzo contenuto nell’Advertising Data Packet e può essere di tipo Public Device Address o Random Device Address.
L’indirizzo di tipo Public Device Address è pre-programmato all’interno del dispositivo BLE, deve essere registrato tramite IEEE Registration Authority e non cambia mai durante la vita del dispositivo.
L’indirizzo di tipo Random Device Address può essere sia pre-programmato all’interno del dispositivo che generato dinamicamente.
AA – Advertiser Address
Contiene l’indirizzo del dispositivo BLE che ha emesso il pacchetto, è costituito da 6 byte (48 bit) e permette di distinguere un dispositivo BLE da un altro.
AD – Advertising Data
Ospita il payload dell’Advertising Data Packet e può essere al massimo di 31 byte; è composto da una sequenza di strutture dati, ognuna delle quali è costituita dai seguenti elementi:
- Campo 1: Lunghezza della struttura in byte (1 byte)
Questo è il primo campo di ogni configurazione e contiene la lunghezza (in byte) della struttura dati che seguirà il campo stesso. - Campo 2: AD Type – Advertising Data Type (1 byte)
Il campo AD Type è un valore definito da Bluetooth SIG ed indica la tipologia di dato contenuta nel campo successivo. Alcuni esempi di possibili AD type:
Local Name: se l’AD Type è di tipo Local Name, il campo successivo contiene il nome del dispositivo (in forma completa o breve)
Services UUIDs: se l’AD Type è di tipo Services UUIDs, nel campo successivo sono contenuti gli UUIDs dei servizi che il dispositivo espone.
Una volta ricevuto il pacchetto di advertising per accedere ai dati effettivi messi a disposizione da tali servizi, si dovrà effettuare una connessione al dispositivo.
Flag: se l’AD Type è di tipo Flag, il campo successivo è costituito da un byte il cui contenuto indica ulteriori informazioni sulla modalità in cui il dispositivo si trova.
Manufacturer Specific Data: se l’AD Type è di tipo Manufacturer Specific Data, significa che nel campo successivo sono presenti dati custom creati dal produttore del dispositivo. - Campo 3:Dati (lunghezza variabile)
In questo campo sono contenuti i dati effettivi in base alla tipologia definita dal campo precedente AD Type.
BLE Device Address: l’univocità, elemento distintivo del BLE
L’elemento che permette di distinguere univocamente un Tag o un dispositivo BLE da un altro è rappresentato dal Bluetooth Device Address: simile al MAC Address dei dispositivi Ethernet e costituito da 48 bit (6 byte), il Bluetooth Device Address può essere pubblico oppure random, quest’ultimo a sua volta riportato in 2 sottocategorie (indirizzo statico ed indirizzo resolvable).
- Pubblico, ossia pre-programmato all’interno del dispositivo, non cambia per tutta la sua vita;
- Random, pre-programmato oppure generato dinamicamente durante l’utilizzo del dispositivo. All’interno di questa categoria esistono due sotto-categorie:
– Indirizzi statici: tipicamente utilizzati al posto degli indirizzi pubblici, per evitare l’onere della registrazione. In questo caso l’address può essere un numero generato randomicamente ad ogni avvio del dispositivo, oppure pre-programmato e fisso per tutta la durata dello stesso.
In ogni caso, non può essere modificato dall’utente.
– Indirizzi resolvable: sono utilizzati per funzioni di sicurezza.
In questo caso gli indirizzi vengono generati continuamente e possono cambiare spesso anche durante la durata di una connessione. Solo i dispositivi a conoscenza della chiave possono risolvere l’indirizzo: ciò impedisce a dispositivi sconosciuti in scanning di rilevare l’apparato BLE.
BLE: tipologie di Beacon
Il termine Beacon (faro) indica un dispositivo che invia periodicamente un segnale radio, utilizzato da apparati riceventi per permettere agli stessi di determinare la propria posizione rispetto ai dispositivi emettenti.
Un dispositivo Beacon BLE invia quindi periodicamente un pacchetto di Advertising, ricevuto da dispositivi Observer ed elaborato per permettere a quest’ultimi di calcolare la propria posizione in relazione ai dispositivi BLE emettenti.
Apple iBeacon BLE
Apple ha creato una propria struttura di pacchetto di Advertising, con una formattazione ben precisa, per il posizionamento indoor dei propri dispositivi basati su iOS.
I dispositivi BLE che emettono un questo tipo di pacchetto sono chiamati BLE iBeacon.
Google Eddystone Beacon BLE
Google ha rilasciato a luglio 2015 il nuovo formato Eddystone, in grado di ampliare le funzionalità dei Beacon e, di conseguenza, anche la loro possibilità di utilizzo.
Eddystone, altra particolare tipologia di dispositivo BLE Beacon, possiede una ben definita formattazione del pacchetto di Advertising Data e può essere interpretato come la risposta open source agli iBeacon di Apple.
Clicca QUI per approfondire la visione di Google sul Bluetooth Smart.
You must be logged in to post a comment.