Response Slow Cubes
Transcription
Response Slow Cubes
Det Teknisk-Naturvidenskabelige Fakultet Aalborg Universitet S-sektoren TITEL: Neurofeedback - behandling af DAMP-børn PROJEKTPERIODE: 4. semester (S4) 3. februar - 28. maj, 2003 PROJEKTGRUPPE: 03gr475 GRUPPEMEDLEMMER: Kristian Rauhe Nielsen Ina Lewinsky Flemming Holbæk Gravesen Jørgen Kold Dan Stieper Karbing Toke Folke Christensen VEJLEDER: Kim Dremstrup Nielsen ANTAL KOPIER : 9 SIDEANTAL: RAPPORT : APPENDIKS : TOTAL : BILAGSRAPPORT : SYNOPSIS: Projektet omhandler neurofeedback som behandlingsmetode til DAMP-børn. DAMP-børn er i deres hverdag påvirket af mange problemstillinger grundet deres lidelse. Den anvendte medicinske behandling indebærer bivirkninger som mangel på appetit, og medicinens virkning er kortvarig. Formålet med projektet er at udvikle et neurofeedback-system, som vil være i stand til at give DAMP-børn feedback på baggrund af aflæst EEG. Udviklingen af systemet, som omfatter hardware såvel som software, har fulgt Struktureret ProgramUdviklings-metoden, som dog er blevet modificeret, så metoden har kunne give retningslinier for hardware- såvel som software-udvikling. Udviklingen af systemet er gennemløbet tre faser, først er problemstillingen blevet analyseret. På baggrund af analysen er systemet er blevet designet, hvorefter systemet er blevet testet og vurderet. Resultatet af projektet er et neurofeedback-system, BrainTrainer, som indbefatter en ekstern enhed, der forstærker det aflæste EEG-signal, digitaliserer signalet vha. en microcontroller og sender signalet som data til en computer. Endvidere indbefatter systemet et program på computeren, som udfører signalbehandling og indeholder en brugergrænseflade, der tillader behandleren at udføre indstillinger samt giver feedback. BrainTrainer har en række problemer. Systemets hardware er ustabilt, og brugergrænsefladen er langsom i forhold til opdatering. Det vurderes dog, at systemet opfylder projektets formål i og med, at feedback gives korrekt. . Forord Denne rapport er det skriftlige resultat af et projekt på 4. semester, Sundhedsteknologi ved Aalborg Universitet, udarbejdet af gruppe 475 i perioden 3. februar til 28. maj 2003. Rapporten henvender sig til medstuderende på AAU og de dertil knyttede vejledere samt fagpersoner, der beskæftiger sig med udvikling og anvendelse af systemer til neurofeedback. Temaet for dette semesters projekt er “Opsamling, behandling og præsentation af biologiske signaler”, hvor et sundhedsteknologisk problem løses ved hjælp af metoder såsom systemdesign, programmering og signalbehandling. Tak til John Hansen, Clemens Eder, Johannes Jan Struijk, Morten Fjordbak og Erik Hoffmann for hjælp under projektperioden. Aalborg Universitet, 28. maj 2003. ———————————– Toke Folke Christensen ———————————– Dan Stieper Karbing ———————————– Ina Lewinsky ———————————– Jørgen Kold ———————————– Kristian Rauhe Nielsen ———————————– Flemming Holbæk Gravesen II Læsevejledning Denne rapport er bygget op ved hjælp af teknikker beskrevet i modellen for Struktureret ProgramUdvikling (SPU) [Biering-Sørensen, hansen, Klim & Madsen 2000], hvilket betyder, at rapporten overordnet vil bestå af analyse-, design- og testafsnit. I analyseafsnittet vil der indgå en analyse af projektets problemgrundlag. Der vil herunder blive beskrevet, hvilke problemer der er med behandling af DAMP-børn, samt hvordan neurofeedback tænkes at kunne afhjælpe disse problemer. Der vil også være en beskrivelse af teorien bag hjernesignaler og afledning af EEG. Analyseafsnittet afsluttes med en kravspecifikationen, der tiltænkes som en brugerkravspecifikation, dvs. at abstraktionsniveauet tilpasses en evt. brugers tekniske viden. Umiddelbart efter kravspecifikationen vil der foregå en yderligere specificering af, hvorledes brugergrænsefladen er tænkt udformet. SPU-modellen er oprindeligt udviklet til softwaredesign, men da der i projektet både arbejdes med hardware og software vil der blive differentieret mellem disse. Softwaredesignet følger SPU-modellens V-model, hvorimod hardwaredesignet følger en modificeret V-model, som er introduceret i PE-kurset Systemkonstruktion. I henhold til semestrets tema ”Opsamling, behandling og præsentation af biologiske signaler” med fokusering på programmering. For at beskrive det samlede system bestående af hardware såvel som software, indføres et ekstra punkt i V-modellen efter kravspecifikationen, kaldet systemdesign. I systemdesignet inddeles systemet i enheder, hvor der specificeres om enhederne skal udgøres af hardware eller software. Der skal også udføres en systemtest inden accepttesten, som indbefatter integration af enhederne. Systemdesignet vil indbefatte et systemkrav-afsnit, hvori der for hver enhed uddybes kravene stillet i kravspecifikationen. Efter systemdesignet kan design af software såvel som hardware påbegyndes. I testafsnittet beskrives kort hvordan modul- og integrationstests er blevet udført. Derefter vil testspecifikationerne og testrapporterne for hhv. systemtest og accepttest blive beskrevet. Testspecifikationerne og testrapporterne for modul- og integrationstest vil være at finde i en bilagsrapport. Kildekode til software er at finde på medfølgende CD, hvorpå programmer, testværktøjer, samt inputdata brugt i forbindelse med projektet også findes. Denne udgave er fra d. 23. maj 2003 kl. 15.38 Indhold 1 Analyse 1.1 Indledning . . . . . . . . . 1.2 Behandling af DAMP-børn 1.3 EEG . . . . . . . . . . . . 1.4 Nye Ideer . . . . . . . . . 1.5 Systemdefinition . . . . . 1.6 Kravspecifikation . . . . . . . . . . . 1 1 3 7 9 14 15 2 Systemdesign 2.1 Overordnet struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Grænseflader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Systemkrav . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 27 28 29 3 Hardwaredesign 3.1 EEG-afledningsenhed - analogt interface . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Digitalt interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 35 43 4 Softwaredesign 4.1 Programdesign . . . . . . . . 4.2 Procesdesign - MSP430-proces 4.3 Moduldesign - MSP430 . . . . 4.4 Procesdesign - PC-proces . . . . . . . 49 49 53 57 70 5 Test 5.1 Testspecifikation for system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Udførsel af test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 93 97 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Konklusion 105 Litteraturliste 111 Appendiks 111 A Eksperiment - EEG 111 A.1 Eksperimentsprotokol til måling af EEG . . . . . . . . . . . . . . . . . . . . . . . . . 111 III IV INDHOLD B Anatomi og Fysiologi 121 B.1 Hjernens anatomi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 B.2 Oprindelsen af Electroencephalogram . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Bilag 1 I Testdokumentation - EEG-afledning I.1 Modultest - EEG-afledningsenhed . . . . . . . . . . . . . . . . . . . . . . . . . . . . I.2 Integrationstest - EEG-afledning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 8 II Testdokumentation - Digital interface II.1 Modultest - Digital interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . II.2 Modulintegration - Digital interface . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 15 19 III Testdokumentation - MSP430 III.1 Modultest - MSP430 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . III.2 Modulintegrationstest - MSP430 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 23 34 IV Testdokumentation - PC IV.1 Modultest-PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IV.2 Modulintegration - PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 39 74 Denne udgave er fra d. 23. maj 2003 kl. 15.38 1 Analyse I dette kapitel beskrives problemgrundlaget for projektet. Problemstillingen med DAMP-børn analyseres, hvilket skal munde ud i en kravspecifikation for det system, der i projektet ønskes realiseret. 1.1 Indledning Biofeedback er en behandlingsmetode, hvor opsamling af biosignaler fra en patients krop kan hjælpe patienten til at træne sig selv i at kontrollere sin krop bedre. Biosignalerne, der opsamles fra patienten, kunne eksempelvis være muskelsignaler ved elektromyografi (EMG), hjertesignaler ved elektrokardiografi (EKG) eller hjernesignaler ved elektroencephalografi (EEG). Biofeedback har vist sig at være effektivt i behandlingen af en række lidelser såsom stress, hypertension, smertetilstande og Attention Deficit and Hyperactivity Disorder (ADHD) [Rau, Bührer & Weitkunat 2003, Fuchs, Birbaumer, Lutzenberger, Gruzelier & Kaiser 2003, Belleggia & Birbaumer 2001, Ossebaard 2000]. I dette projekt vil der blive fokuseret på biofeedback med hjernesignaler, også kaldet neurofeedback. Stress Når neurofeedback bruges i behandlingen af stress, træner patienten sig selv i at kunne opnå en tilstand af afslappethed. Dette gøres ved at træne genereringen af en bestemt type hjernebølger, så patienten opnår en tilstand, hvor stress og nervøsitet forsvinder. Langtidsvirkninger af behandlingen er ikke blevet dokumenteret, men på kortere sigt giver behandlingen patienten mindre stress og nervøsitet [Pettersen & Hoffmann 2002, Fuchs et al. 2003, Ossebaard 2000]. ADHD ADHD er en mental sygdom, som hovedsageligt rammer børn. Disse børn har problemer med at holde opmærksomheden om én ting og er præget af hyperaktivitet. Det skaber mange problemer socialt, og børnene har svært ved at følge det normale uddannelsessystem. I Danmark har ADHD betegnelsen DAMP, som står for Dysfunction in Attention Motoric Perception, og betyder oversat problemer med opmærksomhed, motorik og opfattelse af virkeligheden [Pettersen & Hoffmann 2002, Hørder 2003, Ph.D., Edwin H. Cook, Mina Dulcan, Susan Campbell & Margot Prior 2002]. Sygdommens prævalens i hele den danske befolkning ligger på 0,2%, og der er en incidens på 500 nye tilfælde om året. Tallene er usikre, idet langt fra alle børn med lidelsen diagnosticeres som DAMP-børn [Adreasen & Davidsen 1999]. En større svensk undersøgelse viser, at 1.2 % har en svær grad af DAMP og 3 - 5.8 % har moderat til mild DAMP ud af den samlede børnepopulation [DR-Online 2000]. Det giver et antal på mellem 6.000 og 42.000 børn, hvis det antages, at danske og svenske forhold er ens. Der 1 2 Analyse er fire gange så mange drenge med DAMP som piger [Clarke, Barry, McCarthy & Selikowitz 2002]. 1.1.1 Formål I dette projekt analyseres problemstillingerne bag DAMP. Denne analyse vil indbefatte en beskrivelse af den nuværende situation med de forskellige behandlingstilbud, DAMP-børn modtager. Derudfra vil det blive beskrevet, hvorledes det i dette projekt tilsigtes at lave et system til neurofeedback. 1.1.2 Diagnosen DAMP I Danmark stilles diagnosen DAMP på grundlag af en systematisk beskrivelse af barnets adfærd både i hjem og skole samt en beskrivelse af intelligens, koncentrationsevne, afledbarhed, udholdenhed, aktivitetsniveau, hukommelse, sprogforståelse og social kompetence [Finn Ursin Knudsen 2000]. Diagnosen stilles normalt i samarbejde med en pædagogisk psykologisk rådgivende psykolog. Undersøgelser peger på, at man ved måling af hjernebølger lettere kan diagnosticere DAMP. Resultatet viser, at man med 90 % sikkerhed kan diagnosticere DAMP med denne metode [Lubar 2000, Clarke, Barry, McCarthy & Selikowitz 1998]. I 1998 afviste sundhedsstyrelsen at godkende diagnosen DAMP, fordi den er for upræcis. Sundhedsstyrelsen anerkender, at der findes børn med disse symptomer, men mener ikke, at der er forskningsmæssigt belæg for at gøre betegnelsen officiel. Diagnosen kommer i dag ind under nogle andre diagnoser. En diagnose, som DAMP-diagnosen ville komme ind under, er Forstyrrelse i aktivitetsniveauet, der dækker over forstyrrelser i evnen til at være opmærksom, koncentrationsevnen, aktivitetskontrol og at sidde stille. Derudover findes diagnosen forstyrrelser i den motoriske funktion, fin- som grovmotorik. Endelig er der en sidste diagnose, som er forstyrrelse i indlæringsevnen, der indebærer vanskeligheder med sproget, indlæringen eller opfattelse af form og afstand [Adreasen & Davidsen 1999, DR-Online 1999, Hørder 2003]. Den amerikanske betegnelse ADHD kan også deles op i undergrupper. Ved denne opdeling står ADHD for patienter med primært hyperaktivitet og impulsivitet, mens patienter med ADHDin primært har problemer med opmærksomheden. ADHDcom er den kombinerede type, hvor patienten har problemer både med hyperaktivitet og opmærksomhed [Clarke et al. 1998]. 1.1.3 DAMP-barnets situation Det rige billede på figur 1.1 viser hvilke personer, der har indflydelse på et DAMP-barn, og vil følgende blive beskrevet. Forældrenes forhold til barnet bliver anstrengt, da de får sværere ved at planlægge eller organisere hverdagen. Barnet forstår kun små og korte instruktioner. Andre ting, der kan påvirke forældrene, kan f.eks. være, hvis de er på indkøb, hvor barnet kan være meget forstyrrende og råbe op. Denne opførsel fra barnet falder tilbage på forældrene, der i omverdenens øjne kan komme til at fremstå som dårlige forældre og opdragere. DAMP-barnets forhold til omverdenen bliver svækket, da barnet har svært ved at se sammenhængen i hverdagen, handler impulsivt og har svært ved at fastholde opmærksomheden. Denne udgave er fra d. 23. maj 2003 kl. 15.38 1.2 Behandling af DAMP-børn 3 Dette bevirker, at personer, som f.eks. andre børn der ikke forstår tilstanden, distancerer sig fra DAMPbarnet [Finn Ursin Knudsen 2000]. Forældre SKOLE FRITID Omverden Psykolog/ pædagog Manglende Selvtillid/selvværd Figur 1.1: Rigt billede, der med pilene viser, hvilke elementer, der har en indflydelse på barnet og dets omgivelser. Det illustreres, hvordan forældrene påvirkes af omverdenens syn på DAMP-barnet, samt hvordan en indsat psykolog eller pædagog påvirker barnet i skolen, og giver barnet manglende selvtillid. I skolen kan DAMP-barnet være et let offer for mobning. Da barnet ikke kan bevare overblikket og ikke kan koncentrere sig over længere perioder, bliver barnet et forstyrrende element for de andre børn i klassen. For at afhjælpe denne situation, bliver der oftest indsat en ekstra pædagog og/eller tilknyttet en psykolog. Denne negative opmærksomhed på barnet resulterer i, at det kan komme til at lide af manglende selvtillid og derved få dårligt selvværd[Hørder 2003, Finn Ursin Knudsen 2000]. 1.2 Behandling af DAMP-børn Der er flere forskellige metoder, der kan bruges til det formål at hjælpe DAMP-børn i deres hverdag. Betegnelsen DAMP dækker over så mange forskellige ting, at behandlingsmuligheder er mange og forskellige. Det er derfor også meget individuelt, hvilken behandling det pågældende barn har behov for. Generelt er det vigtigt, at der bliver skabt en regelmæssighed i hverdagen, så barnet nemmere kan overskue tilværelsen. Forældrene skal være tydelige, klare og konsekvente i deres krav til barnet, og alle forstyrrende elementer i barnets hverdag skal reduceres [Hørder 2003]. I det følgende uddybes behandlingsmulighederne for barnet, og endvidere er behandlingsformerne illustreret på det rige billede på figur 1.2 side 5. Oplysning Det er essentielt, at der sørges for grundig oplysning om DAMP og det individuelle barn alle steder, hvor barnet færdes. Forældrene har brug for oplysning om, hvordan de skal tale til barnet, hvad de kan kræve af barnet, og hvorledes hverdagen bedst struktureres [Finn Ursin Knudsen 2000]. På skolen oplyses det, så pædagoger og lærere er klar over problemer og ikke opfatter barnet som uopdragent. Endvidere tages der stilling til, om barnet har behov for at komme i en specialklasse for ekstra Denne udgave er fra d. 23. maj 2003 kl. 15.38 4 Analyse støtte både med hensyn til socialliv og koncentrationsbesvær. Ofte er en fritidsinstitution indblandet, der også skal have oplysninger, så der her kan tages de nødvendige hensyn til barnet. Alt dette fører til en mere struktureret hverdag for barnet, der herved får nemmere ved at forholde sig til hverdagen. [Finn Ursin Knudsen 2000] Pædagogik Har barnet koncentrationsbesvær kan en specialklasse komme på tale, hvor der typisk er færre elever, flere pædagoger og en indretning, der tager hensyn til de besvær børnene har. Ofte er DAMP-børnene ikke på samme indlæringsniveau som deres jævnaldrende og har derfor også brug for yderligere støtte. I tilfælde med sociale problemer er det også her, der kan gøres en yderligere indsats for at få børnene til at føle sig trygge. Endvidere kan en talepædagog inkluderes, hvis børnene har problemer med sproget [Hørder 2003]. Psykologi Barnet har i forbindelse med konstateringen af DAMP ofte oplevet nederlag både fagligt og socialt, hvilket kan præge barnets selvopfattelse negativt. Derfor tilbydes psykologibehandling både til at modvirke depression og til at indøve en strategi for at undgå eventuelle temperamentsproblemer [Finn Ursin Knudsen 2000]. Fysioterapi Er der tale om børn med motoriske problemer vil der også blive tilbudt behandling hos en fysioterapeut, så det ved træning kan blive muligt for barnet at opnå en bedre motorisk kontrol [Finn Ursin Knudsen 2000]. Medicinsk behandling I Danmark behandles DAMP-børn, der har behov for medicinsk behandling, stort set kun med lægemidlet methylphenidat, der har en stimulerende effekt på centralnervesystemet ved at øge signalstoffer i hjernen som dopamin. Der er en teori om at nervesignaler i DAMP-børn ledes langsommere, eller at der bliver exciteret for få nerver. Methylphenidat, som ligner amfetamin i opbygning og effekt, stimulerer bl.a. synapsekløfterne med diverse transmitterstoffer, så nervesignalerne ledes bedre [Clarke et al. 2002]. Midlet får barnet til at slappe af og afhjælper hyperaktivitet og letafledelighed. Dog har det visse bivirkninger såsom svimmelhed, kvalme, søvnløshed samt evnen til at give infektioner i de øvre og nedre luftveje. Der bruges også enkelte andre præparater som f.eks. deksamfetamin, der går ind og påvirker centralnervesystemet anderledes, da methylphenidat ikke har effekt på alle børn [Pettersen & Hoffmann 2002, kompetenceprojektet om DAMP 2002]. Methylphenidat har den ulempe, at effekten hurtigt ophører. Det gør, at det er nødvendigt at give det med 3-4 timers mellemrum flere gange dagligt for at opnå den ønskede virkning. Hvis barnet er i den tidlige skolealder, kan der opstå problemer i forbindelse med denne medicinering, da man ikke kan stille barnet ansvarligt for at tage medicinen, og det derfor er nødvendigt med hjælp fra pædagoger eller andre voksne [Sørensen 1999]. Andre præparater er under udvikling, f.eks. er der i USA taget et langtidsvirkende medikament i brug kaldet Concerta, men det kræver flere undersøgelser før det kan godkendes til det danske marked. Generelt er der mange forskellige præparater på udviklingsstadiet. Der er bl.a. stoffer der ikke er centralstimulerende som methylphenidat samt andre, der kan gives til børn, der ikke opnår den ønskede effekt af de nuværende tilbud [kompetenceprojektet om DAMP 2002]. I Danmark fokuseres også på mange andre behandlingsmetoder end medicinering, og der ordineres Denne udgave er fra d. 23. maj 2003 kl. 15.38 1.2 Behandling af DAMP-børn 5 derfor ikke medicin uden samtidig at anbefale pædagogiske metoder. Det skal også nævnes, at det er vigtigt, at medicineringen er under nøje kontrol, da det er ubehageligt for barnet og dets omgivelser når barnets adfærd ændres ukontrolleret i tilfælde af, at medicinen holder op med at virke [Sørensen 1999]. X Y Z [ \ ] c ^ d _ ` a e b f < M N O P = > ? @ A B C D E S T U V 6 7 8 9 : H I J K L W g 5 G Q R 4 F h i j k l m n o p q r s t u v w x y ; ! " # $ % & ' ( ) * + , - . / 0 1 2 3 Figur 1.2: Illustration af behandlingsformerne i forbindelse med behandlingen af DAMP-børn, hvor pilene indikerer behandlingstilbudene til DAMP-barnet. Det ses, hvordan oplysning om barnets lidelser, psykologhjælp, specialklasse, fysioterapi, talepædagogik, medicinering og neurofeedback udgører DAMP-barnets behandlingstilbud. EEG-neurofeedback I USA har man i flere år praktiseret EEG-neurofeedback for at hjælpe DAMPbørn [Rossiter & Vague 1995]. I modsætning til USA er behandlingen en forholdsvis ny metode i Danmark, idet kun ca. 6 børn har modtaget neurofeedback herhjemme [Pettersen & Hoffmann 2002]. Undersøgelser viser, at det har en positiv effekt både på barnets opmærksomhed, koncentrationsevne og behovet for methylphenidat [Fuchs et al. 2003, Linden, Habib & Radojevic 1995, Pettersen & Hoffmann 2002]. Barnet får feedback fra de hjernebølger, der udsendes. Den feedback er enten positiv eller negaDenne udgave er fra d. 23. maj 2003 kl. 15.38 6 Analyse tiv alt efter, om der er tale om hjernebølger, der indikerer koncentration eller uopmærksomhed. Derved kan barnet lære selvregulering, hvor der kan være en så høj selvkontrol, at barnet kan bestemme sig for at gå ind i en bestemt tilstand [Pettersen & Hoffmann 2002, Alhambra, Fowler & Alhambra 1995]. Undersøgelser har vist, at der er forbedringer både set med forældrenes øjne, set ved test af IK og ved ændringer af hjernebølgerne fra børnene [Pettersen & Hoffmann 2002]. Neurofeedback menes at kunne give effekt i op til 10 år efter behandlingen, men de fleste undersøgelser har været præget af små undersøgelsespopulationer og det har været svært at sikre, at der ikke har været en placebo-effekt i studierne [Lubar, Swartswood, Swartswood & Timmermann 1995, DR-Online 1999, Linden et al. 1995]. 1.2.1 Behandlingen generelt På figur 1.2 ses det, at der er mange instanser, der påvirker DAMP-barnet, hvorfor hele familien bliver involveret. Det i sig selv kan være en prøvelse, og DAMP-barnet, der i forvejen har problemer med at holde kontrollen over sig selv og omgivelserne, får derved sværere ved at forholde sig til sin tilstand. Barnet befinder sig til dagligt i skolen, hvad enten der er tale om specialklasse eller ej. Ofte er det også på skolen eller i fritidsordningen, barnet har kontakt med en talepædagog, hvis der er behov for det. Derudover ser barnet evt. en psykolog og en fysioterapeut, mens egen læge også konsulteres. Dvs. der er tale om et samspil mellem offentlige og private instanser i behandlingen af barnet, samtidig med at forældrene også har et ansvar for at give barnet de bedst mulige rammer. Methylphenidat-behandlingen har en sådan effekt på barnets adfærd, at det kan føre til ændringer i behandlingen af barnet hos de andre instanser, idet barnet ofte har en normal adfærd, mens det er under indflydelse af methylphenidats virkning. Dog er det på grund af methylphenidats hurtige udskillelse af kroppen svært for barnets omgivelser at sikre sig, at barnet altid er i den rolige tilstand. Ofte er barnet fri for behandlingen hjemme hos forældrene, da methylphenidat har en så stor effekt på appetitten, at barnet stort set ikke spiser, mens medicineringen har effekt [Sørensen 1999]. Derfor har forældre og skole/fritidsordning et forskelligt syn på barnets tilstand, hvilket kan føre til uoverensstemmelse i behandling og opdragelse af barnet. 1.2.2 Økonomi Der er store økonomiske omkostninger forbundet med DAMP-børn. For det første stiller børnene større krav til de instanser der har med barnet at gøre rent pædagogisk. Det kunne være børnehaven eller skolen, hvor et DAMP-barn typisk vil kræve flere pædagoger og mere opmærksomhed end normale børn. De direkte udgifter for samfundet består altså i, at DAMP-barnet har større behov for ekstra pædagoger og psykologer end et raskt barn. Derudover vil der også være udgifter til eventuel medicinering og behandling generelt. Af indirekte udgifter kan nævnes forældrenes nedsatte arbejdskapacitet, fordi DAMP-barnet kræver meget opmærksomhed og planlægning. En stor del af DAMP-børnene vil også være plaget af symptomerne igennem hele deres liv og derved have sværere ved at få arbejde og koste samfundet penge i form af overførselsindkomster. Idet prævalensen for DAMP-børn er stor, vil der være mange penge at spare ved at indføre omkostnings-effektive terapi-tilbud. Denne udgave er fra d. 23. maj 2003 kl. 15.38 1.3 EEG 7 1.2.3 Problemformulering Udfra ovenstående afsnit ses, at den nuværende behandling af DAMP-børn har nogle problematiske områder. Hovedsageligt er det bivirkningerne ved methylphenidat-behandlingen, der giver problemer både med hensyn til barnet og dets omgivelser. De pædagogiske metoder er nødvendige og ikke en egentlig behandling af barnets tilstand, men blot en metode til at få barnet tilpasset den verden, det lever i ved at forbedre funktionerne i hverdagen og begrænse de tillægsproblemer, der måtte komme. Det samme er tilfældet med den medicinske behandling, idet methylphenidat kun har effekt, mens det er i kroppen. Selve tilstanden, barnet befinder sig i, ændres drastisk under medicinbehandling, hvilket kan chokere både forældrene og barnet selv, idet det i nogle tilfælde kan virke som om, barnet er to forskellige personer alt efter, om der er tale om medicinsk behandling eller ej. Ved neurofeedback undgås de bivirkninger, der er ved methylphenidatbehandling. Endvidere tyder det på, at neurofeedback har en længere effekt, og at metoden har vist sig at kunne minimere behovet for medicinsk behandling og endda behovet for særbehandling i skole og fritidsordning over en længere periode. Derfor vælges det at undersøge denne behandlingsform nærmere. Dog skal det nævnes, at der heller ikke her er tale om en decideret kurering af barnet, men nærmere en metode til selvregulering fra barnets side [Ridder 2000]. Derfor vil der i dette projekt blive undersøgt, hvordan neurofeedback kan realiseres. Fokus i projektet vil således ikke være at undersøge, om neurofeedback kan behandle DAMP-børn, men udelukkende vil være hvordan systemet realiseres. 1.3 EEG EEG er en afbilning af signaler, der opstår som følge af potentialforskelle over den cerebrale cortex 1 . EEG-signaler ligger i frekvensområdet fra tæt ved DC og til omkring 40Hz og afspejler den mentale aktivitet. EEG-signalernes amplitude ligger som hovedregel i området 10-100µV peak to peak ved aflæsning på skalpen, dog er der eksempler på amplituder op til 200µV. Generelt indikerer de lave frekvenser en lav mental aktivitet og de højere frekvenser øget eller intens aktivitet. Frekvensområdet er inddelt efter den mentale aktivitet i delta-, theta-, alfa-, beta- og gamma-aktivitet. Beta-aktiviteten kan yderligere inddeles i Sensorisk Motorisk Rytme(SMR)-, betaI- og betaII-aktivitet. EEG-signaler kan forbindes med forskellige mentale såvel som fysiske tilstande (for oversigt se tabel ??). Følgende beskrives de forskellige frekvensområder samt de dertil associerede tilstande. De angivne frekvenser skal kun anses for generelt gældende. Hjernesignaler er meget individuelle idet en persons alfa-aktivitet f.eks. kan have en frekvens, der hos en anden person repræsenterer beta-aktivitet. Endvidere varierer amplituden og frekvenssammensætningen af de forskellige signaler meget fra person til person, selv ved de samme psykiske tilstande. [Webster, Jr., Neuman, Jr., Webster & Wheeler 1998, Ernst Niedermeyer 1987, Clarke et al. 2002, Clarke et al. 1998, Egner & Gruzelier 2001, Collura 2001] Delta (0,5-4 Hz) Delta-bølger ses ved meget små børn, voksne i dyb søvn, ved trance eller ved hjerneskader. Delta-aktivitet kan registreres spredt over hele cortex. Delta-bølger associeres med føl1 For uddybende information se appendiks B Denne udgave er fra d. 23. maj 2003 kl. 15.38 8 Analyse gende typer opførsel: sløvhed, uopmærksomhed, ikke bevægende. [Webster et al. 1998, Collura 2001] Theta (4-8 Hz) Theta-bølger registreres typisk over den temporale og parietale cortex. Theta-aktivitet ses typisk hos børn og er ellers udtryk for voksne, der oplever følelesemæssig stress, skuffelse eller frustation. DAMP-børn har relativt mere Theta-aktivitet end normale børn. Thetaaktivitet associeres også med kreativitet, intuitivitet, døsighed, mentalt ufokuseret og forstyrret. [Webster et al. 1998, Schwartz & Associates 1995, Ernst Niedermeyer 1987, Clarke et al. 2002, Collura 2001] Alfa (8-12 Hz) I vågen og afslappet tilstand registreres ved hovedparten af normale individer de rytmiske alfa-bølger, der kan karakteriseres som sinusformede. Bølgerne er mest intense occipitalt, men kan også registreres frontalt, centralt og parietalt. Alfa-bølgerne forsvinder, hvis personen falder i søvn eller, hvis personen retter sin opmærksomhed mod noget specifikt f.eks. som følge af et sensorisk input. Amplituden for alfa-signaler er beskrevet til at nå 200µV, men ligger normalt under 50µV ved voksne. Alfa-aktivitet associeres med meditation og afslapning. [Webster et al. 1998, Ernst Niedermeyer 1987, Collura 2001] Beta (12-30 Hz) Når den mentale aktivitet intensiveres, erstattes alfa-bølgerne med de asynkrone betabølger, disse signalers amplitude overstiger sjældent 30µV. Beta-bølgerne kan inddeles i undergrupper, som hver forbindes med et bestemt niveau af mental aktivitet. Afhængig af litteraturen inddeles beta-aktivitet i enten to eller tre undergrupper. Der er her valgt at inddele beta-aktivitet i tre undergrupper, da der i litteratur omhandlende neurofeedback skelnes mellem SMR- og betaIaktivitet i det lave frekvensspektrum af beta-aktivitet. [Webster et al. 1998, Ernst Niedermeyer 1987, Collura 2001] SMR (12-15 Hz) SMR-aktivitet ses hos personer, der er afslappede, men stadig fokuserede. SMR bliver hæmmet ved bevægelse. SMR-aktivitet aflæses normalt over sensori-motorisk cortex, som er placeret centralt. Mangel på SMR-aktivitet associeres med mangel på fokuseret opmærksomhed som ved bl.a. DAMP-børn. [Collura 2001, Schwartz & Associates 1995, Egner & Gruzelier 2001] BetaI (15-18 Hz) BetaI-bølger ses ved mental aktivitet og koncentration og afledes fortrinsvist parietalt og frontalt. BetaI-aktivitet associeres med mental aktivitet, og en opmærksom og aktiv tilstand men ikke ophidset. Mangel på betaI-aktivitet associeres ligeledes med lidelser som DAMP. [Webster et al. 1998, Schwartz & Associates 1995, Collura 2001, Egner & Gruzelier 2001] BetaII (18-30 Hz) BetaII-bølger ses ved intens mental aktivitet såsom matematiske beregninger, angst, ophidselse, stress eller ekstase. BetaII-aktivitet aflæses ligesom betaI-aktivitet primært parietalt og frontalt. [Webster et al. 1998, Collura 2001] Gamma (30-40 Hz) Gamma-aktivitet beskrives meget begrænset i litteraturen, og er ikke beskrevet i størstedelen af de læste kilder. Gamma-aktivitet associereres med dybe tanker. [Collura 2001, Ernst Niedermeyer 1987] Denne udgave er fra d. 23. maj 2003 kl. 15.38 1.4 Nye Ideer 9 1.3.1 EEG-neurofeedback og DAMP-børn DAMP-børn har en anden fordeling af hjernebølger end normale børn på samme alderstrin. Ofte er der tale om flere langsomme hjernebølger og færre hurtige hjernebølger end normalt. Hos DAMP-børn ses således en forøgelse af delta- og theta-aktiviteten samtidig med, at der er en nedsat alfa- og betaaktivitet i forhold til raske børn [Fuchs et al. 2003]. Ved neurofeedback-træning med DAMP-børn trænes hovedsageligt SMR, da det har vist sig at have en positiv effekt på børnenes opmærksomhed og koncentration [Rossiter & Vague 1995]. Det menes at have en effekt, fordi barnet ved øget kontrol af funktionerne, der genererer signaler ved disse frekvenser, bedre kan styre de impulsive bevægelser og følelser. SMR-træning menes at have en inhibitorisk effekt på de neuroner i thalamus, som interagerer med de somatosensori og sensomotoriske cortices. [Egner & Gruzelier 2001] BetaI-træning beskrives ligeledes som relevant for DAMP-børn [Schwartz & Associates 1995] men ikke entydigt, da visse undersøgelser ikke har kunnet påvise samme effekt ved neurofeedbacktræning baseret på betaI som ved SMR-træning [Egner & Gruzelier 2001]. Ved neurofeedback trænes børnene ofte til at hæmme de helt langsomme hjernesignaler (delta og theta) og de helt hurtige (betaII og gamma) samtidig med, at de skal søge at fremme SMR. Det vil sige, at spektret, som de trænes i, ligger fra ca 12-15 Hz, og derfra specificeres spektret til det enkelte barn alt efter, hvilken tilstand der er tale om. Ved feedback-træning opsamles og samples hjernebølgerne som EEG. Der laves en frekvensanalyse af det samplede signal, hvorved det kan ses, hvilken frekvens af hjernebølger, der er dominerende. [Pettersen & Hoffmann 2002] Barnet får udfra denne undersøgelse enten positiv eller negativ feedback alt efter, om hjernebølgerne ligger i det rigtige frekvensområde. Det vil sige, at der er tale om positiv feedback, når barnet er roligt og koncentrerer sig, mens der er tale om negativt eller ingen feedback, når barnet er uroligt. [Pettersen & Hoffmann 2002] Der er mange eksempler på hvilken slags feedback, der kan være tale om. Der er både auditiv og visuel feedback, og den visuelle feedback er ofte i form af et computerspil eller lignende, hvor den der spiller har succes, hvis der er tale om den rigtige hjerneaktivitet, mens spillet eksempelvis går i stå, hvis personen bliver ukoncentreret. [Pettersen & Hoffmann 2002, Ridder 2000, Rossiter & Vague 1995] Denne træning af hjernen foregår over 30-40 sessioner [Pettersen & Hoffmann 2002, Alhambra et al. 1995], hvorefter det vurderes, om behandlingen har hjulpet. I USA har der været en positiv effekt hos op til 80% af børnene[Alhambra et al. 1995, Robbins 1997]. 1.4 Nye Ideer Som nævnt tidligere bliver neurofeedback brugt til behandling af DAMP-børn. For at få nye ideer til projektets indhold vil der med udgangspunkt i SPU-modellen blive brugt følgende tre metoder: Forbilleder, metaforer og eksperimenter. Følgende vil de tre metoder blive beskrevet samt de fremkomne ideer ved at benytte metoderne i dette projekt. Denne udgave er fra d. 23. maj 2003 kl. 15.38 10 Analyse 1.4.1 Forbillede MentalFitness I Danmark benyttes neurofeedback til at behandle DAMP-børn, på behandlingsklinikken mentalfitness. Da dette projekt også tilsigtes at kunne bruges til behandlingen af DAMP-børn, vil deres metode og fremgangsmåde være et forbillede i dette projekt [Hoffmann 2001]. MentalFitness bliver blot benyttet som et konkret forbillede, idet samme behandlingsmetode bliver benyttet af flere firmaer i USA. Behandlingsmetoden kan beskrives med følgende figur: ê ë ì í î ï ¥ ¦ § ¡ ¨ Û { | } ~ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ü Ý Þ ß à á â ã £ ª å z ¢ © æ « ¤ ¬ ® ç ä Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú è ¯ ° ¸ ¹ ± ² º é ³ ´ » µ ¼ ¶ ½ ¾ · ¿ Figur 1.3: Figuren viser, hvordan behandlingen overordnet fungerer ved Mentalfitness. Den stiplede firkant viser system/omverden grænsefladen. Det ses, hvordan behandleren kommunikerer med DAMP-barnet, som er koblet til feedbacksystemet med elektroder. Det elektriske signal bliver analyseret og alt efter, om signalet er tilfredsstillende, gives positiv feedback eller negativ feedback. Det fremgår også, at behandleren har en grænseflade til systemet, hvor det er muligt at indstille det og se resultaterne fra en behandlingssession Figur 1.3 viser, hvorledes Mentalfitness, og lignende firmaer fra USA [Consultants 2001, Safier 1998, Playattention.com 1994, Burke, Rawlings & Sharif 2000] har benyttet neurofeedback i deres system. Hjernebølger hos DAMP-barnet registreres af elektroder. Disse er med bånd spændt rundt om hovedet, så de fikseres på skalpen. På denne måde måles hjernebølgeaktiviteten på flere dele af cortex. Mentalfitness har, udover de i litteraturen beskrevne successer med neurofeedback [Fuchs et al. 2003, Alhambra et al. 1995, Ridder 2000, Rossiter & Vague 1995], selv et dokumenteret tilfælde på, at et barn har haft gavn af behandlingen [Hoffmann 2002]. I det tilfælde blev der trænet SMR-aktivitet (se afsnit 1.3). Ved at træne denne aktivitet skulle patientens koncentrationsevne forbedres, idet angst og forstyrrelser, som forringer koncentrationsevnen, er karakteriseret ved primært lavfrekvente theta-, deltabølger, men alfa- samt betaI- og betaII-bølger repræsenterer også uønsket aktivitet. I det konkrete tilfælde blev der brugt en jonglør på en computerskærm, som jonglerede, når barnet genererede SMR-bølger, og stoppede med at jonglere, når hjernebølgerne var præget af delta, theta, alfa, betaI eller betaII. Samtidig med billedet vistes en barre, der gik op eller ned alt efter, om barnets niveau af SMR-bølger steg eller faldt. Der blev også brugt auditiv feedback, som bestod i en behagelig lyd og ved hjælp af disse to slags feedback kunne barnet træne sig selv i at forbedre koncentrationsevnen. Systemet på Mentalfitness benytter en computer samt en EEG-forstærker til at modtage og processere Denne udgave er fra d. 23. maj 2003 kl. 15.38 1.4 Nye Ideer 11 hjernebølgerne. Derudover kræves der også et kendskab til placering af elektroder. Softwaren der bruges ved Mentalfitness hedder Biograph [Biograph 2002], og denne giver mulighed for monitorering og feedback, ved benyttelse af en række biosignaler, bla. EKG, EMG og EEG. Programmet har en brugerflade til behandleren og en anden til patienten. Behandleren har adgang til en teknisk brugerflade med mulighed for indstilling af feedback, samt mulighed for at analysere opsamlet data. Behandleren har mulighed for at tilpasse feedback-stimuliet til den enkelte bruger, da programmet muliggør brugen af forskellige medier f.eks. lydfiler, audio-CDer samt film. Det er endvidere muligt at downloade specifikke feedback-animationer fra producentens hjemmeside [Biograph 2002]. Behandleren har derved kontrol over patientens brugerflade og hvilken slags feedback, der skal gives. Den dynamiske opbygning af feedback-systemet gør det muligt at tilpasse patientbrugerfladen til den enkelte patient og dennes behandlingsforløb. F.eks. kan tærskelværdien ændres, så der kræves mere af patienten for at få positivt respons, hvis patienten gør fremskridt. I programmet kan feedback indstilles til at beregnes på baggrund af energien i det Definerede FrekvensOmråde(DFO), der ønskes trænet ved behandlingen, i forhold til den samlede energi i EEG-spektret. DFO kan indstilles, således at flere forskellige frekvensbånd kan trænes. Når den forholdsmæssige energi i DFO udregnes kan resultatet beskrives som DFO-ratio. Under en session gemmer programmet de registrerede data, efterfølgende er det så muligt for behandleren at analysere data. Her tilbyder Biograph en række forskellige funktioner, f.eks generering af statusrapport med statistiske informationer baseret på en eller flere sessioner. Desuden kan programmet vise brugeren afbildning af flere af de målte biosignaler på engang. [Biograph 2002] Vurdering af ideerne EEG-afledning At aflede EEG flere steder på skalpen kan være en god idé, da nogle typer hjernebølger er kraftigere nogle steder end andre. Måling af SMR-aktiviteten Mentalfitness har blandt mange andre haft gode erfaringer med træning af SMR-frekvenserne. Da feedback på baggrund af SMR aktivitet er det hyppigst benyttede til behandling af DAMP, skal det være muligt at bruge SMR i det i projektet realiserede neurofeedbacksystem. Feedback via en computer Når en computer indbefattes i feedbacksystemet gør det det nemmere at forbedre og indstille det program, der modtager input og skal give feedbacket. En stationær computer er svær at flytte rundt med og afgrænser brugen af systemet til bestemte steder, såsom behandlingsinstitutionen. Hvis systemet derimod var bærbart, hvilket også kunne gøres med en bærbar computer, ville det kunne tages i anvendelse mange steder, hvilket muligvis kunne øge anvendelses- og behandlingsmulighederne. Visuel og auditiv feedback Feedback, der appellerer til patienten ville kunne bruges i dette projekt, da det vil gøre det nemmere for patienten af udnytte feedbacket. Feedbacket ville eksempelvis gøresmere appellerende hvis det indeholder både auditive og visuelle elementer. Denne udgave er fra d. 23. maj 2003 kl. 15.38 12 Analyse Registrering af flere biosignaler Ved stressbehandling kunne EKG måles, og tolkes som et udtryk for, hvor stresset personen var. Ved behandlingen af DAMP, vurderes det dog, at det kun vil være relevant at give feedback udfra EEG. Varierende feedback og brugerflade-indstillinger Hvis feedbacket kan varieres, og systemet kan indstilles, som behandleren ønsker , giver det behandleren mulighed for at tilpasse behandlingen af den enkelte patient bedre. F.eks. vil der være forskel på, hvad et 4-årigt og et 9-årigt barn finder interessant. Justerbar DFO Det ville udvide anvendelsen af et neurofeedbacksystem betydeligt, hvis det kunne indstilles hvilket frekvensområde, der ønskes trænet. Analyseværktøjer Værktøjer til analysering af patientens data i programmet muliggører hurtig evaluering af patientens tilstand. Det er endvidere muligt at gøre relevante analysemetoder let tilgængelige, så der ikke kræves større tekniske kvalifikationer for at analysere patientdata. 1.4.2 Metaforer I dette afsnit beskrives metaforer, som har et idégrundlag, der kan være interessant for dette projekt, men som bliver anvendt til andre formål. Formålet med at finde metaforer er at undersøge, om der eksisterer nogle ideer, der kunne benyttes i dette projekt. Til dette projekt hentes inspiration fra metaforen Cyberlink. Cyberlink er et brain-computer interface, dvs. et system som forbinder brugerens hjernesignaler, med f.eks. en pc. Det er anvendelsen af hjernesignaler, som bevirker, at Cyberlink har visse ligheder med et neurofeedbacksystem. Cyberlink er et system, der er udviklet til at hjælpe svært handikappede patienter med f.eks. lammelser eller sclerose. Disse personer kan have meget svært ved at udtrykke sig, da innerveringen af talemusklerne kan være mistet. Cyberlink anvender EOG, EMG samt EEG til at styre forskellige programmer inklusiv spil, simpelt skriveprogram med mere. Biosignalerne inklusiv hjernesignalerne aflæses vha. et pandebånd med tre elektroder i panderegionen. For at patienten ikke skal risikere at få stød fra elnettet, er elektroderne og computeren galvanisk adskilt. En feature ved Cyberlink er, at det er muligt at få afbilledet alle typer hjernesignaler som en reeltids-måling, hvor der er barrer, der viser de forskellige hjernesignaler og deres intensitet. Endvidere kan man indstille, hvilke EEG-frekvensområder og tærskelværdi, der skal benyttes til at trigge kontakten.[OPL 1995] Endvidere er der mulighed for at lagre patientindstillinger, så de kan tilgås senere. En feature i Cyberlink, som næsten er standard til ethvert computerprogram i dag, er hjælpefunktioner, der kan hjælpe brugeren med at forstå programmets opbygning og funktioner. Denne udgave er fra d. 23. maj 2003 kl. 15.38 1.4 Nye Ideer 13 Vurdering af ideer Af overstående er følgende ideer fremkommet og vurderet. Elektroder placeret i panden Afledning af EEG-signaler frontalt har været diskuteret før og kan sansynligvis også bruges i dette projekt. I den forbindelse kunne der også hentes inspiration fra Cyberlinkelektroderne. Sikkerhed Det er en af de højeste prioriteter i et system, der er koblet direkte til patienten, at denne beskyttes. Patienten må ikke påvirkes af mærkbar strømstyrke. Det er derfor en mulighed at få apparaturet tættest på patienten til at køre på batterier, og ved overførsle til computer lade signalet overføres optisk, inden det kommer i kontakt med elnettet. EEG-signaler som kontakt I Cyberlinksoftwaren bliver en tærskelværdi for EEG-signalerne brugt til at vælge bogstaver på et tastatur. Neurofeedback til DAMP-børn fungerer meget på samme måde, da der skal laves en sådan kontakt, som kan skifte imellem positivt og negativt feedback. Indstilling af tærskelværdier Indstilling af hvornår der skal skal gives positiv feedback er essentielt ved behandling med feedback. Ved neurofeedback skal det derfor kunne indstilles, hvor stor DFOratioen skal være, før der modtages positiv feedback. Visning af flere signaltyper på én gang Det vil ikke være relevant for dette projekt at benytte flere DFO’er ved samme session. Som analyseværktøj for en behandler, kunne det dog være en idé, hvis det var muligt at se hvordan en session havde set ud, hvis der blev benyttet forskellige DFO-ratier, da det ville være muligt at se den præcise udvikling af terapien. Patientjournaler Det ville være være godt, hvis neurofeedbacksystemet havde samme mulighed som Cyberlink med at lagre patientindstillinger, således at det ikke var nødvendigt at indtaste data for en patient mere end en gang. Patientjournalerne kunne også udvides til at ligge i en database, samt at give mulighed for at lagre det opsamlede data i samme database. Hjælpefunktioner Ved hjælp af hjælpefunktioner vil gøre det hurtigere og nemmere for en ny bruger at sætte sig ind i systemet. 1.4.3 Eksperimenter Eksperimenter kan bruges til at afprøve egne ideer og undersøge på egen hånd, om disse er mulige. I det følgende er anført resultaterne fra en test udført i EEG-laboratoriet på Aalborg Universitet. Denne udgave er fra d. 23. maj 2003 kl. 15.38 14 Analyse Eksperimentresultater Feedbacktype, elektrodeplacering og afledningstype er eksperimentelt undersøgt, og eksperimentprotokollen, data og yderligere analyse findes i appendiks A.1. Eksperimentet er ikke tilstrækkeligt til at afgøre med sikkerhed, hvilken elektrodeplacering eller hvilken type stimuli, der er mest optimal, men kan kun bruges som retningsgivende resultat. Dette skyldes først og fremmest den meget begrænsede population eksperimentet er udført på, samt eksperimentets omfang. Yderligere fejlkilder og usikkerheder er uddybet i appendiksafsnittet. Med hensyn til afledningstype viste forsøget at bipolær afledning giver mere stabil og højere DFO-ratio i forhold til monopolær. Dog er problemet med bipolær afledning bl.a. at det signal, der fås, har meget lille amplitude. Fordi fordelene ved bipolær er beskedne, vælges der derfor i dette projekt at benytte monopolær afledning. Den bedste elektrodeplacering ud fra det forventede resultat blev opnået ved C3 og C4, mens der dog var den laveste DFO-ratio ved disse elektroder. Da det vigtigste ved en elektrodeplacering er om den passer til de forventede resultater vælges C3 som elektrodeplacering i dette projekt. Den stimulustype, der opnåede højeste DFO-ratioer, samtidig med at resultaterne passede på det forventede, var tegnefilm. Det tilstræbes derfor, at der i dette projekt laves feedback med både auditive og visulle elementer. Resultaterne fra eksperimentet understøttes desuden af en række kilder [Clarke et al. 1998, Clarke et al. 2002, Hoffmann 2002, Pettersen & Hoffmann 2002, Burke et al. 2000, Playattention.com 1994, Consultants 2001]. 1.5 Systemdefinition Ud fra forbilledet, metaforer, nye ideer og resultaterne fra ekperimentet i forrige afsnit er en systemdefinitionen udarbejdet. Denne definition bygger på de alternativer, der er stillet op i nye ideer, og derudfra er der valgt, hvilke ideer der arbejdes videre med. Der lægges vægt på brugergrænseflade, feedback og EEG-afledning. 1.5.1 Brugergrænseflade At der er mulighed for brug af værktøjer til analyse af patientens hjernesignaler er en god ide til dette projekt, da det derved gøres muligt for behandleren at undersøge patientens data nærmere. Her vælges det også at muliggøre visning af EEG-signalet i tidsdomænet, da det herved er muligt at få en hurtig vurdering af signalets kvalitet. Visning af andre signaler end EEG vurderes ikke at være nødvendigt, da dette projekt beskæftiger sig udelukkende med neurofeedback. Endvidere vil mulighed for indstilling af tærskelværdier for patientens signal være godt, idet det vil være muligt at bruge systemet til anden slags neurofeedback end behandling af DAMP-børn. Derved menes, at det skal være muligt at indstille hvilke frekvenser, der ønskes undersøgt, og hvor høj tærsklen skal være, før det vurderes, at der skal gives positiv feedback. En anden brugergrænseflade vil være patientens brugergrænseflade, der udgør feedback til patienten. Dette betyder at der fremover ikke vil blive henvist til en bruger, men henholdvis behandler og patient, hvor det vil være nødvendigt for at undgå misforståelser. Denne udgave er fra d. 23. maj 2003 kl. 15.38 1.6 Kravspecifikation 15 1.5.2 Feedback-muligheder Uafhængig af hvilken type feedback der vælges er ideen, at patienten får positiv feedback, når systemet registrerer en tilfredsstillende DFO-ratio, og ingen feedback når der ikke registreres en tilfredsstillende DFO-ratio. Der vælges ikke at bruge et forud defineret frekvensspektrum som SMR, da det vil begrænse udvidelsesmuligeheden for behandling af andre tilstande som f. eks. stress. At bruge DFO-ratioen, som det også er nævnt i afsnit 1.4.2 og 1.4.1, vælges som en udemærket løsning til at bestemme energien i det definerede frekvensområde. Der er udført eksperimenter med henblik på, hvilke feedback-muligheder der ville være mest optimale, og konklusionen blev, at det var kombineret visuel og auditiv feedback, hvilket også stemmer overens med de systemer, der med succes hos DAMP-børnene, allerede er i brug. [Clarke et al. 1998, Clarke et al. 2002, Hoffmann 2002, Pettersen & Hoffmann 2002, Burke et al. 2000, Playattention.com 1994, Consultants 2001] 1.5.3 EEG-afledning EEG-afledning foregår med elektroder placeret direkte på skalpen, da dette har vist sig at være effektivt jf. afsnit 1.4.1. Det er derfor vigtigt at sørge for en høj sikkerhed, da patienten ved fejl-opsætning kan risikere at få store strømme igennem sig, da en del af systemet er koblet på lysnettet. 1.5.4 Valgt systemdefinition Ud fra overvejelse af fordele og ulemper for henholdsvis IT-alternativer, brugergrænseflade, feedbackmuligheder og EEG-afledning, er der valgt et endeligt system baseret på en PC med auditiv og visuel feedback. PC’en som central IT-enhed er valgt pga. mulighederne for senere udvidelser. Behandleren vil have mulighed for indstilling af tærskelværdier til bestemmelse af feedback og endvidere mulighed for yderligere behandling af patientens signaler. Sikkerhed have en høj prioritet i projektet, idet der er tale om direkte kontakt mellem patient og system. 1.6 Kravspecifikation 1.6.1 Generel beskrivelse Systembeskrivelse Systemet afleder hjernesignaler fra patienten vha. elektroder. Disse hjernesignaler filtreres og digitaliseres i et interface og sendes derefter til PC’en, hvor signalet bliver analyseret og lagret. Ud fra resultatet af signalbehandlingen og grænseværdier bestemt af behandleren modtager patienten feedback fra PC’en. Systemets feedback afhænger af, hvorvidt patienten genererer den af behandleren ønskede type hjernesignaler. Denne udgave er fra d. 23. maj 2003 kl. 15.38 16 Analyse Systemets fremtid Ved krav fra brugere kunne et større antal features som flere valgmuligheder for feedback eller mulighed for at bruge systemet til stressrelaxation overvejes. Eftersom der i dette projekt arbejdes med en prototype, vil der ikke blive lagt vægt på dette, da samtlige udvidelser ville være genstand for et projekt i sig selv. Dog vil der i udviklingen af systemet blive taget hensyn til udvidelsesmulighederne. Patientprofil Systemets anvendelsesområde er primært behandling af børn med DAMP. Feedback vil i dette projekt være en barre, som skifter farve og placering, og er ikke tilpasset en specifik patientgruppe. Det vil dog være forsøgt at lave en vis fleksibilitet, ved at muliggøre ændring af den auditive feedback. Behandlerprofil Behandlerne forventes at være psykologer eller andre personer med lignende uddannelse. Endvidere forventes det kun, at behandleren har generel kendskab til betjening af edb-udstyr på en Windowsplatform, hvorfor der skal implementeres en hjælpefunktion i systemets software. Krav til udviklingsforløbet Der vil foreligge en hardware- og softwaredokumentation til systemet, således at brugeren kan se hvilke overvejelser, der er gjort. Ved videre udvikling vil det derved også være muligt hurtigt at sætte sig ind i systemets opbygning. Dokumentationen er en del af den forhåndenværende rapport. Udover dokumentationen er der krav om, at der i udviklingsforløbet følges SPU-modellen. Forudsætninger Til projektet er der blevet stillet en MSP430F149 microcontroller til rådighed, som vil blive benyttet som interface til sampling af EEG-signalet. Endvidere er det et krav, at der anvendes en PC til yderligere signalbehandling og visning. Til udvikling af systemet vil der blive programmeret i C og LabVIEW. Til microcontrolleren hører et projectboard, hvor microcontrolleren er placeret i et lille kammer. Derfra er alle pins fra start forbundet til bl.a. resetknap og powerknap. Boardet har desuden til formål at lette arbejdet, idet der er konstrueret nogle sikkerhedsforanstaltninger i form af dioder og sikringer. Disse gør det umuligt at sende negative spændinger til microcontrolleren, såvel som det ikke er muligt at sende for høje spændinger dertil. Boardet har endvidere egen strømforsyning bestående af to 9V batterier. På projektboardet er der placeret et stik, der gør det muligt at fastgøre et interface mellem microcontrolleren og en pc. Det er derved muligt, at overføre data og at køre programmer på microcontrolleren, imens det vises på pc. Denne udgave er fra d. 23. maj 2003 kl. 15.38 1.6 Kravspecifikation 17 1.6.2 Systemets funktion EEG-afledning Som defineret i systemdefinition afsnit 1.5.3 skal EEG-afledningen foregå ved hjælp af elektroder placeret på patientens skalp. Der vil være tale om én-kanal monopolær EEG-afledning, fra C3, som det blev konkluderet bedst i afsnit 1.4.3. De afledede signaler skal forstærkes og filtreres, så det bliver muligt at sample signalet til yderligere behandling. Ved afledningen er der meget fokus på sikkerhed, således at patienten ikke udsættes for fare på nogen måde. Indstillinger Systemet designes med en vis fleksibilitet, som det også er nævnt i afsnit 1.5.1. Denne fleksibilitet er nødvendig, idet det er individuelt, for hver patient til hver session, hvilke grænseværdier der giver det bedste resultat. Dette betyder, at behandleren skal have mulighed for indstilling af frekvensområdet. Derudover skal grænsen for et tilfredsstillende resultat fra frekvensanalysen kunne indstilles. Dog vil der i systemet kunne benyttes standardindstillinger af grænseværdier, hvis behandleren er i tvivl om hvad, der skal vælges eller blot i tilfælde af test. Behandleren skal have mulighed for at se EEG-signalerne fra patienten, og det skal være muligt at hente resultater fra tidligere behandlingssessioner. Til dette formål skal der anvendes et databasesystem for at undgå et utal af filer for hver patient. DFO Energien i det definerede frekvensspektrum skal udregnes på baggund af den forholdsmæssige energi, der i afsnit 1.4.1 er defineret som DFO-ratio. Feedback Dette vil bestå af både visuel og auditiv feedback i form af en barre, der viser resultatet af analysen af det samplede EEG-signal, samt musik der spilles, når patienten er over den ønskede grænseværdi for DFO-ratioen. Det vil sige, hvis den forholdsmæssige energi i det definerede frekvensspektrum er høj, skal barren også være høj og omvendt. Hvis resultatet når over den af behandleren ønskede værdi, skal barren blive grøn, hvorimod den skal være rød, hvis resultatet er under den ønskede værdi. På den måde bliver det muligt for patienten at få en forestilling om, hvilket niveau af aktivitet der kræves, for at få positiv feedback. Denne beslutning er taget dels udfra inspiration fra flere kommercielle systemer [Biograph 2002, Consultants 2001, Safier 1998, Burke et al. 2000, Playattention.com 1994], hvoraf nogle er omtalt i afsnit 1.4.1 side 9, og et eksperiment udført af projektgruppen, der kan findes i appendiks ??. Funktionelle krav Start- og stop-hændelserne samt undersøgelse af signal foregår i softwaren, mens feedback foregår via software og hardware. Ved hjælp af transaction-flowdiagrammet på figur 1.4 illustreres, hvad der sker ved interaktion fra brugeren. Hvis brugeren starter systemet, skal det begynde at opsamle EEG-signalet. Det opsamlede signal skal analyseres, og på baggrund af analysen skal aktivitetsbarren justeres, så den illustrerer energifordelingen i signalet i forhold til det definerede frekvensområde. Hvis den fremkomne DFO-ratio er tilfredsstillende, skal lyd afspilles eller fortsætte med at afspille. Hvis DFO-ratioen deriDenne udgave er fra d. 23. maj 2003 kl. 15.38 18 Analyse mod ikke er tilfredsstillende, skal lyden stoppes, hvis der afspilles lyd. Endvidere afsluttes programmet, hvis brugeren vælger dette. ` a b c d e f g ¥ h k l m n o p q r s t u v w x y z i { W ð ñ ò ó ô . õ ! " / 0 1 2 3 4 X ÷ ø ù ú û ü ý þ ÿ $ % & ' ( ) * + , - 6 7 8 9 : ; < = > ? B C D E F @ H I J K L M N O P ^ Z [ _ Q R S T U V ] A G Y 5 # \ ö ¦ j ¡ ¢ £ ¤ | } ~ § ¨ Figur 1.4: Transaction-flowdiagram der viser hvilke funktioner, der bliver sat igang ved brugerens interaktion med systemet i forbindelse med behandling. 1.6.3 Eksterne grænseflade-krav I det følgende beskrives systemets grænseflader indenfor hardware, software, imellem hardware og software samt brugergrænsefladen. Brugergrænseflade Data fra patienten skal kunne gemmes i en database og skal kunne genindlæses til senere analyse af EEG-signalerne. Der skal være en brugergrænseflade til behandleren med indstillingsmuligheder for feedback til patienten. Her skal det være muligt at indtaste og hente patientdata samt at indstille på det frekvensområde, der skal benyttes til behandlingen og intensiteten, der er krævet for at give positivt feedback. Efter endt session skal det være muligt for behandleren at se DFO-ratio som funktion af tiden. Endvidere skal det være muligt via brugergrænsefladen at se det EEG-signal, PC’en modtager i tidsdomænet. Med hensyn til brugerinterface bestræbes der på, at det skal være så simpelt som muligt. Dette gælder både for brugervenlighed, såsom genkendelighed fra andre programmer og logisk placerede funktioner, men også med hensyn til designet af interfacet. Dog kan man, hvis der er tid til det, kontakte en psykolog og på den måde få ideer til forbedringer af interfacet. Et simpelt eksempel på et interface vil dog blive beskrevet. Patienten skal kun interagere med systemet via hjernebølger, og der vil således blive lagt vægt på det feedback, der er omtalt i afsnit 1.6.2, som patienten vil modtage. Hardwaregrænseflade Denne udgave er fra d. 23. maj 2003 kl. 15.38 1.6 Kravspecifikation 19 Input fra patienten vil være EEG-signaler afledt vha. elektroder. Dette input, som microcontrolleren modtager, vil være præget af lavfrekvent (DC) og højfrekvent støj. Output fra microcontrolleren, som er input til PC’en, skal være et digitaliseret signal, hvor støj udenfor EEG-signalernes frekvensområde så vidt muligt er filtreret fra. Kommunikationen mellem microcontrollereren og PC skal desuden standardiseres så de benytter sig af samme spændingsniveauer. Kommunikationsgrænseflade Kommunikationen mellem microcontroller og PC vil foregå med RS232-standarden for seriel kommunikation. Ved programmeringen af microcontrolleren benyttes et medfølgende parallelt interface, Flash Emulation Tool, til at downloade programmet ned i microcontrollerens flash-hukommelse. Det er med dette interface muligt, at køre programmer på microcontrolleren mens registre iagtages på PC. Softwaregrænseflade Systemet er selvstående og skal kunne eksekveres på en Windows-baseret maskine. Microcontrolleren programmeres i C, mens programmel til databehandling på PC’en vil blive programmeret i LabVIEW. 1.6.4 Krav til systemets ydelse Systemet skal kunne monitorere, hvilke hjernebølger patienten genererer i reeltid og ud fra disse give feedback med mindst mulig forsinkelse. 1.6.5 Kvalitetsfaktorer Følgende kvalitetsfaktorer vurderes på en skala fra 1-5, hvor 5 er særdeles vigtig, og 0 slet ikke er vigtigt. Formålet er at sætte en prioriteringliste med hensyn til hvilke egenskaber, der er vigtigst for systemet. Nedenfor beskrives de kvalitetsfaktorer, som vurderes relevante for systemet. Stabilitet Systemets stabilitet prioriteres til 2, idet der er tale om en prototybe, som evt. senere kan optimeres. Udvidelses- og vedligeholdelsesvenligheden Det vurderes at systemets udvidelses- og vedligeholdelsesvenligheden skal ligge på 3, da der i design af systemet vil blive lagt vægt på at forberede systemet på udvidelser med hensyn til feedback-typer og definition af frekvensområder. Dog er det kun med henblik på softwareopgradering, og derfor vil det tage længere tid at udskifte hardwareenheder end softwareenheder. Brugervenligheden Det er valgt at sætte brugervenligheden til 3, dog prioriteres funktionaliteten højet, eftersom behandleren vil anvende systemet ofte og har mere gavn af features til at støtte arbejdet, end at systemet er nemt at bruge. For at opnå en høj bruger venlighed skal systemets funktioner dokumenteres i en brugermanual eller hjælpfunktion. Integriteten Systemets integritet vurderes til 2, da systemet ikke udvikles til anvendelse under ekstreme forhold men til implementering på indendørs klinikker og lignende. Denne udgave er fra d. 23. maj 2003 kl. 15.38 20 Analyse Effektiviteten Ud fra vurderingen af systemets effektivitet sættes denne til 4, da systemet måler hjernebølger, der skal vises i reeltid. Sikkerhed Systemets sikkerhed sættes til 5. Patienten må ikke udsættes for mærkbar strøm under en session. 1.6.6 Krav til brugerinterface På baggrund af ovenstående krav samt inspiration fra windowsbaserede programmer, fastlægges i det følgende det grafiske interface for programmet, der skal køres på PC’en. Som udgangspunkt betragtes de nedenstående krav som minimumskrav til designet, hvorved der kan tilføjes yderligere funktioner, hvis dette vurderes nødvendigt. På figur 1.5 side 20 ses, hvorledes brugerinterfacet hierakisk er opbygget. Õ º © ª « ¬ ® ¯ ° ± ² » ¼ ½ Ö ¾ ¿ × Ø À Ù Á Ú Â Ã Û Ä Ü Å Ý Æ Ç Þ È É ß Ê Ë ³ Ì Í ´ Î µ Ï ¶ Ð · Ñ ¸ Ò ¹ Ó Ô Figur 1.5: Hierakisk oversigt over programmets skærmbilleder. Denne udgave er fra d. 23. maj 2003 kl. 15.38 1.6 Kravspecifikation 21 PatientValg Der skal udformes en startside, hvor det er muligt for behandleren at tilgå de patienter, der allerede er tilføjet systemet. Endvidere skal det være muligt at tilføje nye patienter til systemet. Figur 1.6 viser, hvorledes skærmbilledet i praksis skal opbygges. Figur 1.6: PatientValg-skærmbilledet vises som det første, når programmet startes op. Der er muligt at vælge en patient fra listen “Tidligere sessioner”. Derudover kan frekvensområderne og tærskelværdien indstilles. Navnet på de patienter, der er tilføjet systemet, skal vises i patientlisten. Ved hjælp af pilene til venstre for listen med tidligere sessioner vælges en patient på listen og efterfølgende klik på ”Vælg”-knappen, skal der skiftes til Patientindstillinger-skærmbilledet. Hvis brugen ønsker at fjerne en patient fra systemet, skal dette være muligt ved at afmærke patienten i listen og derefter trykke på ”Slet”. Før patienten slettes fra systemet, skal behandleren via et popup-vindue verificere sletningen. Det skal være muligt at tilføje patienter ved at skrive patientens navn ind i ”Indlæs patient til database”-feltet, og efterfølgende trykke på ”Tilføj”. Det skal endvidere være muligt at lukke programmet ved tryk på “Luk”. Patientindstillinger Fra dette skærmbillede skal behandleren have adgang til alle informationer, der er tilgængelig for den valgte patient. Som det ses på figur 1.7 vises den valgte patients navn og personnummer. Længere nede vises sessionsindstillingerne patienten benyttede ved foregående session. Hvis der er tale om en ny patient, vises information i ”Patientens navn”-feltet, samt standardværdier i ”Tærskelværdi”, ”DFOmin” og “DFOmax”. Det skal være muligt for behandleren efterfølgende at indstille disse værdier samt portnummeret på den Com-port, microcontrolleren tilsluttes. Det må kun være muligt at indtastes gyldige værdier i de fire felter. Hvis der er valgt en patient, der har været gennem en eller flere sessioner, skal der i ”Tidligere sessioner”-listen vises sessionernes dato og klokkeslæt for afslutningen af de enkelte sessioner. Ved markering af en session i listen, og efterfølgende tryk på ”Vælg”, skal VisResultat-skærmbilledet startes og vise, hvorledes den markerede session er forløbet. Hvis behandleren ønsker at fjerne en af patientens gemte sessioner, skal sessionen markeres i listen, og ved tryk på ”Slet”, skal der vises et popup-vindue, hvor behandleren skal verificere, at patienten skal slettes. Hvis behandleren ønsker at påbegynde en ny session, skal dette være muligt ved tryk på knappen Denne udgave er fra d. 23. maj 2003 kl. 15.38 22 Analyse ”Start session”. Såfremt der er gyldige værdier i ”Tærskelværdi” samt ”DFOmin” og “DFOmax”, skal VisEEG-skærmbilledet startes, ellers skal der gives en fejlmeddelelse, der opfordrer behandleren til at indtaste disse værdier. Det skal endvidere være muligt for behandleren at lukke skærmbilledet og vende tilbage til Patientvalgskærmbilledet ved tryk på “Tilbage”. Figur 1.7: Patientindstillinger-skærmbilledet viser alle tilgængelige informationer om den valgte patient. Fra skærmbilledet skal det være muligt for behandleren at påbegynde en ny session, eller se resultaterne fra patientens foregående sessioner VisEEG På dette skærmbillede (figur 1.8) skal EEG-signalet, som PC’en modtager, vises på en graf. Behandleren skal have mulighed for udfra grafen at kunne vurdere, om elektroderne har tilstrækkelig god forbindelse til patienten. Når behandleren vurderer, at signalet er tilfredsstillende, skal der kunne trykkes på “Start Feedback”, hvorefter Feedback-skærmbilledet skal starte. Hvis behandleren alligevel ikke ønsker at påbegynde en ny session, skal der være en ”Tilbage”-knap, der bringer behandleren tilbage til forrige skærmbillede, dvs. Patientindstillinger. Desuden skal der gives en fejlmeddelelse, Denne udgave er fra d. 23. maj 2003 kl. 15.38 1.6 Kravspecifikation 23 hvis der ikke opnåes kontakt til microcontrolleren. Patientens navn og personnummmer skal vises i feltet “Valgte Patient”. Figur 1.8: VisEEG-skærmbilledet benyttes af behandleren til at vurdere, hvorvidt det afledte EEG-signal er af tilfredsstillende kvalitet. Ellers kan grunden være dårlig forbindelse mellem elektroder og patientens hud. Feedback Det er via Feedback-skærmbilledet, at patienten modtager feedback. Når Feedbackskærmbilledet køres, skal det være muligt at redigere en playliste med musikfiler til auditiv feedback. Det skal være muligt ved tryk på “Tilføj ny sang”, at tilgå mapper på PC’en og tilføje en eller flere musikfiler. Ved tryk på “Ryd playlisten” skal samtlige musikfiler fjernes fra playlisten. Den visuelle feedback på skærmbilledet består af tre barrer. Den midterste barre viser DFO-ratioen, og de mindre ved begge sider illustrerer den valgte tærskelværdi. Når DFO-ratioen overstiger tærskelværdien, skal barren skifte farve fra rød til grøn, og såfremt der er valgt en eller flere sange i playlisten, skal der gives auditivt feedback. Ved tryk på “Start” skal alt bortset fra barrerne og en stopknap forsvinde fra skærmbilledet, så patienten får bedre mulighed for at koncentrere sig om feedback. Ligeledes skal programmet begynde at lagre data midlertidigt. Hvis behandleren efterfølgende trykker på ”Stop”, skal data lagres i en fil. Ved tryk på “Tilbage” skal Patientindstillinger-skærmen skal vises på ny, hvor den netop overståede session er tilføjet ”Tidligere sessioner”-listen jf. figur 1.7. Data skrives til Patientdata-filen, når der trykkes på “Stop”. Der kan trykkes på tilbage hvorved der returneres til Patientindstillinger. Denne udgave er fra d. 23. maj 2003 kl. 15.38 24 Analyse Ligesom ved de andre skærmbilleder skal patientens navn og personnummer vises i Feedbackskærmbilledet. Figur 1.9: Feedback-skærmbilledet som skal give feedback til patienten hvor den store barre er den visuelle feedback og de to små ved siden af indikerer tærskelværdien. I øverste venstre hjørne ses playlisten der giver mulighed for at tilrettelægge den auditive feedback til en session. Patientens navn og personnummer ses også. VisResultat Skærmbilledet tilgås som før nævnt fra Patientindstillinger-skærmbilledet (figur 1.7). Øverst skal patientens personlige oplysninger, sessions-indstillingerne for den pågældende session og sessionens længde vises (se fig. 1.10. Skærmbilledet skal indeholde to grafer. På den ene graf vises DFO-Ratioen for den gemte session som funktion af tiden. På grafen skal en rød linie illustrere tærskelværdien. Det skal ud fra denne graf være muligt at vurdere, hvor meget positiv og negativ feedback patienten har fået under sessionen. Dette vil støtte behandlerens vurdering af, hvilke indstillinger der vil være passende for en evt. efterfølgende session. Den anden graf skal vise EEG-signalet i tidsdomænet (jf. afsnit 1.6.2), hvilket vil være praktisk i forbindelse med, hvis der forekommer utilsigtede resultater ved DFO-ratioen, hvor det kan støtte vurderingen af, hvad der har forårsaget de utilsigtede resultater f.eks. løse elektroder. Grafen skal vise et minuts EEG-afledning ad gangen, hvor det skal være nemt at vælge tidsområdet med piletaster, eller ved indtastning. Denne udgave er fra d. 23. maj 2003 kl. 15.38 1.6 Kravspecifikation 25 Ved tryk på ”Tilbage” skal Patientindstillinger-skærmbilledet vises. Figur 1.10: På VisResultat-skærmbilledet skal der illustreres, hvorledes en session er forløbet. Der skal vises, hvordan DFO-Ratioen har været som funkton af tiden. Endvidere skal det være muligt at se signalet i tidsdomænet på den nederste graf. Denne udgave er fra d. 23. maj 2003 kl. 15.38 26 Analyse Denne udgave er fra d. 23. maj 2003 kl. 15.38 2 Systemdesign Systemdesign er den første designfase, hvor systemets funktioner bliver fastlagt udfra kravspecifikationen, og grænsefladerne mellem software og hardware bliver defineret. Desuden opsættes mere specifikke krav til de enkelte enheder. Udfra systemdesignet vil det være muligt at påbegynde design af hardware såvel som software. Den overordnede struktur vil være således, at hardwareenhederne i systemet først vil blive designet efterfulgt af softwareenhederne. Dette gøres idet, der følges to forskellige fremgangsmåder ved software og hardware. De specifikke designmetoder vil blive beskrevet yderligere i de enkelte designafsnit. Systemdesignets primære formål er, at opdele systemet i hardwareenheder og softwareenheder og at uddybe kravene fra kravspecifikationen (jf. afsnit 1.6) med henblik på enhederne, hvorved designet vil blive nemmere og mere overskueligt. 2.1 Overordnet struktur Overordnet skal systemet jf. kravspecifikationen kunne modtage et EEG-signal fra elektroder, der er koblet til en patient. Disse signaler skal processeres af en microcontroller og sendes videre til en PC jf. afsnit 1.6.1. Det er nødvendigt med to interfaces, for at systemet kan fungere. Et interface, kaldet EEGafledningsenhed, mellem elektroderne og microcontrolleren er nødvendigt for at få et brugbart signal. Denne enhed konstrueres af analog elektronik og kan derfor betegnes det analoge interface. Et interface mellem microcontroller og PC er ligeledes nødvendigt for, at de to enheder kan kommunikere. For at få et overblik over systemet deles det op i overordnede enheder, som hver især modtager et signal, behandler det og sender det videre til næste enhed. Figur 2.1 viser, hvorledes det samlede system kan deles op i overordnede enheder, samt disse enheders funktioner. Som det fremgår af figur 2.1, er der i systemdesignet seks enheder: patient, behandler, analogt interface mellem patient og microcontroller, microcontroller, digitalt interface mellem microcontroller og PC samt PC. Patient og behandler er medtaget som enheder, selvom de ikke er enheder, der skal designes. De er medtaget for at beskrive de grænseflader, systemet har til omverdenen. Transducere i form af elektroder afleder patientens hjernebølger som elektriske spændinger, der behandles af et analogt interface, som forstærker og filtrerer EEG-signalet. Ved hjælp af microcontrolleren bliver det forstærkede og filtrerede EEG-signal samplet, A/D-konverteret samt filtreret digitalt. Derefter sendes det til PC via et interface, der sørger for kommunikationen mellem de to enheder samt en sikkerhedsbarriere mellem patienten og lysnettet. Det analoge interface er en hardwareenhed, mens styringen af microcontrolleren foregår udelukkende med software og vil blive behandlet som en softwareenhed. Interfacet mellem microcontrolleren og PC’en består udelukkende af hardware, da enheden skal konvertere mellem logiske tilstande og skabe 27 28 Systemdesign en galvanisk sikkerhedsbarriere. Styringen af PC’en vil i dette projekt kun foregå ved hjælp af software igennem et brugerinterface og beskrives derfor udelukkende som en softwareenhed. à v w x y z { | } ~ á ¡ ¢ £ ¤ ¥ © ª ¦ § « â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ ¬ ¨ ® ! " # Ç Ï ½ ¾ ¿ Ð Ñ È É Ò Ê Ë Ì Í À Å Æ Î ¹ º » ¼ Ó ¯ ° ± Á ³ ´ µ Ô ² ¶ · Â Ã Ä ¸ O $ % & ' ( Q + , - . / 0 1 ä å æ ç è é ê 4 5 6 7 8 9 : ; < = > ? @ A B E F G H I J K L S T Z M [ \ ] U ^ V _ W ` X a b c d e C f D R ë 2 Y 3 P ) ã * g h i j k l m n o p q r s t u N Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â Figur 2.1: Enheds- og funktionsoversigt over systemet. Pilene indikerer dataoverførelse mens bokse repræsenterer interfaces. 2.2 Grænseflader I det følgende vil enhedernes grænseflader kort blive beskrevet. Ved at definere grænsefladerne gøres det næste designskridt nemmere, og der bliver et større overblik over systemet og grænsefladen til omverdenen. På figur 2.2 er de enkelte enheders indbyrdes placering illustreret. Det ses, hvorledes de enkelte enheder enten er placeret i software eller i hardware, i systemet eller omverdenen, samt hvor sikkerhedsbarrieren er placeret. 5 u h v ! " # $ i w j k x l y z { 6 7 ú û 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g | m ì í î ï ð ñ ò ó ô õ ö ÷ ø ù % & - ' . ( / ) 0 1 * 2 + 3 , 4 ü ý þ ÿ n o p q r s t Figur 2.2: En oversigt over hvor de enkelte enheder er placeret samt deres grænseflader. Det ses hvordan systemet indeholder en sikkerhedbarriere samt en hardware- og softwaredel. Denne udgave er fra d. 23. maj 2003 kl. 15.38 2.3 Systemkrav 29 På figur 2.2 ses, hvordan systemet har en hardwaregrænseflade til patienten, som går fra patienten til hardwareenheden “Analogt interface”. Fra denne enhed er der en hardware/software-grænseflade til MSP430, som igen har en software/hardware-grænseflade til det “digitale interface”. I det digitale interface ligger en sikkerhedsbarriere, og udenfor sikkerhedsbarrieren er der en hardware/softwaregrænseflade til PC’en. PC’en ligger udenfor sikkerhedsbarrieren, så omverdenen med grænseflade til systemet igennem PC’en vil være udenfor sikkerhedsbarrieren. Patienten optræder både udenfor og indenfor sikkerhedsbarrieren, hvilket hænger sammen med, at patienten har to grænseflader til systemet, en til hardware og en til software. I hardware-grænsefladen er patienten koblet direkte til systemet, hvilket kræver flere sikkerhedsforanstaltninger end den kontakt, der er til PC’en, som kun er visuel og auditiv. Sikkerhedsbarrieren vil yderligere blive beskrevet i designafsnittet om det digitale interface. 2.3 Systemkrav I det følgende vil der blive opstillet uddybende krav til systemets enheder. Endvidere udarbejdes en kommunikationsprotokol for kommunikationen mellem MSP430 og PC. 2.3.1 EEG-afledningsenhed Elektroder Til afledning af EEG-signalet skal en elektrodehætte konstrueret efter 10-20 standarden benyttes. Dette gøres på baggrund af, at de i litteraturen omtalte afledningspunkter er beskrevet udfra 10-20 standarden. Udfra litteraturen [Clarke et al. 1998, Clarke et al. 2002, Hoffmann 2002, Pettersen & Hoffmann 2002, Burke et al. 2000, Playattention.com 1994, Consultants 2001] og empiri (jf. afsnit 1.4.3) vælges det, at benytte en monopolær afledning, med den aktive elektrode som C3, jord ved Cz og linked-ear (A2 og A1) som reference. Forstærkningsniveau Som det nævnes i afsnit 1.6.2 skal det analoge interface forstærke EEGsignalet, så det når et niveau, som udnytter microcontrollerens skala på 0-3,3V. Da EEG-signaler er meget individuelle (jf. afsnit 1.3), er det nødvendigt at gøre forstærkningen variabel, ellers vil hele skalaen kun blive udnyttet ved nogle patienter. Det vælges derfor ikke at lave et headroom. Den minimalt krævede forstærkning findes udfra at de kraftigste EEG-afledninger har en amplitude på op til 200µV (1.3), disse signaler må ikke forstærkes til over 3 23V 1 65V , hvilket resulterer i en krævet forstærkning på 8.000 gange. Den maksimalt krævede forstærkning sættes til 50.000 gange, hvilket svarer til, at et EEG-signal med en amplitude på 32µV forstærkes op til 1,6V. } ~ Offset EEG-afledningens nulpunkt skal placeres midt i ADC’ens samplingsområde, således at både de positive og negative værdier af afledningen ligger inden for skalaen, dvs. EEG-afledningens nulDenne udgave er fra d. 23. maj 2003 kl. 15.38 30 Systemdesign punkt skal ligge i 1,65V. Filtrering For at signalet kan digitaliseres skalt det båndbegrænses. Dette gøres ved at filtrere EEGsignalet jf. afsnit 1.6.2, som ligger i spektret 0,5-40Hz (jf. afsnit 1.3). Altså skal alle signaler og dermed støj, som ligger udenfor det angivne frekvensspektrum, dæmpes. Hvis dette ikke gøres vil der opstå aliasing. Det vil derfor være nødvendigt med både et højpas- og et lavpasfilter. Højpasfiltret skal udover at frafiltrere lavfrekvent støj også fjerne et eventuelt offset, der kan forekomme i signalet som følge af f.eks. halvcelle potientialforskelle over elektroderne på patienten. [Webster et al. 1998] Lavpasfiltret skal dæmpe frekvenser over 40Hz. For meget ripple i pasbåndet skal så vidt muligt undgåes, da man ellers ikke vil have mulighed for at sammenligne tærskelværdier ved forskellige DFOratioer. 2.3.2 MSP430 A/D-konvertering I MSP430 skal signalet fra EEG-afledningsenheden først og fremmest samples. Samplingsfrekvensen skal overholde Nyquists samplingsteorem. For at undgå aliasing pga. 50Hz støj samt støj fra computerskærme (60-85Hz), da elektrodehætten og dennes kabler ikke er skærmede, skal der anvendes en samplingsfrekvens, som er større end det dobbelte af de frekvenser inklusiv støj, der samples. For at være helt sikre vælges derfor en samplingsfrekvens på 200Hz. Desuden skal den øverste reference sættes til 3,3V for at udnytte dens maksimale skala på 0-3,3V Da microcontrolleren skal udnytte dens maksimale skala på 0-3,3V (jf. afsnit 2.3.1), skal den øverste reference skal sættes til 3,3V. Ved A/D-konverteringen er det vigtigt, at opløsningen af signalet, altså antallet af bits der repræsenterer hver sample, er høj nok til at give en tilstrækkelig præcis repræsentation, men samtidig må opløsningen ikke være så høj, at den forsinker feedback til patienten betydeligt pga. det øgede tidsforbrug til beregning og dataoverførsel. Hvis ikke signalprocessering kan foregå mellem hver sampling vil der på på et tidspunkt opstå overflow. For at undersøge den nødvendige bit-opløsning sammenlignes resultaterne for EEG-forsøget (jf. afsnit 1.4.3) og App. A.1 ud fra en 22 bits opløsning, hvilket var udgangspunktet i forsøget, og en 8 bits opløsning. I forsøget blev der samplet signaler fra en forstærker, der har en peak-to-peak værdi på 260mV ( 130mV) og en opløsning på 22 bit [Labs 2001]. Dette giver følgende opløsning for signalet: 260mV 222 1 LSB ~ 6 2 10 8V (2.1) ~ Det vil sige, at inputtet bliver inddelt i intervaller på 6 2 10 8 V. Hvis signalet derimod havde en opløsning på 8 bits, ville det resultere i følgende opløsning: LSB ~ 260mV 28 1 1 0 10 3V ~ Denne udgave er fra d. 23. maj 2003 kl. 15.38 (2.2) 2.3 Systemkrav 31 For at undersøge, hvilken indflydelse opløsningen har på SMR-rationen, beregnes denne værdi for 8 bit og 22 bit for derefter at blive sammenlignet. Ved at afrunde forsøgsresultaterne til nærmeste hele mV fås, hvad der tilnærmelsesvist svarer til en reduktion fra 22 bit til 8 bit. Efter reduceringen laves beregningerne for SMR-ratioen igen. De udregnede data, der ses i tabel 2.1, stammer fra forsøget, hvor tegnefilmen blev brugt som stimulus. Der er medtaget flere decimaler for at kunne understrege præcisionen. Afledningspunkt F3 F4 C3 C4 O1 O2 SMR-ratio 22 bit 0.0388 0.0493 0.0331 0.0386 0.0674 0.0612 SMR-ratio 8 bit 0.0387 0.0494 0.0330 0.0387 0.0675 0.0613 Afvigelse [%] -0.22 0.23 -0.04 0.15 0.12 0.07 Tabel 2.1: SMR-ratio analyseresultater med henholdsvis 22 og 8-bits opløsning. Afvigelsen er 8bits værdiens afvigelse i forhold til 22bits-værdien Af tabel 2.1 ses det, at den største afvigelse ligger på 0.23 %, hvilket vil have en minimal betydning for tærskelværdien, der bliver bestemt med 2 decimaler. Dette viser, at en 8 bits opløsning vil være tilstrækkelig i dette projekt, dog skal der tages højde for, at udregningerne er lavet på baggrund af apparaturer med høj præcision, og at apparaturet i projektet ikke bliver af nær så høj kvalitet. Digital filtrering Der er i forvejen et analogt lavpasfilter, der har en knækfrekvens ved 40 Hz, men da der hovedsageligt er tale om antialiasing vil det analoge filter vil have en lavere orden, og der vælges at benytte et digitalt filter umiddelbart efter digitalisering af data. Her vælges en højere orden, der gør at 50 Hz støj fra f.eks. lysnettet dæmpes væsentligt. Den digitale filtrering bevirker også, at EEG-signalet vist i tidsdomænet bliver bedre at kalibrere ud fra. Filtret skal designes, så der sker så lidt forvrængning af data som muligt, da DFO-ratioen vil være følsom over for en sådan forvrængning. Endvidere bør filtret designes, således at der vil være en god overensstemmelse mellem filtrets kvalitet og den regnekraft, der skal bruges til at filtrere signalet med, idet det er ønsket at filtrere under samplingen da signalet skal bruges i reel-tid. Det vil sige, at filtreringen skal ske med så få operationer som muligt, samtidig med at de vigtige informationer i data ikke forvrænges. Datarepræsentation ADC12 sampler som standard med 12bit. Resultatet af en sampling bliver derfor en 12bit unsigned integer, dvs. et heltal mellem 0 og 212 1 4095. Da EEG-signalets nulpunkt er placeret ved 1,65V, vil signalets nulpunkt ligge omkring værdien 4095 2048. 2 Der er blevet argumenteret for, at 8bit repræsentation vil være tilstrækkeligt. Derfor skal EEG-signalet kun repræsenteres af 8bit efter microcontrollerens signalbehandling. Det vurderes dog, at præcisionen vil øges ved at filtrere de 12bit repræsenterede samples og først efterfølgende reducere repræsentationen til 8bit. Resultatet efter microcontrollerens signalbehandling er således en 8bit unsigned integer, med offset på 127. ~ Denne udgave er fra d. 23. maj 2003 kl. 15.38 32 Systemdesign 2.3.3 Digitalt interface Spændingskonvertering Det digitale interface skal være i stand til at konvertere spændingsniveuet på signaler fra microcontroller til PC jf. 1.6.3 afsnit, dvs. konvertere fra logisk CMOS-niveau til RS232niveau. Ligeledes skal interfacet kunne konvertere spændingsniveauet på signaler fra PC til microcontroller. Sikkerhed Endvidere skal det digitale interfacet som før nævnt indeholde en sikkerhedsbarriere, der har en høj prioritet. Sikkerhedsbarrieren skal implementeres, således at den understøtter kommunikationshastigheden (uddybes i afsnit 2.3.4). 2.3.4 Kommunikationsprotokol Det målte EEG-signal skal, efter det er samplet, A/D-konverteret og filtreret, sendes til PC’en via det digitale interface. Følgende opstilles en kommunikationsprotokol for, hvorledes denne kommunikation skal foregå bitmæssigt. MSP430 skal kun sende 8-bit unsigned integers til PC’en, da microcontrolleren ikke foretager nogen styring af PC’en. Microcontrollerens UART er i stand til at sende pakker med enten 7 eller 8 databit. Her skal 8 bit vælges, da det understøtter de 8 bits integers, som er resultatet af hver filtrering. Datapakkerne skal endvidere indeholde 1 start- og stopbit. Der skal ikke anvendes paritetsbit, da kommunikationen vil foregå over korte afstande og der vil derfor ikke være stor sandsynlighed for at data går tabt og moderne UART-chips er bedre, end dengang paritetsbit blev indført. For at undgå overflow skal hver sample kunne sendes inden, der foretages en ny sample. Altså er den minimalt tilladelige kommunikationshastighed 10bit 200Hz = 2000bps. Kommunikationen fra PC til MSP430 skal kun indeholde to kommandoer, start og stop signalprocessering hvilket kun kræver et bit at styre. Dog sammenlignes værdien for byten, så der er 256 muligheder for kommandoer til en eventuel videre udvikling. MSP430 skal starte, hvis værdien er 1 og stoppe, hvis værdien er 0. 2.3.5 PC PC-enhedens software har en række opgaver såsom data-logning, brugerinterface og feedback. Lagring af data Systemet skal kunne gemme data for hver patient jf. afnsit 1.6.2. Lagring af data indbefatter både data bestående af målt EEG-signal samt patientdata indtastet af behandleren. Det er endvidere et krav, at patientens indstillinger (tærskelværdi og DFO) kan gemmes og tilgås senere. Data skal gemmes i et databasesystem, hvilket skal realiseres ved at gemme data i eXtended Markup Language XML-format. Ved at anvende XML vil det være muligt at gemme alt data for alle patienter i patientdatafilen. Denne udgave er fra d. 23. maj 2003 kl. 15.38 2.3 Systemkrav 33 Patientdatafilen skal indeholde karakteriserende data om patienten. For at kunne karakterisere hver patient, vælges patientdata til at indeholde patientens navn og personnummer. Det aflæste EEG-signal skal lagres som rå data, hvilket vil sige, at det skal gemmes i tidsdomænet. Dette giver flest muligheder for at bearbejde data både af hensyn til senere udvidelser af systemet, men også af hensyn til behandleren, der muligvis kan ønske at se signalet i tidsdomænet. Brugerinterface Brugerinterfacet skal understøtte de i afsnit 1.6.6 stillede krav. Som følge af den variable forstærkning beskrevet i afsnit 2.3.1, skal der indføres nogle yderlige faciliteter på VisEEG skærmbilledet ( beskrevet i afsnit 1.6.6), idet dette skærmbillede nu også skal benyttes til kalibrering af forstærkningen. For at vejlede brugeren om kalibreringen, skal der derfor være en indikator på skærmbilledet, der indikerer hvis forstærkningen er indstillet for højt. Feedback Feedback består som beskrevet i kravspecifikationen af auditiv og visuel feedback jf. afsnit 1.6.2. Hvorvidt der skal gives positiv feedback eller ej, skal bestemmes ud fra DFO-ratio. DFO-ratioen er bestemt ved følgende forhold, hvor Power betyder summen af powerspektrum for de pågældene frekvensområder: DFO-ratio ~ Powerf,defineret Powerf,samlet (2.3) Tærsklen for positiv feedback defineres af behandleren. Den auditive feedback skal bestå af passende musik. Musikken skal være i Wave- eller MP3format og ligge i en mappe på PC’en. Behandleren skal kunne tilgå denne mappe og tilføje indholdet af mappen til en playliste. Derved er det muligt at tilpasse musikken til den enkelte patient. Det endelige system skal så kunne spille musikken fra playlisten, når patientens hjernesignaler overstiger tærskelværdien. Feedback vil ikke kunne foregå helt i reeltid, da der skal foregå signalopsamling og -processering inden feedback gives til patienten. Endvidere er det nødvendigt at analysere flere samples af gangen for at kunne udføre frekvensanalyse og beregne DFO-ratio. I stedet for at definere en maksimal tilladelig forsinkelse, defineres den minimalt tilladelige frekvensopløsning, som derved kan bestemme mængden af samples, der skal opsamles, inden der kan foretages signalprocessering. Den maksimalt tilladelige frekvensopløsning sættes til 0,5Hz. Dette krav resultere i at DFO-ratioen som minimum skal beregnes pågrundlag af [R. E. Challis 1991]: 1 T 0 5Hz ~ T 2s (2.4) ~ Dette vil bevirke, at der kommer en forsinkelse på beregningen af DFO-ratio, hvilket igen vil betyde, at feedback til patienten forsinkes. Der vil yderligere forekomme små forsinkelser i forbindelse med Denne udgave er fra d. 23. maj 2003 kl. 15.38 34 Systemdesign kommunikation og selve signalprocesseringen. Tilsammen virker dette umiddelbart som betydelige forsinkelser, men da EEG-signaler er stationære i op til 2 sekunder [Nielsen 1992], vil det ikke resultere i en mærkbar forsinkelse. Det vurderes dog, at det vil være nødvendigt at opdatere den visuelle og auditive feedback oftere end hvert 2. sekund, idet det ellers vil forekomme meget hakket. Der vælges derfor at opdatere patientens feedback hvert 200ms. Dette er valgt ud fra et kompromis mellem, at hjernen modtager visuelle og auditive stimuli med en forsinkelse på hendholdsvis 20-40ms og 8-10ms [Kosinski 2003] samt at holde beregningspresset nede. Denne udgave er fra d. 23. maj 2003 kl. 15.38 3 Hardwaredesign Ved struktureringen af hardware tages udgangspunkt i den modificerede V-model fra SPU. Som det fremgår af V-modellen på figur 3.1, tages der udgangspunkt i kravspecifikationen og systemkrav, som fører til et strukturdesign. Dette strukturdesign er blevet påbegyndt i afsnit 2.1 og vil i dette afsnit fortsætte med fokusering på hardware-modulerne. Der behandles i dette afsnit det analoge interface og det digitale interface jf. figur 2.1 på side 28. Hvor ikke andet er anført begrundes designet i de krav, der er opstillet i systemkrav om henholdsvis EEG-afledningsenheden (afsnit 2.3.1) og Digitalt interface (afsnit 2.3.3) ½ ¾ ¿ À Á Â Ã Ä Å Æ ¦ ¡ ¢ £ § ¤ ¨ ¥ © Ç ª « ¬ ® ¯ ° × à ± ² ³ ´ µ ¶ · ¸ ¹ º » á â ã ä å æ Ø ç è é Ù ê ë Ú ì Û í Ü È î Ý Þ É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö ß ï ¼ ð ñ ò ó ô õ ö ÷ ø ù ú û Figur 3.1: Den modificerede V-model der beskriver designprocessen for hardware [Karlsen 2003] . 3.1 EEG-afledningsenhed - analogt interface Indledningsvis beskrives enheden overordnet, samt de strukturer der skal virke imellem. Dernæst beskrives de opgaver, der skal udføres af enheden, for at den kan fungere mellem patienten og microcontrolleren. 35 36 Hardwaredesign 3.1.1 Strukturdesign Enheden skal aflede et elektrisk potientiale fra patientens skalp og behandle det, således at signalet er egnet til digitalisering i microcontrollerens ADC-converter. Patienten EEG-signalerne har en amplitude i størrelsesordenen 10µV til 200µV og ligger i frekvensområdet 0,5Hz til 40Hz (jf. afsnit 1.3 side 7). Amplituden kan variere fra person til person, og kan der ske ændringer over tid som følge af bedre eller dårligere elektrodekontakt med patienten. Som nævnt i kravspecifikationen (afsnit 1.6) må systemet under ingen omstændigheder kunne tilføre patienten en mærkbar strøm. MSP430 MSP430 har en indbygget 12bit ADC, og måleområdet kan varieres via en variabel referencespænding men dog kun inden for forsyningsspændingen til microcontrolleren, dvs. mellem 0-3,3V. EEG-signalet skal forstærkes 8.000-50.000 gange for at få EEG-signalet forstærket til en størrelse, der er hensigtsmæssig at digitalisere. For at det er muligt at måle EEG-signalets negative værdier, skal signalet endvidere placeres midt i ADCens måleområde. 3.1.2 Moduldesign Elektroder og kabel Elektroderne fungerer som interface mellem patienten og den analoge signalbehandling. På baggrund af eksperimentet beskrevet i 1.4.3 side 13, blev det konkluderet, at det var muligt at aflede og registrere SMR-aktivitet over den centrale cortex. Måling på skalpen giver nogle praktiske problemer med at fiksere elektroderne til huden pga. hår. Det vælges derfor at benytte en elektrodehætte opbygget efter 10-20 standarden, hvor elektroderne fikseres på skalpen af hætten, og elektroderne opnår god kontakt til huden via elektrodegel. Forforstærkning Forforstærkningens primære funktion er at forstærke differensen mellem to afledninger i forhold til en referenceafledning samt give en stor indgangsimpedans for elektroderne. Dette kan opfyldes af en instrumenteringsforstærker, der består af 3 sammenkoblede operationsforstærkere. Det vil dog være problematisk at opnå en forstærkning på 50.000, da dette vil nødvendiggøre brugen af resistorer, der er uhensigtsmæssige små, endvidere vil der være større usikkerheder, når den lukkede sløjfeforstærkning er meget stor, da operationsforstærkerne ikke er ideelle. Denne udgave er fra d. 23. maj 2003 kl. 15.38 3.1 EEG-afledningsenhed - analogt interface 37 Instrumenteringsforstærkeren skal have en stor Common Mode Rejection Ratio (CMRR), dvs. signaler der bliver opfanget af begge input-elektroder ikke forstærkes. CMRR-værdien er defineret som: CMRR ~ Gd Gc (3.1) hvor Gd er "differentialforstærkningen"og Gc er "Common Mode forstærkningen". Nogle andre faktorer, der har stor indflydelse på CMRR, er forskellen mellem elektrodeimpedanserne (∆Zelektroder ), samt indgangsimpedansen på forforstærkeren (Zin ). Der eksisterer følgende sammenhæng: CMRR Zin ü ∆Zelektroder (3.2) For at få en stor CMRR, søges det derfor at mindske ∆Zelektroder ved at rense huden, endvidere benyttes en stor indgangsimpedans (Zin ) på det første signal fra elektroderne møder. Det opnås hyppigst ved at lade elektroderne forbinde direkte til indgangen på en operationsforstærker, som det ses ved en instrumenteringsforstærker. Specielt ved svage signaler som EEG-signalet, er det vigtigt at benytte forstærkere, der har et lavt støjniveau, da evt. støj vil forstærkes sammen med signalet. Da EEG-afledningens amplitude kan variere relativt meget, er det krævet, at forstærkningen gøres variabel. Det vil derved være muligt at forstærke et givent EEG-signal op, så det tilnærmelsesvis udnytter hele ADCens måleområde. Aktivt filter Der skal anvendes et lavpasfilter for at undgå aliasing ved analog til digital konvertering. Da neurofeedbacksystemet ikke gør brug af signaler over 40Hz, besluttes det at placere knækfrekvensen her. Når knækfrekvensen placeres så lavt som muligt opnåes en række gode virkninger, idet at lavere frekvensområde der skal digitaliseres, kræver lavere samplingsfrekvens. Hvis transitionsbåndet er meget lile giver det den negative effekt at der skal dæmpes hurtigt hvilket betyder at et filter af højere orden er nødvendigt. Filteret reducerer noget af det 50Hz støj fra lysnettet samt støj fra EMG, som generelt er mere højfrekvent. Som nævnt i ovenstående afsnit, er det ikke forsvarligt at foretage hele forstærkningen af EEGafledningen ved forforstærkeren, der skal derfor benyttes et aktivt filter, der kan forstærke signalet yderligere op. Offsetspænding Der skal tilføjes en offsetspænding til det afledte signal (jf afsnit for at placere signalets nulpunkt midt i AD-converterens måleområde. Det vil ellers ikke være muligt at digitalisere den negative del af EEGsignalet. Denne udgave er fra d. 23. maj 2003 kl. 15.38 38 Hardwaredesign 3.1.3 Layoutdesign Elektroder og kabler Der benyttes en elektrodehætte opbygget efter 10-20 standarden, hvor der skal benyttes en aktiv afledningselektrode ved C3, jord på Cz samt en reference afledning fra A1 koblet med A2 (Øreflipperne). Denne konfiguration er valgt på baggrund af litteraturen [Clarke et al. 2002, Fuchs et al. 2003, Clarke et al. 1998], samt empiriske undersøgelser (afsnit 1.4.3 side 13) udført i forbindelse med projektet. Forforstærkning Der er til forforstærkning valgt et integreret kredsløb af typen INA217, som er opbygget som en instrumenteringsforstærker. Den udmærker sig ved en høj indgangsimpedans, et lavt støjniveau og en høj CMRR-værdi (min. 100dB ved 100 gangs forstærkning) [Texas-Instruments 2002]. Det er ønskeligt at have en stor forstærkning først i signalbehandlingen, da evt. støj fra komponenter og omgivelser efterfølgende vil have en reduceret indflydelse. EEG-afledningskredsløbet skal have en trinvis variabel forstærkning mellem ca. 5.000 og 50.000. Dette spektre stemmer overens med de tidligere definerede 8.000-50.000. Da der ønskes en stor forstærkning ved forforstærkeren, bestemmes det, at instrumenteringsforstærkeren skal kunne forstærke mellem 100 og 1000 gange i intervaller af 100, dvs. 100, 200, 300 osv. INA217 forstærkning bestemmes ud fra databladets oplysninger om sammenhænge mellem den eksterne resistor RG og forstærkningen [Texas-Instruments 2002]: 1 G ~ 10 000 RG ý (3.3) Ud fra formlen findes størrelsen på 10 forskellige RG -modstande, der giver de ovennævnte forstærkninger i intervallet fra 100 til 1000. Der benyttes en switch således, at det er muligt at indsætte hver enkelte modstand som RG ( se figur 3.3), herved opnåes en trinvis variabel forstærkning. I et kommercielt produkt ville den variable forstærkning, sansynligvis være styret automatisk med en digital switch eller modstand. Projektet afgrænses dog til ovenfor beskrevede løsning pga. de i projektet allokerede tidsressourcer. Af sikkerhedsmæssige grunde sættes en 1kΩ’s modstand på hver af indgangene til instrumenteringsforstærkeren. I tïlfælde af en komponent bliver deffekt og leder strøm gennem patienten, vil strømmen blive begrænset til et ikke skadeligt niveau. Da der mellem elektroder ofte er store konstante potientialforskelle set i forhold til størrelsen af EEG-signalet, vil en evt. afledt konstant potientialforskel forstærkes op af instrumenteringsforstærkeren. Hvis dette sker, risikerer forstærkeren at gå i mætning. For at modvirke dette indsættes en integrerende forstærker ind mellem INA217-forstærkerens output og dens reference. Når instrumenteringsforstærkeren giver et lavfrekvent output, vil den integrerende forstærker sende en inverteret del af dette ind på INA217-forstærkerens reference. Da referencen summeres med outputtet [BurrBrown-Corporation 1998], bliver resultatet, at det omtalte lavpasfilter trækker de lavfrekvente signaler fra instrumenteringsforstærkerens output og derved egentlig fungerer som et højpasfilter for instrumenteringsforstærkeren (se figur 3.3). Knækfrekvensen sættes til 0,5Hz, da systemet ikke benytter hjernebølger med lavere frekvens end 0,5Hz. Komponentværdierne bestemmes ud fra Denne udgave er fra d. 23. maj 2003 kl. 15.38 3.1 EEG-afledningsenhed - analogt interface 39 [BurrBrown-Corporation 1998]: 1 fc 2 π R1 forforstærker C1 forforstærker ~ (3.4) þ ÿ þ ÿ hvor C1 sættes fast til 220nF. Herefter er det muligt at finde R1 = 1.447MΩ. Referenceelektroden forbindes efterfølgende med det inverterende aktive filters positive indgang [BurrBrown-Corporation 1998]. Overføringsfunktionen findes ved at indsætte R1 forforstærker og C1 forforstærker i den generelle overføringsfunktion for et 1. ordens højpasfilter (3.5) þ H s ÿ þ ÿ s R C s R C 1 ~ (3.5) ý Funktion (3.6) er således overføringsfunktionen for højpasfiltret uden instrumenteringsforstærkerens forstærkning. H s 0 31834 s 0 31834 s 1 ~ (3.6) ý Aktivt filter Der er valgt et aktivt Sallen-Key 2. ordens lavpasfilter til at filtrere signaler over 40 Hz fra, idet der herved så vidt muligt undgås støj over 40 Hz inklusive støj fra lysnettet og EMG [Sedra & Smith 1998]. Desuden er et sådant filter forholdsvist nemt at realisere, og da det kun er nødvendigt at bruge én operationsforstærker, har filtret et begrænset effektforbrug, hvilket er en fordel ved batteridrevne systemer. Ved denne type filter vil polerne være komplekse, hvilket giver en stejlere kurve ved knækfrekvensen og derved en hurtigere afskæring end ved et 1. ordens filter. Overføringsfunktionen for et 2. ordens SallenKey-filter er følgende, hvor A0 svarer til DC-forstærkningen [’Texas-Instruments’ 2003, Sedra & Smith 1998]: Vout Vin A0 ~ 1 ý sω0 R1C1 ý R2C1 ý C2 R2 A0C2 R1 s2 ω0 2 R1 R2C1C2 ý (3.7) Hvis 3.8 omskrives fåes et mere genkendeligt udtryk: Vout Vin ~ s2 ý s 1 R2C2 A0 R1 R2C1C2 1 1 R1C2 C1 R2 ý ý A0 C1 R2 ý 1 R1 R2C1C2 Denne udgave er fra d. 23. maj 2003 kl. 15.38 (3.8) 40 Hardwaredesign Da der er tale om komplekse poler ved dette filter, kan knækfrekvensen umiddelbart bestemmes, ud fra overføringsfunktionen [Johnson, Johnson, Hilburn & Scott 1999] til: ω0 1 R1 R2C1C2 ~ (3.9) Den generelle form for en overføringsfunktion for et filter er følgende: Vout Vin s2 ~ ý 1 as (3.10) b ý Der vælges et filter af Butterworth typen udfra Sallenkey familien, idet dette giver den fladeste afskæring uden rippels. Værdierne a og b skal for Butterworth være henholdsvist 2 og 1 [’Texas-Instruments’ 2003]. Forstærkningen i filtret bestemmes af R3 og R4 idet [’Texas-Instruments’ 2003]: A0 1 ~ ý R4 R3 (3.11) Forstærkningen i filtret sættes til 50, hvorved den samlede forstærkning i EEG-afledningsenheden bliver 5.000-50.000. Herefter bestemmes R3 og R4 til henholdsvis 10KΩ og 490KΩ. Efter bestemmelse af de to modstande, er der tilbage at bestemme fire værdier udfra 3 ligninger. Dette kan gøres ved hjælp af værdierne for a og b og overføringsfunktionen (3.7) eller (3.8). For at lette udregningerne blev der benyttt et program fra Texas Instruments ved navn “Filter Pro” til bestemmelse af størrelserne på både modstande og kondensatorer. Følgende størrelser blev bestemt ved en DC-forstærkning på 50 og en knækfrekens på 40 Hz (251 rad/s). R1 R2 C1 C2 = = = = 4kΩ 12kΩ 2,2µF 150nF For at være sikker på at værdierne passer til et 2. ordens Sallen-Key Butterworth-filter blev følgende undersøgt: Knækfrekvens Knækfrekvensen var bestemt til 40 Hz og udregnes ved benyttelse af formel (3.9) bliver det: ω0 ~ 1 4kΩ 12kΩ 2 2µF 150nF 251 25rad s ~ 40Hz da Denne udgave er fra d. 23. maj 2003 kl. 15.38 ω 2π f ~ (3.12) 3.1 EEG-afledningsenhed - analogt interface a- og b-værdierne ~ R2C1 ý C2 R2 ý 251rad s 4kΩ 2 2µF ~ 1 45 ~ 2 ω0 R1 R2C1C2 2 b ~ Udfra formel (3.7) undersøges det om a-værdien er ω0 R1C1 a 41 ý A0C2 R1 12kΩ 2 2µF 150nF 12kΩ ý 2 251rad s 4kΩ 12kΩ 2 2µF 150nF ~ 2 og b-værdien er 1. 50 150nF 4kΩ (3.13) 1 (3.14) Det ses, at de valgte størrelser stemmer overens med de opstillede krav for et 2. ordens Butterworth filter. Ud fra dette kan opstilles følgende overføringsfunktion for filtret: Vout Vin 3156565 7 366s 63131 ~ s2 ý (3.15) ý Overføringsfunktionen kan illustreres ved figur 3.2: Figur 3.2: Bodeplot, der viser filterets amplitudekarakteristik Det ses, at filteret har en knækfrekvens på 40 Hz, og at amplituden derefter falder med 40 dB pr dekade. Offsetspænding Til at summere en offsetspænding til det afledte signal anvendes en ikke-inverterende forstærker, med en forstærkning på 1. Input- og output-forholdene for forstærkeren med to input er bestemt ved [Johnson et al. 1999]: Denne udgave er fra d. 23. maj 2003 kl. 15.38 42 Hardwaredesign 1 vafledning ~ ý R4(sum) R3(sum) R R R 1(sum) 2(sum) vfilter R1(sum) R2(sum) voffset R2(sum) ý 1(sum) (3.16) Sættes alle modstande til samme værdi fås en forstærkning på 1. Der vælges at benytte 10kΩ modstande. Offsetspændingen trækkes ud fra en spændingsdeling mellem VCCp(3,3) og jord efterfulgt af en spændingsfølger. For at lede evt. højfrekvent støj væk indsættes en kondensator mellem offsetspændingen og jord. Komponenterne bestemmes, således at knækfrekvensen er 5Hz, hvilket betyder, at evt. 50Hz støj fra lysnettet vil blive dæmpet med 20dB. Overføringsfunktionen for spændingsdelingen og kondensatoren er: H s 1 R(offset) C(offset) s ~ (3.17) 2 ý R offset er størrelsen på hver af modstandene i spændingsdelingen. Hvis knækfrekvensen for systemet skal placeres ved 5Hz, skal følgende gælde: þ ÿ 2 π R C 2 0 ~ 1 RC ~ 5 π 0 0637 ~ Denne udgave er fra d. 23. maj 2003 kl. 15.38 (3.18) 3.2 Digitalt interface 43 Der vælges en kondensator på 220nF, hvorefter modstandende bestemmes til 289kΩ. Det endelige design ses på figur 3.3. 2 ? 8' @ A # $ 4*% E) F8'-% $C C* 4*& * % . .G " & ?, 8 ' @ A + " & , ? 8 ' @ A + " & ? 8 ' @ A + , " & ? 8 ' @ A + " & ? 8 ' @ A + " & ? 8 ' @ A + " & ? 8 ' @ A + 0 " & ? 8 ' @ A + , , , , " & ? 8 ' @ A + " & ? 8 ' @ A + . " 2 3 , 4 5 - * 6 + - ""5 && 88 )) ** %% AA ** CC ++ . 7 /" # "$ 0 %# $ + % & ' ( % ) * % + " 2 3 4 5 * 6 + " 2 3 4 5 * 6 + < . ,, . - " 0 + 7 " # 84' * % + , 5 ,5 / "5 & 8 ) * % A * C + 0 9 ; : *# 5 . - "0 + . " # $ , % #- $ % & ' ( % ) * % + " # !$ % # $ % & ' ( % ) * % + . " 2 3 4 15 * 6 + . / " 0 + " 2 , 3 5 4 5 * 6 + " 2 0 3 , 4 55 * 6 + . :. / " 0 + :. / " 0 + . . . " + < = , 0 " 5 # & * ' + . " $ # & * ' + < > 7 " $ # & * ' + . ;. - "0 + 0 " 5 # & * ' + , - , . ;. - "0 + .: / "0 + , 5" & 1 B + 7 " 3 # 4 * C - 8 D + < , . ; - "0 + , 5 " & 1 B + , 5 " & 1 B + , 5 " & 1 B + Figur 3.3: Det endelige design af EEG-afledningsmodulet 3.2 Digitalt interface Det digitale interface skal sørge for, at MSP430 og PC’en kan kommunikere. Der vil derfor indledningsvis blive beskrevet, hvordan de to moduler kommunikerer med anre enheder. Derefter vil designet af et interface, så de to moduler kan kommunikere, blive påbegyndt ved først at lave et moduldesign, som efterfølgende uddybes i et layoutdesign. 3.2.1 Strukturdesign MSP430 Microcontrolleren MSP430 benytter en Universal Asyncronous Receiver/Transmitter (UART) enhed til at kommunikere med eksterne enheder. Microcontrolleren arbejder internt med parallel dataoverførelse, og UART’en omdanner de parallelle data, så de bliver sendt videre serielt. Microcontrolleren opererer ved UART-kommunikation med logiske CMOS-niveauer, hvilket betyder, at logisk lav er 0V, og logisk høj er 2,7 til 3,3V ved en spændingsforsyning på 3,3V. Det er disse spændingsniveauer Denne udgave er fra d. 23. maj 2003 kl. 15.38 44 Hardwaredesign microcontrolleren benytter ved kommunikation med andre komponenter [Texas-Instruments 2001a, Texas-Instruments 2001b]. PC I dette projekt skal microcontrolleren kommunikere med en PC, hvilket foregår ved den serielle standard RS232. Da systemet jf. kravspecifikationen afsnit 1.6 på side 15 skal køre på Windows, er RS232standarden blevet valgt, da 80x86-platformen, som Windowsmaskiner kører på, understøtter RS232. RS232 bruges, når PC’en skal kommunikere med eksterne enheder eller evt. en anden computer via seriel kommunikation. Der er indbyggede funktioner i RS232-standarden,som primært benyttes, når PC’en skal kommunikere med et modem. Disse bliver bl.a. brugt til handshaking mellem PC og modem, men bruges i dette projekt kun som strømkilde, hvilket bliver uddybet senere. Der benyttes altså kun et subset af RS232 standarden i dette projekt, idet det kun er Receive/Transmit samt strømkilde standarden bliver benyttet til. Ligesom MSP430 benytter PC’en også en UART. Ved RS232-standarden er logisk høj lig med -5 til -12V, og logisk lav er 5V til 12V. Spændingerne ligger højt fordi det muliggør dataoverførsel via kabler over relativt lange afstande [Uffenbeck 2001]. Hvordan de enkelte logiske spændingsniveauer for RS232 og MSP430 ligger i forhold til hinanden kan ses afbildet på figur 3.4. l m n opq r s tu v w x y z a bcdef g h i j k H I J K L{ M N | O } P Q R S T U V W X Y Z ~ [ \ ] ^ _ ` Figur 3.4: De logiske spændingsniveauer for RS232 og MSP430 3.2.2 Moduldesign Spændingsniveauer Spændingsniveauer for logisk lav og høj er ikke ens for PC og MSP430, som det fremgår af figur 3.4. Interfacet skal derfor konvertere spændingsniveauet for signalerne fra MSP430 og PC, således at de passer til det enkelte moduls logik. Til at lave denne konvertering benyttes en seriel transciever af typen MAX3223, som med en spændingsforsyning på 3,3V kan konvertere både fra MSP430 logiske spændingsniveauer til RS232 og omvendt. Enheden har derudover den egenskab, at den ved forskellige energisparefunktioner får et lavt effektforbrug [Maxim 2002]. Denne udgave er fra d. 23. maj 2003 kl. 15.38 3.2 Digitalt interface 45 Sikkerhed Sikkerhed blev jf. kravspecifikationen afsnit 1.6.5 sat som høj prioritet, fordi systemet er forbundet direkte til en patient via elektroder. For at undgå, at patienten risikerer at få store strømstyrker igennem sig, skal forbindelsen mellem lysnettet og patienten være galvanisk adskilt. Ved at lade den del af systemet, der er i direkte berøring med patienten, blive forsynet af almindelige 9V batterier, vil der ikke kunne løbe mærkbare strømstyrker gennem patienten, da batterierne har en begrænset strømkapacitet. Idet systemet indbefatter en computer, vil hele systemet ikke kunne forsynes med batterier. Den galvaniske adskillelse mellem disse to moduler skal altså være i interfacet mellem microcontrolleren og PC’en. Optocouplere af typen HCPL-270 bliver i dette projekt til at lave denne galvaniske adskillelse. Optocouplere laver galvanisk adskillelse ved at lade indgangen styre et diodekredsløb, der fungerer som kontakt for kredsløbet, hvorpå udgangen sidder. Det første diodekredsløb styrer det andet ved hjælp af lys [Technologies 1998]. ¸ ¹º » ¼½ ¾ ¿ À ÁÂÃ Ä Å Ý Þ ß à á â ãä å æ ç èé ê ë ìí î ï ð ñ ò óôõ ö÷ ø ùú û ü ý þ Æ ÇÈ É Ê Ë Ì Í Î Ï Ð Ñ ´ µ¶ · ¡ ¢£ ¤ ¥ ¦ § ¨ © ª « ¬ ®¯ °± ² ³ Ò Ó Ô Õ Ö ×ØÙ Ú Û Ü Figur 3.5: Illustrering af den galvaniske adskillelse Figur 3.5 viser, hvordan der ingen forbindelse er mellem jord på lysnetsiden og jord på den anden side af sikkerhedsbarrieren. Dette er vigtigt, idet patienten derved beskyttes mod at få strøm igennem sig, hvis denne kommer i kontakt med lysnetsjord. Hvis alle dele af systemet havde fællesjord kunne det f.eks. være farligt for patienten at røre noget andet udstyr eller en radiator, der var koblet op på samme jord. Ved både at gøre jorden uafhængig i forhold til lysnetsjord og benytte en batteriforsyning på den anden side af sikkerhedsbarrieren, opnås en god beskyttelse. Forsyning Det digitale interface forventes at blive forsynet med 3,3V, som skal være konstant og til dette formål er valgt en konstant spændingsregulator, LE33, som giver en konstant udgangsspændingspænding ved en forsyningsspænding på op til 18V [ST 1998]. Ved den anden side af sikkerhedsbarrieren er forsyningen batterier, der vha. projectboardets spændingsregulator giver en konstant spænding på 3,3V. Denne udgave er fra d. 23. maj 2003 kl. 15.38 46 Hardwaredesign 3.2.3 Layoutdesign Forsyningsspænding For at gøre designet simplere er det blevet valgt, at lysnetsiden af den galvaniske adskillelse skal have forsyning fra RS232-porten. Der benyttes et 9-pins stik til RS232-porten, og der trækkes strøm fra pin 4 og 7, som er Data Transmission Ready (DTR) og Ready To Send (RTS), der giver en spænding på minimum 5V, når PC’en er klar til at sende og modtage [Uffenbeck 2001]. Forsyningsspænding på den anden side af adskillelsen fås ved en batterypack med 2 9-voltsbatterier, som der ses på figur 3.6. Forsyningsspændingen, som fås fra enten batteriet eller RS232 benene, tilsluttes LE33, som regulerer spændingen til 3,3V. Outputtet fra LE33, som på figur 3.6 står angivet som Vcc, og har altså galvanisk forbindelse til lysnettet. Optocouplere Der benyttes to optocouplere, som laver en adskillelse fra både sende- og modtage-pin på microcontrolleren til resten af systemet. Inputstrømmen på HCPL-270 optocouplerne skal ligge imellem 0,5mA og 20 mA [Technologies 1998]. Der skal indsættes modstande til at begrænse strømmen, således at den når dette niveau, og dioder for at yde beskyttelse. Ved indsættelse af en 1kΩ modstand og en 1N4148 diode reduceres den maksimale strøm til: Vcc Imax ~ R VD 3 3V 1 2V 1000Ω 2 1mA (3.19) Den beregnede strømstyrke er ikke præcis 2,1 mA, da strømstyrken gennem dioden ikke er lineær. 2,1 mA er en acceptabel strømstyrke, da den ligger lavt, men alligevel et stykke fra grænsen på 0,5 mA. Outputstrømmen Io må ligeledes også maksimalt ligge på 60 mA, men det er vigtigt, at strømmen ikke bliver for stor, da forsyningen LE33 kun kan 100 mA. Ydermere kan PC’en maksimalt levere en strømstyrke på 5 mA, så derfor vælges en tilpas lille strømstyrke. Ved indsættelse af en 2,2 kΩ modstand vil den maksimale outputstrøm blive ca. 15mA, hvilket vurderes til at være optimalt. Der sættes en 10 KΩ modstand fra Vb-benet (ben 7 på figur 3.6) på optocouplerne til jord for at undgå mætning. Seriel Transciever Den serielle transciever MAX3223 forbindes med fire kondensatorer på 100 nF, der ifølge databladet skal bruges, når enheden arbejder med 3,3V logik. Benene til EN, FORCEON og FORCEOFF benyttes alle til en styring af, hvornår enheden skal være aktiv. Ved at lade FORCEOFF gå høj og FORCEON samt EN gå lav, bliver enheden sat på en strømbesparende funktion således, at enheden går ned på et meget lavt strømforbrug, når der ikke transmitteres nogen signaler [Maxim 2002]. Denne udgave er fra d. 23. maj 2003 kl. 15.38 3.2 Digitalt interface 47 3.2.4 Samlet design Det samlede layout-design for det digitale interface kan ses på figur 3.6, hvor forbindelsen mellem de enkelte enheder, der er beskrevet i dette afsnit kan ses. ÿ ÿ ÿ ! 3 4 & ÿ ! & $ % ! $ " * % & & " 0 1 ÿ " # ÿ * ÿ ! $ % & " # ! 3 0 1 4 ! 7 6 7 9 7 8 6 6 <5 5 3 4 ÿ ÿ " " ÿ ÿÿ ÿ 1 " ÿ * " ÿ ÿ ÿ ÿ ' ' ÿ ( ÿ ÿÿ * 1 ) ÿ " " 1 ( ÿ ' ( ' ( " ( / " " ÿ " ÿ ( / * 1 ( ÿ - . , ( ÿ " " 0 2 * % + - 4 % & ) 4 " / ! & 5 ! :; ! / = Figur 3.6: Layoutdesign for interface mellem MSP430 og PC Denne udgave er fra d. 23. maj 2003 kl. 15.38 * * " 48 Hardwaredesign Denne udgave er fra d. 23. maj 2003 kl. 15.38 4 Softwaredesign Softwaredesignet inkluderer to overordnede enheder: Microcontrolleren MSP430 og PC. Der vil med udgangspunkt i SPU-modellen blive beskrevet de to enheders grænseflader, samt hvordan de i softwaredesignet vil blive koblet sammen. Dette kapitel vil starte med en programopdeling, der vil lave relevante opdelinger af systemet i programmer, hvorefter programdesignet kan påbegyndes. I programdesignet opdeles programmerne i funktioner og processer. Endvidere bliver grænseflader mellem programmer og processer defineret. Efter programdesignet påbegyndes procesdesignet, der skal dele de definerede processer op i moduler. Til sidst udføres moduldesignet, som er det sidste trin i V-modellen før kodning og de efterfølgende test. Målet er at dele softwaredesignet op i veldefinerede programmer, processer og moduler jf. SPUmodellen. V-modellen på figur 4.1 viser, hvordan designet efterfølges af kodning og derefter test, som behandles senere. > ? @ A B C E O D P F Q G H R I S J T K U L M s N V W X Y Z [ } \ ] ^ _ ` a h b c i d j e f ~ t u v w x y z { | k g l m n o p q r § ¨ © ª « ¬ ¡ ¢ £ ¤ ¥ ¦ Figur 4.1: V-modellen beskriver udviklingen af softwaredesignet fra kravspecifikation over de forskellige dele af designet til test, der afsluttes med en accepttest. [Biering-Sørensen et al. 2000] 4.1 Programdesign Idet microcontroller og PC er to forskellige platforme, vil softwaren opdeles i to programmer. Programmet til microcontrolleren bliver programmeret i C, mens der på computeren benyttes LabVIEW til softwareudviklingen. Programdesignet vil dog pga. de to programmers tætte tilknytning blive beskrevet samlet. 49 50 Softwaredesign I dette afsnit vil programmerne blive opdelt i en række funktioner, og udfra disse deles de op i processer. Efter procesopdelingen vil processernes grænseflader blive beskrevet, og der vil blive udarbejdet en procesguide, der kort summerer processernes grænseflader, input/output og funktioner. 4.1.1 Eksterne grænseflader I beskrivelsen af grænseflader vil der blive set bort fra alt hardware, der forbinder enhederne, idet det ikke har nogen indflydelse på softwaredesignet. De steder, hvor hardwaren har indflydelse på designet af softwaren som f.eks. ved transmissionshastigheden mellem PC og microcontroller, henvises der til systemkravene i systemdesign afsnit 2.2. MSP430 Enheden MSP430 har to grænseflader. Den ene grænseflade er til patienten, hvorfra microcontrolleren modtager input i form af EEG-signaler. Den anden grænseflade er til PC’en, hvortil enheden sender det samplede og filtrerede EEG-signal, samt modtager start- og stop-bit. PC PC’en har tre grænseflader, som indbefatter en til patienten, en til behandleren og en til microcontrolleren. Grænsefladen til microcontrolleren består som før nævnt af transmission af signaler. PC’en skal modtage de samplede og filtrede EEG-signaler fra microcontrolleren, men skal også have mulighed for at styre microcontrolleren således, at der ikke samples signaler, når der ikke er brug for det. Udover at modtage et EEG-signal skal PC’en lave et feedback til patienten på baggrund af det modtagede signal, og de indstillinger behandleren har foretaget. Brugerinterfacet til behandleren skal indeholde de i kravspecifikationen bestemte indstillingsmuligheder for behandleren. 4.1.2 Funktionsopdeling For at dele de to programmer op i processer, betragtes hele softwaredesignet med alle de funktioner, det indeholder. En illustrering af de opgaver, softwaren i systemet skal udføre, samt hvilke typer data, der sendes og modtages kan ses på dataflowdiagrammet figur 4.2. Diagrammet viser også, hvordan opgaverne er blevet delt ind i processer. Endvidere ses det, at Patientdata-filen bliver brugt af mange funktioner. Det skal hertil nævnes, at ingen af disse tilgår data fra denne samtidig. Patientdata-filen Denne udgave er fra d. 23. maj 2003 kl. 15.38 4.1 Programdesign 51 indeholder data om alle patienter, hvilket vil sige navn, personnummer, sessionsoplysninger som tidspunkt, DFO-ratio, Tærskelværdi og EEG-signal. ª ¸ ¹ º » « ¬ ¼ ½ ® ¾ ¿ ¯ À Á  à 5 ½ ¾ ¿ À Á Â Ã Ä ! " # $ % & ' ( ) Å Æ + , - . / 0 É Ê 7 8 9 : ; < Ë Ì Í Î 2 3 ? T ! " # $ % & ' ( ) * + N O P Q R U ± M @ L 4 > K = 1 È 6 Ç * ² ³ ´ µ ¶ S , þ V W X Y Z [ \ ] ^ _ ` a b ÿ c è J K L M N O P Q R é ë ä T U V W X Y ê S Z [ \ å æ ç è é ê ë ì ì í í ] d e f î g ï h ð i ñ j ò k ó l ô m õ ö ÷ ø ù ú û ü ý þ n o p q r s t u v ÿ ® Ð Ñ Ò ¯ ° ± ² Ô Ä Å ¢ £ ¤ ¥ ¦ § ¨ © ª Ò Ó Ô u v w x y Ç × Ø È É × Ø Ù Ú Û z Ü ´ Ö Ö Æ ° Õ Õ « ³ t Ó Ñ ¡ Ï w Ê ± ² ³ ´ µ ¶ µ ¶ · ¸ ¹ º » Ý Þ ß à á â ã ¼ · Ë Ù ^ { | } ~ _ ` a b c d e f g h i j k - . / 0 1 2 3 4 5 6 7 x y z { | } A l m n o p q r ~ ¸ ¹ º » ¼ ½ Í Î Ï 9 : ; < = > @ ¡ ¢ £ ¤ ¥ ¦ § ¨ A B C D E F G H I ¯ F G H I J î ® E © D ? Ð ¾ ¬ C s 8 · B Ì ï ð ° Ú Û Ü Ý Þ ß ñ à á â ã ä å æ ò ó ô õ ö ÷ ø ù ç ú û ü ý Figur 4.2: Dataflow-diagrammet viser, hvorledes programmet i microcontrolleren, afgrænset med sort streg, består af en enkelt proces, MSP430-processen. Softwaren på PC’en består også kun af en proces, PC-proces. Hver proces, som er illustreret med stiplede linier, indeholder funktioner, der er illustreret med cirkler. Monitorer er illustreret som kasser med åbne sider. 4.1.3 Procesopdeling På dataflowdiagrammet (figur 4.2) ses, hvordan de to programmer er delt op i funktioner og processer. Kriteriet for om en række funktioner kan deles op i processer er, at processerne skal kunne køre uafhængigt af hinanden, hvilket også er tilfældet for processen på microcontrolleren og processen på PC’en. MSP430-proces Programmet til MSP430 har til opgave at behandle EEG-signalet, så det kan bruges af PC’en. FunkDenne udgave er fra d. 23. maj 2003 kl. 15.38 52 Softwaredesign tionerne, der skal udføres, er: A/D-konvertering, digital filtrering og kommunikation med PC. Disse funktioner samles i processen: MSP430-proces. PC-proces Alle funktioner i programmet på PC’en er samlet til en proces, PC-proces. Processen har følgende hovedopgaver: give feedback til patienten udfra det modtagede EEG-signal, gemme signalet til senere brug, give behandleren mulighed for at se reeltids EEG med henblik på kalibrering af systemet, administrere patientinformationer, vise resultater fra tidligere sessioner, samt at styre sessionsindstillingerne herunder DFO-ratio (DFOmin og DFOmax) og tærskelværdi. Som det fremgår af dataflowdiagrammet på figur 4.2, indbefatter PC-processen funktionerne: Kommunikation med MSP430, vis EEG, beregn DFO-ratio, bestem feedback, afspil musik, vis barre, vis resultat og gem indtastet data. 4.1.4 Interne grænseflader De interne grænseflader udgøres udelukkende af monitormoduler. Processer må kun kommunikere via monitorer, som sikrer, at kun en af processerne får adgang til en given datastruktur eller modul ad gangen. Monitorer kan implementeres som f.eks. en lagringsfil, en buffer eller et modul. Såfremt der kun er tale om funktionskald og lignende, som ikke betyder tilgang af data i f.eks. en fil, er det ikke nødvendigt for to processer at have en monitor imellem sig. For at illustrere sammenhængen mellem programmernes processer og monitorer anvendes en accessgraf. Â Í Î Ï Ð À à ¿ Å Æ Ç È É Ê Á Ñ Ö × Ø Ù Ú Û Ü Ý Þ ß Ò Ó Ô Õ à Ë Ì Ä á â ã ä å æ ç è é ê ë Figur 4.3: Accessgraf, der viser, hvilke monitormoduler (M) processerne (P) kommunikerer med Som det fremgår af accessgrafen, har PC-processen adgang til samtlige monitormoduler, der er i systemet. Fra figur 4.2 til figur 4.3 er der tilføjet monitoren Temp. Temp-monitoren er nødvendig at tilføje, fordi de samplede EEG-signaler skal gemmes i hukommelsen (RAM), før de gemmes på harddisken i Patientdata-monitoren. Musik-monitoren repræsenterer playlisten med de lydfiler, der skal afspilles som feedback. Monitorernes implementering i systemet uddybes yderligere i procesdesignet. Denne udgave er fra d. 23. maj 2003 kl. 15.38 4.2 Procesdesign - MSP430-proces 4.1.5 Procesguide For at lette opdelingen af moduler i næste afsnit følger her en procesguide for de to processer. MSP430-Proces Grænseflader: Processen grænser til PC-processen gennem UART buffer-monitoren. Input: EEG-signal fra patienten samt kontrolinput fra UART buffer-monitoren. Funktion: MSP430-Processen skal styre, hvordan microcontrolleren skal sample og A/D-konvertere. Såfremt microcontrolleren sættes til at sample og A/D-konvertere EEG-signaler fra patienten, skal disse signaler filtreres, og derefter sendes via en UART til PC-processen. Output: Samplet, A/D-konverteret og filtreret EEG-signal PC-proces Grænseflader: Processen grænser til MSP430-processen gennem UART buffer-monitoren. Input: Samplet og filtreret EEG-signal fra UART buffer-monitoren, musik fra Musik-monitoren, DFO og tærskelværdi fra Patientdata-monitoren. Endvidere vil der være input i form af indtastet data og valg fra behandleren. Funktion: PC-processen indbefatter alle funktioner, der benyttes på PC’en. For behandleren skal processen efter en række input vise resultatet af tidligere sessioner gemt i Patientdata-monitoren, og behandleren vil få mulighed for at få vist EEG-signalet samt udviklingen af DFO-ratio over tid. Behandleren skal også via denne proces kunne slette og rette patientdata samt oprette nye patientprofiler. Derudover skal behandleren kunne starte en behandlingssession, når det ønskes, og det skal endvidere være muligt at ændre den playliste, hvorfra der afspilles musik under sessionen. Under en session har PC-processen som funktion at give feedback til patienten ud fra DFO-ratioen, som er beregnet ved en Fast Fourier Transform(FFT)-analyse og senere powerspektrum af det modtagede EEG-signal fra MSP430-processen og DFO samt tærskelværdien for DFO-ratioen. Tærskelværdien for DFO-ratioen samt den valgte DFO er beskrevet i Patientdata-monitoren, hvor processen henter data fra. Samtidig med at der gives feedback, skal PC-processen også gemme det modtagne EEG-signal i en temporær buffer i form af monitoren Temp. Når behandleren afslutter en behandlingssession, gemmes indholdet af Temp i Patientdata-monitoren. Udover at give feedback giver processen også behandleren mulighed for at se reeltids-EEG med henblik på kalibrering af systemet. Output: Feedback til patienten, Reeltids-EEG til behandleren, EEG-signal til Temp-monitor og EEGsignal til Patientdata-monitor, kontrolinput til MSP430-processen, visning af resultater fra en behandlingssession, samt skrivning til Patientdata-monitoren. 4.2 Procesdesign - MSP430-proces Softwaren, der skal programmeres til processen, skal skrives i C og kompileres til et på microcontrolleren eksekverbart program. Microcontrolleren fungerer fortrinsvist ved interrupts og de tilhørende Denne udgave er fra d. 23. maj 2003 kl. 15.38 53 54 Softwaredesign Interrupt Service Routines (ISR). Interrupts håndteres i en prioriteret rækkefølge på microcontrolleren. For at der reageres på interrupts, skal de enables, hvilket gøres ved at enable generelle interrupts og derudover den specifikke interrupt, der ønskes håndteret. Kommer der et interrupt, imens CPU er stoppet, sættes den i active-mode, hvirefter interruptet håndteres. Er CPU aktiv udføres den nuværende instruktion for dernæst at begynde på den nye. Hvis CPU er igang med at håndtere et interrupt med lavere prioritet end det nye, håndteres det nye interrupt med det samme, hvorefter der vendes tilbage til den forrige ISR. Under MSP430-processen på figur 4.2 udføres funktionerne A/D-konvertering og kommunikation med PC af hardware, men software er nødvendig for at indstille de enkelte hardwareenheder i microcontrolleren. Software benyttes også, når der skal reageres på forskellige hardwaretilstande (ISR), samt når CPU’en direkte skal processere et signal som f.eks. ved et digitalt filter. En forsimplet hardwaremodel af funktionerne i MSP430-Processen kan ses på figur 4.4. L M N O P Q R S no ij pq r kl s t m u ( ) * + , # - . $ % & / v 0 : ì í ; < = > 1 î ? 2 @ 3 A B 4 C D E F G H I J K ' 5 6 7 8 9 !" T \ ] ^ _ ` a b c d e f g U V W X Y Z [ h ï ð ñ ú ò ó û ü ô ý õ þ ÿ ö ÷ ø ù Figur 4.4: Simpel hardwaremodel for MSP430 for at simplificere modellen, er fokuseret på de elementer der skal benyttes. Denne udgave er fra d. 23. maj 2003 kl. 15.38 4.2 Procesdesign - MSP430-proces 4.2.1 Eksterne grænseflader Med udgangspunkt i accessgrafen på figur 4.3 og procesguiden 4.1.5 beskrives processens gærnseflader til monitorer yderligere, samt hvordan monitorerne skal implementeres. UART buffer-monitoren UART buffer-monitoren sikrer, at data bliver transmitteret korrekt fra MSP430-processen til PC-processen. Transmissionen styres af UART-chippen, og monitoren vil derfor i designet heller ikke blive implementeret, da det forventes, at UART-chippen udfører opgaven tilfredsstillende. MSP430-processen grænser via UART buffer-monitoren til PC-prcessen. Funktionsopdeling For at dele MSP430-Processen op i softwaremoduler, skal der først ses på, hvilke funktioner softwaren skal udføre. Indstilling af hardware Indstillingerne for de forskellige hardwareenheder skal foregå i softwaren. ADC12 skal indstilles, så den sampler med en frekvens angivet af TimerA, samt at den laver et interrupt, når A/D-konverteringen er fuldført. Timeren skal clocke ADC12, således at A/D-konverteringen foregår ved 200Hz. UART skal indstilles, så den følger kommunikationsprotokollen, der er beskrevet i systemdesign jf. afsnit 2.3.4. ISR ISR skal i softwaren håndtere de interrupts, som kommer fra de forskellige hardware-enheder. Når ADC sender interrupts om, at A/D-konverteringen er fuldført på et bestemt antal samples, skal der køres en filterfunktion på data, og derefter sendes resultatet til UART og derfra videre til PC’en. Når UART sender et interrupt på, at modtagebufferen er fyldt, skal instruktionen (som vil være enten start eller stop A/D-konvertering) udføres. TimerA skal endvidere give et interrupt ved et bestemt antal clockcykler. Det tiltænkes at udføre alle ISR i et main-modul, for at øge overblikket over programmet. Dette modul vil endvidere fungere som hovedmodulet, der køres, når microcontrolleren tændes. Processesering af data Der skal laves et filter, som filtrerer de modtagede samples fra ADC. Denne udgave er fra d. 23. maj 2003 kl. 15.38 55 56 Softwaredesign Udfra disse tre overordnede opgaver for MSP430-Processen opdeles processen i moduler, som det fremgår af figur 4.5. w x y z { | } ~ ¡ ¢ £ ¤ ¥ ¦ § ¨ Figur 4.5: Modulopdeling af MSP430 Ud fra figur 4.5 samt de beskrevne opgaver, opstilles i det følgende modulspecifikationer for de fire moduler MSP430-Processen er opdelt i. MSP430_Main Input: Interrupts fra UART, ADC12 og TimerA. Funktion: MSP430_Main startes, når der sættes en forsyningsspænding på microcontrolleren eller efter en nulstilling, dvs. startes efter Power-on Reset (POR). Modulet linker til ADC12_Setup, UART_Setup og TimerA_Setup samt Filter. MSP430_Main-modulet skal endvidere stå for al interrupthandling, hvilket øger overblikket over funktionskaldene. Når CPU ikke benyttes, skal MSP430_Main bringe microcontrolleren i Low-power Mode, således at der spares energi fra batterierne. Endvidere skal MSP430_Main via stop/start kommandoer fra PCen, henholdsvis kunne lukke microcontrolleren ned i Low-power Mode og bringe den tilbage i active mode. Output: Skrivning til registre i microcontrolleren, der bl.a. styrer Power Modes, TimerA, ADC12 og UART. TimerA_setup Input: () Funktion: Skriver til TimerA kontrolregistre, indstiller TimerA til den ønskede samplingsfrekvens for ADC12. Output: Skrivning til registre i microcontrolleren, der indstiller TimerA. Interrupts: Der skal sendes et interrupt, når TimerA har opnået en defineret værdi. Denne udgave er fra d. 23. maj 2003 kl. 15.38 4.3 Moduldesign - MSP430 57 ADC12_setup Input: () Funktion: Modulet indstiller microcontrollerens ADC12 til at køre efter de givne specifikationer. Ved at skrive til kontrolregistrene i microcontrollerens ADC indstilles inputkanal, referencespænding, samplingsfrekvens og memory-register. Endvidere indstilles microcontrollerens ADC12 til at give et interrupt ved færdig A/D-konvertering. Output: Skrivning til de registre i microcontrolleren, der styrer de ADC12. Interrupts: Der skal sendes et interrupt, når A/D-konverteringsresultatet er gemt i hukommelsesregistret. UART_setup Input: () Funktion: At indstille opsætningen af UART i microcontrolleren ved at skrive til kontrolregistre. Der sættes dataopløsning, baudrate, UART-clock og interrupts. Output: Skrivning til registre i microcontrolleren, der indstiller UART. Interrupts: Der skal sendes et interrupt, når receive-bufferen er fuld. Filter Input: Samplet (tidsdiskret) EEG-signal [12 bits integers] Funktion: Filtermodulet adskiller sig fra de resterende moduler i MSP430-processen, idet det ikke hovedsageligt drejer sig om at skrive til nogle kontrolregistre og derved indstille microcontrolleren men derimod ved hjælp af i forvejen beregnede filterkoefficienter at filtrere EEG-signalet digitalt. Modulet skal filtrere signalet med en knækfrekvens på 40 Hz ved hjælp af forudbestemte filterkoefficienter. Output: Filtreret signal [12 bits integers]. 4.3 Moduldesign - MSP430 I moduldesignet for MSP430-processen beskrives de moduler, processen består af. Beskrivelsen af modulerne skal indeholde en beskrivelse af de registre, der benyttes ved setup, samt de kontrolstrukturer, der skal være i modulerne. 4.3.1 Moduldesign - MSP430_Main Når microcontrolleren starter op, skal dette modul, som kalder de andre moduler i microcontrolleren jf. afsnit 4.2.1, indlæses først. Master Clocken (MCKL), der clocker processoren i microcontrolleren skal sættes op, endvidere skal Watchdog Timer indstilles, således at microcontrolleren ikke genstartes utilsigtet. Det er endvidere nødvendigt, at microcontrolleren venter i cirka 50µs, indtil oscillatorne er klar [Texas-Instruments 2001b]. Denne udgave er fra d. 23. maj 2003 kl. 15.38 58 Softwaredesign Undermodulerne TimerA_setup, ADC12_setup og UART_setup kaldes fra MSP430_Main-modulet. Dette bevirker, at indstillingerne i de forskellige kontrolregistre sættes rigtigt op efter at have været nulstillede som følge af POR. Når opsætningen er fuldført, skal microcontrolleren sættes i en Lowpower Mode. Når der fra PC’en sendes kommando om, at samplingen skal påbegyndes, vendes tilbage til active mode, og ADC12 får besked om at starte op og begynde med at sample og konvertere, dette gøres b.la. ved at starte TimerA. Ligeledes, når der fra PC’en kommer besked om at stoppe samplingen, lukkes ned for ADC12 og microcontrolleren bringes i Low-power Mode. Der er flere forskellige grader af Low-power Modes, hvor der ved hvert trin er en effektreduktion på bekostning af, at flere dele af microcontrolleren lukkes ned. Der vælges at benytte Low-power Mode 1, som har et væsentligt lavere effektforbrug end Active Mode, men hvor det kun er microcontrollerens CPU, der lukkes ned, så ADC12, UART og TIMERA stadig får de nødvendige clock-signaler og derved kan operere. Alt interrupt-handling i samplingsprocesen skal foregå i MSP430_Main modulet ved funktionskald af andre moduler samt ved skrivning til kontrolregistre. Modulets funktioner er illustreret på figur 4.6. Watchdog Timer Control Register (WDTCTL) WDTCTL benyttes til at styre Watchdog Timer, som skal stoppes. Timeren ville ellers tælle op til et fastsat tal og derefter nulstille microcontrolleren ved at generere en Power Up Clear (PUC). Interrupt Flag 1 (IFG1) IFG1 er et Special Function register, hvor interrupt-flag for bl.a. UART og Watch Dog Timer rejses ved interrupts. Endvidere indeholder registret et OSCFault flag (OFIFG), som rejses ved mulig fejl ved XT2- og LFXT1-oscillatorene. OFIFG skal nulstilles, da XT2CLK skal anvendes. Basic Clock System Control 1 og 2 (BCSCTL1 og BCSCTL2) BCSCTL1 og BCSCTL2 styrer de basale clockindstillinger. Der ønskes en så hurtig Master Clock (MCLK) som muligt. Derfor vælges, at benytte den eksterne High-speed Oscillator (XT2) på 7.3728MHz til at drive Master Clock og Sub Main Clock (SMCLK). BCSCTL1 og BCSCTL2, skal indstilles således, at XT2 er tændt og driver MCLK. Det er endvidere muligt at bestemme, om XT2 frekvensen skal deles med en faktor på 1, 2, 4 eller 8. Da der ønskes en så hurtig clockfrekvens som muligt, vælges faktoren til 1. Status Register (SR) SR indeholder b.la. Generel Interrupt Enable (GIE) indstillingen, hvor det er muligt at enable eller disable interrupts fra bl.a. Watchdog Timer, ADC12 og UART. For at kunne generere interrupts under sampling og ved kommunikation med PC’en, er det nødvendig at enable GIE. De forskellige Power Modes kontrolleres også fra SR. ADC12 Control Register 0 (ADC12CTL0) ADC12CTL0 er et kontrolregister til styring af ADC12. Registret skal skrives til i forbindelse med ISR. Hver gang der gives et interrupt fra TimerA, hvilket sker med en en frekvens på 200Hz, skal der startes en ny konvertering ved at sætte et kontrolbit i ADC12CTL0. Endvidere skal A/D-konvertering enables, når UART modtager et signal fra PC’en om at starte signalprocessering. Denne udgave er fra d. 23. maj 2003 kl. 15.38 4.3 Moduldesign - MSP430 59 TimerA Control Register (TACTL) Kontrolregistret TACTL styrer TimerA, og skal ligesom ADC12CTL0 anvendes i forbindelse med ISR. Når UART modtager signal om at starte signalprocessering, skal TimerA startes i Up Mode (uddybes i afsnit 4.3.2). Når UART derimod modtager signal fra PC om at stoppe signalprocessering, skal TimerA stoppes, hvorved der ikke gives flere interrupts til ADC12, og derved stoppes al signalbehandling. é ê ï ð ë ñ ì ò í ó î ô õ ö ÿ © ª « ± ¸ ¹ ¬ ² º ® ´ ¯ µ »  · ½ ¾ à Š/ 0 1 2 3 4 5 6 ! Ù Ú Û Ü Ý Þ ß à á â ã ä å Ç È É 7 Ê Ø Æ ¿ Ä . ° ¶ ¼ Á ø µ ³ À ÷ æ ç Ë " Ì Í # Î $ Ï % & ' ( è ) * + , - 8 ù ú û 9 ü : ý Ð Ñ Ò Ó Ô < = > ? @ A B C D E F G H I þ J ; K L M N O P Q R S T U V W X Y Z Õ Ö × Figur 4.6: Tilstandsdiagram over MSP430_Main modulet. Efter slukket tilstand eller nulstilling stoppes WDT, og clockfrekvenser indstilles. Herefter køres setupmodulerne, og microcontrolleren bringes i Low Power Mode indtil, der kommer besked fra PC’en om at starte. ADC12 påbegynderså digitaliseringen af EEG-signalet, når et resultat er færdigt filtreres og sendes dataen. Imellem hver sampling bringes microcontrolleren i low power mode 1, indtil der skal samples på ny. Det er dog også muligt, at der kommer besked fra PC’en om at stoppe digitaliseringen, hvorefter TimerA stoppes før microcontrolleren lukkes ned i lowpower mode, hvor den forbliver indtil der modtages ny kommando fra PC. Pseudokode for MSP430_Main: Erklær variable Stop watchdog timer Nulstil OSCFault flag Denne udgave er fra d. 23. maj 2003 kl. 15.38 60 Softwaredesign Tæl op til 255 (Tager ca. de 50µs, som XT2 tager at starte op) HVIS OSCFault flag er stadig sat SÅ Vent ELLERS Sæt MCLK = SMCLK = XT2 = 7,3728MHz Kør TimerA_setup Kør UART_setup Kør ADC12_setup Enable generelle interrupts Gå i Low Power Mode 1 HVIS ISR: TimerA_færdigoptælning interrupt fra TimerA SÅ Start A/D-konvertering HVIS ISR: ADC12_ResultatKlar interrupt fra ADC12 SÅ ADCresultFloat = Filter(ADC12MEM0) Vent til UART Transmit Buffer er klar til at sende ADCresultInt = (int) ADCresultFloat Sæt opløsning: 8bit (12-4bit), send ADC12resultInt til UART Transmit Buffer HVIS ISR: UART_fuldreceivebuffer interrupt fra UART SÅ HVIS modtaget signal er 0 SÅ Stop TimerA HVIS modtaget signal er 1 SÅ Start TimerA Enable A/D-konvertering 4.3.2 TimerA_setup Modulet designes ud fra de i procesdesignet angivne specifikationer jf. afsnit 4.2.1. Da TimerA skal starte A/D-konverteringen med en frekvens på 200Hz, sættes timeren til at køre i Compare Mode, hvilket vil sige, at den kan generere interrupts ved specifikke intervaller. Disse interrupts kan så ved hjælp af ISR i MSP430_MAIN anvendes til at bestemme samplingsfrekvensen. For at opnå de ønskede specifikationer vil følgende kontrolregistre blive anvendt: TimerA Control Register (TACTL) I TACTL indstilles, hvilken clock TimerA skal bruge. Der vælges at bruge den interne Auxiliary Clock, og samtidig skal timerregistret nulstilles. TACTL bliver også brugt til at indstille, hvilken Mode timeren skal fungere i. Her vælges Up Mode, hvilket gør, at TimerA tæller op til en værdi angivet i TimerA Capture Compare Register (TACCRx), nulstiller og tæller op igen. Denne udgave er fra d. 23. maj 2003 kl. 15.38 4.3 Moduldesign - MSP430 61 Capture Compare Control register 0 (TACCTL0) I TACCTL0 skal Compare Mode vælges, hvilket er default. Derudover skal interrupts enables, således der gives et interrupt, hver gang TimerA har talt op til værdien angivet i TACCRx. Capture Compare register 0 (TACCR0) Værdien i TACCR0 angiver det tal, som TimerA tæller op til. Ved at dele Auxiliary Clockfrekvensen (32768 Hz) med 200 opnås en clockfrekvens på 200Hz, hvilket er den ønskede samplingsfrekvens. Pseudokode for TimerAsetup TimerA clock source = ACLK (Auxiliary Clock), nulstil TAR (værdien af tælleren) Enable CCR0 interrupt Load CCR0 med delay 32768/200 (Capture Compare Register) 4.3.3 ADC12_setup Modulet designes ud fra de i procesdesignet angivne grænseflader og specifikationer (se afsnit 4.2.1). ADC12 der sidder i microcontrolleren, kan sample fra 1 indgang ad gangen, men har mulighed for multiplexing mellem 12 kanaler. Samplingsresultater kan repræsenteres med op til 12 bit. For at indstille microcontrollerens ADC12 til at opfylde de angivne specifikationer, er det nødvendigt at skrive til følgende kontrolregistre: ADC12 Control Register 0 (ADC12CTL0) er en af de to overordnede kontrolregistre, hvor det er muligt at indstille A/D-konverteringen for ADC12. ADC12CTL0 skal indstilles, således at ADC12 tændes, og at A/D-konvertering af data enables. De interne referencespændinger skal deaktiveres, da disse ikke passer med specifikationen på 3,3V for maksimum og 0V for minimum jf. afsnit 2.3. Endvidere indstilles samplingstiden og dermed nøjagtigheden ved sampling (forklaring følger i næste afsnit). ADC12 Control Register 1 (ADC12CTL1) er den anden af de to overordnede kontrolregistre, som styrer ADC12. Den clock ADC12 bruger til beregninger og databehandling som konvertering og sampling (ADC12CLK), sættes i dette register til at være den interne oscillator i ADC12. Ved 3V kører denne clock ved 6.3 Mhz, og selvom der i dette projekt benyttes 3.3V som forsyning, hvilket må formodes at give en højere clockfrekvens, er clocken ifølge databladet ikke testet ved denne spænding. Der bliver derfor i det følgende regnet med, at clocken kører med 6.3 MHz. Sample mode I dette register skal Sampling Mode også vælges. ADC12 har to mulige Sample Mode - Extended Sample Mode og Pulse Sample Mode. ADC12 fungerer ved at den modtager et Sample Input signal (SHI) som input, der bestemmer, hvornår sampling og konvertering skal startes. Ved Extended Sample Mode er samplingstiden så lang tid som SHI-signalet er højt, og konverteringen startes derfor efter, SHI-signalet går lav. Ved Pulse Sample Mode bestemmes samplingstiden af værdien i Denne udgave er fra d. 23. maj 2003 kl. 15.38 62 Softwaredesign ADC12CTL1. Samplingstiden vil her kunne udregnes som et antal clocksignaler fra ADC12CLK. For at opnå en samplingsfrekvens på 200Hz anvendes ADC12SC, som er et kontrolbit i ADC12CTL0, til Sample Input Signal. Herudover sættes konverteringsmetoden til Single Channel Single Conversion Mode, hvor der udøves en enkelt sample og konvertering på en kanal. Igennem ISR for TimerA interruptet sættes ADC12SC bit, og der udføres en enkelt sample og konvertering. Da TimerA indstilles til at give interrupts med 200Hz jf. afsnit 4.3.2, resulterer det i en samplingsfrekvens på 200Hz, hvilket svarer til modulets specifikationer. Der vælges at anvende Pulse Sample Mode, da denne mode giver mulighed for at styre SAMPCON med ADC12CTL1, istedet for at SHI-signalet styrer denne. Samplingstid Samplingstiden plus en synkroniseringstid på 1/2 clockcyklus kaldes samlet for SAMPCON. For at der i A/D-konverteringen ikke skal ske fejl på over 1/2 LSB kan kravet til samplingstiden udregnes. Den interne modstand, Zi , i MSP430 er 2kΩ, mens den interne kondensator, Ci , er 40pF [Texas-Instruments 2001a]. Modstanden fra det analoge input til MSP430, Ri , er 80Ω (Outputimpedansen fra den summerende forstærker på EEG-afledningsenheden) [Texas-Instruments 1994]. Ud fra disse værdier kan den krævede samplingstid beregnes ud fra en formel fra databladet for microcontrolleren [Texas-Instruments 2001a]: ] tsample 10 Ri Zi Ci \ [ 800ns \ ^ _ ^ 1 62µs (4.1) ` [ Da den krævede samplingstid er beregnet, kan det beregnes hvor mange clocksignaler, n, fra ADC12CLK, der skal til, for at den indstillede samplingstid kommer over den krævede. ADC12CLK har som før nævnt en frekvens på 6,3 Mhz n \ 1 6 3Mhz 1 62µs a ` n b 10 3 a (4.2) ` ` Samplingstiden skal altså være mindst 11 clockcykler fra ADC12CLK langt. Den indstilling, der kommer nærmest 11 clockcykler er 16, hvorfor kontrolbittet i ADC12CTL0, hvori denne værdi (n) styres, indstilles til 4, da samplingtiden er defineret ved 4.3 [Texas-Instruments 2001b] tsampling 4 tADC12CLK n \ [ (4.3) \ Konvertering Konverteringen foregår efter SAMPCON og tager 13 ADC12CLK clockcykler. I løbet af denne tid konverteres det samplede signal og gemmes i hukommelsen. Den samlede tid, som ADC12 bruger på at sample og konvertere en sample, kan altså beregnes til: ] tsampling ^ tsynkronisering ^ tkonvertering [ 16 ^ 1 2 ^ 13 \ _ 1 6 3Mhz 4 68µs ` [ (4.4) ` Efter denne tid er ADC12 klar til foretage endnu en sampling. ADC12 Memory Control Register 0 (ADC12MCTL0) er et register, der angiver forskellige indstillinger til hukommelsesregistret ADC12MEM0. Her vælges inputkanalen til a0. Endvidere sættes referencespændingen til AVSS (0V) og AVCC (3,3V), som er microcontrollerens forsyningsspændinger. Denne udgave er fra d. 23. maj 2003 kl. 15.38 4.3 Moduldesign - MSP430 63 ADC12 Interrupt Enable Register (ADC12IE) er et register, som specifikt kan enable interrupts ved de 16 hukommelsesregistre tilhørende ADC12. Her muliggøres interrupt ved ADC12MEM0, hvilket skal anvendes til kommunikation med UART. P6SEL er et I/O-register for microcontrollerens port 6. Her skal a0, som er en af port 6-indgangene, sættes til I/O-indgang. Pseudokode Tænd ADC12, sæt samplingstid (samplingstid: 4* t(ADC12CLK * n) n sættes her til 4) Vælg Pulse Sample Mode (Sampcon bliver trigget af sampling timer) Sæt ADC12SC til at starte konvertering Vælg Single Channel Single Conversion Mode Sæt analog input til a0, sæt referencespændinger til AVcc og AVss Enable interrupt for ADC12MEM0 Enable A/D kanal a0 4.3.4 UART_setup Modulet designes ud fra de i procesdesignet angivne specifikationer jf. afsnit 4.2.1, samt udfra kommunikationsprotokollen jf. afsnit 2.3.4. Data modtages og sendes ved to eksterne pins URXD (Receive) og UTXD (Transmit). Ved modtagelse vil data blive lagt i Receiver Shift Register (RX shift register), og derefter i Receiver bufferen (UxRXBUF). Omvendt sker det ved sending af data, at data bliver overført fra Transmit bufferen (UxTXBUF) til Transmit Shift Register og derefter til UTXD. Fra software er der direkte læse- og skriveadgang til UxTXBUF samt læseadgang til UxRXBUF. Der skrives til følgende kontrolregistre i forbindelse med opsætning af UART: USART Control Register (U0CTL) U0CTL benyttes i forbindelse med opsætning af de generelle standarder for kommunikationen. I dette register sættes USART til at køre asynkron kommunikation, hvorved det bliver en UART. Antal stopbit bestemmes til at være 1, og paritetsbit skal ikke anvendes. UART skal indstilles til at sende og modtage data med længden 8 bit. Transmit Control Register (U0TCTL) U0TCTL benyttes til at indstille den clock, der benyttes til at generere BAUD-rate til UART. Denne clock skal indstilles til Sub Main Clock (SMCLK), som er indstillet til XT2OSC i MSP430_MAIN. Denne udgave er fra d. 23. maj 2003 kl. 15.38 64 Softwaredesign Receive Control Register (U0RCTL) U0RCTL bruges til at indstille, hvad der skal ske ved forskellig modtaget data. Registret skal indstilles til at modtage data, selvom der er fejl i den, samt at flaget ved modtaget data bliver hejst,0 selvom der er fejl i data. UART skal også i dette register indstilles til at opstarte ved modtagelse af data. Baud Rate Control register 0 og 1 samt Modulation Control Register (U0BR0, U0BR1 og U0MCTL) Registrene benyttes til at indstille BAUD-raten. BAUD-raten sættes til 4800 ved at skrive koefficienter i disse registre. Koefficienterne benyttes til at danne et tal, som divideres op i den valgte clock til BAUD-genereringen, og resultatet bliver BAUD-raten. Heltallet som benyttes til divisionen fås ved at skrive til Baud Rate Control Register 0 og 1, som danner et heltal på 16 bit hvor de første 8 bit er i 0-registret og de sidste 8 bit er i 1-registret. Decimalerne bliver dannet af Modulation Control Register. For at opnå en BAUD-rate på 4800 med en clock på SMCLK=XT2CLK=7,3728MHz skal der benyttes en divisionsfaktor på 1536. Module Enable register 1 (ME1) ME1 benyttes til at enable transmitter og reciever for UART. Interrupt Enable Register 1 (IE1) IE1 benyttes til at enable interrupt ved fuld receive-buffer og tom transmit-buffer. Interrupt ved tom transmitbuffer skal dog ikke enables. Input/Output Port 3.4 og 3.5 vælges til hhv. UART transmit og recieve. Pseudokode Vælg UART Mode Vælg 8-bits datalængde Default: Paritet er slået fra, 1 stopbit Sæt UCLK (UART Clock) = SMCLK (Sub Main Clock) Divider SMCLK (7,3728 MHz) med 1536, hvilket giver den ønskede BAUD-rate på 4800bps Sæt ingen yderligere modulation Enable USART0 TxD (Transmit data) og RxD (Recieve data) Enable modtage interrupt Sæt Pin 3.4 og 3.5 til USART TxD og RxD Vælg Pin 3.4 til output (TxD) 4.3.5 Moduldesign Filter Design af de foregående moduler er primært baseret på, hvorledes microcontrolleren indstilles til korrekt sampling af EEG-signalet ved at skrive til en række kontrolregistre på MSP430. Ved design af det digitale filter vil der blive benyttet en anden fremgangsmåde. Først vil filtret blive designet ved hjælp af Matlab, dernæst følger en beskrivelse af implementeringen på microcontrolleren. Denne udgave er fra d. 23. maj 2003 kl. 15.38 4.3 Moduldesign - MSP430 65 Design af filter Ved design af digitale filtre er den første overvejelse, om der skal være tale om et Infinite Impulse Response (IIR)-filter eller et Finite Impulse Response (FIR)-filter. Der er både fordele og ulemper ved hver af disse to filtertyper. IIR-filtre er nemmest at designe med hensyn til bestemmelse af filterorden, da der findes formler, der umiddelbart kan bruges til dette. Dog har FIR-filtre i nogle situationer den fordel, at de designes med lineær fase, således at tidsforskydningen er den samme for alle frekvenser, og signalet derved vægtes uens.[Oppenheim & schafer 1999]. Til gengæld vil IIR-filtre have en lavere orden end FIR-filtre ved design af filtre med de samme amplitudespecifikationer [Mathworks 2001]. Udfra ovenstående vælges at lave et IIR-filter, da der herved vil være brug for mindre regnekraft end ved brug af et FIR-filter. At det designede filter herved ikke vil få en lineær fase har ikke nogen betydning, da analysen af signalet med henblik på at give feedback kun baseres på frekvensindhold og ikke signalet i tid. At behandleren har mulighed for at se signalet i reeltid via brugergrænsefladen vil heller ikke nødvendiggøre en lineær fase, da denne feature hovedsageligt skal bruges til kalibrering af signalet. Filtret designes ved hjælp af Signal Processing Toolbox i MatLab. programkoden er at finde på vedlagte CD. Filterordenen bestemmes på baggrund af pas- og stopbånd-grænsefrekvenserne og maksimal ripple i pas- og stopbånd, hvor frekvenserne angives i forhold til Nyquist-frekvensen [Mathworks 2001]. Ripple sættes i dette tilfælde lavt, for at undgå at de forskellige frekvenser i EEG-signalet vægtes forskelligt. Disse specifikationer sættes til følgende: amplingsfrekvens sættes til 200 Hz jf. afsnit 2.3.2. c Wp (grænsefrekvens i pasbåndet) sættes til 40 Hz jf. afsnit 1.3 c Ws (grænsefrekvens ved stopbåndet) sættes til 50 Hz for at minimere 50 Hz støj c Rp (ripple i pasbånd) sættes til 0.2 dB c c Rs (dæmpning i stopbånd) sættes til 40 dB Dæmpningen i stopbåndet er sat til 40 dB, da dette skønnes at være acceptabelt. Da der arbejdes med EEG-signaler, har det ikke været muligt inden designet at afgøre signalstøj-forholdet og derudfra bestemme, hvor stor en dæmpning der vil være nødvendigt. Dette skyldes, at det ikke er muligt at måle direkte på de afledte signaler på skalpen medmindre der bruges et batteridrevet oscilloscop, hvilket ikke har været til rådighed. Ved hjælp af MatLab er der undersøgt, hvilken orden der er nødvendig ved brug af de forskellige filtertyper, Butterworth, Chebyshev I og II og elliptisk. Resultatet på undersøgelsen ses på tabel 4.1. Filtertype Butterworth Chebychev I Chebychev II Elliptisk orden 20 9 9 5 Tabel 4.1: Tabel over filterorden ved benyttelse af de 4 filtertyper Da det elliptiske filter har en langt mindre orden end de andre filtertyper, vælges dette, da det derved vil kræve færre operationer at filtrere signalet på microcontrolleren. Denne udgave er fra d. 23. maj 2003 kl. 15.38 66 Softwaredesign Ved benyttelse af et elliptisk filter blev filterkoefficienterne fundet ved hjælp af MatLab. Koefficienterne ses i tabel 4.2. B: B0 0.0576 B1 0.1027 B2 0.1616 B3 0.1616 B4 0.1027 B5 0.0576 A: A0 1.0000 A1 -1.5621 A2 2.1047 A3 -1.4488 A4 0.7077 A5 -0.1576 Tabel 4.2: Filterkoefficienterne A og B Overføringsfunktionen for filtret kan betragtes grafisk på figur 4.7, hvor det ses, at der er minimal ripple i pasbåndet, imens ripple i stopbåndet er større. Endvidere ses det, at der ikke er tale om en lineær fase, hvilket som tidligere nævnt ikke er essentielt for dette projekt. ! " # $ % & ' ( )* + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < => ? @A B C D EF G H I J K L M N O P Q R S T U V W XY Z [ \ ] ^_ ` a b ë é ê å æ ç è Û â ã ä ß à á Ý Þ Ü ¾ ¿ À Á Â Ã Ä Å Æ Ç È ì í î ï ð ñ ò É ó ô Ê Ë õ ö ÷ ø ù ú û ü ¡ ¢ Ì Í ý Î ÿ Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú w x y z { | } ~ ×π þ ½ º »¼ ¶ ² ·¸¹ ³´µ d e f g h i j k l m n o p q r £ s ¤ t ¥ ¦ ×π § ¨ u © v ª « ¬ ® ¯ ° ± Figur 4.7: Graferne viser amplitudeplot og faseplot for filterdesignet. Frekvensen er normaliseret i forhold til Nyquist-frekvensen (100 Hz) Denne udgave er fra d. 23. maj 2003 kl. 15.38 4.3 Moduldesign - MSP430 67 Den generelle overføringsfunktion for et 5. ordens filter kan ses i formel 4.5. 5 ∑ bi zi ic 0 ] ] H z Y z X z _ (4.5) ] _ [ 5 [ _ ∑ aj jc 0 zj Udfra (4.5) og koefficienterne i 4.2 kan overføringsfunktionen for filtret opskrives, som det ses i (4.6) [Oppenheim & schafer 1999]. 0 d 05076 0 d 1027z e 1 0 d 1616z e 2 0 d 1616z e 3 0 d 1027z e 4 0 d 0576z e 1 f 1 d 5621z e 1 2 d 1047z e 2 f 1 d 4488z e 3 0 d 7077z e 4 f 0 d 1576z e 5 ] H z ^ _ [ ^ ^ ^ ^ 5 (4.6) ^ ^ Ved invers Z-transformation af overføringsfunktionen fremkommer følgende differensligning [Oppenheim & schafer 1999]: y g nh ^ 0 d 0576x g nh ^ [ 1 d 5621 g n f 1hif 2 d 1047y g n f 2h 0 d 1027x g n f 1h ^ 0 d 1616x g n f 2h ^ ^ 1 d 4488y g n f 3hif 0 d 7077y g n f 4h 0 d 1616x g n f 3h ^ 0 d 1027x g n f 4h 0 d 1576y g n f 5h ^ ^ 0 d 0576x g n f 5h (4.7) Dette kan implementeres grafisk ved hjælp af et blokdiagram. Ved implementeringen er der to metoder, Direct Form I og Direct Form II, der illustrerer, hvorledes beregningerne foretages ved filtreringen. Da Direct form II er den oftest benyttede metode og med simplere udregninger, benyttes denne metode. For at sikre at der er mindst mulig risiko for ustabilitet i filtret, deles overføringsfunktionen op i 2. ordens-sektioner, kaldet kaskadestruktur, der består af kompleks konjugerede poler og nulpunkter [Oppenheim & schafer 1999]. Disse sektioner implementeres da ved hjælp af Direct Form II, som det kan ses på signalflowgrafen på figur 4.9. Koefficienterne, der kan ses på tabel 4.3 findes også her ved hjælp af MatLab. a: b01 1.0000 b11 1.0000 b21 0.0000 b02 1.0000 b12 0.7499 b22 1.0000 b03 1.0000 b13 0.0309 b23 1.0000 b: a01 1.0000 a11 -0.4048 a21 0.0000 a02 1.0000 a12 -0.6557 a22 0.4588 a03 1.0000 a13 -0.5016 a23 0.8485 Tabel 4.3: Filterkoefficienterne a og b Benyttelse af kaskadestruktur har også den effekt at round-off støj minimeres, da risikoen for overflow i de interne beregninger i filtret minimeres. Da microcontrolleren arbejder med float-point i beregningerne, er der risikoen for round-off-støj. Dette skyldes at floating-point er repræsenteret ved Denne udgave er fra d. 23. maj 2003 kl. 15.38 68 Softwaredesign 4 bytes i IEEE-format, hvilket giver denne placering af værdierne i hukommelsen (se figur 4.8) [Texas-Instruments 1996]. k m k lj j l j k n o p q r s t s u v w s u xy y w Figur 4.8: Værdien af en float er z|{ 1 } s ~ 2 eksponent 127 ~ 1 Mantissa [Texas-Instruments 1996] Herved vil der ske en afrunding af værdierne, microcontrolleren arbejder med, og endvidere er præcisionen af float-operatorer som +,-,* og / på 7 decimaler, hvilket også vil give en afrunding [Texas-Instruments 1996]. Da Direct Form II anvendes, minimeres antallet af multiplikationer og delays, og den nødvendige regnekraft bliver da minimeret [Oppenheim & schafer 1999]. Õ Ö× Ø Ù Ú Ò ÓÔ ¬ ® ¯ ° ± ¡¢ ² ³´ µ ¶ · £ ¤¥ Å Æ ÇÈ É Ê Ë Û Ü ÝÞ ß à á âã ä ¸ ¹º » ¼ ½ ¾ ¿ ÀÁ Â Ã Ä ¦ §¨ Ì ÍÎ Ï Ð Ñ © ª« Figur 4.9: En illustration af filterimplementation ved hjælp af kaskadestruktur. Det ses, at filtret er af 5. orden, idet det består af en 1. ordens-sektion efterfulgt af to 2. ordens-sektioner med tilhørende koefficienter. Koefficienterne er udregnet på vha. af matlab og vil efterfølgende henvises til ved hjælp af betegnelserne ai og b j For yderligere at undersøge filterets stabilitet laves et pol-nulpunkt-plot, der ses på figur 4.10. På plottet ses det, at alle poler ligger inden for enhedscirklen, hvilket indikerer, at filtret er stabilt. Endvidere ses at de ikke ligger særligt tæt på enhedscirklen [Oppenheim & schafer 1999], hvilket betyder, at der heller ikke er risiko for ustabilitet ved round-off af koefficienterne i fixed-point. Dette betyder, at det med stor sandsynlighed er forsvarligt at implementere filtret blot som direct form og ikke i kaskadestruktur, da filtret kun er 5. orden. Det vælges alligevel at bruge kaskadestruktur, da der ikke Denne udgave er fra d. 23. maj 2003 kl. 15.38 4.3 Moduldesign - MSP430 69 er den store forskel i antallet af regneoperationer ved de to typer. Endvidere sikres også mere mod round-off-støj ved benyttelse af kaskadestruktur ! þ ÿ ú û üý ö ÷ øù ò ó ôõ ðñ åæ ç è éê ë ì íî ï Figur 4.10: Her er afbildet poler (x) og nulpunkter(o) i enhedscirklen. Herudfra ses det, at filtret er stabilt, idet alle poler ligger inden for enhedscirklen Implementering af filter Ved implementering af filtret benyttes figur 4.9 til udformning af koden af selve filtreringen af signalet. Der benyttes dog 14 decimaler i stedet for de 4, der er vist på figuren. Filtret skal køre under ISR til ADC12, hvor værdien, der ligger i ADC12-hukommelsen, sendes gennem filterfunktionen, hvorefter den filtrerede værdi sendes til UART-bufferen. Pseudokode Initialisér delay-værdier " " " w1 n#%$ x n#{ a11 & w1 n { " " y1 n#'$ w1 n#)( b11 & w * n { " " " w2 n#%$ y1 n# { a12 & w2 n { " " " y2 n" #'$ w2 " n#)( b12 & w2 " n { w3 n#%$ y2 n# { a13 & w3 n { " " " y n#'$ w3 n#)( b13 & w3 n { 1# 1# 1#{ 1#)( 1#{ 1#)( " a22 & w2 n { " b22 & w2 " n { a23 & w3 n { " b23 & w3 n { 2# 2# 2# 2# Opdater delay-værdier Tidsovervejelser Der samples i dette projekt med en frekvens på 200 Hz. Filteret vil blive implementeret som en funktion, der skal køres hver gang en sample fra ADC12 er parat. Da der kommer en 1 sample hvert 200 + 0 , 005 sekund, er det et krav, at systemet skal have færdigbehandlet en sample inden Denne udgave er fra d. 23. maj 2003 kl. 15.38 70 Softwaredesign for dette tidsrum. Processoren, som skal køre filterfunktionen på hver sample, kører med en clockfre1 kvens på 7,3728 Mhz, hvilket betyder, at hver clockcyklus tager 7 - 3728Mhz + 0 , 13µs. Det maksimale antal clockcyckler, n, ved 200 hz kan altså udregnes til: 0 , 005s + n . 0 , 13µs / n + 38461 (4.8) Dette resultat er det samlede antal clockcykler, der kan nås imellem hver sample. Da der også skal udføres en ISR, som kræver 11 clockcykler, samt at der skal tages højde for, at microcontrolleren skal vågne op af Low Power Mode, ligger det samlede antal clockcykler, som filtret kan benytte, lidt under det udregnede resultat. Igennem empiriske undersøgelser ved hjælp af Embedded Workbench, er det blevet undersøgt, hvor mange clockcykler det tager at udføre multiplikation og summation af to floats med hver 14 decimaler. Resultatet blev 170 clockcykler for summation og 235 clockcykler for multiplikation. Ud fra kaskadestrukturen figur 4.9 observeres, at der skal udføres 10 summationer samt multiplikationer. Dette resultererer i et samlet antal clockcykler på 4050. Endvidere skal der anvendes et antal clockcykler på bl.a. ISR, hvilket kræver et begrænset antal clockcykler. Det forventes heraf, at filtret skal kunne udføres på væsentligt færre clockcykler end 38461. 4.4 Procesdesign - PC-proces PC-processen, indeholder 5 skærmbilleder. Disse er benævnt Patientvalg, Patientindstillinger, VisResultat, VisEEG og Feedback jf. afsnit 1.6.6. De har alle til formål at hjælpe behandleren med at indstille systemet korrekt med hensyn til sessionsindstillinger og patientinformationer. Derudover har de til formål at give feedback til patienten. 4.4.1 Eksterne grænseflader Processens grænseflader til monitorer uddybes her yderligere med udgangspunkt i accessgrafen på figur 4.3 og procesguiden 4.1.5. Endvidere beskrives, hvordan monitorerne skal implementeres. UART buffer-monitoren UART buffer-monitoren sikrer, at data bliver transmitteret korrekt fra MSP430-processen til PC-processen. Transmissionen styres af UART-chippen, og monitoren vil derfor i designet heller ikke blive implementeret, da det forventes, at UART-chippen udfører opgaven tilfredsstillende. PC-processen grænser via UART buffer-monitoren til MSP430-processen. Patientdata-monitoren Patientdata-monitoren er en XML-fil, der indeholder alle oplysninger om patienter og gemt sessionsdata. Filen opbygges, således at PC-processen har hurtig og nem adgang til data i filen fra to globalt tilgængelige moduler, der henholdsvist skriver til og læser fra filen. Igennem tilgangsmodulerne sikres det, at Patientdata ikke bliver tilgået på samme tid. Musik-monitoren Musik-monitoren vil i designet blive implementeret som en række lydfiler der hentes fra evt. forskellige mapper på computeren vha. en playliste. Denne liste afspilles under en behandDenne udgave er fra d. 23. maj 2003 kl. 15.38 4.4 Procesdesign - PC-proces 71 lingssession. Temp-monitoren Temp-monitorens opgave er at lagre data under en behandlingssession, indtil behandleren vælger at stoppe sessionen, hvorefter indholdet af Temp-monitoren lægges over i Patientdatamonitoren. Temp-monitoren bliver implementeret som et array, der ligger i hukommelsen (RAM), hvilket er nødvendigt, da der hurtigt skal skrives til arrayet, for ikke at få en forsinkelse i det optagede signal, da skrivning til harddisken kræver længere tid. Da EEG-signalet kun består af én kanal med en samplingsfrekvens på 200 Hz, bliver størrelsen på Temp-monitoren ikke noget problem, da en halv times data vil fylde omkring 1,5 Mb. Funktionsopdeling På figur 4.11 ses hierarkiet for funktionerne i PC-processen. Funktionerne er nummereret, så det kan ses i moduldiagrammet (figur 4.12), hvilke funktioner, hvert modul indeholder. l O A B C D E FGH I JK L M N m n o pq r s tu v w x yz{|} ~ ` P Q R ST U V WXY Z [ \ ] ^ _ ä@ a b c de f g h i jk ¬ 0 1 2 34 5 6 789 : ;< = >? Þ ßà á â ã ª« 7 8 9 A * + , - . / 0 1 2 3 4 5 : ; < = > ? r v w x y z { | } ~ j k l m n o p ) Ô Õ Ö ×Ø Ù Ú Û Ü ô õ ö ÷ ø ù ú û ü ýþ ÿ Ó ! " # $ % & ' Ê Ë Ì ÍÎ Ï Ð Ñ Ò ÈÉ ¡ ¢ £ ¤ ¥ ¦ § ¡ ¢ · ¸ ® ¯ ° ± ² ³ ´µ ¶ q Ý £ @ B s ( u 6 t ¤ ¥ ¦§ ¨© S C D E F G H I J K L M N O P Q R  à ÄÅ ÆÇ ò óå æ ç è é êë ì í îïð ñ ` h Á T U V W X Y Z [ \ ] ^ i a b c d e f g _ ¹ º » ¼½ ¾ ¿ À Figur 4.11: Funktionsdiagrammet viser funktionshierarkiet for PC-processen. Numrene viser, hvilket modul de hører til på moduldiagrammet figur 4.12. Funktioner, der er direkte relateret til et skærmbillede, er farvet. Denne udgave er fra d. 23. maj 2003 kl. 15.38 72 Softwaredesign Ud fra figur 4.11 opdeles processen i moduler, og disse vil hver for sig blive beskrevet. Opdelingen sker ved at sammenføre nærliggende funktioner. De funktioner, der kaldes af mange andre funktioner. laves til selvstændige moduler. Dette gøres for at undgå at undgå problemer ved at skulle håndtere flere kald på en gang. De moduler, der styrer hvert skærmbillede, har samme navn som skærmbilledet for at give et bedre overblik. Opdelingen ses på figur 4.12, hvor numrene henviser til funktionsdiagrammet (figur 4.11). Endvidere kan det også ses, ved forbindingslinierne, hvordan koblingen af de forskellige moduler er. Modulspecifikation Herunder oplistes modulerne, hvor de pågældende modulers input, output samt funktion beskrives. Numrene ved hvert modul, henviser til hvilke funktioner fra figur 4.11, de pågældende moduler indeholder. 1. LæsPatientdata Input: Søgestreng[String], Xpath[String] og handling[Integer]. Funktion: LæsPatientdata bliver brugt af Patientvalg, Patientindstillinger og BestemRatio, som skal bruge forskellige data fra Patientdatafilen. Der kan kun læses en slags værdi af gangen, hvilket vil sige, at ikke alle output bliver brugt hver gang. Output: Outputdata[String], outputdata[String array] 2. Patientvalg Input: Navn[String] og Personnummer[String]. Funktion: Dette modul styrer Patientvalg-skærmbilledet, hvor behandleren kan slette eller indtaste data i form af navn og personnummer til en patient, eller at vælge en patient i listen. I patientlisten er der information om Patientens navn. Efter at behandlerne har valgt en patient vil skærmbilledet lukke og Patientindstilling fremkommer. Output: Navn[String], Personnummer[String]. 3. SkrivPatientdata Input: Inputdata[Cluster], Xpath[String] og handling [Integer] Funktion: SkrivPatientdata varetager skrivning af indtastede data til Patientdatafilen, samt sessionsdata. Den administrerer Patientdatafilen, så den bliver skrevet til i XML-format. Modulet bliver brugt af Patientvalg, Patientindstillinger, VisResultat- og BestemRatio- modulerne. Output: () 4. Patientindstillinger Input: Navn[String], Personnummer[String]. Funktion: Patientindstillinger styrer også skærmbilledet af samme navn. Her vises den valgte patients navn og personnummer. Behandleren kan indtaste nye DFO-grænser, Tærskelværdi og portnummer. Skærmbilledet giver mulighed for at starte en ny session. Dette medfører, at skærmbilledet bliver lukket, og VisEEG fremkommer. Tidligere sessioner er vist i listen “Tidligere sessioner”, der er fremkomDenne udgave er fra d. 23. maj 2003 kl. 15.38 4.4 Procesdesign - PC-proces 73 met ved input fra LæsPatientdata. Der kan også vælges at få vist en tidligere behandling, der vil lukke skærmbilledet, hvorefter VisResultat-skærmbilledet fremkommer. Endvidere har behandleren mulighed for at gå tilbage til Patientvalg. Output: Navn[String], Personnummer[String], Portnummer [VISA resource name Instr], Tidspunkt[String], DFOmin[Double], DFOmax[Double] samt Tærskelværdi[Double]. 5. VisResultat Input: Personnummer[String], Tidspunkt[String]. Funktion: VisResultat, som også styrer skærmbilledet af samme navn, viser den valgte sessionens signal på en graf, og ligeledes hvordan DFO-ratio har været i forhold til Tærskelværdien. Behandleren har mulighed for at gå tilbage til Patientindstillinger. Output: (). 6+7. StartStopMSP Input: Start/Stop-kommando[Boolean], Portnummer[VISA resource name Instr] Funktion: Når VisEEG kaldes, sendes “1” til UART-buffer. Når dette signal læses af MSP430-proces, skal det få denne til at starte sampling og konvertering. Når der trykkes på “Stop” i Feedbackskærmbilledet, skal der sendes “0” til UART-buffer, hvilket betyder, at MSP430-proces skal stoppe sampling og konvertering. Der skal også i dette modul foretages indstilling af BAUD-rate, start/stopbit, datalængde og paritetsbit jf. afsnit 2.3.4. Output: “1” og “0”. 8+11. BestemRatio Input: EEG-data[Unsigned integer array], DFOmin[Double] og DFOmax[Double], Tærskelværdi[Integer]. Funktion: Modulet laver et powerspektrum af EEG-signalet og DFO-ratio bliver beregnet. Output: DFO-ratio[Double] 9. VisEEG Input: EEG-data[40 elementers array 8bit unsigned integer]. Funktion: Dette modul skal modtage EEG-data fra LæsCom, for at sende det videre til VisEEGskærmbillede. Dette medfører, at behandleren kan se signalet på en graf, hvilket kan bruges til at kalibrere den analoge forstærkning ud fra. VisEEG skal endvidere indikere, når EEG-signalets amplitude nærmer sig grænseværdierne. Output: () 10. LæsCom Input: EEG-data[8 bit unsigned integer]. Funktion: Står for administrering af data fra UART-bufferen. Modulet kalder ikke nogen funktioner i andre moduler, men læser kun fra UART-bufferen. Modulet læser UART-buffer, når antallet af bytes i denne er større end 40. Output: EEG-data[40 elementers 8bit unsigned integer array] Denne udgave er fra d. 23. maj 2003 kl. 15.38 74 Softwaredesign 12-15. Feedback Input: DFO-ratio[Integer], Tærskelværdi[Integer], samt EEG-data[40 elementers array 8bit signede integer]. Funktion: Feedback skal hele tiden justeres, på baggrund af de resultater der kommer fra BestemRatio samt indstillingerne for den pågældende patient. Det bestemmer hvilken feedback der skal vises samt om der skal afspilles musik. Modulet gemmer desuden det midlertidige EEG-data til sessionen er færdig. Output: () Ö Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ é × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è » ° ± ² ³ ´ µ ¶ · ¸ ¹ º Ê ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É ù ú û ü ý þ ÿ ö ® ÷ 0 ø ¯ ¨ © ª « ¬ ê ë ì í î ï ð ñ ò ó ô õ ! " #$ % & ' () * + , - . / Figur 4.12: Diagrammet viser resultatet af modulopdelingen. Numrene til hver modul viser hvilke funktioner, de forskellige moduler indeholder 4.4.2 LæsCom Eksterne grænseflader Af eksterne grænseflader har LæsCom UART-bufferen og modulerne Feedback og VisEEG. Begge moduler modtager et array på 40 elementer [unsigned byte]. Input til LæsCom kommer fra UART-bufferen[String]. Design af LæsCom Modulet designes ud fra de i moduldesignet angivne specifikationer i afsnit 4.4. Microcontrolleren sender data til PC’en med en hastighed på 4800 bps, jf. afsnit 4.3.4. For ikke at miste eller modtage forkert data skal LæsCom også indstilles til at modtage data med 4800 bps. Afhængig af hvilken Com-port microcontrolleren tilsluttes, skal det være en mulighed at kunne vælge Com-port. Output af modulet skal være et array af 40 bytes unsigned integers, der opfylder kravet om en opdatering på 5 gange i sekundet jf. afsnit 2.3.5. Der skal yderligere foretages en konvertering af strings til unsigned byte integers for at få output til at passe. Der skal hentes data via Virtual Instrument System Denne udgave er fra d. 23. maj 2003 kl. 15.38 4.4 Procesdesign - PC-proces Architecture (VISA), der er en I/O-standard for læsning af bla. seriel bus. Der skal sendes fejlmeddelser videre til andre moduler, hvis der ikke modtages bytes de første 2 sekunder efter, at MSP-processen er blevet tændt, og hvis antallet af bytes i PC’ens UART-buffer ikke ændrer sig under en session, det vil sige der ikke modtages data. Pseudokode Indstil VISA Læs UART-buffer HVIS Bytes i UART-buffer 1 40 SÅ Læs 40 bytes Lav array på 40 bytes ELLERS Læs UART-buffer 4.4.3 StartStopMSP Modulet designes ud fra de angivne specifikationer jf. afsnit 4.4. Formålet er at kunne starte og stoppe MSP430-processen ved at sende enten “0000 0001” eller “0000 0000” i binære værdier via Comporten. Porten skal indstilles til at sende med 4800 i baud-rate for at matche microcontrollerens baudrate (se afsnit 4.3.4). Pseudokode Konfigurer VISA HVIS kald fra andre moduler til start af MSP SÅ Send “1” til Com-porten HVIS kald fra andre moduler til stop af MSP SÅ send “0” til Com-porten 4.4.4 BestemRatio BestemRatio skal jf. afsnit 4.4 på baggrund af et EEG-signal samt grænseværdierne for minimumog maksimum-frekvenserne i DFO, returnere en DFO-ratio defineret som forholdet mellem energien i DFO og energien i det samlede EEG-spektrum (jf. afsnit 1.6.2). Denne udgave er fra d. 23. maj 2003 kl. 15.38 75 76 Softwaredesign Eksterne grænseflader EEG-signalet modtages i form af et vilkårlig langt array af 8 bit unsigned integers. Modulet skal returnere DFO-ratio med en værdi mellem 0 og 1 for hver modtaget inputarray. DFO-ratioen skal repræsenteres som en [Double], da den kan indtage meget små værdier, som ellers vil risikere at blive afrundet. Endvidere har modulet DFO-min [Double] og DFOmax [Double] som input. Krav For at finde et mål for, hvor meget energi de enkelte frekvenser bidrager med, skal der beregnes et powerspektrum udfra det samplede EEG-signal. I afsnit 2.3.5 blev det stillet som krav, at frekvensopløsningen minimum skal være 0,5Hz. For at opnå dette, kræves det at powerspektret beregnes på baggrund af minimum 2 sekunders signal. Det vurderes dog, at det vil være nødvendigt at opdatere DFO-ratioen oftere under en session. Det skal derfor være muligt at opdatere DFO-ratioen oftere, uden at det går ud over frekvensopløsningen. Handlinger De handlinger, der skal varetages af modulet, er således; en der sørger for, at der altid er, hvad der svarer til minimum 2 sekunders samplet EEG-signal. En handling der skal beregnes et powerspektrum på baggrund af signalet, her vil det være en fordel at vinduesvægte signalet for at minimere lækage mellem frekvenserne i EEG- og DFO-powerspektret. På baggrund af resultatet af powerspektret og DFO skal DFO-ratioen bestemmes. I det følgende redegøres for, hvorledes modulet mere specifikt skal realiseres. Sidst i afsnittet opsummeres modulets funktioner via pseudokoder. Bufferarray Den første handling der skal sørge for, at der altid er minimum 2 sekunders samplinger klar til den efterfølgende analyse, svarende til minimum 400 samples ( fs = 200Hz jf. afsnit 2.3.2). Powerspektrum-analysens beregninger lettes betragteligt, når antallet af samples er 2n , hvor n er et helt positivt tal [Michael Cerna 2000]. Der benyttes derfor 29 + 512 samples, givende en frekvensopløsning på: ∆f + 200 0 , 391Hz 512 + (4.9) Modulets input er et array bestående af n<512 elementer, som først skal føjes til et buffer-array. Hvis antallet af elementer i dette array efterfølgende vokser til over 512 samples slettes de resterende ældste elementer. Bufferarrayet fungerer således som en ringbuffer og kan derfor ikke overskride 512 elementer. Hanningvinduet fungere således som et overlappende vindue. Hvis BestemRatio modtager arrays, der er kortere end 512 elementer overlapper vinduerne hinanden i tidsdomænet. Hvis inputarrayet er præcis 512 elementer lang, ligger vinduerne i umiddelbar forlængelse af hinanden. Hvis inputarrayet er længere end 512 elementer, opstår der mellemrum mellem vinduerne i tidsdomænet, hvor den mellemliggende data slettes. Dette betyder, at modulet ikke vil give et korrekt resultat, hvis inputarrayet bliver større end 512 elementer. Denne udgave er fra d. 23. maj 2003 kl. 15.38 4.4 Procesdesign - PC-proces 77 Inputtet til modulet indskrænkes således til at være et 0-512 elementer langt array. Frekvensanalyse For at modulet ikke skal returnere et forkert resultat, inden bufferarrayet er fyldt, skal vinduesvægtningen og beregning af powerspektret ikke påbegyndes, før buffer-arrayet er fyldt. Før der beregnes powerspektrum, skal der multipliceres en vindue-funktion på arrayet. Der vælges at benytte et Hanningvindue, idet den udmærker sig ved en meget lille lækage fra dens mainlobe, samt at endepunkterne vægtes helt ned til 0. Dette sker dog på bekostning af, at dens mainlobe er bredere end, hvis der ikke blev benyttet en vindue-funktion (svarende til et rektangulær vindue). Det vurderes her, at fordelene opvejer ulemperne, da det ved beregningen af DFO-ratio er vigtigt, at der ikke lækkes energi mellem DFO og det resterende EEG-spektrum. Efter vindues-funktionen er multipliceret på signalet, skal powerspektrummet beregnes. Til dette skal den i LabVIEW implementerede funktion ”Power Spectrum” benyttes. Powerspektret er generelt defineret ved [Michael Cerna 2000]: Powerspektrum + FFT 2 A 3 . FFT 452 A 3 N (4.10) Hvor A er det digitalicerede signal og N antallet af samples i A. FFT* angiver den kompleks konjugerede værdi. FFT er en forkortelse for ”Fast Fourier Transform” og er betegnelsen for en gruppe af effektive algoritmer til beregning af den diskrete Fourier transformation, som er defineret ved [Oppenheim & schafer 1999]: X 2 k3 + N6 1 ∑ x 8 n9%. WNk : n n7 0 (4.11) hvor n er den pågælende sample og WN + e 6 j 2N; π (4.12) er vinduesfunktionen. EEG- og DFO-powerspektrum Resultatet af powerspektrum-analysen giver et array, hvor element fs fra indeks 0 til 255( + 512 2 < 1) er værdien for frekvenserne fra 0Hz (DC) til 100Hz( + 2 ). De elementer, der repræsenterer EEG-powerspektret (0,5-40Hz), skal udtages af powerspektrumarrayet, dvs. fra indeks 1 til indeks 102 ( = 0 - 40Hz 391Hz ). Dette resulterer i, at frekvensområdet reelt går fra 0,391Hz til 39,88Hz, hvilket vurderes som en tilstrækkelig tilnærmelse af EEG-spektret. Der ses bort fra, at ”Power Spectrum”-funktionen i LabVIEW er 2 sidet idet, der følgende benyttes ratio, dvs. det er kun de indbyrdes energiforhold, der har betydning. Efterfølgende skal elementerne, der repræsenterer DFO-powerspektrum, udtages af EEG-arrayet. Inputtet til BestemRatio-modulet er maksimum- og minimum-frekvenserne i DFO. Disse tal skal konverteres til henholdsvis indeksnummer og længde af DFO-subarrayet. Med disse værdier vil det derved Denne udgave er fra d. 23. maj 2003 kl. 15.38 78 Softwaredesign være muligt at benytte LabVIEWs arrayfunktioner, der har indeks og arraylængde som input. Der eksisterer følgende sammenhæng mellem frekvens og indeks i det udtagede EEG-array. f + 0 , 391 .>2 indeks ? 1 3 / indeks + 2 f 13 0 , 391 < (4.13) Da DC-værdien ikke er med i EEG-arrayet, svarer indeks 0 til 0,391Hz. Længden af arrayet, der beskriver DFO’s frekvensindhold, kan beskrives som: længde + 2 fDFO-max fDFOmin 13 < 2 1 3@? 1 + < 0 , 391 0 , 391 < fDFOmax < fDFOmin < 1 0 , 391 (4.14) Når værdierne for EEG-powerspektret og DFO-powerspektret er udtaget, skal elementerne i hvert array summeres sammen, hvorefter DFO-summen divideres med hele EEG-summen. Resultatet af divisionen er DFO-ratioen. Hvis energien i EEG-spektret er 0, divideres der med 0, og da dette ikke er muligt, skal DFO-ratioen i så fald defineres til værdien 0. Grundet den skæve frekvensopløsning, vil der forekomme afrundinger ved DFO, idet DFOmin og DFOmax skal kunne indtage værdier fra 0,5 til 40 med inddelinger på 0,5, når frekvensinddelingen er på 0,391Hz. Problemet vurderes ikke som kritisk, men vil dog kunne have relativ stor betydning ved et lille DFO. Pseudokode Modulets funktion beskrives følgende i pseudokode: Tilføj input til buffer-array HVIS Antal elementer i ”buffer”-array 1 512 SÅ Fjern alt over indeks 512 Vægt arrayet med et Hanningvindue Estimer powerspektrum Udtag værdier, der repræsenterer EEG-powerspektret EEG-sum = Summen af elementer i array Udtag værdier, der repræsenterer DFO-spektret DFO-sum = Summen af elementer i array DFO-ratio = DFO-sum divideret med EEG-sum Returner DFO-ratio ELLERS Udregn ikke DFO-ratio Denne udgave er fra d. 23. maj 2003 kl. 15.38 4.4 Procesdesign - PC-proces Moduldesign - SkrivPatientdata XML-krav Der blev i systemkravet afsnit 1.6.2 stillet krav om, at oplysninger om patienter og sessioner samt sessionsdata skulle gemmes i XML-format. XML-formatet minder om Hyper Text Markup Language (HTML), idet alle elementer bliver startet med et tag og afsluttet med et tag. Elementer kan have en værdi, den kan have attributer samt indeholde andre elementer. I modsætning til HTML, hvor elementerne er fast defineret, er det i XML muligt selv at definere sine elementer. Database XML bliver i dette projekt brugt til at lave en databasefil og vil udelukkende bruges til at lagre strings i form af elementnavne, attributter og værdier. Der er i XML-standarden mulighed for at lave et XML-skema til at beskrive, hvilken slags data, der ligger i XML-filen, og hvordan den er organiseret. Denne mulighed er af tidsmæssige årsager fravalgt i dette projekt. LabXML I LabVIEW er understøttelsen af XML begrænset, idet der kun findes få funktioner til at læse fra og skrive til en XML-fil. På grund af begrænsede ressourcer, fravælges det selv at skulle designe et modul fra bunden, der kunne skrive i XML-format. I stedet vælges det at benytte en Open Source Toolbox til LabVIEW kaldet LabXML, som indeholder nok funktioner til at designe SkrivPatientdata og LæsPatientdata. LabXML benytter sig af et udviklingsværktøj til XML fra Microsoft kaldet MSXML 4.0, hvilket er nødvendigt at have installeret, når toolboxen benyttes [Source 2003]. XPath SkrivPatientdata skal kunne skrive data til XML-filen, hvor data, placering og handling skal vælges af de moduler, der benytter SkrivPatientdata. Data, som skrives, skal være et element med et vilkårligt antal attributter. Placeringen skal kunne identificere præcis, hvor i filen data skal skrives. Til at angive placeringen skal der bruges en såkaldt XPath, som er en del af XML-standarden. Et eksempel på en XPath ville f.eks. være: /patientdata/Patient[@Personnr="123456-1234"] Denne XPath identificerer elementet Patient, som underelement til patientdata og med attriubutten Personnr, som er 123456-1234. Når SkrivPatientdata modtager denne XPath skal den finde dette element i patientdata-filen og udføre en handling, som også er bestemt af det modul, der bruger patientdata. Handling Der skal kunne udføres to forskellige handlinger, tilføjelse af data og sletning af data. Når SkrivPatientdata får besked om at slette data, sletter den det eller de elementer, der er angivet i XPath. Hvis der skal tilføjes et element skal SkrivPatientdata tage inputdata og tilføje dette data som et underelement til det element, der er angivet i XPath. Denne udgave er fra d. 23. maj 2003 kl. 15.38 79 80 Softwaredesign Data i XML-filen SkrivPatientdata skal kunne skrive et element med et vilkårligt antal attributter som et underelement til et andet element. Det øverste element i XML-filen bliver patientdata, hvor patienterne er underelementer til dette element. Elementet patient skal have to attributter: Navn og Personnr, mens hver Patient kan indeholde et vilkårligt antal Sessionsdata, som har atributterne Tidspunkt, DFOmin, DFOmax og Tærskelværdi. I modsætning til elementet Patient, som kun har attributer har Sessionsdata udover attrubutter også en værdi, idet det opsamlede data under en session skal gemmes. Eksterne grænseflader SkrivPatientdata har XPaht[String], element[String] og handling[String] som input fra modulerne Feedback, Patientindstillinger og Patientvalg. Opbygning af SkrivPatientdata SkrivPatientdata skal starte med at undersøg om der eksisterer en fil ved navn patientdata.xml i roden af C-drevet. Hvis dette er tilfældet skal filen åbnes for skrivning af data. Hvis filen derimod ikke eksisterer, skal der laves en ny patientdatafil som derpå åbnes. Efter åbningen af filen skal placeringen af det element, der er angivet i XPath, findes i filen. Hvis der er valgt at slette elementet, skal SkrivPatientdata fjerne det, der står ved den angivne placering. Hvis der skal tilføjes et nyt element, skal inputdata konverteres til en XML-streng og derefter skrives til filen. Inputdata skal tilføjes som underelement til det element, der er angivet i XPath, hvilket betyder at sluttagget til dette element skal findes, og inputdata skal derefter skrives lige før sluttagget. Hvis det for eksempel ønskes at skrive en ny patient som inputdata til en XML-fil, der så således ud: <patientdata> <Patient Navn="Kasper"Personnr="123456-1234"> </Patient> </patientdata> Ville resultatet ved en XPath, der var /patientdata, blive: <patientdata> <Patient Navn="Kasper"Personnr="123456-1234"> </Patient> <Patient Navn="Ny Patient"Personnr="234567-8901"> </Patient> </patientdata> Efter skrivning af data lukkes filen igen, som den sidste handling i SkrivPatientdata. Begrænsninger SkrivPatientdata begrænses til kun at kunne skrive a-z, A-Z, “-”, “,” og “ A ”. Begrænsningen er lavet, fordi MSXML 4.0, som er benyttet i designet af dette modul, ikke understøtter Denne udgave er fra d. 23. maj 2003 kl. 15.38 4.4 Procesdesign - PC-proces eksempelvis æ, ø og å samt “´l” og andre specialkarakterer. Pseudokode Find alle filer i C: B med endelsen .xml Søg i de fundne filer efter navnet patientdata.xml HVIS filen findes SÅ Åbn den nuværende patientdata.xml ELLERS Opret en ny patientdata.xml uden patientelementer og sessionselementer. Åbn den oprettede fil patientdata.xml Find udfra XPath-inputelementets placering i filen. HVIS handling er “Slet” SÅ Slet det fundne element ELLERS HVIS handling er “Tilføj” SÅ Tilføj element-input som et underelement til det fundne element. Gem de foretagede ændringer af filen på harddisken. Luk filen. 4.4.5 Moduldesign - LæsPatientdata Eksterne grænseflader LæsPatient-modulet bliver kald af Feedback, VisResultat, Patientindstilling og Patientvalg, der med en søgestreng[string], XPath[String] og en handling[Integer] skal hente den ønskede information. Dette kan være følgende: navn[String], personnummer[String], Tidspunkt[String], Tærskelværdi[String], DFOmin[String], DFOmax[String], tidspunkt[String] eller EEG-signal[String]. LæsPatientdata-modulet skal kunne læse de data fra patientdatafilen som SkrivPatientdata har skrevet. Modulet skal ligesom SkrivPatientdata kunne finde elementer i patientdatafilen udfra en XPath. Udover XPath skal LæsPatientdata også have en tekststreng som søgeinput samt have angivet, hvad der søges efter. XPath Ligesom SkrivPatientdata skal Læspatientdata benytte sig af en XPath til at angive placeringen af elementer i patientdatafilen. I LæsPatientdata skal den dog benyttes lidt anderledes, da XPath vil angive en søgeplacering. I stedet for at angive elementet vil XPath angive en søgeplacering hvori der benyttes en søgestreng til at finde det data, der ønskes. Denne udgave er fra d. 23. maj 2003 kl. 15.38 81 82 Softwaredesign Søgestreng Søgestrengen skal benyttes af Læspatientdata til at finde det data, der ønskes. Det modul, der benytter LæsPatientdata, kan vælge, om der ønskes at søge efter et element eller en attribut. Hvis der f.eks. søges et element med søgestrengen “patient” med XPath /patientdata/*, skal output fra LæsPatientdata være et array med værdierne af alle elementer med navnet “Patient”, der ligger i elementet patientdata. Desuden skal der også være et output med den først fundne værdi. Dette output kan bl.a. bruges, når det er sikkert, at søgningen kun vil give ét resultat. Hvis der i ovennævnte eksempel havde været søgt på attributter, og søgestrengen var “Personnr”, ville resultatet i stedet have været værdien af alle attributter med navnet Personnr. Ligesom i SkrivPatientdata skal der først tjekkes, om filen eksisterer, hvorefter den åbnes for læsning. Hvis den ikke eksisterer, laves en ny tom fil. Når læsningen er færdig lukkes filen. Pseudokode Find alle filer i C: B med endelsen .xml Søg i de fundne filer efter navnet patientdata.xml HVIS filen findes SÅ Åbn den nuværende patientdata.xml som et activeX-object af typen XML-dokument ELLERS Opret en ny patientdata.xml uden patient elementer og sessionselementer. Åbn den oprettede fil patientdata.xml som et activeX-object af typen XML-dokument Udfra input til Læs patientdata hentes værdier i patientdata.xml Alle de fundne værdier sendes som output Den første af de fundne værdier sendes som output. Luk filen 4.4.6 Moduldesign - Patientvalg Modulet designes ud fra afsnit 4.4.1 samt 1.6.6. Eksterne grænseflader Patientvalg kalder LæsPatient som input og får følgende information: navn[String], tidspunkt[String] og personnummer[String]. Endvidere kaldes SkrivPatient til skrivning af output som er navn[String] og personnummer[String]. Design Patientvalg er det første skærmbillede, der vises til behandleren, når programmet startes op. Patientvalg-modulets funktion er at give behandleren mulighed for at oprette nye patienter i databasen, slette patienter i databasen samt at vælge hvilken patient fra databasen, behandleren ønsker at arbejde med. Når behandleren har valgt en patient, kaldes Patientindstillinger-modulet med personnummeret og navn på den valgte patient. På denne måde kan Patientvalg-modulet vidergive information til Denne udgave er fra d. 23. maj 2003 kl. 15.38 4.4 Procesdesign - PC-proces Patientindstilling-modulet, om hvilken patient behandleren ønser at arbejde med. Når modulet startes, skal navne og personnumre på alle patienter i patientdatafilen indlæses ved hjælp af LæsPatientdata-modulet. Derefter skal cursoren placeres i feltet, hvor navnet på en ny patient kan indtastes. Når der er indtastet et nyt navn og personnummer, skal der klikkes på “Indlæs ny patient”, for at lægge den nye patient ind i databasen ved hjælp af SkrivPatientdata-modulet. Før data sendes til SkrivPatientdata-modulet skal det først tjekkes om det indeholder gyldige tegn. Navnet må indeholde store og små bogstaver fra a-z samt mellemrum, og personnummer skal skrives på formen xxxxxx-xxxx, hvor x repræsenterer et tal fra 0-9. Dette skal undersøges, idet data skrevet til XML-filen i dette program er blevet begrænset til de ovennævnte karakterer. Hvis enten navn eller personnummer indeholder andre karakterer end de tilladte, skal modulet i en dialogboks informere behandleren om dette. Behandleren skal derpå rette det indtastede, så det kun indeholder tilladte tegn, og en lampe skal indikere, om dette er tilfældet. Med en knap skal behandleren kunne fortsætte indlæsningen, men kun såfremt at det indtastede kun indeholder tilladte tegn. Når indtastningen er fuldført, skal visningen af patienter i databasen opdateres. Patienterne i databasen vælges ved hjælp af museklik på to pile. Den valgte patient skal vises i en separat sektion af skærmbilledet, således, at der ikke opstår tvivl om, hvilken patient der vælges. Ved tryk på luk-knappen afsluttes programmet. Pseudokode Ryd indtastningsfelterne ”Patientens Navn” og ”Personnummer” Indlæs patienter fra patientdatafilen til ”Patient-arrayet”. Placér cursoren i indtastningsfeltet for Navn IMENS ”Luk”-knap ikke er trykket HVIS Tryk på ”Tilføj” HVIS Navn er ugyldigt SÅ IMENS (Navn indeholder ugyldige tegn OG der er trykket på fortsæt indlæsning) ELLER annuller er trykket Vis dialogboks, hvor Navn kan rettes eller indlæsning annulleres. HVIS Navn er ugyldigt SÅ IMENS (Personnummer ikke har korrekt format OG der ikke er trykket på “Indlæs”) ELLER “Annuller” ikke er trykket Vis dialogboks, hvor personnummer kan rettes eller indlæsning annulleres. HVIS der ikke er trykket annuller SÅ Skriv et patientelement med det indtastede navn og personnummer til patientdatafilen ved kald af SkrivPatientdata. Ryd indtastningsfelterne for Navn og Personnummer Indlæs patienter fra patientdatafilen til ”Patient-arrayet”. HVIS Tryk på ”Slet” HVIS valgte patient ikke er tom SÅ Denne udgave er fra d. 23. maj 2003 kl. 15.38 83 84 Softwaredesign Vis dialogboks med spørgsmål om sletning HVIS Tryk på ”Ok” SÅ Slet valgte patientelement fra patientdatafilen med skrivpatientdata Indlæs patienter fra patientdatafilen til ”Patient-arrayet” ELLERS Stop ELLERS Vis dialogboks om ugyldig patientvalg HVIS Tryk på “OK” SÅ Stop HVIS Tryk på vælg SÅ HVIS valgte patient ikke er tom Kald ”patientindstillinger-moduet” med det valgte navn og personnummer ELLERS Vis dialogboks om ugyldig patientvalg HVIS Tryk på “OK” SÅ Stop 4.4.7 Moduldesign - Patientindstillinger Modulet designes ud fra afsnit 4.4.1 samt 1.6.6. Eksterne Grænseflader Patientindstillinger får som input personnummer[String] og navn[String] fra Patientvalg. Endvidere henter Patientindstillinger en række værdier i patientdata-filen vha. LæsPatientdata, som alle er af typen[String] som udgangspunkt. Patientindstillinger skal ikke direkte give noget output, men skal kalde modulerne LæsPatientdata, SkrivPatientdata, VisEEG og VisResultat afhængig af behandlerens interaktion. Udtagning af attributter Når modulet kaldes, skal det udfra det givne personnummer, undersøges i Patientdata, om patienten har deltaget i tidligere sessioner. Dette skal gøres ved brug af modulet LæsPatientdata. Hvis patienten har deltaget i tidligere sessioner, skal sessionernes tidspunkter (dato og klokkeslet) vises i et array ved navn “Tidligere Sessioner”. Endvidere skal Tærskelværdi, DFOmin og DFOmax findes for den sidst nye session i sessionsdata og konverteres til typen [Double] fra [String] af hensyn til den senere signalbehandling og vises som default i de respektive felter i interfacet. Hvis der er tale om en ny patient, skal følgende værdier vises som default: Tærskelværdi=0,04 DFOmin=12,0 og DFOmax=15,0. Frekvenserne er valgt udfra DFO for SMR jf. afsnit 1.3 mens tærskelværdien er valgt ud fra DFO-værdierne fra EEG-forsøget (appendiks A.1). Denne udgave er fra d. 23. maj 2003 kl. 15.38 4.4 Procesdesign - PC-proces Grænseværdier Tærskelværdi, DFOmin og DFOmax skal i interfacet præsenteres som felter, hvor det er muligt for behandleren at definere værdierne. Det må ikke være muligt at overskride følgende grænseværdier: Tærskelværdi: 0,0-1,0, DFOmin: 0,5-40,0, DFOmax: 0,5-40,0, hvilket passer med EEGs frekvensspektrum jf. afsnit 2.3. DFOmin og DFOmax skal ændres med intervaller på 0,5, da dette er systemets frekvensopløselighed jf. afsnit 2.3. Tærskelværdien skal derimod ændres med intervaller på 0.01. Portnummer Patientindstillinger skal indeholde et felt, hvor behandleren kan angive portnummeret på den port, som microcontrolleren tilsluttes med det serielle kabel. Feltet skal som udgangspunkt stå på Com1, da dette er den hyppigst anvendte Com-port. “Tidligere Sessioner” Det skal være muligt at markere en session i “Tidligere Sessioner” ved hjælp af den tilhørende scrollkontrol. Ved tryk på “Slet session” skal der først testes, hvorvidt elementet er tomt, hvis dette er tilfældet, skal der gives en fejlmeddelelse, som underretter brugeren. Hvis det markerede element ikke er tomt, skal behandleren verificere sletningen via en dialog. Hvis der svares “Ok” til dette, skal den markerede sessionsdata slettes ved brug af SkrivPatientdata. Arrayet skal kun opdateres, når der er ændringer, så der ikke bruges unødvendige ressourcer. Modulkald Patientindstillinger kalder 2 moduler udover LæsPatientdata og SkrivPatientdata. Disse er VisResultat og VisEEG. Ved tryk på “Vælg session” skal der først testes for, hvorvidt det markerede element er tomt. Hvis det markerede element er tomt, skal der gives en fejlmeddelse, som underretter behandleren. Hvis det markerede element ikke er tomt, skal modulet VisResultat køres med den markerede sessions Tidspunkt og patientens Personnummer som input. Hvis behandleren trykker på “Start session”, skal det undersøges, om DFO er korrekt defineret, dvs. at DFOmin ikke er større end DFOmax. Hvis DFO ikke er korrekt defineret, skal behandleren oplyses om dette i en dialog og forblive i Patientindstillingers interface. Hvis DFO er korrekt defineret, skal VisEEG køres med de definerede værdier for Tærskelværdi, DFOmin, DFOmax, Portnummer samt patientens Personnummer og Navn. Ved tryk på “Tilbage” skal Patientindstillinger stoppes, og behandleren skal bringes tilbage til PatientValg. pseudokode Hent Tidspunkt fra samtlige sessioner for patienten og vis i “Sessioner”-array HVIS størrelse af “Sessioner” er 0 SÅ Sæt defaultværdier for Tærskelværdi, DFOmin og DFOmax ELLERS Hent Tærskelværdi, DFOmin og DFOmax i sessionsdata for den nyeste session Denne udgave er fra d. 23. maj 2003 kl. 15.38 85 86 Softwaredesign IMENS der ikke trykkes på “Tilbage” HVIS tryk på “Slet session” SÅ Find det i arrayet markerede element HVIS det markerede element er tomt SÅ Giv fejldialog HVIS tryk på “Ok” SÅ Luk fejldialog ELLERS I dialogboks bed om bekræftelse på sletning HVIS tryk på “Ok” SÅ Luk dialogboks Slet markerede session Opdater Sessioner HVIS tryk på “Cancel” SÅ Luk dialogboks HVIS tryk på “Vælg session” SÅ Find det i arrayet markerede element HVIS det markerede element er tomt SÅ Giv fejldialog HVIS tryk på “Ok” SÅ Luk fejldialog ELLERS Kør VisResultat med Personnr og Tidspunkt for markeret session HVIS tryk på “Start session” SÅ HVIS DFOmin > DFOmax SÅ Giv fejldialog HVIS tryk på “Ok” SÅ Luk fejldialog HVIS DFOmin C DFOmax SÅ Kør VisEEG med Personnr, Navn, Tærskelværdi, DFOmin, DFOmax og Portnummer som input Opdater “Sessioner” Vent 100ms Denne udgave er fra d. 23. maj 2003 kl. 15.38 4.4 Procesdesign - PC-proces 4.4.8 Moduldesign - VisResultat Dette modul har af et skærmbillede i brugergrænsefladen, der viser behandleren data fra en allerede udført session. Som det er beskrevet i afsnit 1.6.6 side 20 om krav til programinterface, skal patientens personlige oplysninger vises, samtidig med at udviklingen af DFO-ratioen og EEG-signalet kan ses på de to grafer (jf. figur 1.10 side 25). Eksterne grænseflader Modulet bliver kaldt af Patientindstilinger med to inputs: Personnummer[String] og Tidspunkt[String], hvorudfra patientens data hentes. Der er ikke nogen output til andre moduler. Hentning af data Udfra input til modulet hentes alle patientoplysninger i patientdatafilen, der kan være interessante for behandleren. Det kan være følgende; navn, personnummer, tidspunkt, tærskelværdi, DFOmin, DFOmax og sessionens varighed. DFO-ratio Til visning af patientens præstation under sessionen bruges DFO-ratioen, der plottes sammen med tærskelværdien, så det er muligt at se, hvordan sessionen er forløbet. For at plotte DFO-ratioen bruges modulet BestemDFO, der udfra EEG-data, DFOmin og DFOmax beregner DFO-ratioen. EEGdata hentes ligesom de andre patientoplysinger i patientdatafilen i form af et array af strings, der herefter konverteres til et array af doubles til brug i beregningerne. Da det gerne skal være muligt at se hele patientens præstation på en graf, beregnes ratioen for 512 samplinger af gangen. Da en session typisk vil vare en halv [Pettersen & Hoffmann 2002], vil det med den definerede samplingsfrekvens på 200 Hz give omkring 700 punkter på grafen, hvilket vurderes til at kunne give et acceptabelt indblik i, hvorledes sessionen er forløbet. Visning af EEG-signal Da det kan ske, at der har været fejl i sampling af EEG-signalet, hvis der har været meget høj impedans ved elektroder el. lign. skal det også være muligt at se EEG-signalet i tidsdomænet. Her skal der kunne ses et minut af gangen, hvilket vil give 12.000 punkter på grafen. Dette er mange punkter, men for at det ikke skal virke overvældende at blade igennem alt data ved en yderligere opdeling, vælges det at vise 1 minut af gangen. Valg af minut vil foregå ved piletaster eller indtastning, som det også kan ses på figur 1.10 side 25. Derfor er det yderligere nødvendigt at beskytte inputtet, så behandleren kun kan vælge at se et minut, der ligger indenfor sessionens længde. Opdatering af grafer Da sessionerne som nævnt kan være af forskellig varighed, skal begge datagrafer kunne tilpasse sig dette. Dette skal gøres ved at undersøge længden af data-arrayet og derefter tilpasse skalaerne og behandlerens mulighed for valg af visning af EEG i tidsdomænet. Ved tryk på en tilbageknap skal VisResultat-skærmbilledet lukke, og Patientindstillinger vises. Pseudokode Denne udgave er fra d. 23. maj 2003 kl. 15.38 87 88 Softwaredesign Hent Navn, DFOmin, DFOmax, Tærskelværdi og sessionsdata fra patientdata konverter DFOmin, DFOmax, Tærskelværdi fra string til double Skriv Navn, Personnummer, Tidspunkt, DFOmin, DFOmax og Tærskelværdi ud til brugeren. FOR i = 0 til (antallet af samples i sessionsdata)/512 Udregn DFO-ratio Hent tærskelværdi Sæt offset på x-skala i DFO-ratio-graf til 0 HVIS sessionslængde < 1 minut: SÅ Sæt x-skalas label til tid [s] Tilpas skalaen til sekunder Sæt skalaens maksimum til sessionslængde ELLERS Sæt x-skalas label til tid [min] Tilpas skalaen til minutter Sæt skalaens maksimum til sessionslængde Plot DFO-ratio og tærskelværdi på samme graf IMENS der ikke trykkes på stop Udregn sessionslængde i minutter og sekunder Udskriv sessionslængde til bruger HVIS sessionslængde < 1 minut SÅ Sæt brugerens mulighed for at vælge minut til maks=0 ELLERS Sæt brugeres mulighed for at vælge minut til maks=sessionslængde i hele minutter HVIS Bruger vælger minut over maks SÅ Udskriv fejlmeddelse Sæt brugers valg til maksimum sessionslængde i hele minutter ELLERS Sæt x-skalas offset til brugerens minutvalg Sæt x-skalas maksimum til 1 minut over brugers minutvalg Hent det valgte minut EEG-signal Plot det valgte minut EEG-signal Vent 100 ms 4.4.9 VisEEG Eksterne grænseflader Modulets input består af Navn [String], Personnr. [String], Tærskelværdi [String], DFOmin [String], DFOmax [String], DFO-ratio [Integer] og EEG-data [40 elementers arrays af typen unsigned byte] og disse, foruden DFO-ratio skal sendes videre til Feedback sammen med et tidspunkt for sessionens udførelse. Denne udgave er fra d. 23. maj 2003 kl. 15.38 4.4 Procesdesign - PC-proces Visning af EEG-data Modulet har til opgave at vise det diskrete EEG-signal på en graf i et skærmbillede jf. afsnit 4.4 som bl.a. kan bruges til kalibrering af analog forstærkning. Grafen skal opdateres 5 gange i sekundet, og det ønskes desuden, at der skal vises 2 sekunders data ad gangen. Dette medfører, at der på grafens tidsakse skal vises 2s . 5 . 40samples + 400 punkter ad gangen. Da der bruges 8 bit til repræsentation af hver værdi, kan disse højest blive 255, hvilket grafen også skal være tilpasset. Det er af samme grund, at der er valgt input-arrays af længden 40 ( + 200Hz 5s ). Indikator Indkatoren skal implementeres i form af en grøn lampe, der lyser når der eksisterer værdier under 20 og over 235. Grunden til, at det ikke er 0-255, er at der ønskes noget headroom. Indikatoren realiseres ved at undersøge hvert array for ekstrema og aktivere lampen, når en af de førnævnte værdier overskrides. Kald af andre moduler Det data, VisEEG modtager, skal sendes videre til Feedback-modulet, når dette kaldes. Det skal fra skærmbilledet VisEEG være muligt at trykke sig videre til Feedbackskærmbilledet for at starte en ny session. Det skal desuden være muligt at fortryde og gå et skærmbillede tilbage. Pseudokode Kald StartStopMSP IMENS Svar fra StartStopMSP er ”True” SÅ Send portnummer og timeout til LæsCom HVIS Fejl SÅ Skriv fejl til bruger HVIS tryk på “Prøv igen” SÅ Kald StartStopMSP-modul HVIS Tryk på “Annuller” SÅ Gå til Patientindstilling ELLERS HVIS Værdi fra LæsCom D [20;235] SÅ Aktiver lampe HVIS Tryk på “Start Feedback” SÅ Gå til Feedback-skærmbilledet Vis EEG-signalet på graf Vent 100ms Denne udgave er fra d. 23. maj 2003 kl. 15.38 89 90 Softwaredesign 4.4.10 Feedback Modulet er designet ud fra afsnit 4.4.1 og 1.6.6. Eksterne grænseflader Feedback moduler grænser op til SkrivPatientdata, LæsCom, VisEEG og BestemDFO. Af input har den navn[String], personnummer[String], Tidspunkt[String], Tærskelværdi[String], DFOmin[String], DFOmax[String], tidspunkt[String] eller EEG-signal[String] samt DFO-ratio[double]. Funktion Modulets funktion er at give behandleren mulighed for at sammensætte en playliste med de musiknumre, der ønskes afspillet som auditiv feedback. Derudover skal modulet give visuelt feedback til patienten og give behandleren mulighed for at starte sessionen, når det ønskes. Efter hver session skal modulet skrive sessionsdata til patientdatafilen. Under realiseringen af modulet i LabVIEW, blev det klart at det for overblikkets skyld blev nødvendigt at dele Feedback-modulet op i to mindre moduler. Et styrende modul, som styrer alt det grafiske og gemmer resultatet af sessionen i patientdatafilen samt et modul til at styre redigeringen af playlisten. En yderligere opdeling kunne også forsvares, men for ikke at bryde med procesdesignet vælges det at fortsætte med denne model. Playliste-modul Undermodulet, som styrer playlisten, skal kaldes hver gang behandleren i hovedmodulet trykker på enten “tilføj ny sang” eller “ryd playlisten”. Modulet modtager den eksisterende playliste, samt den visuelle oversigt over hvilke numre, der er blevet valgt. Derudover får modulet også at vide om det var “tilføj ny sang” eller “ryd playlisten”, der blev trykket på. Hvis playlisten skal ryddes skal modulet slette indholdet af playlisten og den visuelle visning af playlisten. Resultatet sendes derpå tilbage til hovedmodulet. Hvis der skal tilføjes en ny musikfil skal modulet fremkomme med en “Åbn fil”-dialogboks, således at behandleren kan vælge den fil, der skal tilføjes. Filen kan være af typen .wav eller .mp3. Efter, der er valgt en fil, skal dennes sti tilføjes playlisten, og filens navn uden .mp3 eller .wav skal tilføjes den visuelle visning af modulet. Feedback-modul Modulet skal styre playliste-modulet samt de resterende funktioner Feedbackmodulet skal udføre. Modulet skal starte med at initialisere playlisten og barren så den bliver skaleret ud fra tærskelværdien. Endvidere skal modulet vise det navn, som modulet modtager fra VisEEG-modulet. Modulet skal også stoppe for afspilning af musik ved ActiveX-elementet Mediaplayer, som benyttes til at afspille musikken under sessionen. Herefter skal det være muligt for behandleren at vælge de musikstykker til playlisten, der ønskes afspillet under feedbacksessionen. Ved tryk på enten “Tilføj ny sang” eller “Ryd playlisten” kaldes funktionerne i Playliste-modulet. Ved tryk på “Start”-knappen skal sessionen startes, hvorefter visning af playliste, navn samt alle knapper forsvinder fra displayet samtidg fremkommer stop-knappen. Barren skal nu bevæge sig i takt med den modtagne DFO-ratio. DFO-ratio kan kun have værdier liggende mellem 0 og 1, og udfra denne værdi og tærskelværdien bestemmes om der skal afspilles musik, samt Denne udgave er fra d. 23. maj 2003 kl. 15.38 4.4 Procesdesign - PC-proces 91 hvordan barrens bevægelse og farve skal være. Tærskelværdien er vist i interfacet som to sorte barrer ved siden af feedbackbarren. Når DFO-ratioen er over tærskelværdien, farves barren grøn, og der afspilles musik. Omvent vil der ikke blive afspillet musik, når DFO-ratioen er under tærskelværdien, og barren farves rød. Når der trykkes på stop skal den opsamlede sessionsdata samt DFO-min, DFO-max, Tærskelværdi samt tidspunkt for afslutningen af sessionen, gemmes til patientdatafilen. Sessionsdata modtages af læsCom i arrays af 40 elementer, som skal gemmes i en buffer, mens sessionen er i gang. Når der trykkes på “Stop” gemmes indholdet af temp-bufferen sammen med de ovennævnte værdier i patientdatafilen ved benyttelse af modulet SkrivPatientdata. Når sessionen er stoppet, skal visning af playliste samt de resterende gemte elementer fremkomme igen. Kald af StartStopMSP Når der trykkes “stop” eller “tilbage” skal sessionen stoppes, skal StartStopMSPmodulet kaldes, for at stoppe sampling og konvertering. Pseudokode for Playliste-modulet HVIS tryk på “Ryd Playliste” SÅ Slet indholdet af den modtagede playliste Slet visning af alle navne i den visuelle visning af playlisten HVIS input “Tilføj ny sang” SÅ Åbn fildialog, hvor der kun kan vælges en wav-fil eller mp3-fil HVIS tryk på Åbn fil, og fil er .wav eller .mp3 SÅ Tilføj filstien til playlisten. Tilføj filnavnet uden .wav eller .mp3 til visulle visning af playliste. HVIS tryk på "Cancel"ELLER (tryk på åbn fil OG fil er andet end .wav eller .mp3) SÅ Foretag intet Pseudokode for Feedback-modul Stop afspilning af lydfil Vis Navn i interfacet. IMENS “annuller” ikke er trykket Gør “Start-”, “Tilbage-”, “Tilføj ny Sang”- og “Ryd playliste”-knap synlig Gør Visning af playliste og navn synlig Gør “Stop”-knap usynlig Denne udgave er fra d. 23. maj 2003 kl. 15.38 92 Softwaredesign Opdater barrene, der viser tærskelværdien HVIS ”Tilføj ny Sang”-knap eller ”Ryd playliste”-knap trykkes så SÅ Kald Playliste-modul med parametrene: Tilstand for de to knapper, nuværende playliste og Visuelle visning af playliste. Opdater playliste og visuelle visning med output fra Playliste-modul Vis en scrollbar hvis indholdet af playlisten er over 10 sange. HVIS “Start”-knap trykkes SÅ Gør “Stop”-knap synlig Gør “Start”-, “Tilbage”-, “Tilføj ny Sang”- og “Ryd playliste”-knap usynlig Gør Visning af playliste og navn usynlig Åbn og paus den første fil i playlisten IMENS “Stop”-knap ikke er trykket Vent på, der modtages 40 samples fra LæsCom-modulet. Udregn DFO-ratio med BestemRatio-modulet Opdater barren med den nuværende DFO-ratio HVIS DFO-ratio er over tærskelværdi SÅ Start afspilningen af sangen Gør barren grøn HVIS DFO-ratio er under tærskelværdi SÅ Paus afspilningen af sangen Gør barren rød HVIS nuværende sang er slut SÅ Åbn næste sang i playlisten eller første sang, hvis der ikke er flere sange i playlisten. Ved tryk på “Annuller” eller “Tilbage”: Stop MSP430 med StartStopMSP-modulet Denne udgave er fra d. 23. maj 2003 kl. 15.38 5 Test Modultest og integration af disse er beskrevet i testrapporten. Dette gælder for både C-programmet på microcontrolleren og LabVIEW-programmet på PCen. I det følgende beskrives system- og accepttest af BrainTrainer-systemet. Disse to testes medtages i hovedrapporten idet de vurderes som de mest intressante, endvidere illustrere de hvorledes test generelt er gennemført i projektet. Test-drivere, -stubbe og -inputdata som er blevet benyttet under test af software, er at finde på den medfølgende CD. Her findes desuden også de versioner af software modulerne, der blev testet og som benyttede de omtalte teststubbene og inputdataen. 5.1 Testspecifikation for system Indledning Formål Testen har til formål at verificere, at systemets enheder fungerer sammen i det samlede system. Reference Testen udarbejdes på baggrund af systemdesignet afsnit 2.1 side 27. Omfang og begrænsninger Testen skal klarlægge, om de designede enheder fungerer som tilsigtet i det samlede system. Der vil under testen ikke blive benyttet et menneskeligt måle-objekt, idet der benyttes en signalgenerator med definerbart output. Testen begrænses til en Black-box test hvor kun input og output undersøges. Godkendelse For at systemet kan blive godkendt er det et krav, at testen gennemløbes uden kritiske fejl. Såfremt der under testen opnås resultater, der ikke stemmer overens med det forventede, skal fejlen vurderes. Hvis der vælges at rette fejlen, skal der udarbejdes en ny testspecifikation. Hvis det vurderes, at fejlen ikke vil få betydning for brugen af systemet, skal fejlen ikke rettes, idet der er tale om en prototype. 93 94 Test Testemner Der fokuseres på grænsefladerne mellem de designede enheder. Figur 2.2 side ?? illustrerer, hvilke enheder og grænseflader der skal testes. Testdesign Under integrationstesten sammensættes enhederne gradvist til midlertidige systemer der testes. Enhederne sammensættes som beskrevet på figur 5.1. Integrations rækkefølgen af af de enkelte enheder, er valgt på grundlag af hvad der vil være nemmest at teste i praksis. G H I J K LMN O P QR S T U V W XY Z [\ ]^_ `a bc de f g h i j E F k l m n o p qr st u vw x Figur 5.1: Enheds-integrationsplan for neurofeedbacksystemet. Enhederne kobles sammen til midlertidige systemer, trin for trin, hvor S# angiver de midlertidige systemer. S3 er således det samlede system Brain Trainer system. Testdrivere Inputdata Readport.vi skal benyttes som testdriver i testen. Under systemtesten skal benyttes 2 de to musikfiler: test1.wav og test2.mp3. Testcases S1 MSP430 og det digitale interface kobles sammen. Der gives et kendt input via en signalgenerator koblet til microcontrollerens ADC-indgang. Via testdriveren Readport.vi startes microcontrolleren og Denne udgave er fra d. 23. maj 2003 kl. 15.38 5.1 Testspecifikation for system 95 outputtet til PC’en aflæses på testdriverens frontpanel. S2 EEG-afledningsenheden sættes til microcontrollerens a0-indgang jf. afsnit 4.3.3. Inputtet til S2 gives via signalgeneratoren og en spændingsdeling, gennem en elektrode i elektrodehætten, som er koblet til EEG-afledningsenheden. Inputtet til PC’en vises igen via Readport.vi. S3 S3 består af hele Brain Trainer systemet, idet PC-programmet nu også inddrages. Der vælges at oprette en ny patient og påbegynde en ny session. EEG-afledningens forstærkning indstilles på baggrund af VisEEG-skærmbilledet, hvorefter Feedback startes og sessionen påbegyndes. Via signalgeneratoren laves et sweep fra DC til 60Hz, imens den visuelle og auditive feedback observeres. Feedback stoppes, og via Patientindstillinger vælges VisResultat for den netop overståede session. Testimplementation S1 Signalgeneratoren indstilles til at give input som specificeret i tabel 5.1. Frekvens [Hz] 0 5 Amplitude[V] 0 1 40 1 50 1 2 3 50 3 Forventet resultat Integer med værdien 127 y 5 Der ses en 5Hz sinuskurve på Readport.vi’s graf. Der ses en 40Hz sinuskurve på Readport.vi’s graf. Signalets værdi går mod en konstant værdi på 127 y 5 3Hz signalet som klippes i top og bund, der kan opstå støj ved klipning Sinussignalet dæmpes, men der kan opstå støj ved hver klipning. Tabel 5.1: Input til microcontrollerens a0-indgang genereret af en signalgenerator. Signalgeneratoren indstilles til et offset på 1,65V under hele testen af S1. S2 Følgende input (tabel 5.2) skal sættes til elektroden C3, resten af elektroderne forbindes med jord. Forstærkningen på EEG-afledningsenheden sættes til 20.000. Offsettet sættes under hele testen af S2 til 0V. Denne udgave er fra d. 23. maj 2003 kl. 15.38 96 Test Frekvens [Hz] 0 0,5 Amplitude[µV] 0 50 20 50 40 50 50 50 Forventet resultat konstante værdier på 127 y 5. 0,5 Hz sinuskurve på Readport.vi’s graf med en amplitude på 55 y 5. 20 Hz sinuskurve på Readport.vi’s graf med en amplitude på ca. 77 y 5. 40 Hz sinuskurve på Readport.vi’s graf med amplitude på 55 y 5. Værdier på 127 y 5, der kan forekomme meget dæmpede svingninger. Tabel 5.2: Input til EEG-afledningsenheden genereret af en signalgenerator og en spændingsdeling, samt forventede output S3 Følgende inputs gives: Patient navn Person nummer DFOmin DFOmax Tærskelværdi Musik i playlist Input signal til C3-elektroden EEG-aflednings forstærkning Kasper Kaspersen 121203-3344 10Hz 20Hz 0,5 test1.wave og test2.wave 50µV, sweep fra DC til 60Hz. (10Hz ved Vis EEG skærmbilledet) 20.000 (Kalibreres evt. under testen) Tabel 5.3: Inputs til testen af S3 De forventede output: VisEEG viser en 10Hz sinuskurve, med en amplitude på ca. 77. På Feedbackskærmbilledet forventes, at der vises en DFO-ratio på mindre end 0,1 på den visuelle feedback-barre, under sweep fra DC til 10Hz. Ved 10Hz vil barren stige og indikere en værdi større end 0,9, barren vil endvidere skifte farve fra rød til grøn, og der vil gives auditivt feedback. Når frekvensen når over 20Hz, forventes det at barren igen falder til under 0,1, barrens farve skifter endvidere til rød påny, og den auditive feedback stoppes. Der må forventes en glidende overgang på z 0,5Hz til og fra DFO, før DFO-ratioen giver det forventede, grundet frekvensopløsning og breden på Hanningvinduets mainlobe. På VisResultat-skærmbilledet vises en linje ved 0,5 på DFO-ratio grafen, som indikerer tærskelværdien, endvidere vises hvorledes DFO-ratioen har ændret sig over tid under sweepet. På grafen, der viser EEG-signalet, ses input-signalet i tidsdomænet. Denne udgave er fra d. 23. maj 2003 kl. 15.38 5.2 Udførsel af test 5.2 97 Udførsel af test Testen udføres på en PC med en fungerende Com-port, en installation af LabVIEW, Microsoft’s MSXML 4.0, LabXML-toolbox og PC-program. { { Tilslut projektboardet PC’en via et RS-232 kabel. Indstil signalgeneratoren som foreskrevet og tilsluttes den pin på projectboardet der er mærket ”EEGafledning”, som er en sikret indgang til microcontrollerens a0 indgang. Start Readport.vi på PC’en i LabVIEW. { Tænd projectboardet. { Send via Readport.vi følgende byte ”0000 0001” til microcontrolleren. { Observer grafen på frontpanelet, imens hver af de i tabel 5.1 specificerede inputs testes. { Sluk for projectboardet. { Sæt forstærkningen på EEG-afledningsenheden til 4 trin, svarende til 20.000. { Tilslut EEG-afledningsenheden til den pin som er mærket ”EEG-afledning”. { Via en 1/10.000 spændingsdeling forbindes signalgeneratoren til C3 på elektrodehætten. { De resterende elektroder skal forbindes til projectboardets jord. { Tænd projectboardet. { Send via Readport.vi sendes følgende byte til microcontrolleren ”0000 0001”. { Indstil signalgeneratoren så C3-elektroden får et input signal svarende til det specificerede i tabel 5.2. { Gentag proceduren til alle de specificerede inputs er testet. { Send bytet ”0000 0000” til microcontrolleren. { { Indstil signalgeneratoren, således at C3-elektroden modtager inputtet som defineret i testimplementationen under S3. Start Patientvalg.vi. { Indskriv en patient som beskrevet i ovenstående afsnit, tryk efterfølgende ”Start session” { { { Skift på Patientinstillinger-skærmbilledet sessions indstillingerne til det specificerede, og tryk ”Start session”. Verificer på VisEEG-skærmbilledet, at inputtet er en 10Hz sinuskurve. Kalibrer evt. forstærkningen hvis nødvendigt. Tryk på ”Start session”. { Vælg ”Start” på Feedback-skærmbilledet. { { Observer den visuelle og auditive feedback, imens der laves et langsom (minimum 2 minutter) sweep som specificeret. { Tryk på ”Stop”. { Vælg den netop overståede ”session” på Patientindstillinger og tryk ”Vælg”. { Observer graferne DFO-ratio og EEG-signal. { Luk programmet. Denne udgave er fra d. 23. maj 2003 kl. 15.38 98 Test 5.2.1 Testrapport Systemtest Indledning Systemtesten blev udført d. 15 og 16 maj 2003 Testresultater Det samlede BrainTrainer system består af 4 enheder, der er blevet designet hver for sig: EEGafledningsenhed, MSP340, Digitalt interface og PC-program. Under testen integreredes enhederne sammen en efter en til midlertidige delsystemer. Ved hvert trin blev grænsefladerne testet som specificeret i testspecifikationen. De 4 enheder blev således integreret i 3 trin, hvor det sidste trin bestod af hele BrainTrainer systemet. Testresultaterne stemte i alle tests overens med de forventede resultater, på nær under anden test. Her blev der generelt observeret en amplitude der var lidt under det forventede. Afvigelser og kommentarer Afvigelserne under test 2, stammer med stor sandsynlighed fra EGG-afledningsenheden. Det er ikke umiddelbart til at forklare afvigelsen, selvom der tages forbehold for de afvigelser der blev fundet under testen af enheden (I.4 side 9). Afvigelserne er dog så små at det ikke vurderes at få nogen betydning. Konklusion Udfra systemtestens resultater godkendes det samlede BrainTrainer system. Indledning For at være sikker på, at systemet overholder de krav, der er sat af udviklerne og den eventuelle kunde, foretages en accepttest. I dette tilfælde har der været meget lidt kontakt til kundegruppen, så det er hovedsageligt udfra egen kravspecifikation, at testen specificeres. Formål Formålet med accepttesten er at sikre, at kravene er overholdt, så det endelige system tilfredsstiller brugeren. Hvis kravene ikke er opfyldt, vil der være behov for at vurdere, om systemets design skal rettes, eller om det er forsvarligt at fortsætte med fejlen. Med denne test markeres afslutningen af systemudviklingen. Denne udgave er fra d. 23. maj 2003 kl. 15.38 5.2 Udførsel af test 99 Referencer Der henvises til kravspecifikationen afsnit 1.6 side 15 og krav til programinterface afsnit 1.6.6 side 20. Testens omfang og begrænsninger Testen er fokuseret på systemet som helhed i forhold til brugeren. Da systemet ikke er udviklet med henblik på at påvise, om DAMP-børn kan behandles med systemet, testes det ikke på DAMP-børn, men begrænses til projektgruppen. Kravspecifikationen er fastsat med henblik på en evt. bruger, og derfor vil accepttesten også hovedsageligt beskæftige sig med de dele af systemet, der berører brugeren. Det betyder, at de tekniske elementer i systemet ikke vil blive testet her men derimod i systemtesten, der er fastsat udfra systemkravene i afsnit 1.6.4 side 19. Godkendelse Projektgruppen er ansvarlig for frigivelse eller aflevering af det testede system. Systemet skal som miminum kunne give et rigtigt feedback til patienten uden registrerbar forsinkelse efter indstilling af frekvensspektret, som patienten skal trænes med; dog skal alle krav i kravspecifikationen overholdes (jf. 1.6 side 15). Testemner 1. Udviklingsforløb og forudsætninger (jf. afsnit 1.6.1) (a) Foreligger der dokumentation af systemet, både softwaremæssigt, som hardwaremæssigt? (b) Er der brugt SPU til systemudviklingen? (c) Er der brugt C og LabVIEW til programmering? (d) Er der brugt en MSP430F149 microcontroller? (e) Er det muligt at udvide softwaren? 2. Funktionalitet (jf. afsnit 1.6.2 og 1.6.3) (a) Foregår EEG-afledning ved hjælp af elektroder? (b) Er der tale om 1 kanal monopolær afledning fra C3? (c) Foretages der en forstærkning og filtrering af signalet? (d) Er de nødvendige sikkerhedsforanstalninger foretaget med hensyn til patienten? (e) Udregnes DFO-ratio som energien i det definerede frekvensspektrum i forhold til den samlede energi i EEG-signalet? (f) Fungerer systemet som specificeret i figur 1.4 side 18? (g) Er outputtet fra interfacet digitalt? (h) Foregår kommunikation mellem microcontroller og PC med RS232-standarden? (i) Er der brugt Flash Emulation Tool til at lægge kode ind på microcontrolleren? (j) Er systemets stabilitet acceptabel? 3. Brugergrænseflade (jf. afsnit 1.6.6) (a) Valg af patient Denne udgave er fra d. 23. maj 2003 kl. 15.38 100 Test i. ii. iii. iv. v. Er det muligt at tilgå patienter, der er tilføjet systemet? Er det muligt at tilføje nye patienter? Skiftes der til næste skærmbillede ved valg af patient? Er det muligt at slette en patient? Sker der en sikring af beslutningen om at slette? (b) Patientindstillinger i. ii. iii. iv. v. vi. vii. viii. ix. x. xi. Vises navn og personnummer? Hvis patienten er ny, vises standardindstillinger af grænseværdier? Hvis patienten er tilføjet systemet, vises de sidst brugte grænseværdier? Er det muligt at indstille grænseværdier samt portnummer? Er det umuligt at indtaste ugyldige værdier? Vises alle de sessioner patienten har deltaget i? Ved valg af en session, skiftes til et nyt skærmbillede? Er det muligt at slette en session? Sker der en sikring af beslutningen om at slette? Sker der fejlmeddelselse ved start af en session med ugyldige tærskelværdier? Skiftes til nyt skærmbillede ved start af en session med gyldige tærskelværdier? (c) Visning af EEG i. ii. iii. iv. Vises navn og personnummer? Vises EEG-signal på skærmbilledet? Ved tryk på OK, skiftes der skærmbillede til Feedback? Ved tryk på tilbage, skiftes til Patientindstillinger? (d) Feedback i. ii. iii. iv. v. vi. vii. viii. ix. x. Vises navn og personnummer? Er det muligt at tilføje musikfiler til playlisten? Er det muligt at slette alle musikfilerne fra playlisten? Startes feedback ved tryk på “Start”? Forsvinder alt andet end barrer og stopknap fra skærmbilledet ved tryk på “Start”? Vises DFO-ratio og tærskelværdi på skærmbilledet? Skifter barren farve ved passage af tærskelværdi? Stiger og falder barren i takt med DFO-ratio? Tilføjes lagringen patientens data efter endt session? Vises Patientindstillinger-skærmbilledet ved tryk på tilbage? (e) Vis resultat i. ii. iii. iv. v. vi. Vises patientens data på skærmbilledet? Vises den pågældende sessions indstillinger og længde på skærmbillledet? Vises DFO-ratio som funktion af tiden sammen med tærskelværdien? Vises EEG med et minuts varighed? Er det muligt at vælge minut med piletaster? Vises Patientinstillinger-skærmbilledet ved tryk på tilbage? (f) Brugervenlighed i. Er det muligt at tilgå hjælpfunktionen fra samtlige skærmbilleder? ii. Vurderes systemet til at være brugervenligt i den forstand, at det vil være muligt at benytte systemet for en uvildig person kun med støtte fra hjælpfunktionen? Denne udgave er fra d. 23. maj 2003 kl. 15.38 5.2 Udførsel af test 101 5.2.2 Testdesign I forbindelse med acceptest, undersøges kun de ovenstående punkter, dvs. den tekniske funktion er testet og testes derfor ikke her. Testen vil foregå med observation, hvor der svares på de overstående spørgsmål i forbindelse med en endelig gennemgang af systemet. Der vil være tale om simpel afkrydsning i et spørgskema. Udover test af de ovenstående punkter. skal der udføres en stresstest af systemet, hvor hele systemet skal stå tændt igennem minimum 3 timer, hvor projektgruppens medlemmer på skift skal agere brugere (såvel patient som behandler) og udføre en session på en halv time. Denne test vil endvidere belyse hvorledes systemets feedback fungerer i forhold til brugerne. Derfor bliver stresstestens resultat ikke kun, om sytemet virker under stress, men også en vurdering af systemets brugergrænseflade ud fra projektgruppens egne erfaringer. 5.2.3 Testimplementation Ved udførsel af testen, forventes det, at der kan svares ja til alle de i afsnit 5.2.1 opstillede spørgsmål. Endvidere forventes det at systemet kan klare stresstesten. 5.2.4 Testudførsel Ved en endelig gennemgang af systemet, kobles en forsøgsperson til systemet med elektroder, BrainTrainer startes op, og alle punkter i afsnit 5.2.1 gennemgåes i forbindelse med brug af systemet. Gennemgangen udføres således: { { Rens øreflipperne med fil og rensevæske (indeholdende alkohol). { Påsæt reference-elektrode på øreflipperne (A1 og A2) med de dertil egnede elektroder til linked-ear reference. { Anbring elektrodehætten på forsøgspersonen. Det sikres, at hætten sidder godt fast uden at genere forsøgspersonen. Præparer (fjern døde hudceller) forsøgspersonens hovedbund ved de elektroder i elektrodehætten, hvor der skal afledes signaler, ved at skrabe hovedbunden med sprøjten igennem hullet i de pågældende elektroder. Der skal foretages monopolær afledning centralt fra C3. Endvidere skal Cz anvendes som jord. Fyld anvendte elektroder med Quik Gel. { Tilslut kabler fra elektroderne til MSP430. { Forbind PC med BrainTrainer til MSP430. { Tænd for MSP430 { Start BrainTrainer op. { Ved gennemgang af punkterne om brugergrænseflade testes systemet udfra en brugers synsvinkel. { { { Gennemløb derefter, hvad der svarer til en session, hvor alle skærmbilleder anvendes, og der gives feedback i 30min. Gentag for projektgruppens resterende 5 medlemmer, hvor halvdelen tester for Alfa-aktivitet og de resterende for SMR-aktivitet. Denne udgave er fra d. 23. maj 2003 kl. 15.38 102 Test Endvidere udføres følgende stress-emner ved første testperson: { Hardwaren kobles fra eller slukkes uden varsel { Forsøgspersonen sidder uroligt { Systemet sættes til at køre 2 timer, der observeres om der sker fejl { Uhensigtsmæssig indtastning fra brugers side. 5.2.5 Testrapport for accepttest Indledning Testen blev udført d. 20 maj Reference side 5.2.1. Testen blev udført påbaggrund af specifikationerne for acceptesten som findes i bilag 5.2.1 Testresultater I testspecifikationen er der opstillet en række spørgsmål der skal kunne svares ’ja” til, punkterne er lavet på baggrund af kravsspecifikationen side 1.6 og omhandler hele systemet. Punkterne beskriver bl.a., hvilke funktioner produktet skal have, hvilke komponenter der skal indgå i systemet, hvordan udviklingen af produktet skal foregå, samt hvilken dokumentation der skal foreligge for systemet. Det var et krav i testspecifikationen at der kunne svares ”ja” til at alle foreholdene var overholdt. Efter det endte udviklingsforløb og det endelige produkt, har projektgruppen vurderet at projektforløbet og produktet overholder kravene og at der vil kunne svares ”ja” til samtlige spørgsmål i testspecifikationen for acceptesten. Systemet klarede ikke stresstesten, da microcontrolleren gik ud under en af sessionerne. Ved en anden af sessionerne skulle der sendes startkommando gentagne gange til microcontrolleren, før den begyndte at opsamle data. Vurdering af kvalitetskrav I kravsspecifikationen blev opsat en række kvalitetsfaktore, som skulle fungere som retningslinjer for prioriteringer i forbindelsen med udviklingen af neurofeedbacksystemet. Stabiliteten blive i kravsspecifikationen prioriteret til 2(jf. 1.6.5 side 19), microcontrollerens udfald vurderes derfor som acceptabel. Udvidelses- og vedligeholdelsesvenligheden blev prioriteret til 3, hvilket vurderes opfyldt da systemet er meget fleksibelt med hensyn til DFO samt auditivtfeedback. Programmet er opbygget af moduler der kan opdateres hverfor sig, men derhar dog ikke været fokuseret på at systemet skal være nemt at opdatere. Brugervenligheden blev også prioriteret til 3, dette vurderes opnået idet der er en udførlig hjælp dokumentation med programmet. Denne udgave er fra d. 23. maj 2003 kl. 15.38 5.2 Udførsel af test 103 Intregriteten blev kun prioriteret til 2. Hvilket retfærdiggør at hardwaren ikke er blevet uudførlig beskyttet mod mekanisk og elektrisk indvirkning. Systemets effektivitet blev prioriteret til 4, idet der skulle gives realtime feedback til brugeren. Den feedback der blev givet til patienten under en session var tilfredsstillende, idet der ikke blev observeret nogen mærkbar forsinkelse. Opdatering af behandlerens skærmbilleder, blev dog langsommere og langsommere jo mere data der blev tilføjet patientdata.xml-filen. Det vurderes at systemet tilnærmelses vis overholder denne prioriteringen, idet det er opfyldt for det mest kritiske i systemet, nemlig under behandlingssessionen. Sikkerheden blev prioiteret til 5 idet systemet under ingen omstændigheder må være til fare for systemet. Dette vurderes overholdt idet patienten ikke er galvanisk forbundet til lysnettet. Vurdering af brugergrænseflade Accepttesten bestod udover ovenstående vurdering også af en egentligt test af det færdigtudviklede system, BrainTrainer. BrainTrainer-systemet skulle testes udfra en brugers synspunkt, hvor der blev lagt vægt på brugergrænsefladen. Der blev testet for træning af alfa- samt SMR-aktivitet. Her blev der fundet en række afvigelser fra det forventede. I VisResultat bliver tærskelværdien ikke vist korrekt, hvis den er under 0,1. Under nogle af sessionerne skulle der trykke gentagne gange på “Start Feedback” i VisEEG-skærmbilledet, før Feedback-skærmbilledet blev kaldet. Endvidere blev systemet langsomt i forhold til indtastning og hentning af data senere i testen, hvor omfanget af opsamlet data voksede. Det blev fundet, at træning af alfa-aktivitet var væsentligt lettere end træning af SMR-aktivitet. Tærskelværdien for alfa-træning kunne sættes til 0,3, hvor den ved træning af SMR-aktivitet som maksimum blev sat til 0,07. Selvom tærskelværdien blev sat så meget lavere vedtræning af SMR-aktivitet, blev det vurderet, at det stadig var sværre at opnå positivt feedback i forhold til ved træning af alfa-aktivitet. Afvigelser og kommentarer En grund til, at microcontrolleren var ustabil under stresstesten, kunne være, at den under projektet er blevet flashet og resat for mange gange. Det vurderes, at dette problem evt. kan løses ved at udskifte microcontrolleren med en ny. Brugergrænseflade Grunden til, at VisResultat viste den forkerte tæskelværdi, når denne var sat til under 0,1, var, at der kun bliver gemt med 1 decimal i patientdata-filen. Denne fejl skal rettes men behøver ikke at blive testet yderligere. Det vurderes, at systemets opdateringshastighed blev svækket af, at alt data er samlet i én fil, da det øger tiden det tager for programmet at finde data væsentligt. En løsning til dette problem, kunne være at gemme hver de opsamlede sessionsdata i en fil, og kun gemme stien til den specifikke sessionsdata i XML-filen. Da den visuelle og auditive feedback, systemet giver, blev ikke observeret som forsinket. Derfor accepteres den forholdsvis langsomme opdateringshastighed. Denne udgave er fra d. 23. maj 2003 kl. 15.38 104 Test En af grundene til, at alfa-træning var væsentligt lettere end SMR-træning, er sandsynligvis, at alfaaktivitet fremkommer så snart, øjnene lukkes, hvorimod SMR-aktivitet kræver koncentration, men ikke intens koncentration, hvilket må vurderes som betydeligt sværere end at slappe af. Endvidere blev det fundet besværligt at koncentrere sig om barren, hvorfor der blev eksperimenteret med regnestykker og læsning, dog uden bedre resultater. Konklusion Eftersom BrainTrainer-systemet er en prototype, vurderes det, at accepttesten godkendes efter de beskrevne rettelser. Dog er der fundet gensstand for flere udvidelses- og optimeringsmuligheder i form af bl.a optimering af opdateringshastighed behandlerens brugerflade og udvidelse af den visuelle feedback. Denne udgave er fra d. 23. maj 2003 kl. 15.38 6 Konklusion Problemstillingen Der er igennem rapporten blevet redegjort for, hvilke behandlingsmetoder der i dag er tilgængelige. Det viser sig, at behandlingerne, der typisk anvendes idag, har begrænset virkning eller medfører væsentlige gener og bivirkninger. Neurofeedback er en ny behandlingsmetode, der i bl.a. USA vinder stadig større udbredelse i behandlingen mod flere mentale sygdomme heriblandt DAMP. I Danmark vurderes behandlingsmetoden dog stadig som eksperimentel men anvendes efter kendskab pt. af et firma, som rapporterer ligesom mange udenlandske undersøgelser om lovende resultater. Flere undersøgelser har prøvet at vurdere behandlingen via fremgang i f.eks. børnenes IQ før og efter behandlingen. Forældre og pårørende til DAMP-børn, som har undergået neurofeedbackbehandling, hævder også at have oplevet forbedringer. Generelt er der dog tale om meget små undersøgelespopulationer, endvidere nævnes placeboeffekt som en mulig årsag til børnenes fremskridt. Der kan også stilles spørgsmåltegn ved flere af de positive kilder, da disse er skrevet af personer, der har klare interesser i at promovere behandlingen. Projektets formål Formålet med projektet har jf. problemformuleringen [?] side 6, ikke været at afgøre, hvorvidt neurofeedback-behandling har en positiv effekt i behandlingen af DAMP, men at undersøge hvordan et neurofeedback-system kan realiseres. Produktet På baggrund af problemformuleringen, er der gennem projektet bleve konstrueret et neurofeedback-system kaldet BrainTrainer. Udviklingen er sket efter SPU-modellen, og der foreligger således dokumentation for analyse, krav, design og test for det endelige produkt. Vurdering af produkt I accepttestrapporten behandles flere problemer og direkte fejl, samt løsningerne til disse. konklusione på acceptesten var at Neurofeedback-systemet godkendes, såfrem den nævnte fejl blev rettet. Følgende er fejlen blevet rettet, og systemet godkendes derfor. Dette sker på trods af den langsomme opdatering af behandler-skærmbillederne og den ustabilitet microcontrolleren udviste under acceptesten, idet systemet anses for en prototype. Samlet konklussion Projektet har resulteret i udviklingen et neurofeedback systemet, kaldt BrainTrainer. Systemet blablabla.... 105 106 Konklusion Denne udgave er fra d. 23. maj 2003 kl. 15.38 Litteratur Adreasen, J. & Davidsen, M.-M. [1999], ‘Damp en brugbar diagnose’, Ugeskrift for Læger 20. Alhambra, M. A., Fowler, T. P. & Alhambra, A. A. [1995], ‘Eeg biofeedback: A new treatment option for add/adhd’, Journal of Neurotherapy . Belleggia, G. & Birbaumer, N. [2001], ‘Treatment of phantom limb pain with combined emg and thermal biofeedback: A case report’, TEST 26, 141–146. Biering-Sørensen, S., hansen, F. O., Klim, S. & Madsen, P. T. [2000], Håndbog ii Struktureret ProgramUdvikling, Teknisk forlag A/S, 87-571-1046-8. Biograph [2002], ‘Biograph 2.0’, http://www.biof.com/biograph20.html. Burke, D. P., Rawlings, L. & http://www.eegspectrum.com/Training/. Sharif, Y. N. [2000], ‘Eegspektrum’, BurrBrown-Corporation [1998], ‘Ina111 - high speed fet-input instrumentation amplifier’, Burr-Brown Corporation . Clarke, A. R., Barry, R. J., McCarthy, R. & Selikowitz, M. [1998], ‘Eeg analysis in adhd disorder: a comparative study of two subtypes’, Psychiatric Research 81, 19–29. Clarke, A. R., Barry, R. J., McCarthy, R. & Selikowitz, M. [2002], ‘Eeg differences between good and poor responders to methylphenidate and dexamphetamine in children with adhd’, Clinical Neurophysiological 113, 194–205. Collura, T. F. [2001], ‘The measurement, interpretation, and use of eeg frequency bands’, Brainmaster technologies . Consultants, M. P. [2001], ‘Treatment for add children’, http://www.mpccares.com/add.htm. DR-Online [1999], ‘En problematisk diagnose’, http://hpolweb.dr.dk/arkiv/perl/frame.pl/953285817/ /-www.dr.dk:80/harddisk/ddr/nyboern/damp/diagnos.htm. DR-Online [2000], ‘Hvor mange børn har damp’, http://hpolweb.dr.dk/arkiv/perl/frame.pl/953285817/www.dr.dk:80/ha Egner, T. & Gruzelier, J. H. [2001], ‘Learned self-regulation of eeg frequency components affects attention and eventrelated brain potentials in humans’, NeuroReport 12, 4155–4159. Ernst Niedermeyer, F. L. d. S. [1987], Electroencephalography, Urban & Schwarzenberg. 107 108 LITTERATUR Finn Ursin Knudsen, d. m. [2000], ‘Damp’, http://www.sundhed.dk/servlet/leksikonfactsheet?id=129. Fuchs, T., Birbaumer, N., Lutzenberger, W., Gruzelier, J. H. & Kaiser, J. [2003], ‘Neurofeedback treatment for adhd in children: A comparison with methylphenidate’, Applied psychophysiology ans biofeedback 28. Hoffmann, E. [2001], ‘Mental fitness- & forskningscenter aps, forskerbyen symbion, fruebjergvej 3, dk-2100 københavn Ø’. Hoffmann, E. [2002], ‘Neurofeedback-træning http://www.mentalfitness.dk/index.php?id=13. af damp-børn’, Hørder, K. [2003], ‘Hvad er damp’, www.netdoktor.dk/sygdomme/Fakta/damp.htm. Johnson, D. E., Johnson, J. R., Hilburn, J. L. & Scott, P. D. [1999], Electric Circuit Analysis, John Wiley and Sons, 0-471-36571-8. Karlsen, B. L. [2003], Systemudviklingsmetoder og analyse af krav. kompetenceprojektet om DAMP [2002], ‘Medicinsk behandling i udvikling’, DAMP-information 16, 2–5. Kosinski, R. J. [2003], ‘A literature http://biae.clemson.edu/bpc/bp/Lab/110/reaction.htm. review on reaction time’, Labs, N. S. [2001], ‘Nuamps’, http://www.neuro.com/neuroscan/nuamps.htm. Linden, M., Habib, T. & Radojevic, V. [1995], ‘A controlled study of the effects og eeg biofeedback on cognition and behavior of children with attention deficit disordres and learning disabilities’, Biofeedback and Self-Regulation 21, 35–50. Lubar, D. J. [2000], ‘Interview with dr. joel lubar’, http://www.bfe.org/joel.html. Lubar, J., Swartswood, M. O., Swartswood, J. N. & Timmermann, D. [1995], ‘Quantitavtive eeg and auditory eventrelated potentials in the evaluation of attention-dificit/hyperactivity disorder: Effects of methylphenidate ...’, Journal of psychoeducational assesments, ADHD special 0, 143–160. Mathworks [2001], Signal Processing Toolbox, for use with Matlab, The Mathworks Inc. Maxim [2002], Max3223 - rs232 transceiver with autoshutdown. Michael Cerna, A. F. H. [2000], ‘Teh fundamentals of fft-based signal analysis and measurement’, National-Instruments . Nielsen, K. D. [1992], Computer Assisted Sleep Analysis, Aalborg Universitet, 87-984421-0-4. OPL, C. F. F. [1995], Cyberlink manual, Cyberlink. Oppenheim, A. V. & schafer, R. W. [1999], Discrete-time signal processing, Prentice-Hall, 0-13083443-2. Ossebaard, H. C. [2000], ‘Stress reduction by technology? an experimental study into the effects of brainmachines on burnout and state anxiety’, Applied Psychophysiology and Biofeedback 25, 432. Denne udgave er fra d. 23. maj 2003 kl. 15.38 LITTERATUR 109 Pettersen, A.-H. & Hoffmann, E. [2002], ‘Hjernebølgetræning af damp-børn’, Psykolog-nyt 56, 3–9. Ph.D., R. A. B., Edwin H. Cook, Jr., M., Mina Dulcan, M., Susan Campbell, P. & Margot Prior, P. m. [2002], ‘Konsensusdokument om adhd’, http://www.damp.dk/html/konsensusdokument.htm. Playattention.com [1994], ‘Playattention’, http://www.playattention.com/. R. E. Challis, R. I. K. [1991], ‘Biomedical signal processing: Part 3 - the power spectrum and coherence function’, Medical & Biological Engineering & Computing 29, 225–241. Rau, H., Bührer, M. & Weitkunat, R. [2003], ‘Biofeedback of r-wave-to-pulse interval normalizes blood pressure’, Applied Psychophysiology and Biofeedback 28, 69. Ridder, N. K. [2000], ‘Brain-wave workout may help atttention troubles’, Knight Ridder newspapers 1. Robbins, J. [1997], ‘Biofeedback offers help to hyperactive www.eegspectrum.com/Articles/Articles/HelpToHyperactiveChildren. children’, Rossiter, T. R. & Vague, T. J. L. [1995], ‘A comparison of eeg biofeedback and psycostimulants in treating attention deficit/hyperactivity disorders’, Juornal of physiology 7. Safier, P. [1998], ‘Elixa peak being’, http://www.elixa.com/mental/ADD.htm. Schwartz, M. S. & Associates [1995], Biofeedback A Practitioners Guide, The Guilford Press. Sedra, A. S. & Smith, K. C. [1998], Microelectric circuits, Oxford University Press, 0-19-511690-9. Source, L. O. [2003], ‘An xml-toolkit for labview’, http://labxml.sourceforge.net/. Sørensen, K. [1999], ‘At give sit barn ritalin’, DAMP, Medlemsblad for DAMP-foreningen 1. ST [1998], Le00ab/c series - very low drop voltage regulators with inhibit. Technologies, A. [1998], Hcpl-270l - low input current high gain lvttl/lvcmos compatible 3.3v optocouplers. Texas-Instruments [1994], ‘Excalibur low-noise high-speed jfet-input quad operational amplifiers’. Texas-Instruments [1996], MSP430 C Compiler Programming Guide, IAR systems. Texas-Instruments [2001a], Msp430x13x, msp430x14x mixed signal microcontroller. Texas-Instruments [2001b], MSP430x1xx family - Users Guide, Texas-Instruments. Texas-Instruments [2002], ‘Low-noise, low-distortion instrumentation amplifier replacement for ssm2017’. ’Texas-Instruments’ [2003], Op Amps for Everyone, Thomas Kugelstadt, chapter 16. Uffenbeck, J. [2001], The 80x86 Family, Pearson Higher Education, 0130257117, chapter 10. Vander, A. & James Sherman, D. L. [2001], Human Physiology, Mc Graw Hill. Webster, J. G., Jr., J. W. C., Neuman, M. R., Jr., F. P. P., Webster, M. G. & Wheeler, L. A. [1998], Medical instrumentation - Application and Design, John Wiley & sons, INC. Denne udgave er fra d. 23. maj 2003 kl. 15.38 110 LITTERATUR Denne udgave er fra d. 23. maj 2003 kl. 15.38 A Eksperiment - EEG A.1 Eksperimentsprotokol til måling af EEG A.1.1 Formål Eksperimentet har til formål at belyse, hvilken elektrodeplacering på skalpen, der vil være mest optimal til registrering af SMR-aktivitet. Her ønskes det undersøgt, hvorvidt signalet skal aflæses monopolært eller bipolært. Derudover ønskes det undersøgt, hvorvidt SMR bedst aflæses frontalt, centralt eller parietalt. Endvidere skal det fastlægges, hvilke auditive og visuelle stimuli, der giver mest SMR-aktivitet. Formålet med forsøget er desuden at opnå erfaring med at opsamle EEG-signaler, og foretage den efterfølgende databehandling. Funktionaliteten i det endelige produkt, hvor stimuliet kun gives, når patienten opnår en bestemt mental tilstand, undersøges ikke i dette eksperiment. A.1.2 | | | | | | | | | | A.1.3 Apparatur ECI Electro-Cap Electrode System (Elektrodehætte efter 10-20 standarden) Digital EEG-forstærker (Nuamps [Labs 2001]) fra Neuro Scan Labs PC med SCAN 4.2 program til signalbehandling og opsamling Bærbar PC med Cyberlink-software installeret, samt feedback installeret (4 min 100Hz sinus, klassisk musikstykke, tegnefilm som ikke vækker dybe følelser) Et sæt høretelefoner Cyberlink (hovedbånd, manual og EEG-forstærker) Selvklæbende Ag/AgCl-elektroder Clip-elektrode (Ag/AgCl) til måling på øreflipper Quik GEl fra Neuro Medical Supplies til elektroder Sprøjte til gel Metode Undersøgelsen består i hovedtræk i at måle EEG fra en person, der bliver udsat for forskellige auditive og visuelle stimuli. Først forberedes forsøgspersonen ved at påmontere elektrodehætten: 111 112 | Eksperiment - EEG | Anbring elektrodehætten på forsøgspersonen. Det sikres, at hætten sidder godt fast uden at genere forsøgspersonen, jvf. manualen til elektrodehætten. Præparering (fjerne døde hudceller) af forsøgspersonens hovedbund ved de elektroder i elektrodehætten, hvor der skal afledes signaler, ved at skrabe hovedbunden med sprøjten igennem hullet i de pågældende elektroder. Der skal foretages monopolær afledning occipitalt (O1,O2), parietalt (C3,C4) og frontalt (F3,F4). Endvidere skal Cz anvendes som jord Fyld de førnævnte elektroder med Quik Gel | Rens øreflipperne med fil og rensevæske (indeholdende alkohol) | | Påsæt reference-elektrode på øreflipperne (A1 og A2) med de dertil egnede elektroder til linked-ear reference Tilslut kabler fra elektroderne til EEG-forstærkeren | Forbind EEG-forstærkeren til PC med SCAN 4.2 | | | SCAN 4.2 opsættes til EEG-afledning for de anvendte elektroder. Signalet fra Cz skal sættes som jord, og der skal vælges linked-ear reference. | Kontroller signalerne vha. impedanserne angivet i SCAN 4.2 ved at rense hovedbunden yderligere og evt. tilsætte mere Quik Gel. Samplingsfrekvensen skal i Scan 4.2 sættes til 500 Hz, og der skal benyttes et notch-filter til at filtrere 50 Hz støj, samt et lavpasfilter med en knækfrekvens ved 40 Hz. Efter at impedanserne for de afledte signaler er tilstrækkeligt lave (under 10kΩ), udføres følgende eksperimenter: Visuelt Feedback – Påmonter Cyberlink-hovedbåndet efter anvisninger i manualen – Tilslut hovedbåndet til Cyberlink-interface, og tilslut interface til den bærbare PC – Start Cyberlink-software og indstil programmet til en ny bruger og fortsæt til Display #1 (se Cyberlink manual) – Vælg Autoadjust og følg anvisningerne i programmet – Forsøgspersonen får nu besked om at forsøge at få SMR-aktiviteten, til at dominere ved lettere koncentration og forholde sig rolig (så få bevægelser som mulig). Forsøgspersonen tilskyndes at benytte informationen på skærmen til at kalibrere koncentrationensnivauet. Hvis f.eks. der registreres høj SMR-aktivitet skal personen prøve at forblive i denne mentale tilstand. Informationen består af ti barrer og et kontinuert signal. Forsøgspersonen skal søge at forøge barre nr. 7, da denne repræsentrerer frekvenser omkring 13,25Hz – Start med at optage signaler i SCAN 4.2 – Efter 5 minutter stoppes eksperimentet (der stoppes med at optage i SCAN 4.2), og Cyberlinkhovedbåndet afmonteres fra forsøgspersonen. Pause Forsøgspersonen holder nu 5 minutters pause, hvor det sikres, at samtlige signaler fra elektrodehætten stadig er anvendelige, hvis dette ikke er tilfældet, kalibreres de igen (tilfør evt. mere gel ved de pågældende elektroder). Næste eksperiment forberedes ved at placere den bærbare PC foran forsøgspersonen og klargøre software til afspilning af lyd. Denne udgave er fra d. 23. maj 2003 kl. 15.38 A.1 Eksperimentsprotokol til måling af EEG 113 Auditivt stimuli – Tilslut høretelefoner til den bærbare PC, og giv forsøgspersonen høretelefonerne på. – Forsøgspersonen får besked på at tælle langsomt ned fra 100, for derved at holde et let koncentrationsnivau. Fra forrige del af eksperimentet ved personen, hvilken mental aktivitet, der kræves for at generere SMR-aktivitet. Forsøgspersonen skal stadig forholde sig roligt. – Forsøgspersonen bedes finde et punkt at fiksere øjenen på, for at mindske EOK. – SCAN 4.2 sættes til at optage og gemme i en ny fil, tiden noteres – Efter 2 minutter får forsøgspersonen et auditivt stimuli i form af en 100Hz sinus svinging, forsøgspersonen skal så prøve at opretholde SMR-aktiviteten ved at koncentrere sig om stimuliet – Efter 5 minutter stoppes eksperimentet, optagning stoppes og tiden noteres, og forsøgspersonen holder pause i 3 minutter – Gentag eksperimentet, denne gang skal det auditive stimuli være i form af et stykke klassisk musik. Tiden skal igen noteres for start og stop, resultatet gemmes naturligvis i en ny fil. Pause Forsøgspersonen holder nu 5 minutters pause, hvor signalerne fra elektrodehætten igen kalibreres, hvis det er nødvendigt. Næste eksperiment forberedes ved at klargøre software til afspilning af tegnefilm. Den bærbare PC skal placeres et stykke fra forsøgspersonen, således øjets vinkelændring ved iagtagelse af skærmen bliver minimeret. Multimedia stimuli – Forsøgspersonen skal stadig bruge høretelefonerne og forholde sig rolig – Tegnefilmen startes uden lyd – Forsøgspersonen skal søge at generere SMR-aktivitet, ved at følge med i tegnefilmen – Optagning startes og tiden noteres – Efter 2 minutter sættes lyden til – Efter yderligere 5 minutter stoppes eksperimentet og tiden noteres. Dataanalyse Da MatLab 6.5 skal benyttes til at foretage analysen af resultaterne, er det nødvendigt med en speciel toolbox for at kunne importere og procesere forsøgsdata fra Scan 4.2. Forsøgsdata vil blive indlæst, således at der fås EEG-signalerne for F3, F4, C3, C4, O1, O2 samt F-bipolær, C-bipolær og O-bipolær, hvor f.eks. F-bipolær er F3 subtraheret F4. Hver af disse signaler skal indlæses for de fire forsøg. Hvert forsøg bliver også delt op således, at de første 100 sekunder og de sidste 100 sekunder analyseres selvstændigt. I alt giver dette 8 DFO-ratioer for hver elektrode og de tre bipolære. DFO-ratioerne udregnes ved først at beregne energispektret med en funktion i den medfølgende toolbox, der benytter Fast Fourier Transformation (FFT). Ved SMR er DFO 12-15 Hz, og ratioen udregnes ved at summere energispektret for 12-15 Hz og dividere med summationen af energispektret fra 0,5 Hz til 40 Hz. Resultatet vil bestå af en graf indeholdende DFO-ratioen for hver af elektroderne ved alle forsøgene, og desuden vil der blive konstrueret to yderligere grafer, hvor ratiogennemsnittet for hhv. elektroderne og forsøgene bliver vist. **Skrives noget mere om databehandling (KIM) Denne udgave er fra d. 23. maj 2003 kl. 15.38 114 A.1.4 Eksperiment - EEG Forventede resultater Visuelt feedback Det formodes, at personen vil være i stand til at frembringe SMR-bølger vha. den visuelle feedback. Dog vil der sansynligvis være en kort indlæringsperiode, hvor personen skal lære at udnytte den feedback, der gives. Som følge af det visuelle stimuli, kan støjen fra EOG muligvis gøre en detektering af SMR besværlig. Auditivt stimuli Personen vil sandsynligvis ikke være i stand til at generere en så konstant SMRaktivitet som ved visuelt feedback pga. den simple feedback. Efter påbegyndelse af de auditive stimuli forventes det, at de 100Hz vil være svært at koncentrere sig om, da det bliver monotont og uinteressant. Den klassiske musik er mere kompleks og vil sandsynligvis vedblive at være interessant, således at SMR-aktivitet kan registreres. Multimedia stimuli Det forventes, at personen vil kunne frembringe SMR-aktivitet ved at se filmen uden lyd. Når lyden sættes til, vil det sandsynligvist være nemmere at holde det fornødne koncentrationsniveau. Det er endvidere muligt, at filmen vækker følelser hos forsøgspersonen, især efter lyden er sat til. Hvis dette er tilfældet vil SMR-aktivitet sandsynligvis være erstattet af betaI-aktivitet eller theta-aktivitet afhængig af følelsen, der opleves (jvf. afsnit 1.3). Denne udgave er fra d. 23. maj 2003 kl. 15.38 A.1 Eksperimentsprotokol til måling af EEG A.1.5 115 Forsøgsresultater På figur A.1 er SMR-ratioerne ved de forskellige elektroder grupperet ved hvert forsøg. De 9 grafer repræsenterer således hver sin elektrode. Hvert forsøg er delt op i de første 100 sek. og de sidste 100 sek., hvilket giver 8 punkter på x-aksen, hvor SMR-ratioen er udregnet. ' ( & $% ! " # ý þý ÿ } ~ ¥ ¦ § ¡ ¢ £ ¤ ¡¢ ¨© ª « « © ¢ ¬ ®¯ ° ° ±° ² ³ ´ ° ±² µ ±¶ °·¸ ¹ º º ° ¸ ² » ) * + , - . Õ Å¼ Æ ½ ¾ ¿ À Á Â Ã Ä À Ç È¿ É Ê Ê Ç ¿ Ä Ë Ì Í Î Ï ÐÑ ÒÓ Ô ÒÖ ×ØÏ Ù Ú Ú ×Ï Ô Û Ü Ý Þ ß Ý à áâã ä å æ ç è Ý é ê ê ç Ý ë ì íõ î ï ð î ñ ò ó ô òö ÷øî ù ú ú ÷ î û ü Figur A.1: Grafen, der har SMR-ratio op af y-aksen og forsøgene hen ad x-aksen, viser SMRratioerne for de forskellige elektroder ved hvert forsøg. Denne udgave er fra d. 23. maj 2003 kl. 15.38 116 Eksperiment - EEG På figur A.2 er de gennemsnitlige SMR-ratioer for hver elektrode vist. Resultatet op af y-aksen er således et gennemsnit af alle forsøgene ved den pågældene elektrode. p o q l m l n i j i f g f c d c ` a ` ] ^ ] _ Z [ Z \ W X W o k h e ~ | } z{ b Y V / 0 1 2 3 4 5 6 7 r s t 8 u v 9 w x y : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U t Figur A.2: Grafen, der har SMR-ratio op af y-aksen og elektroder hen ad x-aksen, viser den gennemsnitlige SMR-ratio for den pågældende elektrode ved alle forsøg Denne udgave er fra d. 23. maj 2003 kl. 15.38 A.1 Eksperimentsprotokol til måling af EEG 117 På figur A.3 er de gennemsnitlige SMR-ratioer for hvert forsøg afbillet. Resultatet op af y-aksen er et gennemsnit af alle elektroderne ved det pågældene forsøg. » ¼ º ¸¹ ¶ · ´µ ¨ © ª £ £ ¥ £ « ¥ £ ¬ ¡ ¢ £ ¤ £ ¤ ¥ ® ¤ ¢ ¯ ° ¥ ¤ ± ² ° ¤ ³ « © ¦ ¡ ¢ £ ¤ £ ¤ ¥ ¦ ¨ © ª £ £ ¥ £ « £ ¡ ¢ £ ¥ ¤ £ ¤ ¥ ¦ ¬ ® ¤ ¢ ¯ ° ¡ ¢ £ ¤ £ ¤ ¥ ¦ ¥ ¤ ± § £ ¤ £ ¤ ¥ ¦ § £ ¤ ¤ £ ¥ ¦ § £ ¤ £ ¤ ¥ § ½ ¾ ¿ À Á ² ° ¤ ³ « © ¦ £ ¤ £ ¤ ¥ ¦  Figur A.3: Grafen, der har SMR-ratio op af y-aksen og forsøg hen ad x-aksen, viser den gennemsnitlige SMRratio for det pågældende forsøg ved alle elektroder A.1.6 Diskussion - Dataanalyse Formålet med forsøget var at undersøge, hvilken afledning, monopolær eller bipolær, der var mest optimal. Endvidere ønskedes det at undersøge, hvor på skalpen (F3,F4,C3,C4,O1,O2), der bedst kan afledes SMR-aktivitet, og endelig ønskedes det også at undersøge, hvilken type feedbackstimuli, der giver mest SMR-aktivitet. Med udgangspunkt i forsøgsresultaterne vil de tre spørgsmål blive diskuteret hver for sig. Monopolær vs. bipolær På figurerne A.1 og A.3 kan man se, at den bipolære afledning i SMR-ratio følger samme mønster som de monopolære elektroder, den bipolære er regnet ud fra. Det ses specielt udfra figur A.1, at f.eks. ratioen for O-bipolær følger O1 og O2, omend den er noget højere og udsvingene er knap så store. Med god tilnærmelse følger de andre bipolære afledninger samme mønster. Ud fra resultaterne ville en bipolær afledning give en roligere ratio og en anelse større. Problemet med bipolær afledning er dog, at det EEG-signal, der skal aflæses bliver meget lille i amplitude. Forskellen i at benytte monopolær eller bipolær afledning vurderes ikke til at være særlig stor. For at lave en afgrænsning vælges der at bruge monopolær afledning med linked-ear som reference. Denne udgave er fra d. 23. maj 2003 kl. 15.38 118 Eksperiment - EEG Placering af elektroderne På figur A.1 og A.3 kan elektrodeplaceringen vurderes. Elektrodeplaceringen kan vurderes kvantitativt og kvalitativt. Ved den kvantitative vurdering laves en sammenligning af SMR-ratioerne for de forskellige elektroder, og den elektrode med højeste ratio vurderes til at være bedst. Den kvalitative vurdering går på at vurdere om SMR-ratioerne stemmer overens med de forventede resultater. Den kvalitative vurdering er sværere, idet den bygger på nogle forventninger til resultater, som kan være forkerte. Kvantitativt O1, O2 og specielt O-bipolær er klart bedst kvantitativt, idet det ud fra figur A.1 og A.3, ses at SMR-ratioerne for disse ligger betydeligt højere end de andre elektroder. De occipitale elektroder er efterfulgt af F3, F4 samt Fb og de kvantitativt dårligste elektrodeplaceringer er C3, C4 og Cb. Kvalitativt Ved den kvalitative vurdering af elektrodeplaceringerne tages udgangspunkt i figur A.1. For at en elektrodeplacering kvalitativt skal være god skal den passe med de forventede resultater, hvilket betyder, at klassisk musik giver højere SMR-ratio end 100 Hz sinus, samt at cyberlink skulle være bedre, men overgås af tegnefilm med lyd. Derudover blev det forventet, at SMR-ratioen i starten af et forsøg skulle være lavere end ved slut, fordi der i starten af forsøgene gives mindre eller ingen stimuli samt, at der forventes en indlæringsperiode. For de occipitale afledninger falder samtlige forsøg fra start til slut, hvilket ikke er i overensstemmelse med forventningerne. Alligevel stiger ratioen op gennem forsøgene hvilket også var forventet, selvom der dog er temmelig store udsving. Kvalitativt er den occipitale afledning altså ikke optimal. For de frontale placeringer sker der med to undtagelse en lille stigning fra starten af forsøget til slutningen. Fra den første undersøgelse til den sidste sker der dog ikke nogen stigning. Ligesom den occipitale afledning er den frontale ikke kvalitativt optimal. Den centrale afledning stiger med en undtagelse i alle forsøgene fra start til slut og der sker en lille stigning fra start til slut. Af de 9 afledningspunkter, må de centrale altså konkluderes at være kvalitativt bedst, selvom forskellen ikke er stor. **Igen: skal der konkluderes og skrives hvad vi vælger Type af feedback til at fremme SMR-aktivitet Ud fra et kriterie om, at den feedbacktype, der giver størst SMR-ratio er bedst, betragtes figur A.3. På figuren ses det at forsøget med tegnefilm ligger en smule over forsøget med cyberlink. Med undtagelse af starten af klassisk musik ligger forsøgene med auditive stimuli lavere end cyberlink og tegnefilm. Der skal tages højde for at de occipitale afledninger med den høje SMR-ratio indvirker mere på figuren end de andre afledninger. Ved at lave figuren uden de occipitale afledninger fås dog i store træk den samme figur. Hvis typen af feedback skal vurderes udfra de forventede resultater, kan det ses at kun 100hz auditiv og tegnefilm stiger fra start til slut. Også her er tegnefilm altså at foretrække. Fejlkilder og usikkerheder Der kan ud fra forsøget ikke konkluderes direkte, hvilken type feedback eller placering der vil være bedst for DAMP-barnet, da der ikke er forsøgt med rigtig feedback, undtagen i forsøget med cyberlink. Derudover er forsøgspersonen voksen og lider ikke af DAMP. Da forsøget kun er udført med en person, skal der tages forbehold for forsøgsresultaterne, og resultaterne bruges som vejledning og ikke som retningslinier for designet af feedbacksystemet. Da frekvensområder for hjerneaktiviteter er forskelligt fra person til person er det heller ikke sikkert, at Denne udgave er fra d. 23. maj 2003 kl. 15.38 A.1 Eksperimentsprotokol til måling af EEG 119 SMR-aktiviteten, som i dette forsøg er fastlagt til 12-15 hz, passer på forsøgspersonen. Endvidere er det muligt at systemet har været påvirket af støj som EOG, hvilket nok ikke har haft den store indvirkning på resultaterne, da der blev brugt professionelt udstyr til forsøgene. Konklusion Dette forsøgs formål var at undersøge, hvilken elektrodeplacering der var bedst ved designet af et neurofeedbacksystem, herunder om der var forskel i monopolær og bipolær afledning. Derudover blev det undersøgt hvilken feedback, der var mest optimal. Forskellen på monopolær og bipolær blev vurderet til begrænset, omend bipolær havde generelt højere SMR-ratio og knap så store udsving fra forsøg til forsøg. Afledningspunkter occipitalt blev vurderet til at være kvantitativt bedst, idet de havde højeste SMRratio, hvorimod de centrale afledningspunkter var dårligst i den forbindelse. Ved den kvalitative vurdering af elektrodeplacering, hvor resultaterne blev vurderet i forhold til de forventede resultater, viste de centrale afledningspunkter at være bedst, mens de occipitale var dårligst. Generelt skal resultaterne fra forsøget tages med største forbehold, idet resultaterne kun stammer fra en person, samt at denne person hverken lider af DAMP eller er et barn. Denne udgave er fra d. 23. maj 2003 kl. 15.38 120 Eksperiment - EEG Denne udgave er fra d. 23. maj 2003 kl. 15.38 B Anatomi og Fysiologi I dette kapitel gennemgås den nødvendige viden om hjernen og hjernesignaler, til brug i projektet. Der fokuseres på hjernens anatomi, og hvorledes EEG-signaler opstår ved neuroners aktivitet i hjernen. Ved brug af latinske betegnelser, vil der i fodnoter være tilføjet enten en oversættelse eller en dansk betegnelse. B.1 Hjernens anatomi Hjernen er en del af centralnervesystemet, som består af hjernen og medulla spinalis1 i rygsøjlen. Hjernen modtager og sender signaler via nerver, som strækker sig rundt i hele kroppen. Selve behandlingen af signalerne foregår i nerveceller kaldet neuroner. Hjernen ligger i kraniet, som tjener til at bekytte hjernen mod slag og andre fysiske skader. Inde i kraniet er hjernen omsluttet af en hjernehinde, meninges, som også tjener til at beskytte og fiksere hjernen. Hjernen ligger i en væske kaldet den cerebrospinale væske, som i sammensætning minder om blodplasma. Sammen med fire ventrikler i hjernen, som også er fyldt med cerebrospinalvæske, opretholder hjernen homeostase og er beskyttet yderligere mod fysiske belastninger mod kraniet, da kraften af et eventuelt slag mod hovedet vil forplante sig i hele hjernen, og derved undgås at et specifikt område ikke bliver udsat for stor belastning. Figur B.1: Oversigt over hjerne lapper 1 lat. medulla spinalis - rygmarven 121 122 Anatomi og Fysiologi For at beskytte hjernen mod skadelige stoffer er der en speciel blod-hjerne-barriere, som opretholdes af nogle celler kaldet astrocytter. Disse astrocytter bestemmer hvilke stoffer, der får adgang til hjernen således at potentielt skadelige stoffer ikke kommer i kontakt med hjernen. Visse områder af hjernen har dog direkte adgang til blodet, da det er nødvendigt at måle temperatur, pH, blodsukkerniveau med mere. Den største hjernedel kaldes cerebrum og er opdelt i to hemisfærer en venstre og en højre. Anatomisk set er der ingen forskel på venstre og højre hjernehalvdel, men funktionsmæssigt varetager hver del specifikke opgaver. Cerebrum består af to lag. Det øverste lag kaldes den cerebrale cortex eller hjernebarken, og det er her neuronerne ligger arrangeret. Cortex er to til fire millimeter tyk, og nedenunder dette lag er et hvidt lag, som består af neuroglia, celler der opretholder de forskellige forhold i hjernen samt dendriter og axoner, som er nervetråde, der udgår fra neuroner. Cerebrum har foldninger, som gør at overfladearealet bliver tre gange så stort, hvilket yderligere betyder, at der er et større cortex-areal og plads til flere neuroner. Udover foldningerne er der også sprækker som adskiller forskellige dele af cerebrum. Den longitudinale sprække adskiller således venstre og højre hemisfære, mens nogle mindre sprækker adskiller de enkelte dele af cerebrum. Cerebrum er delt op i fire hovedområder: den frontale, parietale, occipitale og temporale. Strukturenes placering kan ses på figur B.1 og strukturenes funktion fremgår af tabel 2. Struktur Frontal lap Parietal lap Temporal lap Occipetal lap Cerebellum Funktion Frivillig kontrol af skeletmuskulatur, personlighed, planlægning, verbalt kommunikation. Kropslig sensorisk fortolkning, fortolkning af tekstur og form, forståelse af tale. Tolkning af auditivt sensorisk fortolkning, hukommelse af visuel og auditive oplevelser Visuelt sensorisk fortolkning Balance og motor koordinering Tabel B.1: B.2 Oprindelsen af Electroencephalogram Afledte potentialer fra hjernen betegnes electroenchalogram (EEG). Det er primært neuronerne i cortex, der står for de mere advancerede mentale aktiviteter, som tænkning og planlægning af fine bevægelser. Synapser Neuronerne kommuniker internt ved hjælp af dendritter og axoner. Dendritterne fører information (i form af et aktionspotentiale) mod neuronets soma2 , hvorimod axoner leder information væk fra soma, og kan hæfte på og innervere andre neuroner, dendritter, muskler mm.. I koblingen mellem axonet og det de innerverer, findes synapserne. Et eventuelt aktionspotentiale vil ved synapserne overføres kemisk fra det presynaptiske axon til den postsynaptiske cellekrop/dendrit. Ofte hæfter synapser fra flere hundrede axoner til samme postsynaptiske struktur, heraf virker nogen excitatorisk 2 gr. soma - legeme Denne udgave er fra d. 23. maj 2003 kl. 15.38 B.2 Oprindelsen af Electroencephalogram 123 og andre inhibitorisk. Summen af de presynaptiske axoners påvirkning af det postsynaptiske neuron bestemmer det postsynaptiske neurons membranpotentiale, og dermed hvorvidt dette når over tærskelværdien, så et aktionspotential udløses.[Vander & James Sherman 2001] Neuroner Der findes mange typer af neuroner i hjernen, de kan dog inddeles i 2 hovedgrupper, pyramidale celler og stellate celler. Pyramidale cellerne er langt de største, og er kendetegnet ved (se fig. B.2): Der findes typisk en stor dendrit stigende op fra apeks3 af somaet. Dendritten kan blive op til 2mm lang, og har ofte har udgreninger, der først slutter i det yderste lag af cortex. I det transverse plan ud fra somaet, findes et netværk af dendritter. Inferior for soma findes axonet, der f. eks. kan være forbundet til medulla spinalis, cerebellum4 eller andre områder af cortex. De stellate celler har mindre cellesomier og udsender dendritter i alle retninger, endvidere kan axonet udspringe fra en stor dendrit og deler sig typisk mange gange, før den hæfter på proximalt dendritter, cellesomi eller helt forlader cortex.[Webster et al. 1998] Figur B.2: Skematisk afbilledning af Pyramidalneuron fra cortex.[Webster et al. 1998] EEG Det er muligt aflede EEG-signalet på forskellig vis, men den mest ukomplicerede måde er non-inversivt med overflade elektroder fikseret på skalpen. Det der registreres af elektroden er det resulterende potentiale fra et større eller mindre område af den underliggende cortex, afhængig af hvilken elektrodeforbindelse der benyttes. Det resulterende potentiale, fremkommer hovedsagelig pga. den postsynapsiske stimulation af pyramidalcellernes dendritter. De enkelte pyramidalceller fungerer som en dipol, som er positiv ved soma og negativ posterior på det apicale dendrittræ (se fig. B.2 ). Når dendritterne i det apicale dendrittræ stimuleres, uden at overskride tærskelværdien (se eks. på figur B.3), 3 lat. 4 lat. apex - spids cerebellum - lillehjernen Denne udgave er fra d. 23. maj 2003 kl. 15.38 124 Anatomi og Fysiologi ændres potentialet i det apicale dendrit træ. Hvis dendritterne stimuleres excitatorisk vil der løbe en lille strøm, som det ses på figur (B.2) gennem dendritterne ned til cellesomaet, og tilbage igen gennem den extracellulære matrix. Depolariseringen eller hyperpolariseringen af et enkelt pyramidal neuron bidrager dog ikke tilstrækkeligt til at det kan registreres på skalpen. EEG-signalet fremkommer ved at flere neuroner i samme corticale område synkront ændrer potentiale, amplituden af EEG-signalet er således et udtryk for, hvor mange synkroniserede neuroner der er. Formatio reticularis5 , der er lokaliseret i hjernestammen, formodes at have en stor del af skylden for de rytmiske potential-ændringer det afledte signal typisk består af. Endvidere formodes det, at interne forbindelser mellem neuronerne gør den synkroniserede ændring af membranpotentialet muligt.[Webster et al. 1998] Figur B.3: Membranpotientialet ved excitatorisk og inhibitorisk stimulering [Vander & James Sherman 2001] De enkelte neuroners ledning af aktionspotentialer (fyringer), bidrager ikke væsentligt til det afledte EEG-signal, da neuronerne fyrer asynkront. Endvidere ledes aktionspotentialet i mange forskellige retninger samtidigt, således at bidraget til det resulterende potentiale, der registreres et stykke derfra, bliver meget begrænset. På grund af de stellate cellers relative lille udbredning og deres mere randomiserede organisering, bidrager deres elektriske aktivitet meget lidt til det resulterende potentiale, der måles på skalpen.[Webster et al. 1998] 5 lat. formatio - dannelse + lat. reticlatus - netformet. System af neuroner og nervetråde i hjernestammen Denne udgave er fra d. 23. maj 2003 kl. 15.38 I Testdokumentation EEG-afledning Dette afsnit omhandler test af det analoge interface, som består af en instrumenteringsforstærker med et højpasfilter, et 2. ordens lavpasfilter samt en summerende forstærker. Der vil for hvert modul og for integrationstesten blive beskrevet, jf. SPU, formål, referencer, godkendelseskriterier, testedesign, testudførelsen og tilsidst testrapporten med resultater og diskussion. Alle testene begrænset af omfanget i det der ikke bliver brugt spidsbelastninger i form at spænding og tid. Til alle testene blev følgende udstyr benyttet: | Signalgenerator (Institut 8, CNNR 33934) | Oscilloskop (Institut 8, CNNR 33934) | 2 stk. 9V batterier (Alkaline No. 8022 9V) | Projektboard (Sundhedsteknologi, Board nr. 5) | Multimeter (Institut 8, CNNR 33934) De steder, hvor der nævnes specifikke pins og moduler, henvises altid til figur 3.3 side 43. I.1 Modultest - EEG-afledningsenhed I.1.1 Testspecifikation - Instrumenteringsforstærker Indledning Formål Formålet med testen er at se, hvorvidt instrumenteringsforstærkeren INA217 forstærker som forventet, og om input på den negative indgang (vn ) inverteres. Der testes desuden, om Common Mode Rejection Ratio (CMRR) er som ønsket. Der inkluderes også en test af højpasfilteret, som er implementeret i instrumenteringsforstærkeren. Referencer Testspecifikationerne er udarbejdet jf. design afsnit 3.1 side 35. 1 2 Testdokumentation - EEG-afledning Godkendelseskriterier Testen godkendes såfremt, instrumenteringsforstærkeren ikke har mere end 10 % afvigelse fra det forventede. Inverteringen skal være uden fejl, og CMRR-værdien skal indenfor apparaturets grænser ikke være målbar. Testemner Testemnerne er instrumenteringsforstærkeren INA217, og om input på den negative indgang invertes. Derudover er det CMRR og højpasfilteret i INA217. Testdesign Testen designes ved at sætte en meget lav spænding på instrumenteringsforstærkeren og med et oscilloskop undersøge, om denne forstærker som forventet ved de 10 trin. For at teste, om input bliver inverteret på en negativ indgang, forbindes den positive indgang til jord. Testen af CMRR bliver udført ved at måle ændringerne, når der bliver sendt samme signal ind på begge indgange af instrumenteringsforstærkeren. Testudførelse Instrumenteringsforstærkerens v p sættes til signalgeneratoren. REF og vn sættes til jord og outputtet måles fra v(forforstærker) via et oscilloskop. Forstærkeren forsynes med VCC p (9V) og VCCn (9V). For at sænke inputspændingen til et så lavt niveau, at forstærkerene ikke går i mætning, benyttes en 1/100 spændingsdeling mellem instrumenteringsforstærkeren og signalgeneratoren, da denne ikke kan generere signaler under 50mV, det bliver derved muligt at nå helt ned ned på 1mV peak-to-peak Der sendes konstant et 40Hz signal fra signalgeneratoren, mens inputamplituden og forstærkningstrinnet på instrumenteringsforstærkeren varieres. Input og output noteres ved hvert forstærkningsniveau. Test af invertering på negativ indgang foretages ved at sende signal ind på den negative indgang, mens positiv indgang er sat til jord. En CMRR-test bliver udført ved at sende det samme signal ind på vn og v p af instrumenteringsforstærkerens indgange og måle output. Testrapport - Instrumenteringsforstærker Indledning Testen blev udført den d. 24 marts. Denne udgave er fra d. 23. maj 2003 kl. 15.38 I.1 Modultest - EEG-afledningsenhed 3 Testresultater Tabel I.1 viser resultater fra test sammen med de forventede resultater. Derudover vises resultaternes afvigelse fra det forventede. Inputsignalets amplitude varierer, som det ses i tabellen, men frekvensen holdes konstant på 40Hz. Niveau Input [mV] Output [V] 1 2 3 4 5 6 7 8 9 10 68,4 28,4 28,4 29,3 16,1 17,1 17,0 17,0 16,0 9,1 6,81 5,70 8,50 11,32 5,88 7,25 8,70 9,60 11,45 7,50 Forstærkning [dB] 40,0 46,1 49,5 51,7 51,3 52,3 54,2 55,0 57,1 58,3 Forventet forstærkning [dB] 40,0 46,0 49,5 52,0 54,0 55,6 56,9 58,1 59,1 60,0 Afvigelse [%] 0,0 -0,1 0,0 0,6 5,3 5,7 5,0 5,5 3,5 2,9 Tabel I.1: Resultat af niveautest. Inputsignalets frekvens er 40Hz gennem hele testen Endvidere er det verificeret, at den negative indgang inverterer. Resultat af CMRR-test viste, at der kun kom højfrekvent støj med frekvenser på omkring 25MHz og en peak-to-peak på 15mV, uafhængigt af forstærkningstrin. Afvigelser og kommentarer Det ses, at der opstår en del unøjagtighed fra trin 5 og frem. Dette skyldes muligvis, at inputtet mindskes ca. 10mV, hvilket medfører, at en lille unøjagtighed får en større betydning. Den maksimale afvigelse er på 5,7%, hvilket er acceptabelt, hvis man tager forholdene i betragtning. Det er meget lave spændinger omkring apparaturenes grænseværdier, der benyttes ved testen, hvilket gør aflæsningen mere usikker. 50Hz støj har desuden en større effekt, når der arbejdes med lave spændinger. Inverteringen sker som forventet. Resultatet for CMRR viser, at denne er stor, idet det ikke er muligt at registrere inputsignalet fra signalgeneratoren. Konklusion Det konkluderes herved, at instrumenteringsforstærkeren har opfyldt godkendelseskriterierne. I.1.2 Testspecifikation - Højpasfilter Indledning Formål Formålet med testen er at afgøre, om højpasfiltret har den ønskede knækfrekvens. Denne udgave er fra d. 23. maj 2003 kl. 15.38 4 Testdokumentation - EEG-afledning Referencer Testen er udarbejdet på baggrund af moduldesign jf. afsnit 3.1. Godkendelseskriterier Testen er godkendt, når afvigelsen ikke er mere end 10 % i forhold til det forventede. Testemner Testemnet for denne test er højpasfilterets knækfrekvens. Testdesign Højpasfilterets knækfrekvens undersøges ved at variere inputfrekvensen og notere outputfrekvensen. In- og output værdierne skal derefter sammenlignes med de teoretiske værdier for filtret. Testudførelse Instrumenteringsforstærkeren indstilles til niveau 1 (40dB) ved hjælp af den tilhørende switch. Der testes med samme opstilling som ved test af instrumenteringsforstærkeren afsnit I.1.1. Højpasfiltret undersøges i frekvensområdet fra 0,1Hz til 50Hz i passende intervaller på den logaritmiske akse. Inputog outputspændinger aflæses på oscilloskop. I.1.3 Testrapport - Højpasfilter Indledning Testen blev udført den 24 marts. Testresultater Resultaterne fra test af højpasfilter vises på tabel I.2. Til beregning af forventede værdier er formel 3.6 side 39 blevet anvendt. INA217-forstærkeren er sat til laveste forstærkning dvs. 100 svarende til 40dB. Denne udgave er fra d. 23. maj 2003 kl. 15.38 I.1 Modultest - EEG-afledningsenhed Frekvens [Hz] 0,1 0,2 0,3 0,4 0,5 0,6 0,7 1 2 4 10 50 Input [mV] 67,1 67,4 67,0 67,2 67,1 67,0 67,2 67,3 67,5 67,9 67,3 67,7 Output [V] 1,363 2,557 3,88 4,60 5,13 5,47 5,81 6,22 6,80 6,90 6,94 6,85 5 Forstærkning [dB] 26,2 31,6 35,3 36,7 37,7 38,2 38,7 39,3 40,1 40,1 40,3 40,1 Forventet forstærkning [dB] 25,9 31,4 34,2 35,9 37,0 37,7 38,2 39,0 39,7 39,9 40,0 40,0 Afvigelse [%] 1,2 0,6 3,0 2,2 1,8 1,4 1,4 0,7 0,8 0,5 0,7 0,3 Tabel I.2: Resultat af højpasfilter-test. 0 Magnitude [dB] −5 −10 −15 −1 10 0 1 10 10 Frekvens [Hz] Figur I.1: Bodeplot af højpasfiltrets overføringsfunktion samt punkter fra test. Testresultater og afvigelser Som det ses på figur I.1, er der god overensstemmelse mellem det teoretiske og det målte. I tabel I.2 ses det, at den største afvigelse er på 3,0 %. Denne udgave er fra d. 23. maj 2003 kl. 15.38 6 Testdokumentation - EEG-afledning Konklusion Da afvigelserne ifølge testspecifikationerne skal være under 10 %, for at modulet kan godkendes, konkluderes det, at modulet fungerer korrekt. I.1.4 Testspecifikation - Lavpasfilter Indledning Formål Formålet med denne test er at afgøre, om Sallen-Key lavpasfiltret har den ønskede knækfrekvens, og om det dæmper som forventet. Referencer Testen er udarbejdet på baggrund af moduldesign afsnittet 3.1. Godkendelseskriterier Testen er godkendt når afvigelsen er lavere end 10 %. Testemner Testemnet for denne test er lavpasfilterets knækfrekvens og dennes dæmpning. Testdesign Som ved testen af højpasfilteret undersøge, ved varierende inputfrekvensen og notere output frekvensen. Testudførelse à à Filtrets forstærker forsynes med VCC p 9V og VCCn 9V . Udgangen v(filter) forbindes til oscilloskopet ved hjælp af en probe. På R1 tilsluttes signalgeneratoren og på R3 og C1 tilsluttes jord. Fra signalgeneratoren genereres signaler med frekvenser i spektret 1Hz - 1000Hz. Der anvendes en peak-to-peak spænding på ca. 203mV, da forstærkningen i det aktive filter er på op til 50 gange. Ä I.1.5 Ä Testrapport - Lavpasfilter Indledning Testen blev gennemført d. 24 marts 2003. Denne udgave er fra d. 23. maj 2003 kl. 15.38 I.1 Modultest - EEG-afledningsenhed 7 Testresultater Resultaterne fra testen kan ses på tabel I.3, hvor der sendes et signal ind med en konstant peak-to-peak spænding på 203mV. Input [Hz] Output [V] Forstærkning [dB] 1,0 20 30 40 50 80 150 300 400 1000 9,25 9,00 7,82 6,19 4,69 2,08 0,65 0,17 0,10 0,02 33,2dB 32,9dB 31,7dB 29,7dB 27,3dB 20,3dB 10,8dB -0,1dB -6,1dB -20,13dB Forventet forstærkning [dB] 34 32,0 30,1 28,0 25,8 20,0 10,4 -1,2 -6,1 -22,0 Afvigelse [%] 2,4 2,8 5,3 6,1 5,8 1,5 3,8 91,7 0,0 8,5 Tabel I.3: Resultat af lavpasfilter-test. Inputsignalet har en konstant peak-to-peak amplitude på 203mV Resultaterne for lavpasfilteret er plottet sammen med et bodeplot lavet ud fra formel 3.15 side 41: 30 Magnitude [dB] 20 10 0 −10 −20 0 10 1 2 10 10 3 10 Frekvens [Hz] Figur I.2: Bodeplot ud fra lavpasfiltrets overføringsfunktion samt punkter fra test. Denne udgave er fra d. 23. maj 2003 kl. 15.38 8 Testdokumentation - EEG-afledning Afvigelser og kommentarer Det ses på figur I.2, at der er en lille afvigelse over hele spektret. Der er en stor afvigelse på ca 92% ved 300Hz, hvilket skyldes, at værdierne ligger tæt på 0dB, således at den relative afvigelse bliver meget stor. Den gennemsnitlige afvigelse ligger på 4,2%, hvis der ses bort fra målingen ved 300Hz, hvilket vurderes som acceptabel, idet der må forventes en vis unøjagtighed grundet de lave spændinger, der måles på. Konklusion Det konkluderes, at lavpasfilteret fungerer som ønsket, trods den enkelte afvigelse på 92%. I.2 Integrationstest - EEG-afledning Apparatur og opbygning er det samme som for modultesten af EEG-afledningen jf. afsnit I. I.2.1 Testspecifikation - Forstærkningstrin og amplitude-karakteristik Indledning Formål Formålet med testen er at bestemme, om ovenstående moduler virker sammen som forventet uden signifikante afvigelser. Referencer Testspecifikationerne er udarbejdet på baggrund af afsnit 3.1). Godkendelseskriterier Testen er godkendt, når der ikke måles afvigelser på mere end 10 %. Testemner Testemnerne er forstærkningstrin og amplitude-karakterstikken. Testdesign Testen er lavet som en big-bang test, da det vurderes at antallet af moduler tillader dette. For at teste forstærkningstrinnene sendes et signal ind med en frekvens der ligger langt fra filtrenes knækfrekvenser, og forstærkningstrinnet ændres og output måles. For at se amplitude-karakterstikken fastsættes forstærkningstrinnet, og inputfrekvenserne varieres så et tilfredsstillende spektrum bliver undersøgt. Outputfrekvenserne noteres og sammenlignes med det teoretiske. Denne udgave er fra d. 23. maj 2003 kl. 15.38 I.2 Integrationstest - EEG-afledning 9 Testudførelse Hvert modul forbindes som vist på figur 3.3 side 43. Først sendes et konstant 10Hz, 100µV signal ind på instrumenteringsforstærkerens positive indgang, og der skiftes forstærkningsniveau. 10Hz ligger langt væk fra filtrenes knækfrekvenser på 0,5Hz og 40Hz på den logaritmiske frekvensakse, og derved opnås en lav påvirkning fra filtrene. Der benyttes en peak-to-peak inputspænding på 100µV, for at systemet ikke skal gå i mætning. Outputtet aflæses fra den summerende forstærkers udgang(v a f ledning via oscilloskopet. Dernæst sendes et signal ind på v p med frekvenser i spektret 0,1Hz - 1000Hz for at dække begge filtres knækfrekvenser. Outputtet måles fra den summerende forstærkers udgang via oscilloskopet. Til sidst foretages en test af offset. Alle inputs til instrumenteringsforstærkeren sættes til jord, således at der intet inputsignal er. Herefter måles outputspændingen på den summerende forstærkers udgang ved hjælp af et multimeter. Ä Å Æ I.2.2 Testrapport - Forstærkningstrin & amplitude-karakteristik Indledning Testen blev udført den 27. marts 2003. Testresultater Tabel I.4 viser resultaterne fra niveautest, hvor der sendes et konstant 10Hz og 0,10mV sinussignal ind. Trin Output [V] Forstærkning [dB] 1 2 3 4 5 6 7 8 9 10 0,53 1,00 1,75 2,34 2,90 3,44 3,88 4,50 4,90 5,41 74,5 80,0 84,9 87,4 89,2 90,7 91,8 93,0 93,8 94,7 Forventet forstærkning [dB] 74,0 80,0 83,5 86,0 88,0 89,5 90,9 92,0 93,0 94,0 Afvigelse [%] 0,7 0,0 1,7 1,6 1,4 1,3 1,0 1,1 0,9 0,7 Tabel I.4: Resultat fra test af EEG-afledningskredsløbets forstærkningstrin Denne udgave er fra d. 23. maj 2003 kl. 15.38 10 Testdokumentation - EEG-afledning Frekvens [Hz] Input [mV] Output [mV] 0,10 0,20 0,30 0,40 0,50 0,60 1,00 2,00 10,00 20,00 30,00 35,00 40,00 45,00 60,00 100,00 200,00 400,00 1000,00 0,1012 0,101 0,1018 0,1012 0,1012 0,1012 0,1012 0,1012 0,1012 0,1012 0,1012 0,1012 0,1012 0,1012 0,1012 0,1012 0,1012 0,1012 0,1014 100 200 250 320 380 410 450 500 500 500 420 380 316 278 200 100 43,8 28,1 28,1 Forstærkning [dB] 59,9 65,9 67,8 70,0 71,5 72,2 73,0 73,9 73,9 73,9 72,4 71,5 69,9 68,8 65,9 59,9 52,7 48,9 48,9 Forventet forstærkning [dB] 59,8 65,4 68,2 69,9 71,0 71,7 73,0 73,7 73,9 73,6 72,6 71,7 70,7 69,6 68,4 57,9 46,0 34,0 18,1 Afvigelse [%] -0,1 0,9 -0,6 0,2 0,7 0,6 -0,1 0,2 -0,1 0,4 -0,3 -0,3 -1,2 -1,1 -3,6 3,5 14,7 43,9 170,6 Tabel I.5: Resultat af Amplitude-karakteristik-test af EEG-afledningen. ã ä á â ß à ô ñòó ð î ï Ý ì Þ í ë é ê ç å è æ Û Ü Ù × Ú Ø Ç È É Ê Ë Ì Í Î õ ö ÷ ø ù ú û ü ý þ Ï Ð Ñ Ò Ó Ô Õ Ö ÿ Figur I.3: Den teoretiske amplitude- karakteristik er illustreret af linjen, og værdierne målt under testen er illustreret med plus. Denne udgave er fra d. 23. maj 2003 kl. 15.38 I.2 Integrationstest - EEG-afledning 11 De forventede resultater er beregnet ud fra hele systemets overføringsfunktion (I.1), der er lavet ud fra overføringsfunktionen for forforstærkeren og lavpasfiltret: H s Ã Ä s2 315 656 550 s 366 s 63 131 (I.1) Afvigelser og kommentarer Af resultaterne i tabel I.4 ses det, at de målte værdier stemmer godt overens med de forventede værdier. Afvigelserne ligger alle under 1,7%, hvilket vurderes at være acceptabelt. Tabel I.5 viser resultater fra test med forskellige frekvenser ved konstant forstærkerniveau på trin 1. Endvidere viser figur I.3 amplitudekarakteristik for det samlede system, samt de under testen målte værdier. Imellem 0,1Hz og 200Hz passer de forventede resultater og de målte resultater godt overens. Ved de højere frekvenser er der en stor afvigelse fra det forventede. Afvigelsen skyldes i dette tilfælde, at støj fra f.eks lysnettet har en stor indvirkning på amplituden af det målte signal, idet amplituden af output er meget lille. Generelt er afvigelsen mellem forventet og målt resultat så lavt, at det må regnes som acceptabelt. Resultatet af offsettest blev 1,61V, altså en afvigelse på 0,04V fra det ønskede 3 23V 1 65V , hvilket vurderes at være acceptabelt. Konklusion Samlet set konkluderes det, at forstærkningstrin og amplitudekarakterstikken for de samlede moduler opfylder godkendelseskriterierne. I.2.3 Testspecifikation Støjforhold Indledning Formål Formålet med testen er at undersøge, hvor meget støj interfacet med tilsluttede elektroder opsamler eller selv genererer. Referencer Testen er udarbejdet på baggrund af designafsnit 3.1. Godkendelseskriterier Testen godkendes, når støjen ikke har en signifikant indflydelse på den målte EEG. Denne udgave er fra d. 23. maj 2003 kl. 15.38 12 Testdokumentation - EEG-afledning Testemner Testemnet for denne test er støjpåvirkningen af hele EEG-afledningsenheden med tilsluttede elektroder. Testdesign Testen designes som en big-bang test som ovenstående, hvor elektrodehætten også bliver brugt. Der gives et input, der ligger amplitude- og frekvensmæssigt i EEG-området. Efterfølgende analyseres outputsignalet, og det vurderes, om det forstærkede inputsignal (der er ledt gennem kredsløbet) kan skelnes fra evt. støj. Testudførelse Støjforholdene undersøges ved, at der sendes et sinussignal med en frekvens på 10Hz og peak-to-peak spænding på 100µV, ind på C3 elektroden i elektrodehætten. Imens er klipselektroderne forbundet til ørene(A1 og A2), og Cz er forbundet til jord. For at opnå den lave inputspænding anvendes en 1/1000 spændingsdeling, og signalgeneratoren indstilles til en amplitude på 50mV, amplituden verificeres på oscilloskopet. Outputtet af EEGafledningsenheden registreres og gemmes med et oscilloskop. Testen udføres for det laveste og det højeste forstærkningstrin. Oscilloskopet kan gemme maks. 2000 datapunkter ad gangen. I den efterfølgende frekvensanalyse ønskes en frekvensopløsning på 0,5Hz, de 2000 punkter skal derfor tages fra et minimum 2s. interval. Det vil derved være muligt at undersøge støjen i DC-500Hz området(Da fs 1000Hz). Evt. andet højfrekvent støj skal undersøges direkte på oscilloskopet. I.2.4 Testrapport - Støjforhold Indledning Testen blev udført den 27. marts 2003. Denne udgave er fra d. 23. maj 2003 kl. 15.38 I.2 Integrationstest - EEG-afledning 13 Testresultater På figur I.4 ses outputsignalet fra højeste forstærkningstrin afbilledet i tidsdomænet og i frekvensdomænet. < >= ? @ A = B = C * ) ; ( 9: 67 58 ' 45 1 23 & % #$ + ,- . / 0 ! " EF GH IJ KL MNN OPQ m no p q o r s t u v w RST UVW XYZ [\\ j kl g y d }~ {z | a x yz ^ hg i ed f ba c _^ ` ]D Figur I.4: Output fra EEG-afledningsmodulet. Inputsignalet er et 10Hz sinussignal med en peak-to-peak amplitude på 100µV. EEG-afledningsmodulet er sat til højeste forstærkningstrin, dvs. der forstærkes ca. 50.000 gange. Afvigelser og kommentarer På figur I.4 ses resultatet ved det højeste forstærkningstrin. På grafen for den enkeltsidede FFT-analysen viser Y-aksen, hvor stor amplituden af de enkelte frekvenser er. Et udsnit af det mest intressante område fra FFT-analysen ses på figur I.4. Den høje spænding ved DC skyldes offsetspændingen på 1,65V, som den summerende forstærker summerer til det forstærkede EEG-signal. Der ses en top med ved 10Hz, som skyldes inputsignalet på 10Hz, og der ses en top ved 50Hz, hvilket skyldes støj fra lysnettet. Inputsignalet, som ligger amplitudemæssigt i EEG-området, kan tydeligt skelnes fra den omkringliggende støj. Signalets afbildning i frekvensdomænet viser desuden, at der generelt er en meget lille påvirkning af støj i forhold til intensiteten af det forstærkede inputsignal. Resultatet, når der benyttes det laveste forstærkningstrin, viser et tilsvarende forhold imellem intensiteten af 10Hz og 50Hz støj fra lysnettet. Under testen blev der som under CMRR-testen på oscilloskopet registreret højfrekvent støj ved ca. 25MHz med en peak-to-peak amplitude på ca. 15mV uafhængig af, hvilket forstærkningstrin der blev anvendt. Den målte støj kan skyldes de aktive kompoDenne udgave er fra d. 23. maj 2003 kl. 15.38 14 Testdokumentation - EEG-afledning nenter, der indgår i kredsløbet. Støj reducerer opløsningen af outputsignalet, idet det ved et vilkårligt diskret tidspunkt ikke er muligt at afgøre amplituden af støj, der måles sammen med det rigtige outputsignal. Samlet konklusion på modul- og integrationstest Resultaterne viser, at hvert modul for sig fungerer tilfredsstillende, hvilket ses af både bodeplot og tabeller. Især bodeplottene illustrerer, at kredsløbet holder sig tæt op af det forventede resultat. Integrationstesten viste, at modulerne fungerede sammen, men at der var en vis afvigelse fra det forventede. Disse afvigelser er dog ikke kritiske for kvaliteten af dataopsamlingen. Støjtesten viser, at kredsløbet er i stand til at forstærke et signal i EEG-amplitudeniveau op til det ønskede spændingsniveau, uden at signalet forringes nævneværdigt af støj. Testen viste desuden, at der ikke forekommer nævneværdig støj over de 50Hz fra lysnettet før den meget højfrekvente støj på 15mV peak-to-peak ved ca. 25MHz. Konklusionen på testen af EEG-afledningsenheden er, at enheden fungerer tilfredsstillende til en implementering i det færdige neurofeedbacksystem. Denne udgave er fra d. 23. maj 2003 kl. 15.38 Testdokumentation - Digital interface II I det følgende opstilles specifikationer for test af det digitale interface. Der testes overordnet, om signaler fra computeren bliver konverteret korrekt til MSP430 og omvendt. Der vil først for hvert modul og for integrationstesten, blive beskrevet, jf. SPU, formål, referencer, godkendelseskriterier, testdesign samt testudførelsen. Herefter følger en testrapport, der beskriver testens resultater og vurderer, om kravene er opfyldt. Testrapporterne for modultest er samlet til én rapport grundet testens begrænsede omfang. Alle tests er begrænset af omfanget, idet der ikke bliver brugt spidsbelastninger i form at spænding og tid. Alle henvisninger til pins og andre placeringer henvises til figur 3.6 side 47. Apparatur Til de forskellige tests er der anvendt: Oscilloskop (Institut 8, CNNR 33851) Multimeter (Institut 8, CNNR 33046) 2 stk. 9V batterier (Alkaline No. 8022 9V) Projectboard (Sundedsteknologi, Board nr. 5) Serielkabel PC med hyperterminal-programmet B&B COM-test (Institut 8, CNNR 46912) II.1 Modultest - Digital interface II.1.1 Testspecifikation LE33 (spændingsregulator) Indledning Formål Formålet med denne test er efter wrapning at undersøge, om spændingsregulatoren LE33 fungerer efter hensigten. Referencer Testspecifikationerne er udarbejdet på baggrund af moduldesignet jf. 3.2 15 16 Testdokumentation - Digital interface Godkendelseskriterier Testen er godkendt, når denne er forløbet helt fejlfrit i forhold til de forventede resultater. Testemner Outputværdien på spændingsregulatoren. Testdesign Der skal måles output fra LE33 når, input er spændingen fra computeren. Testimplementation Det forventes, at outputspændingen altid er 3.3 V og inputspændingen jf. RS232-standarden er 12 V. Testudførelse Serielkablet fra computeren kobles til projectboardet. Fra projectboardet skal DTR-pin fra RS232 tilsluttes indgangen på LE33 (pin 3), og jord fra RS232 skal tilsluttes pin 2. Derudover forbindes de på figur 3.6 beskrevne kondensatorer. Med et multimeter måles spændingen på indgangen til komponenten samt udgangen. II.1.2 Testspecifikation - MAX3223 seriel transciever Indledning Formål Formålet er at teste efter wrapning, om MAX3223 fungerer efter hensigten. Referencer Testspecifikationerne er udarbejdet på baggrund af moduldesignet jf. 3.2. Godkendelseskriterier Testen skal for at blive godkendt forløbe fejlfrit i forhold til de forventede resultater. Testemner In- og output på begge sider af MAX3223. Denne udgave er fra d. 23. maj 2003 kl. 15.38 II.1 Modultest - Digital interface Testdesign Testen bliver struktureret så resultatet indirekte viser, om MAX3223 fungerer. Testimplementation In- og output forventes at have lige mange høje og lave tilstande. Spændingen for in- og output længst væk fra computeren forventes at være 3,3V, på den anden side forventes 11,3V. Testudførelse Serielkablet fra computeren kobles til projektboardet. CMOS-udgangen (pin 10) og CMOS-indgangen (pin 12) skal kortsluttes for at teste, om computeren kan modtage de informationer, der sendes. Ved at lave denne kortslutning bliver MAX3223 testet for funktionalitet, da den skal konvertere logiske tilstande begge veje. B&B-COM skal sættes op til 4800 BAUD, 1 start og stopbit med ingen paritet. B&B-COM skal modtage de bogstaver, der indtastes. Der tilsluttes også en probe på CMOS-indgangen (pin 12) for at se, hvilket signal der bliver sendt igennem. II.1.3 Testspecifikation HCPL270 optocoupler Indledning Formål Formålet med testen er at teste, om der er galvanisk adskillelse og derved også teste, om HCPL270 optocouplerne virker som ønsket. Referencer Testspecifikationerne er udarbejdet på baggrund af moduldesignet jf. 3.2. Godkendelseskriterier Der skal være galvanisk adskillelse imellem computeren og microcontrolleren. Testemner Signal på in- og output samt den galvaniske adskillelse. Testdesign Først forbindes ind- og udgangen på optocouplerne enkeltvis, dernæst testes de samlet ved at forbinde indgangen på den ene optocoupler med udgangen på den anden. Der testes, om der ved tilfældige tast Denne udgave er fra d. 23. maj 2003 kl. 15.38 17 18 Testdokumentation - Digital interface på computeren sendes og modtages samme signal. Derefter testes for galvanisk adskillelse på optocouplerne ved at måle modstanden mellem hver side af optocouplerne. Testimplementation Det forventes ved enkeltvis og samlet at modtage samme bogstav, som der sendes fra computeren. Endvidere forventes, at der bliver målt en uendelig modstand for ind- og udgangen på hver sin side, hvorved der er opnået galvanisk adskillelse. Testudførelse De to optocouplere testes først seperat ved som i de foregående test, at sende signaler fra computeren igennem MAX3223. I testen af den enkelte optocoupler sendes signalet dog ikke tilbage til computeren via en kortslutning, men vises kun på et oscilloskop, hvor det verificeres, at det er det rigtige signal, der er nået frem. Ved testen af de to optocouplere samlet, bliver systemet forbundet som på figur 3.6 med undtagelse af, at indgangsbenet på optocoupler 1 (pin 3) og udgangsbenet på optocoupler 2 (pin 6) bliver kortsluttet. II.1.4 Testrapport - Modultest LE33, MAX3223 Seriel transciever og HCPL270 Indledning Rapporten omfatter alle moduler, der indgår i det digitale interface, idet de udførte tests var meget begrænsede. Testen blev udført d. 20 marts. Testresultater Spændingsregulator LE33 modtog som forventet 11,3 V fra RS232 og havde en konstant udgangsspænding på 3,3 V. MAX3223 modtog det samme bogstav, som blev sendt fra computeren ved hjælp af programmet B&B-com. Optocouplerne fungerede også som forventet. Konklusion Det kan hermed konkluderes, at de tre moduler LE33, MAX3223 og HCPL270 fungerer efter hensigten, og derved er det forsvarligt at foretage intregrationstest for det digitale interface. Denne udgave er fra d. 23. maj 2003 kl. 15.38 II.2 Modulintegration - Digital interface II.2 Modulintegration - Digital interface II.2.1 Testspecifikation - Digital interface Apparatur og opbygning er det samme som for modultesten af digital interface jf. afsnit II. Indledning Formål Formålet med integrationstesten er at teste, om modulerne i det digitale interface virker efter hensigten, når disse er sat sammen. Referencer Testspecifikationerne er udarbejdet på baggrund af afsnit 3.2. Endvidere henvises der til figur 3.6 side 47, når der bruges pin-numre. Godkendelseskriterier Testen er godkendt, når der er sikret galvanisk adskillelse, og at kommunikationshastigheden er højere end 9.600 baud-rate. Testemner Galvanisk adskillelse og kommunikationshastighed. Testdesign Galvanisk adskillelse testes ved at undersøge, om der er elektrisk forbindelse mellem microcontrolleren og computeren. Kommunikationshastigheden bliver testet ved at øge BAUD-raten til, der ikke modtages det samme, som der udsendes. Testudførelse For at undersøge, om optocouplerne danner galvanisk adskillelse, benyttes et digitalt multimeter samt et oscilloskop. Imens computeren sender og modtager information gennem optocouplere og seriel transceiver, måles på modtandene mellem de to sider, der skal være galvanisk adskilt. Der måles på forbindelsen mellem indgangsben (pin 3) og lysnetjord (pin 6) for optocoupler 1 og indgangsben (pin 3) og batterijord (pin 6) på optocoupler 2. Der forventes at kunne måles uendelig stor modstand med multimeteret, samt et signal der kun indeholder støj på oscilloskopet. For at undersøge den maksimale kommunikationshastighed anvendes B&B COM-test med samme indstillinger som ved test af kommunikationen. Serielkablet forbindes til henholdvist projektboard og computer. Oscilloskopets probe forbindes på microcontrollerens jord samt UART Recive Pin (pin 33). Denne udgave er fra d. 23. maj 2003 kl. 15.38 19 20 Testdokumentation - Digital interface Der skrives "d"i B&B COM-test, og "ASCII koden"aflæses på oscilloskopet. Herefter varieres BAUDraten, og de tilsvarende resultater ved tryk på "d"i B&B COM-test aflæses på oscilloskopet. II.2.2 Testrapport - Digital interface Indledning Testen blev udført d. 20 marts. Testresultater ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À ÁÂ Ã Ä Å Æ Ç ² ÕÖ ÒÑ ÓÔ ± ÏÐ ÍÎ ° ¯ ô ¡ È ÉÊ Ë Ì õö ÷ ø ù ú û ü ý þ ÿ ¢ £ ¤¥ ¦ § ¨© ä åæ ç è éê ª « ¬ ® ó ò ñ ð× Ø ÙÚ Û Ü ÝÞ ß à áâ ã ë ì í îï Figur II.1: Testresultater ved henholdvist 19.200 BAUD og 38.400 BAUD. Figuren viser, hvorledes et "d"sendes serielt. "d"har værdien 100 i ASCI dvs. 0110.0100 i binært. Der er benyttet 1 start bit(0), 1 slut bit(1) og den binære kode for "d"er sendt med LSB først. Det, der ses på figuren, er således 0001001101. Programmet B&B COM-test blev sat op, og det kunne konstateres, at hvis der blev indtastet et bogstav, blev det samme bogstav modtaget af programmet. Den galvaniske adskillelse blev verificeret ved, at multimetret målte en uendelig modstand, og oscilloskobet kun målte støj uafhængigt af det signal, der blev transmitteret. Figur II.1 viser to udvalgte resultater fra testen af kommunikationshastigheden. Det ses, hvorledes spændingsniveauet skifter mellem ca. 0V og 3,3V ved henholdsvist høj og lav. Ved 19.200 BAUD ses det, at spændingsniveauet tydeligt skifter mellem høj og lav. Derimod ses det ved 38.400 BAUD, at Denne udgave er fra d. 23. maj 2003 kl. 15.38 II.2 Modulintegration - Digital interface signalet bliver forvrænget således, at et bit aflæses forkert, da signalet ikke når den krævede spænding. Altså må interfacets maksimale kommunikationshastighed være 19.200 BAUD, jf. figur II.1. Konklusion Alt i alt kan det konkluderes, at det digitale interface fungerer korrekt. Denne udgave er fra d. 23. maj 2003 kl. 15.38 21 22 Testdokumentation - Digital interface Denne udgave er fra d. 23. maj 2003 kl. 15.38 Testdokumentation - MSP430 III III.1 Modultest - MSP430 III.1.1 Testspecifikation - MSP430_main Indledning Formål Formålet med denne test er at afgøre om der skrives til de ønskede registre i forbindelse med opsætning. Referencer Udgangspunktet for testen er afsnit 4.3.1 hvor det er beskrevet hvad modulet skal udføre. Testens omfang og begrænsninger Testen omfatter kun MSP430_main.c. Funktionskald og interrupts vil ikke blive testet. Godkendelse For at testen kan godkendes skal modulet fungere præcist som forventet jf. afsnit 4.3.1. Testemner Følgende registre testes trin for trin gennem hele programmet: WDTCTL IFG1 BCSCTL2 SR R14 (værdien af i) Testdesign Testen udføres ved hjælp af programmet C-SPY. Dette gøres ved at programmet køres igennem linje for linje samtidig med at værdierne af de angivne registre noteres til sammenligning med de forventede resultater. Der skal ikke benyttes nogen testdrivere eller input fra eksterne enheder. 23 24 Testdokumentation - MSP430 Testimplementation De forventede resultater for hvert testemne ses i tabel III.1. WDTCTL IFG1 BCSCTL2 R14 SR 0 indtil l.18 og 0x01 derefter 0X12 indtil l.26 hvor den ændrer sig til 0x01. Derefter ændres den igen til 0x12 er 0x00 og ændrer sig til 0x88 Ændrer sig fra 0xFF til 0x00 0x00 indtil l. 36 og 0x01 derefter. Ændres til 0x03. Den ændres til 0x02 og bliver så til 0x0A efter _EINT. Til sidst bliver den 0x5A efter Low-Power Tabel III.1: Tabellen viser de forventede resultater for hvert af de registre der testes Udførelse af test Til testen benyttes MSP430_main.c. Der bruges ikke nogen testdrivere men funktionskaldene; TimerA_setup(), UART_setup() og ADC12_setup() annulleres. Testen afvikles i programmet C-SPY. Dette gøres på følgende måde: Hent MSP430_main.eww ind i Embedded Workbench ved at vælge file/insert/workspace. Vælg options under C-SPY og vælg Flash emulation tool som driver. Vælg microcontrolleren MSP430_F149. Debug C-programmet hvorved det også compileres og downloades til microcontrolleren. Vælg view under “Registers” og der kommer et ekstra skærmbillede frem. Kør programmet med “Stepover” ved tryk på ikonen i menubjælken øverst i venstre hjørne. Efter hvert tryk på “Stepover” vil debuggeren køre en linje i C-programmet hvorefter den venter på næste tryk. Noter for hvert step hvilke værdier der er i de relevante registre ved at kigge i vinduet “Registers”. Når den sidste linje i C-programmet er kørt og værdierne er noteret, sammenlign da disse med de forventede resultater og testen er derefter slut. III.1.2 Testsepcifikation - UART_setup Indledning Formål Denne test udføres med det fomål at afgøre om modulet UART_setup skriver de rigtige værdier til de ønskede registre. Der teste endvidere om modulet kan kommunikere efter de givne specifikationer jf. afsnit 4.3.4. Det ønskes også at teste om interrupts håndteres korrekt. Referencer Testen er lavet på baggrund af specifikationerne jf. afsnit 4.3.4. Denne udgave er fra d. 23. maj 2003 kl. 15.38 III.1 Modultest - MSP430 25 Testens omfang og begrænsninger Der testes kun modulet UART_setup_testdriver.c. Registrene samt kommunikationsprotokollen testes. Håndtering af interrupts testes også. Godkendelse Dette modul skal opfylde de krav der er stillet i moduldesign. Testemner I testen indgår følgende registre: UCTL0 UTCTL0 UBR00 UBR10 UMCTL0 ME1 IE1 P3SEL P3DIR IFG1 RXBUF0 TXBUF0 UART0RX_VECTOR Når der testes om kommunikationen med PC fungerer optimalt afprøves både bogstaver samt gyldige og ugyldige tal. Testdesign Som tidligere nævn bliver både værdier i de relevante registre testet samt kommunikation med PC. Disse tests er dog begge samlet i en testcase. Testdrivers Programmerne C-SPY og B&B-Com bruges til test af modulet. C-SPY anvendes som debugger hvor relevante registre undersøges ved gennemkørsel af UART_setup_testdriver.c. B&B-Com er et hyperterminal-program som bruges til at sende og modtage kommunikationsbit til og fra PC. Til testen benyttes også en testdriver bestående af MSP430_main.c. Det er dog ikke en fil for sig selv men er implementeret i UART_setup_testdriver.c hvor linjer som ikke er relevante for test af UART_setup er annuleret. Denne udgave er fra d. 23. maj 2003 kl. 15.38 26 Testdokumentation - MSP430 Testcase Testen består i at der på PC undersøges hvilket registre der skrives til mens der samtidig sendes start- og stopbit til microcontrolleren. Testimplementation Forventede resultater ses af tabel III.2 UCTL0 UTCTL0 UBR00 UBR10 UMCTL0 ME1 IE1 P3SEL P3DIR IFG1 RXBUF0 TXBUF0 0x01 til l. 35 og derefter 0x10 0x01 indtil l. 39 og derefter 0x20 0x00 0x06 hele tiden (lidt mærkeligt) 0x00 0x00 indtil l. 47 derefter 0xC0 0x40 efter l. 49 0x30 efter l. 51 0x10 efter l. 52 0x80 når der ikke samples og 0x40 når der modtages bit fra PC 0x31 når der modtages 1 fra PC og 0x30 når der modtages 0 0x30 når der modtages 1 fra PC og 0x31 når der modtages 0 Tabel III.2: Tabellen viser de forventede resultater for de registre der testes I tabel III.3 ses de input der testes med samt det de forventede resultater dertil. 1 0 a PC modtager værdien 0 PC modtager værdien 1 Der sker intet Tabel III.3: Tabellen viser de forventede resultater for de kommunikationsbit der testes med Udførelse af test For at teste modulet UART_setup_testdriver.c bruges testdriveren som tidliger nævnt er integreret deri hvor visse ting er annuleret. Følgende fremgangsmåde benyttes: Start først C-SPY og B&B-Com op. Vælg i B&B-Com, Com1, 4800 baud, 0 paritetbit, 1 stopbit og 8 databit. Indstil C-spy under options til MSP430F149 og vælg Flash imulation tool under C-SPY. Hent filen UART_setup_testdriver.eww ind i C-SPY ved at vælge file/insert/workspace. Tryk på “debug”. Dette medfører at projektet compileres, debugges og flashes. Vælg window i view/registers hvilket åbne et ekstra skærmbillede hvor det er muligt at vælge samtlige registre i microcontrolleren. Denne udgave er fra d. 23. maj 2003 kl. 15.38 III.1 Modultest - MSP430 27 Gennemløb ved hjælp af “stepover” modulet trinvis mens værdierne af relevante registre noteres til sammenligning med forventede resultater. Tryk bagefter på reset oppe i venstre hjørne af menubjælken og programmet sættes tilbage til start. Send nu ved hjælp af B&B-Com “1” ved at vælge øverste billede og trykke på “1” på tastaturet. Noter i C-SPY værdien af de registre der er relevante for kommunikationstesten. Noter desuden om B&BCom modtager det forventede bit. Gør det samme for samtlige testværdier og disse sammenlignes med det forventede resultat. Dermed er testen slut. III.1.3 Testspecifikation - TimerA_setup Indledning Formål Formålet med testen er at afgøre om modulet skriver til de rigtige registre samt om den skriver de rigtige værdier. Referencer På baggrund af afsnit 4.3.2 udarbejdes testen af dette modul. Testens omfang og begrænsninger Denne test indbefatter kun TimerA_setup_testdriver.c. Det testes desuden om interrupts håndteres korrekt. Godkendelse Specifikationer stillet i 4.3.2 skal opfyldes. Testemner Nedenfor ses de registre der testes. TACTL CCTL0 CCR0 Testdesign Der testes kun hvilke værdier der skrives til under opsætning. Visse fuktionskald er annuleret i testen da de ikke er relevante for test af TimerA_setup_testdriver.c.. Testdrivers Til testen benyttes programmet C-SPY. Dette gøres ved at modulet TimerA_setup_testdriver.c køres linje for linje. Der anvendes desuden en testdriver bestående af MSP430_main.c som er implementeret i TimerA_setup_testdriver.c. Denne udgave er fra d. 23. maj 2003 kl. 15.38 28 Testdokumentation - MSP430 Testimplementation Af tabel III.4 ses de registre der indgår i testen sammen med de forventede resultater. TACTL CCTL0 CCR0 0x00 til l. 35 og derefter 0x100 0x01 indtil l. 39 og derefter 0x20 0xA3 Tabel III.4: Tabellen viser de forventede resultater for de registre der testes Udførelse af test Fremgangsmåden for test af Timer_setup_testdriver.c er følgende: Start C-SPY op. Indstil C-SPY under options til MSP430F149 og vælg Flash imulation tool under C-SPY. Hent filen TimerA_setup_testdriver.eww ind i C-SPY ved at vælge file/insert/workspace. Tryk på “debug”. Dette medfører at projektet compileres, debugges og flashes. Vælg “registers” under view hvilket åbne et ekstra skærmbillede hvor det er muligt at vælge samtlige registre i microcontrolleren. Gennemløb ved hjælp af “stepover” modulet trinvis mens værdierne af relevante registre noteres til sammenligning med forventede resultater. Derefter er testen slut. III.1.4 Testspecifikation - ADC12_setup Indledning Formål Testen har til formål at bestemme om modulet ADC12_setup_testdriver.c skriver til de ønskede registre med de rigtige værdier. Referencer Testen udføres på baggrund af specifikationerne i afsnit 4.3.3 Testens omfang og begrænsninger Testen består af ADC12_setup_testdriver.c. Der indgår test af interrupthandling. Godkendelse For at testen kan godkendes skal specifikationerne i 4.3.3 opfyldes. Denne udgave er fra d. 23. maj 2003 kl. 15.38 III.1 Modultest - MSP430 29 Testemner I testen indgår følgende registre: ADC12CTL0 ADC12CTL1 ADC12MCTL0 ADC12IE P6SEL ADC_VECTOR Testdesign Til testen benyttes programmet C-SPY. Det testes om der skrives til de rigtige registre ved at gennemkøre progammet linje for linje. Værdierne i de relevante registre sammenlignes ved hvert step med et forventet resultat. Testdriver Der benyttes en testdriver bestående af MSP430_main.c som er implementeret i ADC12_setup_testdriver.c Visse funktionskald er annuleret i denne. Testimplementation Registrene der er inkluderet i testen sammen med de forventede resultater ses af tabel III.5 ADC12CTL0 ADC12CTL1 ADC12MCTL0 ADC12IE P6SEL 0x210 0x200 0x00 0x01 0x21E Tabel III.5: Tabellen viser de forventede resultater for de registre der testes Udførelse af test Til udførelse af testen bruges følgende fremgangsmåde: Start C-SPY op. Indstil C-SPY under options til MSP430F149 og vælg Flash imulation tool under C-SPY. Hent filen ADC12_setup_testdriver.eww ind i C-spy ved at vælge file/insert/workspace. Tryk på “debug”. Dette medfører at projektet compileres, debugges og flashes. Denne udgave er fra d. 23. maj 2003 kl. 15.38 30 Testdokumentation - MSP430 Vælg “registers” under view hvilket åbne et ekstra skærmbillede hvor det er muligt at vælge samtlige registre i microcontrolleren. Gennemløb modulet trinvis ved hjælp af “stepover” mens værdierne af relevante registre noteres til sammenligning med forventede resultater. Derefter er testen slut. III.1.5 Testrapport - MSP430_main, UART_setup, TimerA_setup og ADC12_setup Indledning Testrapporter for modulerne MSP430_main, UART_setup, TimerA_setup og ADC12_setup er samlet en en testrapport, da det testen forløb uden problemer. Testrapporten for filtermodulet findes efterfølgende, da modulet afviger fra de andre opsætningsmoduler. Testen blev udført d. 05.05.03. Testresultater Resultaterne stemmer overens med de ovenstående forventede resultater. konklusion Tests blev fuldført uden problemer eller stop undervejs. Alle resultater stemmer overens med det forventede. Modulerne er derfor klar til integrationstest. III.1.6 Testspecifikation - filter Dette afsnit omhandler testspecifikation for modultest af det digitale filter implementeret på microcontrolleren. Indledning Formål Formålet med denne test er at afgøre, om filtret filtrerer data korrekt, dvs. om implementeringen af 2. ordens sektioner af et 5. ordens elliptisk filter fungerer tilfredsstillende både i forhold til Matlabs indbyggede filterfunktioner og med hensyn til implementering på microcontrolleren i c-kode. Referencer Udgangspunktet for denne test kan findes i afsnit 4.3.5 side 65, hvor designet af modulet har fundet sted. Endvidere henvises til afsnit 2.3.2 side 30, hvor krav til modulet er opridset. Omfang og begrænsninger Da der i designet er taget højde for, om filtret har den rigige knækfrekvens, og hvorvidt der er risiko for ustabilitet, er det udelukkende kodeimplementeringen, der undersøges. Denne udgave er fra d. 23. maj 2003 kl. 15.38 III.1 Modultest - MSP430 31 Godkendelse Testen kan godkendes, når filtret fungerer korrekt, og at filtret ved indsendelse af en impuls udsender den korrekte impulsrespons. Testemner I afsnit 2.3.2 blev det fastslået, at filtret skulle fungere med færrest mulige regneoperationer for at være sikker på, at filtreringen skulle opnåes. Hovedopgaven af denne test er at teste, om filterkoefficienterne, der er udregnet på baggrunden af de i forvejen opgivne krav, bliver brugt korrekt til filtrering af et fiktivt signal. Det skal også testes, hvor meget tid der benyttes til at udføre filter-funktionen. Testdesign Testen af modulet udføres i to trin, da filtrets funktion forholdsvist nemt testes vha. af matlab, men dog skal implementeres vha. c-kode. 1. Test i Matlab I forbindelse med design af filtret og beregning af filterkoefficienter, er det muligt at få vist impulsresponsen af det netop designede filter. Der undersøges derefter, om impulsresponsen af filtret implementeret ved kaskadeform har den samme impulsrespons ved at sende en impuls gennem filtret. Disse to impulsresponser plottes og sammenlignes. 2. Test af c-kode i Embedded Workbench Ved hjælp af en testdriver testes c-koden for filterfunktionen. Det observeres, om der ved indsendelse af en impuls også sendes den korrekte impulsrespons ud. Det er nødvendigt at lave en testdriver til at teste filtret uden de resterende moduler på MSP430. Testimplementation 1. Matlab For at teste filterkoefficienternes brug, køres m-filen filtertest.m i matlab. Input til implementering er en vektor med udseende som i (III.1) med en længde på 20, hvilket bruges som impuls til filtret. input = 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Denne udgave er fra d. 23. maj 2003 kl. 15.38 (III.1) 32 Testdokumentation - MSP430 Ved kørsel af filtertest.m plottes impulsresponsen generet med matlab-funktionen filter hvorved den rigtige impulsrespons plottes. Derudover plottes også filtrets output, der, hvis filtret fungerer korrekt skal have udseende som i figur III.1. B C D ? @ A < = > 9 : ; 6 7 E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ 8 5 1 2 3 - . / 4 0 ! " # $ % & ' ( ) * + , Figur III.1: Den forventede impulsrespons fra filtret ved indsendelse af ovenstående vektor (III.1). 2. Embedded Workbench Ved at køre filtertest.c i Embedded workbench, kan det ligeledes undersøges, hvad filterkoefficienterne er. Input til filtret er en impuls, men denne gang et array med kun 10 elementer, da det ikke er nødvendigt med flere elementer, for at undersøge om inpulsresponset er korrekt. Output fra filtret undersøges ved hjælp af funktionen View/”local variables”. Elementerne i arrayet “yout” skal ved stepvis kørsel blive fyldt op med de værdier, der kan ses i tabel III.6 Index Yout 0 0.0576 1 0.1927 2 0.3413 3 0.3727 4 0.2049 5 -0.0395 6 -0.1642 7 -0.0864 8 0.0671 Tabel III.6: Det forventede output “Yout”, hvis inputtet er en impuls. Udførelse af test Matlab: Start matlab op. Åbn filtertest.m. Check at der er det korrekte input (se vektor III.1). Kør filtertest.m. Undersøg om output svarer til den rigtige impulsrespons. Denne udgave er fra d. 23. maj 2003 kl. 15.38 9 0.1090 III.1 Modultest - MSP430 33 Embedded Workbench: Hent filtertest.c ind i Embedded Workbench. Under Options vælges Microcontroller af typen MSP430F149. Endvidere sættes C-SPY til Flash emulation tool. C-programmet debugges, hvorved det compileres og downloades til microcontrolleren. Under View vælges "local variables" Programmet køres stepwise, mens der undersøges, om arrayet “Yout” fyldes op med de rigtige værdier. III.1.7 Testrapport - filter Indledning Denne test er lavet på baggrund af testspecifikation, der kan findes i appendiks III.1.6. Testen blev udført d. 6. maj 2003. Testresultater Ved kørsel af filtertest.m var output korrekt. Den ønskede impulsrespons blev plottet og var magen til den i testspecifikationen angivne impulsrespons på figur III.1 side 32. Kørsel af filtertest.c gav også de ønskede resultater. Der kunne i registret ses, at arrayet med impulsresponset var korrekt og magen til det i testspecifikationen angivede (se tabel III.6 på side 32). Konklusion Filtermodulet kører udemærket med hensyn til filtrering af et signal ud fra filterkoefficienter til et 5. ordens elliptisk filter implementeret ved hjælp af 2. ordens-sektioner. Der er i testen blevet set bort fra enhver sammenhæng med ADC12 og UART, da der var tale om en modultest. Denne udgave er fra d. 23. maj 2003 kl. 15.38 34 Testdokumentation - MSP430 III.2 Modulintegrationstest - MSP430 III.2.1 Testspecifikationer - MSP430-proces Indledning Formål Denne test foretages med det formål at finde ud af om ovenstående moduler virker sammen som forventet. Referencer Testen udføres på baggrund af specifikationerne afsnit 4.2. Testens omfang og begrænsninger Da systemet ikke består af særlig mange moduler, og fordi disse moduler ikke er ret store, er der her valgt at teste alle modulerne samlet. I testen indgår modulerne; MSP430_main.c, UART_setup.c, TimerA_setup.c og ADC12_setup.c. De tre tidligerenævnte interrupt service routines er ligeledes med. Godkendelse Testen er bestået når specifikationerne i afsnit 4.2 er opfyldt. Testemner Der testes først og fremmest for om det er muligt at starte sampling og konvertering fra PC. Dernæst testes det om signalet på PC er identisk med signalet der bliver sendt til microcontrolleren. Det testes desuden om der samples og konverteres med den ønskede frekvens. Håndtering af interrupts til TimerA, ADC12 og UART testes også. I testen indgår også kontrol af skrivning til registre. Testdesign Til kommunikationstesten anvendes programmet Readport samt en signalgenerator. Readport er et program lavet i LabView og er i stand til at læse og skrive data til og fra com-porte. Derudover kan det plotte den modtaget data i en graph på den skærmbillede. Det er blevet modtaget efter en forelæsning om LabView programmering. Testdriver Der benyttes en testdriver bestående af MSP430_main.c, UART_setup.c, TimerA_setup.c og ADC12_setup.c. Desuden bruges en modificeret version af Readport som testdriver. Denne har fået tilføjet værktøjer til frekvensanalyse. Den bruges som driver idet det sender start- og stopbit til microcontrolleren. Test 1 Der sendes et kommunikationsbit til microcontrolleren hvilket skal medføre at sampling startes. Dette ses ved at resultatet af sampling vises på grafen i ReadPort. Denne udgave er fra d. 23. maj 2003 kl. 15.38 III.2 Modulintegrationstest - MSP430 Test 2 35 For at kontrollere samplingsfrekvensen kan der benyttes signaler der fremprovokerer aliasing. Testimplementation Kommunikationen testes ved at der fra PC sendes kommunikationsbit der skal starte og stoppe sampling. Disse ses i tabel III.7 med forventede resultater. For test af samplingsfrekvens ses forventede resultater i tabel III.8. Bit sendt fra PC 1 1 mens der samples 0 0 mens sampling er stoppet Alle andre tegn Resultat fra MSP430 Sampling starter Sampling fortsætter Sampling stopper Sampling skal forblive stoppet Intet sker Tabel III.7: Tabellen viser de forventede resultater for de kommunikationsbit der testes med Signal ind [HZ] 10 100 150 Signal ud [HZ] 10 100 lavere frekvens Tabel III.8: Tabellen viser de forventede resultater for de frekvenser der testes med Udførelse af test Den første test er kommmunikationstesten hvor det dog også testes om signalet på PC er identisk med det som sendes ind i microcontrolleren. Denne test udføres efter følgende fremgangsmåde: Test 1 Flash ved hjælp af C-SPY MSP430_main.c. Kør C-filen i C-SPY ved tryk på “Go” i menubjælken. Tilslut signalgenerator til microcontrolleren ved pin 59 og start med en frekvens på 20Hz og under 3V. Start Readports op ved tryk på hvid pil i øverste venstre hjørne.. Send fra Readport et bit med værdien “1” fra nederste venstre hjørne. Noter om det samme signal vises i Readport som det der sendes ind i microcontrolleren. Test igen ved at sende “1” hvilket ikke skal medføre at samplingen stopper. Send “0” fra Readport Noter om microcontrolleren stopper sampling. Afprøv så med “0” igen hvilket ikke skal få microcontrolleren til at starte sampling. Afprøv til sidst med andre tegn hvilket microcontrolleren ikke skal reagere på og testen er dermed slut. Denne udgave er fra d. 23. maj 2003 kl. 15.38 36 Testdokumentation - MSP430 For test af samplingsfrekvens bruges følgende fremgangsmåde: Test 2 Flash ved hjælp af C-SPY integration.c. Kør C-filen i C-SPY ved tryk på “Go” i menubjælken. Tilslut signalgenerator til microcontrolleren ved pin 59 og start med et signal på 10HZ og under 3V. Readport åbnes og der startes ved tryk på hvid pil i øverste venstre hjørne. Send fra Readport et bit med værdien “1” for at starte sampling. Juster signalgeneratoren til de førnævnte frekvenser imens ændringerne iagtages på Readport. Det er i denne test muligt at benytte Readports værtøjer til frekvensanalyse. III.2.2 Testrapport - MSP430-proces Indledning Testen blev udført d. 6. maj 2003. Testen er udført på baggrund af alle modulerne i MSP430-processen. Testresultater Figur III.2: Skærmbillede af testprogrammet til MSP430. Første graf viser signalet, der bliver sendt ind til PC’en fra microcontrolleren, imens den anden graf viser et FFT-spektrum. Endvidere kan frekvensen ses i boksen under frekvensspektrummet. Denne udgave er fra d. 23. maj 2003 kl. 15.38 III.2 Modulintegrationstest - MSP430 Ved test af MSP430-processen blev der brugt et LabVIEW-program, der kunne aflæse, hvad microcontrolleren sendte til PC’en. Ved testen kunne det konstateres, at ved indsendelse af et 11 hz sinussignal og sending af “1” til microcontrolleren blev sampling startet, og et 11 Hz sinussignal blev sendt tilbage til PC’en. For at teste om samplingsfrekvensen var korrekt, blev der også sendt et 100 Hz sinus-signal ind, og da samplingsfrekvensen er 200, var det tydeligt at se, at der var begyndelse på aliasing, som det også kan ses på figur III.2. Ved at øge frekvensen yderligere var det muligt at få en meget lav frekvens ud til PC’en, hvilket indikerede, at her var tale om aliasing. Men da der først ved 100 Hz var problemer, ses det, at samplingsfrekvensen korrekt er 200 Hz. For at teste om kommunikationen med microcontrolleren fungerede korrekt, sendtes "1"og "0"til den via LabVIEW-programmet, hvilket henholdsvist tændte og slukkede for sampling på microcontrolleren. For at teste filtret blev der sendt et sinussignal til microcontrolleren med en frekvens under 40Hz, og signalet på PC’en blev iagttaget. Dernæst blev frekvensen hævet, og eventuelle dæmpninger af signalet blev noteret. Det blev konstateret, at signalet som forventet blev dæmpet, når det kom over en frekvens på 40Hz. Afvigelser og kommentarer Figur III.3: Ved at sende “0” til microcontrolleren gik output høj, som det kan ses. Der var ikke nogen afvigelser udover en enkelt gang, hvor samplingen ikke ville starte igen, efter microcontrolleren havde modtaget “0” to gange i træk. Derfor blev microcontrolleren nulstillet, og Denne udgave er fra d. 23. maj 2003 kl. 15.38 37 38 Testdokumentation - MSP430 testen blev kørt igen. Fejlen opstod ikke på noget tidspunkt igen. Derfor ses bort fra fejlen. Når der flere gange efterfølgende blev sendt “0” til microcontrolleren, blev outputtet højt. Dette har dog heller ingen betydning for funktionen af programmet. Problemet kan ses på figur III.3. Konklusion Ud fra testen kan det konkluderes, at modulerne virker sammen som forventet. Denne udgave er fra d. 23. maj 2003 kl. 15.38 IV Testdokumentation - PC IV.1 Modultest-PC For at de følgende tests kan udføres, er det er en betingelse, at LabVIEW samt MSXML 4.0 er installeret. De steder, hvor der nævnes tesdrivere eller teststubbe, henvises til den vedlagte CD. IV.1.1 Testspecifikation LæsCom Indledning Formål Formålet med testen er at undersøge, om LæsCom-modulet fungerer efter hensigten. Referencer Testspecifikationen er udarbejdet på baggrund af moduldesignet jf. 4.4.2. Testens omfang og begrænsninger Testen bliver udført som en black-box test, hvor kun input og output fra LæsCom-modulet bliver testet. Det vil sige, at de enkelte strukturer ikke bliver testet. Godkendelseskriterier For at LæsCom kan godkendes, skal testen være fejlfri i forhold til de undersøgte testemner. Testemner Testemnerne er BAUD-rate, timeout for bytes i PC’ens UART-buffer og output-størrelse. Testdesign Testen laves ved at bruges to computere, der følgende bliver benævnt computer 1 og 2. Som testdriver bruges B&B-eletronics Comtest (B&B-com) på computer 2. Denne skal anvendes til at give LæsCom input. BAUD-raten testes ved at observere outputtet af LæsCom. Timeout for bytes i computers 1’s UART-buffer testes ved ikke at sende data fra computer 2. Størrelsen af output testes ved at undersøge 39 40 Testdokumentation - PC outputarrayet. Testdriver Testdriver til LæsCom er B&B-Com, der skal simulere input fra microcontrolleren. Teststub I testen vil der være behov for en teststub, der viser output fra LæsCom. Testimplementation Ved at indstaste data på computer 2 undersøges det, hvornår LæsCom får et output. Det forventes, at der først er et output, når der er sendt data fra computer 2 svarende til 40 bytes eller mere. Output forventes at være et array på 40 unsigned integers. Det forventes endvidere, at der sker en timeout for bytes i PC’ens UART-buffer efter 2 sekunder, når der ikke sendes data fra computer 2. Testudførelse LæsCom åbnes, og det sikres, at der ikke er andre programmer, der optager Com-porten, Com-port vælges i LæsCom. De to computere forbindes med et serielkabel. På computer 2 startes B&B-com, Com-port vælges, og kommunikationsprotokollen sætte op med følgende: Stopbit 1, Parity none og Data bits 8. Endvidere skal RTS sættes til høj manuelt ved tryk på “Ctrl + R” på B&B-com brugerflade. LæsCom startes. Indtast 39 tal på B&B-com, mens output observeres på LæsCom. Indtast endnu et tal på B&B-com, og output observeres på LæsCom. Indtast 41 tal på B&B-com og der observeres output på LæsCom. Undlad at sende noget i 2 sekunder. Observer LæsComs reaktion. IV.1.2 Testrapport - Modultest LæsCom Indledning Modultesten blev udført d. 14. maj 2003. Testresultater Resultaterne for testen var, at LæsCom læste fra PC’ens UART-buffer, når der var flere end 40 bytes. Hvis der ikke blev sendt noget til bufferen i de første 2 sekunder, viste modulet fejl. Det samme skete, Denne udgave er fra d. 23. maj 2003 kl. 15.38 IV.1 Modultest-PC 41 hvis der efterfølgende gik mere end 100 millisekunder, og der ikke var nogen ændringer i antallet af bytes i UART-bufferen. Afvigelser og kommentarer Der blev ikke fundet nogle afvigelser fra det forventede resultat. Konklusion Det konkluderes hermed på baggrund af ovenstående resultater, at modulet LæsCom fungerer efter de opsatte krav i modulspecifikationen. IV.1.3 Testspecifikation StartStopMSP Indledning Formål Formålet med testen er at undersøge, om StartStopMSP modulet fungerer efter hensigten. Referencer Testspecifikationen er udarbejdet på baggrund af moduldesignet jf. afsnit 4.4.3. Testens omfang og begrænsninger Testen bliver udført som en black-box test, hvor kun in- og output bliver testet for StartStopMSP modulet. Det vil sige, at de enkelte strukturer ikke bliver testet. Godkendelseskriterier For at StartStopMSP kan godkendes, skal testen være fejlfri i forhold til de forventede resultater. Testemner Testemnerne er følgende: BAUD-rate og sendte værdier (output). Testdesign Testdriver Til testen anvendes en testdriver, der kan simulere microcontrolleren. Teststub Der bliver anvendt en teststub som input til StartStopMSP. Denne udgave er fra d. 23. maj 2003 kl. 15.38 42 Testdokumentation - PC Testen Til testen anvendes 2 computerer, hvor der på computer 2 kører en testdriver StartStopMSP_testdriver1. Testdriveren er sat op til at have 4800 i BAUD-rate og har til formål at læse, hvad der bliver sendt fra StartStopMSP-modulet på computer 1. BAUD-raten bliver testet indirekte ved at undersøge,om computer 2 modtager et korrekt signal. Ved at ændre status på StartStopMSP modulets on/off knap, observeres output værdien på computer 2. Testimplementation Det forventes, at der på computer 2 modtages 1, når A/D konverteren er “on”, og at der på computer 2 modtages 0, når A/D konverten er “off”. Testudførelse Åben StartStopMSP på computer 1 og indstil Com-porten. Åben StartStopMSP_testdriver1 på computer 2 og indstil Com-porten. Computer 1 og 2 forbindes med et nul-modem kabel. StartStopMSP_testdriver1 startes i “continues mode” StartStopMSP startes i “continues mode”, A/D konverter sættes til “on”. Der observes hvad StartStopMSP_testdriver på computer 2 modtager. På computer 1 ændres A/D konverter til “off”, og der observeres igen på computer 2 hvad output er. IV.1.4 Testrapport - Modultest StartStopMSP Indledning Modultesten blev udført d. 14. maj 2003. Reference Testspecifikationerne kan ses i bilag IV.1.3. Testresultater Det blev fundet at StartStopMSP henholdsvis sendte “1” og “0” ved “on” og “off” for A/D konvertering. Resultatet blev vist på en anden computer, der blev anvendt som teststub. Afvigelser og kommentarer Der blev ikke fundet nogle afvigelser fra det forventede resultat. Denne udgave er fra d. 23. maj 2003 kl. 15.38 IV.1 Modultest-PC 43 Konklusion Det konkluderes hermed på baggrund af ovenstående resultater, at modulet StartStopMSP fungerer efter de i modulspecifikationen opsatte krav. IV.1.5 Testspecifikation for BestemRatio Indledning Formålet Formålet med testen er at undersøge, om BestemRatio-modulet fungerer tilfredsstillende til en implementering i det færdige system. Referencer Testspecifikationen er udarbejdet på baggrund af moduldesign afsnit 4.4.4 side 75. Testens omfang og begrænsninger Testen har udelukkende til formål at teste BestemRatio. Testen indbefatter således ingen andre moduler. Testen udformes som en blackbox-test. Godkendelse For at modulet kan blive godkendt er det et krav, at testen gennemløbes fejlfrit med hensyn til forventede output. Hvis der under testen opnås resultater, der ikke stemmer overens med det forventede, skal rettes fejlen, og en ny testspecifikation udarbejdes. Testemner Følgende skal testes: DFO, længde af inputarray, bestemmelsen af DFO-ratio samt DFO og EEGfrekvensområdet. Testdesign Testdriver Til alle tests benyttes testdriveren BestemRatio_testdriver.vi. Driveren indeholder bl.a. 2 sinusgeneratorer, som er implementeret i LabVIEW, driveren muliggør generering af inputdata til BestemRatio. Driveren giver desuden mulighed for at definere DFOmax og DFOmin, samt at monitorere outputtet fra BestemRatio. 1. DFO Det testes, hvorvidt det er muligt at definere et ugyldigt DFO. Både gyldige og ugyldige værdier testes. Denne udgave er fra d. 23. maj 2003 kl. 15.38 44 Testdokumentation - PC 2. Længde af Inputarray BestemRatio testes med arrays af forskellig længde. 3. DFO-ratio og frekvensområder Det skal testes, om DFO- og EEG-spektret er defineret rigtigt. Desuden skal det testes, om DFO-ratioen giver et korrekt resultat. Dette testes ved at definere et DFO og give et signal indeholdende 2 forskellige frekvenser som input til DFO. Ved at ”tænde”,”slukke” samt variere de to frekvenser i signalet, er det muligt at teste ovenstående. Testimplementation 1. DFO Følgende DFO’er testes DFOmin[Hz] 0 DFOmax[Hz] 15 12 15 15 15 20 15 20 50 12,1 15,3 Forventet resultat 0 uden for Datarange, DFOmin skifter automatisk til 0,5 DFO er gyldig, der genereres en DFO-ratio. DFO gyldig, der genereres en DFOratio. DFO-ratio = 0. Der genereres en fejlmeddelelse. 40 udenfor Datarange, DFOmax skifter automatisk til 40. 12,1 skiftes til 12,00 og 15,3 til 15,5. Tabel IV.1: Input værdier ved DFO test Imens DFO ændres ifølge tabel IV.1, gives et 10Hz signal med en amplitude på 50 [Integer] vha testdrivrens sinusgeneratorer til BestemRatio, signalet gives i form af arrays med 40 elementer i hver. 2. Længde af inputarray Under testen gives input som defineret i tabel IV.2 Array længde 0 40 512 600 Forventet resultat Der genereres fejl. DFO-værdi forbliver på sidste værdi Der genereres en DFO-ratio. Der genereres en DFO-ratio. Der genereres en fejl, men DFOratio beregnes fortsat. Tabel IV.2: Input ved test af længde af array Denne udgave er fra d. 23. maj 2003 kl. 15.38 IV.1 Modultest-PC 45 DFO sættes konstant fra 15 - 20Hz under testen, amplituden af sinus 2 signalet sættes til 50, og frekvensen sættes til 10Hz. Desuden sættes sinus 1 til 17Hz og en amplitude på 50. 3. DFO-ratio og frekvensområder Offset 1 0 0 0 0 30 0 0 0 0 F1 5 5 5 40 0 0 5 50 0 A1 30 30 30 30 0 0 30 30 0 Der gives input som specificeret i tabel IV.3. F2 30 25 35 30 30 30 0 30 0 A2 30 30 30 30 30 30 0 30 0 Forventet DFO-ratio. 0,5 0,3-0,5 0,3-0,5 0,5-0,8 0,5-1 pgf. DC energi lækkes til EEG-spektret. 1 0 1 0 Fejlmeddelelse genereres. Tabel IV.3: Input ved test af BestemRatio. F1 og A1 er frekvens og amplitude for den ene sinalgenerator og F2 og A2 for den anden generator. Generatorene genererer tilsammen inputsignalet. DFO sættes under hele testen til 25-35Hz. Der er en vis tolerance på nogle af de forventede værdier, idet der må forventes nogen afvigelser grundet lækage og den skæve inddeling på frekvensaksen i powerspektret jf. afsnit 4.4.4. Testudførsel Testen udføres på en PC, hvor BestemRatio og BestemRatio_testdriver.vi er tilgængelig. Åben BestemRatio_testdriver Indstil Sin1-frekvens og Sin1 Amp til 0 Sæt Sin2 frekvens til 10 og sin2 Amp til 50 Indstil DFO som specificeret i tabel IV.1 Kør programmet i continuous mode og observer testdriverens frontpanel. Gentag proceduren for alle de definerede input. DFO sættes fra 15-20Hz, Sin2-frekvens sættes til 10Hz og Sin2 Amp sættes til 50. Sin1 sættes til 17Hz og Amp 50. Indstil driveren til at give arrays som defineret i tabel IV.2. Kør programmet i continuous mode og observer testdriverens frontpanel. Denne udgave er fra d. 23. maj 2003 kl. 15.38 46 Testdokumentation - PC Gentag proceduren med alle 4 input fra tabellen. DFO sættes fra 25-35Hz, og signalerne som specificeret i tabel IV.3. Instil Sin1 til at give arrays med 512 elementer. Kør programmet i continuous mode og observer testdriverens frontpanel. Gentag proceduren indtil alle de specificerede inputcases er testet. Testen er slut. IV.1.6 Testrapport - Modultest BestemRatio Indledning Modulet blev testet d. 14. maj 2003. Testresultater Testen af gyldige og ugyldige DFO-værdier forløb som forventet. Ved DFOmin større end DFOmax blev der generet en fejl. Ved DFO udenfor EEG-spektret blev det automatisk rettet til værdier indenfor EEG-spektret. Resultat for test af varierende inputarrays forløb også som forventet. Overordnet blev DFO-ratioen mere præcis, jo større input-arrayet var. Testen af den beregnede DFO-ratio forløb også uden afvigelser. Nogle af de forventede DFOratioværdier var estimeret til at ligge i et interval, og i disse tilfælde blev DFO-værdien også en værdi her indenfor. Afvigelser og kommentarer Alle resultater stemte overens med det forventede. De forventede intervaller som nævnt ovenfor er ikke beregnet præcist. Afvigelsen skyldes lækage af frekvenserne indenfor og udenfor DFO. Præcisionen blev højere ved større indputarray hvilket skyldes at en uhensigtsmæssig skærring af signalet vil have større indflydelse på et kort array i forhold til et langt. Afvigelserne kan skyldes at driveren, der blev brugt til at genere EEG-lignende signaler var upræcis. Konklusion Det konkluderes hermed på baggrund af ovenstående resultater, at modulet BestemRatio fungerer efter de opsatte krav i modulspecifikationen. Denne udgave er fra d. 23. maj 2003 kl. 15.38 IV.1 Modultest-PC 47 IV.1.7 Testspecifikation SkrivPatientdata Indledning Formål Formålet med testen er at undersøge, om SkrivPatientdata-modulet kan skrive til patientdatafilen korrekt. Referencer Testspecifikaitonen er udarbejdet på baggrund af moduldesignet jf. afsnit 4.4.4. Testens omfang og begrænsninger Testen bliver udført som en black-box test, hvor kun in- og output bliver testet. Det vil sige, at hver funktion og struktur i modulet ikke bliver testet. Det er endvidere kun Skrivpatientdata-modulet, som testes. Der vil ikke blive testet for ugyldige inputs, da inputs til modulet i processen bliver beskyttet, så modulet ikke kommer til at modtage sådanne inputs. Godkendelseskriterier For at skrivpatientdata kan godkendes skal testen være fejlfri i forhold til de forventede resultater. Testemner Testemnerne er skrivning til patientdatafilen, undersøgelse af eksistensen af patientdatafilen, om modulet er i stand til at slette data fra og føje data til patientdatafilen, samt om det er i stand til at skrive store datamængder til filen. Testdesign Testdriver Der skal anvendes en testdriver, skrivpatientdata_testdriver.vi, som simulerer inputtet til skrivpatientdata. Testdriveren skal simulere alle de typer data, som skrivpatientdata kan blive sat til at skrive til filen. Der skal således i testdriveren kunne vælges, om der ønskes at skrive en patient eller session til filen, om det ønskes at slette eller tilføje et element, samt om det ønskes at indlæse en fil med sessionsdata. Teststub Der skal anvendes en teststub i form af en XML-fil, skrivpatientdata_teststub.xml, indeholdende alle de elementer, det er muligt patientdatafilen kan indeholde. Derudover skal der anvendes en skrivpatientdata_teststub.txt, som indeholder 50 minutters samplet EEG svarende til ca 600.000 værdier. Testen Det startes med at teste, om der kan skrives et element til filen udfra en Xpath. Det skal herunder testes, hvorvidt SkrivPatientdata er i stand til at skrive karakterer af typen a-z, A-Z samt tegnene: “ ”, “:”, ”,” og “-” til filen. Det skal desuden testes, om der oprettes en ny fil, hvis patientdata.xml Denne udgave er fra d. 23. maj 2003 kl. 15.38 48 Testdokumentation - PC ikke eksisterer. Desuden skal det testes, om filen kun åbnes og ikke overskrives, hvis den eksisterer i forvejen. Der skal testes, om der kan skrives elementer med værdier med en længde svarende til 1 times samplet data. Desuden testes, om det er muligt at slette et element udfra en Xpath. Testimplementation Her opskrives oversigter for input og forventet output ved de forskellige tests. Testene foregår i trin, hvor der testes med forskellige input til SkrivPatientdata. De forskellige input er følgende beskrevet: Input A,B,C er et Patient-element og har således attributterne Navn og Personnr. Input D er et Sessionsdata-element og har således attributterne Tidspunkt, Tæskelværdi, DFOmin, DFOmax og Musikmappe. Input A, B og C Følgende tabel viser første input til testdriveren: Input A: Input B: Input C: Navn Arne Olsen Arne Olsen Personnr 123456-1234 123456-1234 patientdatafil ingen teststub.xml teststub.xml XPath /patientdata /patientdata /patientdata/Patient[@Personnr=”123456-1234”] Tabel IV.4: Input A,B og C til testdriveren Output for Input A forventes at være en oprettet patientdatafil, hvori der er skrevet Input A som et Patient-element under patientdata-elementet. Output for Input B forventes at være teststub, hvortil Input B er tilføjet som et Patient-element under patientdata-elementet. Output for Input C forventes at være teststub da Input B nu er fjernet fra teststub igen. Input D Følgende tabel viser Input D til testdriveren: Output for Input D forventes at være Input D skrevet til teststubben som et sessionselement under Input D: Værdi: 123 Tidspunkt: 01.01.01 1:11 Patientdatafil: teststub.xml Tærskelværdi: 0,05 Musikmappe: C: musik DFOmin: 9 XPath: /patientdata/Patient[@Personnr=”010101-1234”] DFOmax: 12 Handling: Tilføj Tabel IV.5: Input D til testdriveren Patienten med navnet Anne Annesen med personnr.: 010101-1234. Testen med Input D gentages, men i stedet for “123” skal værdien være lig med 600.000 samples. Output forventes da at være teststubben tilføjet et sessionsdata-element med en værdi svarende til Denne udgave er fra d. 23. maj 2003 kl. 15.38 Handling Tilføj Tilføj Slet IV.1 Modultest-PC 49 600.000 samples. Som en afsluttende test skrives Input D med 600.000 samples til de resterende Patient-elementer i teststubben. Der skal således benyttes personnumrene fra IV.6: I mindst et tilfælde skal der skrives to sessionsdata-elementer til filen, hvilket gøres ved at ændre Personnumre: 020202-1234 030303-1233 040404-1233 050505-1234 060606-1233 Tabel IV.6: Tabel over personnumre til Input D tidspunktet for nummer to element. Efter afslutningen på denne test forventes det, at der er skrevet et sessionselement til alle Patientelementer, samt to sessionselementer til sidste Patientelement. Testudførelse Input A, B og C Start LabVIEW og indlæs skrivpatientdata_testdriver.vi. Åbn Windows Stifinder, og slet filen “patientdata.xml”, hvis den eksisterer i C: . Eksekver testdriveren Sæt knappen i frontpanelet til “Input A, B og C”. Indtast Navn, Personnummer, og XPath for Input A jvf. tabel IV.4. Sæt Handling til “add new childnode” Tryk på “Skriv til fil”-knappen og iagtag at fejlindikatoren ikke kommer med nogen fejl. Åbne patientdatafilen med Internet Explorer eller kombatibel browser, observer, om filen indeholder det forventede. Omdøb skrivpatientdata_teststub.xml til patientdata.xml og overskriv den eksisterende fil med Windows stifinder Tryk F5 i Internet Explorer og observer, at indholdet af patientdata.xml nu er teststubben. Tjek, at der ikke er ændret på indtastningsfelterne og tryk på “Skriv til fil”-knappen. Det observeres at Fejlindikatoren ikke melder fejl. Observer i Internet Explorer, at Input B er skrevet til patientdata.xml. Skift “Handling” i testdriveren til “remove node”, og indtast XPath i overensstemmelse med Input C i tabel IV.4. Tryk på “Skriv til fil” og tjek i Internet Explorer, om Input B er slettet fra filen. Input D Slå vælgerknappen over på Input D. Indtast de i tabel IV.5 angivne værdier i testdriveren. Skift handling til “add new child node”. Denne udgave er fra d. 23. maj 2003 kl. 15.38 50 Testdokumentation - PC Tryk på “skriv til fil” og undersøg i Internet Explorer, om den forventede sessionsdata er skrevet til patienten med personnummeret 010101-1234. Vælg “Indlæs fil med sessionsdata” Vælg i “sti til teststub med 600.000 samples”, stien til skrivpatientdata_teststub.txt. Tryk på “Skriv til fil”, og vurder i Internet Explorer, om de 600.000 samples er skrevet ind i filen. Tjek i Windows Stifinder om patientdatafilen er på størrelse med skrivpatientdata_teststub.txt. Skift XPath således at x i ...Personnr="xxxxxx-xxxx"], ændres til de i tabel IV.6 angivne værdier, og efter hver værdi er indtastet trykkes på “Skriv til fil”. Skift “Tidspunkt” til “06.06.06 6:06”, efter sessionsdata er skrevet til Patientelementet med det sidste personnr. Tryk på “Skriv til fil”. Det tjekkes i Internet Explorer at indholdet af patientdata.xml er som forventet. Tryk på “Stop testen” IV.1.8 Testrapport - SkrivPatientdata Indledning Modultesten blev gennemført d. 14. maj 2003. Testresultater Der blev testet, om modulet oprettede en ny fil med navnet patientdata.xml i roden på C-drevet, hvis denne ikke allerede eksisterede. Hvis filen eksisterede, blev det testet, om modulet tilføjede og slettede i filen som forventet, og ikke blot overskrev den. Der blev testet om tegn som ”a”, ”A” ”-”,”,” og ”.” kunne skrives til filen. Desuden blev det testet, om modulet var i stand til at skrive en datamængde svarende til en times optaget session til patientdata.xml. Testen at patientdata.xml blev oprettet såfremt den ikke eksisterede, og modulet, hvis filen eksisterede, kunne slette og tilføje data, forløb som forventet. Modulet var i stand til at skrive alle de specificerede tegn. Sidst blev det verificeret, at modulet var istand til at skrive den store datamængde. Afvigelser og kommentarer Der forekom ingen afvigelser fra det forventede. Der er dog visse mangler i testen, såsom ugyldige inputs, men da inputtet til modulet bliver beskyttet af andre moduler, vurderes dette ikke at være kritisk for det samlede program. Skal systemet bruges kommercielt vil en mere grundig test dog være anbefalet. Denne udgave er fra d. 23. maj 2003 kl. 15.38 IV.1 Modultest-PC 51 Konklusion SkrivPatientdata-modulet godkendes til implementering i PC-processen. IV.1.9 Testspecifikation LæsPatientdata Indledning Formål Formålet med testen er at undersøge, om LæsPatientdata-modulet kan læse fra patientdatafilen korrekt. Referencer Testspecifikationen er udarbejdet på baggrund af moduldesignet jf. afsnit 4.4.5. Testens omfang og begrænsninger Testen bliver udført som en black-box test, hvor kun in- og output bliver testet. Det vil sige, at de enkelte funktioner og strukturer ikke bliver testet. Det er endvidere kun LæsPatientdata-modulet, som testes. Godkendelseskriterier For at LæsPatientdata kan godkendes, skal testen være fejlfri i forhold til de forventede resultater. Testemner Testemnerne er læsning fra patientdatafilen, undersøgelse af eksistensen af patientdatafilen, og om modulet kan læse både attributter og værdier. Testdesign Testdriver Testdriveren til LæsPatientdata skal simulere input og output fra LæsPatientdata. Via testdriveren skal det være muligt at indtaste de inputs til LæsPatientdata, som testen kræver, samt at vise outputs fra modulet. Der skal således være inputs til XPath, søgestreng, datatype(værdi eller attribut) og outputs til først fundne værdi og alle fundne værdier. Teststub Der skal desuden anvendes en teststub i form af en XML-fil indeholdende alle de elementer, det er muligt patientdatafilen kan indeholde, hvilket vil sige både patient- og sessionselementer. Testen Der skal testes, om der kan læses element- og attributværdier fra filen udfra en XPath og en søgestreng. Det skal herunder testes, hvorvidt LæsPatientdata er i stand til at læse karakterer af typen Denne udgave er fra d. 23. maj 2003 kl. 15.38 52 Testdokumentation - PC a-z, A-Z, samt : og -, fra filen. Det skal desuden testes, om der oprettes en ny fil, hvis patientdata.xml ikke eksisterer. Desuden skal det testes, om filen kun åbnes og ikke overskrives, hvis den eksisterer i forvejen. Det skal også testes, om det er muligt at få den først fundne elementværdi som output, samtidig med at outputtet også kommer ud som et array. Der skal forsøges at læse en værdi med en længde svarende til 30 minutters samplet data. Testimplementation Her opskrives oversigter for input og forventet output ved de forskellige tests. Der benyttes en testdriver og teststub til at simulere de forskellige inputs og outputs. Der vil være tre forskellige input der testes for sig. Input A Ved Input A testes det, om LæsPatientdata via testdriveren er i stand til at læse navnene fra alle Patientelementerne i teststubben, samt om der læses det det første navn. Inputs kan ses på tabel IV.7. XPath: /patientdata/* Søgestreng: Navn Element/Attribut: Attribut Tabel IV.7: Input A til testdriveren De forventede outputs fremgår af tabel IV.8 Array nr.: 0 1 2 3 “Alle elementer”-array: Anne Annesen Bente Bentesen Carl Carlsen Dorthe Dorthesen Første værdi: Anne Annesen - Tabel IV.8: Forventede outputs til Input A Input B Ved Input B benyttes samme input som ved Input A. Forskellen er, at teststubben fjernes før driveren startes. Det forventes, at outputs bliver tomme. Input C Ved Input C testes det, om LæsPatientdata kan læse værdien af et sessionselement fra teststubben. Sessionselementet har tidspunktet 01.01.01 1:01 og er placeret under patienten med navnet Anne Annesen. Input fremgår af tabel IV.9. Output forventes i både “Alle elementer”-arrayet og Først fundne værdi at være ét element bestående af en streng med værdierne fra sessionen. Strengen skal indeholde ca. 600.000 tal på 1-3 cifre, hvilket svarer til, at der blev samplet i ca. 50 min.. Denne udgave er fra d. 23. maj 2003 kl. 15.38 IV.1 Modultest-PC 53 XPath: /patientdata/Patient[@Navn=”Anne Annesen”] /Sessionsdata[@Tidspunkt=”01.01.01 1:01] Søgestreng: Sessionsdata Element/Attribut: Element Tabel IV.9: Input C til testdriveren Input D Ved Input D testes det, om LæsPatientdata kan læse flere attributter og udskrive dem som array. Attributterne læses som “Tidspunkt” fra alle sessionselementer under patienten med personnummeret 123456-1234. Input fremgår af tabel IV.10. XPath: /patientdata/Patient[@Personnr=”123456-1234”]/* Søgestreng: Tidspunkt Element/Attribut: Attribut Tabel IV.10: Input D til testdriveren Det forventede output fremgår af tabel IV.11: Array nr.: 0 1 2 3 “Alle elementer”-array: 01.02.03 12:21 02.02.03 12:22 03.02.03 12:23 04.02.03 12:24 Første værdi: 01.02.03 12:21 - Tabel IV.11: Forventede outputs til input D Testudførelse Input A Kopier teststub_læspatientdata.txt til C: og omdøb den til patientdata.xml. Slet patientdata.xml, hvis den eksisterer i forvejen. Eksekver testdriveren. Indtast værdierne for Input A, som de fremgår af IV.7. Tryk på “Læs fra fil” og observer outputtet. Input B Slet patientdata.xml fra c-drevet. Tryk på “Læs fra fil” og observer outputtet. Denne udgave er fra d. 23. maj 2003 kl. 15.38 54 Testdokumentation - PC Input C Udfør samme procedure som ved Input A blot med værdierne for Input C, som fremgår af tabel IV.9. Testdriveren kører stadig og behøves således ikke startes op igen. Input D Udfør samme procedure som ved Input B, blot med værdierne for Input D som fremgår af tabel IV.10 Tryk på “afslut test”-knappen. IV.1.10 Testrapport Modultest LæsPatientdata Indledning Modultesten blev gennemført d. 15. maj 2003. Testresultater Der blev testet, hvorvidt modulet registrerede filen patientdata.xml på C-drevet, og om læsning af henholdsvis elementer og attributter fra filen var mulig. Testen viste, at modulet, såfremt patientdata.xml var lokaliseret i roden af C-drevet, kan læse filens elementer og attributter, når XPath til dem blev givet som input til modulet. Når Patientdata.xml blev forsøgt tilgået, selvom en sådan fil ikke var lokaliseret på C-drevet, blev der ingen output-streng givet, der blev dog oprettet Patientdata.xml-fil, desuden blev der genereret en fejlmeddelelse. Dette var ikke oplyst i de forventede resultater, hvilket er en forglemmelse fra programmørens side eller en fejl i programmet, under alle omstændigheder vurderes afvigelsen ikke at være af en sådan karakter, at en rettelse er påkrævet. Afvigelser og kommentarer Ved normal brug viste modulet at fungere korrekt. Der var en afvigelse fra det forudsagte resultat, når der blev læst fra en ikke eksisterende fil, dette vurderes dog ikke at være et problem ved denne prototype, men bør revurderes ved en evt. opdatering af programmet. Hvis modulet kaldes med tomt input i x-path, vil data i patiendata.xml blive slettet. Dette vurderes ikke til at være et problem i det samlede program, da alt input til LæsPatientdata skal være beskyttet af de andre moduler. Konklusion LæsPatientdata-modulet godkendes til implementeringen i det samlede PC-program. Denne udgave er fra d. 23. maj 2003 kl. 15.38 IV.1 Modultest-PC 55 IV.1.11 Testspecifikation Patientvalg Indledning Formål Formålet med testen er at undersøge, om Patientvalg-modulet fungerer efter hensigten. Referencer Testspecifikationen er udarbejdet på baggrund af moduldesignet jf. afsnit 4.4.6. Testens omfang og begrænsninger Testen bliver udført som en black-box test, hvor kun in- og output bliver testet. Det vil sige, at de enkelte funktioner og strukturer ikke bliver testet. Det er endvidere kun Patientvalg-modulet, som testes. Godkendelseskriterier For at Patientvalg kan godkendes, skal testen være fejlfri i forhold til de forventede resultater. Testemner Testemnerne er indtastning af Navn og Personnummer, “Tilføj patient”, korrekt kald af Patientindstillinger, opdatering af “Patient”-array samt dialogbokse i forbindelse med forkert indtastning af navn, personnummer, “Slet patient”og "Vælg patient". Testdesign Teststub Der skal anvendes en teststub, Patientvalg_teststub.vi, som simulerer Patientindstillinger, og teststubben skal ikke gøre andet end vise, hvilket input den får fra Patientvalg-modulet. Inputdata I testen vil der endvidere blive behov for inputdata, Patientvalg_inputdata.xml, der benyttes som patientdatafil og indeholder nogle patientelementer. Testen Testen af Patientvalg går ud på at teste så mange mulige inputs fra behandleren som muligt. Der udføres i testen derfor en række handlinger, som behandleren kunne tænkes at foretage. Herunder hører også handlinger, som ugyldige indtastninger og tilfælde, hvor programmet skal melde fejl til behandleren. Denne udgave er fra d. 23. maj 2003 kl. 15.38 56 Testdokumentation - PC Testimplementation Her opskrives oversigter for input og forventet output ved de forskellige tests. Test af udlæsning af patienter I denne test skal det testes, om Patientvalg-modulet udlæser data fra inputdata korrekt. Ved opstarten af modulet skal værdierne i tabel IV.12 vises i "Patient-arrayet på modulets frontpanel. Navn Kasper Kaspersen Jesper Jespersen Ole Olesen Bente Bentesen Personnummer 123456-7890 234567-8901 345678-9012 456789-0123 Tabel IV.12: Forventet vist input fra patientdatafilen Test af indlæsning af patient Testen fortsættes med test af indlæsning af patient. Der skal indtastes Input A, B, C og D i frontpanelets Navn- og Personnummer-felter. Efter Input D er testet skal det igen indtastes, men istedet for at rette fejlene testes det om indtastningen kan annulleres. Antallet af testede inputs er begrænset, fordi det ville blive en uoverskuelig test, hvis alle mulige inputs blev testet. Under designet af modulet er væsentligt flere inputs dog blevet testet udokumenteret. Inputs fremgår af tabel IV.13 Input A har et gyldigt navn og et gyldigt personnummer. Det forventes derfor, at indlæsningen vil Navn Input A: Input B: "Tomt" Input C: Carl Carlsen Input D: Ærik Eriksen Personnummer Dorthe Dorthesen 678901-2345 1234-123456 789012:3456 567890-1234 Tabel IV.13: Input til navn og personnummer-feltet i Patientvalg-modulet foregå uden fejlmeddelelser. og at "Patient-arrayet opdateres med den nye patient. Input B har et gyldigt personnr men ugyldigt navn, da det er tomt. Det forventes derfor, at der vil vises en dialogboks, hvor behandleren får besked om, at navnet er ugyldigt og skal rettes. Det forventes derudover, at indlæsningen først kan fortsætte, når der skrives et gyldigt navn. Input C har et gyldigt navn men ugyldigt personnr, da det starter med fire tal før bindestregen i stedet for seks. Der forventes det samme som ved Input B, blot at det her er personnr, der skal rettes. Input D har både ugyldigt navn og personnr, da navnet indeholder "æ"og personnr er et tal for kort. Der forventes det samme som ved Input B, blot at det både er navn og personnr, der skal rettes, før der kan fortsættes. Denne udgave er fra d. 23. maj 2003 kl. 15.38 IV.1 Modultest-PC 57 Ved annullering af indtastningen forventes det, at indtastningen stoppes, og der vendes tilbage til frontpanelet, uden at der er skrevet til patientdata-filen Test af sletning af patient Der skal testes, om et tryk på "Slet Patient"sletter den valgte patient fra filen og "Patient-arrayet. Der skal også undersøges, hvad der sker, når der trykkes på slet patient uden, at der er valgt en patient. Ved tryk på "Slet Patient", når der er valgt en patient fra "Patient-arrayet, skal der komme en dialogboks op, der spørger, om behandleren er sikker på, at patienten skal slettes. Ved tryk på "Cancel"skal dialogboksen fjernes, og patienten slettes ikke. Ved tryk på "Ok"skal patienten fjernes fra "Patient-arrayet og patientdatafilen. Når der trykkes på "Slet Patient", og der ikke er valgt en patient fra "Patient-arrayet, skal der komme en dialogboks op, der fortæller, at den valgte patient er ugyldig og sletningen ikke foretages. Ved tryk på "Ok"fjernes dialogboksen. Test af vælg patient Teststubben implementeres og skal kaldes, når der trykkes på "Vælg patient". Der vælges en patient fra arrayet, og der trykkes på "Vælg patient". Det testes også, hvad der sker ved et tryk på "Vælg patient", hvis der ikke er valgt nogen patient. Hvis der er valgt en patient, og der trykkes på "Vælg patient", skal testdriverens frontpanel kaldes, og deri skal den valgte patients navn og personnr stå. Hvis der ikke er valgt en patient, skal teststubbens frontpanel ikke kaldes. Der skal i stedet fremkomme en dialogboks, der gør behanderen opmærksom på, at der ikke er valgt en gyldig patient. Ved tryk på "Ok"skal dialog-boksen fjernes. Test af stop Efter kørslen af ovennævnte testes tryk på "stop-knappen. Det forventes, at Patientvalg-modulet afsluttes. Testudførelse Test af udlæsning af patienter Kopier inputdata til roden på C-drevet og omdøb den til patientdata.xml. Hvis filen eksisterer i forvejen, skal den overskrives. Eksekver modulet. Observer, at "Patient-arrayet indeholder de i tabel IV.12 viste værdier. Test af indlæsning af patient Indtast Input A fra tabel IV.13. Tryk på "Tilføj patient", og observer at "Patient-arrayet er opdateret med den nye patient. Indtast Input B fra tabel IV.13 Denne udgave er fra d. 23. maj 2003 kl. 15.38 58 Testdokumentation - PC Tryk på "Tilføj patient" Tryk på “fortsæt indlæsning” i den fremkomne dialogboks og observer, at der ikke sker noget Skriv "Carl"som navn Tryk på "fortsæt indlæsning", og observer at "Patient-arrayet er opdateret med den nye patient. Indtast Input C, og følg samme procedure som ved Input B, undtagen at der skal indtastes "123456-1234"i stedet for "Carl". Indtast Input D og følge samme procedure som ved Input B og C, undtagen at navn rettes til “Erik Eriksen” og personnr til “789012-3456”. Indtast Input D igen og tryk på “Tilføj patient” Tryk på “annuller” i den fremkomne dialogboks og observer, at patienten ikke skrives til "Patient-arrayet. Åbn patientdata.xml i Internet Explorer, og det undersøg, om de rettede Input A, B, C og D er skrevet til filen. Test af sletning af patient Vælg Kasper Kaspersen fra "Patient-arrayet vha scroll-knappen ved arrayet Tryk på "Slet" Tryk “Cancel” i dialogboksen, og det observeres, at patienten ikke slettes fra "Patient-arrayet Vælg Jesper Jespersen fra "Patient-arrayet Tryk på "Slet" Tryk “Ok” i dialogboksen, og observer, at "Jesper Jespersen"er fjernet fra "patient-arrayet. Vælg i "Patient-arrayet et tomt element. Tryk på "slet patient" Tryk på "Ok"i dialogboksen, der fortæller, at det er en ugyldig patient, og observer, at "Patient-arrayet ikke er ændret. Tryk på F5 i Internet Explorer trykkes, og observer, at det eneste element, der er slettet, er "Jesper Jespersen". Test af vælg patient "Ole Olesen"vælges fra arrayet. Tryk på "vælg patient", og observer, at teststubben bliver kaldt, og at der i Navnefeltet står "Ole Olesen"samt at der i Personnr-feltet står "345678-9012". Der trykkes i teststubben på “tilbage” Vælg et tomt element fra arrayet. Tryk på “Vælg patient”, og observer at der fremkommer en dialogboks, der oplyser, at der er valgt en ugyldig patient. Test af afslut program Tryk på "Luk"og observer, at programmet stoppes. Denne udgave er fra d. 23. maj 2003 kl. 15.38 IV.1 Modultest-PC 59 IV.1.12 Testrapport - Modultest Patientvalg Indledning Modultesten blev udført d. 15. maj 2003. Testresultater Der blev testet for udlæsning af patienter, indtastning af nye værdier, opdatering af “Patient”-array, dialogbokse i forbindelse med forkert indtastning af værdier, korrekt kald af Patientindstillinger med hensyn til input til Patientindstillinger, samt korrekt stop af Patientvalg ved tryk på “Luk”. Udlæsning af nye værdier fungerer efter hensigten, alle atributter fra XML-filen, som udgjorde inputdata, blev gengivet korrekt. Indtastning af nye værdier fungerer som forventet. Opdatering af “Patient” virker som forventet. Fejldialoger fungerer som forventet, og ved tryk på “Ok” eller “Cancel” i dialogerne sker det forventede. Ved kald af patientindstillinger fungerer indtastning af ugyldigt navn eller personnummer fungerer skærmbilledet hvori værdierne skal rettes. Programmet stopper ved tryk på “luk”. Konklusion Da ingen afvigelser fra det forventede resultat er observeret, kan det konkluderes, at modulet fungerer efter de opsatte krav i modulspecifikationen, og kan implementeres i processen. IV.1.13 Testspecifikation Patientindstillinger Indledning Formål Formålet med testen er at undersøge, om Patientindstillinger-modulet fungerer efter hensigten. Referencer Testspecifikationen er udarbejdet på baggrund af moduldesignet jf. afsnit 4.4.7. Testens omfang og begrænsninger Testen bliver udført som en black-box test, hvor kun in- og output bliver testet. Det vil sige, at selve koden ikke bliver testet. Det er endvidere udelukkende Patientindstillinger-modulet, som testes. Godkendelseskriterier For at Patientindstillinger kan godkendes, skal testen være fejlfri i forhold til de forventede output. Denne udgave er fra d. 23. maj 2003 kl. 15.38 60 Testdokumentation - PC Testemner Testemnerne er læsning og anvendelse af Tidspunkt, Tærskelværdi, DFOmin, DFOmax og Portnummer, og der skal testes for korrekt kald af VisResultat- og VisEEG-modulerne og korrekt stop af Patientindstillinger ved tryk på “Tilbage”. Endvidere skal “Slet session” testes og opdatering af “Tidligere sessioner”-array samt dialogbokse i forbindelse med “Slet session” og “Påbegynd ny session”. Testdesign Der skal anvendes en testdriver, Patientindstillinger_testdriver.vi, som kalder Patientindstillinger. Der skal anvendes to teststubbe, Patientindstillinger_teststub1.vi som simulerer VisEEG, og Patientindstillinger_teststub2.vi som simulerer VisResultat. Testdriver skal kalde Patientindstillinger med Patientnavn og Personnummer som input. De to teststubbe skal ikke gøre andet, end vise hvilket input de får, dvs. de skal bestå af en række Control-felter, som repræsenterer de inputs, modulerne vil få. I testen vil der endvidere blive behov for inputdata i form af en XML-fil, Patientindstillinger_inputdata.xml, som indeholder de forskellige nødvendige inputs til testen. Der skal udføres en række tests, hvor inputs er gyldige såvel som ugyldige: 1. “Tilbage” output. Ligeledes med input gælder for “Tilbage”, da denne er uafhængig af andet input og 2. Attributter Test af attributter og efterfølgende indtastning af værdier, hvor gyldige inputs skal indeholde grænseværdier. Ugyldige inputs skal kun indgå i indtastning af værdier, da det ikke er muligt at patientdata indeholder ugyldig data. De ugyldige input skal inkludere ukendt patient, attributter i forsøgsdata som er negative samt positive men over og under grænseværdierne. 3. “Slet session” Her skal “Slet session” og opdatering af “Tidligere sessioner”-array testes. Der skal være inputs, hvor der er ingen, 1 og flere forsøgsdata under patienten. Under testen skal både tryk på “Ok” og “Cancel” undersøges. 4. Modulkald Kald af VisResultat og VisEEG testes. Her er det nødvendigt at teste for, når DFOmin er lig med DFOmax, når DFOmin er større end DFOmax udover gyldig input ved test af kald af VisEEG, da resterende input til modulerne testes i forbindelse med Test 1. Indtastning af portnummer testes også i denne test, da det ikke er muligt at indtaste ugyldigt data i portnummer, skal det blot verificeres, om Patientindstillinger sender Portnummer videre. Ved test af kald af VisResultat skal det udover ved gyldigt input undersøges, hvad der sker når et tomt element i “Tidligere sessioner”-array er markeret. Denne udgave er fra d. 23. maj 2003 kl. 15.38 IV.1 Modultest-PC 61 Testimplementation Her opskrives oversigter for input og forventet output ved de forskellige tests. Der skal anvendes data for fire patienter. Patienternes navne og personnumre skal være som angivet i tabel IV.14. Navn A B C D Personnummer 123456-7890 234567-8901 345678-9012 456789-0123 Tabel IV.14: Patientnavne og personnumre for Patientindstillinger_inputdata.xml 1. “Tilbage” “Tilbage” skal testes med testperson “A”. Værdien af attributterne i inputdata er ligegyldig. Det forventes at Patientindstillinger stoppes ved tryk på “Tilbage”, og at Patientindstillinger_testdriver.vi kommer frem igen. 2. Attributter Patientterne i inputdata skal indeholde attributterne anført i tabel IV.15. A Input A Forv. output B Input B Forv. output C Input C Forv. output D Ingen Input D Forv. output Tærskelværdi 0,4 0,40 0,0 0,00 1,0 1,00 DFOmin 9,0 9,00 0,5 0,50 40,0 40,00 DFOmax 13,0 13,00 0,5 0,50 40,0 40,00 0,50 12,00 15,00 Under testen Tabel IV.15: Input og forventet output for læsning af attributter skal værdierne specificeret i tabel IV.16 indtastes manuelt af testeren ud fra testperson “A”: 3. “Slet session” Der skal anvendes tre forskellige inputs fra inputdata. A som indeholder 1 forsøgsdata-element, B som indeholder 3 forsøgsdata-elementer (alle med gyldig input), og D som ikke indeholder forsøgsdata. Ved sletning af element 0 for A, forventes at alt forsøgsdata slettes fra A, samt at “Tidligere sessioner”-array tømmes. Ved sletning af element 1 for B, forventes at alle forsøgsdata tilhørende element 1 slettes fra B, samt at “Tidligere sessioner” opdateres så element 2 vises som element 1 istedet. Ved tryk på Cancel i dialogboksen skal sessionen ikke slettes, og Patientindstillinger forventes at køre videre. Ved sletning af element 0 i arrayet for D, forventes det, at der fremkommer en fejldialog, ved tryk på “Ok” skal Patientindstillinger fortsætte. Ved sletning af et tomt element i arrayet, forventes det, at der gives en fejlmeddelelse i form af en dialog, og at “brugeren” efter godkendelse vender tilbage til Patientindstillinger. Denne udgave er fra d. 23. maj 2003 kl. 15.38 62 Testdokumentation - PC A Input A Forv. output A Input A Forv. output A Input A Forv. output A Input A Forv. output A Input A Forv. output Tærskelværdi 0,0 0,00 -0,5 0,00 0,0 0,00 100,0 1,00 a 0,40 DFOmin 0,0 0,50 -11,0 0,50 0,1 0,50 100,0 40,00 B 9,00 DFOmax 0,0 0,50 -10,0 0,50 0,3 0,50 5000,0 40,00 : 13,00 Tabel IV.16: Input og forventet output for indtastning af værdier 4. Modulkald Her anvendes A og B, de ønskede værdier for DFOmin og DFOmax opnås ved at bruge de respektive Control-felter. “Vælg session” testes ved brug af B og D. Først skal Arrayelement 1 vælges i B, og ved tryk på “Vælg session” forventes det, at testdriver2 viser det tidspunkt, der står i arrayelement 1 samt B’s Personnr som strings. Derefter skal et tomt element i arrayet markeres, og ved tryk på “Vælg session” forventes det, at der kommer en fejldialog. Det forventes ikke at være muligt at vælge en session ud fra et tomt felt i “Tidligere sessioner”-arrayet. “Start session” testes først ved brug af A. For DFOmin=DFOmax forventes det, at testdriver1, startes op og viser de samme værdier, som der er valgt i Patientindstillinger. For DFOmin>DFOmax skal den den tilhørende dialogboks komme frem. Ved tryk på “Ok” skal Patientindstillinger fortsætte. For DFOmin<DFOmax forventes, at Testdriver1 startes op og viser de samme værdier, som der er valgt i Patientindstillinger. Endvidere forventes det, at portnummeret sendes korrekt videre til VisEEG. Testudførelse Testen udføres på en PC, hvor Patientindstillinger_test.vi, SkrivPatientdata.vi, LæsPatientdata.vi, Patientindstillinger_testdriver.vi, Patientindstillinger_teststub1.vi, Patientindstillinger_teststub2.vi og Patientindstillinger_inputdata.xml ligger. Overfør Patientindstillinger_inputdata.xml til roden på C-drevet og omdøb filen til patientdata.xml Start LabVIEW Åben Patientindstillinger_testdriver.vi Kør Patientindstillinger med “A” som input fra testdriveren 1. “Tilbage” Tryk på “Tilbage” og observer resultatet 2. Attributter Indtast testdata specificeret i tabel IV.14 for “A” i testdriveren Start Patientindstillinger fra testdriveren ved tryk på “Start” Observer værdien af Tærskelværdi, DFOmin og DFOmax og sammenlign med værdierne i tabel IV.15 Stop Patientindstillinger ved tryk på “Tilbage” og gentag for resterende inputs (B,C og D) Gå tilbage til testdrivereren og indtast patientdata for “A” Indtast de ugyldige inputs specificeret i tabel IV.16 og sammenlign outputs med de forventede i tabellen Denne udgave er fra d. 23. maj 2003 kl. 15.38 IV.1 Modultest-PC 63 Stop Patientindstillinger 3. “Slet session” Indtast testdata i Navn og Personnr i Patientindstillinger_testdriver.vi Start Patientindstillinger fra testdriveren Marker det under testimplementation angivne element og tryk på “Slet session” Tryk først “Cancel” og observer resultatet Tryk igen på “Slet session” og tryk denne gang “Ok” i dialogboksen og observer resultatet Stop Patientindstillinger og gentag for samtlige inputs (A,B,D) 3. Modulkald Indtast patientdata i Navn og Personnr for B i testdriveren Marker element 1 i “Tidligere sessioner” Tryk på “Vælg session” og observer resultatet, som vises i Patientindstillinger_teststub2.vi Luk teststub2 Marker et tomt element i “Tidligere sessioner” Tryk på “Vælg session” og observer resultatet Luk Patientindstillinger Indtast patientdata i Navn og Personnr for A i testdriveren, vælg Com2 som Portnummer Tryk på “Påbegynd ny session” og tryk på “Cancel” i fejldialogen Gentag og tryk nu på “Ok” i fejldialogen, observer resultatet som vises i Patientindstillinger_teststub1.vi Luk teststub1 Indstil DFOmin til at være lig med DFOmax vha scrollkontrollen i interfacet i Patientindstillinger Tryk på “Start session og “Cancel” i fejldialogen, observer resultatet, som vises i teststub1 Luk teststub1 Indstil DFOmin til at være større end DFOmax Tryk på “Start session” og observer resultatet Luk teststub1 Luk Patientindstillinger og testdriveren IV.1.14 Testrapport - Modultest Patientindstillinger Indledning Modultesten blev udført d. 15. maj 2003. Testresultater Der blev testet for læsning af atributter, indtastning af nye værdier, opdatering af “Sessioner”-array, fejldialoger, korrekt stop samt kald af andre moduler. Læsning af attributter fungerer som forventet, alle data fra XML-filen, som udgjorde inputdata, blev gengivet korrekt. Indtastning af værdier gav ikke det forventede resultat. Opdatering af “Tidligere sessioner” foregik som forventet. Fejldialoger fungerer som forventet, og ved tryk på “Ok” eller “Cancel” i dialogerne sker det forventede. Patientindstillinger stoppes ved tryk på “Tilbage”. Ved kald af moduler giver Patientindstillinger de rigtige inputs til modulerne. Denne udgave er fra d. 23. maj 2003 kl. 15.38 64 Testdokumentation - PC Afvigelser og kommentarer Ved indtastning af værdier afveg resultatet fra det forventede. Værdierne indskrives i Control-felter, som er indstillet til en bestemt Datarange. Ved indtastning af ugyldige værdier, forventedes det, at Control-felterne viser det tal, som er tættest på inputtet men indenfor Datarange. Dette var heller intet problem, men ved helt ugyldigt input som bogstaver eller tegn, forventedes det, at Control-felterne viste de indlæste værdier. Dette var ikke tilfældet, da Control-felterne viste de sidste indtastede gyldige værdier. Ligeledes ved indtastning af bogstaver afveg Control-felternes reaktion på indtastet data fra det forventede. Det er muligt at skrive “a” i felterne, hvorefter der vises det sidste gyldige input. Derimod kan der slet ikke skrives “B” eller “:” i felterne. De to afvigelser er intet problem i forhold til Patientindstillingers opgave, så afvigelserne accepteres. Konklusion Da det er valgt, at modulet kan godkendes, trods en lille afvigelse fra forventet resultat, kan det konkluderes, at modulet fungerer efter de opsatte krav i modulspecifikationen og kan implementeres i PC-processen. IV.1.15 Testspecifikation - Vis resultat Indledning Formål Formålet med testen er at undersøge, om VisResultat-modulet fungerer efter hensigten. Referencer Testspecifikationen er udarbejdet på baggrund af moduldesignet jf. afsnit 4.4.8. Testens omfang og begrænsninger Testen bliver udført som en black-box test, hvor kun in- og output bliver testet. Det vil sige, at de enkelte dele i modulet ikke bliver testet. Det er endvidere kun VisResultat-modulet, som testes. Godkendelseskriterier For at VisResultat kan godkendes, skal testen være fejlfri i forhold til de forventede resultater. Testemner Testemnerne er læsning og anvendelse af Navn, Tærskelværdi, DFOmin og DFOmax udfra oplyninger om personnummer og Tidspunkt. Endvidere skal det testes, om behandlerens mulighed for valg af minut, mht. visning af EEG, er input-beskyttet, således at det ikke er muligt at vælge et minut udenfor varigheden af den pågældende session. Da sessionerne kan være af variabel varighed, skal det også testes, om de to grafer ændrer skala i henhold til sessionslængden. Denne udgave er fra d. 23. maj 2003 kl. 15.38 IV.1 Modultest-PC 65 Testdesign Da testen er en modultest, vil det foregå med følgende testdrivere og stubbe: Testdrivere Der skal anvendes en testdriver, VisResultat_testdriver.vi, der simulerer input fra Patientindstillinger ved hjælp af to control-felter i test-driveren, hvori Personnummer og Tidspunkt skrives. Endvidere benyttes LæsPatientdata også til testdriver i forbindelse med at hente EEG-data. Teststub Derudover skal der bruges en teststub, VisResultat_teststub.vi, der simulerer BestemRatio ved at sende tilfældige tal mellem 0 og 1 ud. Inputdata Der vil desuden blive behov for en inputdata-fil i form af en XML-fil, der indeholder de forskellige nødvendige inputs til testen. Denne fil skal være af variabel karakter, således at der kan testes for forskelligt input ved læsning af patientdata, og endvidere skal der i stubben være flere forskellige sessionsvarigheder. 1. Læsning fra fil Ved test af læsning fra fil undersøges, om data læst fra filen er korrekt. 2. Sessionsvarighed Ved test af reaktion ved forskellig sessionsvarighed undersøges, om grafer og deslige opdateres med hensyn til varigheden. 3. Valg af minut Ved behandlerens mulighed for valg af minut undersøges det, om grafen opdateres korrekt, og om input er beskyttet korrekt. Testimplementation Ved alle tre tests benyttes samme XML-fil til læsning, og inputtet varieres ved at vælge forskellige patienter, der har forskellige oplysninger og sessionsvarighed. Data i forbindelse med testen skal være i XML-filen som beskrevet i tabel IV.17: 1 2 Navn A A personnummer 123456-1234 123456-1234 Tidspunkt 02.05.03 15:34 07.12.02 12:43 Tærskelværdi 0,6 0,65 DFOmin 11 9 DFOmax 14,5 13 Sessionslængde 299.934 punkter 5.160 punkter Tabel IV.17: Tabellen giver et overblik over hvilke data, der skal være i XML-filen under testen. Sessionslængde skal i filen være rå data i form af integers fra 0 til 255, hvor punkter i tabellen angiver, hvor mange samples der skal være tale om. Grunden til, at antallet af samples ikke er delelig med fx. 60 for minutter, er, at det på denne måde testes, hvorledes modulet opfører sig ved sessionslængder, der ikke er hele minutter. Denne udgave er fra d. 23. maj 2003 kl. 15.38 66 Testdokumentation - PC 1. Læsning fra fil Der sammenlignes input og det forventede output, der læses. 2. Sessionsvarighed Det undersøges, om grafen med DFO-ratio har en minutlængde svarende til antallet af samples. Ved de to test-værdier i tabel IV.17 skal minuttallet være følgende: Antal punkter 299.934 5.160 Antal minutter 24 0 Antal sekunder 59 26 Tabel IV.18: Sammenhæng mellem antallet af samples og længden af en session 3. Valg af minut EEG-signalet på grafen skal opdateres i takt med det minut, behandleren vælger at se. Det undersøges ved input, om grafen opdateres, og om input er beskyttet korrekt. Der må i feltet kun kunne skrives tal fra 0 og indtil sessionslængden. Input, der ses på tabel IV.19, testes ved en datalængde på 299.934 punkter. Input : -2 0 10 30 Forv. output EEG vises fra det sidst indskrevne gyldige minut EEG vises fra minut 2 til 3 EEG vises fra minut 0 til 1 EEG vises fra minut 10 til 11 Fejlmeddelse og minut sættes til sessionslængde (24) Tabel IV.19: Input og forventet output ved test af “valg af minut”. Udførelse af test Testen udføres på en computer, hvor LabVIEW er tilgængeligt. Hent VisResultat_testdriver.vi, LæsPatientdata.vi, VisResultat_teststub.vi, VisResultat_test.vi og VisResultat_inputdata.xml fra ˜/projekt/kode/ Læg VisResultat_inputdata.xml i roden på C-drevet og omdøb den til patientdata.xml LabVIEW startes op. Visresultat_testdriver.vi åbnes. Personnummer og Tidspunkt indtastes i de to dertil indrettede controls. Kør programmet. Undersøg om værdierne, der læses, er korrekte ved at sammenligne dem med værdierne i xml-filen. Dette gøres med begge sessioner. Ved læsning af data fra de to forskellige patienter undersøges, om DFO-ratios x-skala har den korrekte længde (jf. tabel IV.18). Undersøg om sessionslængden skrives korrekt ud til patienten i rubrikken “sessionslængde”. Ved brug af de to patienter afprøves de 4 forskellige input, og det noteres, om output er som forventet (jf. tabel IV.19). Denne udgave er fra d. 23. maj 2003 kl. 15.38 IV.1 Modultest-PC 67 IV.1.16 Testrapport - Modultest VisResultat Indledning Modultesten blev udført d. 15. maj 2003 efter modifikation af kode efter fejl i opdatering af grafer i forbindelse med test d. 14. maj 2003. Reference Testspecifikationerne kan ses i bilag IV.1.15. Testresultater Det blev testet, om data i patientdata.xml blev læst korrekt, om de to grafer blev opdateret korrekt med den rette skala, og om brugerinputtet fungerede efter hensigten og var beskyttet. Data blev læst korrekt, og graferne opdateredes ligeledes korrekt. Ved de to forskellige længder af data, blev sessionslængden udregnet rigtigt og graferne i modulet viste den korrekte længde og de korrekte data. Ved test af input fra brugeren, skete det forventede ligeledes. Afvigelser og kommentarer Ved udregning af sessionslængde og skrivning til brugeren vises længden i minutter og sekunder. Ved specielle input kan udregningen af disse risikere at blive afrundet, og en sessionslængde kan derfor blive vist som 24min. og 60s, selvom det burde være blevet vist som 25min. og 0s. Udover dette blev der ikke fundet nogen afvigelser. Afvigelsen skyldes problemer med afrunding i forbindelse med udregningen af antallet af sekunder, da der i det specielle tilfælde var tale om 59,56 sekunder, og problemet blev løst ved at afrunde sekundantallet ned i stedet for op i modulet. Derved blev outputtet som forventet. Den lille unøjagtighed, der er fremkommet, accepteres, da den kun har æstetisk betydning og ikke har nogen indflydelse på modulets egentlige opgaver. Konklusion Da det er valgt, at modulet kan godkendes med lille risiko for uhensigtsmæssig skrivning af sessionslængde til brugeren, kan det konkluderes, at modulet fungerer efter de opsatte krav i modulspecifikationen og kan implementeres i PC-processen. Denne udgave er fra d. 23. maj 2003 kl. 15.38 68 Testdokumentation - PC IV.1.17 Testspecifikation VisEEG Indledning Formålet Formålet med testen er at undersøge, om modulet VisEEG virker som forventet. Referencer Testen udføres på baggrund af 4.4.9. Testens omfang og begrænsninger blackbox test. I denne test indgår kun modulet VisEEG. Testen udføres som en Godkendelseskriterier Modulet kan godkendes, når testen gennemføres fejlfrit i forhold til forventede resultater. Testemner Der testes, om modulet kan vise EEG-signalet i en graf. Det testes også, om modulet registrerer, hvornår dataværdier overskrider de værdier, der er tilladt, og om der aktiveres en indikator i form af en lampe i skærmbilledet. Testdesign Når testen startes vil skærmbillede for både testdriveren og VisEEG_test.vi vises. Fra testdriverens skærmbillede er det muligt at indtaste det data, der skal sendes til VisEEG_test.vi. Det er desuden muligt at justere amplituden af det signal, der kommer fra den stub, der erstatter LæsCom. Når testen køres, er det muligt at afprøve forskellige amplituder, imens grafen hele tiden opdateres. På driverens skærmbillede vises også det data, der sendes videre fra VisEEG_test.vi. Testdriver Til testen benyttes en testdriver, som kan justere den stub, der erstatter LæsCom. Fra testdriveren sendes data til VisEEG_test.vi. bestående af; personnummer, DFOmin, DFOmax og tærskelværdi. Der vises desuden, hvilken data der sendes fra VisEEg_test.vi. Teststub Der anvendes tre teststubbe i testen, hvor et simulerer LæsCom og laver input ved hjælp af en signalgenerator. Denne sender 40 elementers arrays til VisEEG_test.vi. De andre to simulerer Denne udgave er fra d. 23. maj 2003 kl. 15.38 IV.1 Modultest-PC 69 Feedback og StartStopMSP. Stubben der erstatter Feedback.vi skal modtage data bestående af; Navn, Personnummer, DFOmin, DFOmax, Portnummer og Tærskelværdi. Inputdata Modulet modtager input fra teststubben, der erstatter LæsCom. Dette er 40 elementers arrays med værdier liggende i intervallet 0 - 255. Der modtages også input fra driveren som tidligere nævnt. 1. Graf og indikator Værdierne fra testdriveren sendes til modulet, hvorefter VisEEG-skærmbilledet iagttages. Data der sendes fra VisEEG_test.vi bekræftes ved at se på driverens skærmbillede. Testimplementation Af tabel IV.20 ses input og forventede resultater for test af VisEEG. Signalets amplitude 50 107 108 Pærens tilstand Lampen lyser ikke. Lampen lyser ikke. Lampen lyser. Tabel IV.20: Input og forventede resultater for test af VisEEG Det forventes desuden at output fra VisEEG_test.vi er identisk med det der er indtastet i driverens skærmbillede. Af tabel ??. Felt i testdriver Navn Personnr. 108 Input Ole Olsen. 010101-1234. Lampen lyser. Tabel IV.21: Input til testdriver Udførelse af test Testen udføres efter følgende fremgangsmåde: LabVIEW startes Filen VisEEG_testdriver.vi åbnes Data indtastes i testdriveren. Amplituden sættes til 50 og modulet startes hvorefter skærmbilledet for VisEEG_test.vi ses. Grafen og lampens tilstand iagtages. Det noteres også om output fra VisEEG_test.vi stemmer overnes med det forventede. Fra driverens skærmbillede justeres amplituden til henholdsvis 107 og 108 mens VisEEG-skærmbilledet kontrolleres. Resultaterne sammenlignes med det forventede. Denne udgave er fra d. 23. maj 2003 kl. 15.38 70 Testdokumentation - PC IV.1.18 Testrapport - Modultest VisEEG Indledning Testen blev udført d. 16. maj 2003. Testresultater Det signal, der blev sendt ind til modulet blev vist som forventet, og der blev indikeret til brugeren, hvis signalamplituden var uden for det definerede område (20-235). Konklusion Det kan hermed konkluderes at modulet fuldt ud fungerer efter de i modulspecifikationens opsatte krav. IV.1.19 Testspecifikation Feedback Indledning Formål Formålet med testen er at undersøge, om modulet Feedback virker som forventet. Referencer Testen udføres på baggrund af 4.4.10. Testens omfang og begrænsninger I denne test indgår kun modulet Feedback. Testen udføres som en blackbox-test. Godkendelseskriterier Modulet kan godkendes, når testen gennemføres fejlfrit i forhold til de forventede resultater. Testemner Der testes, om modulet kan ændre feedback korrekt i forhold til DFO-ratio og tærskelværdi for den pågældende patient. Det testes desuden, om modulet kan gemme alle informationerne om patienten, når en session sluttes. Det testes også, om playlistefunktionen virker som ønsket. Musikformater testes også, idet det skal være muligt at spille både wav-filer og mp3-filer. Denne udgave er fra d. 23. maj 2003 kl. 15.38 IV.1 Modultest-PC 71 Testdesign Testen er lavet således, at det første skærmbillede, der vises, er testdriveren. Derfra er det muligt at indtaste den fornødne data til Feedback_test.vi. Når der trykkes på “Start”, vil skærmbilledet for Feedback_test.vi komme frem. Derfra er det muligt at vælge musik og starte samt stoppe en session. Der bruges en modificeret udgave af Feedback.vi, idet der på dens skærmbillede er placeret en indikator, der løbende viser værdien af den simulerede DFO-ratio. Der er desuden indsat et delay, så alt på skærmbilledet sker i et tempo, der gør det muligt for testpersonen af følge med. Testdriver Til testen er der udarbejdet en testdriver, der sørger for input til modulet i form af Personnummer, Tærskelværdi, DFOmin, DFOmax og Navn. Teststubbe Der er lavet teststubbe, der bruges som afløser for; LæsCom.vi og BestemRatio.vi. Stubben der erstatter LæsCom, består af en funktionsgenerator, der udsender 40 elementers arrays. Den er sat op til at have et offset på 127, så værdierne ser ud som dem, der måtte komme fra den rigtige LæsCom. Til ratioen bruges en funktion, der laver tilfældige tal liggende mellem 0 og 1. Disse sendes ud enkeltvis. Inputdata Modulet skal have input i Wave- og MP3-format. 1. Feedback: Testen køres, hvorved modulet modtager simuleret DFO-ratio. Det undersøges, om barren skifter farve og placering, samt om musik afspilles og pauses på de rigtige tidspunkter. Der skal i denne test også lægges mærke til de to sorte barrer, der repræsenterer tærskelværdien. Det undersøges også her, om det rigtige patientnavn fremgår af skærmbilledet. 2. Playlistefunktion: Testen køres, og der vælges en wav-fil samt en mp3-fil til playlisten. En session køres til begge numre er afspillet for at iagttage, om modulet skifter nummer, samt om playlisten starter forfra efter den sidste fil. Det afprøves også, om der kommer en scrollbarre frem, når listen fyldes. Til sidst afprøves det, om playlisten kan tømmes ved tryk på “Ryd playlisten”. Det skal også bekræftes, om playlisten samt knapper forsvinder ved tryk på “Start”, hvorefter en stop-knap kommer frem. 3. Lagring af data filen. Efter endt session skal det undersøges, om det rigtige data er gemt i patientdata- Testimplementation Her ses de forventede input og output under testene. Input fra testdriveren ses i tabel IV.22. Denne udgave er fra d. 23. maj 2003 kl. 15.38 72 Testdokumentation - PC CPR.NR 010101-1234 Tærskelværdi 0,2 DFOmin 10 DFOmax 20 Navn Anne Annesen Tabel IV.22: Input fra driveren til Feedback under testen Test1 De forventede resultater af testen, fremgår af tabel IV.23. Tærskelværdi 0,2 0,2 DFO-ratio 0,2< 0,2> Forventet feedback Barre skal være grøn og ligge over tærskelværdien. Der spilles musik. Barre skal være rød og ligge under tærskelværdien. Musikken pauses. Tabel IV.23: Forventede resultater for test af feedback Test2 Modulet skal kunne afspille både wav-filer og mp3-filer. Det forventes, at når et nummer er slut, vil det næste i playlisten blive spillet. Det forventes desuden, at hvis det sidste nummer i playlisten er afspillet, vil denne blive startet forfra. Ved tryk på “Ryd playlisten” skal alle numre i listen fjernes. Hvis listens indhold overskrider 10 musiknumre, skal en scrollbarre vises. Når der trykkes på “Start”, skal alle knapper samt playlisten forsvinde, og en stop-knap skal vises istedet. Test3 Indholdet af patientdatafilen efter endt session skal stemme overens med tabel IV.24. Det forventes også, at der i filen under Sessionsdata ligger en vis mængde data bestående af tal fra 0 til 255. Denne mængde kan beregnes med formlen: Antal datapunkter Tid 40tal 2s (IV.1) Der skal tages forbehold for en lille afvigelse grundet delay samt aflæsning af start- og stoptidspunkt. Tidspunkt der står skrevet i filen skal stemme overens med tidspunktet for udførelse af testen. DFOmin 10 DFOmax 20 Tærskelværdi 0,2 Personnummer 010101-1234 Tabel IV.24: Forventet indhold i patientdatafilen, efter test af lagringsfunktion Udførelse af test Til udførelse af testene bruges følgende fremgangsmåde: Test1 Kopier filen Patientdata.xml ind på harddisken under c: Denne udgave er fra d. 23. maj 2003 kl. 15.38 IV.1 Modultest-PC 73 Start Labview op. Åben filen Fedback_testdriver.vi. Indtast informationerne fra tabel IV.22, når driverens skærmbillede fremkommer. Kør filen og Feedback_testskærmbilledet ses. Kontroller, om det er det rigtige patientnavn, der ses i toppen af skærmen. Vælg dernæst et musikstykke ved tryk på “Tilføj ny sang”. Tryk på “Start”, for at begynde session. Sammenlign feedback med det forventede som ses i tabel IV.23. Tryk til sidst på “Stop”, for at stoppe sessionen. Test2 Kopier filen Patientdata.xml ind på harddisken under c: Start Labview op. Åben filen Fedback_testdriver.vi. Indtast informationerne fra tabel IV.22, når driverens skærmbillede fremkommer. Kør filen Feedback_test.vi og Feedback_test-skærmbilledet kommer frem. Vælg dernæst at tilføje over 10 musikstykker og noter om en scrollbarre kommer frem. Afprøv dernæst om listen tømmes ved tryk på “Ryd playlisten”. Indlæs påny en wav-fil og en mp3-fil. Tryk på “Start”. Vent til begge musiknumre er afspillet, og kontroller, om der skiftes nummer, samt om playlisten begynder forfra efter det sidste nummer. Tryk til sidst på “Stop”, for at stoppe sessionen. Sammenlign med de forventede resultater. Test3 Kopier filen Patientdata.xml ind på harddisken under c: Start Labview op. Åben filen Fedback_testdriver.vi. Indtast informationerne fra tabel IV.22, når driverens skærmbillede fremkommer. Kør filen og Feedback_testskærmbilledet kommer frem. Vælg dernæst et musikstykke ved tryk på “Tilføj ny sang”. Noter tidspunkt og tryk på “Start”, for at begynde session. Vent et stykke tid. Noter tidspunkt tryk på “Stop”, for at stoppe sessionen. Beregn antallet af forventede datapunkter ud fra sessionens længde. Åben patientdatafilen som ligger i c: Kopiere værdierne under sessionsdata og læg dem ind i Word. Vælg wordcount. Sammenlign resultatet af wordcount med, egne beregninger. tabel IV.24. Denne udgave er fra d. 23. maj 2003 kl. 15.38 74 Testdokumentation - PC IV.1.20 Testrapport - Modultest Feedback Indledning Modulet blev testet d. 15. maj 2003. Testresultater Testen af Feedback-modulet var opdelt i 3 tests. Den første test beskæftigede sig hovedsageligt med auditivt og visuelt feedback under en session, den anden testede playlistens funktioner, og den sidste testede, om modulet gemte data efter endt session. Testens resultater stemte i alle tilfælde overens med det forventede resultat. Afvigelser og kommentarer Der blev under testen, før og efter eksekvering af modulet afspillet musik. Tilsyneladende afspilles den fil Mediaplayer sidst havde afspillet ved opstart af modulet. Under eksekveringen af Feedback-modulet blev afspilningen af musik dog udført som forventet. En ukontrolleret afspilning af lyd-filer under benyttelsen af BrainTrainer-programmet er ikke ønskelig. Det vurderes dog ikke som kritisk for systemets anvendelse at få rettet fejlen på nuværende tidspunkt, idet der er tale om en prototype. Konklusion Feedback-modulet godkendes til implementering i PC-processen. IV.2 Modulintegration - PC IV.2.1 Testspecifikation - PC-proces Indledning Formål Testen har til formål at teste, hvorvidt modulerne, der indgår i PC-processen, fungerer sammen, ved at integrere modulerne trinvis. Referencer Testspecifikationen er udarbejdet på baggrund af procesdesign afsnit 4.4 side 70. Denne udgave er fra d. 23. maj 2003 kl. 15.38 IV.2 Modulintegration - PC 75 Omfang og begrænsninger Testen behandler kun PC-processen, der er således ingen andre processer eller enheder, der kan godkendes som følge af denne test. Testen begrænses til gyldige input, da de enkelte moduler er testet med ugyldige input under modultest. Når moduler kommunikerer med ydre enheder, vælges det at benytte de virkelige enheder. Dette er muligt, idet de eksterne enheder af systemet bliver testet parallelt med denne test under systemtesten afsnit 5.1 side 5.1. Godkendelse Såfremt der forekommer misforhold mellem forventet og reelt resultat, skal fejlen vurderes og afhængig af fejlens omfang og tidsressourcer til rådighed, skal fejlen enten accepteres eller rettes. I tilfælde af at fejlen rettes, skal en ny test udføres med det af fejlen afhængige omfang. Testemner Testemnerne udgøres af grænsefladerne mellem de enkelte moduler, som integreres jf. moduldiagrammet på figur 4.12 side 74. Altså testes, hvorvidt modulerne kalder hinanden korrekt og derved giver et korrekt output ved gyldige input. Testdesign Testen designes som en kombination af en Bottom-Up- og en Top-Down-test. Hvert skærmbilledemodul integreres først med de moduler uden skærmbillede, som det pågældende modul kalder, svarende til en Bottom-Up-test. Efter at de enkelte skærmbillede-moduler er integreret med underliggende moduler, integreres skærmbillede-modulerne Top-Down dvs. startende med Patientvalg. Testdesignet resulterer i modulintegrationsplanen, som vises på figur IV.1, hvor P# angiver de midlertidige "processer", integrationen resulterer i, og svarer til den kronologiske opbygning af testen. P9 angiver således Denne udgave er fra d. 23. maj 2003 kl. 15.38 76 Testdokumentation - PC den færdigt integrerede PC-proces. Î Ï Ð Ü Ý Ñ Þ Ò ß Ó à Ô á Õ â ã ä å æ ÿ Ö × ç Ø è é Ù ê Ú ë Û ì í î ï ð ñ ò ý ¶ · ¸ ¹ º þ » ÷ ¼ ½ ¾ ¿ À ø Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í û õ « ¬ ® ¯ ° ± ² ³ ´ ö ó ü µ ù ¡ ¢ £ ¤ ¥ ¦ § ¨ © ú ô ª Denne udgave er fra d. 23. maj 2003 kl. 15.38 Figur IV.1: Modulintegrationsplan for PC-processen, som viser, hvornår de enkelte moduler integreres. P# angiver de midlertidige processer, og P9 angiver den samlede PC-proces IV.2 Modulintegration - PC 77 Testdrivere For at kunne teste midlertidige processer ved Bottom-Up-integrationen, skal en række testdrivere anvendes. Til dette kan testdriverne fra modultest af skærmbillede-modulerne anvendes. Ved Top-Down-integrationen er testdrivere unødvendige. Der skal anvendes en ekstern testdriver til at starte og stoppe MSP430, hvilket modulet Readport.vi kan anvendes til. De nødvendige testdrivere bliver således: Feedback_testdriver.vi, VisEEG_testdriver.vi, VisResultat_testdriver.vi og Readport.vi. Teststubbe Inden alle modulerne er integreret i de respektive skærmbillede-moduler og integrationen er blevet testet, skal skærmbillede-modulerne indeholde teststubbe for endnu ikke integrerede moduler. Dvs. at følgende teststubbe fra modultests skal anvendes: Feedback_teststub2.vi, Feedback_teststub3.vi og VisEEG_teststub2.vi. Inputdata Input skal være i form af et kendt signal sendt til Com-porten samt en XML-fil (PCproces_inputdata.xml). Endvidere skal der anvendes et musikstykke i Wave- og Mp3-format. For at kunne teste de moduler, som afhænger af LæsCom, anvendes enhederne EEG-afledning, Digitalt Interface samt MSP430, som parallelt med modulintegrationstesten er blevet testet i systemintegrationstesten, se afsnit 5.1. På denne måde muliggøres, at teste modulerne med et digitalt signal som input på Com-porten. Signalet skal være et kendt sinussignal, således det er muligt at vurdere outputtet. Testen resulterer i følgende testcases: P1 Feedback integreres med BestemRatio og LæsCom på en gang, da de to moduler er sammenkædet i Feedback, og det vil derved ikke være muligt at udføre en tilstrækkelig test, før begge moduler er integreret. Til testen skal der sendes et gyldigt sinussignal ind på EEG-afledningsenheden, og det resulterende signal på Com-porten anvendes som input til Feedback. Feedback kaldes med de nødvendige inputs vha. Feedback_testdriver.vi og microcontrolleren aktiveres via Readport.vi. Herudover skal et musikstykke i Wave- eller mp3-format anvendes som inputdata. Testen godkendes ud fra den resulterende feedback i Feedback. Endvidere skal der testes for, om de optagede data er gemt efter tryk på ”Stop”. P2 Ved integrationen af StartStopMSP med P1, undersøges det samme som ved testen af P1, samt om Feedback vil kunne stoppe microcontrollerens signalprocessering. Readport.vi anvendes til at undersøge microcontrollerens tilstand før og efter Feedback er eksekveret, for at se om modulet har udført den ønskede handling korrekt. P3 Ved integrationen af VisEEG og LæsCom anvendes VisEEG_testdriver.vi til at køre VisEEG med de nødvendige inputs. P3 testes ved at sende et gyldigt sinussignal ind på EEG-afledningsenheden og anvende det resulterende signal på Com-porten som input. Readport.vi anvendes til at starte signalprocesseringen på MSP430. P4 StartStopMSP integreres med P3, og derved er det nødvendigt at undersøge, om VisEEG kan starte microcontrollerens signalprocessering. Ved at anvende samme input som ved testen af P3, skal Denne udgave er fra d. 23. maj 2003 kl. 15.38 78 Testdokumentation - PC VisEEG kunne starte signalprocesseringen på MSP430 og gengive det modtagne signal. Endvidere skal det testes, hvordan der reageres, hvis microcontrolleren er slukket ved opstart, samt hvis den slukkes efter opstart. P5 Ved integrationen af VisResultat med BestemRatio anvendes PC-proces_inputdata.xml som inputdata. Endvidere er det nødvendigt med VisResultat_testdriver.vi til at køre VisResultat med nødvendige inputs. Inputdata skal indeholde data for et gyldigt sinussignal, og testen udgøres af en vurdering af de resulterende grafer i VisResultat. P6 Ved integrationen af Patientvalg med Patientindstillinger undersøges Patientvalg’s kald af Patientindstillinger. Først skal en ny patient tilføjes, hvorefter Patientindstillinger skal kaldes. P7 Ved integrationen af P6 med P5 skal Patientindstillingers kald af VisResultat undersøges. Endvidere undersøges Patientvalgs kald af Patientindstillinger ved en kendt patient. Til testen skal PCproces_inputdata.xml anvendes. I Patientvalg kaldes Patientindstillinger med den kendte patients data som input. Patientindstillinger skal så kunne kalde VisResultat med patientens data. P8 Ved integrationen af P4 med P7 skal Patientindstillingers kald af VisEEG ligeledes undersøges. Testen skal gennemløbes som en session med en ny patient, hvor der i Patientvalg skal vælges patienten fra testen af P6 uden sessionsdata. Efter kald af Patientindstillinger, skal grænseværdier indstilles, og VisEEG skal i Patientindstillinger kaldes. Inputtet skal ligesom ved testen af P4 bestå af et sinussignal indenfor de definerede grænseværdier fra microcontrolleren. Efter at have undersøgt resultatet på VisEEG, skal det være muligt at gå til tilbage til Patientindstillinger og derfra videre tilbage til Patientvalg, hvorfra programmet skal kunne stoppes. P9 Efter den sidste integration af P3 med P8 skal testen forløbe ligesom ved testen af P8. Fra VisEEG skal Feedback kaldes. I Feedback skal sessionen startes, og efter cirka 1 minut skal resultatet gemmes. Herefter undersøges, hvorvidt det er muligt at gå tilbage til Patientindstillinger og i Patientindstillinger kalde VisResultat med det netop gemte resultat som input. Til sidst undersøges, om det er muligt igen at stoppe programmet. Testimplementation P1 Inputtet sættes til et 10Hz sinussignal med en amplitude på 50µV ført ind på EEG-afledningsenheden. Forstærkningstrinnet på EEG-afledningsenhdeen sættes til 4, svarende til en forstærkning på 20.000. Feedback_testdriver.vi sættes til at give Feedback input som anført i tabel IV.25 I playlisten skal der loades to musikstykker, et i Wave- og et i Mp3-format. Det forventes, at DFO-ratio får værdien 1, og musikken dermed afspilles og barren bliver grøn. Det forventes, at de opsamlede data gemmes under “A” i forsøgsdata med det rigtige sluttidspunkt efter tryk på “Stop”. Denne udgave er fra d. 23. maj 2003 kl. 15.38 IV.2 Modulintegration - PC Navn A 79 Personnummer 010203-1224 Tærskelværdi 0,4 DFOmin 8,0 DFOmax 12,0 Tabel IV.25: Input for Test af P1 P2 Det forventes, at microcontrolleren stopper signalprocesseringen efter tryk på "Stop session" i Feedback. P3 Inputtet sættes til et 10Hz sinussignal med en amplitude på 50µV tilsluttet EEG-afledningsenheden, hvor forstærkningen skal sættes til 20.000. Det forventes, at signalet gengives som en 10Hz sinuskurve i VisEEG-skærmbilledet. Inputtet fra VisEEG_testdriver.vi sættes til at være som angivet i tabel IV.26. Navn A Personnummer 010203-1224 Tærskelværdi 0,4 DFOmin 8,0 DFOmax 12,0 Tabel IV.26: Input for Test af P3 P4 Inputtet sættes til et 10Hz sinussignal med en amplitude på 50µV ført ind på EEG-afledningsenheden, som sættes til at forstærke 20.000 gange. Inputtet fra testdriveren sættes til det samme som ved test af P3. Det forventes, at microcontrolleren startes, når VisEEG kaldes af testdriveren, og at VisEEG ligesom ved test af P3 gengiver inputsignalet. Når microcontrolleren er slukket eller slukkes forventes det, at der kommer en fejldialog. Ved tryk på “Tilbage” forventes det, at VisEEG stopper. Ved tryk på “Prøv igen”, forventes at signalprocessering starter på microcontrolleren, såfremt denne er tændt igen. P5 Inputdata skal bestå af PC-proces_inputdata.xml, som skal indeholde en patient med attributter som specificeret i tabel IV.27 Navn A Personnummer 010203-1224 Tærskelværdi 0,4 DFOmin 8,0 DFOmax 12,0 Tidspunkt 01.02.03 12:34 Tabel IV.27: Input for Test af P5 Derudover skal XML-filen indeholde sessionsdata fra minimum 5 minutter i form af et 10Hz (samplingsfrekvens på 200Hz) sinussignal med en amplitude på 100, svarende til binære værdier i intervallet 27-227 (Nulpunkt i 127). Det forventes, at signalet, som vises i VisResultat, gengives korrekt i tidsdomænet, samt at DFO-ratioen ligger konstant på 1. P6 En ny patient skal tilføjes med data som specificeret i tabel IV.28. Denne udgave er fra d. 23. maj 2003 kl. 15.38 80 Testdokumentation - PC Navn B Personnummer 020303-2224 Tabel IV.28: Input for test af P6 Det forventes, at Patientindstillinger kaldes ved tryk på "Vælg patient", og at der i Indicator-felterne står værdierne anført i tabel IV.29. Tærskelværdi 0,5 DFOmin 12,0 DFOmax 15,0 Tabel IV.29: Forventet output for Test af P6 Endvidere forventes det, at der ikke er nogen elementer i "Tidligere Sessioner". P7 Inputtet skal være samme inputdata som i test af P5. Efter valg af Patienten i PatientValg, forventes det, at tidspunktet "01.02.03 12:34" ses som det eneste element i “Tidligere Sessioner”. Ved tryk på "Vælg session" i Patientindstillinger, forventes det, at VisResultat kaldes, og at resultatet i VisResultat er det samme som i testen af P5. P8 Inputtet sættes til et 10Hz sinussignal med en amplitude på 50µV tilsluttet EEG-afledningsenheden. Forstærkningstrinnet på på EEG-afledningsenheden sættes til 4, svarende til en forstærkning på 20.000. Patienten fra testen af P6, kan genbruges i denne test. Værdierne i Patientindstillinger skal indstilles de i tabel IV.30 angivene værdier. Tærskelværdi 0,4 DFOmin 8,0 DFOmax 12,0 Tabel IV.30: Input for Test af P8 Det forventes, at ved tryk på "Start session" i Patientindstillinger, at VisEEG kaldes og gengiver inputsignalet som et 10Hz sinussignal, som ikke skæres, samt at VisEEG viser de rigtige værdier for navn og personnummer. P9 Inputtet sættes til det samme som ved testen af P8. Det forventes, at DFO-ratioen er 1 og dermed at musikken afspilles og barren bliver grøn i Feedback. Herudover forventes, at EEG-data gemmes ved tryk på "Stop session" i Feedback. Endvidere forventes det, at den nye session ses i "Tidligere sessioner-arrayet i Patientindstillinger, samt at VisResultat ved tryk på "Vælg session" i Patientindstillinger gengiver signalet korrekt i tidsdomænet, og at DFO-ratioen er konstant 1 i VisResultat. Til sidst skal det være muligt helt at kunne stoppe programmet i Patientvalg. Denne udgave er fra d. 23. maj 2003 kl. 15.38 IV.2 Modulintegration - PC 81 Udførsel af test Testen udføres på en computer, hvor samtlige PC-processens moduler er tilgængelige samt alle beskrevne testdrivere og teststubbe. PC-proces_inputdata lægges i roden på C-drevet med navnet patientdata.xml. Endvidere skal projectboardet med EEG-afledningsenheden, MSP430 og det digitale interface tilsluttes computeren via et serielt kabel af RS232-standarden til Com-porten, og en elektrodehætte skal sluttes til EEG-afledningsenheden. Elektrodehætten tilsluttes en signalgenerator, hvor signalgeneratorens positive output tilsluttes C3, og signalgeneratorens negative output tilsluttes den fælles jord på projectboardet. P1: Implementer LæsCom og BestemRatio i Feedback Indstil Signalgeneratoren til det definerede signal. Tænd for strømforsyningen til MSP430 Sæt EEG-afledningsenheden til at fjerde trin Indstil Feedback_testdriver.vi til at give de i tabel IV.25 definerede inputs Start signalprocessering på MSP430, ved at sende "1" til den over Com-porten vha. Readport.vi Kør Feedback i testdriveren, og observer resultatet Stop Feedback og observer resultatet i patientdata.xml Stop microcontrolleren ved at sende "0" til den over Com-porten vha. Readport.vi P2: Implementer StartStopMSP i Feedback Start signalprocessering på MSP430 vha. Readport.vi Kør Feedback fra testdriveren med samme input som under testen af P1, og observer resultatet Tryk på "Stop" i Feedback og observer resultatet Luk Feedback og Feedback_testdriver.vi Kør Readport.vi og undersøg, om signalprocesseringen er stoppet på microcontrolleren Luk Readport.vi P3: Implementer LæsCom i VisEEG Indstil VisEEG_testdriver.vi til at give de i tabel IV.26 definerede inputs Start signalprocessering på MSP430 vha. Readport.vi Luk Readport.vi Kør VisEEG fra testdriveren og observer resultatet Stop signalprocessering på MSP430 vha. Readport.vi Luk Readport.vi P4: Implementer StartStopMSP i VisEEG Kør VisEEG fra testdriveren og observer resultatet Sluk microcontrolleren Tryk på “Tilbage” i dialogboksen og observer resultatet Kør VisEEG igen Tænd microcontrolleren Tryk på “Prøv igen” i dialogboksen og observer resultatet Denne udgave er fra d. 23. maj 2003 kl. 15.38 82 Testdokumentation - PC Stop VisEEG og luk testdriveren Stop signalprocessering på MSP430 vha. Readport.vi P5: Implementer BestemRatio i VisResultat Indstil VisResultat_testdriver.vi til at give de i tabel IV.27 definerede inputs Kør VisResultat fra testdriveren og observer resultatet Luk VisResultat_testdriver.vi og VisResultat P6: Implementer Patientindstillinger i Patientvalg Kør Patientvalg Indtast patientdata defineret i tabel IV.28 og tryk på “Tilføj” Marker den tilføjede Patient og tryk på “Vælg”, observer resultatet i Patientindstillinger Tryk på “Tilbage” i Patientindstillinger Luk Patientvalg P7: Implementer VisResultat i Patientindstillinger Marker patienten fra testen af P5 og tryk “Vælg” i PatientValg Marker element 0 i “Tidligere sessioner”-arrayet i Patientindstillinger Tryk “Vælg session” og observer resultatet Tryk på “Tilbage” i VisResultat og derefter i Patientindstillinger P8: Implementer VisEEG i Patientindstillinger Marker den “nye” patient fra testen af P6 i PatientValg og tryk på “Vælg” Indstil grænseværdier i Patientindstillinger til de i tabel IV.30 specificerede værdier Tryk på “Start session” og observer resultatet. Tryk på “Tilbage” i VisEEG og Patientindstillinger Luk Patientvalg Stop signalprocessering på MSP430 vha. Readport.vi P9: Implementer Feedback i VisEEG Kør PatientValg og marker patienten fra testen af P6 og P8 Tryk på “Vælg” i PatientValg Indstil grænseværdierne til de i tabel IV.30 specificerede i Patientindstillinger og tryk på “Start session” Observer signalets udseende i VisEEG og tryk på “Start Feedback” Tryk på “Start” i Feedback og observer resultatet Lad Feedback køre i minimum 1 minut og tryk derefter på “Stop” Tryk på “Tilbage” i Feedback og VisEEG Marker den nye session i “Tidligere sessioner”-arrayet i Patientindstillinger Tryk på “Vælg session” i Patientindstillinger og observer resultatet i VisResultat Tryk på “Tilbage” i VisResultat og Patientindstillinger Tryk på “Luk” i Patientvalg Sluk for strømforsyningen til MSP430 Denne udgave er fra d. 23. maj 2003 kl. 15.38 IV.2 Modulintegration - PC 83 IV.2.2 Testrapport - PC-proces Indledning Modulintegrationstesten blev udført d. 16. og 17. maj 2003. Reference Testspecifikationerne kan ses i bilag IV.2.1. Testresultater PC-processens indre grænseflader blev testet ved at teste processens modulers indbyrdes kald af hinanden med henblik på input og output. Feedback’s anvendelse af LæsCom fungerer som forventet, modulet kan give feedback på baggrund af et inputsignal fra Com-porten. Feedback’s anvendelse af BestemRation fungerer ligeledes efter forventningerne. Feedback er i stand til at kalde StartStopMSP og derved stoppe signalprocessering på microcontrolleren ved tryk på “Stop”. Derudover gemmes resultatet rigtigt i patientdata.xml. VisEEG’s anvendelse af LæsCom fungerer også efter forventningerne, signalet modtaget fra Comporten gengives korrekt. VisEEG anvender også StartStopMSP efter specifikationen og starter microcontrolleren, og hvis microcontrolleren er slukket ved opstart eller slukkes under kørsel af VisEEG gives en fejldialog, hvorfra det er muligt at lukke VisEEG eller forsøge at starte signalprocesseringen igen. VisResultat anvender BestemRatio korrekt ud fra testspecifikationerne, og gengiver signaler fra inputdata korrekt i tidsdomænet såvel som ved den beregnede DFO-ratio. Skærmbillede-modulernes kald fungerer ligeledes efter specifikationerne. Patientvalg kalder Patientindstillinger korrekt ved en ny patient såvel som en kendt patient med sessionsdata. Patientindstillinger kalder både VisEEG og VisResultat med de rette inputs, og VisEEG kalder Feedback korrekt, så det derved er muligt at fuldføre en hel session både med en ny og en kendt patient. Afvigelser og kommentarer Igennem modulintegrationen er der opdaget en række fejl, ved at moduler er koblet forkert sammen, så de kaldte moduler har fået de forkerte inputs. En af grundene til dette problem har været, at modulernes Connectors er blevet skiftet rundt. Ved opdagelsen af disse fejl, er fejlene blevet rettet, og de pågældende modulkald er testet igen. Denne udgave er fra d. 23. maj 2003 kl. 15.38 84 Testdokumentation - PC Konklusion Da ingen afvigelser fra det forventede resultat er observeret efter de nødvendige rettelser, kan det konkluderes, at PC-processen fungerer efter de opsatte krav i procesdesignet og kan implementeres i BrainTrainer-systemet. Denne udgave er fra d. 23. maj 2003 kl. 15.38