Comprendere lo Stack del protocollo Bluetooth e i suoi componenti per gli ingegneri incorporati

La tecnologia Bluetooth è diventata un punto di riferimento della comunicazione wireless in sistemi incorporati, consentendo tutto, dai cuffie wireless e dai sensori smart home ai collegamenti di dati industriali.Per sviluppare prodotti Bluetooth robusti e efficienti, gli ingegneri incorporati devono navigare nello stack del protocollo che governa il modo in cui i dati viaggiano dall'applicazione alla radio wave e indietro.

Nelle sezioni seguenti, si rompe lo stack del protocollo Bluetooth dalla radio fisica fino ai profili delle applicazioni. Inoltre, evidenziamo le considerazioni chiave per i progettisti incorporati, tra cui la gestione della potenza, la sicurezza e gli ultimi miglioramenti introdotti in Bluetooth 5.0, 5.1, 5.2, e LE Audio.

Architettura del sistema Bluetooth: Host e Controller

Le implementazioni Bluetooth moderne partizionano lo stack del protocollo in due blocchi principali: Controller e Host[]. Questa divisione è formalizzata dall'Interfaccia controller host (HCI), che standardizza la comunicazione tra di loro.

Il Titolare del Trattamento

Il Controller gestisce gli strati inferiori dello stack: Radio, Baseband, Link Manager (in Bluetooth Classic), o Link Layer (in Bluetooth Low Energy). tipicamente viene implementato in un chip dedicato o integrato in una periferica radio di microcontroller. Il Controller è responsabile per le attività in tempo reale di trasmissione dei pacchetti, di battitura di frequenza, di crittografia e di manutenzione dei link.

L'host

L'host funziona sulla CPU principale del sistema integrato e contiene i protocolli a più livelli: L2CAP, SDP, Gatt (per LE), RFCOMM (per Classic), e i profili delle applicazioni. L'host comunica con il controller tramite pacchetti HCI su UART, SPI, SDIO o USB. Gli ingegneri che firmano il firmware per l'host devono gestire i parametri di connessione, il buffering dei dati e la logica del controller specifica del profilo.

Livello 1: La radio (Physical Layer)

Lo strato Radio è la base del Bluetooth. Definisce come i bit vengono modulati sulle onde radio, le bande di frequenza utilizzate e i livelli di potenza di trasmissione.

Banda di frequenza e canali

Bluetooth opera nella banda ISM 2.4 GHz (2400–2483.5 MHz). Il Bluetooth classico utilizza 79 canali distanziati 1 MHz, mentre Bluetooth Low Energy utilizza 40 canali (37 canali di dati + 3 canali pubblicitari) distanziati a 2 MHz. Lo spettro di diffusione del tubo di frequenza (FHSS) è impiegato per ridurre le interferenze da Wi‐Fi, Zigbee e altre sorgenti di 2,4 GHz.

La selezione dei canali e la sequenza di accoppiamento è gestita dal livello Baseband/Link. Gli ingegneri incorporati devono garantire la precisione della frequenza della radio (tipicamente entro ± 20 ppm per Classic, ±50 ppm per LE) per mantenere un collegamento affidabile. La temperatura e l'invecchiamento degli oscillatori di cristallo possono causare la deriva, che spesso richiede routine di calibrazione automatica della frequenza.

Tassi di modifica e dati

Classic Bluetooth utilizza la chiave di spostamento di frequenza gaussiana (GFSK) per la frequenza di base (BR) a 1 Mb/s, e può passare a π/4‐DQPSK o 8DPSK per le modalità di correzione avanzata (EDR) (fino a 3 Mb/s).

Per esempio, LE 2M PHY può raddoppiare il throughput, ma può consumare un po 'più di potenza per bit e offre una gamma leggermente più corta rispetto a LE 1M PHY. LE Coded PHY può raggiungere fino a quattro volte la gamma, rendendola ideale per le reti a sensore a lungo raggio.

Classe di potenza e gamma

Bluetooth definisce tre classi di potenza per i trasmettitori:

  • Classe 1 (100 mW, +20 dBm) – fino a 100 metri
  • Classe 2 (2,5 mW, +4 dBm) – fino a 10 metri (più comune nei dispositivi mobili)
  • Classe 3 (1 mW, 0 dBm) – fino a 1 metro

Le implementazioni della classe 1 richiedono una rete di corrispondenza e spesso un amplificatore di potenza esterno. Per i dispositivi incorporati alimentati a batteria, la classe 2 o la classe 3 sono tipici per soddisfare i bilanci energetici. La potenza di uscita può essere regolata dinamicamente tramite il Link Manager per ridurre le interferenze e risparmiare energia.

Lo strato Baseband (Classic) e Link Layer (LE) gestiscono i tempi, la formattazione dei pacchetti e il controllo della radio, il cuore del protocollo di basso livello Bluetooth.

Piconets e Scatternets (Classic)

Nel Bluetooth classico, la comunicazione avviene all'interno di un piconet[]: un master e fino a sette schiavi attivi. Il master imposta la sequenza di battitura e il programma di polling della frequenza. Un dispositivo può partecipare a piconets multipli, formando un disperde, anche se questo è raramente utilizzato in pratica a causa della complessità.

Classic Bluetooth supporta due tipi di link fisici:

  • Synchronous Connection-Oriented (SCO)[ – slot temporali riservati per dati isonomi come audio (ad esempio, eSCO per una maggiore affidabilità).
  • Asynchronous Connection-Less (ACL) – dati commutati a pacchetto per la maggior parte delle applicazioni.

Bluetooth LE utilizza solo i canali di dati orientati alla connessione con una struttura di pacchetti composta da un preambolo, un indirizzo di accesso, PDU e CRC. L'indirizzo di accesso (32 bit) identifica la connessione e riduce notevolmente la possibilità di crosstalk in scenari di co-location.

Tempismo dei pacchetti

Nel Bluetooth classico, il tempo è diviso in 625-μs slot. Il Master trasmette in slot pari; lo schiavo risponde in slot dispari. In LE, l'intervallo di connessione è negoziato e può variare da 7,5 ms a 4 secondi. Un intervallo più breve riduce la latenza ma aumenta il consumo di energia. Gli ingegneri incorporati devono scegliere i parametri di connessione che soddisfano i requisiti di produttività e latenza mantenendo il ciclo di dovere basso.

Livello 3: Gestione dei collegamenti (Classic) e Controllo dei livelli di collegamento (LE)

Sopra la Baseband si trova il Link Manager (LM) in Bluetooth Classic, che implementa il Link Manager Protocol (LMP). In LE, le funzioni di controllo dei collegamenti sono integrate nel Link Layer stesso, ma gli stessi obiettivi esistono: configurazione dei collegamenti, sicurezza e gestione dell'energia.

Configurazione e Tuning del collegamento

LM negozia parametri di connessione come tipi di pacchetti, impostazioni di controllo di potenza e utilizzo di pacchetti multi-slot. Inoltre gestisce il commutazione di ruolo (ad esempio, master/slave di scambio) e la transizione tra sniff/subrating e modalità attive. Per LE, la maggior parte di questi parametri sono impostati durante l'installazione di connessione tramite la procedura LL CONNECTION UPDATE REQ.

Procedure di sicurezza

Per il Bluetooth Classic, il modello di sicurezza include l'accoppiamento PIN o il Secure Simple Pairing (SSP). Per LE, il Security Manager Protocol (SMP) supera il livello di collegamento (nel Host). Tuttavia, il Link Layer fornisce il motore di crittografia sensibile (AES-CCM per LE) Gli ingegneri devono essere consapevoli della modalità di accoppiamento: Just Works Passegger Out

Controllo di potenza

Il LM/Link Layer regola la trasmissione di potenza basata sulla forza del segnale ricevuta (RSSI). Questo controllo a circuito chiuso consente di risparmiare energia e di ridurre le interferenze. Alcuni chip consentono all'applicazione di influenzare la politica di controllo dell'alimentazione tramite i comandi HCI, che possono essere utili per l'ottimizzazione dell'intervallo personalizzato.

Interfaccia del controller host (HCI)

L'HCI è un protocollo seriale standardizzato che definisce come comunica l'host e il controller, che solitamente viene eseguito su UART (utilizzando il trasporto H4), USB o SDIO. L'HCI trasporta tre tipi di pacchetti: Comando, Evento e Dati (ACL e SCO).

Comprendere HCI è essenziale per gli ingegneri incorporati perché molti strumenti di debug (ad esempio, il Packet Sniffer di TI, il nRF Sniffer di Nordic) catturano il traffico HCI per rivelare ciò che lo stack sta facendo. Quando si scrive il codice lato host, lo sviluppatore deve formattare correttamente i pacchetti di comando HCI, gli eventi di risposta di parse e gestire il flusso di dati.

Protocolli di livello superiore (Host)

Lo strato Host contiene protocolli che forniscono canali di comunicazione strutturati per le applicazioni.

Protocollo di controllo e adattamento del collegamento logico (L2CAP)

L2CAP multisala canali logici multipli su una singola connessione ACL. Fornisce segmentazione dei pacchetti e riassembly, così come la qualità dei parametri di servizio (QoS). In Classic Bluetooth, L2CAP supporta anche i canali di connessione orientati (con controllo del flusso basato sul credito) e i canali senza connessione (per le trasmissioni).

Attributo Protocollo e Profilo Attributivo Generico (ATT/GATT)

Per Bluetooth LE, il GATT definisce un modo strutturato per esporre i servizi e le caratteristiche dei dati. Il protocollo Attribute (ATT) fornisce il meccanismo client-server: un server del GATT memorizza gli attributi (servizi, caratteristiche, descrittori), e un cliente del GATT li legge/scrive.

Gli ingegneri incorporati che progettano un server del GATT devono definire la tabella degli attributi nelle richieste di firmware, maneggiano le richieste di lettura/scrittura e inviano notifiche o indicazioni al client.

Service Discovery Protocol (SDP) e Profilo di accesso generico (GAP)

Il Bluetooth Classic utilizza SDP per scoprire i servizi disponibili su un dispositivo remoto. LE utilizza GAP per gestire la scoperta del dispositivo (pubblicità e scansione) e l'istituzione di connessione. GAP definisce ruoli come Broadcaster, Observer, Peripheral e Central. Il payload pubblicitario (31 byte in LE 4.0-4.2, esteso fino a 1650 byte in Bluetooth 5.0 ADI) contiene bandiere, nome del dispositivo e il servizio di imballaggio UUID di tempo ridotto.

RFCOMM e OBEX (Classic)

RFCOMM emula le porte seriali RS‐232 su L2CAP, consentendo la comunicazione seriale legacy. OBEX fornisce lo scambio di oggetti (ad esempio, trasferimenti di file), che sono ancora ampiamente utilizzati per dispositivi incorporati legacy come scanner di codici a barre abilitati a Bluetooth o strumenti diagnostici.

Profili Bluetooth

I profili definiscono come i protocolli vengono combinati per realizzare un caso di utilizzo specifico, essenziali per l'interoperabilità, alcuni profili comuni includono:

  • Profilo senza fili (HFP)[] – per la comunicazione vocale in cuffie e kit auto.
  • Dispositivo di interfaccia umano (HID)[] – per tastiere, mouse, controller di gioco.
  • Profilo di controllo remoto audio/video (AVRCP)[] – per il controllo di lettori audio/video.
  • Profilo del dispositivo di guarigione (HDP)[] – per i sensori medici.
  • Servizio di Sensing Ambientale (ESS)[] – un servizio GATT per la temperatura, l'umidità, la pressione.
  • Profilo di pressione (BPP)[] – standard per i monitor della pressione sanguigna.

Quando si seleziona un profilo, gli ingegneri dovrebbero preferire profili che corrispondono allo standard per evitare lo sviluppo personalizzato e garantire un facile accoppiamento con telefoni o computer. Per LE, i profili basati sul GATT definiti dal Bluetooth SIG (o profili personalizzati) sono tipicamente implementati utilizzando uno stack che fornisce un'API del GATT.

Miglioramenti Bluetooth 5.x

La specifica Bluetooth Core 5.0, 5.1, 5.2, e 5.3 hanno introdotto diverse funzionalità che influiscono significativamente sulla progettazione del sistema incorporato.

LE Estensioni pubblicitarie

Bluetooth 5.0 amplia la pubblicità permettendo maggiori carichi di pagamento (fino a 1650 byte) e canali pubblicitari ausiliari con pubblicità periodica. Questo consente un più robusto sistema di incastro e di trasferimento dati senza connessione (ad esempio, rete BLE e servizi di localizzazione). Il concetto di identificatori di serie pubblicitari (ADI) e canali pubblicitari secondari richiede una programmazione accurata nel Link Layer per evitare collisioni.

LE Coded PHY e 2M PHY

Come già detto, il Coded PHY quadruplica l'intervallo codificando ogni bit con simboli multipli (S=2 o S=8) e aggiungendo FEC. Il 2M PHY raddoppia il throughput. Entrambi richiedono il supporto hardware sottostante; non tutti i chip li implementano. Quando si progetta un prodotto, verificando che il controller selezionato supporta il PHY desiderato è cruciale.

Angolo di arrivo / Angolo di partenza (AoA/AoD)

Bluetooth 5.1 ha aggiunto la ricerca della direzione sfruttando gli array di antenne e il campionamento IQ. Questo consente sistemi di localizzazione in tempo reale (RTLS) con precisione di sotto-metro. Il Link Layer inserisce una speciale estensione costante del tono (CTE) dopo il carico di pacchetto, e il ricevitore registra campioni IQ per il calcolo dell'angolo.

LE Isochronous Canali e LE Audio

Bluetooth 5.2 ha introdotto i canali LE Isochronous per lo streaming affidabile e a bassa latenza. Questa è la base della nuova architettura LE Audio. Il codec LC3 fornisce una qualità audio superiore a bitrate inferiori rispetto alla SBC. LE Audio consente di trasmettere l'audio (ad esempio, per gli interfoni pubblici), l'audio multi-stream e il supporto per l'apparecchio acustico.

Mesh Bluetooth

Per reti di dispositivi su larga scala (ad esempio, controllo dell'illuminazione, automazione degli edifici), Bluetooth Mesh utilizza inondazioni o inondazioni gestite su portatori di pubblicità BLE. I messaggi di relè dei nodi mesh utilizzando un modello di sottoscrizione pubblica con modelli definiti (ad esempio, OnOff generico, Light Lightness).

Implementare un nodo Bluetooth Mesh richiede una memoria significativa per memorizzare elenchi di sottoscrizione, numeri di sequenza e buffer di ritrasmissione. Gli ingegneri incorporati devono selezionare uno stack mesh-capable (ad esempio, Zephyr, TI’s, Nordic’s) che supporta il provisioning sul GATT (PB‐GATT) per smartphone o per pubblicità (PB‐ADV) per il provisioning basato su rete.

Considerazioni di progettazione per gli ingegneri incorporati

Gestione del potere

La durata della batteria è spesso la priorità assoluta. Lo stack Bluetooth fornisce diversi meccanismi di bassa potenza:

  • Modalità di sonno:[] Stato di idle controller (ad esempio, modalità sniff per Classic, sonno profondo per LE) ridurre corrente a microampli.
  • Intervalli di connessione:[ Gli intervalli più lunghi riducono il ciclo di dovere, ma aumentano la latenza.
  • L'intervallo di pubblicità:[ La pubblicità veloce (20 ms) drena la batteria; la pubblicità lenta (1+ secondo) aumenta il tempo di scoperta.
  • Ottimizzazione di potenza TX:[] Utilizzare la potenza di uscita più bassa che fornisce un collegamento affidabile.

Gli ingegneri dovrebbero anche considerare le periferiche specifiche per il ciclismo (ad esempio, il tempo di riscaldamento del sensore) e utilizzare il controllo del flusso hardware per ridurre l'ascolto del dispositivo SPI/UART.

Coesistenza e interferenze

Bluetooth condivide la banda 2.4 GHz con Wi‐Fi, Zigbee e molti altri dispositivi.

  • Utilizzando l'accoppiamento di frequenza adattativa (AFH), che le liste nere canali con alta interferenza.
  • Utilizzando PA/LNA con filtro per rifiutare i bloccanti a banda larga.
  • Coordinare con Wi‐Fi tramite un interruttore a antenna condivisa o utilizzare il segnale di coesistenza WCI‐2 integrato su alcuni chipset.

Design di Antenna

Per i disegni embedded compatti, le antenne planari inverted‐F (PIFA), le antenne a chip o i monopoli medi sono comuni. I parametri critici includono l'accoppiamento di impedenza (obiettivo 50 Ω), la clearance del piano terra e la messa a punto a 2.44 GHz. Gli ingegneri dovrebbero simulare o misurare la perdita di ritorno (S11) e l'efficienza delle radiazioni.

Debug e Testing

Il debug Bluetooth può essere stimolante perché la radio è invisibile.

  • Analizzatori di protocollo (ad esempio, Ellisys, Teledyne LeCroy, o soluzioni open source come nRF Sniffer con Wireshark) per catturare i pacchetti HCI e over-the-air.
  • Analizzatori di spettro per la conformità delle maschere di interferenza e trasmettitore a banda larga.
  • Tester di conformità per la qualificazione Bluetooth SIG (RF‐PHY, LL, L2CAP, profili GATT).
  • I registri di software con i timestamp per correlare gli eventi di stack.

Molti stack incorporati (ad esempio, Zephyr’s, FreeRTOS+BLE) forniscono livelli di debug che possono essere disattivati per la produzione.

Attuazione della sicurezza

La sicurezza non è facoltativa.

  • Usa Secure Connections Only[[] modalità per LE (funzioni scambio di chiavi ECDH e crittografia AES‐128).
  • Attiva OOB pairing[] se il dispositivo ha un canale sicuro alternativo.
  • Utilizzare indirizzi statici casuali o indirizzi privati risolvbili (RPA) per evitare il tracciamento.
  • Convalida i valori di scrittura del GATT in entrata per evitare i sovrapiedi del buffer.
  • Conservare le chiavi di incollaggio in un elemento sicuro o la memoria antimanomissione, se possibile.

Conclusioni

Lo stack del protocollo Bluetooth è un'architettura ricca e multistrato che bilancia le prestazioni, la potenza e la compatibilità. Per gli ingegneri incorporati, una solida presa di ogni strato – dal battiscopa della frequenza della radio al tavolo attributo del GATT – è essenziale per creare prodotti wireless affidabili. L'evoluzione dal Bluetooth classico al BLE 4.0, Bluetooth 5.x, LE Audio e Mesh continua ad aprire nuove opportunità, ma richiede anche una comprensione più profonda dei tempi, della sicurezza e della connessione.