Tempo di Lettura: 7 minuti
Il nome bluetooth come ormai tutti saprete deriva da un re vichingo danese
famoso per la sua abilità nel far comunicare le persone. Come il famoso 802.11x il bluetooth è
una specifica wireless che in questi anni ha mandato in pensione cavetterie varie. Fu Ericsson
nel 1994 che ebbe per primo l’idea di una soluzione wireless per eliminare i cavi dal
telefonino all’ auricolare oppure nel computer per sincronizzare agenda e rubrica. Nel
settembre 1998 si formò un alleanza chiamata Bluetooth Special Interest Group (SIG) e i
membri fondatori furono: Nokia, IBM, Intel e Toshiba . Lo scopo di questa nuova tecnologia
wireless era quello di creare uno standard aperto e universale; inoltre era necessario che
supportasse sia la trasmissione dati che quella vocale, doveva essere a basso costo accessibile a tutti e di piccole dimensioni. Fu così che nell’estate del 1999 il SIG rilasciò la versione 1.0.
L’anno seguente al progetto si unirono al SIG altre quattro compagnie 3COM, Lucent
Technologies, Microsoft e Motorola, fino a raggiungere oggi una communità di oltre 2000
compagnie membre del progetto.
Come funziona
Il bluetooth utilizza un segnale radio a basso consumo energetico, si
posiziona sulla banda a 2,45Ghz (generalmente svincolata in tutti gli stati da licenze varie) e
per evitare le interferenze con gli altri apparecchi è stato introdotto il FHSS (Frequency
Hopping Spread Spectrum) il quale divide la banda spettrale in tanti canali e raggiunge un
cambio di frequenza molto veloce, in un secondo cambia 1.600 volte, su 79 frequenze a
intervalli di un 1mhz (parte da 2.402GHz e finisce a 2.480GHz). Dato che opera alla stessa
frequenza dello standard 802.11b e g , alcuni esperti sostengono che questo possa far sorgere
alcuni problemi se due apparecchi fossero nella stessa area.
Vi sono tre tipi diversi di apparecchi Bluetooth e si differenziano tra di loro in base alla potenza di trasmissione:
1) Potenza di classe 1: dispositivi a lungo raggio circa 100 metri di copertura, una
potenza di 100mW e un uscita massima di 20dBm
2) Potenza di classe 2: dispositivi a raggio normale circa 10 metri di copertura, sono i
chip all’interno dei telefonini, hanno una potenza di 2,5 mW e escono a 4dBm.
3) Potenza di classe 3: hanno un raggio mediocre di circa 10 cm, la loro potenza è di
1mW e 0dBm.
Una rete Bluetooth si è soliti chiamarla Piconet. Una piconet è costituita da due o più
periferiche che condividono un canale di comunicazione, composte da un dispositivo che funge da master e uno o più dispositivi chiamati slave. La frequenza di hopping è per tutti uguali in una piconet e viene data dal master. In una piconet è possibile avere un massimo di sette slave attivi, anche se lo standard bluetooth è in grado di disattivare dispositivi in eccesso se non necessari.
E’ possibile tuttavia collegare assieme diverse piconet, e realizzare una rete molto più grande
quella che il bluetooth chiama Scatternet.
Un dispositivo Bluetooth possiede quattro tipi di indirizzi differenti: BD_ADDR, (Bluetooth
Device Address) formato da un indirizzo unico di 48bit. AM_ADDR, (Active Member Address), formato da 3bit valido soltanto finchè il slave è attivo sul canale. PM_ADDR, (Parked Member Address) destinato ai dispositivi slave in “park mode� ovvero dispositivi che pur rimangono sincronizzati con la piconet, ma non partecipano al traffico di dati. AR_ADDR, (Access Request Address), altro indirizzo destinato ai dispositivi parked, utilizzato per mandare una richiesta di accesso, non è necessariamente univoco.
Un dispositivo bluetooth opera maggiormente in due soli diversi stati: Standby e Connection,
lo stato di standby è anche lo stato di minor consumo di energia, non vi alcuna interazione con altri dispositivi bluetooth e inoltre gira al clock suo nativo. Nella stato di Connection vi è uno scambio di dati tra un master e uno slave, e la frequenza di clock nonchè la chiave di accesso vengono definite dal master.
Vi sono anche sette stati minori chiamati rispettivamente: page, page scan, inquiry, inquiry
scan, master response, slave response e inquiry response.
Quando il device non conosce alcuna informazione sul bluetooth remoto esegue
rispettivamente lo stato di inquiry, che permette di fare uno scan e localizzare dispositivi
raggiungibili dell’area circostante ottenendo informazioni quali indirizzo bluetooth e clock del dispositivo remoto. Subito dopo entra in funzione lo stato di inquiry response per ritrasmettere al dispositivo scoperto informazioni utili sul proprio conto quali BD_ADDR etc. Normalmente dopo lo stato di inquiry una volta ottenuto l’indirizzo del dispositivo remoto segue lo stato di paging il quale permette di effettuare a tutti gli effetti un tentativo per stabilire una connessione attiva: l’unità che stabilisce la connessione diviene così automaticamente il master.
Il dispositivo essendo progettato per equipaggiare apparecchiature portatili e non penalizzare sulla loro durata di batteria, può assumere quattro diversi stati per gestire il consumo elettrico:
1. Active Mode, partecipa attivamente in piconet su un canale.
2. Sniff Mode, il dispositivo per risparmiare energia ascolta nella piconet ma a una minor frequenza, costringendo il master a ridurre il numero dei canali da utilizzare durante la trasmissione.
3. Hold Mode, ulteriore stato per risparmiare l’energia, è possibile utilizzare la modalità hold per fermare temporaneamente il trasferimento dei dati su in modo da riservare capacità per inquiry, page, scan o passare a lavorare in altra piconet. L’unità in modalità hold può anche entrare in uno stato a basso consumo di potenza pur conservando il proprio AM_ADDR e quando la richiesta perviene la trasmissione di dati viene ripresa immediatamente.
4. Park Mode: modalità di massimo risparmio energetico dove il dispositivo rimane solo sincronizzato con la piconet, cede il suo AM_ADDR e gli vengono assegnati due nuovi indirizzi un park address (PM_ADDR) e un access request adress (AR_ADDR) il dispositivo occasionalmente ascolta il traffico del master che lo re-sincronizza (con l’utilizzo di speciali beacon channel) e sempre attraverso questi canali ascoltari i vari messaggi in broadcast.
Una volta stabilito il link ovvero il collegamento tra il dispositivo master e quello slave, ci sono due tipi diversi di servizi che possono essere utilizzati:
1. Servizi di tipo Asincrono : vengono riferiti da Bluetooth con il termine ACL (Asynchronous
Connection-Less). Appena viene creata una connessione il link acl entra in azione , il master
può possedere un qualsiasi numero di link ACL , però può esistere solo un link ACL tra la
connessione di due dispositivi. La scelta di quale slave deve ricevere o trasmettere è
fatta dal master slot per slot con il passare del tempo. Uno slave può rispondere nello slot del
master solo se il pacchetto è stato indirizzato realmente a lui e quindi decifrato. Tuttavia esiste anche la possibilità di inviare pacchetti in broadcast. Il Link ACL viene usato durante la
trasmissione dati e sono in grado di utilizzare il multislot FEC e di default implementano il
meccaniscmo ARQ.
2. Servizi di tipo Sincrono : vengono riferiti da Bluetooth con il termine SCO (Synchronous
Connection-Oriented), questo collegamento è di tipo assimetrico tra master e slave, un master può inoltre realizzare fino a tre link SCO con 3 diversi slave in contemporanea e uno slave è in grado di realizzare fino a tre link SCO con lo stesso master oppure 2 link con master differenti.
Anche se uno slave non è in grado di decifrare il pacchetto potrà ritrasmettere una risposta al
master nello slot ad esso destinato. Sono utilizzati per trasportare voce, e ogni link garantisce
un troughput di 64 kbps bidirezionale. Non è implementato un meccanismo ARQ, quindi i
pacchetti possono essere soggetti a errori.
Il bluetooth è in grado anche di gestire egregiamente il controllo degli errori durante la
trasmissione suddividendo in tre categorie diverse la sensibilità della correzzione di eventuali errori: 1/3 rate FEC (Forward Error Correction) ogni singolo bit viene trasmesso tre volte per rindondanza. 2/3 rate FEC un generatore polimoniale è usato per codificare 10 bit a 15 bit di codice. Schema ARQ in grado di verificare automaticamente eventuali errori, e nel caso non ci fossero passare al prossimo pacchetto.
Tirando le somme, affinche avvenga una sincronizazzione bluetooth sono necessari tre
informazioni :
1) Channel Hopping Sequence: di conseguenza il BD_ADDR del master da quale si
ricava la frequenza di hopping.
2) Phase: dalla velocità di clock del master riusciamo a determinare la fase corretta di
frequenza di hopping
3) Channel Access Code: il codice di accesso per il canale.
Informazioni tratte da Bluetooth Security (Security Wireless)
Very well!!
It’s a good article; simple, clear and complete.
Giusto un appunto…
Il nome Bluetooth deriva da “Harald 2° Blatand” , re danese del decimo secolo.
La sua particolare bravura non era “far comunicare le persone” …per niente! E’ in suo onore il nome dello standard perchè unì Danimarca e Norvegia sotto un unico “governo” (per abuso di notazione). Due “nazioni” che, oltre a non essere collegate via terra, erano completamente differenti quanto a usi, costumi, religioni, etnie ecc…
Infatti tale standard ha come principale obbiettivo, quello di interconnettere dispositivi differenti tra di loro, per mezzo di onde radio.
Per il resto contiene molte info utili e non è male come articolo.
@neos: grazie mille per la precisazione… molto più interessante questa storia 🙂