ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Katedra kybernetiky
Návrh řídící jednotky pro měření biologických signálů s vysokou hustotou dat
Design of Control Unit for High Density Measurement of Biological Signals bakalářská práce
Studijní program: Kybernetika a robotika Studijní obor: Robotika Vedoucí práce: Ing. Václav Křemen, Ph.D
Václav Langer
Praha 2013
2
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Katedra kybernetiky
Praha 2013
Anotace Tato práce popisuje postup při mé realizaci prototypu řídící jednotky pro měření biologických signálů s vysokou hustotou dat, který se skládá z STM32F4 DISCOVERY vývojového kitu, části ADS1298ECG-FE vývojového kitu a dvou ADS1294 převodníků. Tyto části jsou spojeny pomocí desky plošných spojů, kterou jsem navrhl. Čtenář získá základní teoretické znalosti o biologických signálech a jejich měření. Především pak o signálech bioelektrických. Součástí práce je i stručný popis vývojového prostředí potřebného k programování řídícího procesoru. Dále se zde nachází popis výroby tištěného spoje a celkový přehled funkčnosti komunikace mezi počítačem a ADS převodníky. Dále zde naleznete informace o přenosu dat do počítače včetně jejich zobrazování a vizualizace pomocí grafického programu.
Abstract This paper describes how to implement my prototype control unit for measuring biological signals with high-density data, which consists of STM32F4 DISCOVERY development kit, parts ADS1298ECG-FE development kit and two ADS1294 converters. These parts are connected by a PCB that I designed. The reader will acquire the basic knowledge of biological signals and their measurement. In particular, the bioelectric signals. The work also includes a brief description of the development environment required for programming the control processor. There is also a description of the production of printed circuit board and general overview of the functionality of communication between the computer and ADS converters. You will also find information about transferring data to your computer including imaging and visualization using the graphics program.
4
Poděkování Při práci na prototypu mi velmi pomohl kolega Ing. Filip Kinovič z firmy Ecom spol. s. r. o., kde jsem zaměstnán. Rád bych mu poděkoval za jeho ochotu předat informace méně zkušenému kolegovi. Zároveň mu děkuji za vytvoření aplikace ADS_test. Tato aplikace mi umožnila vizualizaci měřených dat. Dále bych rád poděkoval kolegovi Zdeňkovi Malému, který mi pomohl s tvorbou desky plošného spoje. A v neposlední řadě děkuji své snoubence za neobyčejně pevné nervy a optimistický přístup k mojí práci.
5
Obsah 1. Úvod ......................................................................................................................................7 1.1. Měření biologických signálů .....................................................................................7 1.2. ADS1298 převodník................................................................................................11 2. Rešerše – výběr vhodného procesoru ................................................................................14 3. Návrh řídícího bloku přístroje pro měření biologických signálů .....................................16 3.1. STM32F4 DISCOVERY kit...................................................................................16 3.2. Eclipse – vývojové prostředí ...................................................................................17 3.3. Výroba desky plošného spoje .................................................................................18 3.4. Realizace prototypu .................................................................................................20 3.5. Propojení STM32F4 a ADS1298 ...........................................................................20 3.6. Přenos dat do PC......................................................................................................25 4. Diskuse ................................................................................................................................29 5. Závěr ...................................................................................................................................30 6. Seznam literatury ................................................................................................................31
6
1. Úvod Při výběru zadání mé bakalářské práce jsem se na stránkách katedry kybernetiky soustředil především na zadání, která jsou lékařsky zaměřená. Spojení elektrotechniky a lékařských poznatků je důležitou součástí při uplatňování moderní medicíny a i při jejím dalším výzkumu. Domnívám se, že právě vývoji elektrotechniky v oblasti lékařství, by se měla věnovat veliká pozornost, protože to může být důležitým přínosem nejen pro obyvatelstvo v civilizovaných částech světa.
Dalším důvodem proč mě zaujalo právě měření biologických signálů, bylo to, že pracuji jako elektromechanik na oživovně přístrojů ve firmě ECOM spol. s. r. o. Tato renomovaná firma se zabývá výrobou a vývojem kompletních systémů pro analytickou a preparativní kapalinovou chromatografii (high performance liquid chromatography). Obor měření je mi blízký a proto jsem si jako svojí bakalářskou práci zvolil téma, jehož cílem je vytvoření prototypu řídící jednotky měření biologických signálů. Tato práce by měla být součástí projektu vytvoření zařízení pro měření EMG signálů. Avšak můj prototyp je koncipován pro přenos měřených dat s vysokou hustotou do PC bez ohledu na druh měřeného biologického signálu.
1.1. Měření biologických signálů Biologický signál je signál, který v biologii a lékařství slouží k vyjádření informací o sledovaném biologickém systému, především tedy o lidském organismu. S ohledem na požadavek relevantních informací nebývá získávání biosignálů vždy snadné. Informace v biosignálech bývají často znehodnoceny rušením a šumem. Zpracování biosignálů přináší některé speciální problémy, jejichž hlavní příčinou je složitost biologického systému a v mnoha případech nutnost jejich přímých a invazivních měření.
Biosignály lze rozdělit podle celé řady hledisek. Například podle oborů lékařských aplikací, charakteristik signálu, zdrojů nebo fyzikální podstaty biosignálu. Signály je také možné rozdělit buďto na deterministické a náhodné či stochastické. Deterministické signály jsou takové, které je možně přesně popsat matematickými funkcemi nebo je vyjádřit graficky. Jsou to například signály periodické. [1]
7
Většinu biosignálů však zařadíme mezi tzv. téměř periodické, což jsou neperiodické, deterministické signály. Typickým představitelem je EKG signál, kdy se tepová frekvence mění tep od tepu. Stochastické (náhodné) signály tvoří nejvýznamnější třídu biologických signálů. Tento signál je vzorkem funkce stochastického procesu. Náhodné signály se popisují pravděpodobnostními funkcemi a statistickými vlastnostmi. Příkladem těchto biosignálů je například EMG. Z fyzikálního hlediska nemusí být biosignály pouze elektrické signály. Kromě těchto tzv. bioelektrických signálů rozlišujeme ještě biomagnetické, bioimpedanční, bioakustické, biomechanické a biochemické signály. Některé biosignály nelze jednoznačně zařadit do žádné z těchto skupin. [2] Reálný signál je většinou analogový, zatímco počítač, který slouží ke zpracování těchto signálů, zpracovává signál číslicový. [6]
Přestože se moje práce přímo biologickými signály nezabývá, protože hlavním úkolem mnou vytvořeného prototypu je přenos naměřených hodnot do počítače, jedná se o měření elektrických biosignálů. Elektrické biosignály generují nervové a svalové buňky a jsou výsledkem elektrochemických procesů uvnitř buněk a vzájemně mezi nimi. Působí-li na nervovou či svalovou buňku stimul silnější než je prahová hodnota dráždění, buňka generuje akční potenciál. Nitrobuněčnými mikroelektrodami měříme celkový akční potenciál reprezentující tok iontů buněčnou membránou. Akční potenciály excitovaných buněk jsou přenášeny na přilehlé buňky a tvoří elektrické pole v odpovídající biologické tkáni. Elektrodami na povrchu orgánů nebo organismu lze snímat změny v mezibuněčných potenciálech jako časový průběh biosignálu. Příkladem jsou signály EKG, EEG, EMG, FEKG, EGG a další. Pro správné snímání, zaznamenávání a zpracování elektrických dějů v živých organizmech je třeba vědět co nejvíce o podstatě vzniku těchto signálů. [1]
Charakteristiky některých bioelektrických signálů [6] • Elektrokardiogram (EKG), vektrokardiogram (VKG) – záznamy spojené s elektrickou a mechanickou srdeční aktivitou o elektrody povrchové o amplitudová úroveň v rozsahu 50 µV až 5 mV o frekvenční rozsah je 0,01 až 150 Hz • Fetální EKG, VKG o elektrody povrchové
8
o amplitudová úroveň v rozsahu 10 až 300 µV o frekvenční rozsah je 0,01 až 150 Hz • Elektromyogram (EMG) – měření elektrického potenciálu svalu o elektrody povrchové o elektrody jehlové (MUAP – motor unit action potencial) o amplitudová úroveň v rozsahu 0,1 až 5 mV o frekvenční rozsah je 0 až 10 000 Hz • Pneumogram (PNG) – dýchání • Elektrookulogram (EOG) – elektrický potenciál sítnice, měření pohybu očí, při výzkumu spánku o párové povrchové elektrody umístěné kolem očí o amplitudová úroveň v rozsahu 10 µV až 5 mV o frekvenční rozsah je 0,05 až 100 Hz • Elektrogastrogram (EGG) o elektrody povrchové o amplitudová úroveň v rozsahu 10 µV až 1000 µV o frekvenční rozsah je 0,01 až 1 Hz • Elektroencefalogram (EEG) – záznam elektrické aktivity mozku, diagnóza epilepsie, zranění hlavy, psychické a neurologické poruchy a poruchy spánku o elektrody povrchové nebo vpichové o amplitudová úroveň v rozsahu 2 až 300 µV o frekvenční rozsah je 0,1 až 80 Hz
Tyto informace o biosignálech mají zásadní význam nejen pro systémové řešení elektronických přístrojů, ale i pro charakter a metodiku zpracování biosignálů v jednotlivých klinických oborech.[1]
Rozvoj techniky a přírodních věd ovlivňuje rovněž oblast biomedicínského inženýrství a biomedicínské přístrojové techniky. V zásadě je možno biomedicínskou přístrojovou techniku, používanou zejména ve zdravotnických zařízeních, rozčlenit do tří hlavních skupin. Jsou to především lékařské diagnostické přístroje, lékařské terapeutické přístroje a ostatní zdravotnická technika. Vyšetření na těchto přístrojích může poskytnout důležité informace pro stanovení diagnózy, případně k prognóze vývoje nejrůznějších chorob. [2]
9
Z původního návrhu zadání vyplývalo, že řešení mého prototypu by se mělo vztahovat k měření EMG, což znamená diagnostické využití. Tato zařízení zvláště pak elektronické systémy, jsou v současné době značně rozsáhlá. V zásadě jde vždy o podporu rozhodování o zdravotním stavu pacienta (sportovní a pracovní lékařství) nebo o stanovování diagnóz v klinických případech. Dlouhodobé sledování životních funkcí pacientů nemá jen diagnostický význam, ale je i součástí monitorování při řešení emergentních situací na jednotkách intenzivní péče či na anesteziologicko-resuscitačních odděleních. [1]
Typy elektrod pro měření biologických signálů můžeme rozčlenit do tří hlavních skupin. Do první skupiny můžeme zahrnout elektrody pro snímání z povrchu těla, mezi které patří kovové deskové elektrody a suché elektrody, které mohou být izolované nebo neizolované. Druhá skupina zahrnuje podpovrchové elektrody ve formě jehlových vpichových elektrod nebo implantabilních elektrod. Třetí skupina je představována mikroelektrodami, jako například kapilární elektrody pro snímání z buněk nebo implantabilní elektrody vhodné například pro snímání z mozku. [5]
Typický biozesilovač používá na vstupu diferenciální zesilovač (v řadě případů řešený jako izolační zesilovač). Pokud se požaduje zesilování velmi malých biopotenciálů, pak je místo galvanické vazby (stíněným kabelem k elektrodám) výhodně používat vláknovou optiku. Tím se podstatně omezí vliv síťového brumu. Honí propust (s obvykle volitelným mezním kmitočtem) je obvykle zařazena na vstupu druhého stupně. Zesílený biosignál prochází kaskádou aktivních zádrží 50 Hz a 150 Hz a koncovým stupněm, řešeným obvykle jako aktivní dolní propust (DP). Kmitočty horní a dolní propusti jsou pochopitelně voleny s ohledem na zpracovaný biosignál. Vzhledem k velkému významu analýzy biologických signálů v časové oblasti, nesmí dojít k jejich tvarovému zkreslení (které by pochopitelně ovlivnilo řadu důležitých grafoelementů biosignálů). Je tedy nezbytné, aby jak uvedené filtry, tak vlastní zesilovače, měly v uvedeném kmitočtovém pásmu biosignálu průběh charakteristiky skupinového zpoždění co nejblíže k ideálnímu maximálně plochému průběhu. S ohledem na nestabilitu síťového kmitočtu je nejhodnější provést jeho adaptivní filtraci. [3]
10
1.2. ADS1298 převodník Prototyp řídící jednotky jsem realizoval s ADS1298 převodníky společnosti Texas Instruments. Tyto převodníky jsem dostal od vedoucího mé bakalářské práce, respektive od jeho kolegy Ing. Martina Holuba, se kterým jsem konzultoval hardwarovou část realizace mého prototypu. Po jiných typech převodníků jsem se ani nedíval, obzvlášť proto, že mě pan Ing. Holub ujistil o vhodnosti použití právě těchto převodníků s tím, že tento typ převodníku je tím nejvhodnějším a jen těžko bych hledal nějaký jiný, který by disponoval lepšími parametry. Z dokumentace k tomuto převodníku, která je součástí přiloženého CD, je možné vyčíst, že se jedná o vícekanálový, simultánně vzorkovaný, 24bitový, delta-sigma Název
Pin
Název
Pin
Název
Pin
IN8N(1) IN8P(1) IN7N(1) IN7P(1) IN6N(1) IN6P(1) IN5N(1) IN5P(1) IN4N(1) IN4P(1) IN3N(1) IN3P(1) IN2N(1) IN2P(1) IN1N(1) IN1P(1) TESTP_PACE _OUT1(1) TESTN_PACE _OUT2(1) AVDD AVSS AVDD AVDD
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
AVSS VREFP VREFN VCAP4 NC VCAP1 NC VCAP2 RESV1 AVSS DGND DIN nPWDN nRESET CLK START
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
GPIO3 GPIO4 nDRDY DVDD DGND DVDD DGND CLKSEL AVSS1 AVDD1 VCAP3 AVDD AVSS AVSS AVDD RLDREF
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
17
nCS
39
RLDINV
61
18
SCLK
40
RLDIN(1)
62
19 20 21 22
DAISY_IN GPIO1 DOUT GPIO2
41 42 43 44
RLDOUT WCT
63 64
Tab. 1 - Názvy jednotlivých pinů ADS1298 včetně jejich číselného přiřazení
11
analogově-digitální převodník s vestavěným programovatelným zesílením, s interní referencí a vestavěným oscilátorem. Jak se dále uvádí v dokumentaci, tak ADS převodníky disponují všemi funkcemi, které obvykle lékařské měření elektrokardiogramu (EKG) a elektroencefalogramu (EEG) vyžaduje. Mezi další podstatné vlastnosti ADS převodníků patří možnost jejich řetězení. Nabízí se více možností jak propojovat větší počet ADS převodníků. Pro mou práci jsem využil Daisy-chain módu, který se nastavuje v registru s označením CONFIG1. Způ sob tohoto řetězení je vhodný především z důvodu jednoduššího vyčítání dat a ovládání všech převodníků najednou pomocí jedné konfigurace registrů stejné pro všechny připojené čipy. SCLK, DIN a nCS se sdílí pro všechna připojená zařízení. Pin DOUT je propojen s DAISY_IN pinem na dalším pDIN a nCS se sdílí pro všechna připojená zařízení. Pin DOUT je propojen s DAISY_IN pinem na dalším převodníku, tím je zajištěno řetězení. Pin nDRDY je použitý pouze z prvního převodníku u ostatních nejsou zapojeny. Další podrobnosti je možné nalézt v technické dokumentaci. Vzhledem k realizaci prototypu pro 32 vstupů, tedy 4 ADS převodníky a možnosti rozšíření až na 256 vstupů, bylo vhodné použít řetězení právě pomocí Daisy-chain. Komunikace probíhá po SPI. Rozhraní SPI se skládá ze čtyř signálů nCS, SCLK, DIN, DOUT. Rozhraní čte data, zapisuje do registru a kontroluje jednotlivé operace ADS1298. Signál nDRDY je použit k indikování
Obr. 1 – ADS1298ECG-FE 12
připravenosti dat. Jsou-li nová data připravená, signál nDRDY je na sestupné hraně. Jelikož samotné měření zatím nebylo předmětem mé práce, nebudu zde ani vypisovat jednotlivé technické parametry týkající se měření. V tabulce (Tab. 1) uvádím názvy přiřazené jednotlivým pinům, tak jak je označili výrobci v Texas Instruments. Pro vyzkoušení jednotlivých funkcí především co se nastavení registrů týče, mi ve škole zapůjčili vývojový kit ADS1298ECG-FE od společnosti Texas Instruments . Kit je osazený právě ADS1298 převodníkem, zdroji analogových napětí, oscilátorem, konektorem pro připojení kabelu s elektrodami a dalšími periferiemi. Uživatelský návod k tomuto kitu se nachází opět na přiloženém CD. Součástí této vývojové desky je i řídící deska MMB0 (Modular EVM motherboard). Tuto desku jsem však využil pouze k ozkoušení funkcí celého dodaného systému. Softwarová část kitu je provedena v programu LabVIEW, kde je možné vidět měření a nastavení registrů.
13
2. Rešerše – výběr vhodného procesoru V původním zadání, ještě před tím, než jsme ho upravili do finální podoby, byla zmínka o procesorech architektury AVR. Vzhledem k velkému rozvoji mikroprocesorů, mi vedoucí práce však ponechal volnou ruku, co se výběru vhodného procesoru týče. Požadavky na procesor mnou navrhované řídící jednotky byly především dostatečná rychlost procesoru, implementované USB a přímý přístup do paměti – DMA (Direct Memory Access). Těmto parametrům by ze skupiny AVR procesorů vyhovoval některý z procesorů rodiny AVR XMEGA. Přesto jsem se obrátil na zkušené kolegy a požádal je o radu ohledně výběru vhodného procesoru pro můj projekt. Většina z nich mi poradila, abych se zaměřil na procesory architektury ARM.
Architektura ARM (Advanced RISC Machines) vytvořená firmou ARM je široce rozšířená v 16/32 bytových embedded (vestavěných) RISCových mikroprocesorech s tzv. Von Neumann architekturou založenou na load/store koncepci. Podle ARM Product Backrounder, ARM, January 2005 v této kategorii tvoří 75% trhu. Je to mimo jiné způsobeno výhodnou licenční politikou firmy ARM, která dovoluje mnoha výrobcům vyrábět jednočipové počítače s jádrem ARM za příznivých podmínek. Tyto jednočipové počítače se liší velikostí programové a datové paměti a vestavěnými periferiemi. Protože jádro procesoru je stejné, mají tyto počítače různých výrobců stejný instrukční soubor. Nevýhodou těchto procesorů oproti jiným architekturám může být nutnost používání více instrukcí při zpracování dat uložených v paměti. [4]
Nechal jsem si tedy od kolegů doporučit procesor STM32F4 firmy STMicroelectronics a to především proto, že společnost nabízí STM32F4 DISCOVERY kit s tímto procesorem, který je možné pořídit za necelých 400 Kč. A kromě např. audio výstupu, a trojosého akcelerometru na této vývojové desce naleznete také programovatelné ladítko, přes které je možné procesor přímo programovat a následně při odlaďování programu krokovat. Procesor STM32F4 patří do skupiny ARM 32bitových CortexTM – M4 procesorů. Disponuje frekvenci až 168MHz, 1Mbyte flash pamětí, DMA, USB 2.0 ve full-speed a mnohým dalším. Tyto informace se nacházejí v technické dokumentaci k procesoru, kterou je možné najít na webových stránkách výrobce a je také součástí přiloženého CD. Dalším kritériem byla dostatečná podpora v internetových fórech a mimo jiné také zkušenosti mých kolegů v zaměstnání, od kterých jsem mohl získat užitečné rady a konzultovat s nimi problémy při 14
realizaci prototypu. Kolegové pracují buďto s tímto typem procesoru nebo s nějakou jeho obdobou, protože tyto procesory se ve firmě Ecom spol. s. r. o. používají do nové řady vyráběných přístrojů pro kapalinovou chromatografii. Více jsem se rešerší nezabýval, protože tento procesor se od první chvíle jevil jako více než dostačující. A rozhodujícím faktorem pro definitivní výběr tohoto procesoru byla šikovná politika společnosti STMicroelectronics, která tímto procesorem osazuje již zmíněný vývojový kit za velmi přijatelnou cenu. Kromě toho jsem doposud neměl mnoho zkušeností s programováním procesorů, proto jsem si nechal poradit od zkušených kolegů, s tím, že po odevzdání tohoto prototypu budu moci vývojový kit dále využít také pro realizaci jiných aplikací. Ke konečnému výběru však nakonec přispěl mimo jiné i fakt, že s tímto typem procesorů mají zkušenosti v mém zaměstnání 4 z mých kolegů a používáme je v nové řadě přístrojů, které vyrábíme.
15
3. Návrh řídícího bloku přístroje pro měření biologických signálů V této kapitole bych Vás rád seznámil nejprve s jednotlivými hardwarovými a softwarovými částmi patřícími k mému projektu. Dále bych se pokusil nastínit, jakým způsobem jsem testoval komunikaci a přenos dat do počítače. Komunikace zpočátku probíhala na úrovni jednoho ADS převodníku, kdy jsem propojoval pouze samotné dva kity. V závěru této kapitoly bych se rád věnoval samotné výrobě prototypu, popisu komunikace, posíláním dat do počítače a také samotnému ověřování, zda získaná data nejsou nesmyslná a zda je celý systém funkční.
3.1. STM32F4 DISCOVERY kit Již zmíněný vývojový kit STM32F4
DISCOVERY
společnosti STMicroelectronics, který je znázorněný na obrázku (obr. 2) je osazen procesorem STM32F407VGT6 revize z s architekturou ARM v 100pin LQFP pouzdře. Tento kit mi doporučili kolegové a to především kvůli jeho nízké ceně – necelých 400 Kč. Kit například obsahuje trojosý akcelerometr,
audiokodek
včetně výstupu na sluchátka a kromě výše zmíněného se na
desce
nachází
také
programátor/debugger, který je
použitelný nejen
samotný
kit
ale
i
pro pro
programování jiného CPU. Obr. 2 – STM32F4 DISCOVERY kit 16
Další značnou výhodou je, že firma STMicroelectronics k tomuto kitu dodává již hotové knihovny pro všechny periferie včetně různých příkladů.
Součástí desky vývojového kitu je ST-LINK/V2, který je produktem firmy STMcroelectronics a je možné ho pořídit i jako samostatné zařízení. Proto je tento vestavěný ST-LINK/V2 možno použít k programování a odlaďování nejen procesoru přímo na desce, ale také procesoru připojeného ke konektoru s označením SWD. Pro programování přes STLINK/V2 je třeba nainstalovat do počítače aplikaci STM32 ST-LINK Utility, která je součástí přiloženého CD. Programovací část DISCOVERY kitu se k PC připojuje pomocí mini USB. Vývojový kit je z tohoto USB také napájen. Procesor na STM32F4 je samozřejmě možné programovat také pomocí boot loaderu, což je však vhodnější až při zkonstruovaném zařízení a drobných úpravách hotové aplikace. Při samotném vývoji prototypu a vlastního programu je využití ST-LINK/V2 více než vhodné. Vývojový kit je dodávaný s demonstračním programem, který se po připojení do USB v části ST-LINK/V2 rozbliká. Rozblikají se zde čtyři uživatelské diody umístěné na desce. Po stisknutí tlačítka User se zapne tříosý digitální akcelerometr. Jeho náklon respektive náklon desky je indikován blikáním diod vždy na protilehlé straně náklonu. Připojíme-li micro USB kabel na opačné straně demonstračního kitu, chová se deska v operačním systému Windows jako myš. To znamená, že se při náklonu desky začne pohybovat ukazatel myši ve směru náklonu. S vývojovým kitem jsou dodávány ještě další demonstrační programy, které jsem však nezkoušel. K realizaci svého projektu jsem využil již hotové knihovny vytvořené firmou STMicroelectronics pro program v jazyce C. Veškeré podrobnosti je možné získat v uživatelském manuálu, který je k dispozici na stránkách výrobce a je součástí přiloženého CD.
3.2. Eclipse – vývojové prostředí Protože jsem doposud neměl příliš velké zkušenosti s programováním v jazyce C, nechal jsem si při výběru vývojového prostředí poradit od kolegů, kteří mi doporučili použití programu Eclipse. Při práci s tímto programem je nejprve třeba doinstalovat některé knihovny, doinstalovat překladač pro procesory ARM a provést nastavení debagovací části programu.
17
Vývojové prostředí Eclipse je celkem přehledná open source platforma a původně je určená především pro programování v jazyce Java. Je ale také možné si stáhnout verzi i pro programování v jazyce C. Pro psaní programu přímo pro procesor STM32F4 je potřeba doinstalovat některé další knihovny a také překladač pro procesory architektury ARM Cortex M4. Všechny tyto programové náležitosti jsou k nalezení na přiloženém CD. Při nastavení vývojového prostředí jsem využil zkušeností mých kolegů a nechal se inspirovat také nejrůznějšími
internetovými
fóry především
pak
návodem
na stránkách
http://www.sectiongo.com/main/setup-eclipse-debug-environment-for-stm32f4-discoveryboard/. Firma STMicroelectronics doporučuje využití jiných vývojových prostředí (například True Atolic studio atd.). Tato vývojová prostředí však nejsou vydávána formou open source. Při užívání trial verzí se setkáte s různými omezeními například, co se do velikosti napsaného kódu týče. Největší potíže mi zpočátku dělaly debagovací části vývojové platformy. Po nastavení debugserveru, který inicializuje zařízení ST-LINK/ V2 a vybráním správného procesoru, je možné naprogramovanou aplikaci krokovat přímo na desce a sledovat tak změny v registrech. Nevýhodou tohoto prostředí, dle mého názoru, bylo velké množství možností různých nastavení, která nejsou intuitivní. Je proto třeba před seznámením se s prostředím dodržet přesně některý z návodů popsaných na Internetu právě pro připojení a programování DISCOVERY kitu. Zorientovat se mi ve vývojovém prostředí Eclipse podařilo až po pár konzultacích s kolegy a pár zkusmo napsaných kódech. Kdy jsem se toto prostředí naučil pro mé potřeby dostatečně ovládat.
3.3. Výroba desky plošného spoje 1.
V návrhovém programu Eagle bylo třeba nejprve vytvořit schéma samotné desky a vytvořit knihovnu pro redukci ADS převodníku, kterému se přidělila schematická značka a samotné pouzdro součástky pro které bylo potřeba použít rozměry redukce pro správné osazení při Obr. 3 – UV zařízení pro osvícení fotocitlivé vrstvy 18
následném návrhu tištěného spoje. 2.
V programu Eagle se vytvořila samotná deska, rozmístění součástek a jejich propojení příslušnými cestami s polygonem. Polygon je společná zem, jejíž použití je vhodné především kvůli lepšímu stínění a také protože šetří leptadlo – stačí odleptání menší části tištěného spoje.
3.
Obr. 4 – namáčení v roztoku NaOH a H20
V tiskařské firmě jsem si nechal
vyrobit osvit návrhu tištěného spoje. 4.
Vlastní osvícení Cuprextidu s pozitivní fotoemulzí pod UV lampou cca 3 minuty.
5.
Dále jsem vyrobil roztok hydroxidu sodného s vodou 3 g NaOH na 250 ml H2O, ve kterém se deska namáčela po dobu tří minut, dokud se neobjevil předtím osvícený návrh tištěného spoje, tak jak je patrné na obrázku (obr. 4).
6.
Dále se deska leptá v chloridu železitém přibližně 35 minut.
7.
Po vyleptání plošného spoje bylo potřeba vyvrtat jednotlivé díry pro součástky vrtákem 8 a 9 mm.
8.
Následně se celá deska umyla acetonem, kvůli odstranění zbylého fotocitlivého laku.
9.
Před samotným osazením a pájením jsem desku potřel pájecím přípravkem – gelové tavidlo.
10. Dále jsem desku osadil příslušnými součástkami a připájel. 11. Očištění desky v ultrazvukové čističce přípravkem na čištění desek plošných spojů Decotron. V ultrazvukové čističce probíhá čištění ve vodní lázni, ve které je Obr. 5 – Ultrazvuková čistička 19
nádoba s čistícím přípravkem (obr. 5). 12. Opláchnutí vodou a vysušení stlačeným vzduchem. 13. Proměření funkčnosti jednotlivých cest měřákem – propípání před osazením čipů. 14. Připojení napájecího napětí z desky DISCOVERY kitu a proměření správného rozvedení tohoto napájení. 15. Testování prototypu. 16. Nalakování ze strany tištěného spoje čirým akrylátovým lakem na ochranu plošných spojů s dobrými dielektrickými vlastnostmi – Plastik 70.
3.4. Realizace prototypu Před realizací vlastního prototypu jsem se nejprve seznamoval s programováním samotného DISCOVERY kitu. Nejprve jsem si vyzkoušel napsat program, kterým jsem rozsvítil a rozblikal jednu z uživatelských LED diod. Dále jsem si vyzkoušel funkčnost komunikace přes Virtual Com Port, ke kterému je potřeba do operačního systému Windows doinstalovat ovladač dostupný jednak na stránkách firmy STMicroelectronics a samozřejmě také na přiloženém CD. Komunikaci jsem si vyzkoušel tím, že jsem přes terminál (například PUTTY) v počítači střídavě rozsvěcel a zhasínal LED diodu na desce kitu. A zároveň při vložení libovolného textu do terminálu a jeho odeslání do desky, se mi vrátil odeslaný text spolu se zvoleným znakem pro ověření zpětné odezvy. Terminál je opět součástí přiloženého CD. Je v něm potřeba zvolit číslo COM portu, a rychlost – volil jsem nejvyšší možnou, tedy 115200.
3.5. Propojení STM32F4 a ADS1298 Dále jsem si potřeboval ověřit, zda dokážu komunikovat mezi procesorem STM32F4 a ADS1298 převodníkem. K tomu jsem využil zapůjčený kit ADS převodníku společnosti Texas Instruments, který jsem s DISCOVERY kitem propojil kabelem. Z DISCOVERY kitu jsem použil volné SPI a dva volné piny. Jeden pro START a druhý pro DRDY. Také jsem z desky DISCOVERY kitu použil napájecí napětí 3 a 5 V. Zpočátku mi ADS převodník neodpovídal, ale reagoval na chipselect. Ve chvíli, kdy jsem udělal chipselect, tak linka spadla a nedostal jsem žádná data. Toto se však dělo nepravidelně a v případě několikanásobného restartování desky program proběhl. V dokumentaci jsem našel souvislost s potřebou vložení 4clk – asi dvě mikrosekundy. Dále jsem posílal příkaz 20
SDATAC, stop data kontinuálního módu. Dařilo se mi číst zvolených osm registrů a podle získaných
defaultních
hodnot
registrů jsem poznal správnost získaných dat. V hlavní smyčce jsem
tvořil
SPI komunikaci
posíláním commandů a čtení registrů. Následně pak čtení dokola
pouze
prvních
dvou
registrů. Pro ověření správné funkce jsem k DISCOVERY kitu připojil sériovou linku, abych eliminoval
možnost
chyb
komunikace přes USB, kdy se data zapisují do bufferu, což nemusí správně fungovat. Pro sériovou linku, která mi slouží na čtení a zápis, jsem používal systémovou
funkci
printf.
Sériovou linku jsem připojoval
Obr. 6 – propojení kitů STM32F4 Discovery a ADS1298
přes převodník úrovní sériovky z TTL nebo CMOS na úroveň sériovky – MAX3221. Na desce DISCOVERY kitu je již inicializovaný vývod pro sériový port, který využívá přídavný vývojový modul. Obsluha sériové linky fungovala v čekání. Nejprve se posílala data vložením do nějakého registru. Následně jsem čekal na příznak odeslání dat. Pokud jsem chtěl poslat znak, tak jsem čekal, zda je deska připravená na odesílání. Pokud není, čekám. Nepoužíval jsem zde přerušení. Následně na úrovni VCP jsem si inicializoval SPI, vložil timer, abych měl jistotu, že je vše připraveno. Dále jsem resetoval interface a zároveň chipselect nastavím na sestupnou hranu a po chvíli na vzestupnou. Poté posílám stopcommand, čtu registr ID. Jednotlivé typy jsem si nadefinoval, proto mi STM32F4 bylo schopné na základě ID určit typ převodníku.
Výsledný projekt měl být koncipován pro čtyři ADS převodníky. Původní záměr byl, že celý prototyp bude na nepájivém poli, do kterého se ADS převodníky připojí pomocí redukcí. První redukce, které do školy dorazily, však nebylo možné použít z důvodu špatného rozměru. Další redukce, které dorazily se značným časovým zpožděním, byly dle 21
mého názoru naprosto nevhodné pro použití v nepájivém poli. Tyto redukce nebyly ve formátu DYL, ale pouze čtvercového obvodu s 2x8 pinů na každé straně. Moje domněnka, že není vhodné tuto redukci použít v nepájivém poli, vycházela především z toho, že bylo jen málo pinů ADS převodníku, které nebylo potřeba zapojit. Rozhodl jsem se proto realizovat prototyp formou soudesčí, kdy pro řízení využívám STM32F4 DISCOVERY kit,
Obr. 7 – návrh plošného spoje včetně součástek
dále využívám kit Texas Instruments ADS převodníku a dalších dvou ADS1298 převodníků dodaných na redukcích. Mnou navrhnutá deska, jejíž schéma je v příloze (příloha 1) slouží k propojení jednotlivých komponentů prototypu. Na obrázku (obr. 7) uvádím nákres plošného spoje včetně osazených součástek. Z desky vývojového kytu ADS převodníku využívám analogová napětí (AVDD, AVSS). Také jsem se rozhodl využít z desky ADS kitu oscilátor pro hodiny, přestože jednotlivé ADS převodníky disponují interními hodinami. Původně jsem uvažoval o využití oscilátoru z DISCOVERY kitu, na kterém se nachází 8 MHz krystal, který bych podělil na frekvenci 2MHz. Na ADS kitu se však nachází oscilátor s přesnou frekvencí 2,048 Mhz, proto jsem zvolil použití tohoto oscilátoru pro všechny ADS převodníky. Vzhledem k řetězení jsem však zvolil využití externího oscilátoru pro správnou synchronizaci. Ale pro případnou možnost použití interních hodin jednotlivých ADS převodníků jsem pin čísla 52 s označením CLKSEL připojil na zem přes nulový odpor. Po odstranění tohoto odporu převodník využívá interních hodin, podle dokumentace ADS1298 (dokument součástí CD). Na desce kitu ADS převodníku není osazen obvod pro referenční napětí (VREFP), které je důležité pro samotné měření. Přestože jsem se samotným měřením při realizaci mého prototypu nezabýval, zahrnul jsem při návrhu desky možnost připojení referenčního napětí. Výsledný prototyp měl být realizovaný pro 32 vstupů, to znamená čtyři ADS převodníky, avšak k ADS kitu jsem dostal pouze další dva ADS převodníky. Proto
22
jsem do návrhu desky plošného spoje zahrnul možnost připojení dalšího převodníku pomocí konektoru (konektor s označení DAISY-CHAIN). U každého ADS převodníku je několik kondenzátorů, které slouží především jako filtry, proto jsou umístěné co nejblíže k samotnému čipu. Tyto kondenzátory by bylo nutné připojit i k dalším převodníkům v případě řetězení. Vzhledem k tomu, že jsem výsledný prototyp realizoval pouze pro zabezpečení komunikace mezi STM32F4 a zřetězenými ADS převodníky a také pro přenos měřených dat, ale nezabýval jsem se samotným měřením, není možné tento prototyp připojovat přímo k živému organismu – lidskému tělu. Pro využití měření biologických signálů by bylo třeba zohlednit veškerá daná bezpečnostní opatření, aby nemohlo dojít k úrazu. Vzhledem k omezeným financím škola pořídila a poskytla mi ADS převodníky, které mají pouze čtyři měřené kanály místo osmi. Cena těchto čipů je totiž třetinová oproti ceně ADS1298 s osmi kanály. Původně jsem se domníval, že dodané čtyř kanálové převodníky se tváří jako osmi kanálové s tím, že polovina měřených kanálů je nulová. Při osazení a následném oživení mého prototypu jsem však zjistil, že kanály jsou pouze čtyři. Musel jsem tuto nastalou situaci ve svém řešení zohlednit. Modulárnost zapojení je patrná ze schématu, kdy je ke každému převodníku přivedeno vždy šest linek (MOSI, CLK, START, nCS, SCLK, DAISY_IN). Linka DAISY_IN je vždy přivedena na pin číslo 43 (DOUT) a do dalšího převodníku na stejný pin vede linka z pinu číslo 41 (DAISY_IN). Tím je zabezpečeno řetězení jednotlivých převodníků. Poslední převodník, ze kterého nevede linka DAISY_IN (pin číslo 41) do dalšího čipu, by měl být na této lince přes 1M odpor uzemněn. Komunikace mezi počítačem a prototypem probíhá přes Virtual Com Port (VCP). Přestože to kvůli rychlosti není nejideálnější řešení, uchýlil jsem se k VCP především z toho důvodu, že jsme se při tvorbě zadání domluvili na ovládání prototypu přes terminál, kdy je použití VCP nejvhodnější. Toto připojení bylo zvoleno také z toho důvodu, že STMicroelectronics poskytují k DISCOVERY kitu ovladače pro VCP a nebylo tedy potřeba psát ovladače vlastní. Komunikace mezi STM32F4 a ADS1298 probíhá po SPI. Obvod ADS1298 přenáší na jeden sken pro osm kanálů 216 b. Přenosem dat jsem se nejprve až tolik nezabýval, protože mi přišlo mnohem důležitější se zpočátku zabývat samotným získáváním dat. Při propojení převodníku v módu DAISY_CHAIN jsem si všiml, že se musí generovat ještě jeden 217 bit navíc. To by však asi komplikovalo čtení všech dat ze všech převodníků skrze jedno DMA čtení. Čtení se tak muselo rozdělit na více DMA povelů. Při propojení STM32F4 a jednoho ADS převodníku vše probíhalo sekvenčně v hlavní smyčce. Čtení dat na SPI bylo po DMA. Prozatím se na dokončení DMA čekalo. VCP – data se vypisovaly 23
textově spolu s čítačem vzorků v terminále a byly podpořeny jednopísmenné příkazy (s=stop, a=start, r=reset citace, 0=250SPS, 1=500SPS, 2=1KSPS). Pokud byl kabel připojen k PC, ale nebyl otevřený port, měření stálo. Po startu je převodník v módu ADATAC (po
Obr. 8 – výsledný prototyp - soudesčí
startu se pravidelně vytváří signál nDRDY, jak se měří). V dokumentaci se píše, že se tento mód musí ukončit (SDATAC) jinak nelze poslat jiný povel. Nejprve jsem zkoušel nastavit a číst registry převodníku, dále jsem zkoušel číst naměřená data v módu RDATA. Zpočátku jsem si však nebyl jist, jak se RDATAC chová, když se data nestihnout vyčíst. Narazil jsem přitom na některé zvláštnosti, co se chování programu týče. Například při frekvenci 2,6 MHz na SCLK jsem neměl problémy s komunikací, ale při dvojnásobné frekvenci 5,25 MHz se občas stalo, že jsem dostal nesmyslnou odpověď (zkoušeno při čtení dvou registrů). To souvisí s „command“ příkazy, které vyžadují minimálně čtyři cykly (2us) na zpracování. V příkladu od Texas Instruments jsem si všiml, že pro příkazy používají menší frekvenci SCLK než pro čtení dat, což by případně šlo vyřešit přepínáním frekvence SPI.
24
3.6. Přenos dat do PC Jak jsem se již zmínil v předchozí kapitole, přenos dat probíhá přes VCP. Protokol byl zpočátku textový, při zatížení VCP docházelo k výraznému prodloužení intervalu a od 2kS/s se už objevovaly problémy s přenosem. Proto jsem v závěru protokol upravil a jsou tudíž k dispozici dvě varianty vysílání dat - textově nebo binárně.
Zpracování dat na straně počítače není součástí mé práce, avšak bylo zapotřebí nějakým způsobem zkontrolovat, zda naměřená data nejsou nesmyslná. Původně jsem si myslel, že by se toto ověřovalo změnou napětí na vstupu a pozorováním této změny jednotlivých vzorků přímo z čítače. Nakonec jsem zvolil metodu zobrazování pomocí aplikace, především z důvodu zjištění ztrát některých dat. Což by kvůli množství dat nebylo možné kontrolovat. Pomocí aplikace je také dobře vidět šum. Na mojí žádost mi kolega Ing. Filip Kinovič aplikaci osciloskop vytvořil.
Ovládání v terminálu probíhá pomocí komunikačních příkazů. Příkazy, které se do terminálu zapisují, se však nezobrazují. V programu jsou definovány fixně čtyři čipy. Mohu pouze nastavovat konfiguraci pro počty kanálů měřených jednotlivými čipy (buďto osmi kanálové nebo čtyř kanálové). V programu zajišťuji, že nelze přeskakovat jednotlivé kanály tzn., že zadání konfigurace 8-0-4-4 není platná volba. V Daisy-chain módu nemohu s jedním čipem nekomunikovat. Maximální počet měřených kanálů je tedy 32. Počet měřených kanálů volím. Samozřejmě při zvolení sedmi kanálů a nakonfigurování prvního čipu osmi
Obr. 9 – printscreen terminálu
25
kanálového měřím kanálů osm. Textově jich však zobrazuji pouze sedm. S čipem nelze vykomunikovávat menší počet kanálů. Jednoduchými příkazy up a down, kterým odpovídají jednopísmenné příkazy („u“ a „d“), lze jednoduše snižovat či zvyšovat počet měřených kanálů. Což je v prostředí terminálu pohodlné. V hlavní smyčce se nachází vícepísmenné příkazy uvozené vždy znakem $. Potvrzení příkazu se provádí stisknutím klávesy enter. Některé původní jednopísmenné příkazy jsem však ponechal a odpovídají jim i příkazy vícepísmenné. Například $STOP odpovídá příkaz „S“. V komunikaci se zobrazuje Counter, dále je vidět počet použitých přístrojů. Minimálně jedno zařízení musí být připojeno a nemůže být více kanálů, než kolik jich je k dispozici. Změní-li se počet kanálů, tak se pro jistotu znovu zapisuje konfigurace do registru. Z konfigurace se vypočítává počet dostupných kanálů. Kromě textového protokolu mohu použít také protokol binární, který však není s použitím terminálu vhodný. Použití terminálu je demonstrativní, je v něm dobře vidět co se posílá, jsou také vidět jednotlivé kanály. K číslicím 0 až 9 jsou přiřazeny definované konfigurace v rychlosti přenosu a zesílení. Dojde-li k přetečení, to znamená, že není místo, nastavím proměnnou na 1 a ona příště nebude zapisovat, zablokuje to tak dlouho, dokud se nevyprázdní celý buffer. Ve chvíli, kdy se vyprázdní buffer, se trochu uvolní USB a funguje pak i čtení. K zaplnění dochází ve chvíli, kdy se posílá málo dat ale velmi často. Reakce je poté trochu pomalejší, ale pořád tam je. Dříve se stávalo, že reakce vůbec žádná nebyla.
Ovládání by se samozřejmě dalo ještě vylepšovat a není ideální, ale domnívám se, že je plně funkční. Oranžová dioda na desce DISCOVERY kitu se rozsvítí ve chvíli, kdy se do DISCOVERY kitu přivede napájení. Blikání zelené led diody kopíruje frekvenci měření. Ale protože by dioda blikala velmi rychle, je blikání poděleno stem. Pokud dioda nebliká, značí to, že se neměří, anebo je hlavní smyčka natolik zahlcená, že se k funkci blikání ani nedostane. Bliká-li dioda nepravidelně, značí velké vytížení VCP a toto blikání je pouze informativní. Je tedy vidět, že se něco děje v hlavní smyčce, ale o samotném měření to nic nevypovídá. Červená dioda značí, že je připojeno USB. Modrá bliká v případě posílání dat. Neznačí úspěšné poslání dat. V případě intenzivního měření dioda bliká tak rychle, že to vypadá, že konstantně svítí.
V zobrazovací aplikaci ADS test v1.3, kterou naprogramoval kolega, se používají stejné příkazy jako v terminálu. Tyto příkazy je možné psát do spodního řádku a odesílat tlačítkem send nebo pomocí klávesy F5. V pravém horním rohu je třeba zvolit příslušný komunikační 26
port a následně ho otevřít pomocí tlačítka open. Pod tlačítky Zoom in, Zoom out, Zoom def je možné v dialogovém okně vybrat příslušnou konfiguraci používaných ADS převodníků, co se do počtu kanálů týče. Stejně tak jak je tomu i při ovládání terminálu. Před danou konfigurací se zobrazují čísla v závorce, která určují maximální počet použitelných kanálů. V následujícím druhém dialogovém okně je možné vybrat počet kanálů, které chceme měřit. Třetí dialogové okno nabízí volbu přednastavených rychlostí a zesílení od 0 do 9, tak jak je tomu v případě ovládání přes terminál. Číslo dané konfigurace se zobrazuje v závorce před znázorněním rychlosti a zesílení. Ihned po zvolení příslušné možnosti v těchto dialogových oknech se příkazy odesílají do procesoru STM32F4. Pod dialogovými okny se nachází trojice tlačítek start, stop a reset, jejichž funkci snad není potřeba dále rozepisovat. V části pod těmito tlačítky se nachází oblast, která se v průběhu měření mění a znázorňuje jednak indexaci měřeného vzorku od 0 do 2050, počet měřených kanálů maximálně však 32, rychlost, zesílení atd.
Hlavní částí zobrazovacího softwaru je graf, který se při změně počtu kanálů překreslí. Aplikace čte počet zvolených kanálů, ale zobrazuje nejvíce 16 měřených kanálů, což je
Obr. 10 – printscreen z aplikace ADS_test 27
indikováno legendou v pravé horní části grafu. Změny není dobré dělat v průběhu měření. V této aplikace se pro data používá binární protokol. Jelikož při použití tohoto protokolu jde o méně dat, je možné při měření použít vyšší vzorkovací frekvenci. Dojde-li k zaseknutí aplikace, to znamená, ve chvíli kdy se data nestíhají posílat, je potřeba zavřít port, protože v tu chvíli se zaplní buffer a zareaguje ochrana. Při čtení dat se stíhá rychlost 16 kS/s při osmi kanálech. Tato rychlost je však podmíněna binárním protokolem. Textově by toto nebylo možné.
28
4. Diskuse Při řešení pro 256 kanálů, tedy 32 ADS převodníků, by bylo potřeba udělat nezbytné úpravy. Rozhodně by mohlo být lépe napsáno USB. Využití VCP je samozřejmě velkou otázkou, protože kdybych chtěl protlačit nejvíce dat, bylo by třeba použít USB v přímém režimu. Data by se četla přímo. Jednalo by se o řešení pomocí Bulk transportu, které by měly být mnohem rychlejší než VCP či HID. Tak jak je detailně popsáno na stránkách http://mcu.cz/comment-n2904.html. S řešením komunikace přes USB nemám velké zkušenosti a bylo by potřeba dohledat případné materiály a zjistit jaké by bylo nejvhodnější použití. Určitě nejméně výhodné by bylo psaní vlastního ovladače, kvůli problémům s certifikací. Procesor STM32F4 disponuje v základu USB v režimu Full-speed, což odpovídá USB 1.0. Pro využití režimu High-speed, tedy USB 2.0, by bylo nezbytné přidat externí PHY. Což dle mého názoru není příliš vhodné řešení. V dokumentaci ADS převodníku k řetězení v módu Daisy-chain se zmiňují o tom, že v případě řetězení více než deseti převodníků mohou nastávat potíže a komplikace. Při realizaci pro 32 čipů by samozřejmě bylo potřeba vytvořit jinou desku, kde by se čipy osazovaly přímo na desku. Především kvůli délce jednotlivých propojovacích cest, omezení šumu a dalších nepříznivých jevů ovlivňujících správnou funkci celého systému. Nicméně muselo by se to vyzkoušet, protože společnost Texas Instruments se v dokumentaci ohledně propojování většího množství zmiňuje jen letmo. Určitě vhodným způsobem řešení by bylo připojení zřetězených ADS převodníků k procesoru pomocí více SPI. STM32F4 disponuje třemi SPI. Nicméně v tuto chvíli je limitující spíše propustnost USB. Bylo by potřeba to napsat přímo, protože nyní je to tak, že se vytvoří FIFO, které se plní a potom nastává přerušení, které to zkouší a v případě, že data jsou, je odešle. A tím, že se data odešlou, tak se celá funkce znova zavolá a v případě dalších dat jsou znovu odeslána. Ve chvíli, kdy data nejsou, se odešle 0 a smyčka se na nějakou dobu zastaví. Při realizaci 256 vstupů by bylo vhodné, kdyby se to mohlo dělat přímo pomocí DMA. A to sice tak, že někde sbírám data, mám Buffer, kde jsem vytvořil komandy a zadám odesílání dat. Mezitím si plním nějaký jiný Buffer. V případě, že by se to stíhalo, jeden by se odeslal, druhý by byl naplněný a střídalo by se to mezi sebou. DMA lze dokonce takto nastavit, že tohle celé probíhá samostatně.
29
5. Závěr Domnívám se, že výsledný prototyp odpovídá zadaným požadavkům a že i přes různé obtíže, nesnáze a komplikace při samotné realizaci, se mi podařilo vytvořit funkční řídící jednotku pro měření biologických signálů s vysokou hustotou dat. Ukázalo se tedy, že procesor STM32F4 je vhodný pro tuto řídící jednotku. Prototyp měl původně být koncipován pro čtyři ADS1298 převodníky, avšak já jsem měl k dispozici pouze tři čipy. Jeden je součástí vývojového kitu ADS1298ECG-FE. Další dva jsou ADS1294 tedy čtyř kanálové a obdržel jsem je teprve týden před termínem odevzdání bakalářské práce. Ve výsledném projektu je možnost propojení čtyř ADS1298 převodníků zohledněna, ale není otestována. I přes počáteční potíže s nastavením vývojového prostředí Eclipse a proniknutím do samotného tvoření programu v jazyce C, jsem dovedl tento projekt k jeho funkčnosti. Řešení na nepájivém poli se ukázalo jako ne příliš vhodné a proto jsem zvolil výrobu plošného spoje. Tato výroba se ovšem zdála být časově náročnější, ale vzhledem k množství pinů jednotlivých ADS převodníků by jejich propojování pomocí nepájivého pole a vyvedených pinů, bylo také velmi náročné a především nepřehledné. Jelikož vše probíhá ve vysokých frekvencích, je řešení na desce plošných spojů také zcela určitě spolehlivější než řešení pomocí nepájivého pole. Měření biologických signálů je velmi obsáhlé téma, a proto jsem se samotným měřením v této práci nezabýval. Na mém prototypu je co vylepšovat. Především co se vlastního řetězení týče, ale i způsobu přenosu dat do PC a následné zpracování naměřených dat, jak jsem uvedl v kapitole diskuse. Rád bych nejen pro to v tomto tématu měření biologických signálů pokračoval i v rámci diplomové práce.
30
6. Seznam literatury [1] Doc. Ing. Jiří Rozman, CSc. a kolektiv. Elektronické přístroje v lékařství. Praha: Nakladatelství Academia, 2006. 406 stran. ISBN 80-200-1308-3 [2] Marek Penhaker, Marin Imramovský, Petr Tiefenbach, František Kobza. Lékařské diagnostické přístroje – učební texty. Ostrava: Nakladatelství VŠB – Technická univerzita Ostrava, 2004. 332 stran. ISBN 80-248-0751-3 [3] Doc. Ing. Josef Svatoš, CSc. Biologické signály I. – Geneze, zpracování a analýza. Praha: Nakladatelství ČVUT, 1992. 204 stran. [4] Vladimír Váňa. ARM pro začátečníky. Praha: Nakladatelství BEN – technická literatura, 2009. 196 stran. ISBN 978-80-7300-245-6 [5] Doc. Ing. Milan Chmelař, CSc. Lékařská přístrojová technika I. Brno: Akademické nakladatelství CERM, s. r. o., 1995. 191 stran. [6] Jitka Mohylová, Vladimír Krajča. Zpracování biologických signálů [pdf]. Ostrava: Nakladatelství VŠB – Technická univerzita Ostrava, 2006. 135 stran. ISBN 978-80-2481491-9. http://www.elearn.vsb.cz/archivcd/FEI/ZBS/Mohylova_Zpracovani%20biosignalu.pdf [7] Ing. Pavel Herout. Učebnice jazyka C. 3. vydání. České Budějovice: Nakladatelství KOPP, 2000. 269 stran. ISBN 80-85828-21-9 [8] Ing. Pavel Herout. Učebnice jazyka C. 2. díl, České Budějovice: Nakladatelství KOPP, 1999. 236 stran. ISBN 80-85828-50-2
31