Bluetooth

Bluetooth Low Energy (LE)

Energooszczędny Bluetooth dla IoT i aplikacji sensorowych.

Wprowadzenie do Bluetooth LE

Bluetooth Classic obsługiwał bezprzewodowe strumieniowanie audio i ciągły transfer danych. Na początku XXI wieku rozwój Internetu Rzeczy (IoT) zwiększył zapotrzebowanie na łączność małych urządzeń. Termostaty, żarówki, opaski fitness, czujniki medyczne i inne urządzenia potrzebowały sposobu na bezprzewodową komunikację. Ich wymagania różniły się od wymagań bezprzewodowych słuchawek.

Urządzenia te nie musiały strumieniować megabajtów danych na sekundę. Wysyłały niewielkie pakiety informacji w nieregularnych odstępach czasu: odczyt temperatury co kilka minut, aktualizację tętna co sekundę oraz prostą komendę "włącz" lub "wyłącz" dla światła. Musiały działać miesiącami, a nawet latami na jednej małej baterii pastylkowej. Bluetooth Classic zużywałby w takich zastosowaniach zbyt dużo energii.

W odpowiedzi na te wymagania Bluetooth Special Interest Group (SIG) wprowadziła Bluetooth Low Energy (LE) w specyfikacji Bluetooth Core 4.0 z 30 czerwca 2010 roku. LE powstał jako odrębny wariant radia i warstwy łącza działający obok Bluetooth Classic BR/EDR, przy zachowaniu wspólnych elementów architektury, takich jak HCI. Jego głównym celem było ograniczenie zużycia energii. W typowym cyklu radio pozostaje wyłączone przez większość czasu, budzi się na kilka milisekund, aby wysłać lub odebrać krótki pakiet danych, a następnie wraca do stanu uśpienia. Taka architektura obsługuje urządzenia IoT z okresową wymianą danych.

Warstwa fizyczna Bluetooth LE

Bluetooth LE wykorzystuje warstwę fizyczną w paśmie ISM 2.4 GHz, wspólnym z Bluetooth Classic, ale z odrębnymi parametrami kanałów, ramek i PHY. Krótkie pakiety oraz możliwość ograniczenia czasu aktywności odbiornika wspierają pracę urządzeń bateryjnych.

Inny Układ Kanałów

Podczas gdy Bluetooth Classic BR/EDR dzieli spektrum 2.4 GHz na 79 kanałów o szerokości 1 MHz każdy, Bluetooth LE używa schematu z 40 kanałami, każdy o szerokości 2 MHz. Częstotliwości środkowe kanałów LE mieszczą się od 2402 do 2480 MHz. Te 40 kanałów dzieli się na kanały podstawowej reklamy i kanały ogólnego przeznaczenia:

  • Kanały podstawowej reklamy (3 kanały): Są to trzy kanały 37, 38 i 39 używane przez legacy primary advertising. Ich częstotliwości zostały rozmieszczone tak, aby ograniczać nakładanie się z często używanymi kanałami Wi-Fi: kanał 37 leży przed typowym kanałem Wi-Fi 1, kanał 38 pomiędzy kanałami 1 i 6, a kanał 39 za kanałem 11. Legacy discovery, rozgłaszanie danych i inicjowanie połączeń korzystają z tych kanałów. Extended advertising może przenosić dane pomocnicze na kanały 0 do 36.
  • Kanały ogólnego przeznaczenia (37 kanałów): Kanały 0 do 36 są używane do dwukierunkowej wymiany danych po nawiązaniu połączenia oraz jako kanały pomocnicze extended advertising. Gdy dwa urządzenia ustanowią połączenie, przełączają się na kanały danych i zaczynają przeskakiwać między dostępnymi kanałami w zsynchronizowanym wzorcu. Mapa kanałów może wyłączyć kanały zakłócane przez inne systemy.

Modulacja i Szybkość Transmisji Danych

Bluetooth LE i Basic Rate Bluetooth Classic używają modulacji , lecz parametry PHY i formaty pakietów są określone osobno. Obowiązkowy LE 1M używa szybkości symbolowej 1 Msym/s i zapewnia surową szybkość 1 Mb/s. LE 2M jest opcjonalnym PHY o szybkości 2 Mb/s, a LE Coded oferuje warianty 125 kb/s i 500 kb/s. Przepływność aplikacji zależy od narzutu pakietów, interwału połączenia i retransmisji.

Adaptacyjne Przeskoki Częstotliwości (AFH)

Podobnie jak jego klasyczny odpowiednik, LE wykorzystuje , aby działać w hałaśliwym środowisku 2.4 GHz. Implementacja może klasyfikować stan kanałów i przekazać partnerowi informację o zakłóceniach. Następnie oba urządzenia mogą zaktualizować wspólną mapę kanałów i pominąć kanał o niekorzystnych warunkach. Pozwala to dostosować połączenie do otoczenia radiowego i utrzymać stabilność łącza.

Role GAP i GATT: Central oraz Peripheral

Architektura Central/Peripheral zastąpiła w Bluetooth LE starszy opis master/slave używany w Classic. Role GAP określają, które urządzenie inicjuje połączenie i które je przyjmuje, a role GATT Client/Server opisują wymianę atrybutów niezależnie od ról GAP. Bluetooth LE korzysta ze standardowej struktury organizacji danych zwanej Generic Attribute Profile (GATT).

Peripheral (Serwer GATT)

Peripheral to zazwyczaj małe, zasilane bateryjnie urządzenie IoT. To urządzenie, które posiada dane. Na przykład monitor tętna to Peripheral. W typowej konfiguracji przyjmuje połączenie od Central i ogłasza swoją obecność oraz oferowane usługi danych. W przykładowym układzie GATT Peripheral pełni rolę Serwera, ponieważ udostępnia dane klientowi, a role GAP i GATT są jednak niezależne.

Central (Klient GATT)

Central to zazwyczaj urządzenie o większych zasobach, jak smartfon, tablet czy komputer. To urządzenie, które chce danych. Central skanuje w poszukiwaniu ogłaszających się Peripheral i może zainicjować połączenie. W przykładowym układzie GATT Central pełni rolę Klienta, ponieważ żąda danych od Serwera, a role GATT można zestawiać z rolami GAP zależnie od funkcji urządzenia.

Ten model pozwala na równoczesną obsługę połączeń. Kontroler może pozwolić pojedynczemu Peripheral ogłaszać się do wielu Central, a pojedynczemu Central utrzymywać połączenia z wieloma Peripheral jednocześnie. Rzeczywista liczba połączeń zależy od zasobów kontrolera i implementacji.

GATT: Model danych i procedury LE

Profil określa sposób udostępniania usług, charakterystyk, deskryptorów i procedur po połączeniu LE. Central może odkrywać te elementy na Peripheral i używać ich zgodnie z profilem aplikacyjnym. Procedury GATT korzystają z ATT, a profil aplikacyjny opisuje użycie elementów w konkretnym przypadku, więc nie jest poziomem wewnętrznej hierarchii GATT:

  1. Profil aplikacyjny:Wysokopoziomowa, predefiniowana specyfikacja usług, które razem definiują konkretny przypadek użycia. Na przykład "Profil Tętna" określa, że urządzenie musi zawierać "Usługę Tętna". Profil korzysta z GATT i zapewnia interoperacyjność typu "plug-and-play".
  2. Usługa: Zbiór powiązanych punktów danych, zwanych charakterystykami. Usługa jest jak folder, który grupuje podobne informacje. Na przykład "Usługa Tętna" zawierałaby dane o tętnie, a "Usługa Baterii" informacje o poziomie naładowania baterii. Każda usługa jest identyfikowana przez .
  3. Charakterystyka:Rzeczywista wartość danych. Jest to podstawowy element informacji. Charakterystyka jest jak plik w folderze usługi. Przykłady to "Pomiar Tętna" lub "Poziom Baterii". Każda charakterystyka posiada:
    • Wartość: Rzeczywiste dane (np. liczba 120).
    • UUID: Unikalny identyfikator dla tego konkretnego typu danych.
    • Właściwości: Flagi opisujące obsługiwane operacje, takie jak Odczyt, Zapis, Powiadomienie i Wskazanie. Uprawnienia dostępu są określane osobno.
  4. Deskryptor:Opcjonalne, dodatkowe informacje opisujące charakterystykę, takie jak czytelny dla człowieka opis (np. "Uderzenia na minutę") lub prawidłowy zakres jej wartości.

Proces nawiązywania połączenia LE

Cały cykl życia interakcji Bluetooth LE, od odkrycia po wymianę danych, obejmuje procedury ograniczające czas aktywności radia.

Krok 1: Ogłaszanie (Advertising)

Peripheral (np. inteligentny termostat), który chce być wykryty, zaczyna okresowo rozgłaszać krótkie pakiety legacy primary advertising na trzech kanałach ogłoszeniowych (37, 38, 39). Extended advertising może przenieść część danych na kanały 0 do 36. Pakiety zawierają podstawowe informacje, takie jak nazwa i kluczowe usługi, pozwalając Central zdecydować, czy chce się połączyć.

Krok 2: Skanowanie

Central (np. smartfon), który chce się połączyć, wchodzi w stan skanowania i krótko nasłuchuje kanałów podstawowej reklamy oraz ewentualnych kanałów pomocniczych extended advertising. Aplikacja na telefonie może następnie wyświetlić listę pobliskich urządzeń, które się ogłaszają.

Krok 3: Łączenie

Gdy użytkownik wybierze termostat w aplikacji, smartfon (Central) wysyła pakiet z żądaniem połączenia do termostatu (Peripheral). Pakiet ten zawiera kluczowe parametry połączenia, takie jak , który definiuje, jak często urządzenia będą się budzić w celu komunikacji. Odstępy krótsze niż standardowe minimum wymagają obsługi Shorter Connection Intervals przez oba urządzenia, zgodnie z Core 6.2.

Krok 4: Wymiana Danych przez GATT

Po połączeniu oba urządzenia przełączają się na kanały danych i zaczynają przeskoki częstotliwości. Aplikacja na smartfonie sprawdza serwer GATT termostatu, aby odkryć jego usługi i charakterystyki (np. "Usługa Temperatury" z charakterystyką "Aktualna Temperatura"). Użytkownik może teraz wchodzić w interakcję z tymi danymi:

  • Odczyt Danych: Aplikacja wysyła żądanie "odczytu", aby uzyskać aktualną temperaturę z termostatu.
  • Zapis Danych: Użytkownik zmienia docelową temperaturę w aplikacji. Aplikacja wysyła polecenie "zapisu" do charakterystyki "Docelowa Temperatura" termostatu, zmieniając jego ustawienie.
  • Subskrypcja przez Powiadomienia: Aplikacja może zasubskrybować charakterystykę "Aktualna Temperatura". Teraz termostat będzie automatycznie wysyłał aktualizację (pakiet "powiadomienia") do telefonu za każdym razem, gdy temperatura się zmieni, bez konieczności ciągłego pytania o jej wartość. Jest to niezwykle energooszczędne w porównaniu z wielokrotnym odpytywaniem o wartość.

Krok 5: Zakończenie

Gdy interakcja jest zakończona, Central lub Peripheral może wysłać polecenie zakończenia połączenia. Peripheral wraca wtedy do stanu ogłaszania, gotowy na nowe połączenie.

Powiązane artykuły