Tehnologia Tehnologia Bluetooth 1. 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 licenta destina destinata ta con conexi exiuni unilor lor univer universal salee fara fir între între dispoz dispozitiv itivele ele mobile. mobile. Rezul Rezultatu tatull este este Blueto Bluetooth, oth, o tehnologi tehnologiee ce a luat numele numele regelu regeluii care care în secol secolul ul al X-lea X-lea a unit triburile 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. scazut. Tehnologia Tehnologia a fost proiectata proiectata pentru a fi simpla si pentru a deveni deveni un standard de facto in conexiunile fara fir. 2. Specificatiile Bluetooth
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. 2.1 Specificatiile nucleului
Specificatiile nucleului definesc toate nivelele din stiva protocolului Bluetooth (fig.1).Stiva protocolulu protocoluluii Bluetooth Bluetooth difera în anumite anumite privinte de modelul modelul clasic, OSI. Aceste Aceste diferente provin in principal din conditia impusa Bluetooth-ului de a suporta conectivitate ad-hoc între nodurile participante participante la care care se adauga adauga cerinta cerinta de consum consum redus si si necesitatea necesitatea impleme implementarii ntarii protocolu protocolului lui pe dispozitive care au resurse limitate, dispozitive pe care nu s-ar putea implementa modelul OSI.
figura 1.- Stiva protocolului Bluetooth si structura chip-ului Bluetooth
1
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) . 2.1.1
Legatura radio
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 2
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 2.- 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 2, 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 3.- 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 3
trei sau cinci sloturi. 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. 2.1.2 Retele de tip piconet si scatternet
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 4a,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 4c). 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
4
figur a 4. - 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 5).
5
figura 5. - Procedurile inquiry si page duc la st abilirea unei conexiuni 2.1.4 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 6). 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 6. - formatul unui pachet standard. 2.2 Specificatiile profilelor
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 7). De exemplu trei profile (File Transfer Profile, Object Push Profile si Synchronization Profile) sunt definite pe baza Generic Object Exchange Profile. 6
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 7. - 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. Ideea de baza, aceea de conectare a telefonului mobil la un accesoriu al acestuia, a fost dezvoltata si extinsa, de-a lungul anilor. De la transmiterea de date intre un telefon si altul sau intre telefon si un calculator sau o imprimanta si lista poate continua cu generozitate, incepand de la tastaturi fara fir si ajungand pana la dispozitive medicale. Principiul de functionare este unul destul de complex, pentru a trimite (de exemplu) un fisier de la un telefon la altul sunt necesari mai multi pasi: 1. 2. 3. 4. 5.
gasirea dispozitivului - investigare ; conectarea la dispozitiv - apel ; descoperirea serviciilor pe care le suporta dispozitivul - SDP ; decizia asupra serviciului la care sa se conecteze si modul de conectare -SDP ; conectarea la acel serviciu.
Etapele de la 3 la 5 implica conectarea la mai mult de un nivel superior. Conexiunile la aceste nivele superioare trebuie deschise fiecare separat si în ordine. Urmatoarele scheme ilustreaza acest proces în cazul unui dispozitiv audio care se conecteaza si realizeaza o legatura audio cu castile audio. Etapa1 : gasirea dispozitivului prin investigare
7
Diagramele sunt simplificate si sunt omise detalii de configurare, deci se considera ca dispozitivul de acces audio si-a configurat parametrii de investigare iar castile sunt în modul de scanare a investigarii. 1. dispozitivul audio transmite o cerere de investigare nivelelor inferioare. 2. nivelele inferioare transmit pachetele de investigare în vecinatate. 3. toate dispozitivele de scanare a investigarii din vecinatate, inclusiv castile, transmit replici cu raspunsul de investigare. 4. nivele inferioare transmit raspunsurile aplicatiei audio Este necesar sa se precizeze ca aplicatia legata de casti nu este implicata total : o data configurate nivelele inferioare pentru scanarea investigarii este complet detasata de orice raspunsuri de investigare genereaza nivelele. Etapa2 : conectarea la dispozitive prin apel
Din nou diagramele sunt simplificate si se omit detaliile de configurare. Se presupune ca poarta audio a configurat parametrii de apel si castile sunt în modul de scanare a apelului. 1. poarta audio trimite un raspuns de apel nivelelor inferioare. 2. nivelele inferioare ale portii audio apeleaza castile utilizând propria adresa Bluetooth pentru a genera identificatorul pachetelor pe care numai le vor asculta. Alte dispozitive de scanare a apelului din vecinatate nu vor detecta apelul si nu vor raspunde la el. În aceasta etapa o serie de pachete de nivel scazut sunt interschimbate. Detaliile nu sunt importante cu exceptia faptului ca, castile au transmis informatiile dispozitivului audio incluzând adresa sa Bluetooth si clasa. 3. nivelele inferioare din casti transmit un mesaj la aplicatiile castilor notificând raspunsul de conexiune. Notificarea cuprinde si adresa si clasa dispozitivului audio care au fost adunate în timpul apelului. 4. aplicatia castilor trimite o replica la nivelele inferioare acceptând conexiunea. 5. nivelele inferioare ale castilor trimit raspunsul nivelelor inferioare ale portii audio. 8
6. nivelele inferioare ale portii audio trimit mai departe mesajul acceptând conexiunea. Acum poarta audio stie ca are o conexiune de date gata de folosit. Etapa3 : descoperirea serviciilor pe care le suporta un dispozitiv
Primul lucru pentru conectarea la protocolul de descoperire a serviciilor este realizarea unei legaturi L2CAP utilizând PSM-ul care identifica nivelul SDP. 1. poarta audio trimite o cerere la propriul nivel L2CAP cerând o conexiune prin PSM la protocolul de servicii al castilor. 2. cererea este transmisa nivelului L2CAP al castilor care întreaba aplicatia daca doreste sa accepte cererea. 3. aplicatia headset raspunde ca va accepta o comunicatie cu nivelul SDP. 4. raspunsul este trimis catre nivelul L2CAP al portii audio care informeaza aplicatia corespunzatoare ca o conexiune L2CAP la nivelul SDP al castilor poate fi folosita. Etapa4 : decizia asupra serviciului pentru care se realizeaza conexiunea si modul de utilizare al acestuia.
Aplicatia portii audio poate transmite cereri SDP si va primi raspunsuri SDP de la serverul SDP al castilor. Se precizeaza ca din moment ce aplicatia a înregistrat o înregistrare de servicii nu este necesar sa fie implicate tranzactii SDP - nivelul SDP poate raspunde cererii autonom. Aplicatia portii audio va trimite cererea pentru a regasi înregistrarea serviciilor pentru functia headset. Aceasta verifica daca serviciul este acceptat si ofera informatii despre cum se realizeaza conexiunea la aceasta.
Etapa5 : conectarea la serviciu.
9
Aceasta etapa începe în acelasi mod în care se conecteaza nivelul SDP prin crearea unei conexiuni L2CAP. Procedura este la fel ca si în cazul în care se creeaza o conexiune L2CAP la SDP cu exceptia faptului ca PSM utilizat în acest caz este cel corespunzator RFCOMM. Din moment ce conexiunea L2CAP la RFCOMM este stabilita poate fi folosita pentru a trimite mesaje între aplicatia audio si aplicatia headset. Asa cum s-a precizat RFCOMM poate purta mai multe legaturi în acelasi timp, deci dispozitivul audio trebuie sa identifice legatura corecta pe care sa o utilizeze pentru a comunica cu castile.
Tehnologia Bluetooth difera de conexiunile cu fir în multe feluri. Unele diferente sunt evidente: când nu esti conectat la un dispozitiv printr-un cablu trebuie sa gasesti si sa verifici înainte daca acesta este dispozitivul la care vrei sa te conectezi. Unele diferente sunt mai subtile: exista posibilitatea de a aparea interferente, sau legatura sa se altereze sau chiar sa dispara daca dispozitivul se îndeparteaza. Toate acestea pot parea ciudate daca exista obisnuinta de a lucra în medii statice interconectate prin cablu, cu toate acestea exista metode bine definite pentru a percepe complexitatea conexiunilor Bluetooth.
10