Sieci domowe (cz. IV) - Sieci bezprzewodowe

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, jak USB, czy RS232. Sterownik HCI jest używany w komputerze do sprzęgania aplikacji Bluetooth z protokołem transportowym. Obecnie są obsługiwane trzy porty transportowe: USB, RS232 i UART.

Używając HCI, aplikacja Bluetooth może mieć dostęp do urządzenia Bluetooth bez znajomości warstwy transportowej i innych szczegółów sprzętowej implementacji.

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 - synchroniczną i izochroniczną. 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.

Jak już wspomniano, 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-bitówe 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 PDU mogą 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.


TOP 200