Technologie bezprzewodowej komunikacji M2M w pasmach nielicencjonowanych ZigBee
Rys. 2. Sieć ZigBee w topologii peer-to-peer (mesh)
Rys. A. Zankiewicz
ZigBee stanowi specyfikację zestawu protokołów komunikacyjnych przeznaczonych do realizacji bezprzewodowych sieci z niewielką szybkością transmisji, przeznaczonych głównie do przesyłania informacji pochodzących z czujników oraz innych urządzeń wejściowych. Przy tworzeniu standardów ZigBee zwracano dużą uwagę na niski koszt urządzeń oraz jak najmniejszy pobór mocy.
Zobacz także
AUTOMATION TECHNOLOGY Sp. z o.o. Automation Technology – nowy gracz na rynku
Automation Technology prężnie działa w obszarach energetyki, automatyki przemysłowej oraz robotyki.
Automation Technology prężnie działa w obszarach energetyki, automatyki przemysłowej oraz robotyki.
mgr inż. Dominik Trojnicz, dr hab. inż. Marcin Habrych, mgr inż. Justyna Herlender Wymagania stawiane automatyce zabezpieczeniowej i regulacyjnej inwerterów typu A
Obecny bardzo gwałtowny rozwój fotowoltaiki – nie tylko w Polsce, ale na całym terenie Unii Europejskiej (UE) – niesie za sobą dużo zalet, takich jak pozyskiwanie energii z praktycznie nieskończonej energii...
Obecny bardzo gwałtowny rozwój fotowoltaiki – nie tylko w Polsce, ale na całym terenie Unii Europejskiej (UE) – niesie za sobą dużo zalet, takich jak pozyskiwanie energii z praktycznie nieskończonej energii słonecznej oraz brak emisji szkodliwych gazów, co przyczynia się do redukcji emisji gazów cieplarnianych i zmniejszenia negatywnego wpływu na środowisko. Przyłączenie dużej liczby odnawialnych źródeł energii (OZE) nie pozostaje jednak bez wpływu na sieci elektroenergetyczne.
dr hab. inż. Marcin Habrych, mgr inż. Karol Świerczyński, dr inż. Bartosz Brusiłowicz Wymagania techniczne stawiane generacji rozproszonej w aspekcie elektroenergetycznej automatyki zabezpieczeniowej (część 2.)
Odpowiedzią na wymagania stawiane przez Kodeks Sieciowy jest opracowanie przez Polskie Towarzystwo Przesyłu i Rozdziału Energii Elektrycznej (PTPiREE) na zlecenie Polskich Sieci Elektroenergetycznych (PSE)...
Odpowiedzią na wymagania stawiane przez Kodeks Sieciowy jest opracowanie przez Polskie Towarzystwo Przesyłu i Rozdziału Energii Elektrycznej (PTPiREE) na zlecenie Polskich Sieci Elektroenergetycznych (PSE) „Wymogów ogólnego stosowania wynikających z Rozporządzenia Komisji (UE) 2016/631 z dnia 14 kwietnia 2016 r., ustanawiającego Kodeks Sieci dotyczący wymogów w zakresie przyłączenia jednostek wytwórczych do sieci (NC RfG)” [4], opublikowanych w roku 2018.
StreszczenieArtykuł przedstawia zasady pracy sieci LR-WPAN (Low Rate Wireless Personal Area Network) bazujących na specyfikacji ZigBee. Interfejsy ZigBee charakteryzują się niskim kosztem oraz niewielkim poborem mocy, dzięki czemu są dobrze dostosowane do aplikacji w zminiaturyzowanych przenośnych urządzeniach. W artykule omówione zostały logiczna architektura sieci ZigBee, funkcje realizowane w poszczególnych warstwach stosu ZigBee oraz metody zabezpieczenia transmisji. Przedstawione zostały też obszary typowych zastosowań takich sieci oraz specjalne warianty technologii ZigBee.AbstractWireless M2M data communications technologies operating in the unlicensed frequency bands. ZigBeeThis paper describes the principles of operation of Low Rate Wireless Personal Area Network (LR-WPAN) based on the ZigBee specification. ZigBee interfaces are designed with low cost and low power considerations and are mainly targeted at the battery powered mobile devices. The logical ZigBee architecture, functions provided by particular layers in ZigBee protocol stacks and transmission security are discussed. The article also includes the concise review of typical ZigBee applications and features included in the newest versions of ZigBee specification. |
Jest to więc technologia natywnie zorientowana na komunikację typu M2M oraz (zwłaszcza w wariancie IP) na systemy IoT (Internet of Things). Rozwojem i promocją technologii ZigBee zajmuje się stowarzyszenie ZigBee Alliance zrzeszające ponad 400 firm zaangażowanych w tworzenie produktów wykorzystujących technologię ZigBee [1]. Nazwa ZigBee nawiązuje do zygzakowatego ruchu pszczół wykonywanego w trakcie tzw. tańca wywijanego (waggle dance) wykonywanego w celu powiadomienia innych pszczół w ulu o lokalizacji znalezionego źródła pożywienia [2].
W warstwach fizycznej oraz MAC ZigBee korzysta ze standardu IEEE 802.15.4, natomiast wyższe warstwy zawierają protokoły zdefiniowane przez ZigBee Alliance. W europejskich wariantach technologii ZigBee transmisja radiowa realizowana jest w nielicencjonowanych pasmach 2,4 GHz oraz 868 MHz, a maksymalna szybkość przesyłu danych wynosi 250 kb/s.
Obecnie istnieją trzy grupy specyfikacji ZigBee: podstawowa (ZigBee), bazująca na protokole IPv6 (ZigBee IP), oraz specjalna specyfikacja przeznaczona do aplikacji zdalnego sterowania w urządzeniach konsumenckich (ZigBee RF4CE). Pierwsza specyfikacja technologii ZigBee została opublikowana w 2004 roku i bazuje na wydaniu standardu IEEE 802.15.4 z roku 2003. We wrześniu 2006 roku opublikowano specyfikację ZigBee 2006 wykorzystującą wydanie 2006 standardu IEEE 802.15.4. W roku 2007 przedstawiona została specyfikacja ZigBee PRO zawierająca m.in. ulepszenia w routingu pozwalające na zastosowanie jej w dużych sieciach (zawierających tysiące urządzeń). Obecny rozwój podstawowej specyfikacji ZigBee obejmuje przede wszystkim dodawanie kolejnych profili aplikacyjnych, których zwięzły przegląd zamieszczony został w dalszej części artykułu. Specyfikacje ZigBee do celów niekomercyjnych dostępne są bezpłatnie w witrynie ZigBee Alliance [1].
Logiczna architektura sieci ZigBee
W sieciach ZigBee wyróżnia się dwa podstawowe typy urządzeń: urządzenia pełnofunkcyjne (FFD – Full-Function Device) oraz niepełnofunkcyjne (RFD – Reduced Function Device). Urządzenia FFD są w stanie wykonywać wszystkie funkcje i role opisane w standardach IEEE 802.15.4 oraz ZigBee, natomiast urządzenia RFD mają ograniczone możliwości i są w stanie komunikować się tylko z urządzeniami FFD.
Urządzenia pełnofunkcyjne w sieciach ZigBee mogą przyjmować jedną z trzech ról: koordynator (ZC – ZigBee Coordinator), router (ZR – ZigBee Router) oraz urządzenie końcowe (ZED – ZigBee End Device). Koordynator (ZC) jest urządzeniem definiującym daną sieć ZigBee, zarządza informacjami dotyczącymi organizacji tej sieci oraz może odgrywać rolę mostu do innych sieci ZigBee. Router (ZR), oprócz wykonywania funkcji aplikacyjnej, ma możliwość przekazywania odebranych danych do kolejnych urządzeń, co pozwala na budowę sieci ZigBee o fizycznym rozmiarze przekraczającym zasięg pojedynczego łącza radiowego. Urządzenie końcowe (ZED) ma możliwość komunikacji jedynie z węzłem nadrzędnym (którym może być router lub koordynator). W okresach braku komunikacji ZED może przechodzić do trybu uśpienia, co pozwala na znaczne wydłużenie czasu pracy urządzenia zasilanego bateryjnie.
Sieci ZigBee mogą pracować w dwóch podstawowych topologiach określonych w standardzie IEEE 802.15.4: gwiazda (star) oraz równorzędna (P2P, peer-to-peer). W topologii gwiazdy (rys. 1.) każde urządzenie (zarówno typu FFD, jak i RFD) może komunikować się tylko z koordynatorem sieci. W przypadku topologii P2P (rys. 2.) urządzenia mogą komunikować się bezpośrednio z innymi urządzeniami znajdującymi się w zasięgu radiowym. Poprzez nałożenie ograniczeń na komunikację pomiędzy określonymi urządzeniami, sieć w topologii P2P może przyjmować formy topologii siatkowej (mesh) oraz drzewiastej (tree). W topologii siatkowej nie są nakładane żadne ograniczenia na komunikację, natomiast w topologii drzewiastej (rys. 3.) urządzenia końcowe (ZED) mogą komunikować się tylko z urządzeniami pełniącymi funkcje routerów (ZR), natomiast routery tworzą tylko jedno połączenie do urządzenia nadrzędnego (którym może być inny router lub koordynator).
Niezależnie od topologii, sieć ZigBee jest zawsze inicjowana przez koordynatora, który przypisuje sieci oraz poszczególnym urządzeniom unikalne identyfikatory (o długości 16 lub 64 bitów). W całej sieci istnieje jeden koordynator, który może zostać wybrany dynamicznie (jako pierwsze urządzenie FFD, które zacznie komunikować się jako koordynator) lub statycznie (poprzez odpowiednią konfigurację). Ponieważ koordynator w sieci ZigBee zazwyczaj komunikuje się bardziej intensywnie niż urządzenia końcowe (ZED), zwykle unika się konfigurowania urządzeń zasilanych bateryjnie jako koordynatorów. Najmniejsza typowa sieć ZigBee składa się z dwóch urządzeń: koordynatora oraz stacji końcowej. Szczególnym przypadkiem zastosowania technologii ZigBee jest standard wyspecyfikowany przez ZigBee Alliance jako ZigBee Light Link. Jest to rozwiązanie pracujące wyjątkowo bez koordynatora i przeznaczone do zdalnego sterowania oświetleniem (w szczególności typu LED).
Stos protokołów w sieciach ZigBee
Na rysunku 4. przedstawiona została organizacja stosu protokołów w technologii ZigBee. Stos ten bazuje na modelu OSI [3], przy czym implementowane są jedynie warstwy niezbędne do realizacji bezprzewodowej sieci o niskiej szybkości transmisji i minimalnym poborze mocy przez układy nadawczo-odbiorcze.
Warstwy fizyczna (PHY) oraz dostępu do łącza (MAC) oparte są na standardzie IEEE 802.15.4. Specyfikacje opracowane przez ZigBee Alliance obejmują elementy zawarte powyżej dwóch najniższych warstw. W szczególności są to warstwa sieciowa, warstwa aplikacyjna oraz usługi zabezpieczeń komunikacji. W dalszej części artykułu w zwięzły sposób przedstawiono funkcje spełniane przez poszczególne warstwy oraz zasady ich realizacji.
Warstwa fizyczna (PHY)
Warstwa fizyczna odpowiedzialna jest za sterowanie układem nadawczo-odbiorczym (transceiverem), obejmujące aktywację układów radiowych, wybór kanałów częstotliwościowych, wykrywanie zajętości medium. PHY określa też interfejs do warstwy MAC, a także minimalne wymagania dotyczące transceivera, takie jak czułość odbiornika i moc wyjściowa nadajnika.
Jak już wspomniano we wstępie, warstwa fizyczna ZigBee korzysta ze standardu IEEE 802.15.4 [4]. Do transmisji wykorzystywane są pasma 868 MHz (Europa), 915 MHz (Ameryka Północna) oraz 2,4 GHz (ogólnoświatowo). W zależności od wykorzystywanego sposobu modulacji kanały mogą należeć do różnych grup, określanych jako tzw. strony (channel pages). W tabeli 1. przedstawiony został zastosowany w ZigBee podział kanałów częstotliwościowych.
Dany kanał transmisyjny określany jest poprzez numer strony oraz numer kanału. Numery stron wprowadzone zostały w standardzie IEEE 802.15.4-2006 wraz z dopuszczeniem różnych rodzajów modulacji w tych samych zakresach częstotliwościowych. Standard IEEE 802.15.4-2003 korzystał tylko z kanałów strony zerowej i nie stosowano w nim podziału na strony.
Na rysunku 5. przedstawiony został format jednostki danych używanej w warstwie PHY i określanej jako PPDU (PHY Protocol Data Unit).
PPDU składa się z nagłówka synchronizacji SHR (Synchronization Header), nagłówka PHY (PHR) oraz pola danych. SHR zawiera sekwencję rozbiegową (preambułę) pozwalającą na synchronizację odbiornika z nadajnikiem przed transmisją właściwych danych. Rodzaj danych zawartych w SHR oraz jej długość zależą od trybu transmisji [4]. Pole PHR zawiera 7-bitową informację o długości pola danych, która może wynosić od 0 do 127 bajtów. Zgodnie z dokumentacją [4] PPDU z danymi aplikacyjnymi powinno używać pola danych o rozmiarze z zakresu od 9 do 127 bajtów.
W sieciach ZigBee transmisja radiowa realizowana jest poprzez rozproszenie widma sygnału pasma podstawowego, a następnie odpowiednią modulację nośnej w wybranym kanale częstotliwościowym. Stosowane są modulacje BPSK, O-QPSK oraz ASK. W modulacjach BPSK oraz O-QPSK stosowane jest bezpośrednie rozproszenie widma odpowiednią sekwencją pseudolosową (DSSS – Direct Sequence Spread Spectrum). Przy modulacji ASK wykorzystuje się metodę równoległego rozpraszania widma za pomocą wielu sekwencji pseudolosowych (PSSS – Parallel Sequence Spread Spectrum).
W przypadku pasma 2,4 GHz przesyłany strumień bitów dzielony jest na 4-bitowe symbole, które następnie mapowane są na quasi-ortogonalne sekwencje 32-bitowe (elementy sekwencji nazywane są chipami). Po rozproszeniu szybkość zmian sygnału jest więc 8-krotnie większa. W kolejnym kroku sekwencja chipów moduluje sygnał nośnej poprzez kluczowanie jego fazy. Zastosowana w tym przypadku modulacja O-QPSK (Offset Quadrature Phase Shift Keying) ogranicza kolejne zmiany fazy sygnału nośnej do 90° (przy klasycznym QPSK faza może zmieniać się maksymalnie o 180°), dzięki czemu sygnał ma mniejsze zmiany w amplitudzie, co ułatwia konstrukcję końcowego wzmacniacza mocy w nadajniku.
W pasmach 868/915 MHz stosowane są modulacje BPSK (obligatoryjnie) oraz ASK i O-QPSK (opcjonalnie). W przypadku modulacji BPSK (Binary Phase Shift Keying) każdy bit mapowany jest osobno na pseudolosową sekwencję 15-bitową (chipy). W trybach z modulacją ASK (Amplitude Shift Keying) stosuje się równoległe rozpraszanie widma (PSSS), w którym przesyłane dane dzieli się na osobne strumienie rozpraszane niezależnie sekwencjami wzajemnie quasi-ortogonalnymi, a strumień modulujący uzyskany jest poprzez zsumowanie poszczególnych strumieni rozproszonych. W paśmie 868 MHz stosuje się 20 sekwencji rozpraszających (czyli jeden symbol wynikowy obejmuje 20 bitów informacji), a w paśmie 915 MHz używanych jest 5 sekwencji rozpraszających (w tym przypadku jeden symbol wynikowy obejmuje 5 bitów danych). Modulacja ASK nie jest używana do przesyłu nagłówka synchronizacji (SHR), który jest w tym przypadku transmitowany z modulacją BPSK. Dla modulacji O‑QPSK rozpraszanie w pasmach 868/915 MHz wykonywane jest tak samo jak w paśmie 2,4 GHz, ale stosowane są sekwencje pseudolosowe o długości 16 elementów.
W tabeli 2. przedstawiono szybkości transmisji dla poszczególnych pasm częstotliwościowych oraz rodzajów modulacji.
Jak widać, w pierwszej wersji specyfikacji ZigBee (kanały ze strony 0) maksymalna prędkość transmisji (250 kb/s) dostępna była tylko w paśmie 2,4 GHz. W prowadzenie w specyfikacji ZigBee 2006 kanałów ze stron 1 i 2 udostępniło tę prędkość także w pasmach 868/915 MHz.
Warstwa PHY odpowiedzialna jest też za sprawdzanie zajętości medium stanowiące element procedury uzyskiwania dostępu do medium wykonywanej w warstwie MAC. Sprawdzenie to stanowi jedną z usług zarządzania w warstwie PHY i jest określane jako CCA (Clear Channel Assesment). Dostępne są dwie metody testowania zajętości medium: detekcja energii (ED – Energy Detection) oraz wykrywanie nośnej (CS – Carrier Sense). Detekcja energii polega na wyznaczeniu energii sygnału obecnego w określonym kanale częstotliwościowym bez próby detekcji i określenia rodzaju tego sygnału. Wyznaczana wartość jest energią uśrednioną w okresie ośmiu symboli. Metoda wykrywania nośnej dokonuje sprawdzenia, czy sygnał obecny w medium jest zgodny pod względem rodzaju rozpraszania widma i modulacji z parametrami aktualnie wykorzystywanymi przez dane urządzenie. Procedura CCA może być wykonywana w jednym z trzech trybów wykorzystujących różne kombinacje metod ED oraz CS.
Zgodnie ze specyfikacją [4] nadajnik ZigBee powinien być w stanie dostarczyć moc wyjściową na poziomie co najmniej –3 dBm (około 0,5 mW). Górna wartość mocy nadajnika nie jest ograniczona specyfikacją standardu, ale oczywiście obowiązują tu wszystkie regulacje dotyczące korzystania z nielicencjonowanych pasm częstotliwości.
Warstwa dostępu do łącza (MAC)
W technologii ZigBee warstwa MAC, podobnie jak PHY, określona jest standardem IEEE 802.15.4. Główne funkcje warstwy MAC to zapewnienie interfejsu do warstwy wyższej (warstwy sieci), logiczna obsługa transmisji na łączu pomiędzy dwoma urządzeniami (obejmująca m.in. format jednostki danych oraz zasady adresowania stacji), a także zarządzanie dostępem do medium transmisyjnego.
Standard IEEE 802.15.4 definiuje cztery struktury jednostek danych warstwy MAC (MPDU – MAC Protocol Data Unit). Są to: ramka sygnalizacyjna (beacon), ramka danych, ramka potwierdzenia oraz ramka komend warstwy MAC. Na rysunku 6. przedstawiono ogólny format ramki MAC.
Ramka MAC składa się z trzech podstawowych części: nagłówka (MHR – MAC Header), pola danych oraz końcówki (MFR – MAC Footer). W nagłówku ramki zawarte są pole kontrolne, pole numeru sekwencyjnego, pola adresowe oraz opcjonalny pomocniczy nagłówek zabezpieczeń. Pole kontrolne (Frame Control) zawiera informacje m.in. o rodzaju ramki, aktywacji zabezpieczeń, żądaniu potwierdzenia oraz długości adresów zawartych w ramce (adresy 16-, 64-bitowe lub brak adresów). Numer sekwencyjny identyfikuje daną ramkę i służy m.in. do skojarzenia otrzymanych ramek potwierdzeń z ramkami danych. Pola adresowe zawierają źródłowe i docelowe adresy stacji oraz identyfikatory sieci PAN. W sieciach ZigBee stacje identyfikowane są poprzez 16- lub 64-bitowe adresy. Identyfikatory sieci PAN są 16-bitowe i pozwalają na komunikację pomiędzy niezależnymi sieciami. Pomocniczy nagłówek zabezpieczeń określa specyfikację parametrów związanych z zabezpieczaniem transmisji. Końcówka ramki zawiera 2-bajtową sumę kontrolną FCS (Frame Check Sequence) wyznaczaną jako kod CRC-16.
Ze względu na organizację kontroli dostępu do medium, sieci IEEE 802.15.4 mogą pracować w trybie z ramkami sygnalizacyjnymi (beacon-enabled) lub w trybie bez ramek sygnalizacyjnych (nonbeacon-enabled). W trybie bez ramek sygnalizacyjnych dostęp do medium możliwy jest tylko w ramach metody określanej jako contention based i polega na zastosowaniu procedury CSMA/CA (Carrier Sense Multiple Access with Collission Avoidance). W takim przypadku stacja, która ma do wysłania jakieś dane, odczekuje losowy przedział czasu i wykonuje procedurę CCA (usługa warstwy PHY) w celu sprawdzenia, czy medium jest wolne. W przypadku, jeżeli medium jest zajęte, stacja ponownie odczekuje losowy odstęp czasu i ponawia sprawdzenie. Po każdej próbie zwiększany jest przedział, z którego losowany jest czas oczekiwania, aż do osiągnięcia czasu maksymalnego lub wyczerpania dopuszczalnej liczby prób dostępu dla pojedynczej transmisji. Jeżeli procedura CCA wykaże brak zajętości medium, stacja zaczyna transmisję. W trybie z ramkami sygnalizacyjnymi kontroler rozsyła cyklicznie specjalne ramki sygnalizacyjne (beacon) synchronizujące zegary w stacjach oraz określające początek i koniec tzw. superramki (superframe), której strukturę przedstawiono na rysunku 7.
W ogólnym przypadku superramka definiuje dwa okresy czasowe: okres aktywny, zawierający 16 szczelin czasowych (ramka beacon zawarta jest w pierwszej szczelinie) oraz okres nieaktywny zaczynający się po 16. szczelinie i kończący kolejną ramką typu beacon. Okres aktywny obejmuje część CAP (Contention Access Period) oraz CFP (Contention-Free Period). W szczelinach czasowych znajdujących się w części CAP stacje uzyskują dostęp do medium poprzez procedurę CSMA/CA (w tym przypadku do uzyskania dostępu wymagane są dwa kolejne sprawdzenia zajętości medium). W szczelinach czasowych obszaru CFP może znajdować się do 7 grup szczelin tworzących tzw. szczeliny gwarantowane (GTS – Guaranteed Time Slot). Są to szczeliny przydzielane dla określonej stacji na jej żądanie i stacja ta w okresie GTS może wysyłać dane bez korzystania z mechanizmu CSMA/CA. Ponieważ CSMA/CA jest metodą niedeterministyczną, w obszarze CAP stacja nie ma gwarancji uzyskania dostępu do medium. Dzięki obszarowi CFP możliwe jest wykorzystanie technologii ZigBee w aplikacjach wymagających określonego czasu odpowiedzi. Superramka może też opcjonalnie zawierać okres nieaktywny podczas, którego koordynator wyłącza swój układ nadawczy, co pozwala na zaoszczędzenie energii.
Ramki potwierdzeń wysyłane są przez stacje po odebraniu danych tylko wtedy, gdy stacja wysyłająca żąda potwierdzenia.
Ramki komend warstwy MAC służą do przesyłania komend związanych z działaniem sieci. Są to m.in. komendy żądania wykonania skojarzenia stacji z siecią, likwidacji istniejącego skojarzenia, żądanie wysłania danych zabuforowanych przez koordynatora oraz żądanie przydzielenia i zwolnienia szczelin GTS.
Warstwa sieciowa (NWK)
Warstwa sieciowa realizuje routing pakietów poprzez urządzenia pośredniczące (routery) oraz zapewnia funkcje związane z logicznym formowaniem sieci ZigBee. Warstwa sieciowa udostępnia dla warstwy aplikacji logiczny interfejs obejmujący usługi danych oraz usługi zarządzania.
Usługi danych realizowane są przez jednostkę NLDE (Network Layer Data Entity) i obejmują:
- generowanie jednostek danych warstwy sieciowej (NPDU – Network Protocol Data Unit);
- przekazywanie jednostek danych do następnego urządzenia zgodnie z określoną topologią routingu;
- stosowanie wybranych metod zabezpieczeń.
Usługi zarządzania świadczone są przez jednostkę NLME (Network Layer Management Entity) i obejmują:
- konfigurowanie nowych urządzeń polegające na rozpoczęciu operacji jako kontroler lub dołączeniu do istniejącej sieci;
- utworzenie nowej sieci;
- ustanowienie danego urządzenia jako routera (ZR);
- dołączanie i odłączanie stacji od sieci;
- przypisywanie adresów urządzeniom dołączanym do sieci (funkcja realizowana przez koordynatora);
- wykrywanie sąsiednich urządzeń;
- wyznaczanie i wybór tras do poszczególnych urządzeń dla różnych rodzajów komunikacji (rozgłoszeniowa, grupowa, jednostkowa).
Na rysunku 8. przedstawiono strukturę jednostki danych warstwy sieciowej (NPDU). W dokumentacji ZigBee jest ona określana jako ramka NWK (NWK frame) [5].
Pole kontrolne zawiera informacje m.in. o rodzaju ramki (komendy NWK lub dane), trybie transmisji (unicast/broadcast, multicast), aktywacji funkcji zabezpieczających, stosowaniu routingu źródłowego oraz stosowaniu 64-bitowych adresów warstwy MAC. Pola adresów docelowego i źródłowego zawierają 16-bitowe adresy sieciowe stacji odbierającej i wysyłającej dane. Adres docelowy może w szczególności być też adresem rozgłoszeniowym (broadcast address, wartość 0xffff) lub grupowym (multicast). Sieciowy adres urządzenia powinien być taki sam jak krótki (16-bitowy) adres warstwy MAC tego urządzenia. Pole o nazwie Radius zawiera 8-bitową wartość zmniejszaną o jeden przez każde urządzenie przekazujące ramkę NWK (funkcja analogiczna do pola TTL w protokole IP). Po wyzerowaniu wartości Radius ramka nie jest dalej przekazywana. Pole numeru sekwencyjnego zawiera identyfikator danej ramki NWK i jego zawartość powinna być zwiększana o 1 w każdej wysyłanej ramce. W połączeniu z adresem źródłowym numer sekwencyjny może być użyty jako unikalny identyfikator ramki NWK (w ramach ograniczeń wynikających z 8-bitowej długości tego pola). Pola adresów IEEE (jeżeli w polu kontrolnym oznaczono ich stosowanie) zawierają 64-bitowe adresy warstwy MAC, które są wiązane z 16-bitowymi adresami NWK w tabeli nwkAddressMap (odpowiednik tabeli ARP w sieciach Ehernet/IP). Pole kontrolne Multicast zawiera informacje związane z organizacją transmisji grupowej (m.in. obszar zasięgu transmisji oraz dopuszczenie wysyłania przez stacje niebędące członkami grupy). Podramka routingu źródłowego zawiera opis trasy ramki NWK definiowanej przez nadawcę (tryb routingu źródłowego).
W sieciach ZigBee ustalaniem tras routingu zajmują się koordynator (ZC) i urządzenia pełniące funkcje routerów (ZR). Urządzenia końcowe (ZED) nie biorą udziału w tym procesie i korzystają z już wyznaczonych tras. Dla każdej ścieżki mogącej w danej topologii prowadzić do określonej stacji wyznaczany jest jej koszt będący sumą kosztów wszystkich łączy na tej ścieżce. Koszt pojedynczego łącza wyznacza się z zależności:
czyli wybierana jest najmniejsza wartość z dwuelementowego zbioru zawierającego liczbę 7 oraz zaokrągloną do liczby całkowitej (funkcja round) odwrotność 4 potęgi wartości Pl oznaczającej prawdopodobieństwo poprawnego dostarczenia ramki na rozpatrywanym łączu. Wynika z tego, że koszt łącza jest wartością całkowitą z przedziału od 0 do 7. Standard ZigBee nie określa jednoznacznie metody wyznaczania Pl, ale mówi, że początkowa wartość powinna bazować na średniej wartości wskaźnika jakości łącza (LQI – Link Quality Indicator) wyznaczanego w warstwie fizycznej na postawie energii sygnału oraz stosunku sygnału do szumu. Ścieżka z najmniejszym kosztem jest umieszczana w tablicy routingu ZC lub ZR i stanowi trasę używaną przez sieć do przekazywania ramek adresowanych do danej stacji.
Warstwa aplikacji (APL)
Warstwa aplikacji jest najwyższą warstwą w stosie ZigBee i składa się z trzech sekcji: podwarstwy obsługi aplikacji (APS – Application Support Sublayer), obiektów urządzeń ZigBee (ZDO – ZigBee Device Object) oraz zbioru obiektów aplikacyjnych (Applicaction Framework). Struktura warstwy APL została przedstawiona na rysunku 9.
Podwarstwa obsługi aplikacji (APS) zapewnia interfejs do warstwy sieci (NWK) obejmujący usługi danych i zarządzania. Usługi danych zapewniają funkcję transmisji informacji pomiędzy aplikacjami działającymi w urządzeniach przyłączonych do sieci ZigBee. Usługi zarządzania dostarczają dla obiektów aplikacyjnych i obiektów ZDO funkcje zabezpieczeń oraz funkcję nawiązywania logicznych połączeń pomiędzy urządzeniami (określaną w specyfikacji ZigBee jako device binding).
Obiekty urządzeń ZigBee (ZDO) tworzą profil urządzeń ZigBee (ZDP – ZigBee Device Profile) wykorzystujący funkcje (tzw. prymitywy) dostarczane przez warstwy NWK i APS do implementacji m.in. usługi wykrywania urządzeń i udostępnianych w tych urządzeniach usług (Device and Service Discovery), aktywacji zabezpieczeń (Security Manager), implementacji logicznych funkcjonalności urządzeń końcowych, routerów oraz koordynatorów (Network Manager), zarządzania połączeniami logicznymi (Binding Manager).
Zbiór obiektów aplikacyjnych stanowi profil (lub profile) realizujący określone funkcjonalności użytkowe (np. profil automatyki budynkowej). Korzystanie z określonych profili zapewnia możliwość współpracy pomiędzy urządzeniami opracowanymi przez różnych dostawców. Profile aplikacyjne mają swoje unikalne 16-bitowe identyfikatory przydzielane przez ZigBee Alliance. Zarejestrowane przez ZigBee Alliance profile dzielą się na publiczne oraz przynależne do wytwórców (manufacturer-specific). Pojedyncze urządzenie może wspierać wiele profili, które w ramach urządzeń przypisywane są do tzw. punktów końcowych (endpoints). Pojedynczy fizyczny układ radiowy ZigBee może obsługiwać do 240 punktów końcowych, które mogą mieć przypisane profile zarówno publiczne, jak i własnościowe.
Publiczne profile udostępniane przez ZigBee Alliance obejmują m.in. profil zdalnego sterowania, profil automatyki budynkowej, profil dla urządzeń w inteligentnych sieciach energetycznych (Smart Energy Profile), profil automatyki domowej, profil urządzeń medycznych, profil urządzeń wejściowych (m.in. klawiatury, myszy, panele dotykowe), profil sterowania oświetleniem, profil usług handlowych oraz profil usług telekomunikacyjnych.
Usługi zabezpieczeń
W sieciach bezprzewodowych zagadnienia bezpieczeństwa są szczególnie istotne ze względu na możliwość praktycznie niezauważonego fizycznego dostępu do sieci. W specyfikacji ZigBee uwzględnione zostały usługi zabezpieczeń obejmujące uwierzytelnianie urządzeń i danych oraz szyfrowanie przesyłanych informacji. Są one realizowane jako osobne bloki współpracujące z warstwami sieci i aplikacji (rys. 4.).
W sieciach ZigBee do szyfrowania danych używany jest algorytm AES z kluczem 128-bitowym. Szyfrowanie ruchu pomiędzy pojedynczymi stacjami realizowane jest przy użyciu klucza łącza (link key), a do szyfrowania ruchu rozgłoszeniowego stosuje się klucz sieciowy (network key). Za dystrybucję kluczy odpowiedzialne jest wyznaczone urządzenie ZigBee implementujące tzw. centrum zaufania (trust center). Dane urządzenie może uzyskać klucze szyfrowania poprzez preinstalację, dostarczenie z centrum zaufania lub ustanowienie nowego klucza (tylko dla klucza łącza). W przypadku preinstalacji klucze są konfigurowane w urządzeniach przez wytwórcę lub użytkownika. Dostarczenie klucza do urządzenia z centrum zaufania odbywa się na żądanie wysłane z tego urządzenia (komenda podwarstwy APS). Ustanowienie klucza realizowane jest przez protokół SKKE (Symmetric-Key Key Establishment), który wykorzystuje algorytmy kryptograficzne do wygenerowania tajnego klucza na dwóch urządzeniach poprzez jawną wymianę pewnych danych pomiędzy tymi urządzeniami i wykonanie na tych danych określonych obliczeń. SKKE do pracy wykorzystuje główny klucz (master key), który powinien być dostępny w każdym urządzeniu poprzez jego preinstalację lub dostarczenie z centrum zaufania.
Oprócz usług szyfrowania danych w ZigBee dostępne są też funkcje uwierzytelniania (authentication) urządzeń i danych. Uwierzytelnianie urządzeń ma na celu potwierdzenie autentyczności urządzeń przyłączanych do sieci. Uwierzytelnianie danych zapewnia natomiast możliwość weryfikacji przez stację, że odebrane dane nie zostały podmienione lub w inny sposób zmodyfikowane.
Uwierzytelnienie urządzenia polega na skutecznym przekazaniu mu klucza sieci i może odbywać się w trybie standardowym lub w trybie o podwyższonym bezpieczeństwie. W trybie standardowym (określanym jako residential mode), jeżeli uwierzytelniane urządzenie nie ma klucza sieci, jest on mu przesyłany poprzez niezabezpieczone łącze. W tym przypadku zakłada się, że bezpieczeństwo przesyłu klucza zostanie zapewnione poprzez środki niekryptograficzne takie jak jednorazowy przesył klucza w określonym momencie (np. po naciśnięciu na nim wyznaczonego przycisku) lub transfer ze zmniejszoną mocą wymagającą maksymalnego zbliżenia urządzenia do routera, lub kontrolera. W trybie o podwyższonym bezpieczeństwie (tryb commercial mode, wprowadzony w specyfikacji ZigBee PRO) klucz sieci nie jest przekazywany przez niezabezpieczone łącze, ale może być w ten sposób przekazany klucz główny (master key), jeżeli urządzenie nie posiada go już skonfigurowanego. W tym przypadku bezpieczeństwo przekazania klucza głównego zapewniane jest, podobnie jak w trybie standardowym, przez środki niekryptograficzne. Po uzyskaniu przez urządzenie klucza głównego, centrum zaufania oraz urządzenie rozpoczynają procedurę ustanowienia klucza łącza i po jej zakończeniu centrum zaufania przesyła do urządzenia w sposób bezpieczny klucz sieci. Cała procedura musi być przez urządzenie zakończona w określonym czasie, w przeciwnym przypadku będzie ono traktowane jako nieuwierzytelnione.
Uwierzytelnianie danych odbywa się poprzez dołączenie do nich specjalnego kodu MIC (Message Integrity Code) będącego rodzajem kryptograficznego skrótu przesyłanych informacji, wyliczanego z użyciem tajnego klucza oraz wartości zależnej m.in. od numeru sekwencyjnego ramki. Kod MIC jest ponownie wyznaczany po stronie odbiorczej i porównywany z odebranym. Zgodność kodów oznacza dla urządzenia potwierdzenie autentyczności odebranych danych. Uwzględnienie w kodzie MIC numeru sekwencyjnego zabezpiecza przed ponownym powtórnym użyciem tak zabezpieczonej ramki (jest to tzw. atak typu replay).
Funkcje szyfrowania i uwierzytelniania danych mogą być używane w różnych kombinacjach. W pomocniczym nagłówku zabezpieczeń ramki (rys. 6.) znajduje się 3-bitowe pole Security Level, którego wartość oznacza rodzaj stosowanych w danej ramce zabezpieczeń. W tabeli 3. zestawiono znaczenie poszczególnych wartości pola Security Level.
Stosowane w sieciach ZigBee zabezpieczenia stanowią kompromis pomiędzy kosztem urządzeń i poziomem bezpieczeństwa. Sieci ZigBee z założenia są nisko kosztowe i z reguły nie stosuje się w nich zabezpieczeń przed pozyskaniem informacji zabezpieczających (np. kluczy) w przypadku fizycznego dostępu do urządzenia (tak uodpornione urządzenia określane są jako tamper-resistant hardware). Świadomie dopuszczono też przesyłanie kluczy przez niezabezpieczony kanał przy podłączaniu nowych urządzeń. Ograniczeniem w implementacji funkcji zabezpieczeń są także ograniczone zasoby urządzeń. Realizacja złożonych algorytmów kryptograficznych wymaga zazwyczaj wykonywania intensywnych obliczeń, co kłóci się ograniczoną szybkością pracy urządzeń zasilanych bateryjnie.
Specjalne warianty ZigBee
Przedstawiony powyżej opis dotyczy przede wszystkim sieci ZigBee w specyfikacji ZigBee-2007 obejmującej wariant podstawowy (ZigBee-2006) oraz rozszerzony (ZigBee PRO). W 2012 roku została przedstawiona specyfikacja ZigBee 2012 wprowadzająca opcjonalną funkcję Green Power, pozwalającą na przyłączanie do sieci urządzeń nieposiadających własnego źródła zasilania. Takie urządzenia czerpią energię niezbędną do pracy z otoczenia poprzez wykorzystanie np. światła lub wibracji (tzw. energy harvesting). Oprócz tego wydane zostały jeszcze dwie osobne specyfikacje technologii ZigBee: ZigBee RF4CE (opublikowana w styczniu 2010) oraz ZigBee IP (publikacja w lutym 2013).
ZigBee RF4CE (Radio Frequency for Consumer Electronics) jest prostą specyfikacją przeznaczoną do wykorzystania w konsumenckich systemach zdalnego sterowania z profilami aplikacyjnymi ZigBee Remote Control oraz ZigBee Input Devices.
Specyfikacja ZigBee IP stanowi krok w kierunku integracji sieci ZigBee z Internetem. ZigBee IP w warstwie sieciowej wykorzystuje protokół IPv6, który poprzez dodatkową warstwę adaptacyjną bazującą na specyfikacji 6LoWPAN komunikuje się z wykorzystaniem specyfikacji IEEE 802.15.4 w warstwach MAC oraz PHY. Pomiędzy warstwami sieciową i aplikacyjną stosowana jest jeszcze warstwa transportowa z protokołami TCP oraz UDP. Obecnie ZigBee IP jest w szczególności przeznaczony do zastosowania z profilem aplikacyjnym Smart Energy Profile 2 opublikowanym przez ZigBee Alliance w kwietniu 2013 r. Dokładniejsze omówienie zastosowania protokołu IPv6 w komunikacji M2M wykracza poza ramy niniejszego artykułu i planowane jest jako temat jednej z kolejnych publikacji. Inną opcją współpracy sieci ZigBee z sieciami IP jest wykorzystanie bram sprzęgających sieć IP z siecią ZigBee. Bramy takie mogą pracować z wykorzystaniem specyfikacji profilu ZigBee Gateway Device (ZGD) opublikowanego przez ZigBee Alliance.
Podsumowanie
W artykule przedstawione zostały zasady pracy sieci bazujących na specyfikacji ZigBee stanowiącej jedną z technologii budowy sieci LR-WPAN (Low Rate Wireless Personal Area Network). Układy interfejsów ZigBee charakteryzują się bardzo małym poborem mocy, dzięki czemu szczególnie dobrze sprawdzają się w zminiaturyzowanych urządzeniach zasilanych bateryjnie, a udostępniana przez ZigBee prędkość transmisji do 250 kb/s jest całkowicie wystarczająca w większości typowych aplikacji M2M.
Specyfikacje ZigBee oferują gotowe profile aplikacyjne obejmujące typowe zastosowania, takie jak automatyka budynkowa, osobiste urządzenia medyczne, domowe inteligentne instalacje elektryczne. Oczywiście konstruktorzy mogą tworzyć też dowolne inne aplikacje na bazie ogólnych funkcji komunikacyjnych oferowanych w ZigBee. Na rynku dostępny jest duży wybór układów scalonych i modułów realizujących interfejsy ZigBee. Często są to elementy zintegrowane z mikroprocesorami (w tym bazującymi na rdzeniach ARM) oraz zawierające różne układy wejścia/wyjścia (np. wejścia analogowe, wyjścia PWM, porty GPIO), co zapewnia możliwość szybkiego projektowania inteligentnych układów komunikujących się w trybie M2M poprzez bezprzewodowe energooszczędne interfejsy ZigBee.
Literatura
- http://www.zigbee.org
- http://en.wikipedia.org/wiki/Waggle_dance
- A. Zankiewicz, Architektura sieci TCP/IP i jej aplikacje w systemach automatyki i sterowania. Część 1. Architektura sieci i protokoły, „elektro.info”, nr 7/8/2010, s. 36–41.
- IEEE Std 802.15.4-2011 (Revision of IEEE Std 802.15.4-2006), dostępny pod adresem: http://standards.ieee.org/about/get/802/802.15.html.
- ZigBee Specification (document 053474r17), styczeń 2008, dostępny pod adresem: http://www.zigbee.org.