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

Ivona Spurná 25. 5. 2016

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.

widgety

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?
DigiZone.cz: Nova opět stahuje „milionáře“

Nova opět stahuje „milionáře“

DigiZone.cz: Parlamentní listy: kde končí PR...

Parlamentní listy: kde končí PR...

Podnikatel.cz: Udělali jsme velkou chybu, napsal Čupr

Udělali jsme velkou chybu, napsal Čupr

120na80.cz: Co je padesátkrát sladší než cukr?

Co je padesátkrát sladší než cukr?

Vitalia.cz: Dostal malý pivovar ze Slovenska do Tesca

Dostal malý pivovar ze Slovenska do Tesca

Vitalia.cz: Test dětských svačinek: Tyhle ne!

Test dětských svačinek: Tyhle ne!

DigiZone.cz: DVB-T2 ověřeno: seznam TV zveřejněn

DVB-T2 ověřeno: seznam TV zveřejněn

DigiZone.cz: O2 Sport zbrojí na derby pražských S

O2 Sport zbrojí na derby pražských S

120na80.cz: Hrbatá prsa aneb mýty o implantátech

Hrbatá prsa aneb mýty o implantátech

Lupa.cz: Hackeři mají data z půlmiliardy účtů Yahoo

Hackeři mají data z půlmiliardy účtů Yahoo

Vitalia.cz: Když všichni seli řepku, on vsadil na dýně

Když všichni seli řepku, on vsadil na dýně

Vitalia.cz: Tahák, jak vyzrát nad zápachem z úst

Tahák, jak vyzrát nad zápachem z úst

Podnikatel.cz: Byla finanční manažerka, teď cvičí jógu

Byla finanční manažerka, teď cvičí jógu

Podnikatel.cz: Babišovi se nedá věřit, stěžovali si hospodští

Babišovi se nedá věřit, stěžovali si hospodští

Lupa.cz: Patička e-mailu závazná jako vlastnoruční podpis?

Patička e-mailu závazná jako vlastnoruční podpis?

Vitalia.cz: dTest odhalil ten nejlepší kečup

dTest odhalil ten nejlepší kečup

Podnikatel.cz: Instalatér, malíř a elektrikář. "Vymřou"?

Instalatér, malíř a elektrikář. "Vymřou"?

Podnikatel.cz: Takhle se prodávají mražené potraviny

Takhle se prodávají mražené potraviny

DigiZone.cz: Funbox 4K v DVB-T2 má ostrý provoz

Funbox 4K v DVB-T2 má ostrý provoz

DigiZone.cz: Wimbledon na Nova Sport až do 2019

Wimbledon na Nova Sport až do 2019