Rozwój BLE: Co to jest Gatt i jak to działa?
Koncepcja gatt
Przeprowadzić rozwój związany z BLE, Musimy mieć pewną podstawową wiedzę, Oczywiście, To musi być bardzo proste.
Gatt Rola urządzenia :
Pierwszą rzeczą do zrozumienia jest to, że rozróżnienie między tymi dwiema ról jest na poziomie sprzętowym, i są to względne pojęcia, które pojawiają się w parach:
“Urządzenie centralne”: stosunkowo potężny, Służy do skanowania i łączenia urządzeń peryferyjnych, takie jak telefony komórkowe, tabletki, itp.
“Urządzenie peryferyjne”: Funkcja jest stosunkowo prosta, zużycie energii jest małe, a urządzenie centralne jest podłączone do dostarczania danych, takie jak opaski na rękę, Inteligentne termometry, itp.
W rzeczywistości, na najbardziej podstawowym poziomie, Powinno to być rozróżnienie między różnymi rolami w procesie nawiązania połączenia. Wiemy, że jeśli urządzenie Bluetooth chce poinformować innych, musi ciągle nadawać do świata zewnętrznego, podczas gdy druga strona musi zeskanować i odpowiedzieć na pakiet transmisji, Aby połączenie można było nawiązać. W tym procesie, Osoba odpowiedzialna za nadawanie jest peryferyjna , A Central jest odpowiedzialny za skanowanie.
Uwaga: proces połączenia między nimi:
Urządzenie centralne może jednocześnie łączyć się z wieloma urządzeniami peryferyjnymi., natychmiast przestanie nadawać transmisję, i kontynuuj transmisję po odłączeniu. tylko jedno urządzenie może próbować połączyć się w dowolnym momencie, Połączenia w kolejce.
Gatt protokół
BLE Technology komunikuje się na podstawie GATT. GATT to protokół transmisji atrybutu. Można to uznać za protokół warstwy aplikacji do transmisji atrybutów.
Jego struktura jest bardzo prosta:
Możesz to zrozumieć jako xml:
Każdy GATT składa się z usług, które wykonują różne funkcje;
Każda usługa składa się z innej cechy;
Każda cecha składa się z wartości i jednego lub więcej deskryptorów;
Obsługa i charakterystyczne są równoważne znacznikom (Obsługa jest równoważna jej kategorii, a charakterystyka jest równoważna jej nazwie), podczas gdy wartość faktycznie zawiera dane, a deskryptor to wyjaśnienie i opis tej wartości. Oczywiście, Możemy to opisać i opisać z różnych stron. Opis, Więc może być wiele deskryptorów.
Na przykład:Wspólny zespół Xiaomi Mi jest urządzeniem BLE, (przypuszczalny) Zawiera trzy usługi, które są usługą, która dostarcza informacji o urządzeniu, Usługa, która zapewnia kroki, i usługa wykrywa tętno;
Charakterystyka zawarta w obsłudze informacji o urządzeniu obejmuje informacje o producencie, Informacje o sprzęcie, Informacje o wersji, itp.; Usługa tętna obejmuje charakterystykę tętna, itp., a wartość charakterystyki tętna faktycznie zawiera dane tętna, a deskryptor to wartość. Opis, takie jak jednostka wartości, opis, pozwolenie, itp.
Gatt C/s
Z wstępnym zrozumieniem GATT, Wiemy, że GATT jest typowym trybem C/S. Ponieważ jest to C/s, Konieczne jest rozróżnienie serwera od klienta.
“Serwer GATT” vs.. “Klient GATT”. Etap, w którym istnieją te dwie role, jest po ustanowieniu połączenia, i wyróżniają się zgodnie ze statusem dialogu. Łatwo jest zrozumieć, że strona przechowująca dane nazywa się serwerem GATT, a strona, która uzyskuje dostęp do danych, nazywa się klientem GATT.
Jest to koncepcja na innym poziomie niż rola urządzenia, o której wspominaliśmy wcześniej, i konieczne jest go odróżnić. Użyjmy prostego przykładu do zilustrowania:
Weźmy przykład telefonu komórkowego i zegarka do zilustrowania. Przed nawiązaniem połączenia między telefonem komórkowym a telefonem komórkowym, Używamy funkcji wyszukiwania Bluetooth telefonu komórkowego do wyszukiwania urządzenia Bluetooth zegarka. Podczas tego procesu, Oczywiste jest, że zegarek jest nadawany, aby inne urządzenia znały swoje istnienie. , jest to rola peryferyjnego w tym procesie, A telefon komórkowy jest odpowiedzialny za zadanie skanowania, i naturalnie odgrywa rolę centrum; Po dwóch nawiązania połączenia GATT, Kiedy telefon komórkowy musi odczytać dane czujnika, takie jak liczba kroków z zegarka, Dwa interaktywne dane są zapisywane w zegarku, W tej chwili zegarek jest rolą serwera GATT, A telefon komórkowy jest oczywiście klientem GATT; A kiedy zegarek chce przeczytać połączenia SMS i inne informacje z telefonu komórkowego, Strażnik danych staje się telefonem komórkowym, Tak więc telefon komórkowy jest w tej chwili serwer, A zegarek jest klientem.
Usługa/charakterystyka
Mieliśmy już percepcyjne zrozumienie ich powyżej, A potem mamy praktyczne informacje:
- Charakterystyka to najmniejsza logiczna jednostka danych.
- Analiza danych przechowywanych pod względem wartości i deskryptora jest określana przez inżyniera serwera, Nie ma specyfikacji.
- Serwis/charakterystyka ma unikalną identyfikację UUID, UUID ma zarówno 16-bitowy, jak i 128-bitowy, Musimy zrozumieć, że 16-bitowy UUID jest certyfikowany przez organizację Bluetooth i należy go kupić, Oczywiście istnieją niektóre wspólne 16-bitowe uuid. Na przykład, UUID usługi tętna wynosi 0x180d, który jest wyrażony jako 0x00001800-0000-1000-8000-00805f9b34fb w kodzie, a inne bity są ustalone. 128-bitowy UUID można dostosować.
- Połączenia GATT są wyłączne.