Inverted Intro

  • Upload
    jhanus

  • View
    343

  • Download
    0

Embed Size (px)

Citation preview

SVEUILITE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAUNARSTVA

DIPLOMSKI RAD BR. 46

Trokanalni elektrokardiograf s memorijom i beinim prijenosom signalaKREIMIR TUEK

Zagreb, lipanj 2010.

Sadraj1 2 3 Uvod ................................................................................................................................... 7 Opa arhitektura ureaja .................................................................................................... 8 Analogni dio ureaja ........................................................................................................ 10 3.1 EKG signal i smetnje ................................................................................................. 10 Smetnje zbog struja koje teku kroz tijelo ......................................................................... 12 Smetnje zbog struja koje teku u pojaalo ......................................................................... 12 Smetnje zbog struja koje teku u mjerne kablove.............................................................. 12 Magnetski inducirane smetnje .......................................................................................... 13 Polarizacijski napon elektroda ......................................................................................... 14 Utjecaj istofaznog napona ................................................................................................ 14 3.2 Izvedba pojaala ........................................................................................................ 16 Ulazni stupanj i realizacija donje granine frekvencije ................................................... 16 Drugi stupanj pojaala ...................................................................................................... 20 Realizacija gornje granine frekvencije i trei stupanj pojaanja .................................... 21 4 Memorija .......................................................................................................................... 24 4.1 Izbor vrste memorije .................................................................................................. 24 DRAM memorija.............................................................................................................. 24 SRAM memorija .............................................................................................................. 24 EEPROM memorija ......................................................................................................... 25 FRAM memorija .............................................................................................................. 25 NAND FLASH memorija ................................................................................................ 25 4.2 Hynix 512Mb NAND FLASH .................................................................................. 26 5 Bluetooth veza .................................................................................................................. 29 6 Mikrokontroler ................................................................................................................. 33 6.1 Arhitektura porodice mikrokontrolera LPC13xx ...................................................... 34 6.2 Upravljanje potronjom mikrokontrolera LPC1313 .................................................. 35 7 Baterijsko napajanje i potronja ....................................................................................... 42 7.1 Procjena potronje ureaja......................................................................................... 43 7.2 Mogunosti optimiranja potronje ureaja ................................................................ 45 7.3 Izvedba punjaa baterija ............................................................................................ 47 8 Ugraena programska podrka (firmware) ...................................................................... 49 8.1 CMSIS ....................................................................................................................... 49 LPC13xx.h ........................................................................................................................ 49 core_cm3.c i core_cm3.h ............................................................................................... 50 startup_lpc13.c ................................................................................................................. 51 system_lpc13xx.c i system_lpc13xx.h ........................................................................... 51 8.2 Struktura ugraene programske podrke ................................................................... 51 8.3 Upravljanje AD pretvornikom ................................................................................... 56 8.4 Pristup FLASH memoriji........................................................................................... 57 itanje stranice iz memorije ............................................................................................. 58 Pisanje stranice u memoriju ............................................................................................. 61 Brisanje bloka ................................................................................................................... 64 itanje statusnog registra ................................................................................................. 66 8.5 Slanje podataka preko Bluetooth veze....................................................................... 67 9 Rezultati ........................................................................................................................... 69 10 Zakljuak .......................................................................................................................... 71Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

3

Literatura .................................................................................................................................. 72 Saetak ................................................................................................................................. 73 Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala .................... 73 Summary .............................................................................................................................. 73 3-channel electrocardiograph with memory and wireless data transfer .......................... 73 A. Privitak: Tehnika dokumentacija.................................................................................... 74 A.1 Elektrika shema........................................................................................................ 74 A.2 Poloajni nacrt ........................................................................................................... 78 A.3 Tiskana ploica .......................................................................................................... 80

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

4

Popis slikaSlika 1. Blok shema ureaja .................................................................................................... 9 Slika 2. Poloaj elektroda za mjerenje standardnih Einthovenovih odvoda ......................... 10 Slika 3. Model za opisivanje smetnji pri mjerenju EKG signala .......................................... 11 Slika 4. Izvedba sklopa za pogon desne noge ....................................................................... 16 Slika 5. Shema instrumentacijskog pojaala INA333 ........................................................... 17 Slika 6. Shema ulaznog stupnja pojaala .............................................................................. 19 Slika 7. Virtualna masa pojaala ........................................................................................... 20 Slika 8. Shema drugog stupnja pojaala................................................................................ 21 Slika 9. Amplitudno frekvencijska i fazno frekvencijska karakteristika niskopropusnog filtra .................................................................................................................................................. 22 Slika 10. Shema niskopropusnog filtra ................................................................................. 23 Slika 11. Prikljuci Hynix FLASH memorije ....................................................................... 27 Slika 12. Dimenzije modula WT-12 ..................................................................................... 30 Slika 13. Blok shema porodice mikrokontrolera LPC13xx .................................................. 35 Slika 14. Blok shema jedinice za generiranje clock signala porodice mikrokontrolera LPC13xx................................................................................................................................... 37 Slika 15. Potronja mikrokontrolera LPC1313 u normalnom nainu rada u ovisnosti o temperaturi i frekvenciji sistemskog clock signala .................................................................. 38 Slika 16. Potronja mikrokontrolera LPC1313 u sleep nainu rada u ovisnosti o temperaturi i frekvenciji sistemskog clock signala ...................................................................................... 39 Slika 17. Potronja mikrokontrolera LPC1313 u deep-sleep nainu rada u ovisnosti o temperaturi i naponu napajanja ................................................................................................ 40 Slika 18. Potronja mikrokontrolera LPC1313 u deep power-down nainu rada u ovisnosti o temperaturi i naponu napajanja ................................................................................................ 41 Slika 19. Shema punjaa li-ion akumulatora ......................................................................... 47 Slika 20. Blok-dijagram prekidne rutine vremenskog sklopa SysTick .................................. 53 Slika 21. Blok-dijagram funkcije main()............................................................................... 55 Slika 22. Tijek itanja jedne stranice iz FLASH memorije................................................... 58Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

5

Slika 23. Tijek pisanja stranice u FLASH memoriju ............................................................ 61 Slika 24. Vremenski tijek brisanja bloka FLASH memorije ................................................ 64 Slika 25. Izgled gotovog elektrokardiografa ......................................................................... 69 Slika 26. - Primjer EKG signala snimljenog razvijenim elektrokardiografom (bez digitalnog filtriranja) ................................................................................................................................. 70 Slika 27. Primjer EKG signala snimljenog razvijenim elektrokardiografom (uz digitalno filtriranje) ................................................................................................................................. 70 Slika 28. Shema napajanja .................................................................................................... 75 Slika 29. Shema analognog dijela ......................................................................................... 76 Slika 30. Shema digitalnog dijela .......................................................................................... 77 Slika 31. Poloajni nacrt gornjeg sloja .................................................................................. 78 Slika 32. Poloajni nacrt donjeg sloja ................................................................................... 79 Slika 33. Izgled gornjeg sloja tiskane ploice ....................................................................... 80 Slika 34. Izgled donjeg sloja tiskane ploice ........................................................................ 81

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

6

1

Uvod

1 UvodElektrokardiogram (EKG) je bioelektriki signal nastao aktivnou srca. Predstavlja najbolji nain dijagnosticiranja abnormalnosti u sranom ritmu i njihovog mjerenja. Zbog toga je mogunost dugotrajnijeg snimanja EKG-a od neizmjerne vanosti u kardiolokoj dijagnostici i praenju stanja pacijenta. Minijaturizacija elektronikih sklopova omoguava izradu elektrokardiografa (ureaja za mjerenje i prikaz EKG-a) koji su malih dimenzija, prenosivi i lagani. Zbog takvih karakteristika ureaja mogue je snimati EKG i izvan bolnikog okruenja, tijekom svakodnevnih aktivnosti pacijenta. Cilj ovog rada je projektirati i izraditi upravo takav ureaj. On mora biti malen, baterijski napajan, s vlastitom memorijom za pohranu signala. Osim toga, mora imati mogunost beine komunikacije (putem Bluetooth veze) s drugim ureajima, poput osobnog raunala ili mobitela, koji mogu pohranjeni signal prikazati. U sklopu rada opisane su komponente prijenosnog elektrokardiografa, zahtjevi na njihove karakteristike te njihova sklopovska realizacija. Opisana je i ugraena programska podrka koja obavlja zadatke uzorkovanja i spremanja signala kao i beinu komunikaciju s drugim ureajem. Opisani ureaj je i realiziran na dvoslojnoj tiskanoj ploici smjetenoj u kutiju dimenzija 88x63x27 mm. Izraena je i Matlab skripta koja uspostavlja beinu vezu s ureajem u svrhu preuzimanja podataka i njihovog prijenosa na raunalo. Rezultat izvoenja skripte je grafiki prikaz uzorkovanih signala ime je potvrena ispravnost ureaja.

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

7

2

Opa arhitektura sustava

2 Opa arhitektura ureajaZa beini prijenosni elektrokardiograf definirana je sljedea lista zahtjeva: prenosivost autonomno napajanje trokanalno mjerenje (Einthoven-ovi odvodi) uz pojaanje 1000, donju graninu frekvenciju 2Hz i gornju graninu frekvenciju 150Hz 8-bitna razluivost uzorkovanja memoriranje barem jedne minute signala (to vie, to bolje) prijenos preko Bluetooth veze na raunalo

Osnovna znaajka ureaja je njegova prenosivost to znai da je nuno napajati ga baterijskim napajanjem. Kod baterijski napajanih ureaja kritina karakteristika je potronja, to e utjecati na izbor svih komponenata. Osim toga bit e potrebno zadrati to manje dimenzije ureaja odnosno to manji broj komponenata. Mala potrebna razluivost signala (8 bita) otvara mogunost koritenja mikrokontrolera s ugraenim Analognodigitalnim (AD) pretvornikom, ime se tedi na broju komponenata (nema potrebe za vanjskim AD pretvornikom). to se tie memoriranja, ve u prvotnom razmiljanju o konceptu ureaja postalo je jasno da memorija tipinog mikrokontrolera nee biti dovoljna za pohranjivanje signala. Uz jedan bajt po uzorku, 500-tinjak uzoraka u sekundi na tri kanala ispada da je potrebno oko 90kB memorije za jednu minutu signala. Takva koliina memorije je uglavnom izvan domaaja veine mikrokontrolera niske cijene i niske potronje. Osim toga, mikrokontroleri koji i imaju dovoljno memorije, imaju je u obliku radne memorije koja ne moe zadrati podatke bez prisutnog napajanja to moe biti nepraktino za ovakav ureaj. Prema tome, trebao bi sadravati neki oblik trajne memorije. Koliina takve memorije mogla bi biti i vea nego to je potrebno za minimalno traenih jednu minutu signala, ime bi se funkcionalnost ureaja poveala. Sukladno prethodnom razmatranju ureaj e sadravati sljedee cjeline: analogni dio (pojaala i filtri EKG signala)

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

8

2

Opa arhitektura sustava

mikrokontroler (uzorkovanje signala, upravljanje memorijom i komunikacijom) bluetooth modul (komunikacija s raunalom) memorija napajanje

Odnos pojedinih dijelova ureaja prikazan je na slici 1.

MikrokontrolerElektrode Analogna obrada 3 ADC

Memorija

Bluetooth

NapajanjeRaunalo

Slika 1. Blok shema ureaja U narednim poglavljima bit e detaljnije opisana izvedba svakog od navedenih dijelova.

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

9

3

Analogni dio ureaja

3 Analogni dio ureaja3.1 EKG signal i smetnjeZadaa analognog dijela ureaja je izdvojiti i pojaati EKG signal. Prije nego to se pristupi opisu konstruiranog pojaala, potrebno je opisati sam EKG signal i smetnje koje oteavaju njegovo pojaavanje. EKG signal je male amplitude (reda veliine nekoliko mV) i u ovom sluaju se mjeri sa standardnih Einthovenovih odvoda (lijeva i desna ruka te lijeva noga). Signal se mjeri diferencijalno izmeu dvije elektrode. Na tri elektrode mogue je izabrati tri takva para elektroda, pa zato postoje tri Einthovenova odvoda. Raspored elektroda u tom sluaju prikazan je na slici 2. Zeleno oznaena elektroda na slici je referentna i spaja se na masu pojaala.

Slika 2. Poloaj elektroda za mjerenje standardnih Einthovenovih odvoda EKG signal potrebno je pojaati oko 1000 puta da bi mu se amplituda dovela na razinu volta tj. unutar dinamikog podruja AD pretvornika. Tu zadau oteava prisutnost razliitih smetnji. Najee se radi o smetnjama nastalim zbog blizine vodova gradske mree koje se prenose elektrostatskim putem. Osim toga prisutne su i magnetski inducirane smetnje te napon polarizacije elektroda. Prijenos smetnji elektrostatskim putem bit e opisan na modelu mjernog sustava sa slike 3 (Metting van Rijn, 1990). Model opisuje mjerenje jednog kanala EKG-a uz referentnu elektrodu koja se kod mjerenja EKG-a tipino postavlja na desnu nogu. Mogue je mjeriti i bez referentne elektrode, ali takvoKreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

10

3

Analogni dio ureaja

mjerenje donosi drugaiju problematiku koja ovdje nee biti obraena. Impedancije Zea, Zeb i Zref predstavljaju impedancije pojedinih elektroda. Kapacitet Ctj opisuje ukupan utjecaj svih parazitnih kapaciteta izmeu tijela i zemlje dok kapacitet Cm opisuje ukupan utjecaj svih parazitnih kapaciteta izmeu tijela i vodova gradske mree. Tipini iznosi su 300pF za Ctj i 3pF za Cm (Metting van Rijn, 1990), ali treba raunati na to da njihove vrijednosti mogu varirati i za red veliine. Kapaciteti Cka i Ckb opisuju parazitne kapacitete mjernih kablova prema vodovima gradske mree. Kapaciteti Cnap i Cizo opisuju parazitne kapacitete izmeu zajednike plivajue toke pojaala i vodova gradske mree te izmeu zajednike plivajue toke i zemlje. Impedancije Zul,a i Zul,b predstavljaju ulazne impedancije pojaala.

Slika 3. Model za opisivanje smetnji pri mjerenju EKG signala

Uz opisanom modelu mjernog sustava mogu se izdvojiti tri izvora elektrostatskih smetnji:Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

11

3

Analogni dio ureaja

smetnje zbog struja koje teku kroz tijelo smetnje zbog struja koje teku u pojaalo smetnje zbog struja koje teku u mjerne kablove

Smetnje zbog struja koje teku kroz tijelo Kroz parazitne kapacitete Cm i Ctj tee struja i1 izmeu vodova gradske mree i zemlje. Kada se na pacijenta spoji pojaalo dio struje e se zatvoriti prema zemlji i preko impedancije zajednike elektrode Zref kroz parazitni kapacitet Cizo. Ta struja e na impedanciji Zref uzrokovati razliku potencijala izmeu srednjeg potencijala tijela i plivajue referentne toke pojaala. Ta e se razlika efektivno vidjeti kao istofazna naponska smetnja na ulazu pojaala. Iznos tog napona bit e (Krois, 2001):||

(1)

Smetnje zbog struja koje teku u pojaalo Kroz kapacitete Cnap i Cizo tee struja i2 izmeu vodova gradske mree i zemlje. Dok je pacijent spojen na pojaalo struja smetnje se prema zemlji ne zatvara samo kroz Cizo nego i preko impedancije referentne elektrode kroz paralelnu kombinaciju kapaciteta Ctj i Cm. Ta struja e kao i u prethodnom sluaju izazvati pad napona na impedanciji referentne elektrode koji e se na ulazu pojaala vidjeti kao istofazna naponska smetnja. Iznos tog napona bit e (Krois, 2001): (2) Valja primijetiti da e se zbog razliitih smjerova struja naponi dviju opisanih oduzimati za dani sluaj (ako je izvor smetnji samo gradska mrea), ali to openito ne mora biti tako pa se za najgori sluaj utjecaj ovih dviju smetnji treba zbrojiti (Krois, 2001). Smetnje zbog struja koje teku u mjerne kablove Dva prethodno opisana naina unosa smetnji u mjerenje rezultiraju istofaznim naponom smetnje na ulazu pojaala. Takva smetnja ne predstavlja velik problem ukoliko se koristi pojaalo s dovoljno visokim faktorom potiskivanja istofaznog signala (engl. common mode rejection ratio - CMRR), npr. instrumentacijsko pojaalo. S druge strane, smetnje izazvaneKreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

12

3

Analogni dio ureaja

strujama koje teku u mjerne kablove rezultirat e diferencijalnim naponima smetnje na ulazu pojaala i na taj nain imati veliki utjecaj na mjerenje EKG signala. Struje ia i ib koje teku preko parazitnih kapaciteta Cka i Ckb zatvarat e se prema zemlji kroz elektrode, tijelo, parazitni kapacitet Ciso te serijsku kombinaciju impedancije referentne elektrode Zref i parazitnog kapaciteta Ctj. Poto se te dvije struje po iznosu uglavnom razlikuju (zbog razliitih parazitnih kapaciteta kablova prema vodovima gradske mree) i poto se impedancije elektroda razlikuju, smetnja e se na pojaalu vidjeti kao diferencijalni napon na slici 3 oznaen sa Uab. Iznos ovog napona smetnje dan je izrazom (Metting van Rijn, 1990):

,gdje je 1/2 i 1/2

(3)

Uzmimo npr. srednju struju kroz kablove iznosa 10nA, srednju impedanciju elektroda iznosa 20k i relativnu razliku u strujama kroz kablove i impedancijama elektroda od

50%. U tom e sluaju iznos diferencijalne smetnje na ulazu u pojaalo iznositi 200Vpp (Metting van Rijn, 1990), to je samo nekoliko puta manje od korisnog signala (EKG). Poto je ova smetnja diferencijalna, bit e pojaana zajedno s korisnim signalom. Iz izraza (3) vidljivo je da e za smanjenje ove smetnje biti potrebno to vie ujednaiti impedancije elektroda i parazitne kapacitete kablova prema vodovima gradske mree. Smanjenje razlika izmeu tih kapaciteta openito se moe postii tako da se mjerni kablovi priblie jedan drugome to je vie mogue. Osim toga smetnja se moe smanjiti i udaljavanjem cijelog mjernog sustava i pacijenta od vodova gradske mree, ali to nije uvijek praktino. Magnetski inducirane smetnje Magnetski inducirane smetnje nastaju na principu elektromagnetske indukcije napona na vodljivoj petlji. Mjerni kablovi tvore petlju o ijoj povrini ovisi amplituda smetnji. Smetnje se mogu smanjiti smanjivanjem povrine petlje (npr. uplitanjem kablova), udaljavanjem od izvora smetnji te oklapanjem pacijenta ili izvora smetnji slojem materijala s visokom magnetskom permeabilnou (mu-metal).

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

13

3

Analogni dio ureaja

Polarizacijski napon elektroda Razlike izmeu polarizacijskih napona pojedinih elektroda mogu dosei i do 200mV. Taj napon se na ulazu pojaala vidi kao diferencijalni i bit e pojaan zajedno s korisnim signalom. Polarizacijski napon elektroda postavlja bitno ogranienje na doputeno pojaanje ulaznog diferencijalnog stupnja pojaala jer ga ve uz mala pojaanja moe odvesti u zasienje. Poto polarizacijski napon predstavlja DC smetnju, bit e ga mogue ukloniti visokopropusnim filtrom. Filtar se moe smjestiti na razliita mjesta unutar pojaala o emu e biti rijei kasnije. Utjecaj istofaznog napona Ve je pokazano da se putem razliitih mehanizama na ulazu pojaala moe pojaviti istofazni napon. Postoje dva naina na koje istofazni napon moe postati smetnja. Prvi nain je nedovoljnim potiskivanjem istofaznog napona u pojaalu. Meutim taj mehanizam uglavnom nije problematian poto dananja diferencijalna pojaala nerijetko imaju faktore potiskivanja istofaznog signala preko 100dB. Drugi nain na koji istofazni napon moe postati smetnja je pretvaranje istofaznog napona u diferencijalni zbog razlika u impedancijama elektroda i u ulaznim impedancijama. Ovaj efekt naziva se efektom naponskog djelitelja. Amplituda diferencijalnog napona smetnje koji nastaje na ovaj nain, na modelu sa slike 3, iznosi:, , , ,

(4)

Uz pretpostavku da su ulazne impedancije puno vee od impedancija elektroda, izraz (4) se moe zapisati kao (Metting van Rijn, 1990):

,gdje je 1/2 i 1/2, ,

(5)

.

Iz izraza (5) vidljivo je da e razina diferencijalne smetnje proizale iz istofaznog napona moe smanjiti na sljedee naine: poveanjem omjera iznosa ulaznih impedancija naspram impedancija elektroda smanjenjem razlika meu impedancijama elektroda 14

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

3

Analogni dio ureaja

smanjenjem razlika meu ulaznim impedancijama

Poveanje omjera ulaznih impedancija i impedancija elektroda moe se postii koritenjem pojaala s velikom ulaznom impedancijom. Osim toga, pripremom koe pacijenta uz koritenje vodljivog gela mogu se impedancije elektroda smanjiti i ujednaiti. Razlike u ulaznim impedancijama uglavnom su posljedica razliitih parazitnih kapaciteta na ulazima. Razlike se mogu smanjiti paljivim dizajnom ulaznog stupnja i koritenjem oklopljenih kablova iste duljine (ako se koriste oklopljeni kablovi). Osim smanjivanja efekta naponskog djelitelja mogue je i poduzeti korake da se smanji amplituda istofaznog napona, a time i amplituda diferencijalnog napona koji iz njega nastaje putem efekta naponskog djelitelja. Poto istofazni napon na ulazu pojaala nastaje zbog parazitnih kapaciteta tijela i pojaala prema vodovima gradske mree i zemlji, moe ga se smanjiti smanjivanjem iznosa tih kapaciteta. Koritenjem baterijski napajanog plivajueg pojaala (kao to se koristi u ovom radu) utjecaj struja koje teku u pojaalo postaje zanemariv jer je iznos kapaciteta Cnap za takvo pojaalo manji od 1pF (Metting van Rijn, 1990). U tom sluaju parazitni kapaciteti tijela prema vodovima gradske mree tipino generiraju oko 1mV istofaznog napona to ne predstavlja velik problem. Ako se smanjivanjem parazitnih kapaciteta ne moe postii dovoljno mala razina smetnji, istofazni napon smetnje moe se smanjiti na aktivan nain, koritenjem sklopa za pogon desne noge. Radi se o integratoru u petlji negativne povratne veze koja nastoji odrati to manju razliku izmeu srednjeg potencijala tijela i referentne toke pojaala. Slika 4 prikazuje izvedbu sklopa za pogon desne noge ako se u ulaznom stupnju koristi instrumentacijsko pojaalo izvedeno s tri operacijska pojaala. Potiskivanje istofaznog napona koje se postie ovim sklopom iznosi izmeu 10 i 50 dB (Metting van Rijn, 1990). Pri projektiranju ovakvog sklopa treba pronai optimum izmeu pojaanja petlje povratne veze i stabilnosti pojaala. Vee pojaanje donosi bolje praenje potencijala referentne toke pojaala, ali sklop moe postati nestabilan.

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

15

3

Analogni dio ureaja

Slika 4. Izvedba sklopa za pogon desne noge

3.2 Izvedba pojaalaUlazni stupanj i realizacija donje granine frekvencije Kao to je ve reeno, za ulazni stupanj je potrebno koristiti diferencijalno pojaalo s dovoljno velikim faktorom potiskivanja istofaznog signala (npr. instrumentacijsko pojaalo). Odlueno je da e se koristiti monolitno instrumentacijsko pojaalo zbog kompaktnosti i male potronje koju donosi monolitna izvedba. Na njega su postavljeni sljedei zahtjevi: to vei faktor potiskivanja istofaznog signala na frekvencijama oko 10Hz to vea ulazna impedancija to manja potronja mogunost rada s malim naponom napajanja (zbog baterijskog napajanja, poeljno 3V ili manje)

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

16

3

Analogni dio ureaja

Odabrano je pojaalo INA333 proizvoaa Texas Instruments. Radi se o izvedbi instrumentacijskog pojaala s tri operacijska pojaala (slika 5) u MSOP-8 kuitu. Osim samog pojaala na istom ipu je izvedena i zatita od RF smetnji u vidu pasivnog RC-filtra granine frekvencije 8MHz na svakom od ulaza. Takva zatita je korisna kada se uzme u obzir da ureaj moe biti u blizini razne komunikacijske opreme, prvenstveno mobitela.

Slika 5. Shema instrumentacijskog pojaala INA333 Karakteristike pojaala INA333 bitne za razvijani ureaj su: minimalni CMRR iznosa 80dB od 0 do 60Hz pri pojaanju 1 ulazna impedancija iznosa 100G ||3pF napon napajanja 1.8V do 5.5V maksimalna potronja 80A pakirano u kuite MSOP-8 malih dimenzija

Ve je bilo reeno da e bitno ogranienje pri dizajnu ulaznog stupnja predstavljati razlika izmeu polarizacijskih napona pojedinih elektroda koja se na ulazu pojaala pojavljuje kao istosmjerna diferencijalna smetnja iznosa do 200mV. Tu smetnju e biti potrebno uklonitiKreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

17

3

Analogni dio ureaja

visokopropusni filtrom jer bi inae mogla odvesti daljnje stupnjeve pojaala u zasienje. Pritom je visokopropusni filtar mogue smjestiti na dva naina u odnosu na instrumentacijsko pojaalo. Prvi nain je smjetaj visokopropusnog filtra prije instrumentacijskog pojaala. Takvo rjeenje podrazumijeva po jedan visokopropusni CR lan za svaki ulaz pojaala. Prednost ovakvog pristupa je uklanjanje polarizacijskog napona prije instrumentacijskog pojaala, tako da ono moe imati veliko pojaanje bez da ode u zasienje. Time instrumentacijsko pojaalo ostvaruje vei faktor potiskivanja istofaznog signala. Osim toga pojaalo u narednom stupnju moe imati vei um (jeftinije pojaalo) jer je signal puno vee amplitude nego na ulaznom stupnju. Ovakav pristup ima i dva ozbiljna nedostatka. Prvi nedostatak je znaajno smanjenje ulazne impedancije pojaala ime se naruava njegov faktor potiskivanja istofaznog signala. Otpornici koji se mogu pronai u uobiajenim izvedbama su iznosa do nekoliko M to je nekoliko redova veliine manje od ulazne

impedancije pojaala INA333 (100G ||3pF). Drugi nedostatak je nepostojanje relativno velikih iznosa otpornika i kondenzatora, kakvi su potrebni za nisku donju graninu frekvenciju, u dovoljno uskim tolerancijama. Tolerancije otpornika i kondenzatora visokopropusnog CR lana unose dodatno razgoenje putova signala ime se pojaava prije opisani efekt naponskog djelitelja tj. vie istofazne smetnje se na ulazu pojaala pojavljuje kao diferencijalna smetnja. Drugi nain smjetaja je pozicioniranje CR lana nakon instrumentacijskog pojaala, prije drugog stupnja pojaala. Glavna prednost ovakvog pristupa je ta to CR lan ne utjee na faktor potiskivanja pojaala. Sada je mogue uzeti kondenzatore i otpornike irokih tolerancija (npr. 5% za otpornik i 20% za kondenzator), to pojednostavljuje izbor. Nedostatak ovog pristupa je postojanje velikog (do 200mV) diferencijalnog napona polarizacije elektroda na ulazu instrumentacijskog pojaala zbog ega ulazni stupanj ne moe imati veliko pojaanje. Uz pretpostavku baterijskog napajanja moe se pretpostaviti da e maksimalni hod izlaznog napona instrumentacijskog pojaala biti oko +/-1V to znai da je maksimalno pojaanje 5. Zbog toga e signal na drugi stupanj stii s manjom amplitudom nego u prvom nainu zbog ega e i pojaala drugog stupnja morati biti kvalitetnija (s manje uma).

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

18

3

Analogni dio ureaja

Zbog tekoe nabave i tekoe uparivanja otpornika i kondenzatora izabran je drugi nain tj. pozicioniranje visokopropusnog CR lana nakon instrumentacijskog pojaala. CR lan realiziran je otpornikom iznosa otpora 470k i tolerancije 1% te kondenzatorom iznosa

kapaciteta 680nF i tolerancije 10% ime je donja granina frekvencija postavljena na 2Hz. Shema kompletnog ulaznog stupnja pojaala dana je na slici 6.

Slika 6. Shema ulaznog stupnja pojaala Toka koja se nalazi izmeu dva otpornika Rg spaja se na naponsko slijedilo koje dalje prenosi signal na sklop za pogon desne noge. Toka iza visokopropusnog CR lana vodi na sljedei stupanj pojaala. Referentna toka (Ref) predstavlja virtualnu masu pojaala poto je napajanje unipolarno. Virtualna masa dobiva se kombinacijom otpornikog dijelila i naponskog slijedila, kako prikazuje slika 7.

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

19

3

Analogni dio ureaja

Slika 7. Virtualna masa pojaala

Drugi stupanj pojaala Drugi stupanj pojaala izveden je operacijskim pojaalom u konfiguraciji neinvertirajueg pojaala. Pojaanje drugog stupnja je 20 puta. U drugom stupnju pojaala koristi se operacijsko pojaalo AD8619, proizvoaa Analog Devices. U jednom ipu su pakirana po etiri operacijska pojaala ime se tedi na prostoru. Jedno pojaalo koristi se za drugi stupanj pojaanja, jedno se koristi za naponsko slijedilo u sklopu za pogon desne noge i preostala dva koriste se u filtru koji slijedi nakon drugog stupnja pojaanja. Operacijsko pojaalo AS8619 odabrano je zbog sljedeih karakteristika: mala struja pomaka: maksimalno 110pA na rasponu -45C do +85C, tipino 1pA na 25C mala potronja: 50A po pojaalu napajanje od 1.8V do 5V male dimenzije: 4 pojaala u TSSOP-14 kuitu Rail-to-Rail ulaz i izlaz

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

20

3

Analogni dio ureaja

Za struju pomaka je bitno da je malog iznosa jer se zatvara kroz otpornik visokopropusnog CR lana koji prethodi drugom stupnju pojaanja i na taj nain stvara napon pomaka na ulazu. U najgorem sluaju e, uz koritenje pojaala AD819, taj napon pomaka iznositi 110 470 51.7 . Taj napon se moe zanemariti naspram napona pomaka

pojaala koji iznosi 2.2mV u najgorem sluaju. Taj napon pomaka bit e pojaan 20 puta te e na izlazu drugog stupnja iznositi u najgorem sluaju oko 45mV. Poto e trei stupanj (filtar s pojaanjem) morati pojaati signal jo desetak puta da bi ukupno pojaanje bilo 1000, napon pomaka pojaala drugog stupnja bi na izlazu filtra mogao dosei 450mV to je neprihvatljivo. Zbog toga je na izlaz drugog stupnja dodan visokopropusni CR lan kao i na izlazu instrumentacijskog pojaala. Shema drugog stupnja pojaala dana je na slici 8. Izlaz visokopropusnog lana sa slike 8 spojen je na ulaz treeg stupnja pojaala.

Slika 8. Shema drugog stupnja pojaala Realizacija gornje granine frekvencije i trei stupanj pojaanja Trei stupanj pojaala obavlja dvije funkcije: definira gornju graninu frekvenciju pojaala (150Hz) i pojaava signal 10 puta. Filtar je dizajniran koristei Butterworthovu

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

21

3

Analogni dio ureaja

aproksimaciju idealne prijenosne funkcije uz uvjet da filtar bude 4-tog reda (da se koriste dva operacijska pojaala). Filtar je projektiran pomou programskog alata FilterLab2.0. Amplitudna i fazna frekvencijska karakteristika prikazane su na slici 9.

Slika 9. Amplitudno frekvencijska i fazno frekvencijska karakteristika niskopropusnog filtra

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

22

3

Analogni dio ureaja

Shema filtra prikazana je na slici 10. Izlaz filtra spojen je na AD pretvornik mikrokontrolera.

Slika 10. Shema niskopropusnog filtra

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

23

4

Memorija

4 Memorija4.1 Izbor vrste memorijeVe je reeno da za minutu EKG signala ureaj treba imati oko 90kB memorije. Poto na tritu postoji vie razliitih tipova memorije, potrebno je odabrati onu koja najbolje zadovoljava potrebe ureaja. Smjernice u odabiru su sljedee: minimalno 90kB tj. minimalno 720kb kapaciteta (zapravo 1 Mb jer je to prvi vei kapacitet od 720kb, a u kojem se memorije proizvode), to vie to bolje poeljna je to manja potronja vrlo je poeljno da memorija moe zadrati podatke bez prisustva napajanja brzina upisa nije vana poto se upisuje svega 1.5kB u sekundi nije previe vano pie li se i ita iz memorije bajt po bajt ili blok po blok jer je pristup podacima uvijek sekvencijalan (uzorci signala se itaju i piu redom) poeljna je to manja cijena

DRAM memorija Tipino se koristi kao radna memorija u sustavu pa svojim karakteristikama vjerojatno najmanje od svih odgovara prije opisanoj primjeni. Odlikuje ju velika brzina pisanja/itanja (koja za ovaj ureaj nije bitna), ali i velika potronja do nekoliko stotina mA. Osim toga, sadraj memorije je potrebno periodiki osvjeavati da bi se podaci odrali. Prema tome, jasno je da bez napajanja ne moe zadrati podatke. Svojim velikim kapacitetom (256Mb na vie po ipu) bi itekako odgovarala, ali iz navedenih nedostataka jasno je da koritenje DRAM-a u ovakve svrhe nema smisla. SRAM memorija Od DRAM memorije se razlikuje u tome to ju nije potrebno osvjeavati. Osim toga brzina pristupa je manja, ali jo uvijek viestruko vea od potrebne. Potronja je prihvatljivih nekoliko mA pri pristupu i svega nekoliko A u periodima neaktivnosti. Kapacitet od desetak Mb je standardno dobavljiv to bi zadovoljilo potrebe. Meutim glavni nedostatak

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

24

4

Memorija

jo uvijek ostaje nemogunost zadravanja podataka bez prisustva napajanja, jer je SRAM, kao i DRAM, ipak zamiljen kao radna memorija, a ne za dugotrajniju pohranu podataka. EEPROM memorija EEPROM (engl. Electrically Erasable Programmable Read-Only Memory) memoriju odlikuje vrlo mala potronja od nekoliko stotina A pri pristupu i nekoliko stotina nA u neaktivnom periodu ime dobro odgovara baterijski napajanom ureaju. Brzina pristupa (naroito upisa) je mnogo manja nego kod SRAM/DRAM memorija, ali zadovoljava potrebe ureaja (premda relativno tijesno). Lako dobavljive izvedbe su kapaciteta do 1Mb to je dovoljno za neto vie od minute signala. Za razliku od SRAM/DRAM memorija broj upisa u EEPROM je ogranien na 1 do 10 milijuna upisa, ovisno o proizvoau. Ta injenica ne predstavlja velik problem poto ureaj ne koristi memoriju intenzivno nego samo za pohranu signala. Prema tome, ureaj bi mogao nekoliko milijuna puta obaviti svoju funkciju to je vie nego dovoljno. Velika prednost u odnosu na SRAM/DRAM memorije je zadravanje podataka bez prisustva napajanja. FRAM memorija FRAM (engl. Ferroelectric Random Access Memory) je kapacitetom i potronjom slina EEPROM memoriji. Brzina pristupa je puno vea u odnosu na EEPROM memoriju. Broj upisa je ogranien, ali puno vei nego kod EEPROM memorije do 1012 puta to je praktiki neogranieno u veini primjena. Bolje performanse dolaze uz veu cijenu koja nekoliko puta via u odnosu na EEPROM. Za ovdje promatrani ureaj koritenje FRAM-a u odnosu na EEPROM ne bi donijelo nikakve znaajne prednosti, samo bi povealo cijenu. NAND FLASH memorija FLASH memorija kapacitetom nadaleko premauje dosad opisane tipove memorije. Lako su dobavljivi ipovi sa kapacitetom od 512Mb za cijenu za koju bi se moglo dobiti tek 256kb FRAM-a ili nekoliko Mb EEPROM-a. Brzina pristupa je vie nego dovoljna za potrebe ureaja. 1,5kB podataka koliko treba spremiti svake sekunde moe se upisati u FLASH memoriju za nekoliko ms. Zbog toga memorija veinu vremena moe provesti u standby modu pritom troei 50-ak A struje. Potronja tijekom pisanja u memoriju (nekoliko desetaka mA) nije toliko bitna jer bi razvijani sklop u ovakvu memoriju pisaoKreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

25

4

Memorija

manje od 1% vremena. Nedostatak FLASH memorije je mogunost pristupa samo blokovima podataka, a ne bajt po bajt. No ta injenica ne predstavlja problem opisanom ureaju poto se podaci zapisuju sekvencijalno pa ih nije teko podijeliti u blokove bilo koje veliine. Jo jedan od nedostataka FLASH memorije je mogunost kvarenja blokova tijekom rada sklopa zbog ega je potrebno u ugraenoj programskoj podrci predvidjeti mehanizam oznaavanja i preskakanja takvih blokova. Sve u svemu, FLASH memorija, uz odreene komplikacije u ugraenoj programskoj podrci, nudi drugim memorijama nedostinu koliinu prostora koja je dovoljna za 6 i vie sati signala. Uz toliko memorije ureaju se moe drastino poveati funkcionalnost jer se tada moe koristiti za dugotrajno praenje rada srca ili moe u memoriji drati vei broj zapisa (a ne samo jedan) prije prebacivanja beinom vezom na raunalo. Prema tome FLASH memorija predstavlja dobar izbor za razvijani elektrokardiograf.

4.2 Hynix 512Mb NAND FLASHOdabrana memorija je H27US08121B-TPCB, kapaciteta 512Mb, proizvoaa Hynix Semiconductor. Memorija je podijeljena u 4096 blokova. Svaki blok podijeljen je u 32 stranice (engl. Page). Svaka stranica sadri 512 bajta osnovnog prostora i jo 16 bajta dodatnog prostora. Dodatni prostor se moe koristiti za iste namjene kao i glavni, ali ga se ipak najee koristi za potrebe kodova za ispravljanje greaka ili ujednaavanje broja pisanja po blokovima (engl. Wear Leveling). Memoriji se pristupa paralelno, sabirnicom irokom 8 bita tj. jedan bajt. Prikljuci memorije prikazani su na slici 11, a njihov je opis dan u tablici 1.

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

26

4

Memorija

Slika 11. Prikljuci Hynix FLASH memorije

Tablica 1. Ulszno/izlazni prikljuci Hynix FLASH memorije

PrikljuakIO0~IO7

OpisUlazno/izlazni prikljuci za prijenos podataka, adrese i instrukcija memoriji

CE

U niskom stanju selektira ip. Dok je CE u visokom stanju, ip je u standby nainu rada i troi 50-ak A

RE WE ALE CLE WP

Kontrolira ciklus itanja podataka iz memorije Kontrolira ciklus upisa podataka/adrese/instrukcija u memoriju Odreuju hoe li se vrijednost na podatkovnim prikljucima interpretirati kao adresa, podatak ili instrukcija Kontrolira sklopovsku zatitu protiv neeljenog pisanja i brisanja 27

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

4

Memorija

R/B VCC VSS

Izlazni prikljuak koji signalizira stanje ipa (slobodan/zauzet) Napajanje ipa Masa ipa

Najjednostavniji nain spajanja ovakve memorije na mikrokontroler je koritenje po jednog ulazno/izlaznog prikljuka ope namjene za svaki prikljuak memorije. Prema tome, bit e potrebno 15 slobodnih prikljuaka na mikrokontroleru. Ve je reeno da se odreeni broj blokova (do 2% od ukupnog broja) moe pokvariti tijekom koritenja memorije. No i potpuno novi ip moe sadravati neispravne blokove. Zbog toga svi NAND FLASH ipovi prolaze tvorniki test ispravnosti. Blokovi koji su ispravni se briu tako da se na svakom bajtu nalazi vrijednost 0xFF. Blokovi koji su neispravni se najee oznauju tako da na 517. bajtu nulte stranice (ili prve, ako nulta nije isprana) imaju neku vrijednost razliitu od 0xFF. Na taj nain se korisniku omoguuje da na novom ipu ispita ispravnost svih blokova, zabiljei one koji su neispravni i ne pristupa im vie.

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

28

5

Bluetooth veza

5 Bluetooth vezaCilj ovog rada nije opisivanje Bluetootha kao protokola komunikacije. Zbog toga e ovo poglavlje biti usmjereno ka opisivanju konkretne implementacije Bluetooth beine veze izmeu razvijanog ureaja i raunala ili nekog drugog Bluetooth kompatibilnog ureaja. Bluetooth protokol je vienamjenski i podrava vie razliitih naina koritenja. Zbog toga su definirani razliiti Bluetooth profili koji opisuju na koji nain dva ureaja trebaju komunicirati u odreenom scenariju primjene beine veze. Profili opisuju suelje izmeu dva ureaja na najvioj razini protokola. Da bi dva ureaja mogla komunicirati moraju podravati isti profil. Razvijani ureaj pronosit e jedan kontinuirani blok podataka bez posebnog formata koji sadrava prikupljene uzorke EKG signala. Ovakvoj primjeni najvie odgovara Bluetooth profil naziva Serial port profile (SPP). Ureaji koji podravaju ovaj profil vidjet e Bluetooth vezu kao virtualni serijski port (engl. Virtual COM Port VCP). Na taj nain Bluetooth veza se emulira kabelska RS232 veza. Ovakav nain komunikacije jednostavan je za implementaciju i sa strane mikrokontrolera i sa strane PC-a (ili drugog ureaja koji podrava Bluetooth i SPP). Za implementaciju Bluetooth SPP veze odabran je modul WT-12 proizvoaa Bluegiga Technologies. Radi se o modulu koji ovisno o izabranoj verziji ugraene programske podrke (engl. firmware) implementira dio ili cijeli Bluetooth protokol. Odabrana je iWRAP verzija ugraene programske podrke koje implementira cijeli Bluetooth protokol i podrava SPP. Implementacija protokola skrivena je od korisnika tako da se modulu pristupa pomou jednog od ponuenih suelja (USB, UART, PCM). Poto je odlueno da e se koristiti SPP, logino je modulu pristupati putem UART-a. Osim mikrokontrolera koji realizira programski dio protokola, modul sadri i svo ostalo sklopovlje potrebno za ostvarivanje Bluetooth veze (primopredajnik i antena). Zbog toga nema potrebe za eksternim komponentama to u kombinaciji s malim dimenzijama (slika 12) ine ovaj modul pogodnim za koritenje u prijenosnim ureajima.

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

29

5

Bluetooth veza

Slika 12. Dimenzije modula WT-12

iWRAP firmware radi u jednom od dva naina rada: podatkovnom ili komandnom. Inicijalno se modul nalazi u komandnom nainu rada u kojem je mogue upravljati njegovim radom aljui mu ASCII komande putem serijskog suelja. Raspoloivih komandi ima mnogo, ali nain koritenja Bluetooth veze u razvijanom ureaju je jednostavan pa e ih trebati samo nekoliko. Komande koje e se koristiti su sljedee: SET BT AUTH * {pin} Definira sigurnosnu zaporku (pin) koja mora biti poznata drugom ureaju prilikom uparivanja SET CONTROL BAUD {baud_rate},8{parity}{stop_bits} Mijenja postavke lokalnog UART suelja. Pritom baud_rate oznaava brzinu prijenosa podataka u bps, parity odreuje paritet (n nema pariteta, o odd, e - even), a stop_bits odreuje broj stop bitova (1 jedan stop bit, 2 dva stop bita). U podatkovnom nainu rada svi podaci poslani na UART se transparentno prosljeuju na Bluetooth vezu. Metode prelaska iz jednog u drugi nain opisuje tablica 2.Initial modeKreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

30

5

Bluetooth veza

Tablica 2. Metode prelaska izmeu komandnog i podatkovnog naina rada modula WT-12

Trenutni nain radaKomandni nain (bez aktivnih Bluetooth veza) Modul se nalazi u ovom nainu kad se ukljui. U ovom nainu se modulu mogu slati ASCII komande Podatkovni nain U ovom nainu rada podaci se transparentno alju s UART-a na Bluetooth vezu

Nain u koji se prelaziPodatkovni nain

Metoda prelaskaModul uspjeno inicira Bluetooth vezu s drugim ureajem pomou CALL komande. Drugi ureaj uspjeno inicira Bluetooth vezu s modulom.

Komandni nain

Slanje posebne sekvence (sekunda bez slanja komandi pa tri ASCII znaka + zaredom i na kraju opet sekunda bez slanja komandi). Prekid veze (veza prekinuta ili na inicijativu drugog ureaja ili zbog gubitka signala).

Komandni nain (postoje aktivne Bluetooth veze) U ovom nainu se modulu mogu slati ASCII komande

Podatkovni nain

Ili slanjem ve opisane posebne sekvence ili pomou SELECT komande.

Kao to je ve reeno, modul se inicijalno nalazi u komandnom nainu rada. Redoslijed dogaaja u uspostavi veze s raunalom e biti sljedei: 1. modul WT-12 se ukljuuje kada doe vrijeme da se uzorci signala prenesu na drugi ureaj

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

31

5

Bluetooth veza

2. modul je u komandnom nainu rada pa mu se alju komande kojima ga se konfigurira na eljeni nain 3. raunalo (ili neki drugi Bluetooth ureaj koji podrava SPP) pronalazi ureaj, uparuje se s njime i registrira ga kao VCP (Virtual COM Port) 4. Bluetooth veza je uspostavljena i svi podaci se transparentno alju izmeu VCP-a na raunalu i UART-a na modulu. Sada raunalo moe poslati komandu koja e preko UART-a modula stii na mikrokontroler i pokrenuti slanje podataka 5. mikrokontroler ita podatke iz FLASH memorije i alje ih preko UART-a modula na VCP raunala. 6. kada su poslani svi podaci mikrokontroler prebacuje modul u komandni nain rada i prekida Bluetooth vezu.

Potronja modula varira ovisno o tome to trenutno radi. Za razvijani ureaj bitni su iznosi potronje tijekom prijenosa podataka (za brzinu od 115200 kbps srednja vrijednost struje je 30-ak mA, a vrna 70mA) i minimalna potronja u periodima neaktivnosti od 400A. Potronja u periodima neaktivnosti je dosta visoka za baterijski napajan ureaj, osam puta vea od potronje jednog operacijskog pojaala i pet puta vea od potronje jednog instrumentacijskog pojaala. Bluetooth modul zapravo nema posla tijekom snimanja signala, nego tek kad snimanje zavri. Zbog toga bi bilo praktino osmisliti nain da se modul uope ni ne napaja sve dok snimanje ne zavri i ne doe vrijeme za prijenos podataka. O tome e biti govora u poglavlju o baterijskom napajanju.

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

32

6

Mikrokontroler

6 MikrokontrolerNajvaniji zahtjev postavljen na mikrokontroler je niska potronja energije. Procesna mo i nije toliko vana stavka jer mikrokontroler ne radi nikakve raunski intenzivne operacije. Ukupna lista zahtjeva postavljenih na mikrokontroler je sljedea: niska potronja barem 15 ulazno/izlaznih prikljuaka ope namjene za memoriju + jo 5 ili vie za druge namjene (tipke, LE diode i sl.) UART suelje za komunikaciju s Bluetooth modulom AD pretvornik razluivosti 8 bita ili vie, s tri ili vie kanala to manje dimenzije mogunost rada s malim naponom napajanja (zbog baterijskog napajanja, poeljno 3V ili manje) Prema navedenim zahtjevima i cijeni/dostupnosti razvojnog sustava odabrana je porodica LPC13xx porodica mikrokontrolera proizvoaa NXP Semiconductors. Porodica je temeljena na 32-bitnoj ARM Cortex-M3 arhitekturi koja je pogodna za koritenje u sklopovima niske potronje. Iz porodice je izabran mikrokontroler LPC1313. Njegove karakteristike bitne za razvijani ureaj su: niska potronja (bit e poblie opisana kasnije) do 40 ulazno/izlaznih prikljuaka ope namjene (broj ovisi o koritenim perifernim sklopovima na mikrokontroleru) UART suelje 8kB radne memorije napon napajanja od 2.0V do 3.6V 48-pinsko LQFP kuite malih dimenzija

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

33

6

Mikrokontroler

6.1 Arhitektura porodice mikrokontrolera LPC13xxPorodica je bazirana na ARM Cortex-M3 arhitekturi optimiranoj za nisku potronju. Slika 13 prikazuje blok shemu porodice mikrokontrolera LPC13xx. Blok oznaen s ARM CORTEX-M3 predstavlja jezgru mikrokontrolera. Jezgra komunicira s ostatkom mikrokontrolera preko AHB (engl Advanced High-Speed Bus) sabirnice. Na tu sabirnicu spojene su i memorije (programska memorija, radna memorija i boot ROM memorija), USB kontroler (nije na svim mikrokontrolerima iz porodice) i brzi periferni sklopovi. Kod porodice LPC13xx jedini brzi periferni sklop je kontroler ulazno/izlaznih prikljuaka ope namjene. Na AHB sabirnicu spojen je i most (engl. Bridge) prema APB (engl. Advanced Peripheral Bus) sabirnici. Na APB sabirnici nalaze se sporiji sklopovi od kojih e se koristiti AD pretvornik (ADC), serijsko suelje (UART) te blokovi za konfiguraciju ulazno/izlaznih prikljuaka i cjelokupnog mikrokontrolera (IOCONFIG i SYSTEM CONTROL).

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

34

6

Mikrokontroler

Slika 13. Blok shema porodice mikrokontrolera LPC13xx

6.2 Upravljanje potronjom mikrokontrolera LPC1313LPC1313 podrava irok raspon mehanizama za kontrolu potronje. U normalnom nainu rada mogue je mijenjati frekvenciju sistemskog (onog koji vodi jezgru i memorije) signala vremenskog voenja (engl. clock) i na taj nain smanjiti potronju na raun smanjivanja procesne moi. Osim toga mogue je i sprijeiti dovoenje clock signala pojedinim perifernim sklopovima na ipu koji se ne koriste i na taj nain ih zaustaviti uz smanjivanje potronje. Neki periferni sklopovi imaju i svoje djelitelje frekvencije clock signala kojimaKreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

35

6

Mikrokontroler

je mogue usporiti njihov rad i smanjiti im potronju. Slika 14 prikazuje blok shemu jedinice za generiranje clock signala (engl. Clock Generation Unit - CGU) na kojoj su vidljivi opisani mehanizmi upravljanja clock signalima. Osim toga vidljivi su i mogui izvori glavnog clock signala (iz kojeg se dijeljenjem dobiva sistemski clock signal i pojedini periferni clock signali), a to su: sistemski oscilator (koji koristi vanjski kristal kvarca) integrirani RC oscilator integrirani WATCHDOG oscilator sistemski oscilator pomnoen ili podijeljen pomou PLL-a (engl. Phase Locked Loop) integrirani RC oscilator pomnoen ili podijeljen pomou PLL-a

Od navedenih koristit e se integrirani RC oscilator zato to ne zahtjeva eksterne komponente. RC oscilator je manje precizan (odstupanje apsolutnog iznosa frekvencije od maksimalno 1%) od kvarcnog oscilatora (odstupanje apsolutnog iznosa frekvencije od nekoliko desetaka ppm), ali to ne predstavlja problem za ovu aplikaciju.

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

36

6

Mikrokontroler

Slika 14. Blok shema jedinice za generiranje clock signala porodice mikrokontrolera LPC13xx Osim upravljanja brzinom rada pojedinih dijelova mikrokontrolera, potronju je mogue smanjiti i prelaskom u neki od naina rada smanjene potronje. Naina rada, brojei i normalni ima etiri. Krivulja ovisnosti tipine potronje o temperaturi i frekvenciji u normalnom nainu rada dana je na slici 15. Krivulja prikazuje potronju kada se ne koriste pritezni otpornici ulazno/izlaznih prikljuaka, kada su svi periferni sklopovi ugaeni i uz napon napajanja iznosa 3.3V. Izvor sistemskog clock signala je sistemski oscilator s vanjskim kristalom kvarca proputen kroz PLL.

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

37

6

Mikrokontroler

Slika 15. Potronja mikrokontrolera LPC1313 u normalnom nainu rada u ovisnosti o temperaturi i frekvenciji sistemskog clock signala

Osim normalnog naina rada postoje i tri naina rada sa smanjenom potronjom. Prvi od njih naziva se sleep nain rada. U sleep nainu sistemski clock signal se ne dovodi do jezgre zbog ega mikrokontroler prestaje izvoditi instrukcije. Na taj nain se uklanja dinamika potronja procesora, memorija i sistemskih sabirnica. U sleep nainu rada registri procesora, registri perifernih sklopova i stanje radne memorije su ouvani. Logike razine izlaznih prikljuaka ostaju nepromijenjene. Pri ulasku u sleep nain rada mogue je odabrati periferne sklopove koji e nastaviti raditi, dok se svi ostali gase. Mikrokontroler ostaje u Sleep nainu rada sve dok se ne dogodi reset ili prekid od strane nekog perifernog sklopa. Krivulja ovisnosti tipine potronje o temperaturi i frekvenciji u sleep nainu rada dana je na slici 16. Krivulja prikazuje potronju kada se ne koriste pritezni otpornici ulazno/izlaznih prikljuaka, kada su svi periferni sklopovi ugaeni i uz napon napajanja iznosa 3.3V. Sistemski oscilator i PLL su aktivni. Vidljivo je da je potronja skoro duplo manja nego u normalnom nainu rada.

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

38

6

Mikrokontroler

Slika 16. Potronja mikrokontrolera LPC1313 u sleep nainu rada u ovisnosti o temperaturi i frekvenciji sistemskog clock signala

Drugi nain rada smanjene potronje naziva se deep-sleep nain. Za razliku od sleep naina rada u ovom nainu mogue je ugasiti i oscilatore i PLL sklopove ime se potronja uvelike smanjuje. Razlika je i u tome to se iz deep-sleep naina rada mikrokontroler moe osim na prekide perifernih sklopova probuditi i na pojavu brida na ulaznim prikljucima. Kao i u sleep nainu rada registri procesora, registri perifernih sklopova i stanje radne memorije su ouvani. Logike razine izlaznih prikljuaka takoer ostaju nepromijenjene. Krivulja na slici 17. prikazuje ovisnost tipine potronje u deep-sleep nainu rada o temperaturi i naponu napajanja. Krivulja prikazuje potronju kada su ugaeni svi oscilatori i PLL sklopovi te svi periferni sklopovi. Vidljivo je da je potronja mnogo manja nego u normalnom i sleep nainu.

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

39

6

Mikrokontroler

Slika 17. Potronja mikrokontrolera LPC1313 u deep-sleep nainu rada u ovisnosti o temperaturi i naponu napajanja

Trei nain rada smanjene potronje naziva se deep power-down nain. U tom nainu prekida se napajanje svim izvorima clock signala i ostatku ipa osim WAKEUP prikljuku. Procesor se moe probuditi iz deep power-down naina samo na impuls na WAKEUP prikljuku. U ovom nainu rada gube se stanja svih registara i radne memorije. Samo etiri registra posebne namjene uvaju svoje stanje. Potronja mikrokontrolera je drastino smanjena kao to je vidljivo na slici 18. Krivulja na slici 18 prikazuje ovisnost tipine potronje u deep power-down nainu rada o temperaturi i naponu napajanja.

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

40

6

Mikrokontroler

Slika 18. Potronja mikrokontrolera LPC1313 u deep power-down nainu rada u ovisnosti o temperaturi i naponu napajanja

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

41

7

Baterijsko napajanje

7 Baterijsko napajanje i potronjaDonju granicu na iznos napona napajanja postavljaju FLASH memorija i Bluetooth modul koji zahtijevaju minimalno 2.7V. Zbog lakoe dobavljivosti izbor je ogranien na dvije vrste akumulatora: litij-ionske (Li-ion) i nikal-metal hidridne (NiMH). NiMH akumulatori su nominalnog napona 1.2V u punom stanju i prazne se do oko 0.9 ili 1V. Prema tome, za postizanje dovoljnog napona potrebno je ili koristiti DC-DC pretvara uz jedan akumulator ili koristiti tri akumulatora u seriji. Koritenje DC-DC pretvaraa u osjetljivim biomedicinskim pojaalima u najmanju ruku komplicira njihov dizajn, pa je odlueno da se takav pristup izbjegne. Zbog toga ostaje koritenje triju akumulatora u seriji. Pritom je napon kombinacije akumulatora 3.6V u punom stanju i prazni se do neke vrijednosti izmeu 2.7V i 3V ovisno o struji pranjenja i samim akumulatorima. Takav opseg napona dobro odgovara razvijanom ureaju. Drugi tip akumulatora, litij-ionski, je nominalnog iznosa napona 3.6V i prazni se do 3V. Takav raspon napona vrlo dobro odgovara razvijanom ureaju jer se moe uz koritenje linearnog regulatora s malim padom napona (engl. Low Dropout - LDO) stabilizirati na npr. 2.8V to je dovoljno za sve komponente (i nije ba na donjoj granici napona napajanja memorije i Bluetooth modula), a jo uvijek iskoritava potpuni kapacitet akumulatora. Regulirani izvor napajanja e uvelike smanjiti efekt velikih tranzijenata u potronji na analogna pojaala (tranzijenti e nastajati prvenstveno zbog pisanja u FLASH memoriju). Osim toga, pomou linearnih regulatora napajanja s funkcijom gaenja (engl. Shutdown) bit e mogue smanjiti potronju ureaja o emu e biti rijei kasnije u ovom poglavlju. Iz ovog razmatranja vidljivo je da obje vrste akumulatora naponskim iznosima zadovoljavaju zahtjeve aplikacije. Pritom li-ion neto bolje odgovaraju jer se pranjenjem do 3V koristi cijeli njihov kapacitet. Kod NiMH akumulatora to ne mora biti sluaj u svim situacijama. Jo jedan od potencijalnih problema NiMH akumulatora je koritenje tri akumulatora u seriji. Karakteristike pojedinih akumulatora se mogu malo razlikovati to e dovesti do razliitog stanja napunjenosti na kraju ciklusa punjenja i posredno uzrokovati slabije iskoritenje kapaciteta akumulatora. Osim navedenog, prednost li-ion akumulatora 42

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

7

Baterijsko napajanje

je i u veoj gustoi energije (laki su i manji za isti iznos energije) to je pogodno za bilo koji prijenosni ureaj. Jo jedna prednost li-ion akumulatora je injenica da ih ne treba povremeno potpuno isprazniti i puniti do kraja kao NiMH akumulatore, to je praktinije za korisnika. Zbog navedenih razloga odlueno je da e se izvor napajanja realizirati pomou jednog li-ion akumulatora i LDO regulatora izlaznog napona 2.8V, s padom napona manjim od 200mV.

7.1 Procjena potronje ureajaSada kada su identificirane sve komponente ureaja i njihove maksimalne potronje, mogue je aproksimirati potronju ureaja. Tablica 3 prikazuje komponente, njihov broj i potronje. Tablica 3. Potronje pojedinih komponenata ureaja Komponenta Instrumentacijsko pojaalo INA333 Operacijsko pojaalo AD8619 Operacijsko pojaalo OPA2342 Broj Potronja po komponenti

3

80A

12

40A

2

250A 4mA (u prvoj aproksimaciji) uzmimo da

Mikrokontroler LPC1313

1

mikrokontroler radi na 12MHz u normalnom nainu rada

FLASH memorija Bluetooth modul

1 1

30mA tijekom pristupa, inae 40A 30mA tijekom prijenosa, inae 400A

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

43

7

Baterijsko napajanje

Promotrimo prosjenu potronju ureaja tijekom perioda unutar kojeg se potpuno napuni memorija (6 sati) i poalje njezin sadraj preko Bluetootha. Slanje 512Mb podataka maksimalnom brzinom od 600kbps traje priblino 850 sekundi, to moemo zaokruiti na etvrtinu sata. Sada je prosjena potronja neke komponente tijekom cijelog perioda:. .

(6)

pri emu je I1 prosjena potronja tijekom prikupljanja signala, a I2 prosjena potronja tijekom slanja podataka. Pretpostavimo da se tijekom prikupljanja signala u memoriju zapisuje 1% vremena (konzervativno), a da je ostatak vremena neaktivna (standby). U tom sluaju prosjena potronja I1 memorije iznosi priblino 340A. I2 iznosi 30mA. Tada je ukupna prosjena potronja memorije 1.53mA to se tie Bluetooth modula, on se nalazi tijekom cijelog vremena prikupljanja podataka u standby nainu i troi 400A. Tijekom slanja troi prosjeno 30 mA. Tada prosjena potronja modula tijekom cijelog ciklusa iznosi

1.58mA. Zbroje li se sada sve potronje po komponentama (tablica 4) dobiva se ukupna prosjena potronja ureaja od priblino 8.33mA. Prema tome, potrebna je baterija koja moe 6 sati i 15 minuta davati 8.33mA tj. baterija kapaciteta barem 52mAh. Naravno da nikada nije dobro uzeti bateriju tono onog kapaciteta koji je potreban iz razloga poput samopranjenja baterije, razliitih gubitaka, pada kapaciteta baterije koritenjem i slino. Tablica 4. Prosjene potronje komponenata Komponenta Bluetooth Modul I1 0.4mA 30*1% + 0.04*99% Memorija 0.34mA Analogni dio Mikrokontroler 1.22mA 4mA 1.22mA 4mA 1.22mA 4mA 30mA 1.53mA I2 30mA Ip 1.58mA

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

44

7

Baterijsko napajanje

7.2 Mogunosti optimiranja potronje ureajaTijekom rada ureaja jasno je odreeno kada koja komponenta ima nekog posla a kada naprosto troi energiju ekajui u standby modu. Razmatranjem takvih situacija dolazi se do tri mogunosti smanjenja potronje: 1. Bluetooth modul ne mora biti napajan dok se prikuplja signal nego samo dok se podaci alju preko Bluetootha 2. Analogni dio ureaja ne mora biti napajan kada prikupljanje signala zavri i pone slanje preko Bluetootha 3. FLASH memorija ne mora biti napajana dok se u nju ne upisuju podaci Prekidanje napajanja moe se izvesti upotrebom linearnih regulatora napajanja koji imaju funkciju gaenja (engl. Shutdown). Takav regulator je TPS73028. Potronja se sada mijenja na nain da se tijekom rada potronji komponente dodaje i vlastita potronja regulatora (tipino 170A za TPS73028), dok tijekom stanja iskljuenosti komponenta ne troi nita, a regulator troi priblino 1A. Prva navedena mogunost smanjenja potronje rezultirat e prosjenom potronjom Bluetooth modula od priblino 1.21mA, to je uteda od 370A. Druga mogunost rezultirat e poveanjem (a ne smanjenjem) potronje sa 1220A na 1334A. Razlog je preveliki gubitak zbog vlastite potronje regulatora u odnosu na dobitak zbog kratkog vremena neaktivnosti analognih sklopova. No, ipak e se koristiti regulator napajanja za analogne sklopove zbog same stabilizacije napajanja, bez obzira na neto poveanu potronju. U treoj situaciji moe se koristiti regulator napajanja izrazito male vlastite potronje, koji zbog toga ima loije ostale karakteristike (FLASH memoriji to nee smetati, za razliku od osjetljivih analognih sklopova ili RF primopredajnika Bluetooth modula). Takav regulator je TPS78228. Vlastita potronja mu je oko 3A u uvjetima u kojima e se koristiti. Potronju u ugaenom stanju moe se zanemariti (stotinjak nA). Prosjena potronja memorije tijekom prikupljanja podataka je priblino 300A. Tijekom slanja prosjena potronja je oko 30mA. Ukupna prosjena potronja memorije je sada 1.49mA, to je uteda od 40A.Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

45

7

Baterijsko napajanje

Tablica 5 prikazuje prosjene potronje komponenata ureaja uz dodavanje regulatora napajanja s mogunou gaenja. Tablica 5. Prosjene potronje komponenata nakon optimizacije Komponenta Bluetooth Modul I1 0.001mA 30*1% + 0.0001*99% Memorija 0.30mA Analogni dio Mikrokontroler 1.39mA 4mA 0.001mA 4mA 1.33mA 4mA 30.003mA 1.49mA I2 30.17mA Ip 1.21mA

Tablica 6 sumira promjenu prosjene potronje postignutu dodavanjem regulatora napajanja. Tablica 6. Promjena potronje zbog optimizacije Komponenta Potronja bez regulatora Bluetooth modul Memorija Analogni dio Mikrokontroler Ukupno 1.58mA 1.53mA 1.22mA 4mA 8.33mA Potronja s regulatorom 1.21mA 1.49mA 1.33mA 4mA 8.03mA -0.37mA -0.04mA +0.11mA 4mA -0.3mA Promjena

Ukupno smanjenje potronje nije posebno veliko (3.75%), ali situacija se moe promotriti i s druge strane. Za malo povienje cijene (regulatori su jeftini) dobiva se rjeenje koje nudiKreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

46

7

Baterijsko napajanje

regulaciju napona napajanja i jo uz to smanjuje potronju umjesto da je povea zbog vlastite potronje regulatora. Puno vee mogunosti optimizacije potronje nudit e prebacivanje mikrokontrolera u neki od naina rada smanjene potronje (jer mikrokontroler i troi oko pola ukupne energije ukoliko neprestano radi u normalnom nainu rada).

7.3 Izvedba punjaa baterijaPunjenje li-ion baterije odvija se u tri faze: polagano punjenje akumulatora konstantnom strujom ako je preduboko ispranjen; faza se preskae ako nije faza punjenja konstantnom strujom: akumulator se puni dok ne dosegne napon od 4.1 ili 4.2 V (ovisno o tipu anode akumulatora) faza punjenja konstantnim naponom: akumulator se puni uz konstantan napon sve dok struja punjenja ne padne na 3% poetne vrijednosti kada se akumulator smatra punim Regulaciju napona i struje punjenja odrauje integrirani punja li-ion akumulatora MCP73861 proizvoaa Microchip Technology Inc. Izvedba punjaa prikazana je na slici

Slika 19. Shema punjaa li-ion akumulatora Na konektor oznake Pwr se dovodi vanjski izvor napona 4.5 12V koji predstavlja izvor energije za punjenje akumulatora. LE diode signaliziraju trenutno stanje punjaa i njihovoKreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

47

7

Baterijsko napajanje

ponaanje opisano je u dokumentaciji ipa MCP73861. Prikljuak Vset se moe pritegnuti na masu ili na napajanje i time odrediti napon punjenja na 4.1V ili 4.2V. Otpornik izmeu prikljuka PROG i mase sklopa odreuje struju punjenja akumulatora. Spajanjem kondenzatora na prikljuak TIMER odreuje se maksimalno trajanje pojedinih faza punjenja. Nominalna vrijednost je 100nF pri emu svaka faza moe trajati 1h prije nego to punja prekine punjenje iz sigurnosnih razloga. Prikljuci THERM i THERMF mogu se koristiti za praenje temperature termistora ugraenog u akumulator, ali se ovdje ne koriste pa su spojeni na fiksni iznos napona kako je preporueno u dokumentaciji ipa. Na prikljuak oznake Bat spaja se akumulator. Na prikljuak oznake Switch spaja se prekida koji spaja akumulator na ostatak ureaja i time mu daje napajanje.

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

48

8

Ugraena programska potpora (firmware)

8 Ugraena programska podrka (firmware)8.1 CMSISCMSIS je skraenica za Cortex Microcontroller Software Interface Standard tj. standardizirano programsko suelje za Cortex mikrokontrolere. Radi se o setu programskih komponenata koje definiraju nain pristupa registrima, adrese prekidnih vektora i sl. Koritenjem CMSIS-a ubrzava se razvoj programske podrke i olakava koritenje ve postojeeg koda. Dio suelja koji je zajedniki svim mikrokontrolerima Cortex definira ARM Ltd., a dio koji je specifian pojedinoj porodici definira njezin proizvoa. CMSIS je pisan u programskom jeziku C i distribuira u obliku nekoliko datoteka. Opis koji slijedi bit e baziran na verziji CMSIS-a pisanoj za porodicu LPC13xx. LPC13xx.h Izrauje ju proizvoa. Centralno zaglavlje koje se koristi u korisnikoj aplikaciji. Sadri: Definicije rednih brojeva za sve prekidne rutine. Konfiguracijske parametre za datoteku core_m3.h (koja konfigurira jezgru mikrokontrolera). Konkretno, za porodicu LPC13xx definira se postojanje MPU-a (engl. memory protection unit) i broj bitova prioriteta prekida. Definira se i koja e se konfiguracijska funkcija koristiti za vremensku jedinicu SysTick, ona definirana od strane ARM-a ili ona definirana od strane proizvoaa (ukoliko takva uope postoji). Sloj za pristup perifernim jedinicama. Definiraju se strukture za svaku perifernu jedinicu koje rasporedom varijabli odgovaraju rasporedu registara periferne jedinice. Definirane strukture se mapiraju na odgovarajua mjesta u memoriji. Pomone funkcije za pristup perifernim jedinicama. Pomone funkcije obavljaju razne zadae poput inicijalizacije perifernih sklopova, promjene njihove funkcionalnosti i slino. Ovaj dio je opcionalan i nema ga u datoteci LPC13xx.h Jedna od struktura za pristup perifernim jedinicama izgleda ovako (radi se o strukturi za pristup AD pretvorniku): typedef structKreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

49

8

Ugraena programska potpora (firmware)

{ __IO uint32_t CR; __IO uint32_t GDR; uint32_t RESERVED0; __IO uint32_t INTEN; __I uint32_t DR0; __I uint32_t DR1; __I uint32_t DR2; __I uint32_t DR3; __I uint32_t DR4; __I uint32_t DR5; __I uint32_t DR6; __I uint32_t DR7; __I uint32_t STAT; } LPC_ADC_TypeDef; Struktura se mapira u memoriji pomou sljedeih definicija: #define LPC_APB0_BASE (0x40000000UL) *** #define LPC_ADC_BASE (LPC_APB0_BASE + 0x1C000) *** #define LPC_ADC ) ((LPC_ADC_TypeDef *) LPC_ADC_BASE

Na isti nain, samo uz druge adrese, mapiraju se i ostale strukture za pristup perifernim jedinicama. core_cm3.c i core_cm3.h Izrauje ih ARM Ltd. Zajedno ine sloj za pristup registrima jezgre mikrokontrolera. U core_cm3.h definirane su strukture za pristup registrima jezgre na nain kao i strukture za pristup perifernim jedinicama u datoteci LPC13xx.h. Osim toga definiraju se i maske za pristup pojedinim bitovima registara jezgre, prototipi funkcija za konfiguriranje raznih aspekata funkcioniranja jezgre (npr. podeavanje prioriteta prekida) i statike inline (ne poziva ih se nego se ugrauju na mjesto poziva vrlo efikasne u smislu brzine) funkcije za pristup nekim registrima. Datoteka core_cm3.c sadri implementacije funkcija iji su prototipi dani u core_cm3.h.

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

50

8

Ugraena programska potpora (firmware)

startup_lpc13.c Izrauje je ARM Ltd. Proizvoa ju preureuje da bi odgovarala konkretnoj porodici mikrokontrolera. Sadri prekidne rutine za sve prekide mikrokontrolera. Prekidne rutine sadre samo beskonanu petlju i definirane su kao weak (engl. weak - slab) funkcije. To znai da korisniki kod moe definirati funkciju istog imena koja obavlja eljeni posao. Kada postoje funkcije istog imena, a jedna je weak, compiler e koristiti uvijek onu funkciju koja nije weak. Prema tome, moe se rei da weak funkcije iz datoteke startup_lpc13.c uvaju mjesto pravim prekidnim rutinama koje e definirati korisniki kod. U datoteci startup_lpc13.c definirana je i reset prekidna rutina koja se poziva nakon reseta ili kod paljenja mikrokontrolera (jer se mikrokontroler najprije resetira kada mu se dovede napajanje). Ona inicijalizira mikrokontroler i na kraju poziva funkciju main(). system_lpc13xx.c i system_lpc13xx.h Izrauje ih ARM Ltd. Proizvoa ih preureuje da bi odgovarale konkretnoj porodici mikrokontrolera. Datoteka system_lpc13xx.c sadrava funkciju za inicijalizaciju

mikrokontrolera koja postavlja izvor clock signala, njegovu frekvenciju, ostale oscilatore (Watchdog, USB) te konfigurira PLL po potrebi. Odabir eljene konfiguracije vri se izmjenom simbolikih konstanti koje su u datoteci definirane. Sadrava i globalnu varijablu koja odgovara frekvenciji sistemskog clock signala kao i funkciju za osvjeavanje. Funkcija za inicijalizaciju mikrokontrolera poziva se iz reset prekidne rutine prije nogo to se ue u funkciju main(). Datoteka system_lpc13xx.h sadrava prototipe dviju navedenih funkcija i deklaraciju globalne varijable za frekvenciju sistemskog clock signala.

8.2 Struktura ugraene programske podrkeZamiljeno je da se ureajem se upravlja pomou tipke koja je prikljuena na mikrokontroler. Informacije o svojem stanju ureaj daje pomou jedne LE diode spojene na mikrokontroler. itanje stanja tipke i paljenje/gaenje LE diode bit e zadae ugraene programske podrke.

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

51

8

Ugraena programska potpora (firmware)

Sve zadae ugraene programske podrke su: upravljanje radom AD pretvornika pristup FLASH memoriji upravljanje Bluetooth modulom slanje podataka itanje stanja tipke paljenje/gaenje LE diode

Rad ugraene programske podrke moe se podijeliti na tri naina (u svakom trenu je aktivan samo jedan): IDLE: Ureaj ne radi nita osim itanja stanja tipke. Ukoliko je tipka pritisnuta dulje od 2 sekunde, prelazi se u nain RECORD ACTIVE. Ukoliko je tipka pritisnuta dulje od 100 ms, a manje od 2 sekunde, prelazi se u nain BLUETOOTH ACTIVE. U IDLE nainu rada LE dioda ne svijetli. RECORD ACTIVE: Ureaj uzorkuje signale i sprema uzorke u memoriju. Maksimalno se moe uzorkovati 6 sati signala. Bluetooth modul je ugaen. Ukoliko je tipka pritisnuta dulje od 2 sekunde prelazi se u nain IDLE. U nainu rada RECORD ACTIVE LE dioda svijetli 200 ms unutar perioda od 1 sekunde. BLUETOOTH ACTIVE: Ureaj ne uzorkuje signale. Analogni dio je ugaen. Bluetooth modul je aktivan i eka zahtjeve za uspostavom beine veze od drugih ureaja. Kada se uspostavi veza preko virtualnog serijskog porta, ureaj eka da drugi ureaj poalje bajt vrijednosti 0x01, na to poinje slati podatke. Ukoliko je u ovom nainu tipka pritisnuta vie od 100 ms, prelazi se u nain IDLE. U nainu rada BLUETOOTH ACTIVE LE dioda konstantno svijetli. Strukturalno se programska podrka moe podijeliti na dva procesa: beskonanu while() petlju unutar funkcije main() i prekidnu rutinu vremenskog sklopa SysTick koja se aktivira svake milisekunde. Prekidna rutina vremenskog sklopa SysTick pokree konverziju na AD pretvorniku, ita stanje tipke i, ovisno o nainu rada, pali ili gasi LE diodu. Osim toga unutar prekidne rutine se vri prebacivanje iz jednog naina rada u drugi. Blok dijagram prekidne rutine vremenskog sklopa SysTick prikazan je na slici 20.Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

52

8

Ugraena programska potpora (firmware)

Slika 20. Blok-dijagram prekidne rutine vremenskog sklopa SysTick Beskonana petlja u funkciji main() se izvrava cijelo vrijeme dok nije aktivan neki prekid. Njezina zadaa je ovisno o nainu rada snimati ili slati podatke. Ako je trenutni nain rada RECORD ACTIVE, u petlji e se neprestano ispitivati stanje varijable ADC_Buffer_Full koju prekidna rutina AD pretvornika postavlja u jedinicu kada se napuni polje uzoraka (po 512 uzoraka za svaki kanal). Kada se stanje varijable promjeni u jedinicu, pokree se prebacivanje podataka u memoriju. Ako je trenutni nain rada BLUETOOTH ACTIVE, uKreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

53

8

Ugraena programska potpora (firmware)

petlji e se provjeravati je li drugi ureaj preko UART-a poslao bajt 0x01 (zadnji primljeni bajt sa UART-a sprema se u varijablu Command) i ako je zapoet e prijenos podataka. Opisana struktura funkcije main() prikazana je na slici 21. Osim opisana dva procesa koriste se jo dvije prekidne rutine. Prva se pokree kada preko UART-a stigne bajt podataka. Unutar rutine se bajt kopira u globalnu varijablu Command. Druga se pokree kad AD pretvornik zavri s pretvorbom. Ona e biti poblie opisana u sljedeem potpoglavlju.

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

54

8

Ugraena programska potpora (firmware)

Slika 21. Blok-dijagram funkcije main()

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

55

8

Ugraena programska potpora (firmware)

8.3 Upravljanje AD pretvornikomAD pretvorba se pokree iz prekidne rutine vremenskog sklopa SysTick. Period vremenskog sklopa podeen je na 1ms. Izbor kanala koji e se uzorkovati vri se pomou globalne varijable ADC_Channel. SysTick prekidna rutina postavlja varijablu

ADC_Channel na vrijednost 0 i inicijalizira AD pretvornik na uzorkovanje nultog kanala (ukoliko se trenutno uzorkuje signal to se vidi iz varijable Mode). Tu zadau obavlja sljedei odsjeak: if(Mode == RECORD_MODE) { //Configure ADC (ch0, clkdiv=2+1, start now) LPC_ADC->CR = (0x01) | (0x02DR2; RegVal = (LPC_ADC->GDR & 0xFFFF) >> 8; ADC_Result[ADC_Result_IDX + ADC_Channel*512] = RegVal; LPC_ADC->CR &= 0xF8FFFFFF; /* stop ADC now */ if(ADC_Channel == 0) { ADC_Channel = 1; //Configure ADC (ch1, clkdiv=2+1, start now) LPC_ADC->CR = (0x02) | (0x02 3); GPIOSetValue(WE_PORT, WE_BIT, 0); GPIOSetValue(WE_PORT, WE_BIT, 1); //Row 3 Port2_Write((Block & 0x0800) >> 11); GPIOSetValue(WE_PORT, WE_BIT, 0); GPIOSetValue(WE_PORT, WE_BIT, 1); GPIOSetValue(ALE_PORT, ALE_BIT, 0); Port2_Write(0xD0); GPIOSetValue(CLE_PORT, CLE_BIT, 1); GPIOSetValue(WE_PORT, WE_BIT, 0); GPIOSetValue(WE_PORT, WE_BIT, 1); GPIOSetValue(CLE_PORT, CLE_BIT, 0); GPIOSetValue(CS_PORT, CS_BIT, 1); //Wait (dok R/B ne bude jednak 1) while (!(LPC_GPIO2->MASKED_ACCESS[0x200])); i = FLASH_Status_Read(); //Ako pisanje nije uspjelo, oznai blok kao los if(i & 0x01) { FLASH_Tag_Bad_Block(Block); return 1; } return 0;Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

65

8

Ugraena programska potpora (firmware)

} Funkcija prima jedan parametar, redni broj bloka koji treba obrisati. Izvedba funkcije slina je kao i u sluaju pisanja, samo to u ovom sluaju nema prijenosa podataka. Funkcija provjerava ispravnost bloka na isti nain kao i funkcija za pisanje stranice, uz iste povratne vrijednosti. itanje statusnog registra itanje statusnog registra vri se slanjem instrukcije 0x70. Nakon toga je na padajui brid signala RE mogue proitati sadraj statusnog registra (jedan bajt). Najnii bit statusnog registra govori je li prethodna operacija pisanja ili brisanja uspjela. Ukoliko je vrijednost bita 0, operacija je uspjela. Ukoliko je vrijednost 1 operacija nije uspjela i blok kojem se pristupalo moe se smatrati nevaljalim. itanje statusnog registra obavlja funkcija FLASH_Status_Read: unsigned char FLASH_Status_Read(void) { unsigned char Data = 0; GPIOSetValue(CS_PORT, CS_BIT, 0); Set_Port2_As_Output(); //Command Port2_Write(0x70); GPIOSetValue(CLE_PORT, CLE_BIT, 1); GPIOSetValue(WE_PORT, WE_BIT, 0); GPIOSetValue(WE_PORT, WE_BIT, 1); GPIOSetValue(CLE_PORT, CLE_BIT, 0); Set_Port2_As_Input(); GPIOSetValue(RE_PORT, RE_BIT, 0); Data = Port2_Read(); GPIOSetValue(RE_PORT, RE_BIT, 1); GPIOSetValue(CS_PORT, CS_BIT, 1); return Data; } Funkcija ne prima parametre i vraa stanje statusnog registra FLASH memorije.

Kreimir Tuek: Trokanalni elektrokardiograf s memorijom i beinim prijenosom signala

66

8

Ugraena programska potpora (firmware)

8.5 Slanje podataka preko Bluetooth vezeVe je reeno kada se i kako pokree prijenos podataka. Ostaje jo opisati kako se podaci alju. Taj dio obavlja funkcija Send_Log(): void Send_Log(void) { unsigned int Blocks = 0; unsigned char Pages = 0; unsigned char Offset = 0; unsigned int i,j; //Ucitaj duljinu loga FLASH_Page_Read(0,0); Blocks = (FLASH_Page[0]