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