Protokoły i profile standardu Bluetooth LE (Bluetooth Low Energy)

Protokoły i profile standardu Bluetooth LE (Bluetooth Low Energy)
Oprócz protokołów tworzących standard Bluetooth LE (Bluetooth Low Energy) specyfikacja określa tak zwane profile.
Są to albo podstawowe tryby działania wymagane przez wszystkie urządzenia Bluetooth LE, takie jak ogólny profil dostępu i ogólny profil atrybutów, lub profile obejmujące określone przypadki użycia, takie jak profil tętna (the Heart Rate Profile).

GAP Ogólny profil dostępu (GAP – The Generic Access Profile) definiuje role urządzeń, w tym role peryferyjne i centralne obok reklamy i odkrywania.
Istnieją dwa sposoby reklamowania danych przy użyciu GAP: dane reklamowe i pakiety odpowiedzi skanowania.

Podczas gdy oba pakiety używają tego samego formatu ładunku i składają się z maksymalnie 31 bajtów danych, tylko pakiet danych reklamowych jest obowiązkowy.
Jest on wysyłany w ustalonych odstępach czasu reklamy – im dłuższy odstęp czasu, tym mniej energii jest zużywane – na urządzeniach odbierających, odbiór może zażądać pakietu odpowiedzi skanowania z dodatkowymi danymi, jeśli takie istnieją.
Wykorzystywanie niestandardowych danych reklamowych w pakietach rozgłoszeniowych jest sposobem na wdrożenie zarówno standardów iBeacon, jak i Eddystone.
Po nawiązaniu połączenia z urządzeniem peryferyjnym będziesz używać usług i cech GATT do komunikowania się z urządzeniem peryferyjnym, a reklama zostanie zatrzymana do momentu zakończenia połączenia.

Profil GATT

Ogólny profil atrybutów (GATT – The Generic Attribute Profile) określa, w jaki sposób Bluetooth LE przesyła dane tam i z powrotem między urządzeniami peryferyjnymi i centralnymi.
Określa profile, które są zbiorami usług.
Każda usługa ma cechy, które zawierają dane.
Role zmieniają się podczas przejścia z GAP do GATT.
Profil GATT określa dwie role: klienta i serwera.
Może się to wydawać wstecz, ale urządzenia peryferyjne są znane, jako serwery GATT, a bardziej wydajnymi urządzeniami centralnymi są klienci GATT.
Pomyśl o tym w ten sposób: serwer ma dane, a klient chce danych.

Wszystkie połączenia między urządzeniami są inicjowane przez klienta.
Po połączeniu klient może uzyskać listę usług oferowanych przez serwer.
Przed połączeniem urządzenie centralne miało potencjalnie niepełną listę usług z danych reklamowych.

Usługi i charakterystyka
Usługi służą do dzielenia danych na logicznie powiązane części i składają się z zestawu cech.
Charakterystyczne są kontenery, które przechowują dane związane z usługą.
Zarówno usługi, jak i cechy są identyfikowane za pomocą unikalnego identyfikatora, znanego jako UUID (Universally Unique Identifiers).
Charakterystyka zawiera, co najmniej dwa atrybuty: deklarację charakterystyczną, która zawiera metadane dotyczące danych, oraz wartość charakterystyczną, która zawiera same dane.
Cecha może również zawierać dodatkowe deskryptory do rozwinięcia metadanych.
Razem deklaracja, wartość i wszelkie opcjonalne deskryptory tworzą pakiet, a nie stanowią cechę charakterystyczną.
Charakterystykę można zdefiniować, jako odczyt lub zapis.
Charakterystyka jest odczytywana przez klienta za pomocą żądania odczytu, przy czym zwracana wartość żądania jest wartością charakterystyczną.
Wartości charakterystyczne można zapisać za pomocą żądania zapisu.
Serwer zwraca potwierdzenie po zapisaniu wartości.
Istnieje dodatkowa właściwość „write” zwana poleceniem „write”.
Gdy wartość charakterystyczna jest zapisywana za pomocą polecenia „write”, serwer nie wysyła żadnej odpowiedzi z powrotem do klienta.
Polecenie zapisu jest czasem nazywane zapisem bez odpowiedzi.
Dwie dodatkowe właściwości są powiadamiane i wskazują.
Obie są komunikacją inicjowaną przez serwer.
Klient subskrybuje powiadomienia, gdy zmienia się wartość cechy.
Gdy nastąpi zmiana, serwer powiadamia klienta, wysyłając nową wartość.
Wskazanie jest podobne do powiadomienia, z tym wyjątkiem, że klient musi potwierdzić otrzymanie wskazania.
Charakterystyka może mieć wiele właściwości.
Na przykład jedna cecha może pozwolić na odczyt, zapis i powiadomienie.
Autor: David Furato

Komentarze z Facebooka

Komentarze obecnie - OFF.