SVETELEKTRO

17. apríla 2012   Verzia pre tlač Verzia pre tlač

Vývojová doska pre RF moduly XBee – 1.časť


zawin

Popis bezdrôtového štandardu ZigBee a modulov XBee

Štandard ZigBee


Pojem XBee je obchodným názvom bezdrôtových komunikačných zariadení vyrábaných firmou Digi International. Tieto zariadenia využívajú bezdrôtový komunikačný protokol ZigBee, ktorá vychádza zo štandardu 802.15.4. S týmto bezdrôtovým štandardom možno komunikovať na bezlicenčných pásmach 2,4 GHz, 900 MHz a 868 MHz. Štandard je určený na priemyselné použitie.
Medzi hlavné výhody ZigBee modulov patrí najmä jednoduchosť protokolu, nízka cena, nízka spotreba elektrickej energie či možnosť tvorby rozsiahlych sietí. ZigBee sa teda nesnaží pôsobiť ako konkurencia pre Wi-Fi či Bluetooth, ale snaží sa byť ich doplnkom.

PRVKY SIETE ZIGBEE


Koordinátor:
 vyberá komunikačný kanál a PAN ID
 povoľuje routerom a koncovým zariadeniam pripojiť sa do siete
 nemôže byť v režime spánku
 môže sa podieľať na preposielaní dát
 môže dočasne ukladať dáta pre koncové zariadenia, ktoré sú v režime spánku

Router:
 musí sa najskôr pripojiť do siete aby mohol posielať, prijímať alebo preposielať dáta
 po pripojení povoľuje routerom a koncovým zariadeniam pripojiť sa do siete
 po pripojení môže preposielať dáta
 nemôže byť v režime spánku
 môže dočasne ukladať dáta pre koncové zariadenia

Koncové zariadenie:
 musí sa najskôr pripojiť do siete aby mohol posielať alebo prijímať dáta
 nemôže povoliť ostatným zariadeniam pripojiť sa do siete
 dáta ostatným zariadeniam môže len cez router alebo koordinátor
 môže byť v režime spánku a tak ušetriť svoju energiu


Obr. č. 2.1 – Schéma siete

TOPOLÓGIA SIETE ZIGBEE


So štandardom ZigBee možno využívať 3 topológie siete. Ide o topológiu Star, Cluster Tree a Mesh.
Topológia Star (hviezda) má jedného koordinátora, ktorý je zodpovedný za štart a inicializáciu siete a za udržiavanie informácii o ostatných uzloch siete. Všetky uzly, vrátane koordinátora komunikujú priamo z koordinátorom.
V topológiach Cluster Tree (Stromová) a Mesh (Pavúková) má koordinátor jednoduchšiu úlohu. Je zodpovedný za štart siete a nastavenie kľúčových parametrov, avšak rozširovanie siete závisí na smerovačov. Z ich pomocou možno sieť rozširovať ľubovoľne. Pohyb dátových a konfiguračných dát je v topológii Cluster Tree riadený hierarchickou smerovacou stratégiou, na rozdiel od topológie Mesh, kde každý uzol komunikuje z každým rovnocenným uzlom a musí si teda komunikáciu riadiť sám.


Obr. č. 2.2 – Druhy topológie siete

MODULY XBEE


Tieto moduly sa vyrábajú v 2 základných variantoch Xbee a Xbee PRO.
Ja budem pracovať s modulom XBee PRO 2. Ide teda o druhú generáciu tohto modulu. Oproti štandardnej verzii XBee sa odlišuje najmä vyšším vysielacím výkonom a teda aj dosahom, čo sa však bohužiaľ negatívne prejavilo aj vyššou spotrebou modulu.

Špecifikácia modulu XBee PRO 2:
 Napájacie napätie: 3.0 – 3.4 V
 Prúdový odber:
o Pri vysielaní – 295mA pri 3,3 V
o Pri prijme – 45mA pri 3,3 V
o Pri nečinnosti (Prijímač vypnutý) – 15mA
o Pri spánku – 3,5uA
 Dosah:
o 90 m v budove
o 3200 m vo voľnom priestranstve
 Vysielací výkon: 50mW
 Citlivosť prijímača: -102 dBm
 Rýchlosť sériového rozhrania (softwarovo nastaviteľné): 1200 bps – 1 Mbps
 Frekvenčné pásmo: 2,4 GHz

SPÔSOB PRENOSU DÁT


Moduly XBee slúžia primárne na bezdrôtový prenos dát. Dáta môžeme prenášať pomocou asynchrónnej sériovej linky (ďalej ako UART) s napäťovou úrovňou v rozsahu 2.8 – 3.4V. Spôsob prenosu dát možno vidieť na Obr. 3.1.


Obr. 3.1. Bloková schéma bezdôtového prenosu dát pomocou XBee modulov

Každý dátový bajt posielaný cez UART pozostáva zo štartovacieho bitu (log. 0), 8 dátových bitov a stop bitu (log. 1). Na obrázku č. 3.2 možno vidieť vyslanie decimálneho čísla 31.


Obr. 3.2. Prenos dát po asychrónnej sériovej linke

Rýchlosť, paritu a počet stop bitov možno nastaviť pomocou AT príkazov v XBee module.

Vysielanie dát:
Dáta posielame cez UART na pin DIN. Prijaté dáta sa ukladajú do vyrovnávacej pamäti (Serial Receive Buffer) pokiaľ nebudú spracované. Ak je to možné, dáta sú preposielané ihneď vysielaču.

Možné problémy:
– Ak prijímač prijíma súvislí tok dát, dáta vo vyrovnávacej pamäti nebudú odoslané pokiaľ tento tok neustane
– Ak modul vysiela packet dát, modul musí vyhľadať cieľovú adresu a nájsť cestu k nej. Po odoslaní dát modul môže opätovne vyslať dáta, ak neprišlo potvrdenie že dáta boli doručené v poriadku. Tento problém môže spôsobiť oneskorenie odoslania nachádzajúcich sa vo vyrovnávacej pamäti.

Aby sme týmto problémom zabránili (hlavne pri posielaní veľkého množstva dát), musíme kontrolovať stav bitu CTS (Clear to Send). Keď vyrovnávacej pamäti chýba 17 bajtov k jej naplneniu bit CTS sa nastaví do log. 1, čo dáva pokyn zariadeniu aby zastavil posielanie dát. Tento signál sa deaktivuje (nastaví do log. 0), pokiaľ voľne miesto vyrovnávacej pamäti presiahne 34 bajtov.

Prijímanie dát:
Dáta prijaté cez prijímač putujú do vyrovnávacej pamäti (Serial Transmit Buffer). Dáta sú následne posielané na výstupný pin DOUT ihneď po ich prijatí, pokiaľ nie je nastavený bit RTS (Ready to Send). Pokiaľ je bit RTS nastavený (log. 1), modul uchováva dáta vo vyrovnávacej pamäti a čaká na nastavenie bitu do log. 0.

Možné problémy pri ktorých môže dôjsť k strate dát:
– Ak sa dáta prijímajú vyššou rýchlosťou ako je rýchlosť odosielania dát cez UART
– Ak zariadenie zastavilo prenos dát pomocou RTS.
– Pri obidvoch problémov vzniká hromadenie dát vo vyrovnávacej pamäti. Pri jej pretečení dôjde k ich strate.
– Po prijatí dát posiela modul potvrdzujúcu správu o úspešnom prijatí dát.


Obr. 3.3. Vnútorná bloková schéma modulu (vysielanie a prijímanie dát)

MÓDY NASTAVENIA


Nastavovať parametre modulu XBee možno v 2 módoch – Transparentný a API (Application Programming interface).

Transparentný mód:
V tomto režime primárne funguje zariadenie ako bezdrôtová sériová linka.
Dáta sú posielané na pin modulu DIN a následne sú vyslané na iný modul, kde sa dáta odošlú na pin DOUT.
Na nastavenie modulu slúži command mód. Pred vstupom do command módu odošle XBee modul všetky dáta z prijímacej vyrovnávacej pamäti.

Aby sme mohli vstúpiť do Command módu musíme vykonať nasledovný postup:
– Vyčkáme ochranný interval (závisí od nastavenia GT – Guard time). Počas tohto času nesmieme vyslať žiadne dáta do modulu
– Pošleme tri ASCII znaky „+++“ (možno zmeniť nastavením CC – Command sequence Charakter)
– Opäť vyčkáme ochranný interval (GT).

Pri úspešnom vstupe do command módu nám modul pošle cez UART odpoveď „OK
“. Následne môžeme posielať modulu príkazy na vyčítanie alebo zmenu jeho nastavení.
Príkazy majú nasledovný tvar: predpona AT, príkaz, medzera, parameter príkazu a znak (Carriage Return).
Tvar AT príkazu možno vidieť na Obr. č.3.4.


Obr. 3.4. Tvar AT príkazu

Po každom command príkaze počkáme na potvrdenie príkazu prijatím „OK
“. V prípade že príkaz nebude prijatý správne, príde odpoveď „ERROR
.“
Keď posielame príkaz na zistenie stavu určitého parametru, ako odpoveď nám príde hodnota tohto parametra.
Command mód zariadenia trvá len určitý čas. Tento čas je definovaný nastavením hodnoty CT (Command Mode Timeout). Pokiaľ chceme ukončiť command mód ešte pred týmto časom vyšleme príkaz „ATCN
“.

API mód:
API rozranie je alternatívou k transparentému rozhraniu, rozširuje možnosti zariadenia pri interakcii so sieťou. Dáta vstupujúce a vystupujúce z modulu sú vysielané v rámcoch, ktoré obsahujú udalosti ktoré sa dejú vnútri modulu. Rámec odoslaný do modulu musí obsahovať dátový rámec (prenášané dáta) a príkazový rámec (príkazy slúžiace k nastaveniu parametrov modulu).
Rámec prijatý z modulu obsahuje dátový rámec, príkazový rámec (odpoveď na príkazy) a oznámenie udalosti (čo sa deje v module).

Výhody API rozhrania:
– Možnosť posielať dáta bez predchádzajúcej konfigurácie adries, všetko je súčasťou API paketu
– Je známy odosielateľ paketu, pretože jeho adresa je uvedená v prijatom packete
– Možno odoslať packet naraz všetkým zariadeniam
– Možnosť nastavenia vzdialeného zariadenia
– Obsahuje kontrolný súčet, čo zlepšuje ochranu proti vzniku chýb

Rozhranie API ponúka dva možnosti prenosu. Normálny prenos a prenos s escape znakmi.

Nasledujúce znaky by sa nemali na sériovej linky vyskytnúť:
– 0x7E – oddeľovací znak nového packetu
– 0x7D – escape znak
– 0x11 – XON – znak pre softvérovú kontrolu dátového toku pri sériovej komunikácií
– 0x13 – XOFF – rovnako ako predchádzajúci znak

Nežiaduce bajty filtrujeme tak, že pred neho vložíme escape znak (0x7D) a k bitu pričítame hodnotu 0x20. Režim je indikovaný zároveň cez parameter „AP“. Základná je hodnota 0 je pre transparentný mód, 1 pre API rozhranie a 2 pre API rozhranie s escape znakmi.

Štruktúra API packetu teda vyzerá nasledovne:

Bajt

Popis

0

Oddelovač packetu – má hodnotu 0x7E

1-2

Veľkosť API štruktúry packetu vrátane API identifikátora

3

API identifikátor

4-N

Dátová časť packetu

N+1

Kontrolný súčet

Prvý bajt je štartovací znak 0x7E, ktorým treba začať každý API dátový rámec.
V poradí 2. a 3. bajt udáva veľkosť API štruktúry, teda počet bajtov.
API identifikátor určuje aký API príkaz bude obsiahnutý v dátovej časti packetu.
Zoznam podporovaných API príkazov možno vidieť v tabuľke.

API identifikátor

Hodnota

Modem status

0x8A

AT command

0x08

AT Command – Queue Parameter Value

0x09

ZigBee transmit Request

0x10

Explicit Addressing ZigBee Command Request

0x17

Create Source Route

0x21

AT command Response

0x88

Modem Status

0x8A

ZigBee Transmit Status

0x8B

ZigBee Receive Packet (AO=0)

0x90

ZigBee Explicit RX indicator (AO=1)

0x91

ZigBee IO Data Sample Rx indicator

0x92

XBee Sensor Read Indicator (AO=0)

0x94

Node Identification Indicator (AO=0)

0x95

Remote Command Response

0x97

Over-the-Air Firmware Update Status

0xA0

Route Record Indicator

0xA1

Many-to-One Route Request Indicator

0xA3

Každý API packet sa musí ukončiť kontrolným súčtom. Má veľkosť 1 bajt. Výpočet sa počíta od 1. bajtu s API identifikátorom až po posledný bajt dátovej časti packetu. Kontrolný súčet možno vypočítať nasledovným vzťahom:


, kde Bi je i-ty bajt paketu.

Použitá literatúra


Katalógový list obvodu XBee PRO

PAVEL BADIN,2011, SYSTÉM BEZDRÁTOVÉHO PŘENOSU DAT ZE SNÍMAČE Z OTOČNÉ MEŘICÍ STOLICE, Bakalárska práca, ČVUT

Viktor Černý,2009,Správa prvků bezdrátové sítě, Diplomová práca, ČVUT

Ako sa vám páčil tento článok?
  • Páči sa mi (0)
  • Súhlasím (0)
  • Zábavné (0)
  • Informatívne (0)
Najnovšie články od zawin (zobraziť všetky)

Komentáre (1)

  1. jaromir píše:

    Uh, Xbee… skonstruoval som siet, pozostavajucu z 120-tich Xbee zariadeni, v piatich sietach, fyzicky sa prekryvajucich, ako nahradu existujuceho RS485 spojenia s jednoduchym round-robin prenosom od jedneho mastera k viacerym slave-om a musim uznat, ze to bola a doteraz je najvacsia nocna mora, aku som vo svojom profesnom zivote zazil – vdaka modulom Xbee.

    Xbee moduly su fajn ked ide o zriedkavy prenos dat medzi dvomi, tromi.. trebars piatimi zariadeniami na kratku vzdialenost; ak sa implementuje dobry komunikacny protokol s korekciou chybajucich dat.
    No ak chce clovek simultanny prenos na jednom kanale ale s viacerymi subkanalmi (ID), obcas dokonca aj simultanny prenos na viacerych kanaloch, pripadne je v ceste signalu (hoci aj mala) pohybujuca sa prekazka (napr. prechadzajuci clovek), nedajboze rusenie alebo bohvieco ine… zacina masaker, vypadky spojenia.
    Pretoze je cela inteligencia (nech sa za tymto slovom ukryva cokolvek) ukryta v moduloch, ani besna svina netusi, co robi problemy.

    Cize tie Xbee moduly vyzeraju dobre, na stole to funguje, ale akonahle sa siet modulov zvacsi a prenesie sa do realneho prostredia, zacne skutocna sranda. Inak to chodi dobre 🙂

Pridaj komentár