Jeszcze kilka lat temu, chcąc zaimplementować obsługę sieci bezprzewodowej w urządzeniu elektronicznym, konstruktor miał dosyć łatwy wybór. Do komunikacji na duże odległości (WAN) wybierał modem sieci komórkowej, do łączenia się z siecią lokalną (LAN), sięgał po moduł Wi-Fi, a na potrzeby sieci osobistej (PAN) używał modułu Bluetooth.
Oczywiście zawsze istniała możliwość realizacji jakiejś indywidualnej metody bezprzewodowego transferu danych - jak np. w radiomodemach, oraz zawsze konieczne było wybranie generacji standardu, ale była to decyzja względnie prosta, wynikająca z łatwych kalkulacji. Nieco później spopularyzowała się jeszcze sieć ZigBee, ale jej specyfika oraz multum różnych odmian sprawiały, że wybór którejś wersji ZigBee był determinowany z góry, ze względu na przeznaczenie produktu. Ponadto, ZigBee wywodzi się z rynku automatyki, a więc w aplikacjach typowo konsumenckich raczej nie znajdywało zastosowania.
Czasy się jednak zmieniły, a oczekiwania klientów odnośnie do bezprzewodowości otrzymywanych produktów sprawiły, że powstały nowe standardy oraz zupełnie nowe wersje już istniejących. Umożliwił to również postęp technologiczny, który pozwolił na realizację bardziej energooszczędnych lub nawet bardziej zasobożernych standardów. W końcu narodziła się technologia Internetu Rzeczy (IoT - Internet of Things), o którym choć dużo się mówi, to wbrew pozorom, pewnie dopiero za jakiś czas rozwinie się na poważnie i zdominuje nasze otoczenie.
Obecnie konstruktor ma do wyboru nie tylko kilka generacji Wi-Fi (równolegle używanych), kilka generacji sieci komórkowych różniących się nie tylko przepustowością, ale i poborem mocy oraz kilka generacji Bluetootha, z których nie wszystkie są ze sobą kompatybilne. Do dyspozycji są też inne standardy otwarte, takie jak interesujący 6loWPAN oraz własnościowe protokoły, takie jak MiWi, LoRa, JenNet, kilka przemysłowych (np. Wireless M-Bus), a na horyzoncie jest już ZigBee 3.0. Do tego RFID coraz częściej zastępowane jest implementacjami NFC, które także umożliwia dwukierunkową komunikację bezprzewodową.
IEEE
Organizacja IEEE jest zapewne znana, choćby ze słyszenia, każdemu inżynierowi - elektronikowi. To ona opracowuje kolejne standardy w elektronice i elektryce, które następnie są respektowane i implementowane przez producentów na całym świecie. Oczywiście dotyczy to także technologii komunikacji bezprzewodowej. Poszczególne standardy IEEE są oznaczane liczbami i a niektóre z nich dodatkowo literami.
Najnowsze (dostępne na rynku) Wi-Fi to IEEE 802.11ac, natomiast Bluetooth to IEEE 802.15.1. Problem w tym, że wiele z pozostałych, wcześniej wymienionych sieci PAN, pomimo różnic między nimi jest zgodnych z IEEE 802.15.4, a czasem równocześnie i z IEEE 802.15.5 i okazuje się, że niemała część inżynierów nie wie do końca dlaczego tak jest. Rozwikłanie tych zależności pozwala dobrze zrozumieć różnice pomiędzy poszczególnymi standardami.
IEEE to Instytut Inżynierów Elektryków i Elektroników (Institute of Electrical and Electronics Engineers). Organizacja ta obejmuje liczne komitety, przy czym komitet IEEE 802 odpowiada za sieci komunikacyjne, przesyłające pakiety o różnych wielkościach. Dzieli się on na grupy robocze, zajmujące się różnymi rodzajami komunikacji.
Przykładowo: IEEE 802.3 to grupa pracująca nad Ethernetem, IEEE 802.11 pracuje nad bezprzewodowymi sieciami LAN (w tym Wi-Fi), a IEEE 802.15 nad bezprzewodowymi sieciami personalnymi. Grupy dzielą się następnie na zespoły do konkretnych zadań. I tak np. zespół IEEE 802.15.1 pracuje nad Bluetoothem, IEEE 802.15.2 nad umożliwieniem współistnienia sieci WLAN i WPAN (Wireless PAN), IEEE 802.15.3 nad sieciami WPAN o dużych przepustowościach, IEEE 802.15.4 nad sieciami WPAN o małych przepustowościach (np. ZigBee), IEEE 802.15.5 nad komunikacją w sieciach o topologii kraty (realizowaną np. również przez ZigBee), a IEEE 802.15.6 pracuje nad sieciami ograniczonymi do jednego człowieka (BAN - Body Area Network).
Co jakiś zespoły czas wydają standardy w postaci dokumentów, takich jak np. IEEE Standard 802.15.1-2005, w którym zawarto opis interfejsu Bluetooth v1.2. Czasem jeden standard nie opisuje całego interfejsu komunikacyjnego i dopiero na jego bazie lub na bazie kilku standardów, tworzy się kompletny interfejs, czego przykładem jest ZigBee. W warstwie fizycznej korzysta ono z osiągnięć zespołu IEEE 802.15.4, a dodatkowo implementuje obsługę sieci o topologii krat, zgodnie z wytycznymi IEEE 802.15.5. Warto przy tym zaznaczyć, że wytyczne te mogą być równie dobrze zastosowane do warstwy fizycznej sieci opisanych przez IEEE 802.15.3.
Zaletą takiej organizacji prac jest utrzymywanie kompatybilności wstecznej wielu standardów, ale czasem zdarzają się wyjątki, wynikające przede wszystkim z konieczności zerwania z zaszłościami technologicznymi, które uniemożliwiały wprowadzenie postępu. Tak np. jest z interfejsem Bluetooth Smart, znanym elektronikom przede wszystkim jako Bluetooth Low Energy, albo BLE.
Bluetooth
W momencie powstania, Bluetooth był ciekawym pomysłem, który teoretycznie miał zrewolucjonizować sposób łączenia ze sobą niedużych urządzeń elektronicznych. Duży zasięg, mały pobór mocy i specjalny protokół, zaprojektowany specjalnie na potrzeby nowego interfejsu miały gwarantować sukces. Rzeczywistość okazała się jednak nieco inna.
Zasięg wcale nie był taki duży, jak reklamowano, a uzyskiwane transfery użytecznych danych nawet na ówczesne czasy były dosyć skromne. Co najgorsze, pobór mocy urządzeń korzystających z Bluetootha wcale nie pozwalał na ciągłe utrzymywanie włączonego interfejsu, jeśli źródłem zasilania były baterie.
Po średnio użytecznym interfejsie Bluetooth 1.2, który zastąpił starsze, ale bardzo stosowane wersje, pojawił się Bluetooth 2.0+EDR, który dzięki opcjonalnej funkcji Enchanced Data Rate podwyższał teoretyczną szybkość transmisji do 3 Mb/s. W praktyce pozwalało to obniżyć zużycie energii, gdyż skracało czas potrzebny na przesłanie danych. W końcu wersja 2.1+EDR usprawniła proces parowania i wykrywania urządzeń, a wraz z postępem technologicznym w dziedzinie komunikacji radiowej, Bluetooth faktycznie zaczął być użyteczny.
Pojawienie się smartfonów, wyposażonych w interfejs Wi-Fi podsunęło zespołowi IEEE 802.15.1 pomysł, aby wykorzystać dostępność dwóch rodzajów interfejsów bezprzewodowych w urządzeniu. Powstał więc Bluetooth 3.0+HS, który oprócz zmian związanych z kontrolą retransmisji i mocy nadawczej oraz zasilania, pozwolił na opcjonalne użycie warstwy fizycznej Wi-Fi do przesłania większych ilości danych, po uprzednim wynegocjowaniu połączenia poprzez Bluetooth. Teoretycznie zwiększało to maksymalną szybkość transmisji do 24 Mb/s.
Gdy szybkość transmisji przestała teoretycznie być problemem, zespół IEEE 802.15.1 wziął się za zmniejszenie poboru energii. W tym celu sięgnięto po kolejne skandynawskie rozwiązanie (pierwsza wersja Bluetootha została opracowana przez szwedzkiego Ericssona) - Wibree, zaprezentowane w 2006 roku przez Nokię - czyli w czasach jej świetności.
Wibree miało wiele zalet, w porównaniu do Bluetootha, co było szczególnie zauważalne w prostych aplikacjach, gdzie nie były potrzebne duże przepustowości, ale długotrwała praca na zasilaniu bateryjnym. Niestety, Wibree było zupełnie niekompatybilne z Bluetoothem, poza tym, że pracowało w tym samym zakresie częstotliwości.
zespół IEEE mimo to zdecydował się przyjąć rozwiązanie i Wibree zostało przemianowane na Bluetooth Low Energy (Bluetooth LE) oraz włączone do nowej wersji standardu Bluetooth 4.0+LE. Tak, jak i w przypadku poprzednich standardów, w których nazwie pojawiał się znak plusa, obsługę transmisji w trybie Low Energy uznano za opcjonalną, co pozwoliło twórcom układów scalonych na stosowanie oznaczenia Bluetooth 4.0 nawet, jeśli nie wspierały one w pełni nowego standardu.
W ostatnim czasie wprowadzono jeszcze dwie aktualizacje: Bluetooth 4.1 i Bluetooth 4.2, z czego pierwsza obejmuje głównie zmiany programowe, a druga została zaprojektowana z myślą o Internecie Przedmiotów, i m.in. wprowadza dodatkowe mechanizmy sprzętowe, zwiększające prywatność transmisji oraz dodatkowe profile komunikacji, ułatwiające transmisję pakietów IPv6 przez łącze Bluetooth.
Bluetooth Smart
Cofnijmy się jednak do Bluetootha 4.0+LE, który obecnie dominuje w nowych modułach radiowych BT. Po pierwsze, oficjalnie standard ten nosi już inną nazwę. Zrezygnowano z sufiksu "+LE" i przyjęto, że Bluetooth 4.0 obejmuje dwa różne, niekompatybilne ze sobą standardy, których implementacja decyduje o tym, jakiego oznaczenia może używać producent urządzenia.
Bluetooth Low Energy został nazwany mianem Bluetooth Smart, a dawniej stosowany protokół nazwano mianem Bluetooth Classic i to tych dwóch nazw powinni obecnie używać producenci sprzętu, implementujący obsługę Bluetootha w swoich urządzeniach. Zaproponowano też dodatkową, trzecią nazwę: Bluetooth Smart Ready, która obejmuje sprzęt wspierający zarówno klasyczny Bluetooth, jak i Bluetooth Low Energy, a więc najbardziej uniwersalny.
Niemniej, w katalogach dostawców modułów radiowych wciąż często pojawiają się stare oznaczenia, a słówko "Ready" sugeruje, jakoby Bluetooth Smart był lepszy od Bluetooth Smart Ready (podobnie jak w przypadku wyświetlaczy Full HD i HD Ready) i zapewne z czasem klasyczny BT zostanie wyparty tym, wywodzącym się z Wibree.
To nie do końca dobrze, gdyż pod pewnymi względami klasyczny Bluetooth jest lepszy od nowego. Oferuje większą szybkość transmisji, nieco większy zasięg i obsługuje możliwość sensownego przesyłu audio czy też innych strumieni danych. Tymczasem Bluetooth Smart wyróżnia się przede wszystkim małym poborem mocy i idealnie sprawdza się tam, gdzie potrzebny jest przesył krótkich komunikatów, raz na jakiś czas.
W praktyce więc producenci podchodzą do tej kwestii implementując pełną obsługę Bluetootha Smart Ready w urządzeniach takich jak komputery i smartfony, podczas gdy czujniki i proste elementy wykonawcze pracując jedynie w trybie Bluetooth Classic lub Bluetooth Smart.
Różnice pomiędzy poszczególnymi protokołami BT da się wyrazić liczbowo. Bluetooth Classic pozwala osiągnąć zasięg rzędu 10 m, dla większości nadajników i do 300 m dla urządzeń najwyższej mocy, przy użyciu odpowiednich anten. BT Smart teoretycznie - przy największej mocy pozwala na transfer na odległości do 250 m, ale w większości implementacji również jest ograniczony do 10 m. Kluczowy jest natomiast pobór mocy.
Przyjmuje się, że w popularnych aplikacjach, prąd pobierany przez układy klasycznego Bluetootha w trakcie pracy wynosi do około 30 mA, choć bardzo zależy od zaimplementowanego profilu komunikacji. Natomiast w przypadku interfejsu Bluetooth Smart, prąd ten nie przekracza 15 mA, niezależnie od tego, czy prowadzony jest odbiór czy wysyłka danych.
Co więcej, czas potrzebny na ustanowienie połączenia w przypadku Bluetooth Classic dochodzi nawet do 6 sekund, podczas gdy dla Bluetooth Smart jest on tysiąckroć mniejszy i w praktyce nie przekracza 6 ms. To jeden z kluczowych elementów decydujących o energooszczędności.
Nawet jeśli założyć identyczny pobór prądu, przesłanie małego pakietu danych zajmie Bluetoothowi Smart kilka milisekund, co przekłada się na średni pobór prądu rzędu jedynie 1 µA dla typowych zastosowań. Trzeba też wziąć pod uwagę, że krótki czas potrzebny na wzbudzenie interfejsu i przesłanie danych pozwala również znacząco zmniejszyć czas aktywnej pracy głównego mikrokontrolera urządzenia elektronicznego, tym bardziej ograniczając zużycie mocy przez całe urządzenie.
Dopiero przy większych ilościach danych klasyczny Bluetooth zyskuje przewagę dzięki znacznie większej przepustowości, która w praktyce umożliwia na transfer (w trybie EDR) do 2 Mb/s użytecznych danych, a w przypadku Bluetootha Smart będzie to jedynie około 100 kb/s.
Warto też zaznaczyć, że o ile Bluetooth Smart korzysta z wielu mechanizmów, takich jak np. adaptacyjne zmienianie częstotliwości (AFH - Adaptive Frequency Hopping) czy L2CAP (Logical Link Control and Adaptation Protocol), w standardowej postaci nie wspiera wygodnego w wielu zastosowaniach profilu portu szeregowego (SPP - Serial Port Profile).
Niemniej producenci modułów Bluetooth starają się ułatwić pracę konstruktorom i nierzadko samodzielnie, dodatkowo implementują wsparcie dla SPP. BT Smart nie zawiera też takich profili jak HSP (Headset), OBEX (Object Exchange), A2DP (Audio Distribution), VDP (Video Distribution) i FTP (File Transfer Protocol). Różnice pomiędzy protokołami Bluetooth Smart i Bluetooth Classic zostały przedstawione w tabeli 1.
Wymiana danych w Bluetooth Smart standardowo opiera się o profil GATT (General Attribute Profile), który pozwala w prosty sposób przekazywać pomiędzy urządzeniami wartości atrybutów (Characteristics) i ich opisy (Descriptors) oraz zestawy atrybutów (Services).
Aby uprościć żądania, typowym atrybutom, wraz z opisami i usługami, nadano stałe identyfikatory, które pozwalają w bardzo prosty sposób pobierać potrzebne dane z urządzeń Bluetooth Smart. Oczywiście, możliwe jest też skanowanie w poszukiwaniu innych dostępnych atrybutów, czy całych zestawów atrybutów, by poznać ich identyfikatory i następnie w łatwy sposób żądać podania ich wartości, czy opisów.
ZigBee
Kolejnym standardem, w którym ostatnio również zachodzą zmiany jest ZigBee. I tak jak Bluetooth zyskał na popularności kilka lat temu, tak ZigBee zaczyna zyskiwać teraz. Wynika to z faktu, że wychodzi poza świat automatyki przemysłowej, wkraczając najpierw do automatyki domowej i dobrze wpisuje się w trend IoT.
Głównymi zaletami ZigBee są: niewielki pobór mocy, obsługa sieci o topologii kraty oraz fakt, że standard ten przyjęło całkiem wiele ważnych firm na rynku. Na przestrzeni lat, oprócz kolejnych wersji protokołu ZigBee (ZigBee 2004, ZigBee 2006 i ZigBee Pro), powstały też liczne profile aplikacji, podobnie jak w przypadku Bluetootha.
Należą do nich m.in. ZigBee Home Automation, ZigBee Smart Energy, ZigBee Remote Control, ZigBee IP, ZigBee Retails Services, ZigBee Green Power czy ZigBee Light Link. Występują one w różnych, nie zawsze ze sobą kompatybilnych wersjach, a niektóre z nich bardzo znacząco się różnią. Przykładowo ZigBee Smart Energy 2.0 opiera się już o protokół IP, co ułatwia przesył danych pomiędzy siecią ZigBee a Internetem.
ZigBee znajduje zastosowanie aktualnie przede wszystkim w automatyce budynkowej, choć samo stowarzyszenie ZigBee Alliance, zajmujące się rozwojem ZigBee, dzieli tę automatykę na kilka działów. Oddzielny profil jest stosowany do komunikacji w ramach systemów oświetlenia, oddzielny do zarządzania i liczenia energii, a jeszcze inny do sterowania domowymi urządzeniami multimedialnymi. Ponieważ tworzy to pewien zamęt, ZigBee Alliance w ostatnio zdecydowało się zunifikować wszystkie te obszary zastosowań tworząc nową wersję standardu - ZigBee 3.0.
ZigBee 3.0
Nowy standard nie jest jeszcze gotowy, więc tym bardziej nie ma co szukać na rynku modułów zaprojektowanych specjalnie do ZigBee 3.0. Niemniej jest to standard wstecznie kompatybilny - korzysta z częstotliwości 2,4 GHz i protokołu ZigBee Pro do transmisji danych. Nowością w ZigBee 3.0 jest unifikacja dotychczasowych profili aplikacji w ramach samego standardu.
Zdefiniowano ponad 130 różnych urządzeń, począwszy od systemów automatyki domowej, oświetlenia, zarządzania energią, inteligentnych urządzeń, przez systemy bezpieczeństwa i czujniki, a kończąc na urządzeniach medycznych. Co ważne, dotychczasowe urządzenia, zgodne z najnowszymi profilami ZigBee będą poprawnie obsługiwane w sieciach ZigBee 3.0.
Teoretycznie, wprowadzenie ZigBee 3.0 ma pozwolić twórcom wszelkiego rodzaju aplikacji na szybkie korzystanie z funkcji urządzeń ZigBee innych producentów, gdyż w zależności od typu i funkcji pełnionej przez dany sprzęt, będzie on udostępniał konkretne, z góry zdefiniowane przez standard parametry. Wszystkie urządzenia, które będą pozwalać na włączanie czegoś, będą przyjmowały identyczną komendę, niezależnie od tego, czym sterują itd. Ma to zdecydowanie zwiększyć możliwości wzajemnej współpracy urządzeń, czyli ułatwić tworzenie aplikacji pasujących do trendu IoT.
6LoWPAN
Tworząc urządzenie, które producent chce reklamować, jako wpisujące się w trend Internet of Things, należy pamiętać, że nie wystarczy, by komunikowało się ono jedynie ze swoim otoczeniem, ale też że powinno być podłączone do globalnej sieci. Nie każdy ze standardów komunikacji bezprzewodowej nadaje się do tego tak samo dobrze. Kluczowe jest wsparcie dla protokołu IP, który obowiązuje w Internecie.
Co więcej, klasyczne IPv4 może nie wystarczyć - dostępna w nim pula adresowa jest zbyt mała, by pokryć zapotrzebowanie na wszystkie nowe urządzenia, jakie zaczynają powstawać w ostatnim czasie. Dlatego - jeśli chcieć rozwiązać problem przyszłościowo - konieczne jest sięgnięcie po IPv6. Szczęśliwie, istnieje standard, który został pomyślany właśnie po to, by umożliwić obsługę sieci opartych o IPv6, ale pracujących jako bezprzewodowe sieci personalne (WPAN).
6LoWPAN, bo o nim mowa, zyskuje ostatnio na popularności z powyższego względu i choć jest znacznie mniej rozpowszechniony niż ZigBee, został już zauważony przez producentów modułów M2M. Specyficzna nazwa standardu wywodzi się z angielskiego określenia IPv6 over Low-power Personal Area Networks. W przeciwieństwie do ZigBee i Bluetootha, 6LoWPAN koncentruje się na warstwie adaptującej pakiety IPv6 (a więc zarazem i IPv4) do przesyłu przez sieć WPAN małej mocy (zgodną ze standardami IEEE 802.15.4).
Jej przygotowanie oznacza nie tylko pokonanie problemu związane z innymi minimalnymi wielkościami maksymalnych ramek (MTU), ale też rozwiązanie kwestii routingu w sieci WPAN i pomiędzy siecią WPAN a innymi sieciami IP, wykrywanie urządzeń itp. Przykładowo IPv6 wymaga by MTU było nie mniejsze niż 1280 bajtów, podczas gdy w IEEE 802.15.4 standardowa wielkość pakietu wynosi 127 oktetów. Natomiast adresy w IPv6 są 128-bitowe, podczas gdy IEEE 802.15.4 pozwala na używanie rozszerzonych adresów 64-bitowych lub skróconych, unikalnych w ramach jednej sieci WPAN, 16-bitowych.
Naturalnie w przypadku innych standardów IEEE 802.15.4, w których następuje konieczność transmisji pakietów protokołu IP (np. ZigBee IP) również konieczne było rozwiązanie wielu identycznych problemów, ale fakt, że 6LoWPAN zostało zaprojektowane właśnie z myślą o ich pokonaniu, udało się to lepiej zrealizować. W efekcie, 6LoWPAN cechuje się mniejszą ilością nadmiarowych danych niż ZigBee, w przypadku transmisji pakietów IP. Co więcej, znacznie mniejsze są też wymagania odnośnie ilości pamięci na kod stosu realizujący taką transmisję. W przypadku ZigBee pełny stos zajmuje około 90 kB, podczas gdy w 6LoWPAN wszystko mieści się w 30 kB.
Małe wymagania sprzętowe 6LoWPAN spowodowały, że standardem zainteresowało się kilkadziesiąt firm, które na czele z Google, Samsungiem, ARMem, Freescale i Silicon Labs, rozpoczęło prace nad protokołem Thread - bardziej rozbudowaną wersją 6LoWPAN. Thread opisuje wyższe warstwy sieciowe; obejmuje routing i transmisję UDP, ale w przeciwieństwie do ZigBee, nie definiuje niczego w warstwie aplikacji.
Ma umożliwić wykonywanie prostych, bezpiecznych i niezawodnych instalacji domowych sieci bezprzewodowych, działających w topologii kraty. Typowe zastosowania mają objąć sterowanie urządzeniami domowymi, kontrolę dostępu, regulację temperatury i wilgotności w budynkach, zarządzanie energią, oświetleniem oraz bezpieczeństwem.
Dane pozyskiwane przez elementy sieci Thread będą mogły być bezpośrednio przekazywane do sieci Wi-Fi, za pomocą odpowiednich, ale prostych w budowie routerów. Powstające aplikacje mają koncentrować się na wykorzystaniu chmur obliczeniowych do składowania danych oraz urządzeń przenośnych do sterowania instalacjami WPAN. Prace nad protokołem Thread mają być zakończone w tym roku.
MiWi
Kolejną alternatywą dla ZigBee jest opracowany przez firmę Microchip, własnościowy standard MiWi. On także pracuje na sieciach WPAN małej mocy, zgodnie z wytycznymi IEEE 802.15.4. Powstał na potrzeby prostych aplikacji, w których dostępna pamięć programu jest bardzo ograniczona. Rozmiar stosu MiWi wynosi jedynie od 3 kB do 17 kB, co czyni go jeszcze mniejszym niż 6LoWPAN.
Oczywiście nie obejmuje on obsługi pakietów IP, ale producent wyszedł z założenia, że opracowany standard będzie stosowany w specyficznych sytuacjach, tam gdzie użycie alternatywnych rozwiązań byłoby niemożliwe lub zbyt kosztowne. Co więcej powstawały dwie wersje standardu: MiWi P2P, który obsługuje proste sieci peer-to-peer o topologii gwiazdy (najmniejszy stos) i MiWi PRO, obsługujący topologię kraty do 8000 węzłów.
Nie należy się jednak spodziewać, że MiWi, choć w niektórych przypadkach na pewno będzie wypadał atrakcyjnie w porównaniu do rozwiązań alternatywnych, bardzo się spopularyzuje. Wynika to z faktu, że stos MiWi, choć jest darmowy i jest dostępny (w wersjach na procesory 8-bitowe, 16-bitowe i 32-bitowe) do pobrania ze stron internetowych Microchipa, w ramach bibliotek Microchip Application Libraries, cechuje się bardzo specyficzną licencją. Zezwala ona na użytek stosu tylko i wyłącznie do zastosowania w mikrokontrolerach Microchip PIC.
Marcin Karbowniczek, EP