Jste zde

Univerzální převodník RS-232/ZigBee - Test HW serveru

V nabídkách firem jsou různé převodníky RS-232 na další komunikační standardy. Teď je zde už i převodník RS-232/ZigBee, který najdeme v nabídce firmy MACRO WEIL. Ten umožňuje jednoduché bezdrátové prodloužení sériové linky, ovládání AT příkazy a na dálku číst a zapisovat na I/O vstupy modulu.

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 ".

Obr. 1. ZigBee modul RC2200AT-SPPIO spojující převodníky UART/ZigBee a I/O porty/ZigBee

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

Obr. 2. Bloková struktura ZigBee převodníku/modulu RC2200AT-SPPIO včetně ovládaných portů 1/2/PWM

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:

  1. Pro vzájemnou komunikaci alespoň dvou modulů, je nutné mít jeden modul typu coordinator a druhý router.
  2. Pro nastavení je nutné postupně oba moduly připojit přes dodávaný RS-232 kabel k PC, připojit napájení.
  3. 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é).
  4. Pro navázání komunikace provést reset modulu červeným resetovacím tlačítkem vedle napájecího konektoru.
  5. Modul se ohlásí výzvou STATUS1.
  6. Zadáním +++ přejde modul do nastavovacího módu AT příkazů, přičemž se ohlásí jako STATUS5.
  7. Zde už je možné zadávat řídící AT příkazy.
  8. Pro navázání základní komunikace dvou modulů je potřeba provést základní nastavení a kontrolu.
  9. Příkazem AT32=1, resp. ATS3=2, se nastaví modul do funkce Coordinator, resp. Router.
  10. Příkazem ATS4? se vypíše vnitřní pevně nastavená 64bitová MAC adresa modulu, např. 00-15-20-00-00-00-00-01
  11. Příkazem ATS5=xx-xx-xx-xx-xx-xx-xx-xx se zadá adresa modulu, s kterým se má komunikovat
  12. Ostatní nastavení, jako např. nastavení RS-232/UART rozhraní, RF kanál apod., lze pro první pokusy nechat defaultní z výroby.
  13. 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.
  14. 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.
  15. 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

Hodnocení článku: