• No results found

Bezdr´ atov´ a s´ıt’ pro sbˇ er geofyzik´ aln´ıch dat

N/A
N/A
Protected

Academic year: 2022

Share "Bezdr´ atov´ a s´ıt’ pro sbˇ er geofyzik´ aln´ıch dat"

Copied!
52
0
0

Loading.... (view fulltext now)

Full text

(1)

Bezdr´ atov´ a s´ıt’ pro sbˇ er geofyzik´ aln´ıch dat

Bakal´ aˇ rsk´ a pr´ ace

Studijn´ı program: B2646 – Informaˇcn´ı technologie Studijn´ı obor: 1802R007 – Informaˇcn´ı technologie Autor pr´ace: Matˇej ˇReh´ak

Vedouc´ı pr´ace: Ing. Zbynˇek Mader, Ph.D.

(2)

Wireless network for the collection of geophysical data

Bachelor thesis

Study programme: B2646 – Information technology Study branch: 1802R007 – Information technology Author: Matˇej ˇReh´ak

Supervisor: Ing. Zbynˇek Mader, Ph.D.

(3)
(4)
(5)
(6)

Podˇ ekov´ an´ı

Chtˇel bych podˇekovat pˇredevˇs´ım vedouc´ımu t´eto pr´ace, Ing. Zbyˇnku Maderovi, Ph.D a konzultantovi pr´ace, Ing. Miloˇsi Hernychovi, za odborn´e rady. D´ale bych r´ad podˇekoval spoleˇcnosti ˇCEZ, a. s. za poskytnut´ı financ´ı ve v´yˇsi 8 924 Kˇc, kter´e byly pouˇzity na n´akup v´yvojov´ych prostˇredk˚u, bez nichˇz by tuto pr´aci nebylo moˇzn´e dokonˇcit.

(7)

Abstrakt

Tato pr´ace ˇreˇs´ı problematiku pˇrenosu namˇeˇren´ych dat na vzd´alenost stovek metr˚u aˇz jednotek kilometr˚u pomoc´ı bezdr´atov´ych technologi´ı. Tyto technologie poskytuj´ı mnoho v´yhod oproti technologi´ım vyuˇz´ıvaj´ıc´ı dr´atov´e m´edium. Mˇeˇren´ı a sbˇer geofyzik´aln´ıch dat totiˇz klade na kabelov´e m´edium vysok´e poˇzadavky na odolnost v˚uˇci vnˇejˇs´ım vliv˚um. Nav´ıc je nutn´e ˇreˇsit neˇz´adouc´ı jevy souvisej´ıc´ı s pˇrenosem elektrick´eho sign´alu po dlouh´ych vodiˇc´ıch, coˇz ve v´ysledku zvyˇsuje poˇrizovac´ı n´aklady na sbˇer dat.

Z ´uvodn´ı reˇserˇze vzeˇsly dvˇe vhodn´e technologie - MiWi od spoleˇcnosti Microchip Technology Inc. a IQRF od ˇcesk´e spoleˇcnosti Microrisc s. r. o. Obˇe technologie byly implementov´any pro pr´aci s mikrokontrol´erem PIC32MX795F512H a podrobeny test˚um s´ıly sign´alu v z´avislosti na vzd´alenosti.

Probˇehl´e testy odhalily, ˇze se z´avislost s´ıly sign´alu na vzd´alenosti mˇen´ı v r˚uzn´ych typech prostˇred´ı. Hlavn´ım pˇr´ınosem t´eto pr´ace bude moˇznost centralizovan´eho sbˇeru a uchov´av´an´ı namˇeˇren´ych dat v re´aln´em ˇcase.

Kl´ıˇcov´a slova: PIC32, MiWi, IQRF, MESH s´ıtˇe, bezd´atov´e s´ıtˇe

(8)

Abstract

This report solves the issue of wireless data transmission over distances of hundreds of meters to kilometers using wireless techno- logies. Wireless technologies provide many advantages compared to methods of wired data transfer. Acquisition of geophysical data puts on cabling high requirements for resistance to external influences.

Moreover, it is necessary to solve the undesirable effects associated with signal transmission over long conductors resulting in increased initial cost of data collection.

From the initial literature search came two useful technologies - MiWi from Microchip Technology Inc. and IQRF from czech com- pany Microrisc s.r.o. Both technologies have been implemented to work with microcontroller PIC32MX795F512H and subjected to tests of signal strength depending on the distance.

Past tests revealed that the dependence of signal strength on the distance varies in different types of environments. The main con- tribution of this work will be centralized collection and storage of measured data in real time.

Keywords: PIC32, MiWi, IQRF, MESH networking, wireless networking

(9)

Obsah

1 Uvod´ 13

2 Reˇserˇse dostupn´ych bezdr´atov´ych technologi´ı 14

2.1 Tinymesh . . . 15

2.2 Texas Instruments Sub-1GHz Low Cost Mesh Network . . . 15

2.3 LTP5901 SmartMesh . . . 16

2.4 ESP8266 - WiFi mikrokontrol´er . . . 16

2.5 MiWi - Microchip Wireless . . . 16

2.6 IQRF . . . 17

2.7 Z´avˇereˇcn´e zhodnocen´ı . . . 17

3 Elektronika a hardware 18 3.1 Nap´ajen´ı . . . 18

3.2 Hlavn´ı deska . . . 19

3.3 Adapt´ery pro pˇripojen´ı bezdr´atov´ych modul˚u . . . 20

4 Technologie MiWi 21 4.1 Typy zaˇr´ızen´ı v s´ıti . . . 22

4.2 Pˇridˇelov´an´ı adres . . . 23

4.3 Datov´y r´amec . . . 24

4.4 Programov´e rozhran´ı protokolu MiWi . . . 25

5 V´yvoj bezdr´atov´e aplikace zaloˇzen´e na technologii MiWi 30 5.1 Obecn´a struktura projektu v prostˇred´ı MPLAB X . . . 30

5.2 Uprava zdrojov´´ ych k´od˚u pro architekturu PIC32MX . . . 32

5.3 Aplikaˇcn´ı k´od - PAN koordin´ator . . . 33

5.4 Aplikaˇcn´ı k´od - koordin´ator (router) . . . 34

5.5 Aplikaˇcn´ı k´od - koncov´y uzel . . . 35

6 Technologie IQRF 37 7 V´yvoj bezdr´atov´e aplikace zaloˇzen´e na technologii IQRF 39 7.1 Programov´an´ı modulu IQRF . . . 39

7.2 Programov´an´ı mikrokontrol´eru PIC32MX . . . 41

8 Testov´an´ı v re´aln´ych podm´ınk´ach 43

(10)

9 Z´avˇer 45

(11)

Seznam obr´ azk˚ u

2.1 Uroveˇ´ n potˇrebn´ych znalost´ı pro jednotliv´e typy elektroniky[2] . . . . 15

3.1 Symbolick´e zn´azornˇen´ı sch´ematu . . . 18

3.2 Sch´ema zapojen´ı obvodu MCP16311 . . . 19

3.3 Hlavn´ı deska . . . 20

3.4 Adapt´ery: vlevo IQRF, vpravo MiWi . . . 20

4.1 Porovn´an´ı s´ıt’ov´ych model˚u: vlevo OSI, vpravo model MiWi . . . 21

4.2 Zkr´acen´a (logick´a) adresa . . . 23

4.3 Struktura datov´eho r´amce . . . 24

4.4 Struktura datov´eho paketu vyobrazen´em v prostˇred´ı Wireless Deve- lopment Studio . . . 25

4.5 Struktura programov´eho rozhran´ı . . . 26

5.1 Struktura projektu v prostˇred´ı MPLAB X1 . . . 30

5.2 Sloˇzky, ze kter´ych budou naˇc´ıt´any hlaviˇckov´e soubory . . . 31

6.1 Struktura DPA paketu . . . 37

6.2 S´ıt’ov´a topologie vytvoˇren´a po procesu discovery . . . 38

7.1 Nastaven´ı hardwarov´eho profilu . . . 39

8.1 Z´avislost s´ıly sign´alu na vzd´alenosti ve voln´em prostranstv´ı . . . 43 8.2 Z´avislost s´ıly sign´alu na vzd´alenosti ve vodovodn´ıˇstole v obci Bedˇrichov 44

(12)

Seznam tabulek

4.1 Typy zaˇr´ızen´ı v s´ıt´ıch MiWi . . . 23 7.1 Moˇzn´e odpovˇedi na dotaz SPI CHECK, Nmax = 56 . . . 42

(13)

Seznam zdrojov´ ych k´ od˚ u

4.1 Struktura ACTIVE SCAN RESULT . . . 27

4.2 Struktura CONNECTION ENTRY a pole pˇripojen´ych uzl˚u . . . 27

4.3 Struktura RECEIVED MESSAGE . . . 29

5.1 Inicializace pˇreruˇsen´ı . . . 32

5.2 Zdrojov´y k´od pˇredstavuj´ıc´ı roli PAN koordin´atora . . . 33

5.3 Zdrojov´y k´od pˇredstavuj´ıc´ı roli koordin´atora (routeru) . . . 34

5.4 Zdrojov´y k´od pˇredstavuj´ıc´ı roli koncov´eho uzlu . . . 35

7.1 Ud´alost zavolan´a po pˇrijet´ı DPA poˇzadavku . . . 40

7.2 Ud´alost zavolan´a pˇred odesl´an´ım DPA odpovˇedi . . . 40

(14)

1 Uvod ´

Uˇ´celem t´eto pr´ace je prov´est anal´yzu dostupn´ych bezdr´atov´ych technologi´ı a zhod- notit jejich vyuˇzitelnost pro sbˇer geofyzik´aln´ıch dat, vybran´e technologie implemen- tovat tak, aby spolupracovaly s mikrokontrol´erem PIC32MX795F512H s ohledem na n´ızkou spotˇrebu a celou sestavu otestovat v re´aln´ych podm´ınk´ach.

Pr´ace se mimo jin´e zab´yv´a i porovn´an´ım dosahu sign´alu vybran´ych technologi´ı v r˚uzn´ych prostˇred´ıch. Porovn´an´ı prob´ıhalo ve dvou lokalit´ach - na voln´em rovn´em prostranstv´ı a ve vodovodn´ı ˇstole o celkov´e d´elce dvou kilometr˚u v obci Bedˇrichov.

(15)

2 Reˇ serˇ se dostupn´ ych bezdr´ atov´ ych techno- logi´ı

Vybran´a technologie, kter´a bude podrobena detailnˇejˇs´ımu studiu by mˇela splˇnovat n´asleduj´ıc´ı podm´ınky:

ˆ Vytvoˇren´ı s´ıtˇe typu MESH1

ˆ N´ızk´a spotˇreba (moˇznost reˇzimu sp´anku)

ˆ Dosah v ˇr´adu stovek metr˚u aˇz jednotek kilometr˚u

ˆ Schopnost obnovy s´ıtˇe po v´ypadku nap´ajen´ı

ˆ Rychlost implementace

ˆ Dostateˇcnˇe podrobn´a dokumentace

Elektroniku potˇrebnou pro bezdr´atov´y pˇrenos dat lze rozdˇelit do ˇctyˇr skupin:

ˆ RF ˇcip

ˆ RF modul (RF ˇcip a elektronika potˇrebn´a pro provoz um´ıstˇen´a na jednom modulu)

ˆ RF modul s operaˇcn´ım syst´emem (operaˇcn´ı syst´em realizuje logiku s´ıtˇe)

ˆ RF modul s operaˇcn´ım syst´emem a integrovan´ymi protokoly pro pˇrenos dat a ˇr´ızen´ı periferi´ı jin´ych modul˚u

Uroveˇ´ n znalost´ı v potˇrebn´ych oblastech v´yvoje bezdr´atov´e aplikace vystihuje Obr. 2.1, z nˇehoˇz vypl´ıv´a, ˇze nejvhodnˇejˇs´ı elektronikou pro n´avrh bezdr´atov´e aplikace bude samostatn´y RF modul, RF modul s operaˇcn´ım syst´emem a modul s operaˇcn´ım syst´emem a integrovan´ym protokolem pro pˇrenos dat a ˇr´ızen´ı sbˇernic ostatn´ıch mo- dul˚u.

1S´ıt’ typu mesh je bezdr´atov´a s´ıt’, kde je zabezpeˇcena automatick´a konfigurace struktury s´ıtˇe, spolehliv´e smˇerov´an´ı mezi jednotliv´ymi uzly a automatick´y pˇr´ıstup nov´ych uzl˚u do s´ıtˇe prostˇrednictv´ım dosavadn´ıch uzl˚u.[1]

(16)

Obr´azek 2.1: ´Uroveˇn potˇrebn´ych znalost´ı pro jednotliv´e typy elektroniky[2]

2.1 Tinymesh

Technologie Tinymesh distribuov´ana spoleˇcnost´ı Radiocrafts je zaloˇzena na modu- lech RC11xx-RC232 s integrovan´ym operaˇcn´ım syst´emem a protokolem pro pˇrenos dat. Modul je pomoc´ı hostitelsk´eho mikrokontrol´eru ovl´ad´an skrze rozhran´ı UART.

Pˇrenos dat je realizov´an paketovˇe orientovan´ym protokolem RC232TM. K dispozici jsou moduly, kter´e pracuj´ı na frekvenci 433 MHz, 868 MHz a 2,4 GHz. Samotn´y operaˇcn´ı syst´em disponuje vˇsemi funkcionalitami pro ´uspˇeˇsn´e vytvoˇren´ı a spr´avu mesh s´ıtˇe vˇcetnˇe reˇzimu sp´anku.

Hlavn´ı nev´yhodou t´eto technologie je pomˇernˇe vysok´a cena. V´yvojov´a sestava obsahuj´ıc´ı dva moduly a pˇr´ısluˇsenstv´ı stoj´ı u distributora RS Components 10 902 Kˇc bez DPH (k 14. 12. 2016). Samotn´y komunikaˇcn´ı modul stoj´ı u stejn´eho distributora 1075 Kˇc bez DPH (k 14. 12. 2016).

2.2 Texas Instruments Sub-1GHz Low Cost Mesh Ne- twork

Toto ˇreˇsen´ı je postaven´e na integrovan´em obvodu CC1101 od spoleˇcnosti Texas In- struments. Obvod realizuje pouze pˇr´ıstup k fyzick´e vrstvˇe a samotn´a logika mesh s´ıtˇe mus´ı b´yt implementov´ana nadˇrazen´ym syst´emem. K hostitelsk´emu mikrokontrol´eru se pˇripojuje pomoc´ı sbˇernice SPI. Obvod je schopen pˇren´aˇset data ve frekvenˇcn´ıch

(17)

p´asmech 315/433/868/915 MHz. V´yrobce poskytuje k tomuto obvodu softwarov´e knihovny (tzv. stack), kter´e realizuj´ı logiku s´ıtˇe pomoc´ı nadˇrazen´eho mikrokont- rol´eru. Knihovny jsou ale dostupn´e pouze pro mikrokontrol´er MSP430G2533 a v´yvoj vlastn´ıch knihoven pro platformu PIC32MX by byl zdlouhav´y a neefektivn´ı.

2.3 LTP5901 SmartMesh

LTP5901 je modul s integrovan´ym operaˇcn´ım syst´emem zaloˇzen´y na standardu IEEE 802.15.4e. Operaˇcn´ı syst´em zajiˇst’uje vˇsechny funkcionality potˇrebn´e k vy- tvoˇren´ı a spr´avˇe mesh s´ıtˇe, data jsou od nadˇrazen´eho syst´emu pˇren´aˇsena skrze roz- hran´ı UART. Vˇsechny uveden´e vlastnosti dovoluj´ı rychlou implementaci na plat- formu PIC32MX.

Jedinou nev´yhodou je vysok´a cena, kter´a u distributora Farnell Element14 zaˇc´ın´a na ˇc´astce 3 506 Kˇc bez DPH (k 14. 12. 2016).

2.4 ESP8266 - WiFi mikrokontrol´ er

Mikrokontrol´er ESP8266 je zaloˇzen na architektuˇre Tensilica Xtensa LX106 a obsa- huje integrovan´y TCP/IP stack. Samotn´y TCP/IP stack zajiˇst’uje pouze standardn´ı funkcionality v r´amci TCP/IP (mikrokontrol´er m˚uˇze b´yt nastaven jako koncov´e zaˇr´ızen´ı nebo jako pˇr´ıstupov´y bod) a logika mesh s´ıtˇe je zajiˇstˇena pomoc´ı programu nahran´eho do mikrokontrol´eru. ESP8266 se k nadˇrazen´emu syst´emu pˇripojuje po- moc´ı rozhran´ı UART a lze jej konfigurovat tzv. AT pˇr´ıkazy.

Hlavn´ı v´yhodou tohoto mikrokontrol´eru, resp. modul˚u, je velmi n´ızk´a cena, kter´a se pohybuje okolo 50 Kˇc za jeden kus. Naopak nev´yhodou m˚uˇze b´yt skuteˇcnost, ˇze prvn´ı verze dokumentac´ı byly dostupn´e pouze v ˇc´ınsk´em jazyce a je tedy moˇzn´e, ˇze i budouc´ı verze dostupn´e v anglick´em jazyce budou k dispozici se zpoˇzdˇen´ım.

2.5 MiWi - Microchip Wireless

Technologie MiWi je soubor hardwarov´ych a softwarov´ych prostˇredk˚u, kter´e slouˇz´ı v´yvoj´aˇri k vytv´aˇren´ı bezdr´atov´ych s´ıt´ı typu mesh. Mezi hardwarov´e prostˇredky patˇr´ı bezdr´atov´e transceivery, resp. moduly, MRF24J40, MRF89XA a MRF49XA zajiˇst’uj´ıc´ı mj. pˇr´ıstup k fyzick´e vrstvˇe. Podle zvolen´eho modulu lze technologii provo- zovat ve frekvenˇcn´ıch p´asmech 433/868/915 MHz a 2,4 GHz. Softwarov´e prostˇredky jsou distribuov´any ve formˇe knihoven (tzv. stacku), kter´e jsou nahr´any do nadˇrazen´eho mikrokontrol´eru a realizuj´ı samotn´y protokol MiWi.

V´yhodou t´eto technologie je zm´ınˇen´y stack, kter´y je vyv´ıjen spoleˇcnost´ı Microchip pro mikrokonterol´ery PIC, tud´ıˇz bude moˇzn´e jej implementovat na mikrokontrol´eru uveden´em v zad´an´ı. Pˇr´ızniv´a je i cena vybran´eho modulu MRF24J40MA, jehoˇz cena je u distributora Farnell Element14 161 Kˇc bez DPH (k 14. 12. 2016). Problema- tick´a ale m˚uˇze b´yt jeho implementace, kter´a vyˇzaduje pomˇernˇe rozs´ahl´e zkuˇsenosti v oblasti programov´an´ı mikrokontrol´er˚u PIC32MX.

(18)

2.6 IQRF

Technologie IQRF pˇredstavuje kompletn´ı platformu zahrnuj´ıc´ı bezdr´atov´e moduly, vlastn´ı v´yvojov´e prostˇred´ı, programovac´ı n´astroje vˇcetnˇe SDK (Software Development Kit) a pˇripojen´ı do cloudov´e sluˇzby IQRF Cloud. Samotn´y modul obsahuje mikro- kontrol´er PIC16LF1938 s integrovan´ym operaˇcn´ım syst´emem, transceiver SPIRIT1, konfigurovateln´e LED diody, teplotn´ı senzor, pamˇet’ EEPROM a napˇet’ov´y regul´ator.

Moduly lze konfigurovat pro vys´ıl´an´ı ve frekvenˇcn´ıch p´asmech 433/868/915 MHz, k hostitelsk´emu mikrokontrol´eru jej lze pˇripojit skrze rozhran´ı SPI nebo UART.

Zaj´ımavost´ı je i moˇznost bezdr´atov´eho programov´an´ı modul˚u pˇripojen´ych do s´ıtˇe.

Tato platforma vznikla v roce 2004 jako reakce na tehdejˇs´ı komplikovan´e a v mnoha pˇr´ıpadech i zpoplatnˇen´e protokoly vyˇzaduj´ıc´ı drah´y hardware, tud´ıˇz se tato technologie vyv´ıjela tak, aby byla jej´ı implementace snadn´a, rychl´a a cenovˇe do- stupn´a. Cena vybran´eho modulu DCTR-72DA u v´yrobce a souˇcasnˇe distributora, Microrisc s. r. o., ˇcin´ı 579 Kˇc bez DPH (k 14. 12. 2016).

2.7 Z´ avˇ ereˇ cn´ e zhodnocen´ı

Po spoleˇcn´e diskusi s vedouc´ım a konzultantem pr´ace a zhodnocen´ı poˇzadavk˚u byly vybr´any dvˇe technologie: MiWi, jej´ıˇz hardwarov´e parametry odpov´ıdaj´ı kategorii RF modul˚u dle Obr. 2.1, a IQRF, kter´a dle Obr. 2.1 spad´a do kategorie RF modul˚u s integrovan´ym operaˇcn´ım syst´emem, protokolem pro pˇrenos dat a vzd´alen´e ˇr´ızen´ı periferi´ı ostatn´ıch modul˚u.

(19)

3 Elektronika a hardware

Sch´ema zapojen´ı s mikrokontrol´erem PIC32MX795F512H ˇc´asteˇcnˇe vych´az´ı z v´yvojov´e desky Microchip MiWi Demo Kit - 2.4 GHz MRF24J40 [4]. Jelikoˇz obˇe vybran´e plat- formy pouˇz´ıvaj´ı pro komunikaci s mikrokontrol´erem sbˇernici SPI (Serial Peripheral Interface), v´ysledn´a deska ploˇsn´ych spoj˚u je navrˇzena tak, aby byly moduly obou technologi´ı vymˇeniteln´e. Pro vz´ajemnou v´ymˇenu je pouˇzita patice mikroBUSTM navrˇzen´a srbskou spoleˇcnost´ı Mikroelektronika d. o. o. Princip vymˇenitelnosti jed- notliv´ych komponent byl aplikov´an i na nap´ajec´ı ˇc´ast, mohou tedy b´yt testov´any r˚uzn´e typy napˇet’ov´ych stabiliz´ator˚u bez nutnosti tvoˇrit kompletnˇe nov´y ploˇsn´y spoj.

Symbolick´e zn´azornˇen´ı d˚uleˇzit´ych komponent popisuje Obr. 3.1.

Obr´azek 3.1: Symbolick´e zn´azornˇen´ı sch´ematu

3.1 Nap´ ajen´ı

Nap´ajec´ı ˇc´ast mus´ı zajiˇst’ovat stabiln´ı napˇet´ı 3,3 V, pˇriˇcemˇz vstupn´ı napˇet´ı se bude v ˇcase mˇenit. Dalˇs´ım poˇzadavkem je tak´e vysok´a m´ıra energetick´e ´uˇcinnosti, kter´a zajist´ı dlouhou v´ydrˇz baterie. Z tohoto d˚uvodu nebude moˇzn´e pouˇz´ıt line´arn´ı sta- biliz´ator napˇet´ı, proto bude nutn´e se zamˇeˇrit na zapojen´ı s tzv. DC/DC mˇeniˇcem.

Prvotn´ı koncept nap´ajen´ı byl smˇerov´an k pouˇzit´ı co nejmenˇs´ıho poˇctu bateriov´ych ˇcl´ank˚u tak, aby vstupn´ı napˇet´ı bylo bl´ızk´e nap´ajec´ımu napˇet´ı syst´emu. Tomuto poˇzadavku nejl´epe vyhovoval obvod TPS63031, kter´y je schopen generovat napˇet´ı 3,3 V pˇri vstupn´ım napˇet´ı v rozsahu od 1,8 V do 5,5 V (jedn´a se o tzv. buck-boost

(20)

mˇeniˇc). Obecn´a architektura buck-boost mˇeniˇce ale vykazuje pomˇernˇe vysok´y vlastn´ı odbˇer proudu, kter´y se v pˇr´ıpadˇe obvodu TPS63031 pohybuje kolem 3 mA.

Proto byl zvolen odliˇsn´y pˇr´ıstup, kter´y poˇc´ıt´a pouze s napˇet´ım vyˇsˇs´ım neˇz je nap´ajec´ı napˇet´ı syst´emu, pouˇzit´y typ mˇeniˇce tedy bude step-down (buck ), konkr´etnˇe obvod MCP16311. Tento mˇeniˇc je schopen dod´avat napˇet´ı 3,3V pˇri rozsahu od 4,4 V do 30 V, pˇriˇcemˇz disponuje velmi n´ızk´ym vlastn´ım odbˇerem proudu, kter´y se pohybuje v rozmez´ı od 55 µA do 140 µA.

Obr´azek 3.2: Sch´ema zapojen´ı obvodu MCP16311

Zapojen´ı na Obr. 3.2 vych´az´ı ze sch´ematu uveden´em v [6]. V´ysledn´y ploˇsn´y spoj je realizov´an ve formˇe vymˇeniteln´eho modulu, kter´y je pˇripojen k hlavn´ı desce.

3.2 Hlavn´ı deska

Hlavn´ı deska obsahuje n´asleduj´ıc´ı komponenty: konektor pro pˇripojen´ı baterie, sp´ınac´ı propojka, patice pro nap´ajec´ı modul, odporov´y dˇeliˇc, mikrokontrol´er, pamˇet’

25AA02E48T, pamˇet’ 25AA256, patice mikroBUSTM, 8 MHz krystal a 32,768 kHz krystal.

Odporov´y dˇeliˇc je pˇripojen na kladn´y p´ol baterie a jeho v´ystup je pˇriveden na vstup A/D pˇrevodn´ıku mikrokontrol´eru. Jelikoˇz je v´yˇse zm´ınˇen´y integrovan´y ob- vod MCP16311 schopen pracovat do napˇet´ı 30 V, je nutn´e sn´ıˇzit mˇeˇren´e napˇet´ı na A/D pˇrevodn´ıku tak, aby nedoˇslo k jeho poˇskozen´ı. Pamˇet’ 25AA02E48T obsa- huje v´yrobcem definovan´e unik´atn´ı ˇc´ıslo EUI-48 (Extended Unique Identifier), kter´e pouˇz´ıv´a technologie MiWi pro adresaci uzl˚u v s´ıti. Pamˇet’ 25AA256 rovnˇeˇz slouˇz´ı technologii MiWi pro ukl´ad´an´ı informac´ı o s´ıti, kter´e jsou obnoveny po v´ypadku nap´ajen´ı. Prim´arn´ı hodinov´y sign´al je tvoˇren krystalem o pracovn´ı frekvenci 8 MHz, sekund´arn´ı hodinov´y sign´al tvoˇr´ı krystal o pracovn´ı frekvenci 32,768 kHz a je pouˇzit pro taktov´an´ı hodin re´aln´eho ˇcasu v reˇzimu sp´anku. Sch´ema zapojen´ı hlavn´ı desky je uvedeno v pˇr´ıloze.

(21)

Obr´azek 3.3: Hlavn´ı deska

3.3 Adapt´ ery pro pˇ ripojen´ı bezdr´ atov´ ych modul˚ u

Oba adapt´ery, resp. pouˇzit´e moduly, pouˇz´ıvaj´ı pro komunikaci s mikrokontrol´erem sbˇernici SPI. Modul IQRF je dle n´avrhu v´yrobce pˇripojen pomoc´ı konektoru SIM.

Sch´ema zapojen´ı obou modul˚u je uvedeno v pˇr´ıloze.

Obr´azek 3.4: Adapt´ery: vlevo IQRF, vpravo MiWi

(22)

4 Technologie MiWi

Technologie MiWi je soubor hardwarov´ych a softwarov´ych prostˇredk˚u, protokol˚u a v´yvojov´ych n´astroj˚u, kter´e se souhrnnˇe naz´yvaj´ı MiWiTM DE (Development Envi- ronment). Mezi hardware lze zaˇradit pˇr´ısluˇsn´e moduly (pro tuto pr´aci byl vybr´an typ MRF24J40MA), softwarov´e prostˇredky tvoˇr´ı knihovny, kter´e se souhrnˇe naz´yvaj´ı stack a do v´yvojov´ych n´astroj˚u lze zaˇradit analyz´ator bezdr´atovˇe pˇren´aˇsen´ych zpr´av Microchip ZENA Wireless Adapter a poˇc´ıtaˇcovou aplikaci Microchip Wireless Deve- lopment Studio urˇcenou pro zobrazov´an´ı zachycen´ych zpr´av. Pro pˇrenos zpr´av byly vyvinuty celkem tˇri nez´avisl´e protokoly s n´asleduj´ıc´ımi vlastnostmi:

ˆ MiWi P2P

– Podporuje topologie typu P2P (peer-to-peer) a hvˇezda – Pouze jeden pˇreskok zpr´avy, ˇz´adn´e smˇerov´an´ı zpr´av

ˆ MiWi Mesh

– Podporuje topologii mesh s´ıtˇe a smˇerov´an´ı zpr´av

– ˇCtyˇri pˇreskoky (hops) zpr´av, max. osm koordin´ator˚u v s´ıti, ke kaˇzd´emu koordin´atorovi je moˇzno pˇripojit aˇz 127 uzl˚u

ˆ MiWi PRO

– Rozˇs´ıˇren´ı protokolu MiWi Mesh

– Podpora aˇz 64 koordin´ator˚u a aˇz 65 pˇreskok˚u zpr´avy

Obr´azek 4.1: Porovn´an´ı s´ıt’ov´ych model˚u: vlevo OSI, vpravo model MiWi

(23)

Jak je ps´ano v [7], protokol MiWi PRO je funkˇcn´ı pouze v bal´ıku Microchip Libraries for Applications v2013-06-15, jehoˇz souˇc´ast´ı je i MiWi Stack. Souˇcasn´a verze bal´ıku MLA pouˇzit´a v t´eto pr´aci je v2016-08-08, tud´ıˇz pouˇz´ıvan´ym protokolem bude MiWi Mesh.

MiWi PRO is only functional in the Legacy MLA (2013-06-15). The Legacy MLA is not supported and is not recommend for development.

The current version of the MLA and MCC do not support MiWi PRO.

Earlier versions of the MLA contained the ”miwi pro.c”code but this was mistakenly included. None of the MLA demos depended on this file and if the file was included in a project it would fail to compile as it was just copied directly from the Legacy MLA and was not updated for the current versions of the MLA. [7]

Protokol MiWi je zaloˇzen na standardu IEEE 802.15.4, konkr´etnˇe na fyzick´e vrstvˇe (PHY) a vrstvˇe pˇr´ıstupu k m´ediu (MAC). Protokol poskytuje funkciona- lity k vyhled´av´an´ı, sestaven´ı a pˇripojen´ı k s´ıti, objevov´an´ı novˇe pˇripojen´ych uzl˚u a smˇerov´an´ı zpr´av. Naopak nepokr´yv´a aplikaˇcnˇe specifick´e probl´emy jako je rozho- dov´an´ı, ke kter´e s´ıti se pˇripojit nebo jak ˇcasto by mˇely b´yt odes´ıl´any zpr´avy.

Podobnˇe jako standard IEEE 802.15.4, protokol MiWi pouˇz´ıv´a mechanismus potvrzovan´ych zpr´av. Pokud je v odes´ılan´e zpr´avˇe aktivov´an pˇr´ıznak pro odesl´an´ı potvrzovac´ı zpr´avy, protistrana mus´ı toto potvrzen´ı odeslat v pˇredem stanoven´em intervalu. Pokud potvrzen´ı nen´ı vˇcas doruˇceno, odes´ılatel znovu odeˇsle p˚uvodn´ı zpr´avu.

4.1 Typy zaˇ r´ızen´ı v s´ıti

Standard IEEE 802.15.4 definuje dva typy zaˇr´ızen´ı:

ˆ Full Function Device (FFD) - zaˇr´ızen´ı poskytuj´ıc´ı vˇsechny funkcionality v r´amci s´ıtˇe, kter´e je trvale v aktivn´ım stavu (nepˇrech´az´ı do reˇzimu sp´anku)

ˆ Reduced Function Device (RFD) - zaˇr´ızen´ı s omezen´ymi funkcionalitami, ty- picky koncov´y uzel nap´ajen´y z baterie

Protokol MiWi definuje celkem tˇri typy zaˇr´ızen´ı. Jejich popis a vztah k typ˚um zaˇr´ızen´ı dle IEEE 802.15.4 vystihuje Tabulka 4.1.

(24)

Typ zaˇr´ızen´ı IEEE Typ Zaˇr´ızen´ı Funkce

PAN Koordin´ator FFD Pouze jeden v s´ıti. Sestavuje s´ıt’, pˇridˇeluje s´ıt’ov´e adresy uzl˚um.

Koordin´ator FFD Voliteln´y typ v r´amci s´ıtˇe. Rozˇsiˇruje fyzick´y dosah s´ıtˇe. Umoˇzˇnuje pˇripojov´an´ı dalˇs´ıch koncov´ych uzl˚u.

M˚uˇze prov´adˇet prov´adˇet funkciona- lity uzlu (napˇr. mˇeˇr´ıc´ı nebo ˇr´ıd´ıc´ı funkce).

Koncov´e zaˇr´ızen´ı FFD nebo RFD Prov´ad´ı pouze mˇeˇr´ıc´ı nebo ˇr´ıd´ıc´ı funkce.

Tabulka 4.1: Typy zaˇr´ızen´ı v s´ıt´ıch MiWi

4.2 Pˇ ridˇ elov´ an´ı adres

Miwi pouˇz´ıv´a tˇri typy adres:

ˆ Fyzick´a adresa - tzv. EUI (Extended Organizationally Unique Identifier) ad- resa je 8 bajt˚u dlouh´a a glob´alnˇe unik´atn´ı

ˆ PANID - identifik´ator PAN (Personal area network) s´ıtˇe, vˇsechny uzly v s´ıti maj´ı stejn´e PANID, d´elka 2 bajty

ˆ Zkr´acen´a (logick´a) adresa - dva bajty dlouh´a adresa pˇridˇelovan´a rodiˇcovsk´ym uzlem, unik´atn´ı v r´amci s´ıtˇe, pouˇz´ıvan´a k adresaci zpr´av

Logick´a adresa dlouh´a 16 bit˚u je rozdˇelena na ˇc´ast obsahuj´ıc´ı 3 bity z adresy rodiˇcovsk´eho uzlu, jeden bit adresy (RxOffWhenIdle) indikuje, ˇze zaˇr´ızen´ı vyp´ın´a transceiver v reˇzimu sp´anku. ˇC´ast vyhrazen´a pro adresaci uzlu je dlouh´a 7 bit˚u.

Uspoˇr´ad´an´ı a v´yznam jednotliv´ych ˇc´ast´ı popisuje Obr. 4.2.

Obr´azek 4.2: Zkr´acen´a (logick´a) adresa

Z v´yˇse uveden´ych informac´ı vypl´yv´a, ˇze v s´ıti mus´ı b´yt pr´avˇe jeden PAN ko- ordin´ator, aˇz sedm koordin´ator˚u, pˇriˇcemˇz ke kaˇzd´emu koordin´atorovi m˚uˇze b´yt pˇripojeno aˇz 127 koncov´ych uzl˚u. Pˇr´ıkladem mohou b´yt n´asleduj´ıc´ı adresy:

ˆ 0x0000h - tuto adresu m´a vˇzdy PAN koordin´ator s´ıtˇe

(25)

ˆ 0x0300h - adresa koordin´atora m´a vˇzdy ˇc´ast adresy pro koncov´y uzel a bit RxOffWhenIdle nastaveny na hodnotu 0

ˆ 0x0531h - adresa koncov´eho uzlu, jehoˇz transceiver je vˇzdy zapnut´y, rodiˇcovsk´y koordin´ator m´a adresu 0x0500h

ˆ 0x07A2h - adresa koncov´eho uzlu, jehoˇz transceiver m˚uˇze b´yt vypnut, rodiˇcovsk´y koordin´ator m´a adresu 0x0700h

ˆ 0xFFFFh - adresa pro vˇsesmˇerov´e vys´ıl´an´ı (broadcast)

4.3 Datov´ y r´ amec

Datov´y r´amec protokolu MiWi se skl´ad´a ze ˇctyˇr ˇc´ast´ı: hlaviˇcky fyzick´e vrstvy (PHY), hlaviˇcky vrstvy s´ıt’ov´eho pˇr´ıstupu (MAC), s´ıt’ov´ych informac´ı a samotn´ych dat.

Hlaviˇcka fyzick´e vrstvy je pouˇzita k synchronizaci komunikace v s´ıti (mechanis- mem unik´atn´ıho ˇc´ıslov´an´ı r´amc˚u) a pˇren´aˇsen´ı informac´ı o fyzick´e vrstvˇe (pouˇzit´y komunikaˇcn´ı kan´al, s´ıla sign´alu, kvalita linky).

C´ˇast r´amce obsahuj´ıc´ı MAC hlaviˇcku v sobˇe nese ˇr´ıd´ıc´ı bajt, kter´y ud´av´a infor- mace o pˇren´aˇsen´em r´amci, napˇr. typ paketu, pouˇzit´ı ˇsifrov´an´ı nebo poˇzadavek na potvrzen´ı doruˇcen´ı. MAC hlaviˇcka n´aslednˇe pˇren´aˇs´ı data (payload), kter´a jsou inter- pretov´ana vyˇsˇs´ımi vrstvami. Posledn´ı ˇc´ast, kter´a je pˇren´aˇsena, je kontroln´ı souˇcet.

Strukturu datov´eho r´amce popisuje Obr. 4.3.

Obr´azek 4.3: Struktura datov´eho r´amce

(26)

C´ˇast r´amce obsahuj´ıc´ı data pro vyˇsˇs´ı vrstvy (MAC payload na Obr. 4.3) v sobˇe nese informace o zdrojov´e a c´ılov´e adrese, PANID a samotn´a uˇzivatelem pˇren´aˇsen´a data. Struktura tˇechto informac´ı je vyobrazena na Obr. 4.4.

Obr´azek 4.4: Struktura datov´eho paketu vyobrazen´em v prostˇred´ı Wireless Develo- pment Studio

4.4 Programov´ e rozhran´ı protokolu MiWi

Programov´e rozhran´ı protokolu MiWi (naz´yvan´e MiApp) se skl´ad´a ze dvou ˇc´ast´ı:

konfiguraˇcn´ıho souboru a sady funkc´ı pouˇzit´ych k v´yvoji. Jak naznaˇcuje Obr. 4.5, programov´e rozhran´ı umoˇzˇnuje vymˇenitelnost r˚uzn´ych verz´ı protokol˚u a transce- iver˚u pouze s minim´aln´ı nebo ˇz´adnou ´upravou aplikaˇcn´ıho k´odu. Cel´e rozhran´ı je rozdˇeleno do pˇeti ˇc´ast´ı: inicializace, navazov´an´ı spojen´ı, odes´ıl´an´ı zpr´av, pˇr´ıjem zpr´av a speci´aln´ı funkce jako je detekce ruˇsen´ı nebo ´usporn´e reˇzimy.

Samotn´a konfigurace protokolu je realizov´ana pomoc´ı definiˇcn´ıch maker uve- den´ych v [9] v Tab. 1.

(27)

Obr´azek 4.5: Struktura programov´eho rozhran´ı

N´asleduj´ıc´ı souhrn popisuje vˇsechny funkce programov´eho rozhran´ı MiApp.

ˆ BOOL MiApp_ProtocolInit(BOOL bNetworkFreezer);

– Inicializace RF transceiveru a cel´eho stacku. Jedin´ym vstupn´ım para- metrem je hodnota typu boolean, kter´a rozhoduje, zda m´a b´yt naˇcteno pˇredeˇsl´e nastaven´ı s´ıtˇe z pamˇeti EEPROM. N´avratov´a hodnota pot´e in- dikuje, zda byl proces inicializace ´uspˇeˇsn´y.

ˆ BOOL MiApp_SetChannel(BYTE Channel);

– Nastaven´ı komunikaˇcn´ıho kan´alu, jehoˇz hodnota m˚uˇze b´yt v rozsahu 11 aˇz 26. N´avratov´a hodnota indikuje, zda byla operace ´uspˇeˇsn´a.

ˆ BOOL MiApp StartConnection(BYTE Mode, BYTE ScanDuration, DWORD ChannelMap);

– Funkce pro vytvoˇren´ı PAN s´ıtˇe. Parametr Mode urˇcuje, jestli bude pˇred vytvoˇren´ım s´ıtˇe provedena detekce ruˇsen´ı na pˇr´ısluˇsn´ych kan´alech defino- van´ych parametrem ChannelMap. Parametr ScanDuration urˇcuje dobu skenov´an´ı kan´al˚u a je d´an vztahem scanT ime(µs) = 960∗(2ScanDuration

+ 1).

ˆ BYTE MiApp_SearchConnection(BYTE ScanDuration,DWORD ChannelMap);

– Vyhled´av´a dostupn´e s´ıtˇe, resp. koordin´atory, v´ysledky uloˇz´ı do glob´alnˇe pˇr´ıstupn´eho pole typu ACTIVE SCAN RESULT uveden´em ve Zdrojov´em k´odu 4.1. Parametr ScanDuration m´a stejn´y v´yznam jako v pˇredch´azej´ıc´ı funkci,

(28)

parametr ChannelMap ud´av´a, na kter´ych kan´alech bude prob´ıhat vy- hled´av´an´ı. N´avratov´a hodnota indikuje poˇcet nalezen´ych zaˇr´ızen´ı, ke kter´ym se lze pˇripojit.

1 t y p e d e f s t r u c t{ 2 B Y T E C h a n n e l ; 3 B Y T E A d d r e s s [];

4 W O R D _ V A L P A N I D ; 5 B Y T E R S S I ;

6 B Y T E LQI ; 7 u n i o n

8 {

9 B Y T E Val ; 10 s t r u c t

11 {

12 B Y T E R o l e : 2;

13 B Y T E S l e e p : 1;

14 B Y T E S e c u r i t y E n : 1;

15 B Y T E R e p e a t E n : 1;

16 B Y T E A l l o w J o i n : 1;

17 B Y T E D i r e c t : 1;

18 B Y T E a l t S r c A d d r : 1;

19 } b i t s ; 20 } C a p a b i l i t y

21 } A C T I V E _ S C A N _ R E S U L T ;

Zdrojov´y k´od 4.1: Struktura ACTIVE SCAN RESULT

ˆ void MiApp RemoveConnection(BYTE ConnectionIndex);

– Provede vymaz´an´ı spojen´ı z tabulky pˇripojen´ı, jej´ıˇz struktura je uve- dena ve Zdrojov´em k´odu 4.2, na pozici udan´e vstupn´ım parametrem ConnectionIndex. Pokud je vstupn´ı hodnota rovna 0xFFh, jsou z ta- bulky pˇripojen´ı vymaz´any vˇsechny z´aznamy.

1 t y p e d e f s t r u c t _ _ C O N N E C T I O N _ E N T R Y

2 {

3 A P I _ U I N T 1 6 _ U N I O N P A N I D ;

4 A P I _ U I N T 1 6 _ U N I O N A l t A d d r e s s ;

5 u i n t 8 _ t A d d r e s s [ M Y _ A D D R E S S _ L E N G T H ];

6 C O N N E C T I O N _ S T A T U S s t a t u s ;

7 #if A D D I T I O N A L _ N O D E _ I D _ S I Z E > 0

8 u i n t 8 _ t P e e r I n f o [ A D D I T I O N A L _ N O D E _ I D _ S I Z E ];

9 # e n d i f

10 } C O N N E C T I O N _ E N T R Y ; 11

12 e x t e r n C O N N E C T I O N _ E N T R Y C o n n e c t i o n T a b l e [ C O N N E C T I O N _ S I Z E ];

Zdrojov´y k´od 4.2: Struktura CONNECTION ENTRY a pole pˇripojen´ych uzl˚u

(29)

ˆ BYTE MiApp EstablishConnection(BYTE ActiveScanIndex, BYTE Mode);

– Funkce nav´aˇze spojen´ı s jedn´ım nebo v´ıce uzly. N´avratov´a hodnota uka- zuje na index v tabulce pˇripojen´ı. Pokud je n´avratov´a hodnota rovna 0xFFh, spojen´ı se nezdaˇrilo. Parametr ActiveScanIndex je index pole typu ACTIVE SCAN RESULT. Pokud je tato hodnota rovna 0xFFh, pak se funkce pokus´ı nav´azat spojen´ı se vˇsemi dostupn´ymi uzly zaznamenan´e v uveden´em poli. Parametr Mode ud´av´a zp˚usob pˇripojen´ı. Ten m˚uˇze b´yt bud’ formou pˇr´ım´eho r´adiov´eho dosahu nebo v nepˇr´ım´eho.

ˆ void MiApp ConnectionMode(BYTE Mode);

– Funkce nastav´ı reˇzim pˇrij´ım´an´ı poˇzadavk˚u o spojen´ı od ostatn´ıch uzl˚u:

pˇr´ıjem vˇsech poˇzadavk˚u, pˇr´ıjem poˇzadavk˚u pouze od uzl˚u, kter´e byly uloˇzeny v pamˇeti EEPROM, pˇr´ıjem pouze skenovac´ıch poˇzadavk˚u a zak´az´an´ı vˇsech poˇzadavk˚u.

ˆ void MiApp FlushTx(void);

– Tato funkce resetuje ukazatel na pole, do kter´eho se nahr´avaj´ı odes´ılan´a data.

ˆ void MiApp WriteData(BYTE OneByteTxData);

– Nahraje jeden bajt zpr´avy dan´y vstupn´ı hodnotou OneByteTxData do pole (bufferu), pomoc´ı kter´eho se odes´ılaj´ı data. Obvykle je nejprve za- vol´ana funkce MiApp FlushTx, n´aslednˇe MiApp WriteData a pot´e pˇr´ısluˇsn´a funkce pro odesl´an´ı zpr´avy bud’ ve formˇe vˇsesmˇerov´eho vys´ıl´an´ı (broad- cast) nebo ve formˇe c´ılen´eho vys´ıl´an´ı.

ˆ BOOL MiApp BroadcastPacket(BOOL SecEn);

– Odeˇsle data uloˇzen´a v transportn´ım poli pomoc´ı vˇsesmˇerov´eho vys´ıl´an´ı.

N´avratov´a hodnota indikuje zda byl proces ´uspˇeˇsn´y. Parametr SecEn nastavuje moˇznost ˇsifrov´an´ı. odeslan´eho paketu.

ˆ BOOL MiApp UnicastConnection(BYTE ConnectionIndex, BOOL SecEn);

– Odeˇsle data uloˇzen´a v transportn´ım poli, c´ılov´y uzel je d´an parametrem ConnectionIndex, kter´y ud´av´a pozici v poli pˇripojen´ych uzl˚u.

ˆ BOOL MiApp UnicastAddress(BYTE *Address,BOOL PermanentAddr, BOOL SecEn);

– Odeˇsle data uloˇzen´a v transportn´ım poli, c´ılov´y uzel je d´an parametrem PermanentAddr, kter´y ud´av´a c´ılovou adresu.

ˆ BOOL MiApp MessageAvailable(void);

– Funkce vrac´ı hodnotu, kter´a indikuje novou doruˇcenou zpr´avu pˇripravenou k dalˇs´ımu zpracov´an´ı. Zpr´ava je uloˇzena v promˇenn´e rxMessage, kter´a je typu RECEIVED MESSAGE ve Zdrojov´em k´odu 4.3.

(30)

1 t y p e d e f s t r u c t

2 {

3 u n i o n

4 {

5 u i n t 8 _ t Val ; 6 s t r u c t

7 {

8 u i n t 8 _ t b r o a d c a s t : 2;

9 u i n t 8 _ t a c k R e q : 1;

10 u i n t 8 _ t s e c E n : 1;

11 u i n t 8 _ t r e p e a t : 1;

12 u i n t 8 _ t c o m m a n d : 1;

13 u i n t 8 _ t s r c P r s n t : 1;

14 u i n t 8 _ t a l t S r c A d d r : 1;

15 } b i t s ; 16 } f l a g s ; 17

18 A P I _ U I N T 1 6 _ U N I O N S o u r c e P A N I D ; 19 u i n t 8 _ t * S o u r c e A d d r e s s ;

20 u i n t 8 _ t * P a y l o a d ; 21 u i n t 8 _ t P a y l o a d S i z e ; 22 u i n t 8 _ t P a c k e t R S S I ; 23 u i n t 8 _ t P a c k e t L Q I ; 24 } R E C E I V E D _ M E S S A G E ;

Zdrojov´y k´od 4.3: Struktura RECEIVED MESSAGE

ˆ void MiApp DiscardMessage(void);

– Zavol´an´ım t´eto funkce d´av´ame najevo, ˇze pˇr´ıchoz´ı paket byl zpracov´an a jsme pˇripraveni pˇrijmout dalˇs´ı.

ˆ BYTE MiApp TransceiverPowerState(BYTE Mode);

– Zp˚usob´ı usp´an´ı nebo probuzen´ı transceiveru podle vstupn´ı hodnoty Mode.

N´avratov´a hodnota indikuje, zda byl proces ´uspˇeˇsn´y.

(31)

5 V´ yvoj bezdr´ atov´ e aplikace zaloˇ zen´ e na tech- nologii MiWi

Jak jiˇz bylo naznaˇceno v Tab. 4.1, technologie MiWi rozezn´av´a tˇri typy zaˇr´ızen´ı, proto budou vyvinuty tˇri projekty: PAN koordin´ator, koordin´ator a koncov´e zaˇr´ızen´ı.

V´yvoj zdrojov´eho k´odu prob´ıhal v prostˇred´ı MPLAB X IDE v3.45 za pomoci kom- pil´atoru MPLAB XC32 v1.42 a sady knihoven Microchip libraries for Applications (MLA) v2016-08-08 obsahuj´ıc´ı MiWi stack.

5.1 Obecn´ a struktura projektu v prostˇ red´ı MPLAB X

Struktura projektu vych´az´ı z pˇr´ıkladov´e ´ulohy nach´azej´ıc´ı se v uveden´em bal´ıku knihoven a je ilustrov´ana na Obr. 5.1.

Obr´azek 5.1: Struktura projektu v prostˇred´ı MPLAB X1

1Struktura uveden´a na Obr. 5.1 neodpov´ıd´a re´aln´e struktuˇre sloˇzek na pevn´em disku.

Tzv. virtu´aln´ı sloˇzky slouˇz´ı pˇredevˇs´ım pro lepˇs´ı pˇrehlednost projektu.

(32)

Zdrojov´e a hlaviˇckov´e soubory MiWi stacku jsou fyzicky uloˇzeny v bal´ıku MLA, kter´y je obvykle instalov´an do sloˇzky C:\microchip\mla. Tyto soubory jsou v pro- jektu zaˇclenˇeny do virtu´aln´ı sloˇzky framework. Projektovˇe specifick´e soubory jsou zaˇrazeny do virtu´aln´ı sloˇzky system config a fyzicky uloˇzeny v projektov´e sloˇzce.

D´ale je nutn´e ve vlastnostech projektu (Project properties → XC32-gcc → Pre- processing and messages → Include directories) nastavit sloˇzky, ze kter´ych budou naˇc´ıt´any hlaviˇckov´e soubory.

Obr´azek 5.2: Sloˇzky, ze kter´ych budou naˇc´ıt´any hlaviˇckov´e soubory

Konfigurace konkr´etn´ı aplikace a stacku je rozdˇelena na nˇekolik ˇc´ast´ı. V souboru system config.h jsou pˇredevˇs´ım definov´any n´azvy konkr´etn´ıch pin˚u, kter´e jsou n´aslednˇe pouˇz´ıv´any cel´ym stackem. Jejich n´azev tedy mus´ı b´yt striktnˇe dodrˇzov´an.

V souboru system.h jsou definov´any taktovac´ı frekvence pˇr´ısluˇsn´ych souˇc´ast´ı mi- krokontrol´eru. Soubor miwi config.h obsahuje konfiguraci aplikaˇcn´ı vrstvy stacku (napˇr. typ pouˇzit´eho protokolu, role uzlu v s´ıti, d´elka adresy, PAN ID, velikost buffer˚u, typ pouˇzit´eho komunikaˇcn´ıho modulu atd.). Soubor miwi config mesh.h definuje chov´an´ı logiky mesh s´ıtˇe a vrstvy pˇr´ıstupu k m´ediu (MAC). Jedn´a se hlavnˇe o ˇcasov´e limity jednotliv´ych operac´ı. Posledn´ı konfiguraˇcn´ı soubor config 24j40.h definuje vlastnosti fyzick´e vrstvy jako je napˇr´ıklad ˇsifrovac´ı kl´ıˇc nebo dodateˇcn´a na- staven´ı konkr´etn´ıch modul˚u. Za zm´ınku stoj´ı i konfigurace sbˇernice SPI, jej´ıˇz n´azvy funkc´ı mus´ı b´yt tak´e striktnˇe dodrˇzov´any nebot’ jsou pouˇz´ıv´any stackem pro komu- nikaci s modulem. D˚uleˇzit´e je i nastaven´ı ˇcasovaˇce. Konkr´etnˇe byly pouˇzity ˇcasovaˇce Timer2 a Timer3, kter´e dohromady tvoˇr´ı jeden 32bitov´y ˇcasovaˇc. Ten je nastaven dle poˇzadavku standardu IEEE 802.15.4. Tento standard totiˇz definuje z´akladn´ı ˇcasov´e kvantum (tzv. symbol) o d´elce 16 µs, coˇz je nastaven´a perioda inkrementace ˇcasovaˇce.

Zdrojov´e soubory jsou rozdˇeleny stejnˇe jako hlaviˇckov´e, tedy na ˇc´ast tvoˇr´ıc´ı stack a na ˇc´ast realizuj´ıc´ı konkr´etn´ı aplikaci vˇcetnˇe podp˚urn´ych soubor˚u. Soubor system.c obsahuje nastaven´ı konfiguraˇcn´ıch bit˚u mikrokontrol´eru a funkci, kter´a ini- cializuje vˇsechny potˇrebn´e periferie. Funkce pro inicializaci a ˇcten´ı hodnoty ˇcasovaˇce jsou definov´any v souboru symbol.c. Hodnota ˇcasovaˇce je ukl´ad´ana do struktury MIWI TICK. Definice funkc´ı pro pouˇz´ıv´an´ı sbˇernice SPI se nach´azej´ı v souboru spi.c.

V souboru eeprom.c jsou definov´any funkce pro ˇcten´ı adresy EUI-48 z pamˇeti

(33)

EEPROM. Soubory delay.c, console.c a button.c obsahuj´ı pomocn´e funkce pro generov´an´ı zpoˇzdˇen´ı, obsluhu sbˇernice UART a tlaˇc´ıtek. Z´alohov´an´ı informac´ı o s´ıti a jejich zpˇetn´e naˇc´ıt´an´ı zajiˇst’uj´ı funkce definovan´e v souboru miwi nvm.c. Logiku s´ıtˇe, resp. fungov´an´ı s´ıt’ov´e vrstvy, obstar´avaj´ı funkce definovan´e v souboru miwi mesh.c.

Vrstvu pˇr´ıstupu k m´ediu a fyzickou vrstvu vˇcetnˇe komunikace s modulem zajiˇst’uj´ı funkce v souboru drv mrf 24j40.c. Samotn´a aplikaˇcn´ı logika je pot´e v hlavn´ım souboru main.c.

5.2 Uprava zdrojov´ ´ ych k´ od˚ u pro architekturu PIC32MX

Jelikoˇz je MiWi stack distribuov´an pouze pro osmibitov´e mikrokontrol´ery, bylo jedn´ım z ´ukol˚u t´eto pr´ace pˇrizp˚usobit stack tak, aby mohl fungovat i na archi- tektuˇre PIC32MX. Hlavn´ı zmˇeny byly provedeny v oblasti pouˇz´ıv´an´ı syst´emov´ych zdroj˚u mikrokontrol´eru jako napˇr. ´uprava ˇcasovaˇc˚u nebo zmˇeny v pˇreruˇsen´ı.

Zat´ımco osmibitov´e mikrokontrol´ery pouˇz´ıvaj´ı syst´em s jedn´ım vektorem pˇreruˇsen´ı (v k´odu je definov´ana pouze jedna funkce, ve kter´e jsou kontrolov´any pˇr´ısluˇsn´e pˇreruˇsovac´ı pˇr´ıznaky), architektura PIC32MX pouˇz´ıv´a v´ıce-vektorov´y syst´em pˇreruˇsen´ı.

To znamen´a, ˇze k´od pro mikrokontrol´er PIC32MX m˚uˇze obsahovat v´ıce funkc´ı obslu- huj´ıc´ı pˇreruˇsen´ı, pˇriˇcemˇz se zavol´a funkce, kter´a obsluhuje dan´y pˇreruˇsovac´ı vektor.

Nav´ıc pouˇz´ıv´a architektura PIC32MX syst´em priorit, kter´y obsluhuje pˇreruˇsen´ı vy- volan´a ve stejn´y okamˇzik. V´yslednou inicializaci pˇreruˇsen´ı popisuje Zdrojov´y k´od 5.1.

Ve zdrojov´em k´odu drv mrf miwi 24j40.c je pot´e nutn´e nahradit definici pˇreruˇsovac´ı funkce void interrupt high isr (void) definic´ı void ISR( EXTERNAL 0 VECTOR, IPL1AUTO) RxInterrupt(void). Velkou pozornost je nutn´e vˇenovat nastaven´ym priorit´am. Pokud m´a pˇreruˇsen´ı nastavenou jinou prioritu neˇz pˇreruˇsovac´ı vektor, nedojde k aktivaci pˇreruˇsen´ı.

1 // p o u z i t i v i c e v e k t o r o v e h o p r e r u s e n i

2 I N T C o n f i g u r e S y s t e m ( I N T _ S Y S T E M _ C O N F I G _ M U L T _ V E C T O R );

3 // p o v o l e n i p r e r u s e n i 4 I N T E n a b l e I n t e r r u p t s ();

5 // v y n u l o v a n i p r i z n a k u p r e r u s e n i na p i n u I N T 0 6 I N T C l e a r F l a g ( I N T _ I N T 0 );

7 // p o v o l e n i e x t e r n i h o p r e r u s e n i ,

8 // v y v o l a n i p r e r u s e n i na s e s t u p n o u h r a n u

9 C o n f i g I N T 0 ( F A L L I N G _ E D G E _ I N T | E X T _ I N T _ E N A B L E );

10 // n a s t a v e n i p r i o r i t y 11 I P C 0 S E T = 0 x 0 4 0 0 0 0 0 0 ; 12 // p o v o l e n i p r e r u s e n i

13 I N T E n a b l e ( I N T _ I N T 0 , I N T _ E N A B L E D );

Zdrojov´y k´od 5.1: Inicializace pˇreruˇsen´ı

Dalˇs´ı oblast´ı, kter´a vyˇzadovala ´upravu, byl ˇcasovaˇc. Osmibitov´e mikrokontrol´ery disponuj´ı pouze 16bitov´ymi ˇcasovaˇci a rozˇs´ıˇren´ı na 32 bit˚u je ˇreˇseno softwarovou cestou. U architektury PIC32MX je moˇzn´e spojit dva 16bitov´e ˇcasovaˇce (v tomto pˇr´ıpadˇe Timer 2 a Timer3) a vytvoˇrit tak jeden 32bitov´y. D´ale je nutn´e nastavit

(34)

korektnˇe hodnotu ONE SECOND v souboru system.h, jej´ıˇz hodnota se ˇr´ıd´ı vztahem

1(s)

perioda inkrementace casovace(s). V tomto pˇr´ıpadˇe je perioda inkrementace ˇcasovaˇce 16 µs, v´ysledn´e ˇc´ıslo je tedy 62 500. Ve stejn´em souboru je nutn´e upravit i pˇrevodn´ı makra SYMBOLS TO TICKS(a) a TICKS TO SYMBOLS(a). Pojem tick v tomto kontextu zna- men´a jeden takt ˇcasovaˇce, zat´ımco pojem symbol znamen´a jiˇz zm´ınˇen´e ˇcasov´e kvan- tum o d´elce 16 µs. Pokud perioda taktu ˇcasovaˇce nen´ı rovna 16 µs, je nutn´e uplatnit pˇrevodn´ı vztah pro pˇrevod tˇechto jednotek. Pokud je takt ˇcasovaˇce roven jednomu symbolu (coˇz je tento pˇr´ıpad), pak mohou tato makra m´ıt tvar

#define SYMBOLS TO TICKS(a) a.

5.3 Aplikaˇ cn´ı k´ od - PAN koordin´ ator

Zdrojov´y k´od koordin´atora vych´az´ı z doporuˇcen´e sekvence pˇr´ıkaz˚u uveden´e v [9].

Aby uzel zast´aval roli koordin´atora, je nutn´e v hlaviˇckov´em souboru miwi config.h zav´est definici #define NWK ROLE COORDINATOR.

Nejprve je inicializov´an veˇsker´y potˇrebn´y hardware a pot´e je naˇctena EUI-48 adresa. N´aslednˇe je zah´ajena inicializace protokolu vˇcetnˇe transceiveru, d´ale je na- staven komunikaˇcn´ı kan´al a reˇzim pˇripojen´ı uzl˚u, zah´ajen provoz s´ıtˇe a pot´e je v nekoneˇcn´e smyˇcce kontrolov´ano, zda byla pˇrijata zpr´ava. Pokud byla zpr´ava pˇrijata, je na sbˇernici UART vyps´ana zdrojov´a adresa zpr´avy a jej´ı obsah. Uveden´y Zdrojov´y k´od 5.2 zjednoduˇsenˇe vystihuje posloupnost pˇr´ıkaz˚u.

1 v o i d m a i n (v o i d)

2 {

3 // i n i c i a l i z a c e d e s k y 4 S Y S T E M _ I n i t i a l i z e ();

5 // n a c t e n i EUI -48 a d r e s y 6 R e a d _ M A C _ A d d r e s s ();

7 // i n i c i a l i z a c e p r o t o k o l u a t r a n s c e i v e r u 8 M i A p p _ P r o t o c o l I n i t ( f a l s e );

9 // n a s t a v e n i k o m u n i k a c n i h o k a n a l u 10 M i A p p _ S e t C h a n n e l ( m y C h a n n e l );

11 // n a s t a v e n i r e z i m u p r i p o j o v a n i u z l u 12 M i A p p _ C o n n e c t i o n M o d e ( E N A B L E _ A L L _ C O N N );

13 // v y t v o r e n i s i t e

14 M i A p p _ S t a r t C o n n e c t i o n ( S T A R T _ C O N N _ D I R E C T , 0 , 0);

15 w h i l e(1)

16 {

17 if( M i A p p _ M e s s a g e A v a i l a b l e ())

18 {

19 int i = 0;

20 C O N S O L E _ P u t S t r i n g (" New m e s s a g e a v a i l a b l e ");

21 s p r i n t f ((c h a r *) buf2 ,

22 (c h a r*)" S o u r c e a d d r e s s : < A d d r : % 0 2 x %02 x > ", 23 r x M e s s a g e . S o u r c e A d d r e s s [1] ,

24 r x M e s s a g e . S o u r c e A d d r e s s [ 0 ] ) ;

(35)

25 C O N S O L E _ P u t S t r i n g ( b u f 2 );

26 for( i = 0; i < r x M e s s a g e . P a y l o a d S i z e ; i ++)

27 {

28 buf [ i ] = r x M e s s a g e . P a y l o a d [ i ];

29 }

30 C O N S O L E _ P u t S t r i n g ( buf );

31 M i A p p _ D i s c a r d M e s s a g e ();

32 }

33 }

34

35 }

Zdrojov´y k´od 5.2: Zdrojov´y k´od pˇredstavuj´ıc´ı roli PAN koordin´atora

5.4 Aplikaˇ cn´ı k´ od - koordin´ ator (router)

Zdrojov´y k´od koordin´atora (nepl´est s PAN koordin´atorem) je v urˇcit´ych ohledech stejn´y, zvl´aˇstˇe v inicializaci a konfiguraci, kter´a prob´ıh´a stejnˇe jako u koordin´atora.

Hlavn´ı rozd´ıl spoˇc´ıv´a v zah´ajen´ı vyhled´av´an´ı okoln´ıch uzl˚u a n´asledn´em pˇripojen´ı ke koordin´ator˚um, kter´e maj´ı hodnotu s´ıly sign´alu vyˇsˇs´ı neˇz 50. ˇC´ast programu routeru je uvedena ve Zdrojov´em k´odu 5.3.

1 v o i d m a i n (v o i d)

2 {

3 .

4 .

5 i n i c i a l i z a c e

6 .

7 .

8

9 u i n t 8 _ t s c a n R e s u l t = M i A p p _ S e a r c h C o n n e c t i o n (10 , 10 M i W i _ C H A N N E L );

11 for( i = 0; i < s c a n R e s u l t ; i ++)

12 {

13 if( A c t i v e S c a n R e s u l t s [ i ]. R S S I V a l u e > 50)

14 {

15 if ( M i A p p _ E s t a b l i s h C o n n e c t i o n ( i , 16 C O N N _ M O D E _ I N D I R E C T ) != 0 xFF )

17 {

18 ...

19 }

20 e l s e if ( M i A p p _ E s t a b l i s h C o n n e c t i o n ( i , 21 C O N N _ M O D E _ D I R E C T ) != 0 xFF )

22 {

23 ...

24 }

25 e l s e

(36)

26 {

27 s p r i n t f ( buf , " F A I L E D to c o n n e c t to 0 x %02 x %02 x ", 28 A c t i v e S c a n R e s u l t s [ i ]. A d d r e s s [1] ,

29 A c t i v e S c a n R e s u l t s [ i ]. A d d r e s s [ 0 ] ) ; 30 C O N S O L E _ P u t S t r i n g ( buf );

31 }

32 }

33 }

34

35 w h i l e (1)

36 {

37 if ( M i A p p _ M e s s a g e A v a i l a b l e ())

38 {

39 M i A p p _ D i s c a r d M e s s a g e ();

40 }

41 }

42 }

Zdrojov´y k´od 5.3: Zdrojov´y k´od pˇredstavuj´ıc´ı roli koordin´atora (routeru)

5.5 Aplikaˇ cn´ı k´ od - koncov´ y uzel

Koncov´y uzel se od koordin´ator˚u liˇs´ı pˇredevˇs´ım v konfiguraci. V souboru miwi config.h by mˇela b´yt zavedena definice #define NWK ROLE END DEVICE a #define ENABLE SLEEP.

V aplikaˇcn´ım k´odu je opˇet standardn´ı inicializace aˇz na nastaven´ı pˇripojov´an´ı kon- cov´ych uzl˚u, kter´a je zak´azan´a. Zkr´acen´y program je uveden ve Zdrojov´em k´odu 5.4 1 v o i d m a i n (v o i d)

2 {

3 .

4 .

5 i n i c i a l i z a c e

6 .

7 .

8 M i A p p _ C o n n e c t i o n M o d e ( D I S A B L E _ A L L _ C O N N );

9 u i n t 8 _ t s c a n R e s u l t = M i A p p _ S e a r c h C o n n e c t i o n (10 , 10 M i W i _ C H A N N E L );

11 for( i = 0; i < s c a n R e s u l t ; i ++)

12 {

13 if( A c t i v e S c a n R e s u l t s [ i ]. R S S I V a l u e > 50)

14 {

15 if ( M i A p p _ E s t a b l i s h C o n n e c t i o n ( i , 16 C O N N _ M O D E _ I N D I R E C T ) != 0 xFF )

17 {

18 ...

19 }

20 e l s e if ( M i A p p _ E s t a b l i s h C o n n e c t i o n ( i ,

(37)

21 C O N N _ M O D E _ D I R E C T ) != 0 xFF )

22 {

23 ...

24 }

25 e l s e

26 {

27 s p r i n t f ( buf , " F A I L E D to c o n n e c t to 0 x %02 x %02 x ", 28 A c t i v e S c a n R e s u l t s [ i ]. A d d r e s s [1] ,

29 A c t i v e S c a n R e s u l t s [ i ]. A d d r e s s [ 0 ] ) ; 30 C O N S O L E _ P u t S t r i n g ( buf );

31 }

32 }

33 }

34

35 w h i l e(1)

36 {

37 A D C S a m p l e ();

38 M i A p p _ F l u s h T x ();

39 M i A p p _ W r i t e D a t a ( A D C D a t a [ 1 ] ) ; 40 M i A p p _ W r i t e D a t a ( A D C D a t a [ 0 ] ) ;

41 M i A p p _ U n i c a s t A d d r e s s (0 x0000 , f a l s e ); // a d r e s a k o o r d i n a t o r a 42 A D C O f f ();

43 M i A p p _ T r a n s c e i v e r P o w e r S t a t e ( P O W E R _ S T A T E _ S L E E P );

44 i n i t R T C C ();

45 P o w e r S a v e S l e e p (); // zde se p r o g r a m z a s t a v i

46 M i A p p _ T r a n s c e i v e r P o w e r S t a t e ( P O W E R _ S T A T E _ W A K E U P );

47 A D C O n ();

48 }

49 }

Zdrojov´y k´od 5.4: Zdrojov´y k´od pˇredstavuj´ıc´ı roli koncov´eho uzlu

(38)

6 Technologie IQRF

Technologie IQRF pˇredstavuje kompletn´ı platformu, kter´a zahrnuje ˇsirok´e portfolio bezdr´atov´ych transceiver˚u (v t´eto pr´aci bude pouˇzit modul DCTR-72DA), USB program´ator a debugger, vlastn´ı v´yvojov´e prostˇred´ı a SDK (Software Development Kit) umoˇzˇnuj´ıc´ı vytv´aˇret poˇc´ıtaˇcov´e programy v jazyce Java a C++.

Moduly DCTR lze ˇr´ıdit dvˇema zp˚usoby:

ˆ Pomoc´ı protokolu DPA (Direct Peripheral Access) - Protokol DPA lze aktivo- vat nahr´an´ım rozˇsiˇruj´ıc´ıho k´odu, kter´y v z´avislosti na verzi vytvoˇr´ı z modulu bud’ koordin´atora s´ıtˇe nebo uzel, kter´y m´a ovˇsem moˇznost smˇerovat zpr´avy ostatn´ım uzl˚um. Koordin´ator s´ıtˇe pot´e m˚uˇze ovl´adat periferie ostatn´ıch mo- dul˚u pouze pomoc´ı definovan´eho datov´eho protokolu pˇren´aˇsen´eho po sbˇernici SPI. Pˇr´ıpadnou ´upravu funkcionalit lze ˇreˇsit pomoc´ı tzv. Custom DPA Han- dleru.

ˆ Programov´an´ım v jazyce C - Chov´an´ı modulu lze upravovat pouh´ym progra- mem bez implementace protokolu DPA. K tomuto ´uˇcelu disponuje operaˇcn´ı syst´em IQRF OS sadou funkc´ı popsanou v [10].

Chceme-li pouˇz´ıt protokol DPA, vˇsechny uzly mus´ı b´yt pˇripojeny do s´ıtˇe a m´ıt na- hran´y pˇr´ısluˇsn´y hardwarov´y profil. Pˇripojen´ı uzlu do s´ıtˇe se v terminologii IQRF naz´yv´a bonding. Tento proces lze aktivovat bud’ pomoc´ı v´yvojov´eho prostˇred´ı nebo protokolem DPA. Po ´uspˇeˇsn´em pˇripojen´ı vˇsech modul˚u je vhodn´e tyto moduly rozm´ıstit na pˇr´ısluˇsn´e m´ısto a pot´e prov´est tzv. node discovery, coˇz je v podstatˇe proces optimalizace s´ıtˇe. Tento proces, stejnˇe jako ostatn´ı funkce, lze spustit bud’ po- moc´ı v´yvojov´eho prostˇred´ı nebo zasl´an´ım DPA paketu pˇres rozhran´ı SPI. V´ysledn´a s´ıt’ov´a topologie m˚uˇze b´yt zobrazena v prostˇred´ı IQRF IDE tak jak je ilustrov´ano na Obr. 6.2.

Obr´azek 6.1: Struktura DPA paketu

Jak naznaˇcuje Obr. 6.1, DPA paket se skl´ad´a z adresy uzlu (2 bajty), iden- tifik´atoru periferie (1 bajt), identifik´atoru pˇr´ıkazu (1 bajt), identifik´atoru hardwa- rov´eho profilu (2 bajty) a volitelnˇe i dat. ´Upln´y v´yˇcet vˇsech periferi´ı, pˇr´ıkaz˚u a jejich pouˇzit´ı je uvedeno v [11]. V reˇzimu DPA je maxim´aln´ı poˇcet uzl˚u omezen na 240,

(39)

pˇriˇcemˇz adresa 0xFFh je vyhrazena pro broadcast, adresa 0x00h je vyhrazena pro koordin´atora s´ıtˇe a adresa 0xFCh je vyhrazena pro lok´aln´ı rozhran´ı (tzv. loopback).

Obr´azek 6.2: S´ıt’ov´a topologie vytvoˇren´a po procesu discovery

(40)

7 V´ yvoj bezdr´ atov´ e aplikace zaloˇ zen´ e na tech- nologii IQRF

Bezdr´atov´a aplikace zaloˇzen´a na technologii IQRF se skl´ad´a ze dvou ˇc´ast´ı: v´yvoje programu pro bezdr´atov´y modul a v´yvoje programu pro mikrokontrol´er.

7.1 Programov´ an´ı modulu IQRF

Po vytvoˇren´ı projektu je zapotˇreb´ı nahr´at do jednoho modulu hardwarov´y profil ko- ordin´atora a do zbyl´ych modul˚u nahr´at profil uzlu. N´aslednˇe je nutn´e prov´est kon- figuraci vˇsech modul˚u, tj. nastaven´ı frekvence, komunikaˇcn´ıho kan´alu a pˇredevˇs´ım nastaven´ı hardwarov´eho profilu podle Obr. 7.1.

Obr´azek 7.1: Nastaven´ı hardwarov´eho profilu

(41)

D˚uleˇzit´a je v tomto ohledu poloˇzka Custom DPA Handler, jej´ıˇz povolen´ı n´am umoˇzn´ı ˇc´asteˇcnˇe modifikovat chov´an´ı transceiveru v urˇcit´ych situac´ıch. Tato konfigu- race je n´aslednˇe nahr´ana do vˇsech transceiver˚u. Dalˇs´ım krokem pro ´uspˇeˇsn´y pˇrenos dat je vytvoˇren´ı zdrojov´eho souboru, kter´y bude zachyt´avat ud´alosti souvisej´ıc´ı s protokolem DPA. Jedn´a se napˇr´ıklad o ud´alosti vyvolan´e pˇred odesl´an´ım paketu, pˇred usp´an´ım modulu atd. Zdrojov´y soubor ve formˇe pˇredlohy obsahuj´ıc´ı vˇsechny tyto ud´alosti je dostupn´y v bal´ıku IQRF Startup Package. V tomto souboru byly modifikov´any dvˇe ud´alosti. Prvn´ı je ud´alost DpaEvent ReceiveDpaRequest, kter´a je zavol´ana po pˇrijet´ı paketu a pokud paket obsahuje pˇr´ıkaz k usp´an´ı transceiveru je ˇc´ast paketu nesouc´ı informaci dobˇe sp´anku zkop´ırov´ana na sbˇernici SPI spolu se tˇremi znaky ”SLP”, kter´e mikrokontrol´er vyhodnot´ı jako pˇr´ıkaz k usp´an´ı. Uk´azka t´eto modifikace je ve Zdrojov´em k´odu 7.1.

1 c a s e D p a E v e n t _ R e c e i v e D p a R e q u e s t :

2 // C a l l e d a f t e r DPA r e q u e s t was r e c e i v e d

3 if( _ P N U M == P N U M _ O S && _ P C M D == C M D _ O S _ S L E E P )

4 {

5 m e m o r y L i m i t = 2;

6 c o p y B u f f e r R F 2 C O M ();

7 b u f f e r C O M [2] = ’ S ’;

8 b u f f e r C O M [3] = ’ L ’;

9 b u f f e r C O M [4] = ’ P ’;

10 s t a r t S P I ( 5 ) ; 11 m e m o r y L i m i t = 0;

12 }

13 b r e a k;

Zdrojov´y k´od 7.1: Ud´alost zavolan´a po pˇrijet´ı DPA poˇzadavku

Druhou modifikovanou ud´alost´ı je DpaEvent BeforeSendingDpaResponse. Tato ud´alost je zavol´ana pˇred odesl´an´ım DPA odpovˇedi (response). V t´eto konkr´etn´ı mo- difikaci uveden´e ve Zdrojov´em k´odu 7.2 transceiver ˇcek´a na dva bajty (hodnota naˇcten´a z A/D pˇrevodn´ıku) odeslan´e mikrokontrol´erem, kter´e zaˇclen´ı do DPA od- povˇedi.

1 c a s e D p a E v e n t _ B e f o r e S e n d i n g D p a R e s p o n s e :

2 // C a l l e d b e f o r e s e n d i n g DPA r e s p o n s e b a c k to o r i g i n a t o r 3 // of DPA r e s p o n s e

4

5 if( _ P N U M == P N U M _ S P I )

6 {

7 e n a b l e S P I (); // M a s t e r is a l l o w e d to t r a n s m i t f r o m now 8 R e c e i v e :

9 c l r w d t ();

10 if ( g e t S t a t u s S P I ()) // W a i t u n t i l SPI is not b u s y 11 g o t o R e c e i v e ;

12 if ( _ S P I R X ) // A n y t h i n g r e c e i v e d ?

13 { // Yes :

14 // B u f f e r C O M is a u t o m a t i c a l l y p r o t e c t e d now

(42)

15 // not to be o v e r w r i t t e n by n e x t SPI p a c k e t . 16 // Thus , s t o p S P I is not n e c e s s a r y h e r e .

17 // P a c k e t l e n g t h is in S P I p a c k e t L e n g t h .

18 c o p y B u f f e r C O M 2 I N F O (); // S t o r e r e c e i v e d p a c k e t

19 s t a r t S P I ( 0 ) ; // and t h e n a l l o w M a s t e r to t r a n s m i t a g a i n .

20 }

21 e l s e

22 g o t o R e c e i v e ; 23

24 _ D p a D a t a L e n g t h = _ D p a D a t a L e n g t h + 2;

25 F S R 0 = _ D p a M e s s a g e . R e s p o n s e . P D a t a + _ D p a D a t a L e n g t h - 2;

26 s e t I N D F 0 ( b u f f e r I N F O [ 0 ] ) ;

27 F S R 0 = _ D p a M e s s a g e . R e s p o n s e . P D a t a + _ D p a D a t a L e n g t h - 1;

28 s e t I N D F 0 ( b u f f e r I N F O [ 1 ] ) ;

29 }

30 b r e a k;

Zdrojov´y k´od 7.2: Ud´alost zavolan´a pˇred odesl´an´ım DPA odpovˇedi

Po zkompilov´an´ı a nahr´an´ı zdrojov´eho souboru budou uzly schopny odpov´ıdat na datov´e poˇzadavky koordin´atora a interpretovat pˇr´ıkaz k usp´an´ı uzlu a mikrokon- trol´eru souˇcasnˇe.

7.2 Programov´ an´ı mikrokontrol´ eru PIC32MX

Pro mikrokontrol´er PIC32MX byly vytvoˇreny dva programy. Prvn´ı program realizuje koordin´atora s´ıtˇe. Mikrokontrol´er nejprve provede inicializaci potˇrebn´ych sbˇernic, pot´e m˚uˇze volitelnˇe prov´est objevov´an´ı uzl˚u a optimalizaci jejich cest (discovery).

N´aslednˇe mikrokontrol´er odeˇsle jednomu vybran´emu uzlu poˇzadavek na stav baterie a cca kaˇzd´ych 10 ms odes´ıl´a dotaz (SPI CHECK), kter´y m´a hodnotu 0x00h, transceiver souˇcasnˇe vys´ıl´a jednu z hodnot uveden´ych v Tab. 7.2. Podrobn´y popis zp˚usobu pˇren´aˇsen´ı zpr´av pomoc´ı sbˇernice SPI je uveden v [12] na str. 5. Jakmile je odpovˇed’

doruˇcena, stav baterie dan´eho uzlu je odesl´an na sbˇernici UART. Tento proces se opakuje pro vˇsechny uzly. Pokud uzel neodpov´ı do pˇeti sekund, je vynech´an. Po ukonˇcen´ı sbˇeru dat mikrokontrol´er odeˇsle broadcast obsahuj´ıc´ı pˇr´ıkaz k usp´an´ı na stanovenou dobu. Kompletn´ı zdrojov´y k´od je uloˇzen na DVD pˇr´ıloze ve sloˇzce IQRF.

Druh´y program realizuje uzel, kter´y prov´ad´ı mˇeˇren´ı napˇet´ı na baterii. Program vys´ıl´a kaˇzd´ych cca 10 ms pˇr´ıkaz (SPI CHECK). Pokud jsou naˇctena nov´a data, je pro- vedena jejich anal´yza a obsahuj´ı-li posloupnost znak˚u GD (Get Data), je spuˇstˇena konverze AD pˇrevodn´ıku a naˇcten´a hodnota je ve formˇe dvou bajt˚u odesl´ana do transceiveru. Pokud pˇrijat´a data obsahuj´ı posloupnost znak˚u SLP (sleep), je ze zpr´avy naˇctena hodnota doby sp´anku, kter´a je pˇrepoˇc´ıt´ana tak, aby bylo moˇzn´e j´ı nastavit alarm hodin re´aln´eho ˇcasu, kter´y vyvol´a pˇreruˇsen´ı a probud´ı tak mikro- kontrol´er a transceiver z reˇzimu sp´anku. Kompletn´ı zdrojov´y k´od je uloˇzen na DVD pˇr´ıloze ve sloˇzce IQRF.

(43)

Hodnota hex Stav SPI

00 SPI nen´ı aktivn´ı

07 SPI je pozastavena

3F SPI nen´ı pˇripravena (pln´y buffer, CRC souˇcet v poˇr´adku) 3E SPI nen´ı pˇripravena (pln´y buffer, CRC souˇcet nen´ı v poˇr´adku 40 aˇz 40 + Nmax SPI je pˇripravena, v bufferu jsou data,

d´elka dat = tato hodnota - 0x40 80 SPI je pˇripravena - komunikaˇcn´ı reˇzim 81 SPI je pˇripravena - programovac´ı reˇzim 82 SPI je pˇripravena - reˇzim ladˇen´ı

FF SPI nen´ı aktivn´ı (chyba v hardwaru)

Tabulka 7.1: Moˇzn´e odpovˇedi na dotaz SPI CHECK, Nmax = 56

(44)

8 Testov´ an´ı v re´ aln´ ych podm´ınk´ ach

Testov´an´ı s´ıly sign´alu prob´ıhalo na dvou lokalit´ach: na voln´em rovinat´em prostran- stv´ı a ve vodovodn´ı ˇstole v obci Bedˇrichov. Transceivery byly po celou dobu mˇeˇren´ı v pˇr´ım´em dohledu ve v´yˇsce cca 150 cm nad zem´ı.

Obr´azek 8.1: Z´avislost s´ıly sign´alu na vzd´alenosti ve voln´em prostranstv´ı Jak naznaˇcuje Obr. 8.1, technologie IQRF ve vzd´alenosti 330 m disponuje s´ılou sign´alu kolem hodnoty 60, coˇz je pro stabiln´ı spojen´ı dostateˇcn´e, zat´ımco technologie MiWi m´a v t´eto vzd´alenosti s´ılu sign´alu pod hodnotou 20, coˇz pro stabiln´ı spojen´ı nen´ı dostateˇcn´e.

Naproti tomu mˇeˇren´ı s´ıly sign´alu ve vodovodn´ı ˇstole prok´azalo zcela opaˇcn´e v´ysledky. Technologie IQRF, aˇc mˇela sign´al dostateˇcnˇe siln´y, nedok´azala stabilnˇe komunikovat ani na vzd´alenost 150 m, technologie MiWi naopak prok´azala schopnost stabilnˇe komunikovat aˇz do vzd´alenosti 750 m, kde se hodnota s´ıly sign´alu ust´alila na hodnotˇe 50, coˇz je pro stabiln´ı spojen´ı dostateˇcn´e.

(45)

Obr´azek 8.2: Z´avislost s´ıly sign´alu na vzd´alenosti ve vodovodn´ıˇstole v obci Bedˇrichov D˚uvodem t´eto anom´alie m˚uˇze b´yt existence tzv. Fresnelov´ych z´on. Prvn´ı fresne- lova z´ona je oblast, kterou se ˇs´ıˇr´ı zhruba 90 % energie sign´alu a m´a tvar elipsoidu. Jej´ı pr˚umˇer lze spoˇc´ıtat vztahem r1[m] =qλdD1d2, pˇriˇcemˇz λ [m] je vlnov´a d´elka sign´alu, d1 [m] a d2 [m] jsou vzd´alenosti od pˇrek´aˇzky (pokud jsou si d1 a d2 rovny a souˇcasnˇe se rovnaj´ı polovinˇe D, pak se jedn´a o nejˇsirˇs´ı m´ısto z´ony) a D [m] je vzd´alenost vys´ılaˇc˚u. Pomoc´ı uveden´eho vztahu lze spoˇc´ıtat, ˇze pr˚umˇer r1 pˇri vzd´alenosti 700 m a frekvenci 2,4 GHz je 4,67 m, zat´ımco pˇri frekvenci 868 MHz je hodnota r1 7,78 m.

(46)

9 Z´ avˇ er

Byla provedena reˇserˇse, ze kter´e vzeˇsly dvˇe technologie: MiWi a IQRF. Obˇe tech- nologie prok´azaly moˇznost vytvoˇren´ı s´ıtˇe typu mesh. Liˇs´ı se pˇredevˇs´ım ve zp˚usobu implementace. Jak ukazuje Obr. 2.1, pro kategorii RF modul˚u je tˇreba expertn´ıch program´atorsk´ych znalost´ı a zkuˇsenost´ı, coˇz se u protokolu MiWi potvrdilo. Je nutn´e podrobnˇe zn´at a pochopit vˇsechny souˇc´asti tohoto protokolu. Tyto vlastnosti v koneˇcn´em d˚usledku prodluˇzuj´ı dobu v´yvoje.

Naopak pomoc´ı technologie IQRF je moˇzn´e postavit mesh s´ıt’ bˇehem jednoho dne, coˇz dokazuje technologickou vyspˇelost t´eto platformy. Nicm´enˇe fyzik´aln´ı moˇznosti nedovoluj´ı provoz t´eto technologie v prostˇred´ı vodovodn´ı ˇstoly, proto z praktick´eho hlediska v´ıtˇez´ı technologie MiWi.

U platformy MiWi je tˇreba sn´ıˇzit odbˇer proudu transceiveru v reˇzimu sp´anku.

Souˇcasn´a hodnota odbˇeru ˇcin´ı 1,1 mA, coˇz pro syst´em nap´ajen´y z baterie nen´ı pˇrijateln´e. Dalˇs´ıho sn´ıˇzen´ı odbˇeru lze doc´ılit pˇripojen´ım tranzistoru na nap´ajec´ı vodiˇc transceiveru a prov´adˇet jeho ´upln´e vypnut´ı v reˇzimu sp´anku. Po zapnut´ı staˇc´ı prov´est reinicializaci modulu a cel´y syst´em m˚uˇze pokraˇcovat ve sv´e funkci.

Spotˇreba obou technologi´ı v reˇzimu sp´anku, vˇcetnˇe vlastn´ıho odbˇeru DC/DC mˇeniˇce, nepˇresahuje hodnotu 200 µA. V aktivn´ım reˇzimu spotˇreba nepˇrevˇsuje hod- notu 40 mA.

(47)

Literatura

[1] HYN ˇCICA, Ondˇrej (ed.). Bezdr´atov´e s´ıtˇe typu mesh. ˇCasopis Automa [online]. 2005 [cit. 2016-12-13]. Dostupn´e z: http://automa.cz/cz/casopis- clanky/bezdratove-site-typu-mesh-2005 12 30826 1141/

[2] IQRF - bezdr´atov´a technologie, kter´a l´ame bari´ery. In: Pandatron.cz - Elektrotechnick´y magaz´ın [online]. 2013 [cit. 2016-12-13]. Dostupn´e z:

https://pandatron.cz/?3673&iqrf - bezdratova technologie, ktera lame bariery [3] Mal´e, chytr´e, ˇcesk´e. . . Bezdr´atov´a platforma IQRF. In: V´yvoj.HW.cz — Vˇse o elektronice a programov´an´ı [online]. 2010 [cit. 2016-12-17]. Dostupn´e z:

http://vyvoj.hw.cz/rf/male-chytre-ceske-bezdratova-platforma-iqrf.html [4] MICROCHIP TECHNOLOGY INC. MiWi— Demo KitUser’s Guide [on-

line]. 2012 [cit. 2016-12-17]. ISBN 978-1-62076-575-3. DS70687A. Dostupn´e z:

http://ww1.microchip.com/downloads/en/DeviceDoc/70687A.pdf

[5] Sub-1GHz Low Cost Mesh Network. Texas Instruments [online]. [cit.

2016-12-14]. Dostupn´e z: http://www.ti.com/tool/TIDM-SUB1GHZ-MESH- NETWORK

[6] MCP16311/2 30V Input, 1A Output, High-Efficiency,Integrated Synchronous Switch Step-Down Regulator [online]. 2013 [cit.

2016-12-18]. ISBN 978-1-63276-806-3. SLVS696C. Dostupn´e z:

http://ww1.microchip.com/downloads/en/DeviceDoc/20005255B.pdf

[7] Support for MiWi Pro. In: Microchip Support Community [online]. 2016 [cit.

2016-12-20]. Dostupn´e z: https://www.microchip.com/support/

[8] FLOWERS, David a Yifeng YANG. Microchip MiWi— Wi- reless Networking Protocol Stack [online]. 2010 [cit. 2016- 12-20]. ISBN 978-160932-346-2. AN1066. Dostupn´e z:

http://ww1.microchip.com/downloads/en/AppNotes/AN1066%20-

%20MiWi%20App%20Note.pdf

[9] YANG, Yifeng. Microchip Wireless (MiWi—) Application Programming In- terface – MiApp [online]. 2009 [cit. 2016-12-21]. AN1284. Dostupn´e z:

http://ww1.microchip.com/downloads/en/AppNotes/01284A.pdf

(48)

[10] IQRF OS Operating System: Version 3.08D for (DC)TR-7xD Reference Gu- ide [online]. 2016 [cit. 2016-12-23]. Ref Guide IQRF-OS-308D TR-7xD 160921.

Dostupn´e z: http://www.iqrf.org/weben/downloads.php?id=156

[11] IQRF DPA Framework Technical Guide: Version v2.28 IQRF OS v3.08D [online]. 2016 [cit. 2016-12-23]. Dostupn´e z:

http://www.iqrf.org/weben/downloads.php?id=481

[12] SPI Implementation in IQRF For (DC)TR-7xD Techni- cal guide [online]. 2015 [cit. 2016-12-23]. Dostupn´e z:

http://www.iqrf.org/weben/downloads.php?id=85

(49)

Pˇ r´ılohy

Pˇ r´ıloha 1 - Sch´ emata adapt´ er˚ u bezdr´ atov´ ych modul˚ u

(50)
(51)

Pˇ r´ıloha 2 - Sch´ ema hlavn´ı desky

(52)

Pˇ r´ıloha 3 - DVD

DVD obsahuje n´asleduj´ıc´ı sloˇzky:

ˆ MIWI - obsauje vˇsechny projekty pro MPLAB X

ˆ IQRF - obsahuje vˇsechny projekty pro MPLAB X a IQRF IDE

ˆ HARDWARE - obsahuje sch´emata navrˇzen´a v prostˇred´ı Eagle 7.2.0

ˆ zprava - obsahuje tento dokument ve form´atu .PDF a .TEX vˇcetnˇe obr´azk˚u

References

Related documents

Operaˇ cn´ı zesilovaˇ ce jsou vyuˇ zity k transformaci elektrick´ eho proudu, kter´ y generuje fotodioda v sondˇ e v z´ avislosti na absorbanci svˇ etla tk´ an´ı, na

Ke kaˇ zd´ emu videu pouˇ zit´ emu pˇri testov´ an´ı byly hod- noty poˇ ctu osob, kter´ e proˇsly a poˇ ctu unik´ atn´ıch osob, kter´ e se ve videu objevily tak´ e

Mezi data ukl´ adan´ a do datab´ aze patˇr´ı informace o pool serveru, ke kter´ emu je tˇ eˇ zebn´ı klient aktu´ alnˇ e pˇripojen, informace o dobˇ e tˇ eˇ zby aktu´

Pˇri zpracov´ an´ı poˇ zadavk˚ u pˇrid´ avaj´ıc´ıch nov´ y z´ aznam trestn´ e ˇ cinnosti, aplikace z´ısk´ av´ a data o poˇ cas´ı.. Zdrojem dat je port´

Kdyˇ z bylo potˇreba pouˇ z´ıt vys´ılaˇ c s komunikac´ı RS485 a z´ aroveˇ n toto ˇreˇsen´ı nap´ ajet z baterie, doˇslo k vytvoˇren´ı prvn´ıho typu

Kdyˇ z bylo potˇreba pouˇ z´ıt vys´ılaˇ c s komunikac´ı RS485 a z´ aroveˇ n toto ˇreˇsen´ı nap´ ajet z baterie, doˇslo k vytvoˇren´ı prvn´ıho typu

Uveden´ a simulace je zaloˇ zena, jak jiˇ z bylo zm´ınˇ eno, na opakovan´ em gene- rov´ an´ı n´ ahodn´ ych dat, na kter´ ych se prov´ ad´ı dan´ y algoritmus a jsou

Nicm´ enˇ e je zde i jin´ a moˇ znost, kterou pˇredstavuje komprimovan´ e sn´ım´ an´ı obrazu, pomoc´ı kter´ eho m˚ uˇ zeme data zmenˇsit jiˇ z pˇri jejich sn´ım´ an´ı a