Hlavní navigace

Bezdrátový přenos s IQRF: komunikační protokol DPA

Ivona Spurná

Zařízení v síti IQRF lze velmi snadno řídit a získávat z nich data. Pro tento účel byl vyvinut protokol DPA, který přinesl významné zjednodušení této komunikace.

Protokol DPA

Protokol DPA – Direct Peripheral Access – je jednoduchý bajtově orientovaný protokol pro řízení služeb a periferií zařízení v síti IQRF.

V transceiverech IQRF můžete najít tři základní vrstvy. Základem je operační systém, který je v transceiverech nahrán již z výroby a je možné jej na straně uživatele jednoduše aktualizovat.
Nad operačním systémem je vrstva DPA, která obsahuje připravené plug-in soubory, které jsou dávány k dispozici výrobcem. Jsou to tzv. HWP – hardware profiles. Nahráním zvoleného hardwarového profilu uděláte z transceiveru IQRF například Koordinátor nebo Nod.
V třetí vrstvě může být tzv. Custom DPA Handler, což je kompilovaný program psaný v jazyce C, pomocí kterého lze přizpůsobit chování transceiveru.

Často není potřeba ani žádný Custom DPA Handler vytvářet nebo modifikovat, protože pro žádanou funkcionalitu stačí pouze využívat operační systém spolu s funkčností HWP. 

Pomocí protokolu DPA lze na transceiver zasílat příkazy jednoduše v přesné struktuře, snadno se oslovují jeho periferie a zasílají se na ně specifické příkazy.

Struktura DPA příkazu

Podrobnou dokumentaci k protokolu DPA najdete na webu.

NADR

Síťová adresa zařízení

PNUM

Číslo periferie

PCMD

Příkaz pro příslušnou periferii

HWPID

Identifikace hardware

PDATA

Volitelná data

Pole NADR (2B) – síťová adresa – může obsahovat hodnoty 0×00 (Koordinátor), 0×01 – EF (adresy Nodů), 0×FF (broadcast), 0×FE (dočasná adresa), 0×FC („local device“), ostatní adresy jsou rezervované.

Pole PNUM (1B) – číslo periferie – např. 0×02 – OS, 0×03 – EEPROM, 0×04 – EEEPROM, 0×05 – RAM, 0×06 – LEDR, 0×07 – LEDG, 0×08 – SPI, 0×09 – IO, 0×0A – teploměr, 0×0D – FRC, 0×20–6F – uživatelské periferie.

Pole PCMD (1B) obsahuje kód příkazu, který přísluší zvolené periferii. Může obsahovat hodnoty 0×00‑0×3E.

Pole HWPID (2B) slouží k filtrování cílového hardware. V případě, že je zde uvedena hodnota 0×FFFF, tak k filtrování nedochází.

Pole PDATA může obsahovat až 56 bajtů uživatelských dat (v aktuální DPA verzi).

Odeslání DPA příkazu

DPA příkaz v prostředí IQRF IDE lze odeslat pomocí pop-up menu, makra, či ručně nastavením jednotlivých částí příkazu.

Jednoduché odeslání DPA príkazu přes pop-up menu

Jedním z nejjednodušších příkazů pro ověření funkčnosti cílového Nodu je zapnutí/vypnutí červené LED, kterou obsahuje (TR modul). To lze provést zvolením příslušného příkazu v kontextové nabídce zvoleného Nodu.

V přehledném zobrazení IQRF sítě (IQMESH Network Manager – Map View) zvolíte libovolný Nod, kliknete na něj pravým tlačítkem myši a zvolíte příslušný příkaz (LED Red On/Off/Pulse).

Pokud chcete na zvolený Nod odeslat jiný příkaz, který máte aktuálně nastaven v terminálu DPA Test – Data to send, a chcete k tomu využít názorné topologické zobrazení, kliknete na zvolený Nod pravým tlačítkem myši a vyberete příkaz Send Packet from DPA Test. Síťová adresa v DPA paketu se nastaví podle zvoleného Nodu.

DPA příkazy skryté v makrech

Makra slouží ke zjednodušení práce s DPA příkazy. Pod tlačítky maker jsou uloženy DPA příkazy, které lze kdykoli aplikovat. V balíčku Start-up package je připraven soubor DPA-macros.iqrfmcr (název odpovídá aktuální verzi). Lze jej najít v umístění /Examples/DPA/StartUp.

Tento soubor je možno importovat do projektu v IQRF IDE a využít již připravených příkladů (demo projekt má tato makra již importována). Jsou zde připravená makra pro bondování Nodů, zjištění počtu Nodů v síti IQRF, odbondování všech Nodů, nastavení pinů na vstup/výstup, zapnutí/vypnutí určitých pinů, zjištění teploty, vytvoření FRC příkazu a další.

K jednotlivým tlačítkům maker jsou přiřazeny příslušné příkazy, které si uživatel může měnit i tvořit nové.

Pokud chcete tedy zaslat zvolený příkaz skrytý pod některým z tlačítek v oblasti maker, stačí kliknout na příslušné tlačítko, upravit v terminálu DPA Test síťovou adresu cílového transceiveru (NADR) a příkaz odeslat stisknutím tlačítka Send. V případě nastavení síťové adresy na FF (hexadecimálně) se jedná o broadcast a příkaz bude zaslán všem Nodům v síti IQRF.

Vlastní sestavení DPA paketu

V prostředí Terminal – DPA Test lze nadefinovat DPA paket. NADR nastavte na adresu cílového transceiveru, zvolte periferii v políčku PNUM (např. 0A – Thermometer), zvolte příslušný příkaz PCMD (pro periferii Thermometer znamená příkaz 00 – Get temperature), nadefinujte pole HWPID (FFFF znamená nefiltrování hardware), případně nadefinujte PDATA (pro získání teploty z transceiveru není třeba definovat žádná další uživatelská data). Při sestavování částí DPA příkazu lze využít kontextové nabídky.

Výsledný paket – např. pro získání teploty z Nodu se síťovou adresou 01 vypadá takto:
0001 0A 00 FFFF – odešlete na cílové zařízení.

Komunikaci lze vidět v okně Terminal Log, případně detailní strukturu DPA paketu v okně Packet Inspector. V následující ukázce v okně Terminal Log je vidět vyvolaná komunikace z řídicí aplikace, potvrzení od Koordinátoru a odpověď od Nodu, kterému byl dotaz na teplotu zaslán. V okně Packet Inspector je vidět, že byla detekována teplota 26 °C.

Na webu technologie IQRF najdete podrobnou dokumentaci k protokolu DPA. Dále jsou zde k dispozici názorná vysvětlující videa.

V příštím díle se podíváme blíže na využití programové nadstavby Custom DPA Handler, pomocí které lze přizpůsobit chování transceiverů.

Našli jste v článku chybu?

25. 5. 2016 9:27

Souhlasím s Tukanem, není nic jednoduššího, než napsat vlastní seriál třeba o ESP8266 nebo Arduinu. Za vydání tohohle seriálu o IQRF nikdo nezaplatil, je to běžný redakční obsah. Pokud se vám nelíbí, tak počkejte, až seriál doběhne, bude v rubrice bastlírna vycházet zase něco dalšího.

25. 5. 2016 9:18

tukan (neregistrovaný)

Tak ho napište, budu se těšit. Aha,ono to znamená práci, tak z toho nic nebude.

Každý ať si píše o čem chce, když si to zde najde publikum. Číst to nemusíte.

Root.cz: Nová třída SD karet A1 s vysokým výkonem

Nová třída SD karet A1 s vysokým výkonem

120na80.cz: Rovnátka, která nejsou vidět

Rovnátka, která nejsou vidět

DigiZone.cz: R2B2 a Hybrid uzavřely partnerství

R2B2 a Hybrid uzavřely partnerství

Lupa.cz: Levný tarif pro Brno nebude, je to kartel

Levný tarif pro Brno nebude, je to kartel

Měšec.cz: Za palivo zaplatíte mobilem (TEST)

Za palivo zaplatíte mobilem (TEST)

DigiZone.cz: Sat novinky: slovenská TV8 HD i ruský NTV Mir

Sat novinky: slovenská TV8 HD i ruský NTV Mir

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

120na80.cz: Horní cesty dýchací. Zkuste fytofarmaka

Horní cesty dýchací. Zkuste fytofarmaka

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Vitalia.cz: Nejlepší obranou při nachlazení je útok

Nejlepší obranou při nachlazení je útok

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Vitalia.cz: Potvrzeno: Pobyt v lese je skvělý na imunitu

Potvrzeno: Pobyt v lese je skvělý na imunitu

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Vitalia.cz: Jak vybrat ořechy do cukroví a kde mají levné

Jak vybrat ořechy do cukroví a kde mají levné

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Root.cz: Certifikáty zadarmo jsou horší než za peníze?

Certifikáty zadarmo jsou horší než za peníze?