České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačů
Bakalářská práce
Firmware pro XBee moduly Jan Prášil
Vedoucí práce: Doc. Ing. Jan Janeček, CSc.
Studijní program: Elektrotechnika a informatika, strukturovaný, Bakalářský Obor: Výpočetní technika 21. května 2012
Poděkování Především bych chtěl poděkovat vedoucímu práce Doc. Ing. Janu Janečkovi, CSc. a Ing. Alexandru Mihneau Mouchovi za poskytnuté konzultace, které mi pomohly proniknout do dané problematiky a dokončit tuto práci.
Prohlášení Prohlašuji, že jsem práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu §60 zákona číslo 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon).
V Benešově dne 21.5.2012
.................................................................................................................................
Abstract This thesis deals with the ZigBee standard and its implementation in the XBee module series 2. The main objectives is connect XBee module to the computer, reprogramming XBee module and develope firmware for a microcontroller able to control the XBee module over UART. The last part of this work was to measure the signal strength depending on the distance using the XBee module.
Abstrakt Tato bakalářská práce se zabývá standardem ZigBee a jeho implementací v XBee modulu series 2. Hlavními cíli bylo připojení XBee modulu k počítači, jeho přeprogramování, a vytvoření firmwaru pro mikrokontrolér, schopný ovládat XBee modul přes UART. Poslední částí této práce bylo měření síly signálu v závislosti na vzdálenosti pomocí XBee modulu.
Obsah 1.
Úvod..............................................................................................................................................1
2.
Standard IEEE 802.15.4 ......................................................................................................2
3.
2.1.
Fyzická a MAC vrstva .....................................................................................................2
2.2.
Síťový model......................................................................................................................2
2.2.1.
Topologie sítě ...........................................................................................................3
2.2.2.
Adresování v síti PAN............................................................................................4
Standard ZigBee .....................................................................................................................4 3.1.
Prvky sítě standardu ZigBee........................................................................................4
3.2.
Vytvoření sítě ZigBee .....................................................................................................5
3.2.1.
Spuštění ZigBee koordinátoru ...........................................................................5
3.2.2.
Připojení ZigBee směrovače ...............................................................................5
3.2.3.
Připojení ZigBee koncového zařízení..............................................................6
3.3.
4.
Komunikace v ZigBee síti..............................................................................................6
3.3.1.
Adresy zařízení ........................................................................................................6
3.3.2.
Adresace na aplikační vrstvě..............................................................................6
3.3.3.
Odesílání a směrování dat ...................................................................................7
RF modul XBee series 2 ......................................................................................................9 4.1.
Charakteristika XBee modulu .....................................................................................9
4.2.
Sériové rozhraní XBee modulu................................................................................ 10
4.2.1.
UART datový přenos........................................................................................... 10
4.2.2.
Zpracování dat v modulu .................................................................................. 11
4.2.3.
Komunikační rozhraní s modulem................................................................ 12
4.3.
Pracovní režimy XBee modulu ................................................................................ 13
4.3.1.
Režim nečinnosti.................................................................................................. 13
4.3.2.
Režim vysílání ....................................................................................................... 13
4.3.3.
Režim přijímání .................................................................................................... 14
4.3.4.
Konfigurační režim.............................................................................................. 14
4.3.5. 4.4.
Vytvoření sítě s RF moduly XBee series 2........................................................... 16
4.4.1.
Aktivování koordinátora XBee series 2....................................................... 17
4.4.2.
Připojení směrovače XBee series 2 do existující PAN............................ 17
4.4.3.
Připojení koncového zařízení XBee series 2 do existující PAN.......... 18
4.4.4.
Resetování sítě...................................................................................................... 18
4.5.
5.
Adresace v síti s RF moduly XBee series 2.......................................................... 18
4.5.1.
Adresace XBee....................................................................................................... 18
4.5.2.
Adresace na aplikační vrstvě........................................................................... 19
Realizace.................................................................................................................................. 21 5.1.
Blokové schéma zapojení .......................................................................................... 21
5.2.
Použitý HW...................................................................................................................... 21
5.3.
Popis řešení na straně PC .......................................................................................... 22
5.3.1.
X-CTU ........................................................................................................................ 23
5.3.2.
Nastavení XBee modulu..................................................................................... 23
5.4.
Popis řešení na straně MCU...................................................................................... 24
5.4.1.
Vývojové nástroje ................................................................................................ 24
5.4.2.
Řešení firmwaru do MCU.................................................................................. 25
5.4.3.
HW řešení................................................................................................................ 30
5.5.
Realizace XBee series 2 sítě...................................................................................... 32
5.5.1. 6.
Režim spánku ........................................................................................................ 15
Ověření spojení..................................................................................................... 32
Měření síly signálu............................................................................................................. 33 6.1.
Antény............................................................................................................................... 33
6.1.1.
Zisk antény ............................................................................................................. 33
6.1.2.
Apertura antény ................................................................................................... 35
6.1.3.
Výpočet síly přijímaného signálu................................................................... 35
6.1.4.
Směrový diagram antény XBee modulu...................................................... 36
6.2.
Způsob měření síly signálu ....................................................................................... 37
7.
6.2.1.
Postup měření ....................................................................................................... 37
6.2.2.
Naměřené a vypočtené hodnoty .................................................................... 38
6.2.3.
Zhodnocení měření ............................................................................................. 39
Závěr.......................................................................................................................................... 40
Literatura .......................................................................................................................................... 41 Seznam použitých zkratek ....................................................................................................... 42 Obsah CD............................................................................................................................................ 43
Seznam obrázků Obr. 1 Topologie sítě standardu 802.15.4.................................................................................3 Obr. 2 OSI model standardu ZigBee.............................................................................................4 Obr. 3 Datový byte UART.............................................................................................................. 10 Obr. 4 Diagram zpracování dat v modulu............................................................................... 11 Obr. 5 Průběh vysílacího režimu................................................................................................ 14 Obr. 6 Blokové schéma .................................................................................................................. 21 Obr. 7 Deska XBIB-R-DEV............................................................................................................. 21 Obr. 8 Převodník Aten UC 232A................................................................................................. 22 Obr. 9 RF modul XBee series 2.................................................................................................... 22 Obr. 10 Arduino Duemilanove.................................................................................................... 22 Obr. 11 Program X-CTU................................................................................................................. 23 Obr. 12 Vývojový diagram firmwaru MCU............................................................................. 25 Obr. 13 Schéma stavového automatu ...................................................................................... 27 Obr. 14 Schéma zapojení Arduina a XBee modulu.............................................................. 31 Obr. 15 Odpověď na AT příkaz ND ........................................................................................... 32 Obr. 16 Izotropní anténa............................................................................................................... 34 Obr. 17 Reálná anténa (parabola) ............................................................................................. 34 Obr. 18 Šíření a příjem radiových vln ...................................................................................... 35 Obr. 19 Směrový diagram antény XBee modulu [dBi] ...................................................... 36 Obr. 20 Orientace XBee modulu................................................................................................. 37 Obr. 21 Program X-CTU - měření síly signálu....................................................................... 38 Obr. 22 Graf závislosti síly signálu na vzdálenosti.............................................................. 39
Seznam tabulek Tabulka 1 Binding table ................................................................................................................ 20 Tabulka 2 Příkazy pro editaci záznamů.................................................................................. 20 Tabulka 3 Naměřené a vypočtené hodnoty........................................................................... 38
1
1. Úvod Bezdrátová komunikace se v posledních letech rozšířila do celé řady oblastí. Důvody jsou jasné - jednoduchost použití, nízká cena, dobré parametry přenosu a především mobilita, to jsou zásadní vlastnosti, pro které jsou bezdrátové sítě široce využívány. Jejich nejširší využití je v komerční oblasti, kde nalezly uplatnění zejména standardy wi-fi a bluetooth. Jedním ze standardů bezdrátové komunikace je také ZigBee, který je využíván především v automatizaci. ZigBee má parametry levné a energeticky nenáročné bezdrátové sítě s nízkým datovým tokem. Není to typ bezdrátové sítě, která by se dala využít k šíření internetu, nebo budování lokálních bezdrátových počítačových sítí. ZigBee se používá především ke komunikaci průmyslových zařízení, jakými jsou senzory a mikrokontroléry. Vznikají tak senzorové sítě, schopné kontrolovat fyzikální veličiny a reagovat na jejich změny podle námi stanovených požadavků. Protože ZigBee moduly vynikají nízkou spotřebou, mohou být napájeny z baterií. Využívá-li modul navíc funkci režimu spánku, může na jednu baterii fungovat až dva roky. Dnes se s touto technologií můžeme setkat zejména v tzv. inteligentních budovách (např. NTK v Dejvicích), ve kterých může zabudovaná senzorová síť kontrolovat osvětlení, klimatizaci, vytápění, nebezpečné látky ve vzduchu, či dokonce pohyb osob po budově. Senzorové sítě mě zajímají, v jejich používání vidím do budoucna velký potenciál, a proto jsem si toto téma vybral jako bakalářskou práci. V teoretické části se věnuji základním vlastnostem standardu ZigBee, vlastnostem RF modulu XBee series 2 a způsobem vytvoření ZigBee PAN. V praktické části uvádím výsledky měření síly signálu a realizuji způsob komunikace mezi počítačem a mikrokontrolérem přes XBee moduly.
2
2. Standard IEEE 802.15.4 Standard IEEE 802.15.4 definuje Fyzickou vrstvu a MAC vrstvu pro bezdrátové sítě krátkého dosahu, takzvané Personal Area Network (PAN), do které patří i standard ZigBee. Bezdrátová zařízení založené na standardu IEEE 802.15.4 mohou komunikovat na vzdálenost desítky metrů a dosahují přenosové rychlosti maximálně 250 kb/s. To je sice méně, než u wi-fi a bluetooth, ale hlavními vlastnostmi pro které byl standard vyvinut je nízká cena, nízká spotřeba energie a jednoduchá implementace.
2.1. Fyzická a MAC vrstva Fyzická vrstva definuje fyzické vlastnosti, jako je například frekvenční pásmo, počet kanálů v pásmu, vysílací výkon, druh modulace, komunikační rychlost a další. Frekvenční pásma standardu IEEE 802.15.4: -celosvětové pásmo ISM 2.4 GHz, 16 kanálů, přenosová rychlost 250 kb/s -pásmo pro Ameriku 915 MHz, 10 kanálů, přenosová rychlost 40 kb/s -pásmo pro Evropu 868 MHz, 1 kanál, přenosová rychlost 20 kb/s MAC vrstva řídí datové transakce mezi jednotlivými uzly v síti, má implementované služby pro potvrzování rámců, opětovné posílání rámců, zjišťování volných kanálů, způsobu připojení do sítě, atd.. K tomuto účelu definuje čtyři typy komunikačních rámců: datový, potvrzovací (Acknowladgement), synchronizační (Beacon) a MAC příkazový (MAC Command). Datový rámec slouží pro přenos dat, potvrzovací pro přenos potvrzovacích informací, synchronizační především pro konfiguraci sítě a MAC příkazový slouží ke konfigurování klientských zařízení. Vyšší vrstvy nejsou v tomto standardu definovány, IEEE 802.15.4 poskytuje služby vyšším vrstvám, které jsou na něm postaveny.
2.2. Síťový model Standard IEEE 802.15.4 definuje dva typy uzlů Full Function Devices (FFD) a Reduced function devices (RFD).
3 FFD může sloužit jako koordinátor PAN, stejně jako ostatní zařízení v PAN. Implementuje obecný model komunikace, může připojovat ostatní zařízení do PAN a směrovat rámce. RFD jedná se o jednoduché zařízení se základními komunikačními schopnostmi, nikdy se nemůže stát koordinátorem PAN.
2.2.1. Topologie sítě Síť standardu IEEE 802.15.4 může být topologie peer-to-peer nebo hvězda. Každá síť musí mít alespoň jedno FFD zařízení pracující v režimu koordinátora. V topologii hvězda je centrálním bodem sítě koordinátor, ke kterému se připojují ostatní zařízení. Toto je nevýhoda topologie hvězda, protože veškerá komunikace probíhá přes koordinátora. Síť vznikne spouštěním FFD, které stanoví PAN ID, vybere volný kanál a stane se koordinátorem. V topologii peer-to-peer mohou být zařízení propojena libovolně, koordinátor pouze řídí síť. Pokrytí je závislé pouze na dosahu uzlů, přes které je možné se připojit do PAN. Tato topologie je základem sítí ad-hoc, kde jsou si všechna zařízení rovna, síť se sama řídí a organizuje. Standard IEEE 802.15.4 přímo nepodporuje směrování, protože nedefinuje síťovou vrstvu. Směrování může být řešeno ve vyšších vrstvách, postavených na tomto standardu.
Obr. 1 Topologie sítě standardu 802.15.4
4
2.2.2. Adresování v síti PAN Zařízení jsou v síti PAN identifikovány ide 64-bitovým bitovým identifikátorem nazývaným adresou, nebo kratším 16-bitový 16 identifikátorem nazývaným m síťová adresa adresa. Síťovou adresu zařízení získá po připojení do PAN, tato adresa není statická. Každá síť PAN má 16-bitový bitový identifikátor (PAN ID), který od sebe odděluje překrývající se sítě.
3. Standard ZigBee ZigBee je standardem em bezdrátové komunikace a byl navržen především pro senzorové a kontrolní sítě. Rozšiřuje standard 802.15.4 o síťovou a aplikační vrstvu, hlavními lavními požadavky byly jednoduchost implementace, implementace, nízká cena a nízká spotřeba energie. ZigBee standard je neustále rozšiřován společnostmi mi po celém světě, které jsou sou sdruženy v ZigBee alianci.
Obr. 2 OSI model standardu ZigBee
3.1. Prvky sítě standardu ZigBee V ZigBee PAN se používají oužívají tři druhy zařízení: koordinátor, směrovač a koncové zařízení. PAN se tedy skládá z jednoho koordinátora a jednoho, nebo více zařízení typu směrovač, nebo koncové zařízení. Koordinátor má stejnou funkci jako v IEEE 802.15.4, udržuje tedy informace o konfiguraci sítě, řídí síť a může připojovat další zařízení. Nikdy nemůže přejít do režimu spánku.
5 Směrovač slouží jako další přístupový bod do sítě a přeposílá data jiným uzlům v síti. Nemůže přejít do režimu spánku, ale může provádět pooling. Koncové zařízení je nejjednodušším zařízením sítě, nepřipojuje další zařízení, ani nepřeposílá data jiným uzlům v síti. Koncové zařízení je potomkem koordinátoru, nebo směrovače, přes kterého je připojen do ZigBee PAN. Potom uzel, který koncové zařízení připojil, nazýváme rodičem. Komunikace s ostatními zařízeními pak probíhá výhradně přes rodiče. Může přejít do režimu spánku a tím šetřit energii, proto je vhodné pro napájení z baterií.
3.2. Vytvoření sítě ZigBee ZigBee PAN vytvoří koordinátor zvolením volného kanálu a PAN ID. Do takto vytvořené sítě se můžou připojovat směrovače a koncová zařízení. Když se koncové zařízení nebo směrovač připojí do sítě (PAN) obdrží 16-bitovou síťovou adresu a může posílat a přijímat data.
3.2.1. Spuštění ZigBee koordinátoru Když je koordinátor poprvé spuštěn, vykoná energetické skenování všech kanálů, aby našel neobsazený a mohl vytvořit ZigBee PAN. Poté na kanály s nejnižší energetickou hladinou vyšle rámec standardu 802.15.4 beacon request command. Na tento požadavek odpoví koordinátory nebo směrovače beacon rámcem, kterým sdělí svůj PAN identifikátor (PAN ID) a zda umožní připojení. Koordinátor pak vybere vhodný kanál a PAN ID.
3.2.2. Připojení ZigBee směrovače Když je směrovač poprvé spuštěn, hledá ZigBee PAN v okolí, aby se do ní připojil. Hledání provádí odesláním rámce 802.15.4 beacon request command na předem určené kanály. Okolní směrovače a koordinátory odpoví beacon rámcem, který obsahuje PAN ID a kanál sítě, kterých jsou součástí. Když nalezne platnou PAN, vyšle požadavek na připojení. Jestliže je připojení úspěšné, směrovač obdrží potvrzení, že byl připojen. Poté se stane členem sítě a může komunikovat s ostatními zařízeními a připojovat další zařízení.
6
3.2.3. Připojení ZigBee koncového zařízení Když je koncové zařízení poprvé spuštěno, podobně jako směrovač hledá ZigBee PAN, do které by se připojilo. Po připojení může komunikovat s ostatními zařízeními, komunikace probíhá vždy přes rodiče (směrovač, nebo koordinátor, přes kterého je připojen).
3.3. Komunikace v ZigBee síti ZigBee PAN podporuje adresy zařízení a adresaci na aplikační vrstvě. Adresa zařízení určuje konkrétní cílové zařízení v síti. Aplikační adresace určuje konkrétní aplikaci spuštěnou na zařízení přes tzv. endpoint.
3.3.1. Adresy zařízení Standard ZigBee využívá dva typy adres, které jsou definovány v MAC vrstvě standardu 802.15.4. ZigBee navíc rozšiřuje MAC vrstvu o síťovou vrstvu, která umožňuje směrování rámců. -16-bitová síťová adresa je přidělena, jakmile se zařízeni připojí do sítě. Data jsou odesílána na tuto 16-bitovou adresu cíle, před odesláním dat musí být tato adresa nalezena. Není statická, může být změněna, když nastane jedna ze dvou podmínek: 1) Když zařízení nekomunikuje se svým rodičem, může opustit síť a znovu se připojit do sítě přes jiného rodiče. 2) Když zařízení změní typ z routeru na koncové zařízení, nebo naopak. Pak se odpojí ze sítě a znovu připojí. -64-bitová adresa identifikuje každé zařízení v síti, má unikátní hodnotu a je statická.
3.3.2. Adresace na aplikační vrstvě Aplikační vrstva definuje endpointy a clustery. Endpointy jsou používány k adresování běžících služeb a aplikací spuštěných na zařízení – takzvaných aplikačních objektů. Clustery reprezentují jednotlivé akce a odpovědi na ně, které mají aplikační objekty na určitém endpointu vykonat. Každé zařízení má jeden nebo více endpointů a každý endpoint jeden nebo více clusterů
7 Endpointy Jsou komunikační kanály, kterými komunikují aplikační objekty uzlu sítě. Endpointy jsou adresovány jedním bytem a lze si je představit jako porty u IP protokolu. Uživatelsky přístupné jsou jen endpointy 1 až 240. 0 je endpoint pro komunikaci se ZigBee objektem (ZigBee Device Object ZDO), 255 je broadcast všem endpointům v uzlu a 241 až 254 jsou ZigBee aliancí vyhrazené endpointy. Cluster ID Označuje funkci, kterou provede aplikační objekt na daném endpointu. Cluster ID má velikost dva byty, rozsah 0x0000 až 0x7FFF se používá pro příkazy aplikacím a rozsah 0x8000 až 0xFFFF na odpovědi aplikací na daný příkaz. V praxi jsou identifikátory akcí používány tak, že například na příkaz 0x0001 je odpověď 0x8001. Aplikační profily Aplikační profily jsou ZigBee aliancí definované sady ID clusterů pro různé oblasti použití. Je tak vytvořeno komunikační rozhraní mezi aplikačními objekty pracující ve stejné oblasti. Potom zařízení, která byla postavena na stejném aplikačním profilu, spolu mohou komunikovat i když jsou vyrobeny jiným výrobcem. ZigBee aliance definuje celou řadu aplikačních profilů, jako například Builing Automation, Remote Control, Home Automation, Smart Energy, atd.. ZigBee objekt (ZDO) ZDO je objekt, přes který můžou aplikační objekty využívat služeb nižších vrstev ze standardu ZigBee. Aplikační objekty tak mohou získávat informace o uzlech v síti, stavu sítě a zabezpečení přenosů. Ke komunikaci se ZDO slouží endpoint 0.
3.3.3. Odesílání a směrování dat Všechny datové pakety v ZigBee PAN obsahují adresu cílového zařízení i adresu vysílacího zařízení. To samé platí i pro endpointy na aplikační vrstvě, adresní pole obsahují zdrojový i cílový endpoint. V ZigBee PAN existují tři druhy odesílání dat: broadcast, multicast a unicast. Broadcast vysílání Je odeslání paketu do všech uzlů sítě. Zařízení, které přijme broadcast paket, třikrát tento přijatý paket přepošle a udělá si záznam v broadcast tabulce. Tento
8 záznam se používá k udržení stopy každého přijatého broadcast paketu, aby zařízení nešířilo ty broadcast pakety, které už jednou obdrželo. Záznam je uložen v tabulce 8 sekund, do tabulky se vejde 8 záznamů. Multicast vysílání Datové pakety jsou šířeny podobně jako při broadcast vysílání s tím rozdílem, že pakety obdrží jen zařízení z multicast skupiny. Unicast vysílání ZigBee zařízení používají dvě adresy, 16-bitovou síťovou adresu, která se může měnit, a 64-bitovou adresu, která je statická. Protože 16-bitová adresa není statická, zařízení může ověřovat, zda stávající nalezená 16-bitová adresa patří známé 64bitové adrese. Když je 16-bitová adresa neznámá, musí zařízení najít cestu k cílovému zařízení. Ke zřízení cesty využívá Ad-hoc On-demand Distance Vector (AODV) protokol. Objevení síťové adresy Každé zařízení je identifikováno unikátní 64-bitovou adresou. Zařízení, které chce začít odesílat data, (iniciátor spojení), začne hledat síťovou adresu broadcast vysíláním vyhledávacího paketu. Tento paket obsahuje 64-bitovou adresu cílového zařízení, kterému se budou posílat data. Zařízení, které tento paket přijme, porovná vlastní 64-bitovou adresu s 64-bitovou adresou v paketu. Když se adresy shodují, zařízení odešle paket s odpovědí, který obsahuje jeho 16-bit síťovou adresu. Poté, co iniciátor obdrží odpověď, může posílat data. Mesh směrování Umožní datovým paketům přeskočit několik uzlů (hopů) v síti na cestě od zdrojového zařízení k cílovému. Při směrování se nevyužívá vztahu rodič/potomek, který je vybudován při připojení zařízení do PAN. Před odesláním paketu musí být vytvořena cesta k cílovému zařízení. K tomu se používá AODV směrovací algoritmus. Opakování a potvrzování Standard ZigBee používá potvrzování na MAC vrstvě a aplikační vrstvě. K potvrzování je využíván acknowledgment (Ack) paket. Když jsou data odeslána cílovému zařízení, cesta paketu může vést přes více uzlů (hopů) v síti. Potvrzování na MAC vrstvě probíhá tak, že uzel pošle paket svému
9 sousedovi a ten ho obratem potvrdí odesláním Ack paketu. Když potvrzení nedorazí, provede se opětovné poslání paketu s daty, avšak maximálně čtyřikrát. Potvrzování na aplikační vrstvě (ZigBee APS layer acknowledgment) probíhá tak, že iniciátor vysílání čeká, že obdrží potvrzovací rámec od cílového zařízení. Potvrzení přijde stejnou cestou, jako rámec s daty, pouze v opačném směru. Když potvrzení neobdrží, iniciátor pošle data ještě jednou, ale maximálně dvakrát.
4. RF modul XBee series 2 RF modul XBee series 2 byl navržen pro protokol ZigBee, standardu 802.15.4 s ohledem na nízkou cenu a nízkou spotřebu energie. Výrobcem modulu je společnost MaxStream, která byla pohlcena společností Digi international, Inc.
4.1. Charakteristika XBee modulu Výkon Dosah v budovách a zastavěných plochách
do 40 m
Dosah ve volném prostoru na přímou viditelnost
do 100 m
Výkon vysílače
2 mW (+ 3 dBm)
Rychlost přenosu RF dat
250 kbps
Rychlost přenosu dat přes sériovou linku
1200 – 230400 bps
Citlivost přijímače
-95 dBm
Požadavky na napájení Napájecí napětí
2.8 – 3.4 V
Spotřeba při vysílání dat
40 mA při 3.3 V
Spotřeba při přijímání dat
40 mA při 3.3 V
Spotřeba ve vypnutém stavu
< 1 A při 25 °C
Obecné vlastnosti Frekvenční pásmo
ISM 2.4 GHz
Rozměry
2.438 cm x 2.761cm
Provozní teplota
-40 – 85 °C
10 Možnosti antén Malá dipólová anténka
zisk 2.1 dBi
Integrovaná anténa Whip
zisk 1.5 dBi
Anténní konektor RPSMA nebo U.FL
-
Síť a zabezpečení Podporované topologie
Point to point, Point to multipoint, Peer to peer a Mesh
Počet kanálů
16
Možnosti adresace
PAN ID a adresy, Cluster ID a endpointy
4.2. Sériové rozhraní XBee modulu RF modul XBee disponuje sériovým asynchronním portem ke komunikaci s periferním zařízením.
Port je typu UART (Universal Asynchronous Receiver
Transmitter), přes který s ním může komunikovat jiné zařízení vybavené portem UART, nebo s použitím převodníku zařízení využívající ke komunikaci RS232 či USB.
4.2.1. UART datový přenos Data jsou přijímána přes datový pin DIN (pin 3) a odesílána přes datový pin DOUT (pin 2), jako asynchronní sériový signál. Když nejsou přijímána žádná data, signál je v logické jedničce a tento stav je označován jako Idle. Data jsou přijímána po bytech, každý datový byte obsahuje start bit (logická nula), osm datových bitů (první je nejméně významný bit) a jeden stop bit (logická jedna). Základem bezchybné komunikace je shodné nastavení sériových portů UART obou komunikujících stran. Jedná se především o přenosovou rychlost a shodně nastavený datový byte (stop bity, paritní bity a počet datových bitů).
Obr. 3 Datový byte UART
11
4.2.2. Zpracování dat v modulu XBee modul má dva buffery, serial receive buffer, do kterého vstupují data přes pin DIN a serial transmit buffer, ze kterého se data odesílají na pin DOUT. Serial receive buffer Data přijatá po UART lince jsou uložena v serial receive bufferu, dokud je modul nezpracuje. Buffer má implementovanou HW kontrolu přeplnění bufferu (pin CTS/DIO 7). Když v bufferu zbývá posledních 17 volných bytů, nastavením pinu CTS na logickou jedna dá XBee modul signál hostitelskému zařízení, aby zastavilo vyslání. Jakmile se v bufferu uvolní místo na 34 volných bytů, je signál CTS opět nastaven na logickou nulu. Kontrola přeplnění bufferu se nastavuje konfiguračním příkazem D7 s parametrem 1. Přeplnění serial receive bufferu může nastat, pokud modul přijímá RF data a v ten samý moment začne modul přijímat byty z UART linky. Dokud modul nepřestane přijímat RF data, nedojde ke zpracování bytů v bufferu. Další situací, kdy může buffer přetéct, je při vysílání. Modul je připraven poslat data z bufferu, ale nejprve musí najít síťovou adresu a cestu k cíli, pokud ji nezná. Hledání způsobí zpoždění vysílání paketů z bufferu a to může mít za následek přeplnění. Serial transmit buffer Přijatá RF data jsou uložena do serial transmit bufferu a poté odeslána po UART lince. Když je buffer plný a přijde RF paket s daty, které se už do transmit bufferu nevejdou, je paket zahozen. Buffer má implementovanou HW kontrolu přenosu (pin RTS/DIO 6). Signál RTS v logické nule signalizuje XBee modulu, že může posílat data ze serial transmit bufferu ven přes UART linku. Kontrola přenosu se nastavuje konfiguračním příkazem D6 s parametrem 1. Zahození paketů může nastat, když hostitelské zařízení nestačí zpracovávat data z XBee modulu. Datový tok přijímaných RF dat je vyšší, než datový tok odesílaných dat po UART lince.
Obr. 4 Diagram zpracování dat v modulu
12
4.2.3. Komunikační rozhraní s modulem XBee moduly poskytují dva typy komunikačního rozhraní, AT rozhraní a API rozhraní. Podle typu rozhraní, které chceme používat, rozlišujeme druhy firmware. AT rozhraní Využíváme-li AT firmware, API operace nejsou podporovány. Modul je konfigurován pomocí AT příkazů v konfiguračním režimu. Do konfiguračního režimu se modul přepne odesláním „+++“, následující data modul vnímá jako AT konfigurační příkazy. Před odesláním a po odeslání „+++“ je nutné dodržet Guard Time Moduly slouží jako náhrada sériové linky, všechna data přijatá přes UART (pin DIN) jsou zabalena do paketů a odeslána. Před odesláním dat se musí nastavit adresa cílového modulu, AT příkazy DH a DL. Zabalení dat do paketů a odeslání Data jsou držena v serial receive bufferu, dokud nenastane jedna z následujících příčin, která způsobí sestavení RF paketů a jejich odeslání. 1) Zpracování nastane, pokud nejsou modulem přijata žádná data po dobu definovanou v parametru AT příkazu RO (PacketizationTimeout). 2) Zpracování nastane, když modul obdrží tolik znaků (bytů), kolik se jich vejde do RF paketu (72 znaků). 3) Zpracování nastane, když je obdržena konfigurační sekvence (GT + CC + GT), pak jsou všechna data z bufferu zabalena do paketů a odeslána. API Rozhraní API (Aplication Programing Interface) rozhraní je alternativou konfigurování modulů a směrování dat do hostitelských aplikací. Rozšiřuje možnosti, kterými můžou hostitelské aplikace využívat síťové schopnosti XBee modulu. Všechna data jsou odesílána a přijímána v datových rámcích definující operace, které má modul vykonat. Adresa cílového modulu je obsažena přímo v datovém rámci místo toho, aby se zadávala přes konfigurační režim, jako je tomu v AT rozhraní. Struktura API rámců Oddělovač rámců (Byte 0)
0x7E
Velikost datové části rámce (Byty 1-2)
MSB
LSB
Datová část rámce (Byty 3-n) API identifikátor typu rámce
Data
Kontrolní součet (Byte n+1)
1 Byte
13 API rozlišuje několik typů datových rámců: 1) Odesílané datové rámce (přijaté přes DIN): 1) Vysílaný rámec s daty 2) Konfigurační rámec (ekvivalentní konfiguračnímu režimu v AT) 2) Přijímané datové rámce (odesílané přes DOUT): 1) Přijímaný rámec s daty 2) Odpověď na konfigurační rámec 3) Informační rámec – nese informaci o událostech (reset, připojení do sítě, odpojení ze sítě, atd.) Hlavní výhody API rozhraní:
Posílání datových rámců všem zařízením v síti, bez nutnosti vstupu do konfiguračního režimu.
Obdržení potvrzení o úspěšném nebo neúspěšném doručení každého poslaného rámce.
Každý paket obsahuje adresu odesílatele.
Možnost konfigurování všech uzlů v síti speciálním typem rámce.
Možnost kontroly chyb při přenosu kontrolním součtem, který obsahuje každý rámec.
4.3. Pracovní režimy XBee modulu Modul pracuje v různých režimech v závislosti na způsobu zpracování dat. Modul tedy pracuje tak, že přechází z jednoho režimu do jiného.
4.3.1. Režim nečinnosti Modul se nachází v režimu nečinnosti, když nepřijímá ani neodesílá data. V tomto režimu modul kontroluje RF data, zda jsou určena pro něj nebo pro jiný modul. Z režimu nečinnosti modul přechází do ostatních režimů (režim vysílání, režim přijímání, konfigurační režim a režim spánku).
4.3.2. Režim vysílání Když jsou data v serial recieve bufferu připravena k odeslání, XBee modul se přepne z režimu nečinnosti do režimu vysílání, sestaví pakety a pokusí se je odeslat na určenou adresu. Před odesláním dat modul zjišťuje, zda je adresa a cesta k cílovému uzlu známá. Když adresu nezná, pokusí se jí vyhledat a vytvořit cestu
14 k cílovému uzlu (NAD Network Address Discovery). Jakmile nenajde cíl se shodující se adresou, paket k odeslání je zahozen, v opačném případě je paket odeslán. Po převzetí dat zasílá cílový uzel potvrzení zdrojovému uzlu. Když zdrojový uzel, který poslal paket s daty neobdrží potvrzení, zašle paket ještě jednou.
Obr. 5 Průběh vysílacího režimu
4.3.3. Režim přijímání Jakmile je přijat rámec a jeho síťová adresa se shoduje se síťovou adresou modulu (adresa v parametru AT příkazu MY), jsou data přemístěna do serial transmit bufferu.
4.3.4. Konfigurační režim Chceme-li číst nebo měnit parametry XBee modulu, musíme modul přepnout do konfiguračního režimu. V tomto režimu jsou znaky přicházející do modulu vnímány jako konfigurační AT příkazy. V API rozhraní se modul konfiguruje pomocí konfiguračních rámců (modul se tedy nepřepíná do konfiguračního režimu). Vstup do konfiguračního režimu: 1) Po dobu guard time nesmíme do modulu posílat žádné znaky (dobu guard time určuje parametr AT příkazu GT, defaultně nastaven na 0x3E8 = 1 s). 2) Po uplynutí doby guard time pošleme do modulu tři znaky „+++“ (druh znaku je určen parametrem AT příkazu CC, defaultně nastaven na 0x2B)
15 3) Po dobu guard time nesmíme do modulu posílat žádné znaky. 4) Po úspěšném vstupu do konfiguračního režimu modul odpoví „OK“, v opačném případě „ERROR“. Syntaxe AT příkazu: AT
+
ASCII příkaz
+
nepovinná mezera
+
nepovinný parametr
+
carriage return
Příklad: ATBD 3
Všechny změny, které takto provedeme, musíme uložit, aby v modulu zůstaly zapsány i po jeho restartu. To provedeme AT příkazem WR (Write). Ke zjištění hodnot parametrů uložených v modulu se používají ty samé AT příkazy s tím rozdílem, že se v syntaxi vynechává nepovinný parametr. Modul odpoví hodnotou parametru zakončenou . Konfigurační režim opustíme AT příkazem CN (Exit Command Mode) nebo vyčkáme dobu určenou parametrem AT příkazu CT (Command Mode Timeout). Po uplynutí této doby modul přejde do nečinného režimu.
4.3.5. Režim spánku Režim spánku slouží k úspoře energie, to je výhodné zejména u zařízení, které je napájeno z baterií. Do režimu spánku může přejít jen koncové zařízení, směrovače a koordinátor musí být nepřetržitě v provozu. Aby mohlo koncové zařízení přejít do režimu spánku, musí být připojeno do ZigBee sítě. Uzel (koordinátor/směrovač), přes který je koncové zařízení připojeno, nazýváme jeho rodičem. Rodič nesleduje, zda jsou jeho potomci (připojená koncová zařízení) probuzeni, nebo v režimu spánku. Koncová zařízení zasílají svému rodiči zprávu o připravenosti přijímat data. Každý rodič musí být schopen uchovávat data pro své spící potomky a po jejich probuzení jim data přeposlat. Tato funkce je označována jako Polling a funguje tak, že koncové zařízení pošle svému rodiči Poll příkaz, když je připraveno přijímat data. Rodič Poll příkaz přijme a uložená data odešle koncovému zařízení. Režim spánku se konfiguruje AT příkazy SM, SP, ST a SN.
16 Režim spánku řízený pinem Sleep Modul pracuje v tomto režimu, když je hodnota parametru příkazu SM (Sleep Mode) nastavena na jedna nebo dva. S tímto nastavením modul hlídá úroveň signálu na pinu Sleep. Vysoká úroveň (logická 1) znamená, že modul dokončí probíhající vysílání a přepne se do režimu spánku, ve kterém setrvá, dokud se na Sleep pinu neobjeví nízká úroveň signálu (logická 0). Po probuzení koncové zařízení pošle svému rodiči poll příkaz a rodič pošle data. Koordinátor a směrovače můžou uchovávat data pro spící koncové zařízení jen po dobu 30 sekund. Požadujeme-li doručení dat uchovávaných rodičem, nemělo by koncové zařízení přetrvávat v režimu spánku déle než 28 sekund. Pokud potomek neočekává žádná data, může zůstat v režimu spánku déle než 28 sekund. Cyklický režim spánku Modul pracuje v tomto režimu, pokud je hodnota parametru příkazu SM (Sleep Mode) nastavena na tři nebo čtyři. V cyklickém režimu spánku je modul uspán po dobu určenou parametrem příkazu SP (Cyclic Sleep Period). Po uplynutí doby definované parametrem SP se modul probudí a pošle poll příkaz svému rodiči, aby získal data. Modul zůstává probuzen po dobu definovanou parametrem ST (Time Before Sleep), tento čas je resetován pokaždé, když modul přijímá RF data nebo UART data. Jakmile je modul v nečinnosti po dobu definovanou parametrem ST, přechází do režimu spánku. Chceme-li, aby modul setrvával v režimu spánku delší dobu, než je definováno v parametru SP, můžeme nastavit parametr příkazu SN (Number of Sleep Periods). Hodnota uložená v parametru SN násobí čas definovaný v parametru SP.
4.4. Vytvoření sítě s RF moduly XBee series 2 Nejdříve musíme aktivovat koordinátora, přidělit mu kanál a PAN ID. Poté se mohou do sítě připojovat další směrovače a koncová zařízení. Každý koordinátor a směrovač může připojit maximálně osm zařízení. Síť se ovládá příkazy SC (Scan channel), ID (PAN ID), SD (Scan Duration) a NJ (Node Join Time). Nastavení se zapíší příkazem WR.
17
4.4.1. Aktivování koordinátora XBee series 2 Aby mohl koordinátor vytvořit ZigBee PAN, musí nejdříve vybrat kanál a stanovit PAN ID, na kterém bude pracovat. Obsazené kanály zjistí energetickým skenováním, které probíhá na kanálech podle parametru příkazu SC po dobu určenou parametrem příkazu SD. Po dokončení energetického skenování modul provádí aktivní skenování, které na všechny adresy a všechna PAN ID každého kanálu (podle parametru SC) vyšle beacon request command a čeká na beacon odpovědi. Podle výsledků energetického skenování a aktivního skenování je vybrán kanál a podle parametru ID je vybráno PAN ID. Jestliže je parametr ID nastaven na 0xFFFF, je hodnota PAN ID vybrána náhodně, jinak je PAN ID určeno parametrem ID. Když je aktivována funkce Associated indicator příkazem D5, koordinátor po svém aktivování spíná pin 15 jedenkrát za sekundu. Po aktivování koordinátora je vytvořena ZigBee PAN, do které se můžou připojit další zařízení (směrovače a koncová zařízení). Doba, po kterou koordinátor umožňuje připojení dalších zařízení, určuje parametr NJ (0xFF = zařízení se mohou ke koordinátorovi připojit kdykoliv). Číslo kanálu a PAN ID můžeme číst příkazy CH (Operating Channel) a ID. Koordinátor má síťovou adresu vždy 0.
4.4.2. Připojení směrovače XBee series 2 do existující PAN Aby se mohl směrovač stát součástí ZigBee PAN, musí nejdříve najít koordinátora nebo směrovač, který už je připojen do PAN a pokusit se přes něho připojit. To udělá odesláním požadavku beacon request na všechny kanály určené parametrem příkazu SC. Doba skenování na každém kanálu je určena parametrem příkazu SD. Směrovač vyhodnotí přijaté beacon odpovědi a pokusí se připojit do PAN s validním PAN ID. Pokud je hodnota parametru ID směrovače nastavena na 0xFFFF připojí se náhodně do kterékoliv z dostupných sítí, jinak se připojí do sítě s PAN ID podle hodnoty definované v parametru ID. Když je aktivována funkce Associated indicator příkazem D5, směrovač po svém připojení spíná pin 15 dvakrát za sekundu. Po připojení směrovače do PAN se přes něho můžou připojovat další zařízení. Směrovač umožňuje připojení dalších zařízení v časovém intervalu, určeným parametrem příkazu NJ. Číslo kanálu a PAN ID můžeme číst příkazy CH a ID. Síťovou adresu zjistíme příkazem MY (16 bitů).
18
4.4.3. Připojení koncového zařízení XBee series 2 do existující PAN Připojení koncového zařízení do ZigBee PAN probíhá obdobně jako připojení směrovače. Rozdíl je v tom, že po připojení se přes koncové zařízení nemohou připojovat další zařízení. Funkce Associated indicator funguje stejně jako u směrovače, totéž platí i pro příkazy na zjišťování čísla kanálu, PAN ID a síťové adresy.
4.4.4. Resetování sítě Pokud máme vybudovanou ZigBee PAN, má přidělený kanál a PAN ID dokud nenastane jedna z následujících situací: 1) Je změněn ID parametr a následně uložen příkazem WR. 2) Je změněn SC parametr tak, že v rozsahu kanálů není zahrnut kanál sítě, do které je zařízení připojeno. (změna musí být uložena příkazem WR). 3) Příkaz NR (Network Reset) je odeslán s parametrem 0 nebo 1 Jestliže jedna z prvních dvou situací nastane na koordinátoru, koordinátor se pokusí restartovat kanál nebo PAN ID podle nových hodnot uložených v SC a ID. Jakmile situace nastanou na směrovači, nebo koncovém zařízení, opustí síť a pokusí se připojit do nové sítě podle parametrů uložených v SC a ID.
4.5. Adresace v síti s RF moduly XBee series 2 XBee moduly podporují adresy zařízení i adresaci na aplikační vrstvě (podle standardu ZigBee).
4.5.1. Adresace XBee XBee moduly jsou identifikovány jedinečnou 64-bitovou statickou adresou nebo ASCII řetězcem, který může nastavit uživatel. 64-bitovou adresu můžeme přečíst příkazy SH (Serial Number High) a SL (Serial Number Low). ASCII identifikátor můžeme nastavit nebo přečíst příkazem NI (Node Identifier). 64-bitová adresace Vzdálený modul adresujeme jeho 64-bitovou adresou, kterou nastavujeme jako adresu cíle. V AT rozhraní nastavíme 64-bitovou adresu příkazy DL (Destination Address Low) a DH (Destination Address High). V API rozhraní je cílová 64-bitová adresa nastavena přímo v rámci s daty.
19 Koordinátor může být adresován dvěma způsoby, buď adresou 0 nebo jeho 64-bitovou adresou. Broadcast vysílání se provede nastavením 0x000000000000FFFF 64-bitové adresy. ZigBee protokol se opírá o 16-bitové síťové adresy, které se používají pro směrování dat v PAN. Před odesláním dat musí být 64-bitová adresa převedena na 16-bitovou adresu. Když modul nezná odpovídající 16-bitovou síťovou adresu cílového modulu, odešle broadcast vysíláním příkaz Network Address Discovery, který obsahuje 64-bitovou adresu cíle. Modul se shodnou 64-bitovou adresou odpoví odesláním jeho 16-bitové adresy. Modul si udržuje tabulku 64-bitových adres a jejich odpovídajících 16-bitových síťových adres. Do tabulky se vejde sedm záznamů. Adresování NI-identifikátorem Je alternativou adresování cílových modulů. V AT rozhraní to provádíme tak, že vyšleme příkaz DN (Destination Node) a v jeho parametru uvedeme NI parametr cílového modulu. Když je vyslán DN příkaz, modul odešle do sítě broadcast, aby našel modul s daným NI parametrem. Modul se shodným NI parametrem odpoví odesláním své 64-bitové a 16-bitové adresy. 64-bitová adresa je automaticky uložena v parametrech DL a DH. Po dokončení příkazu DN je možné posílat data.
4.5.2. Adresace na aplikační vrstvě Komunikace aplikací probíhá přes endpointy, adresací je tedy myšleno určení zdrojového a cílového endpointu a ID clusteru pro každé vysílání. V AT firmwaru se musí aktivovat adresace na aplikační vrstvě příkazem ZA (ZigBee Aplication Layer Addressing), příkazy DE (Destination Endpoint) a SE (Source Endpoint) nastavit cílový a zdrojový endpoint a příkazem CI (Cluster ID) nastavit ID clusteru, který bude použit při vysílání. V API firmwaru jsou informace o zdrojovém endpointu, cílovém endpointu a ID clusteru nataveny přímo v datovém rámci (Explicit Addressing ZigBee Command Frame). K nastavení adres se často využívá tabulka spojení (Binding table). XBee moduly series 2 si udržují tabulku spojení, která obsahuje adresní informace. Jednotlivé záznamy obsahují: typ záznamu, cílovou 64-bitovou adresu a
20 endpointy pro každé vysílání. Záznamy nejsou využívány, když je vysílán broadcast. V AT firmwaru můžeme záznamy z tabulky číst (některé měnit) příkazem BI s parametrem indexu do tabulky. Index
Typ záznamu
Přístup
0
Coordinator Binding
1
Tx-Aggregation Binding
2
Tx-Explicit Binding
R-W
3-4
Command Binding
R
5-8
Received Data Bindings
R
9
User Bindings.
R-W R
R-W
Tabulka 1 Binding table
Coordinator Binding - po připojení zařízení do sítě, záznam obsahuje 64-bitovou adresu koordinátora TX Aggregation Binding - když existuje agregovaný uzel, záznam obsahuje jeho 64bitovou adresu. Agregovaný uzel je uzel, který je asociovaný s dalšími uzly (potomky). TX Explicit Binding - záznam obsahující cílovou adresu a informace o endpointu posledního vysílání. Záznam je modifikován, kdykoliv měníme cílovou adresu. Command Binding - záznam obsahuje adresu vzdáleného zařízení, které poslalo požadavek na vykonání nějakého příkazu. Received Data Bindings - záznamy obsahují adresní informace (adresu a informace o endpointu) posledních tří přijatých paketů a dále jeden neplatný záznam. Přijdou-li nová data, adresní informace jsou uloženy místo neplatného záznamu. Vzápětí je nejstarší záznam označen jako neplaný a poslední přijaté (uložené na místo neplatného záznamu) jako nejnovější. User Bindings – jsou vytvářeny a udržovány aplikačními objekty. Záznamy se mění příkazy uvedenými v tabulce. Příkaz
Název
Popis
B+
Add Binding
vytvoří záznam v tabulce spojení na zadaném indexu
B-
Remove Binding
odstraní záznam v tabulce spojení na zadaném indexu
BV
View Binding
zobrazí záznamy v tabulce spojení
WB
Write Binding
zapíše tabulku do paměti
Tabulka 2 Příkazy pro editaci záznamů
21
5. Realizace Hlavním úkolem bylo vytvoření firmwaru pro mikrokontrolér, který byl schopný reagovat na příkazy posílané počítačem přes PAN. PAN byla tvořena XBee moduly, pracující v transparentním režimu.
5.1. Blokové schéma zapojení Projekt se skládá ze dvou částí, první částí byl počítač (PC) s XBee modulem nastaveným jako koordinátor sítě a druhou částí je mikrokontrolér (MCU) s XBee modulem.
Obr. 6 Blokové schéma
5.2. Použitý HW Deska XBIB-R-DEV od výrobce Digi International je určena přímo pro RF moduly XBee. Je vybavena sériovým rozhraním RS232, přes které se připojuje k počítači. Deska je napájena DC 6-20V, je vybavena RSSI indikátorem ukazující sílu signálu posledního přijatého paketu. Dále je vybavena LED indikátorem, který monitoruje aktivitu Obr. 7 Deska XBIB-R-DEV
UART TX, UART RX, RF RX, RF TX a připojení do PAN.
22 Převodník UC232A od výrobce Aten, který převádí rozhraní USB na RS232 a je schopný pracovat až do rychlosti 230 Kbps. Převodník je kompatibilní s operačními systémy WIN 98, WIN ME, WIN 2K, WIN 2003, WIN XP, Obr. 8 Převodník Aten UC 232A
Windows vista, WIN 7, LINUX a Mac OS 8.6/9/10 RF modul XBee series 2 od výrobce Digi Interantional je navržen pro protokol ZigBee. Vyniká nízkou spotřebou energie, nízkou cenou, a proto se používá především v bezdrátových senzorových sítích. Pracuje v pásmu 2.4
Obr. 9 RF modul XBee series 2
GHz s rychlostí přenosu dat 250 Kbps a je napájen DC 3.3V. Dosah modulů je 40m v budovách a 100m mimo budovy. Arduino Duemilanove je deska pro mikrokontrolér. Může být osazena mikrokontrolérem ATmega128 nebo v mém případě ATmega328. Disponuje 14 digitálními I/O piny, 6 analogovými vstupy, USB připojením, 16 MHz oscilátorem,
Obr. 10 Arduino Duemilanove
napájecím konektorem, ICSP konektorem a resetovacím tlačítkem. Napájení je možné přímo z USB nebo napájecím konektorem DC 6-12V. Velikost paměti programu 32KB (ATmega328), z toho 2KB používá bootloader a paměť dat je velikosti 2KB (ATmega328). Programování je možné externím programátorem přes ICSP nebo přes USB a bootloaderu přímo v mikrokontroléru.
5.3. Popis řešení na straně PC XBee modul na straně PC byl nastaven jako koordinátor PAN, pracující v transparentním režimu. Byl osazen do desky XBIB-R-DEV, která se k počítači připojuje přes sériové rozhraní RS232. Rozhraní RS232 je u dnešních počítačů a notebooků nahrazeno sériovým rozhraním USB (Universal Serial Bus), z toho důvodu bylo potřeba pro připojení desky XBIB použít převodník USB/RS232. K posílání dat a nastavení XBee modulu byl použit program X-CTU.
23
5.3.1. X-CTU X-CTU je program, který je ke stažení na webových stránkách výrobce XBee modulů společnosti Digi International. Pomocí X-CTU je možno měřit sílu signálu, chybovost síťe, přes zabudovaný terminál posílat a přijímat data, číst a modifikovat parametry XBee modulu, aktualizovat a měnit typ firmware XBee modulu. Na obrázku 6 je ukázka programu X-CTU, otevřeného na kartě Modem Configuration. Jsou zde vidět načtené parametry připojeného XBee modulu, typ XBee modulu (XB24-B) a nahraný firmware (ZIGBEE COORDINATOR AT).
Obr. 11 Program X-CTU
5.3.2. Nastavení XBee modulu Po připojení XBee modulu k počítači bylo potřeba zkontrolovat funkci a nastavení modulu. To bylo provedeno programem X-CTU na kartě Modem Configuration tlačítkem Read. Před načtením modulu je doporučeno aktualizovat program X-CTU, aby byla zajištěna aktuálnost databáze firmwarů XBee modulů, jinak by mohl nastat problém s načtením modulu.
24 Po načtení modulu bylo potřeba zkontrolovat, zda je v modulu nahrán firmware ZIGBEE COORDINATOR AT. Tento typ firmwaru nastaví XBee modul jako koordinátora v transparentním režimu. Jestliže byl v modulu nahrán jiný typ firmwaru, z roletového menu byl vybrán ZIGBEE COORDINATOR AT a tlačítkem Write zapsán do XBee modulu. Nyní byl připojen a nastaven XBee modul na straně PC jako koordinátor. Jakmile je koordinátor spuštěn, vybere neobsazený kanál, stanoví PAN ID a vytvoří PAN. Tento stav je na desce XBIB signalizován blikáním LED s intervalem 1x za sekundu. Nyní se můžou do PAN připojovat další zařízení, kterým lze po připojení posílat data.
5.4. Popis řešení na straně MCU XBee
modul
v transparentním
na
straně
režimu
MCU
byl
(firmware
nastaven ZIGBEE
jako
směrovač
ROUTER/END
pracující
DEVICE)
a
k mikrokontroléru připojen přes jednotku UART. RF data poslaná počítačem přijal přes XBee modul mikrokontrolér, firmware mikrokontroléru data vyhodnotil, provedl akci a poslal zpět zprávu. MCU byl schopný na základě přijatých dat ovládat své periferie, v mém případě především číst a nastavovat parametry XBee modulu.
5.4.1. Vývojové nástroje Firmware pro MCU byl psán v prostředí AVR studio 5.0 v jazyce C/C++. Jedná se o integrované vývojové prostředí pro mikrokontroléry Atmel AVR, které má integrováno simulátor AVR procesorů a další ladící nástroje pro mikrokontroléry Atmel. Aby bylo možno psát firmware v jazyce C/C++, musí se do AVR studia integrovat překladač AVR GCC, který je součástí balíku WinAVR. Po
překladu
programu
bylo
potřeba
vytvořený
HEX
file
nahrát
do
mikrokontroléru. To bylo možné v případě Arduina udělat dvěma způsoby, buď pomocí externího HW programátoru přes konektor ICSP, nebo bootloadrem nahraným přímo v mikrokontroléru. V projektu bylo využito druhé možnosti, tedy bootloaderu v mikrokontroléru. Bootloader je standardem komunikačního protokolu STK500.
25
5.4.2. Řešení firmwaru do MCU Firmware pracuje ve třech základních stavech. Počáteční loopback stav, stav ovládání XBee a stav ovládání periférií. V počátečním stavu se firmware chová jako loopback, to znamená, data přijatá přes UART RX jsou přes UART TX odeslána zpět. Po přijetí třech znaků s ASCII kódem 0x2D (-) je firmware ve stavu ovládání XBee. V tomto stavu očekává AT příkaz pro XBee modul nebo příkaz pro přepnutí do stavu ovládání periférií. Ve stavu ovládání periferií firmware očekává příkazy, kterými se mohou ovládat periferie MCU. V mém příkladě je toto ukázáno na LED diodě, připojené na portu B mikrokontroléru.
Obr. 12 Vývojový diagram firmwaru MCU
26 Popis funkcí programu firmware Funkce int main(void) Datové struktury: enum inputs {výčet symbolů pro vstupy} enum states {výčet stavů automatu (s0-s9)} buffer char input_buffer velikosti LEN_IN_BUF states state_automat [počet stavů +1][počet symbolů pro vstupy +1]
Proměnné: inputs input states state=s0 int read_index=0, write_index=0 char input_char
1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11)
Funkce: inputs readBuffer(pointer buffer,reference r_index,reference w_index) { if(r_index==w_index){ buffer je prázdný, nebo plný if(prázdný) return symbol žádný vstup } input_char = buffer[r_index] r_index=(r_index+1) mod LEN_IN_BUF return symbol pro hodnotu input_char }
1) 2) 3) 4) 5) 6) 7) 8) 9) 10)
void main() { inicializační funkce() input=readBuffer(input_buffer,read_index,write_index) while(true){ vykonání funkce (akce) na základě hodnoty input a state state=state_automat[state][input] input=readBuffer(input_buffer,read_index,write_index) } }
1) 2) 3) 4) 5) 6) 7) 8)
Obsluha přerušení UART RX – načítání input_bufferu: void obsluha_preruseni() { input_buffer[write_index]=znak z UART RX write_index=(write_index+1) mod LEN_IN_BUF if(write_index==read_index) plný input_buffer => vypnutí přerušení UART RX => příznak plného bufferu }
První je volána funkce void init(), která provede nastavení MCU. Nejdříve inicializuje jednotku USART: povolí RX, TX, přerušeni TX, přerušení RX, nastaví délku přijímaného (resp. odesílaného) znaku na 8 bitů, 1 stop bit, baud rate 9600. Dále nastaví pátý pin portu B, ke kterému je připojena LED, jako výstupní. Po počátečním nastavení program čeká na data posílaná z počítače. Data vstupují do programu přes inputBuffer (vstupní buffer) a vystupují z programu přes outputBuffer (výstupní buffer). Buffery jsou implementovány jako kruhová fronta, každý buffer má index pro zápis a index pro čtení (i_write_..., i_read_...).
27 Jakmile UART RX přijme znak, vyvolá přerušení RX, to je obslouženo funkcí ISR(USART_RX_vect), která uloží znak z UDR0 do vstupního bufferu. Buffer je čten funkcí
inputs
readBuffer(char
*buffer,
int
&read_index,
int
&write_index), která vrátí zástupný symbol pro načtený znak z výčtu enum inputs {a,t,l,min,ltr,dec,hex,spc,cr,str,nt,oth}. Zástupný symbol
a
t
l
min
ltr
dec
hex
spc
cr
str
nt
oth
Odpovídající znak
A,a
T,t
L,l
-
A-Z a-z
0-9
A-F a-f
mezera
\r
*
žádný znak
jiný
Program pracuje jako stavový automat, dle stavu a načteného znaku volá funkci (akci), která se má vykonat. Po provedení funkce automat přejde do dalšího stavu a znova čte vstupní buffer. Automat má 10 stavů, reprezentovaných výčtem enum states{s0,s1,s2,s3,s4,s5,s6,s7,s8,s9}.
Obr. 13 Schéma stavového automatu
28 Funkce void NT() Prázdná funkce, která neprovede žádnou akci. Funkce void A0() Uloží načtený znak do výstupního bufferu a inkrementuje zapisovací index o jedna. Funkce void A1() Nuluje buffery a zapíná přerušení od UART RX. Funkce void A2() Nuluje výstupní buffer a posílá zprávu počítači, že je připraven přijímat AT příkazy nebo příkaz přepnutí do režimu ovládání periférií. Funkce void A3() Uloží přijatý znak do výstupního bufferu, odešle počítači zprávu o vstupu XBee modulu do příkazového režimu a přepne XBee modul do příkazového režimu. Pak odešle AT příkaz, uložený ve výstupním bufferu do XBee modulu a přepne modul do normálního režimu. Nakonec odešle počítači zprávu, která obsahuje příkaz odeslaný XBee modulu a odpověď na něj. Funkce void A4() Pošle zprávu počítači o připravenosti přijímat příkazy AT nebo příkaz přepnutí do režimu ovládání periférií. Funkce void A5() Odesílá přijatý znak přes UART TX. Funkce void A6() Nastaví šestý bit portu B (PORTB5) na jedna (zapne se LED). To je provedeno voláním funkce void LED(int b). Funkce void A7() Nastaví šestý bit portu B (PORTB5) na nulu (vypne se LED). To je provedeno voláním funkce void LED(int b). Funkce void A8() Odešle počítači zprávu o připravenosti přijímat příkazy pro LED.
29 Funkce void A9() Zjistí stav pátého pinu portu B a zjištěnou informaci odešle počítači. Funkce void delay(int time_ms) Využívá 16-bitový časovač, kterým realizuje veškeré čekání procesoru v programu. Čekání je zadáno v milisekundách v parametru funkce. Tato hodnota se přepočítá a je uložena do porovnávacího registru OCR1A. Dále je nastavena dělička frekvence v kontrolním registru TCCR1B na hodnotu clk/1024, následkem toho se hodnota časovače v registru TCNT1 zvýší jednou za 1024 taktů procesoru. Shoda hodnot v registrech TCNT1 a OCR1A je signalizována příznakem OCF1A v registru příznaků TIFR1. Jakmile je hodnota příznaku 1, funkce skončí. Výpočet hodnoty pro OCR1A1: OCR1A = time_ms ×
16 000 000 1000 × 1000
Funkce void output(char ch) Odešle znak jednotkou UART TX. Znak je předaný parametrem funkce a odeslání proběhne uložením znaku do registru UDR0. Před uložením je volána funkce void wait_for_empty_UDR(), která zajistí prázdný registr UDR0. Funkce void output(char ch[],int len) Odešle řetězec znaků jednotkou UART TX, funguje obdobně jako void output(char ch) Funkce void RX(int b) Na základě parametru vypne/zapne jednotku UART RX. Funkce void RX_interupt(int b) Na základě parametru vypne/zapne přerušení jednotky UART RX. Funkce void LED(int b) Na základě parametru vypne/zapne LED diodu, připojenou na šestý pin (PORTB5) portu B (PORTB). Funkce void enterCommMode() Přepne XBee modul do příkazového režimu, odesláním třech znaků s ASCII kódem 0x2B (+).
1 první hodnota 1000 je zaokrouhlená hodnota děličky, druhá hodnota 1000 je zde z důvodu počítání času v milisekundách.
30
5.4.3. HW řešení Základem HW řešení byla deska Arduino, osazená mikrokontrolérem ATmega 328P, ke které byl připojen RF modul XBee series 2. Datový výstup modulu (DOUT) byl připojen na pin 0 konektoru J1 (RXD) a datový vstup modulu (DIN) na pin 1 konektoru J1 (TXD). K DIN byla ještě zapojena Zenerova dioda, která upravovala napěťovou úroveň signálu vstupujícího do modulu, protože mikrokontrolér posílá signál v rozsahu 0 – 5V. Deska byla napájena 6V (čtyři tužkové baterie AA), které převádí na 5V a 3.3V (3.3V max do 50mA). 5V je vyvedeno na pin 3, 3.3V na pin2, GND na pin 4 a na pin 5 POWER konektoru. Požadavky modulu na napájení jsou 3.3V 40mA, z tohoto důvodu byl modul napájen přímo z desky.
31
Obr. 14 Schéma zapojení Arduina a XBee modulu
32
5.5. Realizace XBee series 2 sítě Jako první byl spuštěn koordinátor sítě způsobem popsaným v části 5.3. Po nastartování koordinátora byl spuštěn mikrokontrolér s připojeným XBee modulem jako směrovačem, který se okamžitě připojil do sítě.
5.5.1. Ověření spojení Aby bylo možné posílat data mikrokontroléru, bylo potřeba ověřit připojení směrovače ke koordinátorovi a zjistit adresu směrovače. To bylo provedeno přepnutím koordinátora do příkazového režimu a odeslání AT příkazu ND (Node Discovery), který najde všechny uzly v dosahu. Na obrázku je vidět odpověď na příkaz ND. 61A1 - 16-bitová síťová adresa 0013A200400A3F4B - 64-bitová adresa RRR - ASCII identifikátor uzlu FFFE
-
síťová
adresa
rodiče,
v tomto případě koordinátora 01 - typ zařízení (0-koordinátor, 1směrovač, 2-koncové zařízení) 00 - stav C105 - profilové ID 101E - ID výrobce Obr. 15 Odpověď na AT příkaz ND
Nyní byla zjištěna 64-bitová adresa cílového zařízení (směrovače), kterou musíme zadat koordinátorovi, aby bylo možné poslat data. 64-bitová adresa byla nastavena AT příkazy DL (400A3F4B) a DH (13A200), nebo přes ASCII identifikátor AT příkazem DN (RRR). Nyní bylo možné posílat příkazy mikrokontroléru.
33
6. Měření síly signálu Dalším cílem této práce bylo měření síly signálu mezi XBee moduly v závislosti na vzdálenosti a následné porovnání naměřených hodnot s matematickými výsledky.
6.1. Antény K přijímání a vysílání radiových signálů se používají antény. Je to část vysokofrekvenčního vedení upravená k účinnému vyzařování energie do prostoru. Aby bylo možné spočítat sílu signálu na straně přijímače, musíme znát dvě základní vlastnosti antén: 3) Zisk antény 4) Aperturu antény
6.1.1. Zisk antény Zisk antény G se měří v decibelech [dBi] a vyjadřuje množství vyzářené energie v určitém směru, v poměru s množstvím vyzářené energie izotropní anténou ve stejném směru. Decibel dB, dBm, dBi Decibel dB je bezrozměrná fyzikální logaritmická míra, vyjadřující podíl dvou hodnot stejné veličiny. Využívá se v tomto případě pro měření výkonu dBm a zisku dBi. Decibel dB – vyjadřuje podíl libovolných dvou hodnot stejné veličiny X1 a X2. (1)
X = 10 log
; [dB]
V jednotkách dB můžeme vyjádřit například pokles, nebo vzestup signálu. Řekneme-li kupříkladu, že výstupní signál vzrostl o +3 dB znamená to, že na výstupu máme 2x silnější signál. 3[dB] = 10 log
S S
=> 10
,
=
S S
=2
Decibel dBm – vyjadřuje podíl určitého výkonu, k referenčnímu výkonu P0 = 1 mW. (2)
P = 10 log
; [dBm]
34 Decibel dBi – vyjadřuje zisk antény v porovnání s izotropní anténou – vztah (6). Izotropní anténa Jedná se o ideální anténu s kulovou směrovou charakteristikou, která vyzařuje do všech směrů energii o stejné intenzitě.
Obr. 16 Izotropní anténa
Matematicky můžeme izotropní anténu popsat jako poměr výkonu Pt přivedeného do antény, k povrchu vyzařované energie ve vzdálenosti d. Poměr vyjadřuje hustotu výkonu Wt v každém bodě ve vzdálenosti d od antény. (3)
; [mW⁄m2 ]
W =
Reálná anténa
Reálná anténa zmenšuje plochu S vyzařované energie a tím zvyšuje hustotu výkonu Wtr v dané ploše ve vzdálenosti d proti izotropní anténě. (4)
W =
; [mW⁄m ]
Obr. 17 Reálná anténa (parabola)
Zisk antény matematicky Zisk antény G vyjadřujeme jako poměr ploch vyzařované energie v určitém směru skutečné a izotropní antény. Musíme tedy znát směrový diagram antény. (5)
G=
=
=
35 (6)
G = 10 log
; [dBi]
6.1.2. Apertura antény Apertura Ar je účinná plocha antény kolmá k ose příjmu a vyjadřuje účinnost, s jakou dokáže anténa přijímat radiové vlny. Tato veličina není vymezena jen viditelnou plochou antény, neboť anténa svými vlastnostmi zasahuje i mimo ni. Apertura je dána vztahem: (7)
A =G
; [m ]
Kde Gr je zisk antény přijímače a λ vlnová délka přijímaných radiových vln.
6.1.3. Výpočet síly přijímaného signálu
Obr. 18 Šíření a příjem radiových vln
Do vysílací antény o zisku Gt je přiveden výkon Pt. Ve vzdálenosti d se nachází přijímací anténa zisku Gr, která přijme výkon Pr. Velikost přijatého výkonu Pr je závislá na hustotě výkonu Wt v ploše St, ve vzdálenosti d a apertuře přijímací antény. (8)
P = W A ; [mW]
Po dosazení ze vztahů (4) a (7) dostáváme: (9)
P =
Za plochu St dosadíme ze vztahu (5): (10)
P =P
G ; [mW] G = PG G
; [mW]
36 Počítáme-li výkon v decibelech, převedeme vztah (10) následovně: λ
2
(11)
Pr = 10 log Pt Gt Gr
(12)
P = P + G +G + 20 log
(13)
λ = ; [m]
4πd
Vlnovou délku vypočítáme dle vztahu:
; [dBm] ; [dBm; dBm, dBi]
Kde c je rychlost světla v [m/s] a f je frekvence v [Hz].
6.1.4. Směrový diagram antény XBee modulu Anténa XBee modulu je typu monopól a byla naměřena v laboratořích fakulty. Výsledkem je směrový diagram antény.
6,00 4,00 2,00 0,00 -2,00 -4,00 -6,00 -8,00 -10,00 -12,00
Obr. 19 Směrový diagram antény XBee modulu [dBi]
37
6.2. Způsob měření síly signálu Měřeníí bylo provedeno mezi dvěma XBee moduly, z nichž jeden byl stacionární a druhý byl posouván s krokem 20 m. Stacionární část byla realizována způsobem popsaným v kapitole 5.3 a posouvaná část způsobem popsaným v kapitole 5.4. XBee modul zaznamenává sílu signálu posledního přijatého paketu, která je shodná s hodnotou RSSI. Hodnotu přečteme v konfiguračním režimu AT příkazem DB, nebo využitím programu X-CTU, X který má nástroj na měření signálu. Měření bylo provedeno na přímou viditelnost v zastavěné oblasti na vzdálenost 20 m až 110 m.
6.2.1. Postup měření 1) Naměřit vzdálenosti 20 m, 40 m, 60 m, 80 m, 100 m, 110 m od stacionární části. 2) Pro každou vzdálenost odeslat 50 paketů, z přijatých ch odpovědí zaznamenat mezní hodnoty síly signálu a kontrolovat ztrátovost paketů. 3) Modul otočit o 90° a provést měření podle bodu 2). Bod 3) opakovat, dokud modul postupně neotočíme o 360°.
Obr. 20 Orientace XBee modulu
4) Naměřené hodnoty odnoty porovnat s vypočtenými.
38
Obr. 21 Program X-CTU - měření síly signálu
6.2.2. Naměřené a vypočtené hodnoty Vypočtené hodnoty byly spočteny dle vztahů (12) a (13). Otočení modulu 0° 90° 180° 270°
Ztráty [%] Signál [dBm] Ztráty [%] Signál [dBm] Ztráty [%] Signál [dBm] Ztráty [%] Signál [dBm]
Vypočtené hodnoty [dBm]
20 [m]
40 [m]
60 [m]
80 [m]
100 [m]
110 [m]
0
0
0
0
0
100
-56 ÷ -57
-62 ÷ -63
-75 ÷ -77
-75 ÷ -77
-77 ÷ –80
-
0
0
0
0
0
0
-55 ÷ -58
-68 ÷ -70
-74 ÷ -78
-73 ÷ -76
-79 ÷ -82
-79 ÷ -83
0
0
0
0
0
0
-54 ÷ -55
-60 ÷ -63
-76 ÷ -77
-71 ÷ -75
-74 ÷ -77
-77 ÷ -83
0
0
0
0
0
0
-51 ÷ -52
-60 ÷ -61
-74 ÷ -78
-73 ÷ -74
-74 ÷ -75
-82 ÷ -83
-58
-65
-68
-71
-73
-74
Tabulka 3 Naměřené a vypočtené hodnoty
39
6.2.3. Zhodnocení měření 0 0
50
100
150
-20
Síla signálu [dBm]
-40 Otočení modulu 0° Otočení modulu 90° -60
Otočení modulu 180° Otočení modulu 270° Vypočtená síla signálu
-80
-100
-120
Vzdálenost [m] Obr. 22 Graf závislosti síly signálu na vzdálenosti
Naměřené hodnoty síly signálu se v některých případech značně liší od vypočtených hodnot. Je to pochopitelné, protože vypočtené hodnoty jsou ideální, neberou v potaz ztráty, ani vlivy prostředí. Rozdíl je nejvíc patrný ve větších vzdálenostech vysílacího a přijímacího modulu. Modul má dle specifikace citlivost přijímače -95 dBm, ale v reálných podmínkách se ukázalo, že citlivost přijímače je okolo -87 dBm. Vzdálenost, na kterou spolu dva moduly komunikují bez ztrát paketů je 100 m (na přímou viditelnost). Největší změny síly signálu byly patrné ve vzdálenosti 0 m až 60 m, ve vzdálenosti 60 m a 80 m byly rozdíly nepatrné, v některých případech byl signál v 80 m lepší, než v 60 m. Od 80 m síla signálu pomalu slábla, až za hranici 110 m, za kterou se signál ztratil. Modul byl schopný přijímat data i ve vzdálenosti 110 m, ale jen ve třech směrech (90°, 180°, 270°). Vzhledem k směrovému diagramu (obr. 19), který není ideální kruh, je tento jev možný.
40
7. Závěr Cílem práce bylo navrhnout firmware pro mikrokontrolér ovládající XBee modul a provést měření síly signálu. Firmware byl navržen pro XBee modul pracující v AT režimu, a v tomto ohledu se podařilo splnit zadání ve všech bodech. Firmware dokáže přijímat data, na jejich základě ovládat XBee modul a jiné periferie. Ve firmwaru nebyla řešena žádná omezení AT příkazů, takže k ovládání XBee modulu bylo možné využívat celou množinu příkazů. Firmware kontroluje jen základní syntaxi AT příkazů, neboť kontrolu příkazů provádí XBee modul a příkaz přijme, nebo odpoví ERROR. Při měření síly signálu jsem v každém měření získal více hodnot a ty jsem zapsal do tabulky 3 v intervalech. Ojediněle se stalo, že jsem v jednom měření obdržel hodnotu, která se mnohdy lišila až o ±10 dBm proti ostatním hodnotám v intervalu. Vzhledem k podmínkám, ve kterých měření probíhalo, mohl tento jev způsobit odraz od objektů v blízkosti měření, proto jsem tyto hodnoty do výsledku neuváděl. Bylo by zajímavé měření zopakovat na ploše mimo zastavěnou oblast, kde se nevyskytují žádné objekty, od kterých se může signál odrážet. Potom by jediným odrazovým místem byla plocha, na které by se provádělo měření. Na základě této práce jsem pronikl do základů technologie ZigBee, zkusil jsem si naprogramování firmwaru a poznal problémy s touto oblastí spojené. Při měření signálu jsem se seznámil s teorií šíření radiových vln a s parametry antén. Chtěl bych se touto technologií nadále zabývat, začal bych přeprogramováním firmwaru pro API rozhraní, vyzkoušením práce s aplikačními profily, endpointy a clustery. Dalším zajímavým pokračováním by bylo naprogramování vlastního softwaru pro PC, který by monitoroval a nastavoval síť, ovládal zařízení v síti a to vše přátelským uživatelským rozhraním.
41
Literatura [1] Burkhard Mann. C pro mikrokontroléry [2] Arduino. Arduino duemilanove schematic http://arduino.cc/it/uploads/Main/arduino-duemilanove-schematic.pdf [3] Arduino. Arduino Duemilanove http://arduino.cc/en/Main/ArduinoBoardDuemilanove [4] Digi International Inc. XBee/XBee PRO ZB RF Modules http://ftp1.digi.com/support/documentation/90000976_K.pdf [5] Atmel. ATmega48A/PA/88A/PA/168A/PA/328/P http://www.atmel.com/Images/doc8271.pdf [6] Antonín Vojáček. ZigBee - novinka na poli bezdrátové komunikace http://www.hw.cz/Rozhrani/ART1299-ZigBee---novinka-na-poli-bezdratovekomunikace.html [7] Wikipedia. IEEE 802.15.4 http://en.wikipedia.org/wiki/IEEE_802.15.4 [8] ZigBee Allinace. ZigBee Technology http://www.zigbee.org/About/AboutTechnology/ZigBeeTechnology.aspx [9] ZigBee Alliance. Specifications http://www.zigbee.org/Specifications.aspx [10]
Patrick Zandl. Mesh sítě – P2P architektura v bezdrátových sítích
http://www.marigold.cz/item/mesh-site-p2p-architektura-v-bezdratovych-sitich [11]
Udin Harun. Dynamic Backoff for Wireless Personal Networks
http://alkautsarpens.wordpress.com/2008/06/27/dynamic-backoff-forwireless-personal-networks/ [12]
Parametry antén
http://www.radiolokatory.cz/teorie/a_parametry.html
42
Příloha A Seznam použitých zkratek AODV Ad-hoc On-demand Distance Vector API Aplication Programing Interface DIN Data In DOUT Data out FFD Full Function Devices ICSP In Circuit Serial Programming IEEE Institute of Electrical and Electronics Engineers MCU Mikrokontrolér PAN Personal Area Network PC Počítač RF Radio Frequency RFD Reduced Function Devices RX Receiver TX Transmitter UART Universal Asynchronous Receiver Transmitter USB Universal Serial Bus ZDO ZigBee Device Object
43
Příloha B Obsah CD \Doc\Firmware pro XBee moduly.docx \Doc\Firmware pro XBee moduly.pdf \Firmware\Firmware.cpp \Firmware\Firmware.hex Doc – složka obsahuje tento dokument ve formátu PDF a DOCX. Firmware.cpp – zdrojový kód firmwaru pro MCU ATmega328P Firmware.hex – HEX soubor pro MCU ATmega328P