Politechnika Gdańska Wydział Elektroniki, Telekomunikacji i Informatyki Katedra Systemów Geoinformatycznych Aplikacje Systemów Wbudowanych Bluetooth Krzysztof Bikonis Gdańsk, 2016
System Bluetooth został opracowany przez grupę Bluelooth Special Interest Group (SIG) powstałą z inicjatywy firm Ericsson, IBM, Intel, Nokia, Toshiba. Przeznaczeniem systemu Bluetooth jest zapewnienie bezprzewodowej łączności między urządzeniami komputerowymi i telekomunikacyjnymi, jak np. komputery stacjonarne i przenośne, drukarki, telefony, faksy. Łącze zgodne z Bluetooth cechuje się małą mocą i zasięgiem oraz niską ceną. Bluetooth jest przydomkiem żyjącego w X wieku (940-981) 981) króla Wikingów Harolda I Sinozębego, który podbił Danię i Norwegię też nie używając kabli. 2
3
Topologia sieci Pikosieć Scatternet Maksymalnie 7 aktywnych węzłów podrzędnych Maksymalnie 255 węzłów zaparkowanych (są w stanie niskiego poboru energii i czekają na sygnał aktywacji od swojego węzła głównego) Master Master/Slave Slave Maksymalnie 10 pikosieci połączonych razem 4
Powodem wybrania struktury Master-Slave było umożliwienie implementacji kompletnych układów BlueTooth w cenie poniżej 5 dolarów. Konsekwencje: 5
Powodem wybrania struktury Master-Slave było umożliwienie implementacji kompletnych układów BlueTooth w cenie poniżej 5 dolarów. Konsekwencje: Układy podrzędne są głupie - robią tylko to co każe im węzeł główny Węzeł główny kontroluje zegar i przydziela szczeliny czasowe urządzeniom Bezpośrednia komunikacja pomiędzy węzłami podrzędnymi jest niemożliwa 6
Profile (zastosowania) Bluetooth Ogólny dostęp (Generic Access) jest to podstawowy profil dostępu wprowadza definicje zalecenia i wspólne wymagania dotyczących podstawowych trybów pracy i procedur dostępu. Określa on zachowanie urządzenia w stanie oczekiwania i połączenia, które umożliwia zestawienie połączenia pomiędzy urządzeniami Bluetooth, analizę stanu otoczenia i zapewnia odpowiednią poufność. Wykrywanie usług (Service Discovery) jest to protokół do wykrywania oferowanych przez inne urządzenia usług. Port szeregowy (Serial Port) zastępuje kabel szeregowy. Przydatny w starszych aplikacjach, wymagających łącza szeregowego. 7
Profile (zastosowania) Bluetooth Ogólna wymiana obiektów (Generic Object Exchange) - w ramach usługi transmisji szeregowej wyodrębniono specjalna grupę profili które precyzują wymagania odnośnie wymiany danych w podstacji obiektów.przykładem wykorzystania tego profilu jest mogą być aplikacje służące do synchronizacji danych, przesyłania danych oraz wymiany informacji.. Urządzeniami które najczęściej korzystają z tego typu profili są laptopy, notatniki elektroniczne czy telefony komórkowe. Profil określa reguły komunikacji typu wyślij i pobierz bazując na architekturze klient serwer. 8
Profile (zastosowania) Bluetooth Dostęp do sieci lokalnej (LAN Access) - definiuje zestaw procedur zapewniający bezprzewodowy dostęp do sieci LAN. Zdefiniowano trzy typy zastosowań tego profilu: (1) Udostępnianie połączenia z siecią lokalną pojedynczej stacji Bluetooth, (2) Klasyczny punkt dostępowy, pozwalający na jednoczesne przyłączenie do sieci Lokalnej większej liczby urządzeń, (3) Bezpośrednie połączenie między urządzeniami. Łącza telefoniczne (Dial-up networking) - profil dostępu do sieci stosowany jest przez komputer do uzyskania komputerowego dostępu do Internetu poprzez telefon komórkowy lub modem. 9
Profile (zastosowania) Bluetooth Telefonia bezprzewodowa (Cordless Telephony) - definiuje właściwości i procedury wymagane do współpracy pomiędzy różnymi elementami telefonu trzy w jednym. Telefon trzy w jednym" to rozwiązanie wprowadzające dodatkowy tryb pracy telefonu komórkowego jako radiotelefonu bliskiego zasięgu do połączenia z siecią stacjonarną poprzez stację bazową. Intercom cyfrowe walkie-talkie połączenia bezpośrednie pomiędzy telefonami. Zestaw słuchawkowy (Headset) połączenie i pełnienie roli urządzenia wejściowego i wyjściowego dla sygnałów dźwiękowych (audio). Przekazywanie obiektów (Object Push) Udostępnia sposób wymiany prostych obiektów pomiędzy dwoma urządzeniami bezprzewodowymi (np. wizytówek). 10
Profile (zastosowania) Bluetooth Przesył plików (File Transfer) profil aplikacji transferu plików umożliwia przesyłanie danych w łączu bezprzewodowym. W ramach profilu zdefiniowano następujące rodzaje operacji: (1) Wybór serwera z listy dostępnych serwerów tzn. pozostających w zasięgu radiowym urządzenia, (2) Przeglądanie zasobów serwera, (3) Kopiowanie obiektów (pliku lub folderu) z serwera i na serwer, (4) Kasowanie plików lub folderów oraz zakładanie nowego folderu na serwerze. Synchronizacja (Synchronization) pozwala na synchronizację urządzeń. Usług telefaksowych (Fax) 11
Nowe profile (zastosowania) Bluetooth 2.0 Rozszerzonego wykrywania usług (Extended Service Discovery) profil ten definiuje, jak urządzenia mogą wykorzystywać profil wykrywania usług do wykrywania innych urządzeń z wbudowaną obsługą usług Plug and Play oraz zbierania informacji o tych usługach.. Profil ten definiuje dalej 3 możliwości, w jaki sposób urządzenie Bluetooth może wspierać usługi Plug and Play wykorzystując stos protokołu Bluetooth: (1) Poprzez warstwę adaptacji sterowania łączem logicznym, (2) Stos protokołu IP dla profilu dostępu do sieci osobistej PAN (Personal Area Network), (3) Stos protokołu IP dla profilu dostępu do sieci lokalnej LAN (Local Area Network) 12
Nowe profile (zastosowania) Bluetooth 2.0 Dostępu do sieci osobistej (Personal Area Networking) - profil opisuje, jak dwa lub więcej urządzeń wyposażonych w Bluetoothu może formować sieć ad-hoc oraz jak ten sam mechanizm może być użyty do uzyskania dostępu do zdalnej sieci poprzez sieciowy punkt dostępu. Profil definiuje sieciowy punkt dostępu, grupową sieć ad-hoc i użytkownika sieci osobistej. Rodzajowej dystrybucji audio/wideo (Generic Audio/Video Distribution) - profil dostarcza podstaw dla A2DP i VDP, podstawowych systemów projektowanych dla dystrybucji strumieni obrazu i dźwięku przy pomocy bezprzewodowej technologii Bluetooth. Typowe użycie tego profilu ma miejsce, kiedy przenośne urządzenie odtwarzające jest inicjatorem, a zestaw słuchawkowy akceptorem. 13
Nowe profile (zastosowania) Bluetooth 2.0 Zaawansowanej dystrybucji audio (Advanced Audio Distribution) - profil opisuje, jak dźwięk stereofoniczny może być transmitowany ze źródła do odbiornika. Profil definiuje role zarówno źródła, jak i odbiornika. Typowy schemat aplikacyjny dla tego profilu mógłby wyglądać następująco: źródłem dźwięku jest odtwarzacz plików muzycznych, a odbiornikiem bezprzewodowy zestaw słuchawkowy.. Definiuje protokoły i procedury realizujące dystrybucję dźwięku wysokiej jakości w trybie mono- lub stereofonicznym poprzez kanały ACL. Dystrybucji wideo (Video Distribution) - profil definiuje, jak urządzenie transmituje obraz ruchomy poprzez bezprzewodową technologię Bluetooth. Przykłady użycie to streaming zmagazynowanego wcześniej filmu z komputera PC do przenośnego odtwarzacza albo z kamery cyfrowej do telewizora. 14
Nowe profile (zastosowania) Bluetooth 2.0 Zdalnego sterowania audio/wideo (Audio/Video Remote Control) - profil dostarcza standardowego interfejsu do sterowania telewizorami, sprzętem Hi-Fi, itp. Profil ten pozwala użytkownikowi na kontrolę wszystkich urządzeń audio/wideo, do których ma on dostęp, przy pomocy jednego pilota zdalnego sterowania (lub innego urządzenia pełniącego tę funkcję). Definiuje sposób kontroli strumieniowego obrazu i dźwięku, to znaczy pauzowanie, zatrzymywanie, włączanie odtwarzania, oraz kontrolę głośności oraz inne operacje, które mogą zostać wykonane przy pomocy pilota zdalnego sterowania. 15
Nowe profile (zastosowania) Bluetooth 2.0 wydruku bez kabla (Hard Copy Cable Replacement) - profil definiuje, jak, poprzez bezprzewodowe łącze Bluetooth, wykonywane jest drukowanie oparte na sterownikach. Profil ten definiuje role klienta i serwera. Klientem jest urządzenie zawierające sterownik dla serwera, na którym klient chce drukować. Powszechną konfiguracją sprzętową jest komputer PC (klient) drukujący, z wykorzystaniem sterownika, na drukarce pełniącej rolę serwera. Dostarcza to prostej bezprzewodowej alternatywy dla połączenia kablowego pomiędzy urządzeniem a drukarką.. Nie reguluje standardu co do faktycznej komunikacji z drukarką, więc dla każdego modelu drukarki konieczne jest zainstalowanie odpowiednich sterowników. 16
Nowe profile (zastosowania) Bluetooth 2.0 Podstawowego obrazowania (Basic Imaging) - profil definiuje, jak urządzenie obrazujące może być zdalnie sterowane, jak może drukować oraz jak może przesyłać obrazy do urządzenia magazynującego. Przykładem użycia może być telefon komórkowy sterujący migawką aparatu fotograficznego. Podstawowego drukowania (Basic Printing) - profil pozwala urządzeniom wysyłać tekst, e-maile, wizytówki, obrazy, itp. do drukarki. Profil ten różni się od wydruku bez kabla tym, że nie wymaga zainstalowanych sterowników dla konkretnej drukarki. Sprawia to, że jest on odpowiedni dla takich urządzeń, jak telefon komórkowy czy aparat cyfrowy, w których nie można łatwo uaktualnić sterowników zależnych od producenta drukarki. 17
Nowe profile (zastosowania) Bluetooth 2.0 Wspólnego dostępu do sieci (Common ISDN Access) - profil definiuje zaopatrzenie w usługi ISDN poprzez Bluetooth w sposób, który pozwala interfejsom aplikacyjnym być implementowanymi bez utraty wstecznej kompatybilności z już istniejącymi aplikacjami ISDN opartymi na CAPI (Common Common-ISDN ISDN-Application Programming Interface) wolne ręce (Hands-Free) - profil opisuje, jak urządzenie bramy wejściowej może być użyte do wykonywania i odbierania rozmów poprzez urządzenie niewymagające używania rąk. Typową konfiguracją dla tego profilu jest samochód używający telefonu komórkowego jako bramy wejściowej.. Zainstalowane w samochodzie głośniki od radia służą do odbioru, a mikrofon do nadawania sygnału mowy w czasie prowadzonej rozmowy. W środowisku domowym lub biurowym może być również stosowany poprzez komputer PC pełniący rolę słuchawki telefonicznej telefonu komórkowego. 18
Nowe profile (zastosowania) Bluetooth 2.0 Urządzeń interfejsu człowiek-maszyna (Human Interface Device) - profil definiuje protokoły, procedury oraz opcje używane przez urządzenia z Bluetoothem, takie jak klawiatury, urządzenia wskazujące, manipulatory do gier oraz urządzenia zdalnego monitoringu. Dostępu do karty SIM (SIM Access) - profil pozwala urządzeniom, takim jak telefony samochodowe z wbudowanym nadajnikiem- odbiornikiem GSM, łączyć się z kartą SIM w telefonie wyposażonym w łącze Bluetooth.. W takiej sytuacji telefon samochodowy nie potrzebuje już osobnej karty SIM. 19
Stos protokołów Bluetooth Aplikacje/Profile Inne Wykrywanie usług LLC RFcomm Telefonia Audio Sterowanie Protokół adaptacji sterowania łączem logicznym Protokół menadżera łączy Pasmo Podstawowe Fizyczne radio Warstwa aplikacji Warstwa pośrednia Warstwa łącza danych Warstwa fizyczna 20
Stos protokołów Bluetooth Warstwa fizyczna zajmuje się transmisją radiową i modulacją Warstwa pasma podstawowego zajmuje się sterowaniem przez węzeł główny szczelinami czasowymi i grupowaniem ich w ramki Protokół menadżera era łączy (LMP) zajmuje się tworzeniem logicznych kanałów pomiędzy urządzeniami, w tym zarządzaniem zasilaniem, uwierzytelnianiem i jakością usług Protokół adaptacji sterowania łączem logicznym (L2CAP) izoluje wyższe warstwy od szczegółów transmisji. Protokół audio zajmuje się dźwiękiem Protokół sterowania zajmuje się sterowaniem 21
Stos protokołów Bluetooth Protokół LLC odpowiada za zgodność z innymi sieciami Protokół RFcomm (komunikacja na częstotliwościach radiowych) emuluje standardowy port szeregowy Protokół telefonii działa w czasie rzeczywistym i obsługuje profile związane z mową, zarządza nawiązywaniem i kończeniem połączeń telefonicznych Protokół do wykrywania usług służy do znajdowania usług w sieci Aplikacje i profile do swoich działań wykorzystują protokoły z warstw niższych Każda aplikacja ma zwykle własny dedykowany podzbiór protokołów wymaganych w konkretnym zastosowaniu i żadnych innych 22
Łącze radiowe w systemie Bluetooth wykorzystuje technologię widma rozproszonego metodą przeskoków częstotliwości (Frequency Hopping) i pracuje w paśmie częstotliwości ISM 2.4-2.48352.4835 GHz. 23
W systemie Bluetooth dostępne pasmo częstotliwości podzielone jest na kanały o szerokości 1 MHz z przedziałami ochronnymi o szerokości kilku MHz. Liczba dostępnych kanałów zależy od kraju i wynosi od 26 do 79. Moc nadajnika wynosi 100 mw, 2.5 mw, 1 mw (klasa 1, 2, 3). Zasięg wynosi 100 m, 10m, 1 m w otwartej przestrzeni. Prędkość transmisji: 21 kb/s B1.0, 124 kb/s B1.1, 328 kb/s B1.2, 2.1 Mb/s B2.0, 3.1 Mb/s B2.0 EDR, 24 Mb/s B3.0, 40 Mb/s B3.1 200 kb/s B4.0. 24
Zarówno 802.11 (Wi-Fi), jak i Bluetooth działają w paśmie ISM 2.4 GHz na tych samych 79 kanałach, to zakłócają się nawzajem. 802.11a używa, a 802.11n oprócz pasma ISM 2.4 korzysta z drugiego pasmo ISM 5 GHz. Lecz w takim przypadku, z uwagi na właściwości fal radiowych, mają znacznie mniejszy zasięg. Rozwiązanie oparte na rynku polega na tym, że sieć o większej mocy (politycznej, ekonomicznej, a nie elektrycznej) żąda od słabszej sieci modyfikacji jej standardu, tak aby przestała zakłócać. 25
Warstwa pasma podstawowego Przekształca surowy strumień bitów w ramki i definiuje pewne kluczowe formaty Stacja główna w każdej sieci piconet definiuje serię szczelin czasowych o długości 625μs Transmisje stacji głównej to szczeliny parzyste, a stacji podrzędnych to szczeliny nieparzyste, którymi się dzielą Ramki mogą mieć długość 1, 3, 5 szczelin Czas ustalania w procesie przełączania częstotliwości to 250-260μs 26
Podstawowe parametry urządzeń BD_ADDR (Bluetooth Device Address) 48-bitowy adres urządzenia zgodny z adresacją Ethernet MAC. Adres urządzenia nadrzędnego determinuje kolejność sekwencji przeskoków częstotliwości. CLKN (Clock Native) 28-bitowy niezależny zegar o rozdzielczości 312.5 μs. Zegar urządzenia nadrzędnego determinuje fazę przeskoków częstotliwości. Urządzenia podrzędne utrzymują i stale odświeżają różnicę wskazania swojego zegara względem wskazania zegara urządzenia nadrzędnego w celu synchronizacji. COD (Class of Device) 24-bitowy parametr urządzenia określający klasę urządzenia pod względem realizowanych przez nie usług 27
Warstwa pasma podstawowego Każda ramka przesyłana jest kanałem logicznym pomiędzy stacją główną i podrzędną. Istnieją dwa typy łączy: - Bezpołączeniowe asynchroniczne ACL (Asynchronous Connection- less) używane do przesyłania danych w pakietach w nieregularnych odstępach czasu. Ramki mogą się gubić i wymagać retransmisji. Stacja podrzędna może mieć tylko jedno łącze ACL ze swoją stacją główną. - Połączeniowe synchroniczne SCO (Synchronous Connection Oriented) używane do przesyłania danych w czasie rzeczywistym (np. połączeń telefonicznych). Występuje stała szczelina w każdym kierunku. Ramki nigdy nie są retransmitowane, zamiast tego niezawodność łącza ma zapewnić korekcja błędów. Stacja podrzędna może mieć maksymalnie trzy łącze SCO ze swoją stacją główną. 28
Pakiety: SCO dla transmisji synchronicznej ACL dla transmisji asynchronicznej Pakiety realizujące funkcje kontrolne - ID identyfikacyjny służący głównie do nawiązywania połączenia - FHS przenosi adres BD_ADDR, stan zegara CLKN i inne parametry urządzenia potrzebne do nawiązywania połączeń - POLL nadawany przez urządzenie nadrzędne w przypadku braku danych warstw wyższych do nadania - NULL nadawany przez urządzenia podrzędne w przypadku braku danych warstw wyższych do nadania Pakiet ID zajmuje ½ szczeliny czasowej. Pozostałe pakiety kontrolne pojedynczą szczelinę czasową. 29
Struktura ramki Bluetooth Kod dostępu (72b) Nagłówek (54b) Dane (0-2744b) Adres (3b) Typ (3b) F (1b) A (1b) S (1b) Suma kontrolna (8b) Nadawany trzykrotnie Kod dostępu identyfikuje stację główną, dzięki czemu stacje podrzędne w zasięgu dwóch stacji głównych mogą ustalić, które informacje są przeznaczone dla nich. Generowany na podstawie adresu BD_ADDR urządzenia nadrzędnego. 30
Struktura ramki Bluetooth Kod dostępu (72b) Nagłówek (54b) Dane (0-2744b) Adres (3b) Typ (4b) F (1b) A (1b) S (1b) Suma kontrolna (8b) Nagłówek składa się z: Nadawany trzykrotnie Pola adres AM_ADDR (Active Member Address) identyfikuje, dla którego z siedmiu aktywnych urządzeń ramka jest przeznaczona (adres 0 dla pakietu rozgłoszeniowego) Pola typ identyfikuje typ ramki (ACL, SCO, poll, null), typ korekcji błędów używany w polu danych i liczbę szczelin zajmowanych przez ramkę. Bit przepływ (F) zaznacza stacja podrzędna, gdy jej bufor jest pełny i nie może przyjmować więcej danych 31
Struktura ramki Bluetooth Kod dostępu (72b) Nagłówek (54b) Dane (0-2744b) Adres (3b) Typ (4b) F (1b) A (1b) S (1b) Suma kontrolna (8b) Nagłówek składa się z: Bit potwierdzenie (A) służy do doczepienia ACK do ramki Bit sekwencja (S) służy do numerowania ramek, aby unikać retransmisji Pole sumy kontrolnej ramki Nadawany trzykrotnie 32
Struktura ramki Bluetooth Kod dostępu (72b) Nagłówek (54b) Dane (0-2744b) Adres (3b) Typ (4b) F (1b) A (1b) S (1b) Suma kontrolna (8b) Nadawany trzykrotnie Cały nagłówek jest powtórzony trzykrotnie. Po stronie odbiornika prosty układ sprawdza wszystkie trzy kopie każdego bitu. Jeśli wszystkie są takie same, bit zostaje przyjęty. Jeśli nie wygrywa większość. 54 bity transmisji służą do przesłania 10-bitowego nagłówka ze względu na silne zakłócenia, tanie urządzenia o małej mocy nadajnika (2.5 mw) z niewielką mocą obliczeniową. 33
Tryby oszczędzania energii są konfigurowane oddzielnie między każdym urządzeniem podrzędnym, a urządzeniem nadrzędnym za pomocą protokołu menadżera łączy (LMP) SNIFF zredukowana częstość przepytywania ACL HOLD wstrzymanie transmisji ACL na zadany czas PARK wstrzymanie transmisji ACL i SCO aż do jej wznowienia przez urządzenie nadrzędne (zwalnia adres AM_ADDR urządzenia podrzędnego umożliwiając przyłączenie do pikosieci dodatkowego urządzenia) 34
Korekcja błędów Wykorzystywane systemy: FEC (Forrward Error Corection) oraz ARQ (Automatic Repeat request) Ograniczenie błędów transmisyjnych Spadek wydajności komunikacji Możliwość wyboru pakietu, stosującego odpowiedni tryb korekcji, w zależności od potrzeb (np. dane przekazujące dźwięk nie powinny być retransmitowane, ale także ich jakość nie musi być rewelacyjna) 35
Korekcja błędów FEC 1/3 Trzykrotne powtarzanie każdego wysyłanego bitu Korekcja błędów FEC 2/3 Na każde 10 bitów danych, wysyłane jest 5 bitów nadmiarowych, zawierających informacje korekcyjne Możliwość naprawienia wszystkich błędów pojedynczych oraz wykrycia wszystkich błędów podwójnych Konieczność wysyłania wielokrotności 10 bitów (uzupełnienie wysyłanych ciągów zerami) 36
Korekcja błędów ARQ Wymagane wysyłania potwierdzeń otrzymania ramek Wymagana obecność kodów CRC (Cyclic Redundancy Check) oraz HEC (Header Error Check), na podstawie których odbywa się sprawdzanie poprawności przekazu Urządzenie Master odpowiada przy okazji następnej ramki wysyłanej do urządzenia Slave czekającego na potwierdzenie (może w między czasie nadawać do innych) Urządzenie Slave odpowiada w kolejnej szczelinie czasowej, po otrzymaniu ramki od Mastera Duże opóźnienia wynikające z konieczności retransmisji 37
BTM-222 38