Tehnologia Bluetooth
Generalitati
In 1998, cinci companii importante (Ericsson, Nokia, IBM, Toshiba si Intel) au format un grup, numit Bluetooth SIG (Special Interest Group), pentru a crea o tehnologie care sa nu necesite licenta destinata conexiunilor universale fara fir ntre dispozitivele mobile. Rezultatul este Bluetooth, o tehnologie ce a luat numele regelui care în secolul al X-lea a unit triburile de razboinici Vikingi. Adoptarea acestui nume reprezinta o recunoastere a rolului deosebit pe care companiile nordice l-au avut în dezvoltarea tehnologiei Bluetooth.
Bluetooth reprezinta un standard pentru comunicatii radio pe distante scurte. Principalele trei scopuri avute în vedere înca din faza de proiectare sunt: dimensiune redusa, consum minim, pret scazut. Tehnologia a fost proiectata pentru a fi simpla si pentru a deveni un standard de facto in conexiunile fara fir.
Primele specificatii referitoare la Bluetooth au aparut în februarie 2001 sub denumirea de Bluetooth 1.1 Specification. A urmat apoi în 2003 Bluetooth 1.2 Specification. Specificatiile sunt compuse din doua parti: nucleul si profilele.
Specificatiile nucleului definesc toate nivelele din stiva protocolului Bluetooth (figura 13). Stiva protocolului Bluetooth difera în anumite privinte de modelul clasic, OSI. Aceste diferente provin in principal din conditia impusa Bluetooth-ului de a suporta conectivitate ad-hoc între nodurile participante la care se adauga cerinta de consum redus si necesitatea implementarii protocolului pe dispozitive care au resurse limitate, dispozitive pe care nu s-ar putea implementa modelul OSI.
figura 13.- Stiva protocolului Bluetooth si structura chip-ului Bluetooth
Nivelul radio (RF) se afla la baza stivei. Specificatiile interfetei sale definesc caracteristicile transmisiunii radio, banda de frecventa, structura canalelor, nivelele admise ale puterii de emisie si nivelul de sensibilitate al receptorului.
Al doilea nivel este 17217u2024r baseband. Acest nivel se ocupa cu partea fizica a Bluetooth-ului (PHY) si controlul accesului la mediu (MAC). Acestea implica sarcini cum ar fi descoperirea dispozitivelor (device discovery), formarea legaturii, comunicatie sincrona sau asincrona cu dispozitivele conectate.
Dispozitivele conectate trebuie sa schimbe între ele unele mesaje de control pentru configurarea si managementul conexiunilor. Structura acestor mesaje este definita la nivelul link manager protocol (LMP). Entitatea functionala care are rolul de a îndeplini functiile acestui nivel se numeste managerul legaturii (link manager).
Un aspect care confera unicitate Bluetooth-ului îl reprezinta integrarea într-un singur chip Bluetooth a partii radio si a partii de control. Un chip bluetooth poate fi conectat cu procesorul dispozitivului gazda folosind ca interfete USB, UART sau un PC-card. In specificatiile nivelului controler interfata cu dispozitivul gazda (Host Controller Interface - HCI) se defineste o metoda de interfatare independenta pentru comunicarea cu chip-ul Bluetooth. Procesorul dispozitivului gazda comunica cu modulul Bluetooth folosind comenzi HCI. Nivelul HCI este parte a stivei Bluetooth dar nu constituie un nivel de comunicatie peer-to-peer, cu un alt dispozitiv Bluetooth, din moment ce comenzile HCI si mesajele de raspuns nu folosesc legatura radio.
Nivelul de control al legaturii logice si protocolul de adaptare (logical link control and adaptation protocol - L2CAP) poate fi considerat ca fiind Link layer-ul pentru Bluetooth. Acest nivel se ocupa de multiplexarea, reasamblarea si segmentarea pachetelor. In mod uzual nivelul L2CAP si nivelele superioare sunt implementate software. L2CAP livreaza pachetele receptionate de la nivelele superioare catre destinatar. Dispozitivele Bluetooth pot stabili o legatura L2CAP de îndata ce sunt unul în raza celuilalt. Un dispozitiv client trebuie sa descopere mai întâi serviciile oferite de un dispozitiv server.
Nivelul protocolului de descoperire a serviciilor (Service discovery protocol - SDP) defineste mijloacele prin care dispozitivul client poate descoperi atât serviciile oferite cât si atributele serviciilor. Design-ul nivelului SDP a fost optimizat pentru Bluetooth. Acesta defineste doar mecanismul de descoperire, neincluzând metodele de accesare a acestor servicii.
Specificatiile nivelului RFCOMM definesc o metoda de emulare a conexiunii prin cablu RS-232 peste legatura radio Bluetooth. RFCOMM suporta aplicatii derivate din aplicatiile care utilizau portul COM pentru a realiza comunicatii peer-to-peer (de exemplu protocoalele point-to-point - PPP, inclusiv TCP/IP) .
Bluetooth-ul opereaza în banda ISM la 2,4 GHz. Majoritatea tarilor aloca o latime de banda de 83,5 MHz (exceptie face Japonia). In interiorul acestei benzi sunt definite 79 de canale radio (23 de canale în Japonia) distantate la 1 MHz. In prezent se fac eforturi pentru a alinia toate tarile la aceasta definire a benzii pentru Bluetooth astfel încât tehnologia sa poata deveni una globala.
Bluetooth este un sistem care foloseste tehnica spectrului împrastiat cu salt în frecventa. Aceasta înseamna ca purtatoarea face salturi în frecventa acoperind întreg spectrul de 79 de canale, folosind o secventa de salt pseudo-aleatoare. Rata uzuala a salturilor, 1600 salturi pe secunda, asigura o foarte buna protectie la interferente în banda de 2,4 GHz.
figura 14.- Exemplificarea unei transmisiuni cu salt în frecventa
Un alt avantaj al salturilor rapide în frecventa îl reprezinta lungimea mica a pachetelor de date. Astfel daca un pachet nu este receptionat corect de un dispozitiv se solicita retransmisia pachetului. Cu siguranta retransmisia se va face pe o alta frecventa, în functie de secventa de salt stabilita. Acest caz este ilustrat în figura 14, unde pachetele dispozitivului 1 (casutele rosii) si pachetele dispozitivului 2 (casutele verzi) folosesc la anumite momente de timp aceeasi frecventa, rezultând coliziuni. Aceasta situatie poate sa apara si atunci când un dispozitiv non-Bluetooth foloseste o parte din banda alocata Bluetooth-ului.
figura 15.- Exemple de pachete de date transmise pe unul, trei sau cinci sloturi temporale.
Intervalul de comutare de 220μs care succede pachetele este necesar efectuarii saltului în frecventa. Pentru emisie si receptie se folosesc sloturi temporare succesive. Lungimea nominala a unui slot este de 625μs. In mod normal un pachet de date ocupa un singur slot dar poate ocupa si trei sau cinci sloturi, ca în figura 7. In cazul pachetelor multi-slot frecventa de emisie ramane aceeasi pâna când întregul pachet este transmis. Când se utilizeaza pachete multi-slot rata de bit este mai mare deoarece este nevoie doar de un singur header si un singur interval de comutare de 220μs (switching time) în fiecare pachet. Pe de alta parte, scade robustetea deoarece într-un spectru aglomerat pachetele lungi se pot transmite cu erori.
Viteza legaturii, de 1Mbps, poate fi usor atinsa folosind o modulatie GFSK. O tehnica de modulatie mai complexa ar conduce la atingerea unor rate de bit mai ridicate dar ar complica structura partii radio a Bluetooth-ului si implicit ar creste costurile de productie.
In general partea radio este cel mai costisitor element al interfetei cu o retea wireless. In receptoarele radio tipice filtrele, oscilatoarele si mixerele proceseaza semnalul de intrare la frecventa înalta. Asemenea circuite sunt costisitoare. Pentru a reduce costurile specificatiile Bluetooth recomanda trecerea semnalului de intrare pe o frecventa intermediara mai mica (aproximativ 3 MHz), frecventa care permite realizarea unor filtre integrate folosind tehnologia CMOS. Trecerea pe o frecventa intermediara mai mica creeaza însa alte probleme cum ar fi reducerea sensibilitatii receptorului. Sensibilitatea recomandata a receptorului Bluetooth este de minim -70dB.
Un grup de dispozitive Bluetooth care folosesc acelasi canal pentru a comunica între ele poarta numele de piconet. Asa cum se observa în figura 16b un piconet este o retea cu o configuratie de tip stea. Dispozitivul central are rolul de master celelalte dispozitive functioneaza ca slave (sclav). Un rol important al master-ului este acela de a stabili secventa de salt în frecventa. Aceasta secventa se stabileste pseudo-aleatoriu, în principiu pornind de la numarul care reprezinta adresa masterului si de la un alt numar generat aleatoriu de catre master. Toate dispozitivele slave din fiecare piconet sunt sincronizate cu ceasul master-ului si urmeaza schema de salt stabilita de acesta. Un master poate deservi simultan maxim sapte sclavi activi. Astfel o retea de tip piconet poate fi formata din doua, trei, pâna la opt dispozitive (figura 16a,b) din care unul singur poate fi master. Dispozitivele slave nu pot comunica direct între ele, ci doar cu masterul. Masterul poate comunica cu oricare dintre sclavi.
O retea de tip scatternet poate fi formata prin conexiunea a doua sau mai multe retele tip piconet.(figura 16c). Atunci când un dispozitiv face parte din mai multe piconet-uri el va trebui sa se sincronizeze, de fiecare data, cu piconet-ul cu care comunica la un anumit moment. Un dispozitiv poate fi sclav în doua piconet-uri diferite sau master într-un piconet si sclav în altul dar nu poate fi master pentru mai mult de un piconet.
O caracteristica proprie retelelor Bluetooth este dinamismul. Retelele Bluetooth sunt retele ad-hoc, care se formeaza, se modifica si se dizolva permanent
figura 16. - Exemple de retele de tip piconet si scatternet
a) piconet format din doua dispozitive
b) piconet format din mai multe dispozitive
c) scatternet constituit din trei piconet-uri
2.1.3 Procedura de cautare de dispozitive (inquiry) si cererea de conectare (paging)
Conectarea cu un anumit dispozitiv se realizeaza prin intermediul unui mesaj de tip page. Pentru a trimite un mesaj page (procedura numita paging) masterul trebuie sa cunoasca adresa sclavului catre care face cererea de conectare. Aceasta adresa se obtine cu ajutorul unui mesaj de tip inquiry.
Starea implicita a unui dispozitiv Bluetooth este numita standby mode. In aceasta stare dispozitivul asculta la intervale de 1,28 secunde eventualele mesaje inqury sau page. De fiecare data sunt ascultate pe rând 32 de frecvente pe care este posibil sa se primeasca unul din mesajele amintite anterior.
Prin mesajul inquiry masterul trimite un cod numit inquiry access code. Celelalte dispozitive raspund trimitând informatii despre identitatea lor si despre ceasul propriu. Dupa aceasta urmeaza o procedura de cautare de servicii utilizata pentru a determina ce fel de servicii ofera fiecare dispozitiv prezent în raza masterului.
In timpul procedurii de paging, pe baza informatiei despre identitatea si ceasul fiecarui dispozitiv masterul determina si trimite sub forma mesajului page un cod de acces si o secventa de activare a sclavului (wake-up sequence). Un astfel de mesaj va fi trimis de master pe cele 32 de frecvente destinate acestei proceduri astfel: initial mesajul este transmis pe primele 16 frecvente de 128 de ori iar daca nu se primeste nici un raspuns se continua transmiterea mesajului pe celelalte 16 frecvente tot de 128 de ori. Timpul maxim de asteptare a raspunsului la mesaj este de 2,56 secunde.
In urma procedurilor inquiry si page se realizeaza conexiunea între master si sclavi (figura 17).
figura 17. - Procedurile inquiry si page duc la stabilirea unei conexiuni
Transferul de date. Canalul piconet
Imediat ce s-a format o retea de tip piconet, comunicatia între master si sclav(i) poate începe. Canalul comun pe care se face comunicatia se numeste canalul piconet. Acest canal este împartit în intervale de timp de câte 625μs, fiecare slot folosind o alta frecventa de transmisie. Canalul este partajat între master si sclavi folosind o schema de tipul salt în frecventa/divizare duplex în timp (frequency-hop/time-division-duplex FH/TDD) în care comunicatia în sensul master-slave si slave-master se desfasoara pe rând. Pentru transferul de date pe un canal piconet se pot defini doua tipuri de legaturi: legatura asincrona (Asynchronous Connectionless Link - ACL) sau legatura sincrona (Synchronous Connection Oriented Link - SCO). Legatura de tip ACL este cu comutare de pachete si, desigur, se foloseste pentru transmisia datelor sub forma de pachete. Debitul maxim pentru aceasta legatura, folosind pachete multislot, este de 723 kbps într-un sens de transmisie si 57,6 kbps în celalalt sens, masterul fiind cel care controleaza viteza de transmisie pe fiecare sens. Pentru conexiuni punct la punct, simetrice, cu comutare de circuite, se foloseste legatura SCO (uzual pentru transmisia de voce). Debitul pentru aceasta legatura este de 64 kbps.
Cel mai adesea datele sunt trimise sub forma de pachete (figura 18). Un astfel de pachet poate sa aiba o lungime de 1, 3 sau 5 sloturi temporale. Fiecare pachet este compus din trei parti: codul de acces (access code), header-ul si datele utile (payload). Partea care contine datele utile poate avea între 0 si 2745 biti. Sunt admise si pachete de control care sa fie compuse doar din codul de acces sau doar din codul de acces si header.
Codul de acces contine informatii referitoare la destinatarul pachetului iar headerul contine informatii referitoare la pachet (tipul pachetului, sursa, corectia erorilor, etc).
figura 18. - formatul unui pachet standard.
Producatorii pot folosi serviciile oferite de stiva Bluetooth pentru a crea o varietate de aplicatii. Deoarece interoperatibilitatea este cruciala pentru functionarea Bluetooth-ului, Bluetooth SIG a elaborat specificatiile profilelor. Profilele reprezinta modele de utilizare a tehnologiei Bluetooth. Acestea descriu principalele aplicatii Bluetooth si dispozitivele carora la sunt adresate.
Profilele definesc protocoalele care suporta un anumit model de utilizare. Unele profile se pot baza pe altele, între ele existând o relatie de interdependenta. (figura 19). De exemplu trei profile (File Transfer Profile, Object Push Profile si Synchronization Profile) sunt definite pe baza Generic Object Exchange Profile.
Aparatele Bluetooth implementeaza diferite seturi de profile. Pentru ca un dispozitiv sa suporte un anumit profil acesta trebuie implementeze trasaturile obligatorii ale profilului respectiv .
figura 19. - Relatiile de interdependenta dintre profilele Bluetooth
Conform specificatiilor Bluetooth profilele se pot grupa astfel: profile generale, profile orientate pe model de utilizare si profile aditionale. In continuare se va prezenta fiecare grupa de profile.
2.2.1 Profilele generale
Generic Access Profile defineste procedurile generale legate de descoperirea dispozitivelor Bluetooth (procedurile idle mode) si aspecte legate de managementul legaturii si conectarea dispozitivelor Bluetooth (procedurile connecting mode). Tot în acest profil sunt definite procedurile legate de diferitele nivele de securitate. Mai mult, acest profil include formatul uzual al cererilor pentru parametrii accesibili nivelului interfata utilizator. Toate dispozitivele Bluetooth trebuie sa suporte acest profil.
Service Discovery Application Profile defineste trasaturile si procedurile unei aplicatii ce ruleaza pe un device Bluetooth, necesare pentru a descoperi serviciile oferite de un alt dispozitiv Bluetooth.
Serial Port Profile defineste caracteristicile obligatorii pentru dispozitivele Bluetooth, necesare pentru a putea emula conexiuni seriale peer-to-peer prin cablu, folosind nivelul RFCOMM.
Generic Object Exchange Profile specifica protocoalele si procedurile care vor fi folosite de aplicatii care presupun schimbul de obiecte.
Cordless Telephony Profile si Intercom Profile definesc caracteristicile si procedurile obligatorii pentru interoperabilitatea dintre unitatile active în modul de utilizare "three-in-one phone" (acelasi telefon poate fi folosit ca telefon fix fara fir, walkie-talkie si telefon celular). Cordless Telephony Profile este folosit când telefonul este conectat prin Bluetooth la o statie de baza pentru telefonia fixa (cazul telefoanelor fixe cordless). Intercom Profile implementeaza modul de folosire "walkie-talkie" între doua telefoane fixe echipate cu module Bluetooth.
Dial-up Networking Profile descrie cum se poate folosi un telefon celular sau un modem wireless, împreuna cu un PC, pentru a realiza transferuri de date prin conectarea la un server pentru accesul dial-up la Internet sau pentru alte servicii dial-up.
Fax Profile descrie modul în care un PC poate folosi un telefon celular ca modem wireless pentru fax. Astfel se pot trimite si receptiona fax-uri direct pe computer.
Headset Profile stabileste cerintele necesare pentru ca dispozitivele Bluetooth sa suporte atasarea unui dispozitiv de tip hands-free fara fir. Aceste dispozitive pot fi utile în cazul telefoanelor mobile, PDA-urilor si al laptop-urilor.
LAN Access Profile stabileste cum pot accesa dispozitivele echipate cu Bluetooth o retea de tip LAN folosind PPP (Point-to-Point Protocol) bazat pe RFCOMM (protocol Bluetooth care emuleaza interfata RS-232). Tot aici se specifica cum poate fi utilizat acelasi mecanism PPP, pentru a crea o retea formata din doua aparate echipate cu module Bluetooth.
File Transfer Profile stabileste cadrul care îi permite unui utilizator sa caute si sa editeze obiecte (fisiere si dosare) localizate pe un alt dispozitiv Bluetooth si sa transfere obiecte între cele doua dispozitive. Cele mai folosite dispozitive pentru astfel de operatiuni sunt PC-urile, notebook-urile si PDA-urile.
Object Push Profile furnizeaza descrieri ale mijloacelor prin care utilizatorii pot trimite, primi sau face schimb de obiecte simple, de exemplu cazul schimbului de carti de vizita între laptop-uri, PDA-uri sau telefoane mobile.
Synchronization Profile specifica modalitatile prin care se poate realiza sincronizarea automata a datelor (de obicei a notelor din agenda) atunci când un dispozitiv intra în raza de acoperire a unui PC dotat cu placa Bluetooth.
Initial în specificatiile Bluetooth s-au definit treisprezece profile, descrise anterior. Pentru a garanta interoperabilitatea în cazul unei arii largite de aplicatii, grupul de lucru Bluetooth SIG a specificat noi profile, definite separat, dupa cum urmeaza:
Generic Audio/Video Distribution Profile (GAVDP) defineste un grup generic de protocoale si proceduri cu rolul de a distribui informatie audio/video folosind canale ACL.
Advanced Audio Distribution Profile (A2DP) defineste distributia de informatie audio/video de înalta calitate mono sau stereo pe canale ACL. A2DP se bazeaza pe GAVDP.
Audio/Video Remote Control Profile (AVRCP) defineste transmisia unui semnal A/V de control, activat de utilizator, catre un dispozitiv Bluetooth.
Basic Imaging Profile (BIP) este un profil bazat pe OBEX care permite dispozitivelor sa negocieze dimensiunea si tipul codarii datelor de tip imagine care sunt schimbate.
Basic Printing Profile (BPP) este un profil bazat pe OBEX care permite printarea mail-urilor, mesajelor sau a unor documente direct de pe dispozitivele mobile.
Hardcopy Cable Replacement Profile (HCRP) este un profil usor de implementat pentru printarea si scanarea oricarui tip de document. HCRP este implementat direct peste L2CAP evitând supraîncarcarea cu OBEX sau RFCOMM.
Bluetooth Extended Service Discovery Profile (ESDP) for Universal Plug and PlayTM (UPnPTM) este un profil destinat descoperirii altor dispozitive care suporta servicii UPnP si receptionarii informatiilor despre aceste servicii.
Hands-Free Profile (HFP) defineste cazul când un mobil poate fi folosit împreuna cu un dispozitiv de tip hands-free. HPF asigura mijloacele realizarii legaturilor de voce si de control între cele doua dispozitive.
Human Interface Device Profile (HID), stabileste cadrul de utilizare a tastaturilor Bluetooth, a dispozitivelor destinate jocurilor (de exemplu un joystick wireless) si a dispozitivelor de monitorizare la distanta.
Common ISDN Access Profile defineste modul în care aplicatiile pot accesa ISDN prin Bluetooth.
Personal Area Networking Profile (PAN) defineste retelele personale bazate pe IP. Acest protocol asigura suport si pentru punctele de acces ale retelei (de exemplu LAN sau GSM).
SIM Access Profile (SAP) defineste modalitatea în care poate fi accesata o cartela SIM prin intermediul unei legaturi Bluetooth.
Securitatea unei conexiuni Bluetooth
Sistemul de securitate al tehnologiei Bluetooth include atât autentificare cât si confidentialitate si are la baza algoritmul de criptare SAFER+. La origini acesta este un cifru bloc dar în cazul Bluetooth-ului este implementat ca cifru stream. Versiunea pe 128 de biti folosita de Bluetooth este considerata ca fiind foarte solida.
Exista patru metode pentru a asigura securitatea unei legaturi Bluetooth:
Autentificarea, prin care se verifica identitatea fiecarui dispozitiv din retea;
Pairing, este o procedura prin care se autentifica doua dispozitive, bazata pe stabilirea de comun acord a unei parole care se introduce de catre utilizatorii ambelor dispozitive. In urma procedurii de pairing cele doua dispozitive apar unul celuilalt ca fiind sigur (trusted). Procedura de pairing pentru doua dispozitive se realizeaza o singura data, nefiind necesara la urmatoarele conexiuni între cele doua dispozitive.
Autorizarea, este procesul prin care se decide care dispozitiv din raza de acoperire are sau nu voie sa acceseze un anumit serviciu.
Criptarea, asigura confidentialitatea datelor trimise. Se foloseste o cheie cu lungimea între 8 si 128 biti.
Prin aplicatie, se poate specifica care dintre metodele de securitate se aplica unei anumite legaturi.
|