Knihovna pro Xbee moduly

Marek Frelich, UREL, FEKT, VUT Brno
xfreli00@stud.feec.vutbr.cz

Obsah:

1. Úvod
2. Popis Xbee modulu
3. Popis knihovny
4. Závěr
5. Seznam použité literatury

Úvod

Cílem tohoto projektu je vytvoření knihovny pro ovládání a komunikaci pomocí rádiových Xbee modulů [1]. Knihovna je tvořena v jazyce C pro mikroprocesory AVR (testování probíhalo na Atmega128 [2]). Komunikace s modulem probíhá pomocí API příkazů.

Popis Xbee modulu

Xbee modul komunikuje na frekvenci 2,4GHz (bezlicenční pásmo) pomocí mezinárodního standardu ZigBee (IEEE 802.15.4). Maximální přenosová rychlost modulu je 250kb/s. K mikroprocesoru je modul připojen pomocí asynchronní sériové linky a je ovládán pomocí AT nebo API příkazů, API příkazy jsou výhodnější z důvodů zpětné vazby modulu (paket doručen, stav modulu, atd.). V AT módu se modul chová jen jako most pro sériovou linku mezi dvěma moduly. Modul může být nastaven buďto jako koordinátor, router nebo koncové zařízení. Po aktivaci modulů je automaticky vytvořena síť mezi moduly. Každý modul je adresován jedinečnou 64-bitovou adresou a 16bitovou adresou podsítě, což umožňuje propojení velkého množství zařízení. Napájecí napětí modulu je 3,3V proto je nutné napájet mikroprocesor tímto napětím, nebo signály z mikroprocesoru omezit např. zenerovou diodou na požadované napětí.
Dosah modulu
Xbee – 100m ve volném prostoru
Xbee PRO – 1500m ve volném prostoru

Ukázka API paketu – odeslání dat

Popis knihovny

Knihovna obsahuje funkce pro analýzu modulu, nastavování parametrů, odesílání (příjem) dat, atd. Tuto knihovna lze použít pro různé typy procesorů AVR, v hlavičkovém souboru se pouze nastaví frekvence oscilátoru (kvůli výpočtu rychlosti USARTu) a zvolené sériové rozhraní USART0 nebo USART1. Rychlost komunikace s modulem je zvolena 38400kb/s, což je optimální hodnota kdy při přenosu nenastávají výpadky signálu.

Výpis jednotlivých funkcí knihovny:
void Init (void);
void USART_Send (uint8_t *data, uint8_t length);
uint8_t CRC_Count(uint8_t *data, uint8_t count);
void Xbee_Send_AT (uint8_t AT_1, uint8_t AT_2, uint8_t value, uint8_t value_en);
void Xbee_Send_Remote_AT (uint8_t *address, uint8_t *network, uint8_t AT_1, uint8_t AT_2, uint8_t value, uint8_t value_en);¨
uint8_t Xbee_AT_Response (uint8_t *data);
uint8_t Xbee_Remote_AT_Response (uint8_t *data);
void Xbee_Transmit (uint8_t *address, uint8_t *network, uint8_t *data, uint8_t count_data);
uint8_t Xbee_Transmit_Status (uint8_t *data);
uint8_t Xbee_Receive (uint8_t *data);
uint8_t Xbee_Receive_IO (uint8_t *data);
uint8_t Xbee_Status (uint8_t *data);

Zde jsou ke stažení zdrojové soubory xbee-api.h, xbee-api.c, projekt.c

Závěr

V projektu byla vytvořena knihovna pro řízení Xbee modulu, která obsahuje základní funkce dostačující pro jednoduchou komunikaci a nastavování modulu. Modul obsahuje mnohem více funkcí, které ale nejsou pro běžné aplikace využívány a proto nebyly použity v knihovně. Knihovnu lze použít do různých zařízení např. pro sběr dat z čidel, vzdálené ovládání apod.

Seznam použité literatury

[1] DIGI INTERNATIONAL INC. XBee®/XBee-PRO® RF Modules: Datasheet[Online] 03/2012,[cit. 7. Květen 2012]. 68 stran. Dostupné na WWW: http://ftp1.digi.com/support/documentation/90000982_G.pdf.

[2] ATMEL CORPORATION. AVR 8-Bit ATmega128: Datasheet.. [Online] 02/2011, [cit. 7. Květen 2012]. 385 stran. Dostupné na WWW: http://www.atmel.com/Images/doc2467.pdf.