V nedávném článku "ZigBee vývojové desky Radiocrafts - Test RC2200DK-HCL" jsem již avizoval uvedení na trh převodníku RS-232(UART)/ZigBee norské firmy Radiocrafts. Nějaká doba uplynula a převodník v podobě modulu označeného RC2200AT-SPPIO je již v nabídce českého distributora, firmy MACRO WEIL. Mohl jsem tedy získat na praktické testování celý převodník/kit označený jako RC2200DK-SPPIO ZigBee™, s jehož výsledky a poznatky Vás seznámím v následujících řádcích.
Stručně - Co je to ZigBee ?
Standard ZigBee je digitální bezdrátové komunikační rozhraní, umožňující s malou energetickou náročností/spotřebou přenášet data rychlostmi na úrovni RS-232. Proti bezdrátovému přenosu dat technologií Bluetooth se vyznačuje daleko větším dosahem (desítky metrů i přes zdi a jiné překážky) a naopak proti technologii WiFi již zmíněnou nízkou spotřebou (několik desítek mA) umožňující dlouhodobé napájení z baterií nebo i solárních článků. Moduly pro ZigBee se také vyznačují malými rozměry, max. desítky mm. Bližší informace o bezdrátové komunikační technologii a standardu ZigBee se lze dočíst v dalším české článku na stránkách HW serveru "ZigBee - novinka na poli bezdrátové komunikace ".
Vlastnosti ZigBee modulu/převodníku RC2200AT-SPPIO
- Bezdrátový přenos dat standardem ZigBee/IEEE 802.15.4
- 16kanálový RF transceiver vysílající v ISM pásmu 2.45 GHz a využívající systém DSSS (Direct Sequence Spread Spectrum)
- Integrovaná anténa součástí modulu RC2200AT
- Komunikace na vzdálenost až 100m
- Rychlost přenosu vzduchem: 250 kbit/s
- Napájení 2.7 – 3.6 V, spotřeba max. 30 mA (při vysílání)
- UART rozhraní na pinech modulu RC2200AT
- RS-232 rozhraní na desce kitu RC2200DK-SPPIO ZigBee™
- Sériová komunikace rychlostmi 1.2 – 115.2 kBd
- 16 digitálních a 8 analogových I/O (vstupů/výstupů) + 10-bit ADC / PWM ovládané přes ZigBee i UART
- Nastavení komunikačních parametrů převodníku AT příkazy přes RS-232 nebo UART
- Pracovní teplotní rozsah: -30 až +85 °C
Použití
- Bezdrátová náhrada a prodloužení sběrnic RS-232/RS-485
- Bezdrátový přenos hodnot ze senzoru do řídícího systému
- Bezdrátové spínače/přepínače a měřící systémy
- Řízení motorů (PWM)
- Přímé měření napětí A/D převodníkem na pinech modulu
- Spínání spotřebičů
- Dálkové řízení intenzity osvětlení
- Ovládání klimatizací
- Zabezpečovací technika
- atd.
RC2200DK-SPPIO ZigBee™ vývojový kit
Mimo samotného ZigBee modulu/transceiveru, který je také v nabídce firmy MacroWeil, je pro první zkoušky praktičtější celý kit RC2200DK-SPPIO ZigBee™ (viz. obrázek 3.). Ten umožňuje okamžité praktické nasazení ZigBee komunikace a bezdrátově přenášet libovolná data vysílaná zařízením se sériovým RS-232 (UART) rozhraním bez potřeby cokoliv programovat nebo vyvíjet. Prostě například stačí jeden modul označený jako ROUTER připojit na RS-232 port inteligentního senzoru, zatímco druhý, označený jako KOORDINÁTOR, na sériový port PC. Pak je již možné přenášet data.
Obr. 3. Obrázek převodníku RS-232/ZigBee firmy Radiocrafts
Testované kity RC2200DK-SPPIO ZigBee™ obsahují následující bloky (viz. obrázek 4.):
- ZigBee modul RC2200AT - jeho součástí je MCU AVR ATmega 128L a IEEE 802.15.4 RF tranceiver 2.4GHz Chipcon CC2420
- Napájecí modul - tvořený koaxiálním a svorkovým napájecím konektorem pro 6V se stabilizátorem a indikační zelenou LED (síťový napáječ je součástí balení kitu)
- Resetovací tlačítko
- Ovládací tlačítka pro řízení programu
- Indikační LEDky
- Regulační potenciometr
- ISP a JTAG konektory
- RS-232 blok - tvořený převodníkem RS-232/TTL (UART) a 9pinovým D-SUB konektorem (RS-232 kabel je součástí balení kitu)
Obr. 4. Rozložení bloků na vývojovém kitu převodníku
Nastavení modulů AT příkazy
Zmíněné převodníky umožňují uživateli změnit některé parametry týkající se ZigBee komunikace a navázání spojení s moduly, nastavení sériové komunikace apod., pomocí známých AT příkazů. S využitím tabulek AT příkazů v pdf manuálu, je možné změnit většinu parametrů komunikace.
Praktický příklad použití AT příkazů při základním nastavení modulů pro vzájemnou komunikaci:
- Pro vzájemnou komunikaci alespoň dvou modulů, je nutné mít jeden modul typu coordinator a druhý router.
- Pro nastavení je nutné postupně oba moduly připojit přes dodávaný RS-232 kabel k PC, připojit napájení.
- Pak například použít program Hyperterminál, kde je nutné při prvním nastavování zadat defautní konfiguraci sériového kanálu modulu (19200kb/s, 8 bitů, 1 stop bit, parita a řízení žádné).
- Pro navázání komunikace provést reset modulu červeným resetovacím tlačítkem vedle napájecího konektoru.
- Modul se ohlásí výzvou STATUS1.
- Zadáním +++ přejde modul do nastavovacího módu AT příkazů, přičemž se ohlásí jako STATUS5.
- Zde už je možné zadávat řídící AT příkazy.
- Pro navázání základní komunikace dvou modulů je potřeba provést základní nastavení a kontrolu.
- Příkazem AT32=1, resp. ATS3=2, se nastaví modul do funkce Coordinator, resp. Router.
- Příkazem ATS4? se vypíše vnitřní pevně nastavená 64bitová MAC adresa modulu, např. 00-15-20-00-00-00-00-01
- Příkazem ATS5=xx-xx-xx-xx-xx-xx-xx-xx se zadá adresa modulu, s kterým se má komunikovat
- Ostatní nastavení, jako např. nastavení RS-232/UART rozhraní, RF kanál apod., lze pro první pokusy nechat defaultní z výroby.
- Příkazem AT0 se vrátí systém z příkazového režimu (Command mode) do režimu přenosu dat (Data mode). Systém se ozve hláškou STATUS6.
- Po nastavení obou modulů, lze navázat bezdrátové spojení systémem nejdříve propojit kabelem RS-232, připojit napájení a provést RESET tlačítkem u coordinatoru, až pak to samé u routerů. Během úspěšného navazování komunikace by měly v RS-232 terminálu naskakovat hlášení STATUS3 a STATUS2 u coordinatoru a STATUS4 a STATUS2 u routeru.
- Pak již stačí například vysílat ASCII znaky na RS-232 rozhraní jednoho modulu a stejné znaky by se měli objevovat na RS-232 rozhraní druhého modulu.
Další možnosti nastavení AT příkazy
Mimo uvedeného základního nastavení nutného pro komunikaci, je možné podobně provést nastavení mnoha ostatních parametrů. Volby se provádí změnou vnitřních S-registrů modulu pomocí AT příkazů stejně, jako tomu bylo výše. Zde jsem měnil nastavení a četl hodnoty registrů 3, 4 a 5 (ATS3=.., ATS4?, ATS5=..). Podrobný popis se nachází v pdf manuálu k produktu "RC2200AT-SPPIO_Data_Sheet_0_4.pdf".
Takto lze nastavit nebo přečíst například:
- RF nastavení - vysílací RF kanál (RF Channel) - tomu odpovídá konkrétní nosná frekvence, vysílací výkon v 5 rozsazích, sleep mód, PAN ID
- Sériový přenos dat - délku paketu, time out, znak ukončující paket, automatické připojení dat k paketu
- RS-232/UART rozhraní - rychlost přenosu (1.2 až 115.2 kb/s), počet bitů, parita, počet stopbitů, hardwarové řízení přenosu, příp. RS-485 řízrní přenosu
- Další - zpětnou odezvu na AT příkazy, Product ID (vlastní popis modulu) atd.
Přenos, čtení a zápis hodnot na I/O portech modulu
Modul/kit neumožňuje jen přenos RS-232, tj. nefunguje jen jako převodník, ale umožňuje číst, zapisovat a přenášet analogové úrovně i digitální hodnoty na I/O vstupech (Port 1, Port 2 a PWM - viz. obrázek 1. a 2. v úvodu článku) . Modul též tedy může pracovat jako převodník libovolného signálu ze senzoru na RS-232, příp. RS-485. Využívá se přitom 10bitový A/D převodník a PWM D/A převodníky. Některé piny právě mohou fungovat jako analogové vstupy/výstupy nebo jako digitální vstupy/výstupy a některé jen jako digitální. V prvním případě je možné opět přes AT, resp. ATSx, příkazy udávat, zda se pin má chovat jako analogový či digitální, a dále pracovat jako vstup nebo výstup.
Na kitu jsou například pro jednoduché vyzkoušení tohoto režimu tlačítka, které jsou právě připojeny k určitým digitálním vstupům. Jejich stisknutím lze tedy měnit výslednou hodnotu vstupním vnitřním registru daného portu. Stav na analogových i digitálních vstupech je možné přímo přečíst AT příkazy (ATAxxx (analogové) nebo ATDxxx digitální) po RS-232/UART rozhraní daného modulu, na kterém vstupy sledujem nebo je v jednom ze tří režimů bezdrátově vyslat na RS-232/UART rozhraní vzdáleného komunikujícího modulu, případně je poslat na I/O výstup tohoto vzdáleného modulu. V druhém případě pak mohou dva komunikující moduly fungovat jako například bezdrátové spínače.
AT příkazy je možné zvolit jeden z následujících tří režimů bezdrátového přenosu I/O dat:
- Přívažek k datům vysílané z RS-232/UART rozhraní modulu - umožňuje například vyslat před daty libovolný ASCII text označující například ze kterého senzoru (zdroje) pocházejí (viz. screen shot obrázek z hyperterminálu)
- Samotné vysílání hodnot v pravidelném intervalu (40 ms až 10 s)
- Při změně hodnoty na některém ze vstupů modulu
Programování modulu
K přeprogramování/ladění softwaru nebo prostě jen načtení nového firmwaru výrobce do modulu lze použít JTAG nebo ISP rozhraní, které jsou přímo vyvedeny na pinech modulu RC2200AT-SPPIO nebo v případě vývojového kitu RC2200DK-SPPIO na konektory v levé dolním rohu desky (viz. obrázek 4.).
K použití ISP rozhraní stačí použít libovolný ISP programátor pro mikrokontroléry Atmel AVR (uvnitř modulu je ATmega128) s tím, že je vhodné u "nefiremních" Atmel programátorů raději překontrolovat rozestavení signálů na pinech konektoru a vyvarovat se tak problémům. Zapojení konektoru na desce vývojového kitu je na obrázku 5. Jako programovací software na PC je vhodné v ideálním případě použít AVR Studio 4 (volně k stažení na stránkách firmy ATMEL), případně osvědčený PC program PonyProg2000 (volně k stažení například na stránkách HW serveru) pro jednoduché nefiremní Atmel programátory. Mě osobně bez problému fungoval převodník LPT/ISP a PonyProg2000.
Obr. 5. Schéma zapojení kitů SPPIO - převodník RS-232 / ZigBee (detail)
Více funkcí nabízí rozhraní JTAG, které mimo funkcí mazání, čtení, zápisu a verifikace, což poskytuje i ISP, umožňuje i případné ladění programu přímo v modulu. Pro úplnou funkčnost a bezproblémový chod spolu s AVR Studiem 4, je vhodné jako rozhraní PC/JTAG použít doporučovaný firemní Atmel JTAGICE mk. II. Spojení AVR studia, RC2200AT-SPPIO modulu a jiných programátorů již nemusí být funkční ve všech směrech, i když natáhnout nový firmware do modulu s nimi půjde také.
Konkrétně firma Radiocrafts pro návrh/programování aplikací doporučuje:
- Radiocrafts RC2200DK-SPPIO Kit
- Chipcon CC2420ZDK ZigBee Development Kit (včetně MAC and Z-Stack licence).
- Programmers Notepad (součástí WinAVR paketu) (volně k stáhnutí na stránkách firmy Atmel)
- WinAVR GCC C-compiler (volně k stáhnutí na stránkách firmy Atmel)
- Atmel AVR Studio 4 pro programování obvodů a debugging (volně k stáhnutí na stránkách firmy Atmel)
- Atmel JTAGICE mk II pro USB
Závěr
V rámci několika denního testování vývojových kitů RC2200DK-SPPIO ZigBee™ jsem nenarazil na žádné větší problémy a vzájemná komunikace dvou modulů na vzdálenost cca 8 m přes dvě slabé stěny dvěma kancelářemi byla bezproblémová. Proto pro práci se ZigBee rozhodně můžu tyto vývojové kity doporučit. Pro bližší informace o ZigBee modulech a vývojových kitech lze získat na stránkách firmy Radiocrafts (http://www.radiocrafts.com) nebo zakoupit prostřednictvím českého distributora, firmy MACRO WEIL (http://www.macroweil.cz/).
Antonín Vojáček
vojacek@ hwg.cz
DOWNLOAD & Odkazy
- Domovská stránka českého distributora, firmy MACRO WEIL - http://www.macroweil.cz/
- Domovská stránka firmy Radiocrafts - http://www.radiocrafts.com
- Článek o modulech pro ZigBee na HW serveru
- Teoretický článek o ZigBee komunikaci na HW serveru
- Článek "ZigBee vývojové desky Radiocrafts - Test RC2200DK-HCL" na HW serveru
- Download katalogového listu k ZigBee modulu RC2200AT-SPPIO - RC2200AT-SPPIO_Data_Sheet_0_4.pdf
- Download katalogového listu k vývojovému kitu RC2200DK-SPPIO ZigBee™- RC2200DK-SPPIO_Quick_Start_1_0.pdf