NAČRTOVANJE PRENOSNEGA MERILNEGA SISTEMA ZA MERJENJE POSPEŠKOV Ciril Močnik, Dejan Križaj Laboratorij za bioelektromagnetiko, Univerza v Ljubljani, Fakulteta za elektrotehniko, Ljubljana, Slovenija Kjučne besede: senzor pospeškov, zapisovalnik podatkov, mikroprocesor, SD kartica, FAT datotečni sistem Izvleček: Miniaturni merilniki pospeška pridobivajo vedno večji pomen v medicini in športu. V določenih primerih je potrebno zajemati podatke po-speškometrov s prenosnim merilnim sistemom. V prispevku je predstavljeno načrtovanje in izvedba prenosne naprave za zajem podatkov merilnikov pospeška in njihovo shranjevanje na spominsko kartico. Izdelan sistem omogoča zapisovanje osmih analognih signalov frekvence 1,7 kHz. Design of Portable Data Logger System for Accelerometer Sensors Key words: accelerometer sensor, data logger, microprocessor, SD card, FAT file system Abstract: Accelerometer sensors have gained wide use in medicine and sport in recent years. Our goal is to upgrade our recent studies of muscle response with accelerometer sensor data logging instrument. As instruments already present on the market either didn't satisfy our needs or are very expensive, we decided to develop a dedicated device for specific needs. This paper presents a design of a lightweight, portable data logger system capable of measuring and storing eight signals from accelerometer sensors. The design is based on a low cost 8 bit microprocessor supported by a 12 bit eight channel A/D converter and an SD media storage card. For ease of operation an LCD character display and four keys are added. The instrument can operate either with a wall DC adapter, two AA size batteries or NiCd rechargeable batteries. Collected data is stored in data files on an SD card formatted with a FAT file system, which makes them compatible with any PC for further analysis. Final tests fulfill all our expectations. The instrument is very light, with eight analog channels and up to 512 MB of storage space on an SD card. It is capable of recording a wide spectrum of different tests in sport and medicine research with maximal frequency of 1,7 kHz that can be even increased when measuring short bursts. 1 Uvod Merilnike pospeška najdemo v avtomobilih, računalnikih, navigacijskih napravah, športnih rekvizitih itd. Ker njihova nabavna cena pada, hkrati pa se veča zmogljivost, se v bodočnosti obeta še bolj pogosta uporaba teh elementov. Posebno se je razširila uporaba merilnikov pospeška z njihovo miniaturizacijo, kar je omogočila mikroelektronska tehnologija z dodatnimi znanji in tehnologijami iz načrtovanja in izdelave mikromehanskih struktur. Tehnologija izdelave in princip delovanja MEMS (Micro-Electro-Mechanical Systems) naprav sta natančneje opisani v (1). Ti miniaturni pospeškometri omogočajo določanje pospeška iz premikov, ki jih lahko beležijo s pomočjo piezoelektričnega pojava ali pa s pomočjo spremembe kapacitivnosti. Piezoelektrični senzorji imajo boljše šumne lastnosti, senzorji na podlagi spremenljive kapacitivnosti pa so cenejši in enostavnejši za izdelavo in s tem tudi bolj razširjeni. Prvotno zanimanje za uporabo miniaturnih pospeškometrov kot merilnik mišičnega odziva smo želeli nadgraditi z napravo, ki bi omogočala zajemanje večje količine podatkov pospeškometrov v situacijskem okolju - s prenosljivo napravo za zajem in shranjevaje podatkov. Določene meritve je sicer možno izvesti v laboratorijskem okolju, kjer je na voljo potrebna oprema za zajemanje in shranjevanje podatkov in njihovo kasnejšo obdelavo kot v primeru treninga veslačev (2). Če pa želimo izvajati take meritve v športu, hitro naletimo na omejitev tako prenosljivosti kot priročnosti opreme. Obstaja kar nekaj naprav, ki omogočajo zajemanje podatkov pospeškometrov z različnimi področji uporabe. V industriji in terenskih meritva so v rabi robustnejše naprave za stalno namestitev, ki lahko delujejo samostojno dlje časa. Dve sta predstavljeni v (3) in (4). Prenosne izvedba kot je (5) bi bile zelo primerne za meritve v športu, vendar imajo premajhno hitrost zajemanja podatkov in pomnilnik, tudi cena je glede na zmogljivost previsoka. Bolj ustreza (6), ki pa obstaja samo kot razvojni prototip ali pa (7), ki je univerzalna in visoko zmogljiva naprava, vendar brez uporabniškega vmesnika na napravi, in žal tudi z zelo visoko ceno. Večina naprav, ki so dostopnie na tržišču in smo si jih ogledali ne ustreza popolnoma našim zahtevam (so prevelike, niso prenosne, premalo zmogljive, so v fazi razvoja ali pa so preprosto predrage). Zato je bila sprejeta odločitev, da izdelamo lastno napravo, ki bo lahka (160 g z akumulatorji), cenovno ugodna, ter obenem dovolj zmogljiva. V tem prispevku je predstavljena izvedba merilnega sistema z lastnim napajanjem, osmimi A/D kanali in shranjevanjem podatkov na izmenljiv pomnilniški medij. 2 Načrtovanje 2.1 Zahteve Za željeno funkcionalnost mora prenosni merilnik pospeškov izpolnjevati sledeče zahteve: - lahka, prenosna izvedba, primerna za nošnjo na telesu ali v oblačilih - upravljanje z napravo preko LCD zaslona in miniaturnih tipk, brez uporabe računalnika - osem A/D vhodov z 12 bitno ločljivostjo - nastavljiva frekvenca vzorčenja, z najvišjo vrednostjo 1 kHz ali več - zapis posamezne meritve v obliki ASCII datoteke na SD kartico (8) v datotečnem sistemu FAT - ura realnega časa s pomožnim napajnjem - baterijsko, akumulatorsko ali zunanje napajanje Glede na zahteve je načrtovanje naprave razdeljeno na zaključene funkcionalne sklope: mikroprocesor s periferno opremo, A/D pretvornik z izvorom referenčne napetosti, zunanji pomnilnik, ura in napajalnik, uporabniški vmesnik in programska oprema. Slika 1: Shematski prikaz meriinega sistema 2.2 Mikroprocesor Naprava ne rabi velike računske moči procesorja, ker se podatki samo zbirajo in zapisujejo na pomnilniški medij, nadaljna obdelava pa se vrši šele po prenosu na PC računalnik. Zato je bil za procesor izbran sicer manj zmogljiv osem bitni procesor, ki pa ima zaradi svoje priljubljenosti na voljo veliko uporabnih knjižnic v C jeziku (9) in cenena razvojna orodja. 16 Mhz Atmelov procesor (10) s 128 kB programskega flash pomnilnika, SPI vodilom in vmesnikom JTAG, ki omogoča enostavno programiranje in razhroščevanje se je pokazal kot primerna izbira. Edina pomanjkljivost je vgrajeni A/D pretvornik, ki ima samo 10 bitno ločljivost, zato je bilo dodano zunanje A/D vezje. Procesor lahko deluje pri napetostih 3,3 ali 5 V, vendar je pri nižji napetosti frekvenca delovanja omejena na 8 Mhz, zato je bila izbrana višja napetost, kar pomeni, da je pri komunikaciji s SD kartico, ki deluje samo pri napetosti 3,3 V, nujna uporaba pretvornika nivojev. Ker smo želeli izločiti kakršenkoli vpliv na stabilnost delovanja vezja zaradi slabo definiranih logičnih nivojev, so bila izbrana namenska integrirana vezija 74LVC4245, čeprav so dražja in težje dobavljiva. 2.3 Analogno digitalni pretvornik Izdelovalcev A/D pretvornikov je več, še mnogo več pa je raznih modelov in izvedb, različnih tako po zmogljivosti kot ceni. Kljub skoraj nepregledni množici pa lahko hitro omejimo ustrezne izvedbe na sprejemljivo število. Prva pogoja sta bila osem analognih vhodov in 12-bitna ločljivost, ki sta precej zožila izbiro, še bolj pa zahtevi po paralelnem vmesniku in zunanji napetostni referenci velikosti 4,5V. Dodatni zahtevi sta bili še majhna poraba in hitro zajemanje podatkov. Osem analognih vhodov potrebujemo zaradi možnosti priključitve najmanj štirih senzorjev pospeška, od katerih ima vsak dva (X, Y) analogna izhoda. 12 bitna ločljivost pa naj bi omogočala registriranje tudi majhnih sprememb pospeška, ko je lasten šum senzorja še manjši od ločljivosti. Paralelni vmesnik zagotavlja veliko hitrost prenosa podatkov med A/D pretvornikom in procesorjem in hkrati omogoča preprosto naslavljanje A/D pretvornika kot periferne naprave in s tem poenostavljen dostop do podatkov in krmilnih registrov. Nekateri A/D pretvorniki sicer omogočajo priključitev na dovolj zmogljivo vodilo SPI, vendar je v našem primeru to že zasedeno s prenosom podatkov na pomniln-iško kartico. Le manjši del A/D pretvornikov na tržišču omogoča priključitev zunanje reference, ki je višja od 3 V, ker pa smo želeli doseči univerzalnost naprave tudi z možnostjo priključitve drugih analognih izvorov, je bil cilj, da je referenčna napetost čim bližja napajalni napetosti oziroma petim voltom. Z izvorom referenčne napetosti se napajajo tudi merilniki pospeška. S tem izločimo vpliv nestabilne napajalne napetosti. Izhodna napetost merilnikov je namreč odvisna ne samo od pospeška ampak je tudi sorazmerna napajalni napetosti. 2.4 Zunanji pomnilnik Zunanja pomnilnika sta dva, eden je že omenjena SD kartica, povezana na procesor preko serijske SPI povezave in služi za shranjevanje podatkov osmih A/D kanalov. Drugi pa je 32 kB SRAM pomnilnik z 8 bitno vzporedno povezavo, ki ima vlogo izravnalnega FIFO medpomnilnika za podatke iz A/D pretvornika . Ta pomnilnik je nujen zaradi uporabe FAT sistema na SD kartici. Sistem FAT16 razdeli pomnilnik na največ 65.535 gruč, ki vsebujejo ustrezno število sektorjev po 512 bajtov. V primeru 128 MB kartice je vsaka gruča velika štiri sektorje, torej 2kB. Datoteka se pri vpisovanju v pomnilnik zapiše v več gruč, redosled pa se hrani v FAT tabeli. Podatki se zapisujejo v sektorje velikosti 512 B in to cel sektor naenkrat. Tako lahko izračunamo, da se bo pri frekvenci vzorčenja 1 kHz in osmih kanalih zgodil zapis sektorja vsake: 512/16000 = 32 ms. (16000 = osem kanalov X dva Bajta X 1000 vzorcev/s ) Knjižnica za delo s FAT sistemom rezervira del RAM pomnilnika v procesorju za hranjenje tega sektorja in ko je sek- tor poln se prepiše v spominsko kartico, v tem času pa v pomnilnik na procesorju ne moremo shranjevati podatkov iz A/D pretvornika. Rutine v knjižnici za delo s FAT sistemom zapišejo sektor v 1 - 2 ms, kar pomeni od 16 do 32 bajtov podatkov, ki jih moramo medtem shraniti v začasni register. Večji problem se pojavi, ko tabela FAT preseže okvir ene gruče. Pri 128 MB pomnilniški kartici se to zgodi pri datotekah večjih od 500 kB. Takrat je lahko zakasnitev dolga do 250 ms kar predstavlja 250 X 16 = 4 kB podatkov. Ker ima procesor na razpolago le 4 kB RAM pomnilnika, od katerega je del že zaseden s podatki FAT sektorja, del pa s programskimi spremenljivkami, je potrebno realizirati zunanji FIFO register s SRAM pomnilnikom. Podatki iz A/D pretvornika se vpišejo najprej v SRAM pomnilnik, iz katerega jih program prepisuje v medpomnilnik sektorja v procesorju. Ko je ta poln se prepiše na SD kartico. V najslabšem primeru bo v SRAM 4 kB podatkov, ki jih, potem ko se FAT tabela dopolni, program prepiše v spominsko kartico v času cca. 16 ms. Slika 2: Izravnalni medpomnilnik Ker je naslavljanje pomnilnika 15 bitno, je za povezavo med pomnilnikom in procesorjem potrebno vstaviti 8 bitna D vrata (74AHC573), ki v fazi naslavljanja pomnilnika zaklenejo spodnjih osem bitov naslova. Proizvajalec procesorja opozarja, da v primeru uporabe pri najvišji frekvenci HC izvedba vrat ne zadošča, ker je prepočasna in lahko pride do napak pri dostopanju do pomnilnika, zato priporočajo uporabo izvedbo AHC. Žal so slednja težje dosegljiva in obenem precej dražja. 2.5 Ura realnega časa in napajalnik Naprava je namenjena predvsem za terensko delo kjer lahko izvajamo veliko število meritev v različnih časovnih presledkih, zato je uporaba ure realnega časa nujna. Ura in datum se tako zapišeta v glavo datoteke s podatki, ki se generira ob začetku vsake nove meritve. Visokokapacitiv-en kondenzator služi kot vir napetosti za delovanje ure tudi, ko je naprava izklopljena. Napajalnik je izveden z DC/DC pretvornikom navzgor, ki deluje do vhodne napetosti 0,7 V. Dodaten linearni regulator zagotavlja 3,3 V napetost za napajanje SD kartice. 2.6 Uporabniški vmesnik Uporabnik upravlja z napravo preko štirih tipk in trivrstičnega LCD prikazovalnika. Zaradi majhnih dimenzij (višina) je bil izbran LCD prikazovalnik z integriranim krmilnikom na steklu prikazovalnika (COG). Štiri miniaturne tipke zadostujejo, da lahko preko sistema menijev v napravo vnašamo parametre in prožimo delovanje. Spreminjamo lahko frekvenco vzorčenja, trajanje meritve, aktivne merilne kanale, način merjenja in nastavimo uro realnega časa. Na začetek in konec meritve opozori zvočni signal, kar je zelo uporabno pri kratkotrajnih meritvah. 2.7 Programska oprema Programska oprema, ki teče v mikroprocesorju je v celoti napisana v jeziku C, zbirnika ni bilo potrebno uporabiti niti v časovno kritičnih delih programa. Uporabljeni sta bili knjižnica AVR libc in knjižnica za delo s FAT sistemom. Posebna pozornost je bila posvečena delu za uporabo zunanjega izravnalnega pomnilnika. Za programsko realizacijo registra FIFO v zunanjem pomnilniku uporabljamo dva kazalca. Prvi kazalec (RAM_WRITE) kaže na prvo zaporedno prosto mesto, kamor lahko program piše podatke, drugi (RAM_READ) pa na prvo zaporedno neprebrano vrednost v pomnilniku. RAM_WRITE lahko prehiti kazalec RAM_READ, medtem ko je slednji lahko največ enak prvemu. V testnem primeru tako vzorčimo štiri analogne vhode, dva brez napetosti na vhodu in dva s konstantno ali spremenljivo napetostjo. Vrednosti v celicah v SRAM si sledijo z zamikom enega bajta ob vsakem resetu kazalca (to je posledica velikosti pomnilnika, ki je deljiva z osem, vendar ene pomnilne celice ne uporabljamo). V datoteko na pomnilniški kartici pa se podatki vpisujejo sekvenčno, tako, da tega zamika ne opazimo. Opazimo pa lahko zamik podatkov v primeru, da kazalec pisanja v SRAM dohiti in prehiti kazalec čitanja iz pomnilnika SRAM, to se zgodi takrat, ko je hitrost vpisovanja podatkov v zunanji SRAM večja od hitrosti, s katero se podatki prenašajo v pomnilniško kartico. To lahko najlažje vidimo v heksadecimalnem prikazu, ko se podatki z istega senzorja ne pojavljajo več na istem mestu, ampak se premaknejo. Slika 3: Primer premika podatkov v ASCII datoteki zaradi prevelike frekvence vzorčenja Prvič se to pojavi pri frekvenci vzorčenja ~1,9 kHz. Ker se pri prvi nižji frekvenci ~1,7 kHz, to ne pojavi, lahko sklepamo, da je najvišja frekvenca, s katero še lahko zajemamo podatke brez izgube ~1,7kHz. 3. Realizacija in testiranje Elektronsko vezje je izvedeno na dvostranskem tiskanem vezju dimenzij 100 mm x 57 mm in vgrajeno v priročno plastično ohišje z ločenim prostorom za dve AA bateriji ali NiCd akumulatorja. Zaradi omejenega prostora v ohišju je bilo potrebno poiskati dimenzijsko ustrezne komponente (LCD, konektor SD kartice,...), in preizkusiti več kombinacij pri postavitvi elementov na tiskanem vezju. V končni verziji je dodana še USB povezava, ki pa v programski opremi še ni podprta. Da bi še povečali uporabnost naprave, je na voljo tudi možnost shranjevanja podatkov samo v zunanji SRAM pomnilnik in prepis v pomnilniško kartico šele po končani meritvi. Tako se izognemo ozkemu grlu, ki se je pojavljalo pri vpisu v pomnilniško kartico, smo pa seveda s tem omejili število vzorcev na 16.000 vzorcev velikosti dveh bajtov. Slika 4: Sestavljeno vezje v fazi razvoja programske opreme Slika 5: Izgotovljen merilni sistem Slika 6: Položaj senzorja na poizkusni osebi med testiranjem. X os v smeri levo-desno, Y os v smeri gor-dol, in Z os v smeri naprej-nazaj. Za test delovanja naprave je bila izbrana poizkusna oseba ki je izvajala enakomerni tek na neskončnem traku. XYZ senzor je bil pritrjen na ledvenem delu ob hrbtenici. Usmeritev osi je razvidna s slike 6. Slika 7: Posnetek prvih 30 sekund odziva senzorja na tek poizkusne osebe. Z navpičnima črtama je označen izsek prikazan na sliki 8. Slika 8: Povečan izsek gibanja, kjer so vidni pospeški v vseh treh smereh. S številkami 1 do 3 so označeni odseki odziva na gibanje gor-dol, ki so poravnano prikazani na sliki 9. Slika 9: Prikaz rezultata merjenja pospeška gibanja gor-dol za tri zaporedne eno sekundne odseke. 4 Zaključek Merjenje pospeškov s prenosno in miniaturno napravo omogoča spremljanje pomembnih kinematičnih parametrov v športu. V ta namen smo specificirali, načrtali, izdelali in testirali prenosno merilno napravo, ki omogoča hitro zajemanje merilnih podatkov osmih merilnikov pospeškov oz. 8. signalov z zajemom v analogni obliki. Naprava shranjuje izmerjene pospeške s frekvenco do 1700 Hz, kar omogoča zaznavanje hitrih sprememb pospeškov. Podatki se shranjujejo na standardno SD kartico (Secure Digital), ki omogočajo zapise velike količine podatkov. Izdelava je miniaturna, kar je bistveno za nemoteče izvajanje meritev v situacijskem okolju. Testiranje je pokazalo, da smo izdelali napravo, ki izpolnjuje vse naše zastavljene cilje, poleg izpolnjenih tehničnih zahtev je tudi majhna, lahka in enostavna za uporabo. V primerjavi s cenejšimi izdelki na tržišču je mnogo zmogljivejša, presega pa tudi mnogo dražjih naprav. Nekoliko moteče je le ožičenje, saj je potrebno pospeško-metre fizično povezati z merilno napravo, kar v določenih primerih uporabe lahko deluje moteče ali celo onemogoča uporabo. V takih primerih bi bila koristna miniaturna izvedba senzorskega vezja z lastnim napajanjem in radijskim prenosom podatkov v računalnik. 5 Literatura /1./ Drago Strle in Volker Kempe. "MEMS-based inertial systems". Informacije MIDEM, 4/2007, 199-209. /2. / "Application of Accelerometers in Sports Training". Analog devices. (www.analog.com) /3. / "Tri-axial shock data logger". Magdetech inc. (www.magdetech.com) /4. / "G-Logger. Acceleration acquisition system". Silicondesigns inc. (www.silicondesigns.com) /5. / "GT1M activity monitor'. Actigraph inc. (www.theactigraph.com) /6. / Tom Ahola, Pekka Korpinen, Juha Rakkola, Teemu Ramo, Jukka Salminen in Jari Savolainen. "Wearable FPGA Based Wireless Sensor Platform". Proceedings of the 29th Annual International Conference of the IEEE EMBS Cite Internationale, Lyon, France August 23-26, 2007. /7. / "MIE Data logger", MIE Medical Research Ltd. (www.mie-uk.com) /8. / SanDisk corporation. "SanDisk secure digital card - product manual". Ver.: 1.9, december 2003. /9. / "AVR-libc reference manual". Ver.: 1.4.3, 2006. /10. / ATMEL, "ATMega 128 user manual", november 2004. Ciril Močnik, univ. dipl. inž. ei. dr. Dejan Križaj, univ. dipl. inž. el. Laboratorij za bioelektromagnetiko (LBM) Univerza v Ljubljani, Fakulteta za elektrotehniko Tržaška 25, 1000 Ljubljana, Slovenija e-mail: ciril.mocnik@siol.net dejan.krizaj@fe.uni-lj.si tel.: +386 1 4768 720, fax.: +386 1 4264 658 Prispelo (Arrived): 03.05.07 Sprejeto (Accepted): 28.5.08