Za´padoˇceska´ univerzita v Plzni Fakulta aplikovany´ch vˇed Katedra informatiky a vy´poˇcetn´ı techniky
Bakal´ aˇ rsk´ a pr´ ace Syst´ em pro bezdr´ atov´ e mˇ eˇ ren´ı tepov´ e frekvence
Plzeˇ n 2012
Ondˇrej Pill´ar
Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze jsem bakal´aˇrskou pr´aci vypracoval samostatnˇe a v´ yhradnˇe s pouˇzit´ım citovan´ ych pramen˚ u. V Plzni dne 11. kvˇetna 2012 Ondˇrej Pill´ar
Podˇ ekov´ an´ı Na tomto m´ıstˇe bych r´ad podˇekoval vedouc´ımu pr´ace Ing. Jiˇr´ımu Ledvinovi, CSc. za metodick´e veden´ı, Ing. Karlu Dud´aˇckovi, Ing. Karlu Novotn´emu a v neposledn´ı ˇradˇe sv´e rodinˇe za vytvoˇren´ı vhodn´ ych podm´ınek.
2
Abstract Hearth rate monitoring system This bachelor thesis deal with the development of battery system for heart rate gauging. In this work are stated and described a few basic gauging methods. Next there is described wireless net ZigBEE and evolutional kit eZ430-RF2480. Practical part deal with plan of functional gauging prototype.
Keywords ZigBee, MSP430, CC2480, heart rate, ez430-RF2480, oxymetr, measurement, wireless network, Texas Instruments, ZASA, ZACCEL
Obsah ´ 1 Uvod
1
2 Mˇ eˇ ren´ı tepov´ e frekvence 2.1 Fotoelektrick´a metoda . . . . . . . . . . . . . . . . . . . . . . 2.2 Impedanˇcn´ı metoda . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Akustick´a metoda . . . . . . . . . . . . . . . . . . . . . . . . .
2 2 4 5
3 ZigBee 3.1 OSI model ZigBee . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Topologie s´ıtˇe . . . . . . . . . . . . . . . . . . . . . . . . . . .
6 6 8
4 Popis hardwarov´ eho vybaven´ı 4.1 V´ yvojov´ y kit eZ430-RF2480 . . . . . 4.2 Procesor MSP430F2274 . . . . . . . 4.3 Procesor CC2480 . . . . . . . . . . . 4.3.1 Komunikace mezi procesory . 4.3.2 Aplikaˇcn´ı rozhran´ı . . . . . . 4.3.3 Simple API . . . . . . . . . . 4.4 Sn´ımaˇc tepov´e frekvence PulseSensor
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
10 10 12 13 14 17 17 19
5 Realizace bezdr´ atov´ eho mˇ eˇ ren´ı tepov´ e frekvence 5.1 Blokov´e sch´ema mˇeˇr´ıc´ıho syst´emu . . . . . . . . . 5.2 Pˇrenos zpr´av . . . . . . . . . . . . . . . . . . . . 5.2.1 Aplikaˇcn´ı protokol . . . . . . . . . . . . . 5.3 Aplikace . . . . . . . . . . . . . . . . . . . . . . . 5.3.1 Koncov´e zaˇr´ızen´ı . . . . . . . . . . . . . . 5.3.2 Koordin´ator . . . . . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
20 20 21 21 22 23 30
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
6 Programov´ e vybaven´ı pro vizualizaci namˇ eˇ ren´ ych dat
32
7 Porovn´ an´ı fin´ aln´ıho produktu s komerˇ cn´ım prostˇ redkem
33
OBSAH
OBSAH
8 Z´ avˇ er
35
A Pˇ r´ılohy 41 A.1 Uˇzivatelsk´a pˇr´ıruˇcka programu WorkOut . . . . . . . . . . . . 41 A.2 Popis tˇr´ıd programu WorkOut . . . . . . . . . . . . . . . . . . 42
5
´ 1 Uvod Bakal´aˇrsk´a pr´ace se zab´ yv´a n´avrhem syst´emu pro bezdr´atov´e mˇeˇren´ı tepov´e frekvence. K tomu je potˇreba analyzovat dostupn´e bezdr´atov´e technologie, zejm´ena pak komunikaˇcn´ı technologii ZigBee, a jej´ı realizaci firmou Texas Instruments, kter´e patˇrila a st´ale patˇr´ı k pr˚ ukopn´ık˚ um pˇri v´ yvoji toho standardu. K tomu u ´ˇcelu je k dispozici v´ yvojov´ y kit eZ430-RF2480 s n´ımˇz je potˇreba se detailnˇe sezn´amit. Ned´ılnou souˇca´st´ı je samozˇrejmˇe zorientovat se v metod´ach mˇeˇren´ı tepov´e frekvence. V praktick´e ˇca´sti pak popsat proces v´ yvoje cel´eho mˇeˇr´ıc´ıho syst´emu a v z´avˇeru jej porovnat s komerˇcn´ımi prostˇredky. Tep a t´ım p´adem i tepov´a frekvence patˇr´ı mezi z´akladn´ı pozorovateln´e tˇelesn´e sign´aly, kter´e se daj´ı na lidsk´em tˇele sledovat. Tato pr´ace je v mnoh´ ych ohledech koncipov´ana jako prvn´ı krok pˇri snaze o n´avrh syst´emu, kter´ y by v budoucnu mohl slouˇzit jako mˇeˇr´ıc´ı syst´em pro sledov´an´ı tepov´e frekvence pˇri sportovn´ıch aktivit´ach, zejm´ena pak fitness sportech jako je napˇr. Spinning, Schwin, Heat. K tomu je nutn´e se teoreticky a samozˇrejmˇe i prakticky sezn´amit se vˇsemi v´ yˇse jmenovan´ ymi ˇc´astmi, navrhnout jist´ y prototyp syst´emu, kter´ y bude moˇzn´e v n´asleduj´ıc´ıch projektech d´ale vyv´ıjet.
1
2 Mˇeˇren´ı tepov´e frekvence Tepov´a frekvence je jedna ze z´akladn´ıch informac´ı, podle kter´ ych m˚ uˇzeme sledovat ˇcinnost srdce a ˇcasto slouˇz´ı jako ukazatel pˇri posuzov´an´ı stavu organismu v klidu i pˇri z´atˇeˇzi. Tepov´a frekvence typicky ud´av´a poˇcet srdeˇcn´ıch tep˚ u za urˇcitou jednotku ˇcasu. Zmˇenami tepov´e frekvence lze snadno sledovat i pˇr´ıpadn´e v´ yjimeˇcn´e stavy srdeˇcn´ıho tepu, jako je napˇr´ıklad arytmie – nepravidelnost v ˇcinnosti srdce, abnorm´aln´ı bradykardii – sn´ıˇzen´ı tepov´e frekvence pod urˇcitou hladinu, ˇci abnorm´aln´ı tachykardii – zv´ yˇsen´ı tepov´e frekvence nad urˇcitou hladinu. Zvl´aˇstˇe pˇri sledov´an´ı stavu organismu pˇri sportovn´ıch aktivit´ach, ud´av´a pr˚ ubˇeˇzn´e sledov´an´ı tepov´e frekvence cenn´e informace o choˇ v´an´ı sportovcova organismu [Seda(2010)]. Pro stanoven´ı tepov´e frekvence mus´ıme jednoznaˇcnˇe detekovat ˇcinnost srdce, tu lze z´ıskat mˇeˇren´ım projev˚ u, kter´e vznikaj´ı pˇri jeho ˇcinnosti. Mezi tyto veliˇciny patˇr´ı: • elektrick´ y sign´al • akustick´ y sign´al • zmˇeny tlaku krve v obˇehov´em syst´emu • zmˇeny impedance tk´anˇe souvisej´ıc´ı se zmˇenou mnoˇzstv´ı krve v dan´em u ´seku tk´anˇe • zmˇeny rychlosti proudˇen´ı krve Pro mˇeˇren´ı tepov´e frekvence pˇri sportovn´ıch aktivit´ach nen´ı kladen velk´ y d˚ uraz na pˇresnou znalost okamˇzit´e hodnoty. Takov´a hodnota by byla velmi kol´ısav´a a u ´daje by byly ˇspatnˇe ˇciteln´e. Je proto lepˇs´ı sledovat tzv. klouzav´ y pr˚ umˇer – pr˚ umˇer namˇeˇren´ ych hodnot za posledn´ıch nˇekolik tep˚ u. V n´asleduj´ıch ˇra´dc´ıch budou proto rozebr´any metody mˇeˇren´ı z pohledu vyuˇzitelnosti v praxi, n´aroˇcnosti realizace a pouˇzitelnost pˇresnosti mˇeˇren´ı.
2.1
Fotoelektrick´ a metoda
Fotoelektrick´a pletysmografie registruje zmˇeny svˇeteln´e propustnosti tk´anˇe d´ıky zmˇen´am tlaku krve pˇri srdeˇcn´ı ˇcinnosti (viz obr´azek2.1). Vyuˇz´ıvaj´ı se 2
Mˇeˇren´ı tepov´e frekvence
Fotoelektrick´a metoda
dvˇe metody: • pr˚ usvitov´e • reflexivn´ı
Obr´azek 2.1: Reflexivn´ı a pr˚ usvitov´a fotoelektrick´a metoda
Uveden´a metoda se vyuˇz´ıv´a ke sledov´an´ı srdeˇcn´ı frekvence tak´e vyhodnocov´an´ı objemov´ ych zmˇen. Fotoelektrick´ y sn´ımaˇc nesm´ı b´ yt citliv´ y na nasycen´ı krve kysl´ıkem, kter´e zp˚ usobuje zmˇenu zabarven´ı krve. Syst´em je velmi ˇcasto pouˇz´ıv´an v komerˇcn´ıch aplikac´ıch pˇri orientaˇcn´ım mˇeˇren´ı v tzn. Oxymetrech (obr´azek 2.2). Konstrukce sn´ımaˇce je velmi jednoduch´a a namˇeˇren´a data se daj´ı zrekonstruovat bez nutnosti hlubˇs´ı l´ekaˇrsk´e teorie. Proto bude t´eto metody pouˇzito i ve v´ ysledn´e realizaci mˇeˇr´ıc´ıho syst´emu. Princip mˇeˇr´ıc´ıho zaˇr´ızen´ı je detailnˇe rozebr´an v kapitole 4.4. Mezi nedostatky patˇr´ı velmi velk´a n´achylnost na ruˇsen´ı sign´alu. Tk´an ˇ by mˇela b´ yt pokud moˇzno ve st´al´em dotyku se senzorem, nemˇela by se moc pohybovat. Oxymetry k tomuto u ´ˇcelu pouˇz´ıvaj´ı jak´esi skˇripce, kter´e vymezuj´ı polohu a zajiˇst’uj´ı konstantn´ı mˇeˇr´ıc´ı prostˇred´ı.
3
Mˇeˇren´ı tepov´e frekvence
Impedanˇcn´ı metoda
Obr´azek 2.2: Komerˇcn´ı oxymetr firmy Masimo [Mas(2011)]
2.2
Impedanˇ cn´ı metoda
Impedanˇcn´ı kardiogragie(IKG) vyuˇz´ıv´a mˇeˇren´ı zmˇen hrudn´ı impedance v pr˚ ubˇehu srdeˇcn´ıho cyklu. Impedanˇcn´ı senzory jsou um´ıstˇeny na hrudn´ıku. Celkov´a impedance hrudn´ıku je nepˇr´ımo u ´mˇern´a obsahu tekutiny. Zmˇeny impedance tk´anˇe lze dobˇre zjistit napˇr´ıklad zapojen´ım mˇeˇr´aku do m˚ ustku a mˇeˇrit jeho vyv´aˇzen´ı [Fak(2010)]. Na tomto principu funguje i hrudn´ı p´as z vodiv´e gumy, kter´ y je vyuˇz´ıv´an v komerˇcn´ıch produktech tzv. SportTesterech. Princip spoˇc´ıv´a v mˇeˇren´ı promˇenliv´e impedance tk´anˇe. Pˇri mˇeˇren´ıch, kter´e byly prov´adˇeny na p´asu se ale metoda uk´azala jako znaˇcnˇe komplikovan´a a n´aroˇcn´a na filtraci namˇeˇren´ ych dat, coˇz by pˇres´ahlo rozsah t´eto bakal´aˇrsk´e pr´ace. Jako dalˇs´ı komplikace se uk´azal nedostatek informac´ı a podklad˚ u k t´eto metodˇe, protoˇze v´ yrobci hrudn´ıch pas˚ u tyto materi´aly samozˇrejmˇe nikde nezveˇrejˇ nuj´ı.
4
Mˇeˇren´ı tepov´e frekvence
2.3
Akustick´a metoda
Akustick´ a metoda
V podstatˇe nejjednoduˇsˇs´ı a nejstarˇs´ı z moˇzn´ ych mˇeˇr´ıc´ıch metod, spolu se zmˇenou tlaku v soustavˇe. Z trupu pacienta se mikrofonem sn´ım´a sign´al a pˇrev´ad´ı jej na sign´al elektrick´ y. Jakkoli je tento princip jednoduch´ y, je velmi citliv´ y na parazitn´ı ˇsum a n´asledn´e z´ısk´av´an´ı dat z takov´eho sign´alu m˚ uˇze ˇ b´ yt pomˇernˇe sloˇzit´e [Seda(2010)]. Mezi dalˇs´ı metody pro mˇeˇren´ı tepu patˇr´ı: • Detektor R vlny • Metoda objemov´e zmˇeny tk´anˇe
5
3 ZigBee ZigBee je bezdr´atov´a komunikaˇcn´ı technologie, standardizovan´a od roku 2004, kter´a je vystavˇen´a na normˇe IEEE 802.15.4. Je urˇcena zejm´ena pro spojen´ı n´ızkov´ ykonov´ ych zaˇr´ızen´ı na mal´e vzd´alenosti (cca 70 metr˚ u). Prim´arn´ı nasazen´ı je tud´ıˇz v pr˚ umyslov´ ych aplikac´ıch a v senzorick´ ych s´ıt´ıch. Tato technologie patˇr´ı do skupiny bezdr´atov´ ych s´ıt´ı PAN (Personal Arrea Networks), podobnˇe jako dalˇs´ı velmi rozˇs´ıˇren´ y standard Bluetooth. Ten m´a uplatnˇen´ı zejm´ena ve spotˇrebn´ı elektronice, ale v pr˚ umyslu je cel´a ˇrada aplikac´ı, ve kter´ ych nen´ı jeho nasazen´ı vhodn´e. Z tˇechto d˚ uvod˚ u byla roku 2002 zaloˇzena ZigBee Aliance v´ıce neˇz 60 firem napˇr. Texas Instruments, Honeywell, Motorola, Philips, Samsung, Omron atd. kter´e se pod´ılely a st´ale pod´ıl´ı na v´ yvoji a rozvoji tohoto standardu [J. Koton(2006)]. Mezi z´akladn´ı vlastnosti patˇr´ı: • spolehlivost • pˇr´ızniv´a cena • velmi mal´a spotˇreba energie
3.1
OSI model ZigBee
Jak jiˇz bylo zm´ınˇeno v u ´vodn´ım odstavci, je technologie zaloˇzena na IEEE normˇe 802.15.4. Konkr´etnˇe to znamen´a, ˇze ZigBee pˇrej´ım´a prvn´ı dvˇe vrstvy (Fyzickou a MAC). Referenˇcn´ı OSI model popisuje obr´azek 3.1, ze kter´eho je patrn´e, ˇze ZigBee v podstatˇe rozˇsiˇruje normu IEEE 802.15.4 o dalˇs´ı tˇri vrstvy. Vrstvu s´ıt’ovou (NTW), bezpeˇcnostn´ı (SSP) a vrstvu aplikaˇcn´ı(APL). Z obr´azku je d´ale patrno, ˇze APL se skl´ad´a z pomocn´e aplikaˇcn´ı podvrstvy, ZiigBee objekt˚ u a aplikaˇcn´ıch objekt˚ u. Pomocn´a aplikaˇcn´ı podvrstva je zodpovˇedn´a za p´arov´an´ı zaˇr´ızen´ı podle poskytovan´ ych sluˇzeb a poˇzadavk˚ u. To je realizov´ano pomoc´ı tzv. p´arovac´ı (binding) tabulky. ZigBee objekt definuje roli jednotliv´ ych zaˇr´ızen´ı v r´amci s´ıtˇe (koordin´ator, smˇerovaˇc, koncov´e zaˇr´ızen´ı). D´ale zajiˇst’uje vyhled´av´an´ı nov´ ych zaˇr´ızen´ı a jimi poskytovan´ ych sluˇzeb. V neposledn´ı ˇradˇe zodpov´ıd´a za zabezpeˇcen´ı (vol´ı jeho zp˚ usob, jako napˇr. veˇrejn´e kl´ıˇce, symetrick´e kl´ıˇce). 6
ZigBee
OSI model ZigBee
Uˇzivatelsk´e aplikaˇcn´ı objekty implementuj´ı konkr´etn´ı poˇzadavky aplikace dle definovan´eho ZigBee profilu. ZigBee profil zastˇreˇsuje definice moˇzn´ ych zaˇr´ızen´ı, form´at˚ u a typ˚ u zpr´av. Kaˇzd´ y profil je urˇcen unik´atn´ım 16 bitov´ ym identifik´atorem podle specifikace ZigBee Alliance [zig()]. Dohromady jsou tyto vrstvy naz´ yv´any ZigBee Stack (ˇcesky ZigBee Z´asobn´ık).
Obr´azek 3.1: Referenˇcn´ı model ZigBee
Frekvenˇcn´ı p´asma, ty jsou pops´any v normˇe IEEE 802.15.4 a ZigBee je nijak nemˇen´ı, stejnˇe tak jako princip adresov´an´ı v s´ıti. To je prov´adˇeno bud’ nezkr´acenou 64 bitovou adresou, nebo zkr´acenou 16 bitovou adresou. Norma tak´e obecnˇe dˇel´ı typy zaˇr´ızen´ı mezi tzv ZPF (Zaˇr´ızen´ı s Plnou Funkˇcnost´ı) a ZOF(Zaˇr´ızeni s Omezenou Funkˇcnost´ı). ZPF je typyck´ y koˇrenov´ y prvek s´ıtˇe, kter´ y mus´ı b´ yt st´ale aktivn´ı. Naproti tomu ZOF je koncov´ y prvek s´ıtˇe. Norma d´ale definuje 3 prvky topologie s´ıtˇe (Koordin´ator, PAN Koordin´ator, Device). ZigBee tuto koncepci upravuje. Typy zaˇr´ızen´ı jsou detailnˇe pops´any v n´asleduj´ıc´ı kapitole.
7
ZigBee
3.2
Topologie s´ıtˇe
Topologie s´ıtˇ e
ZigBee umoˇzn ˇuje sestavit 3 typy s´ıt´ı (viz obr´azek 3.2), neˇz budou bl´ıˇze pops´any je potˇreba jeˇstˇe doplnit princip adresov´an´ı a pˇrehled prvk˚ u, kter´e mohou tvoˇrit ZigBee s´ıt’. Kaˇzd´a novˇe vytvoˇren´a s´ıt’ je jednoznaˇcnˇe identifikov´ana 16 bitov´ ym PAN ID pro pˇr´ıpad ˇze by v jednom m´ıstˇe bylo souˇcasnˇe provozov´ano v´ıce ZigBee s´ıt´ı (obecnˇe v´ıce s´ıt´ı standardu IEEE 802.15.4). Nezkr´acen´a adresa je vˇzdy pevnˇe urˇcena v´ yrobcem zaˇr´ızen´ı, zkr´acen´a adresa m˚ uˇze b´ yt zaˇr´ızen´ı pˇridˇelov´ana koordin´atorem s´ıtˇe s tou v´ yjimkou, ˇze koordin´ator m´a vˇzdy adresu 0. Prvky ZigBee s´ıt´ı jsou: • Koordin´ ator (Coordinator)- Nejd˚ uleˇzitˇejˇs´ı ˇclen kaˇzd´e s´ıtˇe. Koordin´ator tvoˇr´ı koˇren kaˇzd´e s´ıtˇe a m˚ uˇze fungovat jako most do dalˇs´ı s´ıtˇe. V kaˇzd´e jedn´e s´ıti m˚ uˇze b´ yt maxim´alnˇe jeden koordin´ator a je to pr´avˇe ta jednotka, kter´a zaloˇzila s´ıt’. Koordin´ator pˇridˇeluje nov´e s´ıti PAN ID a urˇcuje komunikaˇcn´ı kan´al. Po vytvoˇren´ı s´ıtˇe a pˇripojen´ı dalˇs´ıch jednotek by jiˇz mohl b´ yt koordin´ator vyˇrazen. Z popisu je tedy zˇrejm´e, ˇze zaˇr´ızen´ı mus´ı b´ yt typu ZPF (viz odstavec 3.1). • Smˇ erovaˇ c (Router)- Tento ˇclen m˚ uˇze ve znaˇcn´e m´ıˇre pˇreb´ırat funkcionalitu koordin´atoru a st´avat se tedy jak´ ymsi rodiˇcem pro dalˇs´ı jednotky, kter´e se k nˇemu pˇripoj´ı. I smˇerovaˇc mus´ı b´ yt typu ZPF. • Koncov´ e zaˇ r´ızen´ı (End Device)- Koncov´ y list cel´e topologie. Koncov´e zaˇr´ızen´ı je nejlevnˇejˇs´ı a nejjednoduˇsˇs´ı ze vˇsech uveden´ ych prvk˚ u. Zaˇr´ızen´ı je urˇceno pouze k pˇrijet´ı resp. odesl´an´ı dat. Mezi tˇemito stavy m˚ uˇze b´ yt zaˇr´ızen´ı ve stavu n´ızk´e spotˇreby a t´ım se v´ yraznˇe prodluˇzuje d´elka provozu zaˇr´ızen´ı na jedno nabit´ı. Nyn´ı jiˇz k popisu jednotliv´ ych typ˚ u topologi´ı (viz obr´azek 3.2): • Hvˇ ezda - Koordin´ator je centr´aln´ım prvkem s´ıtˇe a pˇres nˇej komunikuj´ı vˇsechny koncov´e jednotky. V tuto chv´ıli se koordin´ator nepostradatelnou souˇca´st´ı s´ıtˇe. • Strom - Tato moˇznost vyuˇz´ıv´a k pr´aci smˇerovaˇc. Ten pˇreb´ır´a v funkci centr´aln´ıho prvku ke kter´emu jsou pˇripojeny koncov´e jednotky, ty tedy 8
ZigBee
Topologie s´ıtˇe
komunikuj´ı s koordin´atorem nepˇr´ımo. To umoˇzn ˇuje vˇetˇs´ı rozsah cel´e s´ıtˇe. Koordin´ator st´ale z˚ ust´av´a centr´aln´ım prvkem cel´e soustavy pˇres kter´ y jde veˇsker´a komunikace. • S´ıt’ - Nejsloˇzitˇejˇs´ı moˇznost. Kombinuje oba dva v´ yˇse zm´ınˇen´e typy a umoˇzn ˇuje komunikaci mezi dvˇema rovnocenn´ ymi prvky.
Obr´azek 3.2: Topologie s´ıtˇe ZigBee
9
4 Popis hardwarov´eho vybaven´ı 4.1
V´ yvojov´ y kit eZ430-RF2480
eZ430-RF2480 je demonstraˇcn´ı kit firmy Texas Instruments. Cel´ y pˇr´ıpravek poskytuje vˇsechny nezbytn´e hardwarov´e a softwarov´e souˇca´sti pro v´ yvoj ZigBee s´ıt´ı. V´ yvojov´ y kit obsahuje n´asleduj´ıc´ı hardwarov´e ˇc´asti (viz obr´azek4.2) : • 3x eZ430-RF2480 koncov´e zaˇr´ızen´ı (1) • 1x MSP430 USB FET program´ator (2) • 2x AAA eZ430 bateriov´ y adapt´er (3) Koncov´e zaˇr´ızen´ı obsahuje 2 procesory, jimˇz jsou vˇenov´any samostatn´e kapitoly, sn´ımaˇc okoln´ıho osvˇetlen´ı, SMD ant´enu, ˇcervenou a zelenou LED diodu, tlaˇc´ıtko a perifern´ı obvody. D´ale je k dispozici 2x6 pin˚ u po stran´ach desky, na kter´e jsou vyvedeny nˇekter´e v´ yznamn´e piny z uˇzivatelsk´eho procesoru (viz obr´azek 4.1) a 6 pin˚ u pro pˇripojen´ı USB program´atoru. Zejm´ena onˇech 12 pin˚ u, sdruˇzen´ ych po 6 do dvou port˚ u je z pohledu uˇzivatele zaj´ımav´ ych. Napˇr. se na nich d´a sledovat komunikace mezi procesory (piny P1.6, P2.6), jsou k dispozici kan´aly AD pˇrevodn´ıku (P2.4, P3.1, P3.2, P3.3, P3.4, P3.5), atd. [Tex()].
10
Popis hardwarov´eho vybaven´ı
V´yvojov´y kit eZ430-RF2480
Obr´azek 4.1: Rozloˇzen´ı v´ yvod˚ u procesoru na desku
Obr´azek 4.2: V´ yvojov´ y kit eZ430-RF2480
11
Popis hardwarov´eho vybaven´ı
4.2
Procesor MSP430F2274
Procesor MSP430F2274
Procesor MSP430F2274 od firmy Texas Instruments patˇr´ı do rodiny procesor˚ u MSP430, coˇz jsou ultra-n´ızko napˇet’ov´e mikroprocesory urˇcen´e pro ˇsirokou ˇsk´alu vyuˇzit´ı. Jedn´a se o 16 bitov´ y RISC procesor zaloˇzen´ y na von Neumannovˇe architektuˇre, se sd´ılen´ ym m´ıstem pro instrukce i data, ˇcas jednoho instrukˇcn´ıho cyklu je 62,5ns. K´odov´an´ı slov je syst´emem little-endian [Tex(2011b)]. Mezi z´akladn´ı vlastnosti procesoru patˇr´ı: • 6 pracovn´ıch reˇzim˚ u - 1 aktivn´ı - odbˇer 270µA, 5 reˇzim˚ u n´ızk´e spotˇreby - standby 0.7µA, vypnut´ y 0.1µA • 32KB Flash • 1KB RAM • 10 bitov´ y, 200K vzork˚ u/s, AD pˇrevodn´ık • 2 operaˇcn´ı zesilovaˇce • 2 16 bitov´e ˇc´ıtaˇce/ˇcasovaˇce, ”Watchdog” ˇcasovaˇc Vˇsechny komponenty procesoru ukazuje obr´azek 4.3
Obr´azek 4.3: Popis komponent procesoru MSP430
12
Popis hardwarov´eho vybaven´ı
Procesor CC2480
Obr´azek 4.4: Rozloˇzen´ı pin˚ u procesoru MSP430
4.3
Procesor CC2480
CC2480, nˇekdy tak´e oznaˇcov´an jako CCZACC06, je prvn´ı s´ıt’ov´ y procesor od firmy Texas Instruments implementuj´ıc´ı technologii ZigBee 2006 a v´ yvojov´ y model Z-Accel. Z-Accel je koncept, kter´ y znaˇcnˇe usnadˇ nuje pr´aci pˇri n´avrhu a v´ yvoji nov´ ych bezdr´atov´ ych produkt˚ u, jakoˇzto i zakomponov´an´ı bezdr´atov´ ych rozhran´ı do jiˇz existuj´ıc´ıch produkt˚ u. Z-Accel jednotky, jako je procesor CC2480, kombinuj´ı vˇsechny nezbytn´e ˇca´sti pro vytvoˇren´ı bezdr´atov´e s´ıtˇe v jednom pouzdˇre. Uˇzivatelsk´ y procesor potom komunikuje s jednotkou Z-Accel pomoc´ı rozhran´ı SPI (viz obr´azek 4.5) a ke komunikaci vyuˇz´ıv´a pˇredem definovanou API. D´a se proto ˇr´ıct, ˇze Z-Accel pˇresnˇe a ˇcistˇe oddˇeluje vlastn´ı syst´em a bezdr´atov´e komponenty [Tex(2006)]. Mezi nejd˚ uleˇzitˇejˇs´ı vlastnosti procesoru patˇr´ı: • Nap´ajec´ı napˇet´ı 2.0V - 3.6V • Mal´ y proudov´ y odbˇer RX: 27mA, TX: 27mA • 4 operaˇcn´ı m´ody 13
Popis hardwarov´eho vybaven´ı
Procesor CC2480
• Mˇeˇra´k napˇet´ı baterie, teplotn´ı senzor • 7-12 bitov´ y, 2 kan´alov´ y AD pˇrevodn´ık Co se t´ yˇce vlastnost´ı procesoru, nen´ı jiˇz tˇreba ho d´ale pˇredstavovat, ty nejd˚ uleˇzitˇejˇs´ı byly zm´ınˇeny. Pro uˇzivatele tohoto ˇcipu to ani nen´ı nijak nutn´e. Je totiˇz mnohem d˚ uleˇzitˇejˇs´ı znalost komunikaˇcn´ıho rozhran´ı (API), kter´ ym se procesor ovl´ad´a.
4.3.1
Komunikace mezi procesory
Jak jiˇz bylo zm´ınˇeno v´ yˇse, z´akladn´ı filozofi´ı cel´eho konceptu Z-Accel spoˇc´ıv´a ve striktn´ı oddˇelen´ı bezdr´atov´eho a aplikaˇcn´ıho procesoru. Tyto procesory spolu komunikuj´ı po spoleˇcn´e sbˇernici SPI. Seriov´a linka nab´ız´ı vysokou pˇrenosovou rychlost, teoreticky aˇz 70 MHz a je urˇcena k pˇrenos˚ um na kratˇs´ı vzd´alenost stylem Master - Slave [SPI()]. Aplikaˇcn´ı procesor (MSP430F2274) komunikuje v roli master, s´ıt’ov´ y procesor (CC2480) je slave. Pro vz´ajemnou
Obr´azek 4.5: Koncept Z-Accel
14
Popis hardwarov´eho vybaven´ı
Procesor CC2480
komunikaci vyuˇz´ıvaj´ı procesory n´asleduj´ıc´ı sign´aly: • MDRY - Master ready. Generuje master ve chv´ıli, kdy m´a k dispozici data pro CC2480. Je aktivn´ı v n´ızk´e u ´rovni. • SRDY - Slave ready. Sign´al je nastaven zaˇr´ızen´ım slave ve chv´ıli, kdy je pˇripraveno ke komunikaci, tzn. bud’ odes´ılat, nebo pˇrij´ımat data. • SI/TX - Slave input / Master output data. • SO/RX - Master output / Slave input data. • RESET - Slave reset. Resetuje s´ıt’ov´ y procesor. Aktivn´ı v n´ızk´e u ´rovni. Pˇri vz´ajemn´e komunikaci existuj´ı tˇri typyck´e sc´en´aˇre, kter´e popisuj´ı obr´azky 4.6, 4.8, 4.7 • AREQ - Aplikaˇcn´ı procesor odes´ıl´a pˇr´ıkaz s´ıt’ov´emu procesoru (viz obr´azek 4.6). • SREQ - Velmi podobn´a situace s t´ım rozd´ılem, ˇze po odesl´an´ı dat ˇcek´a aplikaˇcn´ı procesor na obdrˇzen´ı SRSP r´amce. (viz obr´azek4.7). • POLL - S´ıt’ov´ y procesor ˇz´ad´a o zah´ajen´ı komunikace (viz obr´azek 4.8).
Obr´azek 4.6: Pˇr´ıkaz AREQ
Pozn.: Detailn´ı popis komunikace je k dispozici v [Tex(2006)] str 15 Pˇri bliˇzˇs´ım prozkoum´an´ı cel´e situace ovˇsem vyvst´av´a pomˇernˇe d˚ uleˇzit´ y moment. V jednu chv´ıli by o komunikaci mohly poˇz´adat obˇe dvˇe jednotky (master i slave). Situaci na lince n´azornˇe popisuje obr´azek 4.9. Podle pravidel 15
Popis hardwarov´eho vybaven´ı
Procesor CC2480
Obr´azek 4.7: Pˇr´ıkaz SREQ
Obr´azek 4.8: Pˇr´ıkaz POLL
Obr´azek 4.9: Konflikt pˇri komunikaci
16
Popis hardwarov´eho vybaven´ı
Procesor CC2480
komunikace nastav´ı zaˇr´ızen´ı, kter´e chce komunikovat, sv˚ uj ˇr´ıd´ıc´ı sign´al do n´ızk´e u ´rovnˇe a oˇcek´av´a reakci od druh´eho procesoru. Pokud by tedy napˇr´ıklad master chtˇel odeslat pˇr´ıkaz AREQ, sn´ıˇzil by MRDY do 0 a ˇcekal by na n´ızkou u ´rovˇen ˇ sign´alu SRDY. V tu samou chv´ıli by ovˇsem chtˇel komunikovat i s´ıt’ov´ y procesor. Analogicky by tedy shodil SRDY a oˇcek´aval by sign´al MRDY v 0. A nyn´ı nast´av´a zmiˇ novan´ y probl´em. Obˇe dvˇe zaˇr´ızen´ı mylnˇe interpretuj´ı tuto situaci jako stav, ve kter´em mohou zah´ajit komunikaci mysl´ı si, ˇze opaˇcn´e zaˇr´ızen´ı je pˇripraveno pˇrij´ımat data. Na tuto situaci ovˇsem s´ıt’ov´ y procesor CC2480 nen´ı pˇripraven a pˇrest´av´a reagovat na dalˇs´ı pˇr´ıkazy. Jedin´a moˇznost je s´ıt’ov´ y procesor CC2480 resetovat sign´alem RESET. Tento jeho stav nen´ı nikde dokumentov´an a m˚ uˇze p˚ usobit znaˇcn´e komplikace.
4.3.2
Aplikaˇ cn´ı rozhran´ı
Pˇr´ıkazy, kter´e nab´ız´ı s´ıt’ov´ y procesor lze obecnˇe rozdˇelit do ˇctyˇr n´asleduj´ıch typ˚ u rozhran´ı [Tex(2006)]: • Rozhran´ı SYS - jedn´a se o velmi ”n´ızko u ´rovˇ nov´ y pˇr´ıstup” k hardwaru a softwaru procesoru CC2480. Umoˇzn ˇuje pˇr´ıstup napˇr k AD pˇrevodn´ıku, IO pin˚ um, a dalˇs´ım komponent´am. • Konfiguraˇ cn´ı rozhran´ı - pro konfiguraci r˚ uzn´ ych promˇenn´ ych procesoru CC2480. • AF, ZDO rozhran´ı - nejrobustnˇejˇs´ı rozhran´ı pro zpˇr´ıstupnˇen´ı vˇsech funkc´ı s´ıt’ov´eho procesoru a pro vytvoˇren´ı jak´ekoli ZigBee s´ıtˇe. • Simple API - zjednoduˇsen´e rozhran´ı pro z´akladn´ı jednoduchou konfiguraci ZigBee s´ıt´ı, jednotek a pˇrenos zpr´av. Aˇckoli rozhran´ı AF a ZDO nab´ız´ı zdaleka nejˇsirˇs´ı pˇr´ıstup k s´ıt’ov´emu procesoru a ZigBee s´ıti, velk´a vˇetˇsina (je ud´av´ano zhruba 85%) vˇsech aplikac´ı si pohodlnˇe vystaˇc´ı pouze se zjednoduˇsen´ ym Simple API rozhran´ım. Je proto dobr´e rozebrat pˇr´ıkazy, kter´e toto rozhran´ı nab´ız´ı podrobnˇeji.
4.3.3
Simple API
Rozhran´ı obsahuje 10 pˇr´ıkaz˚ u z nichˇz 1 slouˇz´ı pro reset CC2480, 2 pro jeho konfiguraci a zbyl´ ych 7 je urˇceno pˇr´ımo ke spr´avˇe ZigBee s´ıtˇe : 17
Popis hardwarov´eho vybaven´ı
Procesor CC2480
• ZB SYS RESET REQ - pˇr´ıkaz pro resetov´an´ı s´ıt’ov´eho procesoru. Je vhodn´e procesor resetovat po nˇekter´ ych konfigurac´ıch. ymi • ZB APP REGISTER REQUEST - urˇcuje parametry se kter´ se bude tato jednotka pˇripojovat do s´ıtˇe. • ZB START REQUEST - startuje ˇcinnost ZigBee Z´asobn´ıku v s´ıt’ov´em procesoru. CC2480 naˇcte konfiguraˇcn´ı hodnoty z pamˇeti. Po ukonˇcen´ı tohoto procesu je zaˇr´ızen´ı schopno pos´ılat, pˇrij´ımat a smˇerovat provoz v s´ıti (z´aleˇz´ı samozˇrejmˇe na konfiguraci). • ZB PERMIT JOINING REQUEST - slouˇz´ı k urˇcov´an´ı pravidel pˇripojov´an´ı se nov´ ych zaˇr´ızen´ı do jiˇz existuj´ıc´ı s´ıtˇe. • ZB BIND DEVICE - umoˇzn ˇuje zaslat zpr´avu i do zaˇr´ızen´ı, jehoˇz adresa nen´ı zn´am´a (resp zn´ame pouze jeho MAC adresu). Pokud nen´ı ani MAC adresa zn´am´a, je moˇzno vyuˇz´ıt tak´e moˇznosti tzv ”bindov´an´ı”. K tomu ale c´ılov´e zaˇr´ızen´ı mus´ı b´ yt nakonfigurov´ano (viz n´asleduj´ıc´ı bod). • ZB ALLOW BIND - zad´an´ım toho pˇr´ıkazu je zaˇr´ızen´ı nastaveno do reˇzimu ”bindov´an´ı” coˇz umoˇzn ˇuje, ˇze mu jsou zas´ıl´any i neadresovan´e zpr´avy. • ZB SEND DATA REQUEST - Pˇrikaz zah´aj´ı pˇrenos dat do jin´eho zaˇr´ızen´ı. Mˇel by b´ yt pouˇzit pouze ve chv´ıli, kdy jiˇz probˇehla registrace ´spˇeˇsnˇe vytvoaplikaˇcn´ıho procesoru (ZB APP REQUEST) a zaˇr´ızen´ı u ˇrilo nebo se pˇripojilo do s´ıtˇe. • ZB GET DIVICE INFO - na z´akladˇe pˇredan´eho parametru vrac´ı informaci o zaˇr´ızen´ı (viz 4.3.3). Parametr Typ pˇr´ıkazu 0 stav zaˇr´ızen´ı 1 MAC adresa zaˇr´ızen´ı 2 s´ıt’ov´a adresa zaˇr´ızen´ı 3 s´ıt’ov´a adresa rodiˇcovsk´eho zaˇr´ızen´ı 4 MAC adresa rodiˇcovsk´eho zaˇr´ızen´ı 5 kan´al s´ıtˇe 6 PAN ID s´ıtˇe 7 rozˇs´ıˇren´e PAN ID s´ıtˇe
18
Popis hardwarov´eho vybaven´ı
Sn´ımaˇc tepov´e frekvence PulseSensor
• ZB FIND DEVICE REQUEST - Z´ısk´an´ı s´ıt’ov´e adresy libovoln´eho zaˇr´ızen´ı v s´ıti za pˇredpokladu znalosti MAC adresy. • ZB WRITE CONFIGURATION, ZB READ CONFIGURATION - z´apis / ˇcten´ı ˇr´ıd´ıc´ıch registr˚ u s´ıt’ov´eho procesoru.
4.4
Sn´ımaˇ c tepov´ e frekvence PulseSensor
Projekt PulseSensor je volnˇe dostupn´ y sn´ımaˇc tepov´e frekvence za jehoˇz v´ yvojem stoj´ı Joel Murphy a Yury Gitman. Jedn´a se o sn´ımaˇc zaloˇzen´ y na principu fotoelektrick´e metody (viz 2.1). Jako sn´ımaˇc prosvˇetlen´ı je pouˇzit fotoˇclen APDS-9008. Cel´ y pˇr´ıpravek je moˇzn´e zakoupit pˇr´ımo u v´ yrobce [Joel Murphy()]. Pro u ´ˇcel t´eto pr´ace byl pˇr´ıpravek vyroben na Z´apadoˇcesk´e univerzitˇe. Sch´ema zapojen´ı a v´ yslednou realizaci ukazuje obr´azek 4.4.
Obr´azek 4.10: Sch´ema zapojen´ı a v´ ysledn´a realizace
19
5 Realizace bezdr´atov´eho mˇeˇren´ı tepov´ e frekvence Nyn´ı, kdyˇz byl urˇcen potˇrebn´ y teoretick´ y z´aklad ke vˇsem ˇca´stem projektu je nasnadˇe popsat vˇsechny komponenty mˇeˇr´ıc´ıho syst´emu a jejich vz´ajemnou komunikaci. K tomu u ´ˇcelu se dobˇre hod´ı blokov´ y diagram.
5.1
Blokov´ e sch´ ema mˇ eˇ r´ıc´ıho syst´ emu
Cel´ y mˇeˇr´ıc´ı syst´em lze dekomponovat na jednotliv´e d´ılˇc´ı ˇc´asti a ty n´aslednˇe ˇreˇsit samostatnˇe. Mˇeˇr´ıc´ı senzor generuje analogov´a data, kter´a je potˇreba nˇejak´ ym zp˚ usobem vzorkovat a zpracov´avat. Je tud´ıˇz nutn´e pouˇzit´ı AD pˇrevodn´ıku. Koncov´e zaˇr´ızen´ı mus´ı data zpracovat, upravit a bezdr´atovˇe pˇren´est ke koordin´atoru, ten informaci pˇrijme a odeˇsle do PC. V person´aln´ım poˇc´ıtaˇci jsou data pˇrijata a graficky zobrazena. Celou situaci pˇrehlednˇe popisuje obr´azek 5.1.
Obr´azek 5.1: Blokov´e sch´ema
20
Realizace bezdr´atov´eho mˇeˇren´ı tepov´e frekvence
Pˇrenos zpr´av
Bezdr´atov´ y pˇrenos zpr´av technologi´ı ZigBee je spoleˇcn´ y pro obˇe dvˇe strany syst´emu, proto bude rozebr´an ve spoleˇcn´e kapitole 5.2 Pˇrenos zpr´av, v kapitole 5.3 Aplikace je pops´ano nastaven´ı a funkce obou jednotek .
5.2
Pˇ renos zpr´ av
Pˇred t´ım, neˇz bude uveden princip pˇrenosu zpr´av je nutn´e zm´ınit nˇekolik skuteˇcnost´ı, kter´e vedly k v´ ybˇeru toho typu pˇrenosu. Syst´em mˇeˇren´ı tepov´e frekvence je syst´em informaˇcn´ı, nic nereguluje ani nijak neˇr´ıd´ı. Nen´ı tud´ıˇz kladen tak velik´ y d˚ uraz na zaruˇcen´e pˇrenesen´ı zpr´avy ani na rychlost pˇrenosu. Koncov´e zaˇr´ızen´ı by tak´e mˇelo b´ yt energeticky co moˇzn´e nej´ uspornˇejˇs´ı a pˇri vys´ıl´an´ı/pˇr´ıj´ım´an´ı m´a jednotka pomˇernˇe velik´ y proudov´ y odbˇer (ˇra´dovˇe des´ıtky mA). Snaha je tud´ıˇz tyto ˇcasy minimalizovat. Tyto skuteˇcnosti vedly k volbˇe nejjednoduˇsˇs´ıho moˇzn´eho typu pˇrenosu, tj. s n´ahodn´ ym pˇr´ıstupem ke komunikaˇcn´ımu kan´alu a bez potvrzen´ı pˇrenesen´e zpr´avy.
5.2.1
Aplikaˇ cn´ı protokol
Protoˇze syst´em poˇc´ıt´a s pˇr´ıpadn´ ym pouˇzit´ım v´ıce koncov´ ych zaˇr´ızen´ı, mohlo by pˇri komunikaci s centr´aln´ım prvkem doch´azet k pˇr´ıpadn´ ym koliz´ım, nelze ani vylouˇcit situaci, kdy nen´ı zpr´ava u ´spˇeˇsnˇe doruˇcena z d˚ uvod˚ u nejr˚ uznˇejˇs´ıch ruˇsen´ı atd. Bylo by proto dobr´e uvaˇzovat o moˇznosti jestli by pˇrece jen neˇsly pˇr´ıpadn´e kolize pˇri pˇrenosu nˇejak´ ym zp˚ usobem eliminovat ˇci detekovat a n´aslednˇe opravit. Nejprve rozvaˇzme, jak´a data budou z koncov´eho zaˇr´ızen´ı smˇerem ke koordin´atoru pˇren´aˇsena. Vzhledem k tomu, ˇze veˇsker´a informace, kterou sn´ımaˇc pˇren´aˇs´ı se omezuje pouze na pr˚ umˇern´ y ˇcas mezi dvˇema pulzy za jednotku ˇcasu (1s), staˇc´ı tedy pˇren´aˇset pouze poˇcet sekund a milisekund. K tomu staˇc´ı jeden byte pro kaˇzd´e ˇc´ıslo. Dle normy IEEE 802.15.4 je pˇren´aˇsen´a informace (payload) v kaˇzd´em packetu 0-104 byt˚ u (viz kapitola 3.1) [J. Koton(2006)], je zde znaˇcn´ y prostor k pˇrid´an´ı jeˇstˇe nˇejak´ ych informac´ı do pˇren´aˇsen´e zpr´avy. Pokud nav´ıc nebude pˇresaˇzeno onˇech 104 byt˚ u, odeˇsle se pouze 1 zpr´ava, ˇc´ımˇz se tedy nijak neprodlouˇz´ı doba komunikace a tud´ıˇz ani energetick´e n´aklady.
21
Realizace bezdr´atov´eho mˇeˇren´ı tepov´e frekvence
Aplikace
Jak´e informace tedy pˇrid´avat do pˇren´aˇsen´e zpr´avy, kter´e by umoˇzn ˇovaly detekci, ˇci opravu chyby? Zcela nepochybnˇe je to ˇc´ıslo zpr´avy, pˇr´ıpadnˇe jin´a forma ˇcasov´e znaˇcky. To umoˇzn´ı koordin´atoru kontrolovat kontinuitu komunikace. T´ım by byla vyˇreˇsena detekce chyby. Pokud bude nav´ıc do zpr´avy pˇridan´a informace o pˇredchoz´ıch nˇekolika mˇeˇren´ıch, bude koordin´ator pˇri detekci chyby pˇrenosu schopen zpˇetnˇe zrekonstruovat data, kter´e pˇri pˇredchoz´ıch vys´ıl´an´ıch nebyla pˇrenesena. Aplikaˇcn´ı protokol popisuje obr´azek 5.2. Na z´akladˇe t´eto rozvahy byl vytvoˇren model komunikace, kter´ y je velmi
Obr´azek 5.2: Aplikaˇcn´ı protokol podobn´ y pˇrenosu s tzv. klouzav´ ym ok´enkem [Ing. Jiˇr´ı Ledvina(2012)]. Jeho princip zn´azorˇ nuje obr´azek 5.3.
Obr´azek 5.3: Pˇrenos s klouzaj´ıc´ım ok´enkem
5.3
Aplikace
´ Uvodem je nutn´e zd˚ uraznit, ˇze nˇekter´e ˇca´sti zdrojov´eho k´odu, zejm´ena ty, kter´e se t´ ykaj´ı inicializace rozhran´ı (SPI, UART), vytvoˇren´ı ZigBee s´ıtˇe a dalˇs´ı konfiguraˇcn´ı funkce jsou vytvoˇreny na z´akladˇe volnˇe dostupn´ ych projekt˚ u v´ yrobce. Jedn´a se zejm´ena o aplikaci ZASA (ZigBee Accelerator Sample Application), kter´a tvoˇr´ı v podstatˇe referenˇcn´ı projekt pro v´ yvoj ZigBee 22
Realizace bezdr´atov´eho mˇeˇren´ı tepov´e frekvence
Aplikace
s´ıt´ı. D´ale bylo vyuˇzito pˇr´ıklad˚ u (Software examples) t´ ykaj´ıc´ıch se aplikac´ı v procesoru MSP430 [Tex(2011a)]. Aˇckoli obˇe zaˇr´ızen´ı maj´ı principi´alnˇe odliˇsnou u ´lohu, lze zde naj´ıt spoleˇcn´e u ´seky, zejm´ena se jedn´a o inicializaci zaˇr´ızen´ı a nastaven´ı s´ıt’ov´eho procesoru. Bˇeh programu lze velmi dobˇre zn´azornit stavov´ ym diagramem (viz obr´azek 5.4). Kaˇzd´ y stav bude detailnˇe rozebr´an na n´asleduj´ıc´ıch ˇra´dc´ıch.
Obr´azek 5.4: Stavov´ y diagram aplikace
5.3.1
Koncov´ e zaˇ r´ızen´ı
´ Ukolem koncov´eho zaˇr´ızen´ı je samozˇrejmˇe pˇripojit se do vytvoˇren´e s´ıtˇe. Pot´e pˇrijmout analogov´ y sign´al ze sn´ımaˇce, odfiltrovat ruˇsiv´e sloˇzky a z tˇechto dat z´ıskat informaci o tom, kdy doˇslo k u ´deru srdce. Od t´eto chv´ıle se spust´ı 23
Realizace bezdr´atov´eho mˇeˇren´ı tepov´e frekvence
Aplikace
ˇc´ıtaˇc, kter´ y mˇeˇr´ı dobu do n´asleduj´ıc´ıho u ´deru. Pr˚ umˇern´a doba mezi dvˇema pulzy je pot´e odesl´ana na koordin´ator. Pojd’me si nyn´ı celou situaci rozebrat ponˇekud podrobnˇeji.
Pˇ ripojen´ı do ZigBee s´ıtˇ e Nyn´ı pˇrich´az´ı chv´ıle, kdy v´ yvoj´aˇr pracuj´ıc´ı s technologi´ı Z-Accel nejv´ıce ocen´ı cel´ y tento koncept a zvl´aˇstˇe pak zjednoduˇsen´e aplikaˇcn´ı rozhran´ı SAPI. Cel´ y proces pˇripojen´ı koncov´eho zaˇr´ızen´ı do s´ıtˇe je totiˇz omezen na vol´an´ı funkc´ı, kter´e jiˇz fyzicky ovl´adaj´ı SPI linku a implementuj´ı konkr´etn´ı pˇr´ıkazy. Firma Texas Instruments nav´ıc d´av´a tyto funkce k dispozici jako souˇca´st aplikace ZASA. Pˇripojen´ı prvku do s´ıtˇe a jeho konfigurace je tud´ıˇz maxim´alnˇe usnadnˇeno. Vˇzdyt’ to je tak´e jeden z´akladn´ıch poˇzadavk˚ u cel´e technologie ZAccel! Pro ilustraci jednoduchosti konfigurace PAN_ID, ˇc´ısla kan´alu a typu zaˇr´ızen´ı je uveden zdrojov´ y k´od. Kompletn´ı zdrojov´ y k´od je k dispozici v pˇr´ıloze. /∗ t y p z a r i z e n i ∗/ d e v i c e = ZG DEVICETYPE ENDDEVICE ; z b W r i t e C o n f i g u r a t i o n (ZCD NV LOGICAL TYPE, 1 , &tmp ) ; /∗ PAN ID s i t e ∗/ panID16 = 0xFFFF ; z b W r i t e C o n f i g u r a t i o n (ZCD NV PANID , 2 , &v a l 1 6 ) ; /∗ k a n a l c . 16 ∗/ c h a n n e l 3 2 = 0 x00010000 ; z b W r i t e C o n f i g u r a t i o n (ZCD NV CHANLIST, 4 , &v a l 3 2 ) ; /∗ r e s e t z a ˇ r ´ı z e n´ı ∗/ zb SystemReset ( ) ;
Po u ´spˇeˇsn´e konfiguraci zaˇr´ızen´ı a pˇripojen´ı prvku do s´ıtˇe generuje s´ıt’ov´ y procesor potvrzovac´ı zpr´avu START_CONFIRM na jej´ım z´akladˇe je tento stav indikov´an rozsv´ıcen´ım ˇcerven´e LED diody, zaˇr´ızen´ı je pˇrepnuto do m´odu n´ızk´e spotˇreby. V nˇem ˇcek´a zaˇr´ızen´ı na stisk tlaˇc´ıtka po nˇemˇz zapoˇcne mˇeˇren´ı.
Sn´ım´ an´ı analogov´ eho sign´ alu, AD pˇ revodn´ık V kapitole 4.4 byl pops´an pouˇzit´ y senzor tepov´e frekvence. Aby bylo moˇzn´e jeho v´ ystup zpracov´avat je nejprve potˇreba jej pˇrev´est do digit´aln´ı podoby. K tomuto u ´ˇcelu je drtiv´a vˇetˇsina procesoru vybavena AD pˇrevodn´ıkem, nejinak je tomu i v pˇr´ıpadˇe MSP430 (viz kapitola 4.2). N´asleduj´ıc´ı ˇr´adky budou vˇenov´any sezn´amen´ı se s jeho ˇr´ıd´ıc´ımi registry a jejich nastaven´ım. 24
Realizace bezdr´atov´eho mˇeˇren´ı tepov´e frekvence
Aplikace
AD pˇ revodn´ık ´ Ukolem t´eto periferie (jak naznaˇcuje n´azev) je pˇrev´est analogov´ y sign´al na 10 bitovou digit´aln´ı reprezentaci. Pro svou funkci vyuˇz´ıv´a dvˇe programovˇe voliteln´e napˇet’ov´e u ´rovnˇe (Vr+ a Vr− ) s jejichˇz definuje horn´ı a doln´ı hladinu vzorkovan´eho napˇet´ı. Pˇreveden´a hodnota m˚ uˇze b´ yt uloˇzena jak v pˇr´ım´em k´odu tak v dvojkov´em k´odu v registru ADC10MEM. Vzorkovan´a digit´aln´ı data (NADC )m˚ uˇzeme jednoduˇse odvodit podle vztahu:
NADC = 1023 ·
VIN − VR− VR+ − VR−
(5.1)
Pro generov´an´ı vzorkovac´ıho hodinov´eho sign´alu m˚ uˇze b´ yt vyuˇzito 4 zdroj˚ u: SMCLK, MCLK, ACLK a intern´ı oscil´ator ADC10OSC. K pˇriveden´ı vzorkovan´eho sign´alu m˚ uˇze b´ yt vyuˇzito 9 extern´ıch a 4 intern´ıch analogov´ ych kan´al˚ u. Kan´aly kter´e nejsou vybr´any jsou izolov´any od ADC kv˚ uli eliminaci ˇsumu. Jako ˇr´ıd´ıc´ı registry procesoru slouˇz´ı ADC10CTL0 a ADC10CTL1. Pozn.: To je samozˇrejmˇe jen zlomek moˇznost´ı, ale dostaˇcuj´ı pro jednor´azov´e navzorkov´an´ı dat. Dalˇs´ı nastaven´ı AD pˇrevodn´ıku popisuje datasheet procesoru MSP430F2274 odd´ıl 20, strana 25 [Tex(2011b)] V kapitole 4.1 je pops´ana testovac´ı deska a piny procesoru, kter´e jsou na ni vyvedeny. Po nahl´ednut´ı do tabulky vypl´ yv´a, ˇze na desce je k dispozici 6 kan´al˚ u AD pˇrevodn´ıku. Vzorkovan´ y sign´al je pˇripojen k pinu P2.2, oˇcek´avan´e napˇet´ı je v rozmez´ı 0V-2V. Konfigurace AD pˇrevodn´ıku bude tud´ıˇz n´asleduj´ıc´ı:
25
Realizace bezdr´atov´eho mˇeˇren´ı tepov´e frekvence
Aplikace
/∗ 16 t a k t˚ u pro v z o r k o v ´ a n´ı , r e f 2 ,5V, pˇ r e r uˇs e n´ı ON, z a p n i j ´ a d r o ADC∗/ ADC10CTL0 = ADC10SHT 2 + REF2 5V + REFON + ADC10ON + ADC10IE ; /∗A2 j a k o v s t u p n´ı k a n a ´ l ∗/ ADC10CTL1 = INCH 2 ; /∗ a n a l o g o v ´ y vstup kan´ a l u A2 p o v o l e n ∗/ ADC10AE0 = 0 x04 ;
Kaˇzd´e vzorkov´an´ı AD pˇrevodn´ıku pot´e vyvol´a pˇreruˇsen´ı kter´e je obslouˇzeno konkr´etn´ı rutinou ve kter´e dojde k aktualizaci hodnoty vzorkovan´eho sign´alu, nastav´ı se pˇr´ıznak konkr´etn´ıho pˇreruˇsen´ı a AD pˇrevodn´ık se vypne. #pragma v e c t o r=ADC10 VECTOR i n t e r r u p t void i s r A d c ( ) { halAdcVal = ADC10MEM; e v e n t F l a g |= HAL EVT ADC ; ADC10CTL0 = 0 ; low power mode off on exit ( ) ; }
Filtrov´ an´ı sign´ alu Nyn´ı je jiˇz k dispozici digit´aln´ı reprezentace analogov´eho sign´alu. Bohuˇzel jako vˇetˇsina analogovˇe mˇeˇren´ ych dat, jsou i tyto hodnoty znaˇcnˇe ovlivnˇeny ruˇsen´ım. Je proto potˇreba tato data filtrovat a normalizovat, aby bylo moˇzn´e z nich z´ıskat informaci o aktu´aln´ım stavu srdce. Analogov´ y sign´al je vzorkov´an a filtrov´an kaˇzdou 1ms. N´asleduj´ıc´ı u ´sek zdrojov´eho k´odu popisuje algoritmus filtrace a normalizace sign´alu, obr´azek 5.5 ukazuje sign´al po jeho navzorkov´an´ı AD pˇrevodn´ıkem, na obr´azeku 5.6 je vidˇet vyfiltrovan´ y sign´al.
26
Realizace bezdr´atov´eho mˇeˇren´ı tepov´e frekvence
Obr´azek 5.5: Vzorkovan´ y sign´al
Obr´azek 5.6: Filtrovan´ y sign´al
27
Aplikace
Realizace bezdr´atov´eho mˇeˇren´ı tepov´e frekvence
Aplikace
S i g n a l = halAdcVal ; /∗ N o r m a l i z o v a ´ n´ı s i g n a ´ l u do 0 ∗/ r e a d i n g s += S i g n a l ; // p oˇ c e t v z o r k˚ u pro n o r m a l i z o v ´ a n´ı sampleCounter++; // promˇ e nn´ a v y uˇz i t a ´ jako ˇ c ´ı t a ˇ c v z o r k˚ u i f ( ( sampleCounter %300) == 0 ) { o f f s e t = r e a d i n g s / 3 0 0 ; // pr˚ umˇ e rov´ a n´ı readings = 0; } N S i g n a l = S i g n a l − o f f s e t ; // v tomto m´ıs tˇ e p r o b´ıh ´ a normalizace Lxv [ 1 ] = Lxv [ 0 ] ; Lxv [ 0 ] = Lxv [ 1 ] + ( NSignal−Lxv [ 1 ] ) / 2 ; // F i l t r o v ´ a n´ı 100 Hz F S i g n a l = Lxv [ 0 ] ∗ S c a l e ; // Z e s´ı l e n´ı i f ( F S i g n a l >= Peak && P u l s e == f a l s e ) { // S r d eˇ c n´ı uder z p˚ u s o b´ı , ˇz e ADC v z o r e k r o s t e . Peak = F S i g n a l ; // H l e d ´ a n´ı momentu v r c h o l u k ˇ rivky peakTime = sampleCounter ; // Pokud j e t o v r c h o l , n a s t a l nyn´ı } /∗ j e ˇ c a s z j i s t i t , j e s t l i kˇ rivka nedosa ´ h l a v r c h o l u ∗/ // K v˚ uli u ´ s p oˇ re ˇ c asu n e n´ı nutn´ e poˇ c ´ı t a t kaˇz dou 1ms , s t a ˇ c ´ı po 20ms . i f ( ( sampleCounter %20) == 0 ) { // pokud s i g n ´ al nˇ ekolikra ´ t po s o bˇ e klesa ´ , b y l zazanamen´ am p u l s i f ( F S i g n a l < 0 && P u l s e == f a l s e ) { P u l s e = t r u e ; // dokud j e p u l s , bude t r u e lastHRV = HRV; l e d B l i n k (BOTH DIOD ) ; HRV = peakTime − lastPeakTime ; // mˇ eˇ r en´ı ˇ c asu mezi 2 p u l z y lastPeakTime = peakTime ; updateData (HRV) ; } i f ( F S i g n a l > 0 && P u l s e == t r u e ) { // k d yˇz s i g n a ´ l r o s t e , m˚ uˇzeme vymazat promˇ e nn´ e P u l s e = f a l s e ; // p u l z uˇz n e n´ı Peak = 0 ; // } }
Pozn.: Algoritmus filtrace je volnˇe dostupn´y na str´ank´ach v´yrobce sn´ımaˇce PulseSensor [Joel Murphy()]
Agregace dat Ve chv´ıli, kdy algoritmus detekuje srdeˇcn´ı ˇcinnost, spoˇcte ˇcas od minul´eho pulsu, uloˇz´ı jej do lok´aln´ı promˇenn´e time a aktualizuje glob´aln´ı promˇennou timeToBeat podle vzorce:
timeT oBeatt = 0, 7 · timeT oBeat + 0, 3 · timeT oBeatt−1
(5.2)
Je tedy vidˇet, ˇze pˇri aktualizaci promˇenn´e timeToBeat nen´ı pouze star´a 28
Realizace bezdr´atov´eho mˇeˇren´ı tepov´e frekvence
Aplikace
hodnota nahrazena novou, ale je zde star´a hodnota jeˇstˇe zohlednˇena. D˚ uvodem je fakt, ˇze tepov´a frekvence se v ˇcase mˇen´ı pomˇernˇe spojitˇe a tud´ıˇz nen´ı ˇz´adouc´ı, aby hodnota v´ yraznˇe kol´ısala. Napˇr´ıklad pˇri mˇeˇren´ı byl vypoˇcten ˇcas 50ms, pˇri n´asleduj´ıc´ım mˇeˇren´ı se tento ˇcas zmˇenil na 55ms. Pˇri v´ ypoˇctu by tedy tepov´a frekvence kol´ısala:
[
tep ] min
100 · 60 timeT oBeat tep ] · 60 = ˙ 120 [ min tep · 60 = ˙ 109 [ ] min
Tf 100 50 100 55
=
(5.3)
Rozd´ıl 5ms je pˇritom velmi mal´ y a m˚ uˇze b´ yt zp˚ usoben bud’ skuteˇcnou zmˇenou tepov´e frekvence, ale stejnˇe tak nepˇresnost´ı mˇeˇr´ıc´ı metody ˇci chybou pˇri filtrov´an´ı. Pouˇzijeme-li popsanou metodu postupn´eho zpˇresˇ nov´an´ı v´ ysledku, vypoˇcten´e ˇcasy mezi jedn´ım pulzem se zmˇen´ı na 50ms, resp 53.5ms. V´ ysledky budou n´asleduj´ıc´ı:
100 tep ] · 60 = ˙ 120 [ min 50 100 tep · 60 = ˙ 112 [ min ] 53.5
(5.4) (5.5)
Je tak´e dobr´e vz´ıt v u ´vahu, ˇze pˇri sn´ım´an´ı m˚ uˇze doj´ıt k nepˇresnostem. Napˇr. prst m˚ uˇze b´ yt oddˇelen od sn´ımaˇce, sn´ımac´ı algoritmus nedetekuje tep atd. V tom pˇr´ıpadˇe by samozˇrejmˇe doba mezi detekc´ı pulzu znaˇcnˇe narostla (aˇz na nˇekolika n´asobek skuteˇcn´e hodnoty). Je proto dobr´e s touto situac´ı poˇc´ıtat a hodnoty, kter´e pˇres´ahnou ˇctyˇrn´asobek ˇcasu mezi sign´aly ignorovat a nemˇenit p˚ uvodn´ı hodnotu.
29
Realizace bezdr´atov´eho mˇeˇren´ı tepov´e frekvence
Aplikace
Nyn´ı si zrekapitulujme situaci. Koncov´e zaˇr´ızen´ı je nakonfigurov´ano, pˇripojeno do funguj´ıc´ı ZigBee s´ıti a kaˇzdou milisekundu je vyvol´ano pˇreruˇsen´ı ˇcasovaˇce na jehoˇz z´akladˇe jsou vzorkov´ana a filtrov´ana data. Je tedy k dispozici vˇse potˇrebn´e, aby jednotka mohla kaˇzdou 1s vyslat zpr´avu (viz obr´azek 5.2) smˇerem ke koordin´atoru. Vˇsechna data jsou pr˚ ubˇeˇznˇe uloˇzena v poli buffer kter´e reprezentuje naposledy odeslanou zpr´avu. Ve chv´ıli kdy m´a doj´ıt k dalˇs´ımu odesl´an´ı je inkrementov´ano ID_zpr´ avy a zbyl´e poloˇzky v poli jsou posunuty o 2 m´ısta vpravo, ˇc´ımˇz dojde k realizaci plovouc´ıho ok´enka, nejstarˇs´ı hodnoty budou smaz´any a na prvn´ı m´ısto zaˇrazeny aktu´aln´ı hodnoty.
5.3.2
Koordin´ ator
Vytvoˇ ren´ı ZigBee s´ıtˇ e Proces vytvoˇren´ı nov´e s´ıtˇe je podobn´ y jako pˇri pˇripojen´ı zaˇr´ızen´ı do s´ıtˇe. Je vyuˇzito rozhran´ı SAPI a funkc´ı dostupn´ ych z aplikace ZASA. Pro n´azornost je uveden jeden krok pˇri konfiguraci. Kompletn´ı zdrojov´ y k´od je uveden v pˇr´ıloze. /∗ t y p z a r i z e n i ∗/ d e v i c e = ZG DEVICETYPE COORDINATOR; z b W r i t e C o n f i g u r a t i o n (ZCD NV LOGICAL TYPE, 1 , &tmp ) ; /∗ PAN ID s i t e ∗/ panID16 = 0xFFFF ; z b W r i t e C o n f i g u r a t i o n (ZCD NV PANID , 2 , &v a l 1 6 ) ; /∗ c h a n n e l c . 16 ∗/ v a l 3 2 = 0 x00010000 ; z b W r i t e C o n f i g u r a t i o n (ZCD NV CHANLIST, 4 , &v a l 3 2 ) ; zb SystemReset ( ) ;
Kaˇzd´ y u ´spˇeˇsnˇe proveden´ y konfiguraˇcn´ı krok potvrzuje s´ıt’ov´ y procesor adekv´atn´ım CONFIRM pˇr´ıkazem. V pˇr´ıpadˇe u ´spˇeˇsn´eho pˇripojen´ı do s´ıtˇe je to START_CNF, pokud u ´spˇeˇsnˇe odeˇsle zaˇr´ızen´ı zpr´avu, generuje SEND_DATA_CNF atd.
Pˇ r´ıjem zpr´ av Nyn´ı kdyˇz je s´ıt’ vytvoˇrena ˇcek´a zaˇr´ızen´ı na pˇr´ıjem zpr´avy v nekoneˇcn´e smyˇcce. Pˇri pˇr´ıjmu zpr´avy je vyvol´ano pˇreruˇsen´ı. To generuje sign´al SRDY. V jeho obsluˇzn´e rutinˇe je detekov´ano o jak´ y typ SPI pˇr´ıkazu se jedn´a. Pokud jde 30
Realizace bezdr´atov´eho mˇeˇren´ı tepov´e frekvence
Aplikace
o indikaci pˇrijat´ ych dat RCV_DATA_IND zpracuje koordin´ator data a v poˇzadovan´em form´atu je odeˇsle pˇres UART do PC. /∗ Pˇ r e r uˇs e n´ı v y v o l a l a z p r a ´va o p ˇ r i j e t´ı d a t ∗/ i f ( r p c F l a g s == RCV DATA IND) { receive (); } void r e c e i v e ( ) { /∗ Vstup do f u n k c e , k t e r ´ a o d eˇs l e d a t a pˇ r e s UART do PC∗/ printMessage ( zaccelDataBuf ) ; }
Odes´ıl´ an´ı dat pˇ res UART Aby bylo moˇzn´e komunikovat pˇres rozhran´ı UART, mus´ı b´ yt rozhran´ı inicializov´ano. K tomu slouˇz´ı registry UCACTL0, UCACTL1, UCAMCTL, UCA0BR0, UCA0BR1 a jsou nastaveny n´asledovnˇe: UCA0CTL1 = UCSWRST; /∗ S o f t w a r o v ´ y r e s e t ∗/ UCA0CTL1 |= UCSSEL 3 ; /∗ Form´ a t r´ a mce : b e z p a r i t y ; 1 s t o p −b i t ; 8 b i t˚ u / b y t e . ∗/ UCA0CTL0 = 0 ; /∗ N a s t a v´ı z d r o j ˇ casova ´ n´ı & r y c h l o s t pˇ r en o su . ∗/ UCA0BR0 = 0 x34 ; UCA0BR1 = 0 x00 ; UCA0MCTL = UCOS16 | UCBRF0 ; /∗ N a s t a v e n´ı p o r t˚ u P3 . 4 , . 5 − UART0 TXD, RXD∗/ P3SEL |= 0 x30 ; UCA0CTL1 &= ˜UCSWRST; /∗ p o v o l e n´ı pˇ r e r uˇs e n´ı ∗/ IE2 |= UCA0RXIE ;
S tˇemito parametry tedy prob´ıh´a pˇrenos pˇres UART do USB program´atoru a n´aslednˇe pˇres USB do PC. Form´at pˇren´aˇsen´e zpr´avy po UART je identick´ y jako zpr´ava pˇren´aˇsen´a od koncov´eho zaˇr´ızen´ı ke koordin´atoru (viz obr´azek 5.2).
31
6 Programov´e vybaven´ı pro vizualizaci namˇ eˇ ren´ ych dat Pro vizualizaci namˇeˇren´ıch hodnot byl vytvoˇren program WorkOut v programovac´ım jazyce Java v prostˇred´ı NetBeans. Program m˚ uˇze slouˇzit jako n´astroj pro pr˚ ubˇeˇzn´e zobrazov´an´ı aktu´aln´ı tepov´e frekvence (viz obr´azek ??), pˇr´ıpadnˇe umoˇzn ˇuje zobrazit historii mˇeˇren´ı formou grafu (viz obr´azek ??). Uˇzivatelsk´ y manu´al je k dispozici v pˇr´ıloze , pˇr´ıpadnˇe se v pˇr´ıloze nach´az´ı struˇcn´ y popis vˇsech nezbytn´ ych tˇr´ıd programu. Podrobn´a dokumentace je vygenerov´ana programem JavaDoc a je k dispozici na pˇriloˇzen´em CD.
32
7 Porovn´an´ı fin´aln´ıho produktu s komerˇ cn´ım prostˇ redkem Pro otestov´an´ı vyvinut´eho mˇeˇr´ıc´ıho syst´emu byl zap˚ ujˇcen komerˇcn´ı SportTester Sigma PC 15 od firmy Sigma Sport (viz 7.1). Za jehoˇz zap˚ ujˇcen´ı dˇekuji sv´e pˇr´ıtelkyni. Testov´an´ı prob´ıhalo n´asledovnˇe. s V´ ysledky mˇeˇren´ı ukazuje
Obr´azek 7.1: Komerˇcn´ı sport tester Sigma PC 15 n´asleduj´ıc´ı tabulka. Vzhledem k tomu, ˇze nen´ı k dispozici ˇza´dn´a zaruˇcenˇe pˇresn´a metoda, je pouˇzit jako referenˇcn´ı komerˇcn´ı produkt a chyba je poˇc´ıt´ana v pomˇeru k jeho v´ ysledk˚ um Sigma PC 15[tep/min] Pˇr´ıpravek Chyba 30 29 - 31 <1% 60 55-67 8% 90 80-102 10% 120 105-130 ±12% 150 145-153 10% 180+ znaˇcnˇe kol´ıs´a >20% Z mˇeˇren´ı je patrno ˇze pˇri ust´alen´e hodnotˇe chyba pˇri mˇeˇren´ı vyˇsˇs´ı se vzr˚ ustaj´ıc´ı frekvenc´ı srdeˇcn´ıho u ´deru. 33
Porovn´an´ı fin´aln´ıho produktu s komerˇcn´ım prostˇredkem
Pˇri rychle se mˇen´ıc´ı tepov´e frekvenci se uk´azala nepˇresnost metody a zejm´ena nepˇresnost pˇri filtrov´an´ı a pr˚ umˇerov´an´ı. V tomto smˇeru by zcela nepochybnˇe bylo potˇreba prov´est rozs´ahlejˇs´ı testov´an´ı s r˚ uzn´ ymi nastaven´ımi filtrovac´ıch konstant a zv´aˇzit dalˇs´ı metody agregace dat.
34
8 Z´avˇer V teoretick´e ˇca´sti pr´ace je vysvˇetlena tepov´a frekvence, jsou rozebr´any nˇekter´e v´ yznamn´e dˇeje ˇci poruchy rytmu, kter´e mohou nastat bˇehem srdeˇcn´ıho cyklu. D´ale jsou uvedeny z´akladn´ı metody sn´ım´an´ı tepov´e frekvence vˇcetnˇe jejich klad˚ u a z´apor˚ u, pˇr´ıpadnˇe princip˚ u realizace. Na z´akladˇe t´eto rozvahy je vybr´ana metoda, kter´a bude pouˇzita pˇri v´ yvoji syst´emu sn´ım´an´ı tepov´e frekvence. ´ Ukolem druh´e poloviny teoretick´e ˇca´sti je popsat s´ıt’ ZigBee, jej´ı OSI model, prvky s´ıtˇe a typy topologi´ı. D´ale se bl´ıˇze sezn´amit s pˇr´ıpravkem eZ430RF2480, zejm´ena s obˇema jeho procesory, modelem komunikace a komunikaˇcn´ı API. V rozs´ahlejˇs´ı praktick´e ˇca´sti je krok po kroku rozebr´an proces v´ yvoje mˇeˇr´ıc´ıho syst´emu. Z´akladn´ım krokem je n´avrh blokov´eho sch´ematu a n´aslednˇe pops´an´ı kaˇzd´e z jeho ˇca´st´ı. N´asleduj´ıc´ı kapitoly popisuj´ı kaˇzdou jednu ˇc´ast, od sestaven´ı funguj´ıc´ı bezdr´atov´e s´ıtˇe, vytvoˇren´ı programu pro ˇcleny s´ıtˇe aˇz po vizualizaci namˇeˇren´ ych dat. Posledn´ı ˇca´st´ı pr´ace je porovn´an´ı vytvoˇren´eho pˇr´ıpravku s komerˇcn´ım produktem. Pˇri testov´an´ı bylo doc´ıleno n´asleduj´ıc´ıch v´ ysledk˚ u: Pˇri klidn´e tepov´e frekvenci se rozd´ıl mezi komerˇcn´ım SportTesterem a vytvoˇren´ ym pˇr´ıpravkem pohybuje kolem ±10%, pˇri prudk´ ych zmˇen´ach tepov´e frekvence a vysok´e frekvenci (180+ tep/min) doch´az´ı k nepˇresnosti zp˚ usoben´e pr˚ umˇerov´an´ım hodnot a nepˇresnost´ı sn´ımac´ı metody zhruba ±30%. V souˇcasn´e pracovn´ı verzi se sn´ımaˇc ned´a pˇr´ıliˇs pouˇz´ıt v re´aln´em provozu, chyb´ı zde optimalizace spotˇreby u koncov´eho zaˇr´ızen´ı, jednotky by bylo tˇreba opatˇrit vhodn´ ym krytem, je tˇreba doladit pr˚ ubˇeˇzn´e pˇripojov´an´ı a odpojov´an´ı dalˇs´ıch jednotek za bˇehu mˇeˇren´ı a nebylo provedeno testov´an´ı provozu pˇri v´ıce pˇripojen´ ych koncov´ ych zaˇr´ızen´ı. Vizualizaˇcn´ı program je pˇripraven pro ˇsirˇs´ı vyuˇzit´ı. Je zde implementov´ano vytv´aˇren´ı nov´ ych uˇzivatel˚ u, spr´ava jejich datab´aze a moˇznost vytvoˇren´ı SQL datab´aze. S tˇemito u ´daji by v budoucnu bylo moˇzn´e do syst´emu pˇridat informaci o sp´alen´ ych kalori´ıch pˇri cviˇcen´ı, sledovat dlouhodobou aktivitu cviˇc´ıc´ıch atd. To vˇsak pˇresahuje r´amec bakal´aˇrsk´e pr´ace.
35
Literatura [SPI()] What is SPI. Dostupn´e z: http://www.fpga4fun.com/SPI1.html. [zig()] [Fak(2010)] E-Learningov´e prostˇeed´ı pro integraci v´yuky klinick´ych pˇeedmˇetu na LF a FZV UP Olomouc. Fakulta zdravotnick?ch vˇed Univerzity Palack´eho v Olomouci, 2010. Dostupn´e z: http://pfyziollfup.upol.cz/castwiki2/?p=4338. [Ing. Jiˇr´ı Ledvina(2012)] ING. JIr´ı LEDVINA, C. Pˇredn´aˇsky k pˇredmˇetu ´ Uvod do poˇc´ıtaˇcov´ ych s´ıt´ı. 2012. [J. Koton(2006)] J. KOTON, V. K. P. v. Standard n´ızkorychlostn´ı bezdr´atov´e ˇ e vysok´e uˇcen´ı technick´e, 2006. Dostupn´e z: komunikace ZigBee. Cesk´ http://access.feld.cvut.cz/view.php?cisloclanku=2006032001. [Joel Murphy()] JOEL MURPHY, Y. G. www.pulsesensor.com.
Pulse Sensor.
Dostupn´e z:
[Mas(2011)] Pulsn´ı oxymetr Masimo radical 7. Masimo, 2011. Dostupn´e z: http://www.hoyer.cz/produkty/intenzivni-pece/pulsnioxymetry/masimo-radical-7/. [Tex()] eZ430-RF2480 User’s Guide (Rev. A). Texas Instruments. Dostupn´e z: http://www.ti.com/lit/ug/swru151a/swru151a.pdf. [Tex(2006)] CC2480 Developer’s Guide. Texas Instrumets, 2006. Dostupn´e z: http://focus.ti.com/lit/an/swra176/swra176.pdf. [Tex(2011a)] MSP430F2x7x code examples (Rev. E). Texas Instrumets, 2011a. Dostupn´e z: http://www.ti.com/litv/zip/slac123d.
36
LITERATURA
LITERATURA
[Tex(2011b)] MSP430x2xx Family User’s Guide (Rev. E). Texas Instrumets, 2011b. Dostupn´e z: http://focus.ti.com/lit/ug/slau144e/slau144e.pdf. ˇ eˇriˇc tepov´e frekvence, 2010. ˇ [Seda(2010)] SEDA, J. Mˇ
37
Seznam obr´ azk˚ u
2.1
Reflexivn´ı a pr˚ usvitov´a fotoelektrick´a metoda . . . . . . . . .
3
2.2
Komerˇcn´ı oxymetr firmy Masimo [Mas(2011)] . . . . . . . . .
4
3.1
Referenˇcn´ı model ZigBee . . . . . . . . . . . . . . . . . . . . .
7
3.2
Topologie s´ıtˇe ZigBee . . . . . . . . . . . . . . . . . . . . . . .
9
4.1
Rozloˇzen´ı v´ yvod˚ u procesoru na desku . . . . . . . . . . . . . . 11
4.2
V´ yvojov´ y kit eZ430-RF2480 . . . . . . . . . . . . . . . . . . . 11
4.3
Popis komponent procesoru MSP430 . . . . . . . . . . . . . . 12
4.4
Rozloˇzen´ı pin˚ u procesoru MSP430 . . . . . . . . . . . . . . . . 13
4.5
Koncept Z-Accel . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.6
Pˇr´ıkaz AREQ . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.7
Pˇr´ıkaz SREQ . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.8
Pˇr´ıkaz POLL . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.9
Konflikt pˇri komunikaci . . . . . . . . . . . . . . . . . . . . . . 16
4.10 Sch´ema zapojen´ı a v´ ysledn´a realizace . . . . . . . . . . . . . . 19 5.1
Blokov´e sch´ema . . . . . . . . . . . . . . . . . . . . . . . . . . 20
38
´ ˚ SEZNAM OBRAZK U
´ ˚ SEZNAM OBRAZK U
5.2
Aplikaˇcn´ı protokol . . . . . . . . . . . . . . . . . . . . . . . . 22
5.3
Pˇrenos s klouzaj´ıc´ım ok´enkem . . . . . . . . . . . . . . . . . . 22
5.4
Stavov´ y diagram aplikace . . . . . . . . . . . . . . . . . . . . . 23
5.5
Vzorkovan´ y sign´al . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.6
Filtrovan´ y sign´al . . . . . . . . . . . . . . . . . . . . . . . . . 27
7.1
Komerˇcn´ı sport tester Sigma PC 15 . . . . . . . . . . . . . . . 33
A.1 V´ ybˇer COM portu . . . . . . . . . . . . . . . . . . . . . . . . 41 A.2 Zobrazen´ı aktu´aln´ı tepov´e frekvence . . . . . . . . . . . . . . . 41 A.3 Zobrazen´ı tepov´e frekvence formou grafu . . . . . . . . . . . . 42
39
Pˇ rehled pouˇ zit´ ych zkratek IKG Impedanˇcn´ı kardiografie IEEE The Institute of Electrical and Electronics Engineers MAC Media Access Control NTW Network layer SSP Security Services Provider APL Aplication Layer USB Universal Serial Bus SPI Serial Peripheral Interface API Application Programming Interface PC Personal Computer UART Universal Asynchronous Receiver and Transmitter ZASA ZigBee Accelerator Sample Aplication LED Light Emitting Diode AREQ Asynchronous Request SRDY Synchronous Request ZDO ZigBee Device Objects PAN Personal Area Network SMCLK Sub-System Master Clock MCLK Master Clock ACLK Auxiliary Clock
40
A Pˇr´ılohy A.1
Uˇ zivatelsk´ a pˇ r´ıruˇ cka programu WorkOut
Po spuˇstˇen´ı aplikace je tˇreba vybrat jeden z dostupn´ ych port˚ u, na kter´em je pˇripojen USB FET program´ator (viz A.1). Po vybr´an´ı jednoho z port˚ u
Obr´azek A.1: V´ ybˇer COM portu
lze jiˇz program spustit tlaˇc´ıtkem START. Program je nyn´ı nakonfigurov´an na zobrazov´an´ı aktu´aln´ı tepov´e frekvence dvou jednotek. Stisknut´ım tlaˇc´ıka
Obr´azek A.2: Zobrazen´ı aktu´aln´ı tepov´e frekvence
Graf se zobraz´ı historie mˇeˇren´ı tepov´e frekvence.
41
Pˇr´ılohy
Popis tˇr´ıd programu WorkOut
Obr´azek A.3: Zobrazen´ı tepov´e frekvence formou grafu
A.2
Popis tˇ r´ıd programu WorkOut
Program se skl´ad´a z 4 hlavn´ıch tˇr´ıd a nˇekolika dalˇs´ıch pomocn´ ych knihoven pro realizaci grafick´eho uˇzivatelsk´eho rozhran´ı. • PortTester.java - tˇr´ıda inicializuj´ıc´ı komunikaci se s´eriovou linkou. Umoˇzn ˇuje nastavit parametry pˇrenosu a vytvoˇr´ı seznam dostupn´ ych COM port˚ u. • PortReader.java - vl´akno kter´e realizuje ˇcten´ı hodnot ze s´eriov´e linky. A zpracov´av´a pˇrijat´a data. • Message.java - datov´a tˇr´ıda reprezentuj´ıc´ı posledn´ı obdrˇzenou zpr´avu. • User.java - datov´a tˇr´ıda reprezentuj´ıc´ı jednoho uˇzivatele, jeho v´ahu, v´ yˇsku, vˇek, jm´eno. Vyuˇz´ıv´a kolekce ArrayList pro uchov´an´ı vˇsech doruˇcen´ ych zpr´av. • BeepThread.java - vl´akno kter´e jednou za stanoven´ y ˇcas zmˇen´ı barvu r´ameˇcku. 42
Pˇr´ılohy
Popis tˇr´ıd programu WorkOut
• OneUserForm.java - grafick´a tˇr´ıda kter´a zobrazuje r´ameˇcek v nˇemˇz je aktu´aln´ı tepov´a frekvence. • WorkOutView.java - hlavn´ı tˇr´ıda uˇzivatelsk´eho rozhran´ı, zobrazuje formul´aˇr, na nˇem okno kaˇzd´eho uˇzivatele. Umoˇzn ˇuje pˇrepnout zobrazen´ı na vizualizaci pomoc´ı grafu. • HeartRateMonitor.java - zobrazuje graf tepov´e frekvence, pouˇz´ıv´a k tomu historii zpr´av.
43