La tecnologia Bluetooth, inizialmente pensata per sostituire con connessione wireless il groviglio di fili tra il PC e le sue unità, è stata progettata per soddisfare determinati requisiti basilari:
• Il sistema deve funzionare globalmente (in tutto il mondo).
• Il sistema deve supportare la connessione peer (tra pari).
• La connessione deve supportare sia il traffico vocale che di dati.
• Il trasmittente radio deve avere dimensioni ridotte e operare a bassa potenza.
• Il sistema deve essere a basso costo e quindi alla portata di tutti.

CARATTERISTICHE DELL’INTERFACCIA RADIO BLUETOOTH.
Per soddisfare la richiesta di funzionamento globale, la banda di frequenza occupata deve essere accessibile in tutto il mondo. Tale banda è a una frequenza di 2,45Ghz e identificata con la sigla ISM (Industrial Scientific Medical). Tale banda risulta anche essere license free (libera da licenza).
Essendo accessibile a chiunque, risulterebbero facili le interferenze con le altre sorgenti radio operanti sulla stessa frequenza. Per sopperire a questo inconveniente lo standard Bluetooth adotta il FHSS (Frequency Hopping Spread Spectrum). Tale tecnica divide la banda spettrale in tanti canali di salto. Durante una trasmissione radio il trasmettitore e il ricevitore saltano in frequenza da un canale all’altro secondo una sequenza pseudocasuale. Questo metodo assicura anche una bassa interferenza sulla comunicazione, e se accidentalmente una certa quantità di dati andasse smarrita o fosse ricevuta in maniera non corretta, la struttura supporta degli algoritmi di correzione di errori.
I canali Bluetooth usano lo schema FH/TDD (Frequency Hopping Time Division Duplex).
Il canale è diviso in slot consecutivi, contenenti un solo pacchetto di dati per slot, e ogni slot dura 625us. Per ognuno di essi è usata una sequenza di salto diversa e generalmente si ottiene un hop-rate di 1600 hps. Sulla stessa frequenza, slot consecutivi sono usati per la trasmissione e per la ricezione.
Due o più unità Bluetooth che condividono lo stesso canale formano un piconet. La disposizione di tali unità prevede una sola unità master, che detta la sequenza di salto, e tutte le altre unità slave. Oltre alla sequenza di salto, l’unità master stabilisce anche la fase del sistema dal suo clock.
I canali di accesso sono spaziati di 1Mhz l’un altro e nella banda ISM sopraccitata risultano 79. La modulazione adottata è di tipo GFSK (Gaussian Frequency Shift Keying). Questo tipo di modulazione si diversifica dalla più nota GMSK (Gaussian Minimum Shift Keying) per il valore dell’indice di modulazione che è definito come il prodotto tra l’entità dello spostamento in frequenza che codifica i valori logici 1 e 0 e il periodo di simbolo. Nella modulazione di tipo GMSK l’indice di modulazione deve valere esattamente 0,5 mentre nei sistemi GFSK può variare tra 0,1 e 1. Nel sistema Bluetooth la variazione in frequenza, positiva per la codifica di 1 e negativa per la codifica di 0, deve essere compresa tra 140 e 170 KHz, mentre il periodo di simbolo vale 10-6 s.
In ogni slot, un pacchetto può essere scambiato tra l’unità master e una delle unità slave. Come riportato in figura 82, ogni pacchetto ha una lunghezza in bit fissata e comunque sempre con una sequenza di 72 bit di access code che caratterizza l’identità dell’unità master e quindi del canale.
Ogni unità slave, prima di ricevere il payload in ogni pacchetto confronta l’access code col proprio codice di piconet. Se i due non coincidono essa ignora il contenuto di pacchetto, altrimenti lo accetta. Oltre a questa proprietà, il codice di accesso è anche usato per la sincronizzazione e la compensazione di offset in frequenza.
Dopo l’access code c’è il packet header. Esso contiene importanti informazioni di controllo, e andando per ordine si suddivide in:
• 3-bit per l’indirizzo di ogni slave in stato attivo.
• 4-bit per il tipo di pacchetto.
• 1-bit per il controllo di flusso.
• 1-bit per ARQ (Automatic Retrasmission Query).
• 1-bit per l’ordine dei pacchetti.
• 8-bit per HEC (Header-Error-Check) meccanismo di check d’errore.
Il successo o meno della consegna di un pacchetto è mostrato nell’header di quello di ritorno e precisamente nel bit di ARQ che mostra al trasmittente se il payload precedentemente inviato è stato ricevuto correttamente o no. Quindi dopo aver analizzato tale bit l’unità di trasmissione stabilisce se ritrasmettere o meno l’ultimo pacchetto dati. Siccome trascorre un tempo di soli 220us., tra la ricezione dell’ultimo bit del payload e la trasmissione del successivo, l’algoritmo CRC di check sul contenuto deve essere molto rapido, quasi in tempo reale.
Infine c’è il payload che come illustrato ha una lunghezza variabile da 0 a 2745 bit e si verifica che un solo pacchetto è sempre mandato su un singolo canale di salto.
Sono stati definiti due tipi di collegamento per supportare le applicazioni multimediali fatte sia da traffico vocale che di dati:
• Collegamento SCO (Synchronous Connection Oriented).
• Collegamento ACL (Asynchronous Connection Link).
Il collegamento SCO è usato tipicamente per connessioni vocali point-to-point a commutazione di circuito. Questo collegamento nel canale è rappresentato dal fatto di occupare due slot consecutivi, uno per la trasmissione e uno per la ricezione. Mentre il collegamento ACL è usato per trasmissioni bursty data point-multipoint a commutazione di pacchetto.
L’unità master usa uno schema di polling per prevenire collisioni durante le connessioni a più unità slave che vogliono trasmettere. Sia il traffico SCO che ACL è sempre controllato dall’unità master. Il collegamento ACL, comunque, è costantemente presente tra master e slave per tutto il tempo che dura il piconet, mentre l’SCO solo per la durata di collegamenti sincroni (tipicamente vocali).
I tipi di bit nell’header indicano quale pacchetto è usato.
• Per collegamento SCO si ha un bit rate di 64Kbps. I bit vocali sono mandati senza protezione.
• La connessione ACL può essere anche asimmetrica, raggiungendo un bit rate di 723,2 Kbps in downlink e 57,6 in uplink. I bit in questo caso possono essere mandati sia in forma protetta che non.
Come si è visto lo standard bluetooth opera su una banda di frequenza aperta e non immune a interferenze. Le tecniche per renderla immune sono le seguenti:
• La tecnica del salto di frequenza con hopping-rate alto e una durata in secondi del pacchetto bassa (625us.).
• Lo schema ARQ assicura la ritrasmissione di quei pacchetti non ricevuti o ricevuti in modo non corretto, come visto prima. Tale tecnica è usata solo per connessioni ACL.
• Per connessioni SCO, dove non è previsto nessuno schema ARQ di ritrasmissione, si adotta un codificatore vocale che ha come obiettivo di rendere meno percettibile il rumore introdotto durante la quantizzazione, utilizzando un bit rate di 64 Kbps (8 KHz di sampling rate e 8 bit di codifica). La quantizzazione logaritmica a 8 bit è stata definita per migliorare la qualità della codifica vocale. Ciò equivale ad utilizzare dimensioni del passo di quantizzazione crescenti con il valore del segnale in ingresso: piccole ampiezze sono codificate con un passo di quantizzazione a granularità più fine.
Per quanto riguarda la sicurezza, il meccanismo utilizzato per l’autenticazione, molto simile a quello utilizzato dallo standard GSM, è di tipo challenge-response: un’unità viene sfidata dal master a generare una risposta ad un numero casuale che viene trasmesso da master a slave. In base alla risposta generata, è possibile autenticare l’identità dello slave. Il processo di autenticazione e quello di cifratura si basano su 4 entità: l’entità pubblica dell’unità (48 bit), un numero casuale di 128 bit pubblico, che viene cambiato allo scadere di un apposito timeout, e due chiavi segrete, che vengono create durante il setup del link e vengono utilizzate per tutta la durata della connessione.
CONNESSIONE PEER.
Lo standard Bluetooth si basa su connessione peer. Non esistono infrastrutture via cavo come l’Access Point.
Quando una o più unità non sono connesse con le altre, esse sono in stand-by, cioè non trasmettono nulla e ascoltano solo il salto dei canali. Al momento di trasmettere, l’unità si posiziona nella modalità di wake-up e ascolta per un tempo di 11ms. i particolari canali di salto. Sono stati definiti da un totale di 79 canali di salto un sottogruppo di 32 canali di wake-up. Durante questo periodo di wake-up l’unità ascolta il segnale entrante da un singolo canale di salto e lo confronta con il proprio codice di accesso. Se tale confronto da esito positivo, l’unità incomincia la procedura di connection-setup, altrimenti ritorna in modalità sleep.
Per un periodo di circa 10ms., l’unità di paging, cioè l’unità che cerca di formare una rete wireless, trasmette lo stesso access code su differenti canali di salto intorno al canale supposto, e tale periodo è ripetuto finchè l’unità in stand-by risponde o finchè eccede un certo tempo di time-out. Se anche questa procedura va a buon fine, l’unità di paging invia un pacchetto contenente la sua identità e il suo clock, e da questo momento si crea il piconet dove l’unità paging costituisce il master.
Il piconet è formato da più unità Bluetooth che formano una connessione entro un certo range condividendo un determinato canale in FH (Frequency Hopping). Ad ogni tempo una piconet è caratterizzata da un solo master e da più slave. Ogni master, come si è visto, specifica le caratteristiche di piconet quali la sequenza di salto, l’access code e sincronizzazione del clock.
Le unità master controllano tutto il traffico. Per collegamenti SCO esse riservano slots sul canale, mentre per collegamenti ACL usano uno schema di polling. Le unità slave con maggiore richiesta di traffico saranno interrogate dal master più frequentemente che altre, questo è reso possibile da un algoritmo dinamico di polling.
Quando si stabilisce una piconet, tutti gli slave aggiungono al proprio clock un offset, tale da rendere possibile la sincronizzazione con il master. Il master non corregge mai il suo orologio durante l’esistenza della rete, mentre gli slave regolano continuamente l’offset che, sommato al proprio clock, deve risultare uguale e sincrono rispetto all’orologio del master.
Se più utenti condividono lo stesso canale, la capacità per utente diminuisce proporzionalmente al loro numero. Lo spettro di banda disponibile è di 79Mhz e per aumentare la capacità di traffico una soluzione consiste nel sovrapporre diverse piconet all’interno della stessa area. All’interno di ogni piconet i partecipanti possiedono un canale di 1Mhz, ma aumentando il numero di piconet aumenta la capacità di traffico per ognuno di essi. Una collezione di diversi piconet è chiamata scatternet.
Si verifica però che aumentando il numero di piconet scende drasticamente il rendimento del sistema FH (Frequency Hopping), in quanto la probabilità di sovrapposizione aumenta. La simulazione di uno scatternet composto da 10 piconet mostra una riduzione del throughput di circa il 10%. Questo risultato deriva dalla legge sperimentale:
TH = (1- 1/79)N-1
Dove TH è il throughput e N è il numero di piconet. Ricordiamo che il numero massimo di unità all’interno di un piconet risultano otto: un master e sette slave. Una unità può condividere due piconet, essendo master in una e slave nell’altra attraverso un accesso multiplo FDD (Frequency Division Duplex).
GESTIONE DI POTENZA.
Essendo lo standard Bluetooth pensato anche per terminali mobili, diversi provvedimenti sono stati inclusi per il risparmio delle batterie.
• Il canale di salto è virtualmente presente anche se non avviene nessuna trasmissione, così nessun pacchetto senza senso è scambiato per far rimanere sincronizzate master e slave.
• Le unità slave non leggono tutti i payload dei pacchetti ricevuti, ma solamente quelli corrispondenti al loro indirizzo e coincidenti col proprio access-code.
Il bluetooth supporta anche le tecniche di power saving a livello “macro”. Esistono quattro modi di funzionamento della connessione.
• Active mode.
• Sniff mode.
• Hold mode.
• Park mode.
Nell’active mode il dispositivo Bluetooth partecipa attivamente alla rete. Il master distribuisce il traffico e, attraverso l’access code che svolge la funzione di preambolo di tutti i pacchetti della rete, permette agli slave di mantenere il sincronismo. Nello sniff mode viene ridotto il ciclo di attività di uno slave, destinando solo alcuni slot alla comunicazione: si definisce un periodo Tsniff durante il quale lo slave può entrare in low power mode o partecipare ad altre piconet.
Nell’hold mode, al fine di ottimizzare i consumi energetici, durante un determinato intervallo di tempo predefinito dalle due unità coinvolte, viene tolta la possibilità ad uno slave di effettuare comunicazioni asincrone e di creare nuove connessioni sincrone (se vi sono connessioni in corso, esse possono procedere fino alla terminazione naturale). Nel park mode si mette l’unità in uno stato a basso consumo, ottenuto riducendo il suo stato di attività. L’unità parcheggiata ascolta il canale ad intervalli regolari per risincronizzarsi.


Come funziona

Lo standard Bluetooth prevede l'utilizzo di una banda radio a 2.4Ghz con un transfer rate pari a di circa 1Mbit al secondo.

Il raggio di azione del Bluetooth varia a seconda della potenza dell'antenna radio installata:

•    fino a 10 metri con antenne di potenza 0dB
•    fino a 50 metri con antenne di potenza 10dB
•    fino a 100 metri con antenne di potenza 20dB
Va da se che ad una maggiore potenza corrisponde un maggior consumo nei dispositivi e soprattutto una maggiore probabilità di interferenza con altri dispositivi Wireless. Per questo motivo la gran parte dei produttori è orientato alla prima fascia (fino a 10 metri di raggio).

L'allocazione internazionale delle frequenze radio
Il segnale inviato in questa fascia è molto debole (pari a circa un MilliWatt) e questo fa si che esso non interferisca in alcun modo con altri apparecchi a frequenze radio come i cellulari o la televisione. Il segnale basso non impedisce comunque alle onde radio di propagarsi anche attraverso i muri e quindi il BlueTooth è perfettamente utilizzabile anche tra stanze differenti.

Nel caso in cui più di un dispositivo bluetooth sia presente nelle vicinanze di un altro, è facile pensare al fatto che le onde radio interferiscano tra loro durante le differenti comunicazioni. In realtà questo non avviene quasi mai.

Grazie all'uso di una tecnica chiamata Spread-Spectrum Frequency Hopping, un dispositivo può usare fino a 79 frequenze (in modo casuale e all'interno di un range specifico) cambiandole secondo un ordine prefissato fino a 1600 volte al secondo.

In una situazione del genere è molto improbabile che due dispositivi riescano a trasmettere sulla stessa frequenza allo stesso tempo. Nel caso piuttosto raro che questo avvenga, l'interferenza è comunque limitata ad una piccola frazione millesimale di secondo.

Come può essere usato
In teoria è possibile trovare un numero infinito di attività che grazie al Bluetooth possono essere facilmente realizzate. Quelle più comuni attualmente realizzate prevedono la connessione tra PC, Portatili, PDA e telefoni cellulari.

Condividere informazioni tra questi congegni non è più un problema visto che non servono più cavi, alimentazioni supllementari e software particolari. E' necessario solo che tutti i dispositivi siano compatibili Bluetooth e che si trovino nel raggio di azione dell'antenna.

Potremmo stampare la rubrica del nostro cellulare su una stampante laser o inviarla al nostro PDA. Saremo in gradi di ricevere E-Mail sul nostro telefonino o addirittura di collegarci con il nostro portatile alla LAN aziendale.

Una delle applicazioni più in uso riguarda il collegamento del cellulare al kit vivavoce della nostra auto. La comodità è evidente. Una volta entrati in macchina i due dispositivi stabiliscono automaticamente una connessione e non dobbiamo nemmeno preoccuparci di tirare fuori il nostro telefonino dalla giacca o dalla borsa.