Bluetooth

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj
Logo Bluetooth
słuchawka Bluetooth do telefonu komórkowego
adapter Bluetooth dla USB
słuchawka Nokia BH-208 od środka
port Bluetooth w formie adaptera USB

Bluetooth /ˈbluːtuːθ/ – technologia bezprzewodowej komunikacji krótkiego zasięgu pomiędzy różnymi urządzeniami elektronicznymi, takimi jak klawiatura, komputer, laptop, palmtop, telefon komórkowy i wieloma innymi.

Jest to otwarty standard opisany w specyfikacji IEEE 802.15.1. Jego specyfikacja obejmuje trzy klasy mocy nadawczej 1-3 o zasięgu 100, 10 oraz 1 metra w otwartej przestrzeni. Najczęściej spotykaną klasą jest klasa druga. Technologia korzysta z fal radiowych w paśmie ISM 2,4 GHz.

Urządzenie umożliwiające wykorzystanie tej technologii to adapter Bluetooth.

Bluetooth zawiera patenty, z których można korzystać bezpłatnie w produktach zakwalifikowanych jako zgodne z Bluetooth. Kwalifikacja kosztuje 5-10 tys. USD[1], za to potencjalni klienci-użytkownicy mogą łatwo znaleźć nowy produkt na opublikowanej w tym celu liście[2].

Pochodzenie nazwy[edytuj | edytuj kod]

Nazwa technologii pochodzi od przydomka króla duńskiego Haralda Sinozębego (Blåtand), który ok. roku 970 podporządkował sobie Norwegię i tym samym przyczynił się do zjednoczenia rywalizujących plemion z Danii i Norwegii[3]. Podobnie Bluetooth, który został zaprojektowany, aby "zjednoczyć" różne technologie jak: komputery, telefonię komórkową, drukarki, aparaty cyfrowe.

Logo Bluetooth łączy znaki alfabetu runicznego H-rune.gif (Haglaz) i Runic letter berkanan.png (Berkanan), będące odpowiednikami liter alfabetu łacińskiego H i B.

Historia powstania[edytuj | edytuj kod]

W 1994 roku firma L. M. Ericsson zainteresowała się możliwością łączenia telefonów komórkowych z innymi urządzeniami bez użycia kabla. Wspólnie z czterema innymi firmami (IBM, Intel, Nokia i Toshiba) uformowała SIG (ang. Special Interest Group) celem standaryzacji bezprzewodowej technologii cechującej się niewielkim zasięgiem, małym poborem prądu, niskim poziomem mocy promieniowanej oraz niską ceną. Pierwotny zamiar wyeliminowania kabli połączeniowych szybko przekształcił się w prace na obszarze bezprzewodowych sieci LAN. Dzięki temu standard stał się bardziej praktyczny i stał się konkurencją dla standardu 802.11.

W lipcu 1999 Bluetooth SIG opublikowało 1500-stronicową specyfikację pierwszej wersji technologii Bluetooth (Bluetooth V1.0). Wkrótce potem grupa standaryzacyjna IEEE zajmująca się bezprzewodowymi sieciami osobistymi 802.15 przyjęła dokument organizacji SIG jako podstawę dalszych prac. Należy zaznaczyć, że standard grupy SIG obejmuje kompletny system, od warstwy fizycznej do warstwy aplikacji, natomiast standard IEEE obejmuje tylko warstwę fizyczną i łącza danych. Pomimo że IEEE zatwierdziło pierwszy standard PAN (personal area network), 802.15.1, w 2002 roku, organizacja SIG ciągle pracuje nad jego poprawą.

Architektura systemu Bluetooth[edytuj | edytuj kod]

Podstawową jednostką technologii Bluetooth jest pikosieć (ang. piconet), która zawiera węzeł typu master oraz maksymalnie 7 węzłów typu slave. Wiele pikosieci może istnieć w jednym pomieszczeniu, a nawet mogą być ze sobą połączone przy pomocy węzła typu bridge, jak pokazano na rysunku nr 1. Połączone ze sobą pikosieci określa się mianem scatternet.

Połączone dwie pikosieci – scatternet.

Dodatkowo, oprócz siedmiu węzłów typu slave, w jednej pikosieci może pracować do 255 węzłów, pozostających w stanie synchronizacji z urządzeniem typu master (jest to tzw. tryb wyczekiwania i niskiego poboru mocy). Urządzenia te nie uczestniczą w wymianie danych. Mogą tylko otrzymać sygnał aktywacyjny lub nawigacyjny od węzła typu master. Istnieją jeszcze dwa przejściowe stany hold oraz sniff. Przyczyną podziału węzłów na master i slave jest minimalizacja kosztów technologii. Konsekwencją tego jest fakt, że węzły typu slave są w 100% podporządkowane węzłom master. Pikosieć jest scentralizowanym systemem TDM, urządzenie master kontroluje zegar i określa, które urządzenie i w którym slocie czasowym (szczelina czasowa) może się z nim komunikować. Wymiana danych może nastąpić tylko pomiędzy węzłem master i slave. Komunikacja slave – slave nie jest możliwa.

Zasięg[edytuj | edytuj kod]

Zasięg urządzenia determinowany jest przez klasę mocy:

  • klasa 1 (100 mW) ma największy zasięg, teoretycznie do 100 m
  • klasa 2 (2,5 mW) jest najpowszechniejsza w użyciu, teoretyczny zasięg do 10 m
  • klasa 3 (1 mW) rzadko używana, z teoretycznym zasięgiem do 1 m

Przepustowość[edytuj | edytuj kod]

  • Bluetooth 1.0 – 21 kb/s
  • Bluetooth 1.1 – 124 kb/s
  • Bluetooth 1.2 – 328 kb/s
  • Bluetooth 2.0 – transfer maksymalny przesyłania danych na poziomie 2,1 Mb/s, wprowadzenie Enhanced Data Rate wzmocniło transfer do 3,1 Mb/s
  • Bluetooth 3.0 + HS (High Speed) – 24 Mb/s (3 MB/s)
  • Bluetooth 3.1 + HS (High Speed) – 40 Mb/s(5 MB/s)
  • Bluetooth 4.0 + LE (Low Energy) – 1 Mb/s[4] znacząco ograniczono pobór energii (np. praca czujnika temperatury, przez wiele miesięcy na baterii pastylkowej), kosztem obniżonego transferu oraz zwiększono realny zasięg działania do 100 m

Profile systemu Bluetooth[edytuj | edytuj kod]

Information icon.svg Osobny artykuł: Profile systemu Bluetooth.

Większość protokołów sieciowych, w przeciwieństwie do systemu Bluetooth, określa tylko kanały pomiędzy komunikującymi się jednostkami i pozwala projektantom aplikacji na dowolne ich użycie. Wersja 1.1 Bluetooth określa 13 specjalnych aplikacji, zwanych profilami systemu Bluetooth, w których system może być używany.

Warstwy protokołu w systemie Bluetooth[edytuj | edytuj kod]

Standard Bluetooth określa wiele protokołów, pogrupowanych w warstwy. Struktura warstw nie odpowiada żadnemu znanemu modelowi (OSI, TCP/IP, 802). IEEE prowadzi prace nad zmodyfikowaniem systemu Bluetooth, aby dopasować go do modelu określonego standardem 802. Architekturę warstw systemu Bluetooth przedstawia rysunek nr 2:

Architektura protokołów Bluetooth.

Najniższa warstwa – fizyczna warstwa radiowa – odpowiada warstwie fizycznej modelu OSI. Określa ona transmisje radiową oraz modulację stosowaną w systemie. Warstwa druga – baseband layer – jest zbliżona do podwarstwy MAC modelu OSI, ale zawiera także elementy warstwy fizycznej. Określa ona w jaki sposób urządzenie master kontroluje sloty czasowe i jak sloty są grupowane w ramki. Kolejna warstwa grupuje powiązane ze sobą protokoły. Link manager zajmuje się ustanowieniem logicznych kanałów między urządzeniami, zarządzaniem energią oraz jakością usługi(QoS). Link control adaptation protocol, często nazywany L2CAP, zajmuje się szczegółowymi parametrami transmisji, uwalniając w ten sposób wyższe warstwy od tego obowiązku. Protokół ten jest analogiczny do podwarstwy LLC standardu 802, ale technicznie jest zupełnie inny. Jak wskazują nazwy, protokoły audio i control zajmują się dźwiękiem oraz kontrolą. Aplikacje mogą z nich korzystać pomijając protokół L2CAP. Kolejna warstwa jest warstwą przejściową, zawierającą mieszaninę różnych protokołów. Podwarstwa LLC standardu 802, została wstawiona tu przez IEEE, w celu zapewnienia kompatybilności z sieciami 802. RFcomm (Radio Frequency communication) jest protokołem, który emuluje standardowy port szeregowy do podłączenia klawiatury, myszy, modemu oraz innych urządzeń. Protokół telephony jest protokołem czasu rzeczywistego, używanym w profilach zorientowanych na rozmowy. Zarządza również zestawieniem i rozłączeniem połączenia. Protokół discovery service jest używany do umiejscowienia usługi wewnątrz sieci. W ostatniej warstwie umiejscowione są aplikacje oraz profile. Używają one protokołów warstw niższych. Każda aplikacja ma swój podzbiór używanych protokołów, zazwyczaj korzysta tylko z nich i pomija inne.

Warstwa radiowa[edytuj | edytuj kod]

Warstwa ta odpowiedzialna jest za transport danych od urządzenia master do slave i vice versa. Jest to system o małym poborze mocy, działający w zależności od klasy na różnych zasięgach, operujący w paśmie ISM 2,4 GHz. Pasmo jest podzielone na 79 kanałów, po 1MHz każdy. System wykorzystuje modulacje FSK (Frequency Shift Keying), dając prędkości transmisji 1 Mbit/s, jednak duża cześć tego widma jest zajęta przez nagłówek. Aby przydzielić kanały sprawiedliwie, wykorzystuje się skakanie częstotliwości (1600 skoków na sekundę). Sekwencję skoków dyktuje węzeł master. Systemy 802.11 oraz Bluetooth operują na tych samych częstotliwościach z takim samym podziałem pasma na 79 kanałów. Z tego powodu zakłócają się wzajemnie. Ponieważ skoki częstotliwości są znacznie szybsze w systemie Bluetooth, jest znacznie bardziej prawdopodobne, że system ten będzie zakłócał transmisje w 802.11. Gdy nowe urządzenie szuka sieci do której mogłoby się przyłączyć skacze po kanałach w sposób losowy. Połączenie zostaje nawiązane dopiero gdy trafi na ten sam kanał co master. Algorytm wybierania kanału przez mastera jest inny niż algorytm przełączania kanału przez slave'a szukającego mastera. Oba algorytmy opierają się na losowości co powoduje że nigdy nie ma pewności po jakim czasie slave znajdzie mastera.

Baseband layer[edytuj | edytuj kod]

Warstwa ta jest zbliżona do podwarstwy MAC modelu OSI. Upakowuje ona luźne bity w ramki. Master w każdej pikosieci definiuje sloty czasowe o długości 625 μs. Transmisja mastera zaczyna się od slotów parzystych natomiast transmisja slave od slotów nieparzystych. Jest to tradycyjna multipleksacja w dziedzinie czasu (TDM), gdzie master zajmuje polowe slotów, a slave pozostałą ich część. Ramki mogą mieć długość jednego, trzech lub pięciu slotów czasowych. Skakanie częstotliwości pozwala ustawić czas 250 – 260 μs na skok, aby umożliwić stabilizacje układów radiowych. Dla ramki składającej się z jednego slotu czasowego, po tym czasie, zostaje 366 z 625 bitów. 126 z nich zawierają kod dostępu oraz nagłówek, pozostałe 240 są dla danych. Gdy ramka składa się z pięciu slotów, tylko jeden okres stabilizacji jest wymagany i dla warstwy baseband pozostaje 2781 bitów, więc dłuższe ramki są znacznie bardziej efektywne niż ramki zbudowane z jednego slota czasowego. Każda ramka jest transmitowana przez kanał logiczny, nazywany z angielskiego link, pomiędzy masterem i urządzeniem slave. Istnieją dwa rodzaje kanałów logicznych. Pierwszy nazywa się ACL (Asynchronous Connection-Less), używany w połączeniu z komutacją pakietów, gdzie dane są dostępne w nieregularnych odstępach czasu. Dane te pochodzą od warstwy L2CAP po stronie nadawczej i są dostarczane do warstwy L2CAP po stronie odbiorczej. W tej wersji kanału logicznego nie ma żadnych gwarancji, ze ramka dotrze do celu. Ramki mogą zostać utracone i wymagać retransmisji. Urządzenie slave może mieć tylko jeden kanał typu ACL z urządzeniem master. Drugi typ kanału logicznego nazywa się SCO (Synchronous Connection Oriented) i jest używany do transmisji w czasie rzeczywistym, np. rozmowy telefonicznej. Ramki transmitowane w tego typu kanale, nie mogą być retransmitowane. Zamiast tego można stosować korektę błędów, aby zapewnić wysoką niezawodność. Urządzenie slave może korzystać z maksymalnie trzech kanałów typu SCO w kierunku mastera. Każde łącze SCO może transmitować jeden kanał telefoniczny (PCM, 64 kbit/s).

Warstwa L2CAP[edytuj | edytuj kod]

Warstwa L2CAP spełnia trzy główne funkcje:

  1. przyjmuje pakiety o maksymalnym rozmiarze do 64 KB od wyższych warstw i dzieli je na ramki w celu transmisji. Na końcu ramki są ponownie składane w całość.
  2. zajmuje się multipleksacją i demultipleksacją złożonych pakietów. Gdy pakiet jest składany w całość, warstwa L2CAP określa, któremu protokołowi warstwy wyższej go przekazać, np. do RFcomm lub telephony.
  3. zajmuje się wymaganiami na jakość usługi, zarówno podczas zestawiania połączenia oraz podczas realizacji usługi.

Struktura ramki[edytuj | edytuj kod]

Istnieje kilka formatów ramki w systemie Bluetooth, jednak najważniejszą i najczęściej stosowaną jest ta przedstawiona na rysunku nr 3. Zaczyna się ona kodem dostępu, który identyfikuje mastera, tak aby slave znajdujący się w zasięgu dwóch urządzeń master mógł określić, do którego odbywa się transmisja. Następne 54 bity stanowią nagłówek ramki, który zawiera standardowe pola podwarstwy MAC. Na końcu pojawia się maksymalnie do 2744 (dla ramki składającej się z 5 slotów) bitów zawierających dane. Dla transmisji jednoslotowej ramka zawiera 240 bitów pola danych.

Struktura ramki w systemie Bluetooth.

Pole adres nagłówka identyfikuje jedno z ośmiu aktywnych urządzeń, dla którego przeznaczona jest ramka. Pole typ określa typ ramki (ACL, SCO, pool albo null), rodzaj korekcji błędów używany w polu danych oraz liczbę slotów w ramce. Pole Flow jest ustawiane przez slave, gdy jego bufory są pełne i nie może on przyjąć więcej danych. Bit Acknowledgement jest potwierdzeniem transmisji. Bit Sequence jest używany w celu numeracji ramek aby wykryć retransmisje. Ostatnie 8 bitów to suma kontrolna. 18 bitów nagłówka są powtarzane trzy razy dając w efekcie nagłówek 54 bitowy. Po stronie odbiorczej prymitywny układ sprawdza wszystkie trzy kopie każdego bitu. Jeśli wszystkie są takie same, wówczas bit jest zaakceptowany. Jeśli nie, to jeżeli otrzymano dwa zera i jedną jedynkę, wartość końcowa jest zerem, jeśli zaś dwie jedynki i jedno zero, to jedynka.

Podstawowe elementy urządzenia Bluetooth[edytuj | edytuj kod]

Większość procesów realizowanych przez pasmo podstawowe oparte jest na dwóch elementach urządzenia Bluetooth, do których zalicza się:

  • adres urządzenia Bluetooth;
  • zegar urządzenia Bluetooth;

Adres urządzenia Bluetooth[edytuj | edytuj kod]

Wyróżnia się cztery pojęcia związane z adresem urządzenia:

  • adres urządzenia Bluetooth (Bluetooth Device Address);
  • adres urządzenia aktywnego (Active Member Address);
  • adres zaparkowanego elementu pikosieci (Parked Member Address);
  • adres żądania przyłączenia (Access Request Address);

Każde urządzenie ma 48 bitowy adres IEEE MAC (Bluetooth Device Address, BD_ADDR) i jest on używany do inicjowania pewnych operacji oraz obliczania kodu dostępu. Adres MAC podzielony jest na trzy części:

  • 16-bitową nieznaczącą część adresu Non – significant Address Part (NAP) BD_ADDR [47:32] – NAP [15:0], która jest używana do inicjowania szyfrowania;
  • 8-bitową wyższą część adresu Upper Address Part (UAP) BD_ADDR [31:24] – UAP [7:0], która jest używana do inicjowania obliczeń HEC (Header Error Chec) i CRC oraz skoków częstotliwości;
  • 24-bitową niższą część adresu Lower Address Part (LAP) BD_ADDR [23:0] – LAP [23:0], która jest używana do generowania słowa synchronizującego i skoków częstotliwości;

Część adresu NAP oraz wyższa część adresu UAP stanowią wspólnie unikatowy identyfikator organizacji OUI (Organizational Unique Identifier), czyli wartość przyznawaną przez jednostkę administracyjną. Natomiast części LAP przypisywane są wewnętrznie w ramach konkretnych organizacji. Adres urządzenia aktywnego jest 3-bitowym adresem urządzenia podrzędnego (slave), znajdującego się w stanie połączenia, natomiast urządzenie nadrzędne (master) nie ma tego typu adresu. Adres tego typu jest nadawany urządzeniu podrzędnemu przez urządzenie nadrzędne na etapie zestawiania połączeń i jest ważny tak długo, jak długo pozostaje aktywne urządzenie typu „slave”. Adres zaparkowanego elementu pikosieci jest 8-bitowym adresem urządzenia podrzędnego, które aktualnie nie bierze udziału w transmisji (znajduje się w stanie nieaktywnym – park), ale jest zsynchronizowane z pikosiecią. Adres tego typu jest ważny tak długo, jak długo urządzenie pozostaje w trybie nieaktywnym. Ostatni typ adresu to adres żądania przyłączenia. To adres używany przez zaparkowane urządzenia podrzędne, zsynchronizowane z pikosiecią, do ustalenia, w której szczelinie czasowej dane urządzenie może przesłać żądanie przejścia w stan aktywny. Adres ten zatem nie musi być unikatowy w pikosieci, czyli różne urządzenia podrzędne (slave) znajdujące się w trybie parkingowym mogą mieć ten sam adres tego typu.

Zegar urządzenia Bluetooth[edytuj | edytuj kod]

Moduł Bluetooth wyposażony jest w 28-bitowy wewnętrzny zegar, który determinuje synchronizację i skakanie po częstotliwościach. Nigdy nie jest on dostrajany, ani wyłączany. Do synchronizacji z innym modułem Bluetooth wykorzystywana jest różnica (offset) pomiędzy zegarami jednostek chcących się komunikować. Częstotliwość zegara wynosi 3,2 kHz, czyli generuje on 3200 taktów na sekundę. Wartość ta odpowiada dwukrotnej szybkości przeskoków częstotliwościowych, która wynosi 1600 razy na sekundę. Okres zegara Bluetooth wynosi około 24 godzin.

Wewnętrzny zegar urządzenia Bluetooth[edytuj | edytuj kod]

W zależności od trybu pracy urządzenia, jego zegar wewnętrzny może znajdować się w jednym z trzech trybów pracy i są to:

  • Tryb standardowy (native clock), który jest punktem odniesienia przy tworzeniu pozostałych dwóch trybów pracy zegara. W stanach wysokiej aktywności dokładność zegara wynosi 20 ppm, natomiast w stanach pracy charakteryzujących się małą aktywnością i niskim zużyciem energii, takich jak stan oczekiwania (standby), parkingowy (park), wstrzymania (hold) oraz wyszukiwania (sniff) wykorzystywany jest oscylator o niskim poborze mocy, który steruje zegarem z dokładnością obniżoną do poziomu 250 ppm.
  • Tryb szacowany (estimated clock), który powstaje poprzez dodanie do zegara pracującego w trybie standardowym różnicy (offset) pomiędzy zegarami dwóch urządzeń Bluetooth i umożliwiający urządzeniu podrzędnemu komunikację z jednostką typu „master”.
  • Tryb zegara urządzenia nadrzędnego (master clock), który jest wykorzystywany do synchronizacji wszystkich urządzeń w pikosieci.

Przypisy

  1. Bluetooth Fees: An Overview
  2. Product Directory
  3. Bluetooth.com: Bluetooth: Fast Facts (ang.). 2011. [dostęp 2011-10-01].  Cytat: "The name "Bluetooth" is actually very old! It is from the 10th century Danish King Harald Blåtand – or Harold Bluetooth in English."
  4. http://home.eng.iastate.edu/~gamari/CprE537_S13/project%20reports/Bluetooth%20LE.pdf

Zobacz też[edytuj | edytuj kod]

Linki zewnętrzne[edytuj | edytuj kod]