Bluetooth

ITpedia

Szybkość wszystkich wersji IrDA na tle Bluetootha
Szybkość wszystkich wersji IrDA na tle Bluetootha

Technologia Bluetooth (niebieski kieł) jest otwartym standardem komunikacji bezprzewodowej, promowanym głównie przez firmy zajmujące się produkcją komputerów osobistych i telefonów komórkowych. W myśl założeń ma on usprawnić komunikację między urządzeniami peryferyjnymi a komputerami osobistymi. Jest w tym bardzo podobny do protokołu IrDA, z tą różnicą, że stosuje częstotliwości radiowe. Niemniej jego pasmo przenoszenia 2,4 GHz ISM (Industrial Scientific Medical) nie było jeszcze licencjonowane. Bluetooth nadaje się do tworzenia sieci domowych, zwłaszcza po tym jak jego zakres aplikacyjny został poszerzony o komunikację z systemami, takimi jak np. sterowanie ogrzewaniem.

Bluetooth powstał w 1994 r. w Szwecji. Nazwa tego protokołu to przydomek żyjącego w X w. duńskiego króla Haralda I – „Blaatand” (czyli „Sinozęby”) to po angielsku właśnie „Bluetooth”. W 1998 r. utworzono SIG (Special Interest Group) – grupę, w skład której weszły tak poważne przedsiębiorstwa jak: Ericsson, IBM, Intel, Nokia i Toshiba. Z czasem dołączyły do niej następne – 3Com, Lucent Technologies, Microsoft i Motorola. Teraz firm tych jest ponad 2000.

Spis treści

Silniejsze strony Bluetooth

Bluetooth próbuje zyskać przewagę nad innymi technologiami przesyłania danych na krótkich dystansach, jak IrDA czy HomeRF, które są przeznaczone na podobny rynek. Mimo deklaracji SIG o komplementarności z IrDA staje się powoli jasne, że obydwie technologie są konkurencyjne w komunikacji między PC a urządzeniami peryferyjnymi. IrDA zdobyła już pewną popularność w środowisku urządzeń peryferyjnych. Jednak trudno zaprzeczyć, że ta technologia transmisji w podczerwieni ma kilka ograniczeń, do których w pierwszym rzędzie trzeba zaliczyć niewielki zasięg oraz konieczność ustawiania urządzeń w „polu widzenia” PC.

Wspomniane ograniczenia nie dotyczą, a przynajmniej nie w takim stopniu, transmisji na falach radiowych. Oprócz zasięgu przekraczającego 10 m, a przy większej mocy transmisyjnej nawet 100 m, urządzenia wykorzystujące ten sposób transmisji mogą komunikować się przez ściany oraz inne przeszkody, wyjąwszy metalowe. Głównymi rywalami Bluetootha w tworzeniu sieci domowych są HomeRF i 802.11b. Jednak pewnym minusem obydwu konkurentów jest relatywnie wysoki ich koszt, przekraczający jeszcze 100 USD na węzeł.

Produkt Bluetooth nie jest tak kosztowny. Za węzeł trzeba zapłacić ok. 10 USD. Z drugiej strony jego zasięg nie jest tak duży, a przepływność zdecydowanie niższa – w zasadzie zaledwie 780 kb/s, z czego najwyżej 721 kb/s można użyć do jednokierunkowego transferu danych. Reszta przypada na obsługę w kierunku zwrotnym. Innym sposobem przesyłania jest symetryczny transfer danych. Jednak w tym przypadku przepływność jest jeszcze niższa – 432 kb/s. W porównaniu z 1 lub 2 Mb/s HomeRF to mało, ale pojawiają się już wersje Bluetootha o przepływności 1 Mb/s. Transmisja cyfrowego wideo przekracza na razie możliwości obydwu tych technologii. Nadają się natomiast do transferu plików i aplikacji drukowania.

Główną siłą napędową Bluetooth jest jego zdolność do równoczesnej transmisji danych i dźwięku. Możliwa jest asynchroniczna transmisja danych w jednym kanale i do trzech transmisji synchronicznych dźwięku w trzech kanałach. Dane i dźwięk można też przesłać jednym kanałem.

Architektura w zarysie

Architektura Bluetootha
Architektura Bluetootha

Główna specyfikacja Bluetooth liczy ok. 1000 stron. Zawiera opis implementowania technologii w układach scalonych, sprzęcie i oprogramowaniu.

Sterowanie łączem – implementacja sprzętowa

Sprzętowe sterowanie łączem jest integrowane zarówno na układzie scalonym, jak i w module radiowym. Sprzęt zajmuje się transmisją radiową, jak też niezbędnym przetwarzaniem sygnałów cyfrowych dla protokołów pasma podstawowego. Jego funkcje obejmują ustalenie połączeń, obsługę transmisji asynchronicznej dla danych i synchronicznej dla głosu. Oprócz tego do jego zadań należy korygowanie błędów oraz uwierzytelnianie. Natomiast oprogramowanie sprzętowe do zarządzania łączem (link manager) wykonuje niskopoziomową detekcję urządzenia, uwierzytelnianie i konfigurację łącza. Układy zarządzające łączem w różnych urządzeniach komunikują się ze sobą za pośrednictwem protokołu zarządzania łączem – LMP (Link Management Protocol). Sprzętowe sterowanie łączem może również dostarczać HCI (Host Controller Interface) jako standardowy interfejs do oprogramowania.

Sieć Bluetooth

Bluetooth - podsieci (pikonety) i sieć rozproszona (scattternet
Bluetooth - podsieci (pikonety) i sieć rozproszona (scattternet

Urządzenia Bluetooth są zorganizowane w grupy (podsieci), liczące od dwu do ośmiu składników, zwane pikonetami (piconets), składające się z jednego urządzenia nadrzędnego (master) i jednego lub kilku podrzędnych (slave). Urządzenie może należeć do więcej niż jednej podsieci, przy czym urządzenie podrzędne pozostaje takim w każdej z nich – spełnia ono rolę mostu łączącego kilka podsieci w sieć rozproszoną (scatternet). Na rysunku 374 zaprezentowano taką konfigurację.

Komunikacja Bluetooth funkcjonuje w nielicencjonowanym pasmie ISM, wykorzystywanym przez wiele urządzeń, w tym kuchenki mikrofalowe. Dla wzmocnienia urządzeń zgodnych z tym standardem każda najmniejsza komórka (pikonet) jest zsynchronizowana ze specjalnym wzorcem skoku częstotliwościowego. Wzorzec ten, przemieszczający się w jednej sekundzie 1600 razy, jest unikatowy dla danego pikonetu. Każdy przeskok na określoną częstotliwość jest w istocie szczeliną czasową, w której transmituje się dane. Pakiet może obejmować do pięciu takich szczelin. W takich przypadkach skok do innej częstotliwości następuje po ostatniej szczelinie. W protokole Bluetooth określono rozszerzanie widma przez pseudolosowe skakanie po 79 częstotliwościach w pasmie rozproszonym 2,402–2,480 GHz. Różnica między częstotliwościami po skokach jest całkowitą krotnością 1 MHz. Dla większości krajów Europy i w USA częstotliwości skoków wynoszą f = 2,402 GHz + k MHz, gdzie k = 0, 1, 2,... 78. W niektórych krajach stosuje się tymczasowo system 23 skoków – w Hiszpanii f = 2,449 + k MHz, a k = 0, 1,… 22. We Francji f = 2,454 + k MHz, gdzie k = 0, 1,... 33.

Jeszcze o pikonetach

Sieci Pikonet mogą być formowane zarówno statycznie, jak i dynamicznie, kiedy urządzenie wejdzie w zasięg drugiego lub kiedy go opuści. Jeśli adres punktu przeznaczenia jest nieznany, używa się zapytań. Po odpowiedzi zdalnego urządzenia obydwa urządzenia wchodzą w opisany wcześniej stan połączenia, przy czym urządzenie inicjujące staje się nadrzędnym, a odpowiadające podrzędnym. W stanie połączenia urządzenie podrzędne będzie synchronizowane z zegarem urządzenia nadrzędnego i z prawidłowym wzorcem skoku częstotliwości. W takiej chwili układy zarządzające łączem wymieniają odpowiednie polecenia, żeby ustalić łącze. Urządzenie nadrzędne będzie wtedy regularnie inicjowało transmisję, utrzymującą zsynchronizowanie pikonetów. Z kolei urządzenia podrzędne, przez nasłuchiwanie każdej szczeliny czasowej transmitowanej przez urządzenie nadrzędne, mogą się z nim zsynchronizować.

Łącza w pasmie podstawowym

Pasmo podstawowe Bluetooth daje kanały transmisyjne zarówno dla danych, jak i dla głosu. Jest w stanie obsługiwać łącze asynchroniczne dla danych i do trzech synchronicznych łączy głosowych. Synchroniczne łącza transmisji połączeniowej SCO (Synchronous Connection Oriented) dla danych są symetrycznymi połączeniami typu punkt–punkt, które rezerwują szczeliny czasowe po to, żeby zagwarantować odpowiedni czas transmisji. Łącza SCO nie są obsługiwane przez protokół L2CP, gdyż nie ma takiej potrzeby.

Łącza dla bezpołączeniowej transmisji asynchronicznej ACL (Asynchronous Connectionless Links) są zazwyczaj wykorzystywane do przesyłania danych. Transmisja w tych łączach jest ustalana w szczelinach czasowych nie zarezerwowanych dla transmisji synchronicznej. Łącza ACL obsługują transfer w konfiguracji punkt–wielopunkt danych zarówno asynchronicznych, jak też izochronicznych. Po transmisji ACL (z urządzenia nadrzędnego) może odpowiedzieć w następnej szczelinie czasowej jedynie wskazane urządzenie podrzędne, a więc o właściwym adresie. Jeśli jednak nie zostało wskazane żadne urządzenie, pakiet jest postrzegany jako wiadomość rozsiewana (broadcasting).

Menedżer łącza (Link Manager)

Menedżer łącza jest oprogramowaniem układowym. Jego głównymi funkcjami są uwierzytelnianie, zapewnienie bezpieczeństwa, monitorowanie jakości usług i kontrola stanu pasma podstawowego. Menedżer ten steruje stronicowaniem oraz nadzoruje zamianę ról urządzeń nadrzędnych w podrzędne i na odwrót. Jego zadaniem jest także nadzorowanie łącza. Programy Menedżer łącza komunikują się wzajemnie za pomocą protokołu LMP, który wykorzystuje usługi pasma podstawowego. Pakiety LMP wysyłane w polu ładunku ACL są odróżniane od pakietów sterowania łączem logicznym (LLC) i protokołu L2CAP (o którym za chwilę) bitem w nagłówku ACL. Są one zawsze wysyłane jako pakiety jednoszczelinowe i mają wyższy priorytet niż pakiety L2CAP, przez co wzmacnia się integralność łącza w sytuacjach dużego natężenia ruchu.

HCI (Host Controller Interface)

Niektóre sprzętowe kontrolery łącza mogą zawierać warstwę HCI powyżej menedżera łącza. Ta programowa warstwa jest używana do izolowania pasma podstawowego Bluetooth i menedżera łącza od portów komunikacyjnych, takich jak USB, czy RS 232. Sterownik HCI jest używany w komputerze do sprzęgania aplikacji Bluetooth z protokołem transportowym. Obecnie są obsługiwane trzy porty transportowe: USB, RS 232 i UART. Korzystając z HCI, aplikacja Bluetooth może mieć dostęp do urządzenia Bluetooth bez znajomości warstwy transportowej i innych szczegółów sprzętowej implementacji.

Profile są w pewnym sensie wyrazem elastyczności Bluetootha. Oto niektóre z nich: * Profil GAP (Generic Access Profile) – jak sugeruje nazwa – profil ogólnego dostępu. Definiuje ogólne procedury niezbędne do wykrywania urządzeń Bluetooth i określa aspekty zarządzania łączem. Jest filarem, na którym opierają się wszystkie pozostałe profile. * Profil SDAP (Service Discovery Application Profile) definiuje procedury dla aplikacji w urządzeniu Bluetooth do wyszukiwania usług zarejestrowanych w innym urządzeniu Bluetooth i do znajdowania dowolnych informacji odnoszących się do tych usług. * Profil CTP (Cordless Telephony Profile) precyzuje cechy i procedury, które są wymagane do osiągnięcia kompatybilności między różnymi jednostkami zwanymi „trzy w jednym” (3-in-1) – słuchawka (na głowie) może być połączona z trzema usługami. Telefon może funkcjonować jako bezprzewodowy, połączony z siecią komutowaną, albo jako połączony bezpośrednio z innymi telefonami (walkie-talkie), lub też jako komórkowy, połączony z infrastrukturą sieci komórkowej. * Profil IP (Intercom Profile) jest niezbędny do określenia działania urządzenia jako interkomu w trybie 3-in-1. * Profil SPP (Serial Port Profile) określa wymagania dla urządzeń Bluetooth, konieczne do utworzenia emulowanego połączenia szeregowego z użyciem RFCOMM między parami urządzeń. * Profil HS (Headset Profile) specyfikuje wymagania dla urządzeń z zaimplementowanym modelem zwanym Ultimate Headset. Model ten określa, w jaki sposób bezprzewodowe słuchawki standardu Bluetooth mogą być łączone, aby działały jako interfejs audio wejścia–wyjścia dla zdalnego urządzenia. Takim urządzeniem może być np. PC. * Profil DNP (Dial-up Networking Profile) definiuje wymagania stawiane przez urządzenia – modemy, telefony komórkowe – przy implementowaniu modelu Internet Bridge, czyli swego rodzaju bramy internetowej. * Profil LAP (LAN Access Profile) precyzuje, w jaki sposób urządzenia zgodne z protokołem Bluetooth mogą mieć zapewniony dostęp do usług LAN za pośrednictwem PPP. Profil ten pokazuje również, jak użyć tych samych mechanizmów PPP do utworzenia sieci składającej się z dwu urządzeń Bluetooth. * Profil GOEP (Generic Object Exchange Profile) określa podstawy wsparcia modeli użytkowych wymiany obiektów; jest związany z IrOBEX. Modele użytkowe mogą być typu: Synchronization, File Transfer i Object Push. Ich znaczenie jest intuicyjnie jasne, chociaż profil synchronizacji dotyczy  ręcznej lub automatycznej synchronizacji współdzielonych danych, kiedy dwa urządzenia Bluetooth wchodzą wzajemnie w swój zasięg.
Profile są w pewnym sensie wyrazem elastyczności Bluetootha. Oto niektóre z nich: * Profil GAP (Generic Access Profile) – jak sugeruje nazwa – profil ogólnego dostępu. Definiuje ogólne procedury niezbędne do wykrywania urządzeń Bluetooth i określa aspekty zarządzania łączem. Jest filarem, na którym opierają się wszystkie pozostałe profile. * Profil SDAP (Service Discovery Application Profile) definiuje procedury dla aplikacji w urządzeniu Bluetooth do wyszukiwania usług zarejestrowanych w innym urządzeniu Bluetooth i do znajdowania dowolnych informacji odnoszących się do tych usług. * Profil CTP (Cordless Telephony Profile) precyzuje cechy i procedury, które są wymagane do osiągnięcia kompatybilności między różnymi jednostkami zwanymi „trzy w jednym” (3-in-1) – słuchawka (na głowie) może być połączona z trzema usługami. Telefon może funkcjonować jako bezprzewodowy, połączony z siecią komutowaną, albo jako połączony bezpośrednio z innymi telefonami (walkie-talkie), lub też jako komórkowy, połączony z infrastrukturą sieci komórkowej. * Profil IP (Intercom Profile) jest niezbędny do określenia działania urządzenia jako interkomu w trybie 3-in-1. * Profil SPP (Serial Port Profile) określa wymagania dla urządzeń Bluetooth, konieczne do utworzenia emulowanego połączenia szeregowego z użyciem RFCOMM między parami urządzeń. * Profil HS (Headset Profile) specyfikuje wymagania dla urządzeń z zaimplementowanym modelem zwanym Ultimate Headset. Model ten określa, w jaki sposób bezprzewodowe słuchawki standardu Bluetooth mogą być łączone, aby działały jako interfejs audio wejścia–wyjścia dla zdalnego urządzenia. Takim urządzeniem może być np. PC. * Profil DNP (Dial-up Networking Profile) definiuje wymagania stawiane przez urządzenia – modemy, telefony komórkowe – przy implementowaniu modelu Internet Bridge, czyli swego rodzaju bramy internetowej. * Profil LAP (LAN Access Profile) precyzuje, w jaki sposób urządzenia zgodne z protokołem Bluetooth mogą mieć zapewniony dostęp do usług LAN za pośrednictwem PPP. Profil ten pokazuje również, jak użyć tych samych mechanizmów PPP do utworzenia sieci składającej się z dwu urządzeń Bluetooth. * Profil GOEP (Generic Object Exchange Profile) określa podstawy wsparcia modeli użytkowych wymiany obiektów; jest związany z IrOBEX. Modele użytkowe mogą być typu: Synchronization, File Transfer i Object Push. Ich znaczenie jest intuicyjnie jasne, chociaż profil synchronizacji dotyczy ręcznej lub automatycznej synchronizacji współdzielonych danych, kiedy dwa urządzenia Bluetooth wchodzą wzajemnie w swój zasięg.

Transmisja audio

Tego typu transmisja może być przeprowadzona między dwoma lub kilkoma obiektami Bluetooth. Dane audio nie przechodzą przez warstwę L2CAP, ale zmierzają bezpośrednio do drugiego obiektu Bluetooth. Audio jest częścią warstwy Baseband, przystosowaną do kodowania mowy.

Inne protokoły

Pozostałe protokoły Bluetooth są implementowane programowo. L2CAP, najniższa warstwa, zapewnia sprzęganie z kontrolerem łącza i kompatybilność między urządzeniami Bluetooth. Bluetooth obsługuje także IrOBEX (IrDA Object Exchange Protocol), protokół sesji zdefiniowany przez IrDA. Ten zaadaptowany protokół może działać przez inne warstwy transportowe, wliczając w to RFCOMM i TCP/IP. Urządzenia Bluetooth rozpoznają jedynie połączeniowy protokół OBEX.

L2CAP (Logical Link Control and Adaptation Protocol)

Warstwa L2CAP funkcjonuje w łączach ACL. Pojedyncze łącze ACL, ustawione przez menedżera łącza przy udziale LMP, jest zawsze dostępne pomiędzy urządzeniem nadrzędnym a każdym aktywnym urządzeniem podrzędnym. Dzięki temu użytkownik ma łącze punkt–wielopunkt obsługujące obydwie metody przesyłania danych – izochroniczną i synchroniczną. L2CAP zapewnia usługi protokołom górnych warstw przez transmitowanie pakietów przepływających przez kanały L2CAP. Istnieją trzy typy takich kanałów: dwukierunkowe kanały sygnalizacyjne, połączeniowe kanały dla połączeń dwukierunkowych i jednokierunkowe kanały bezpołączeniowe obsługujące łącza punkt–wielopunkt, umożliwiające lokalnym jednostkom L2CAP połączenie z grupami zdalnych urządzeń.

Połączenie, konfiguracja i rozłączenie

Żeby otworzyć kanał, punkt końcowy kanału musi być skonfigurowany. Połączenie następuje, kiedy lokalny obiekt L2CAP zażąda połączenia ze zdalnym urządzeniem albo jeśli odebrano sygnał, że zdalne urządzenie sygnalizuje chęć nawiązania połączenia, a kanały połączeniowe muszą zostać skonfigurowane przed rozpoczęciem transmisji. Konfiguracja wymaga negocjacji między obiema stronami połączenia, do czasu, kiedy wszystkie parametry zostaną uzgodnione. Kanał zostanie zamknięty, jeśli jeden obiekt L2CAP wyśle do drugiego żądanie rozłączenia. Jest to warunek konieczny.

Pakiety

Dane są transmitowane w pakietach. W kanale połączeniowym używa się pakietów z 32-bitowym nagłówkiem, natomiast dane zajmują 65 535 bajtów. Nagłówek zawiera 16-bitowe pole długości ładunku, przeznaczone do sprawdzania integralności, i 16-bitowy na identyfikator CID (Channel Identifier) punktu przeznaczenia. Przesyłane dane zawierają informacje z protokołu wyższej warstwy bądź też do niego adresowane. Nagłówek przenosi też 16-bitowy PSM (Protocol/Service Multiplexer), używany do wskazania, skąd pochodzi pakiet. Pole PSM nie jest wymagane przy transmisji w kanałach połączeniowych.

L2CAP segmentuje i składa pakiety. Pakiet z górnej warstwy nie może przekroczyć długości MTU (Maximum Transmision Unit), wynegocjowanej podczas konfiguracji. Takie pakiety są segmentowane w tzw. PDU (Protocol Data Unit), które są wystarczająco małe dla protokołu niższej warstwy. W zależności od zaimplementowanego stosu protokołów mogą one być pakietami lub blokami danych obsługiwanymi przez HCI. W obydwu przypadkach wszystkie PDU danego pakietu muszą być wysłane przed innym pakietem do tego samego zdalnego urządzenia. PDU są wysyłane zgodnie z kolejnością, ale notyfikacja pakietów zależy od implementacji. Pakiety sygnalizacyjne są podobne do pakietów danych. Zawierają one nagłówek z długością ładunku i zdalnym CID. Ładunek zawiera jedno lub więcej poleceń sygnalizacyjnych, używanych do ustalania i zamykania połączeń. Każde polecenie zawiera kod polecenia, identyfikator, informacje o długości danych i zero lub więcej bajtów danych.

SDP i rekordy usług

SDP (Service Discovery Protocol) zapewnia środki niezbędne do określenia, jakie usługi Bluetooth są dostępne w danym urządzeniu. Urządzenie Bluetooth może funkcjonować jako klient SDP pytający o usługi, serwer SDP dostarczający usług lub jako jeden i drugi. Jedno urządzenie Bluetooth nie może pracować jako więcej niż jeden serwer SDP, ale może funkcjonować jako klient dla więcej niż jednego urządzenia. SDP oferuje dostęp jedynie do informacji o usługach; wykorzystanie tych usług musi być zapewnione przez inny protokół. Serwery SDP obsługują rekordy usług do katalogowania wszystkich dostępnych usług dostarczanych przez urządzenie. Każda usługa jest reprezentowana przez jeden rekord. Atrybuty opisują i definiują obsługiwane usługi, wliczając w to: typ, nazwę, opis itp.

Profile

Profile zostały zdefiniowane przez SIG i zgodnie z zamierzeniami twórców służą zapewnieniu kompatybilności między aplikacjami oraz urządzeniami Bluetooth pochodzącymi od różnych producentów. Różne profile mogą obejmować różne warstwy i protokoły. Profil jest zależny od innego, jeśli tylko wykorzystuje deklaracje w nim zawarte. Urządzenia współpracują ze sobą w obrębie wspólnych profili. W istocie profile określają funkcje konkretnego urządzenia. Wszystkie urządzenia Bluetooth muszą wspierać profil GAP (Generic Access Profile). Innym uniwersalnym profilem, aczkolwiek nie wymaganym, jest SDAP (Service Discovery Access Profile).

Bluetooth w 3 zdaniach

Technologia Bluetooth nadal podlega rozwojowi. Grupa robocza SIG ciągle pracuje nad zwiększeniem przepływności, poprawą bezpieczeństwa i odporności na zakłócenia. Komunikacja Bluetooth wciąż ewoluuje, podobnie jak sieci domowe.

-
-