Microcontroller ► Fordele ved anvendelse af microcontroller ► Teori ► Informationsflow i microcontrolleren ► Anvendelses muligheder ► Implementering
Fordel ved anvendelse af microcontroller ► Den tænkende enhed så tæt på patienten som muligt ► Indbygget ADC samt mulighed for descimering af signalet
Teori omkring microcontrolleren ► CPU´en bygger på en von Neuman arkitektur:
Von Neuman arkitektur ► CPU´ens bestanddele: Kontrolenhed: hentning af instruktioner Aritmetisk logisk enhed (ALU): udfører simple beregninger Lager: midlertidig lagring af data Reserverede resigtre: Program counter (PC) Instruction register (IR) ► Datastien i en von Neuman maskine
Informationsflow i microcontrolleren
► ADC´en består af en multiplexer -> der kan samples fra flere kanaler ► Har desuden en sample-and-hold funktion -> signalet forbliver kontinuert ► ADC´en består af en multiplexer -> der kan samples fra flere kanaler
Anvendelses muligheder ► Der er utallige muligheder for anvendelse af microcontrolleren ► Signalbehandling: Differentiering af EKG Pulsberegning Digital filtrering ► Et eksempel på hvorledes et digitalt filter kan implementeres i microcontrollren
EKSEMPEL: Digital filtrering ► Valg af IIR-filter eller FIR-filter. ► Designet udføres vha. Matlab ► Valg af pas- og stopband frekvensgrænser samt max ripple i pas- og stopband ► Vælg Butterworth, Chebychev type I eller II, elliptisk ► Ud fra de valgte koefficienter, kan overføringsfunktionen findes
EKSEMPEL: Digital filtrering ► Overføringsfunktionen: ► Differensligningen:
EKSEMPEL: Digital filtrering ► Overskueliggørelse via blokdiagram ► To metoder Direct Form I og II ► Beregninger kan desuden mindskes ved, at inddele i 2. ordens sektioner i kaskade struktur
EKSEMPEL: Digital filtrering ► Stabilitetsforhold kan undersøges via pol/ nulpunktsdiagram ► Implementering af det digitale filter i digitale filter i microcontrolleren microcontrolleren
Implementering ► Primær anvendelse: ADC ► Konstruktion af processer der står for kommunikationen med PC
ADC protokol ► 10 datapunkter fra hver afledning ► Genereres et interrupt hvergang transmitbufferen er tom void ADC_protokol(unsigned int ADCresult0[]) { int j; for(j=0; j<10; j++){ while ((IFG1 & UTXIFG0)==0); TXBUF0 = ADCresult0[j]>>4; }
Interrupts ► Opsætning af timer, UART, ADC, porte standsning af WDT ► 3 interrupt service rutiner: ► Timer A ► Starter konverteringen ► ADC12 ► Konverteret data flyttes ► Funktionskald af UART_TX ► Funktionskald af ADC_protokol
Interrupts ► UART receive ► Overfører modtaget karakter til array int UART_RX(char receive_buffer[]) { int status = 0; if(strcmp(receive_buffer, "startMON") == 0){ TACTL |= MC_1; status =1; return status; }
Interrupts ► Værdien af status undersøges, og funktionen kaldes med med tilhørende argument ► A/D-konverteringen kan herefter påbegyndes void UART_TX(char send_buffer[4]) { int i = 0; while(i<4){ while((IFG1 & UTXIFG0)== 0); TXBUF0 = send_buffer[i]; i++; }
GUI Labview
Frontpanel
Diagram
Muligheder på PC’en ► Yderligere konditionering af signal ► Ressourcekrævende beregninger ► Data præsentation ► Kommunikation/styring af ekstern hardware ► Grafisk brugerinteraktion ► Datalagring
Krav til GUI Opbygning
Krav til GUI Funktionalitet Kommunikation m. MC Visning Pulsberegning Alarm Patientoprettelse Datalagring/hentning
Implementering
Arbejdsstation
Arbejdsstationen
Monitorering
Monitorering
UART RX 4 bytes modtaget? Send kommando Modtag 3x10 nye pkt. Lav tre lister med 10 pkt.
Vis EKG Filtrering af valgte afledning
Pulsberegning ► Øjeblikspuls/gennemsnitspuls ► Stabilitet/kontinuitet ► HRV/pulsudvikling
Pulsberegning
Patientinformation
Filstruktur ► C:\EKGMonitorering ► \System:kildekode m.m. ► \Patienter:patientinfo + data ► \monitorer:Info om monitorerne
CPR.Nr.-tester
Tilføj patient/rettelser Test CPR.Nr Tilføj nye rettelser el. Opret patient Opdater patientlister
Slet patient Hent patient fra liste Bruger bekræftelse Slet patient
Alarmering
Datalagring
Vis EKG
Indstillinger
Reflektion ► Anvende digital filtrering på MC’en Nemt at implementere og ændre ► Ændre knækfrekvens 150Hz => 40Hz ► Ændre pulsberegningsmodulet +1 sek når der intet pulsslag registres
Perspektivering ► HRV Anvendelig for læger Nem at implementere i systemet ► Pacemakerspikes Samplerate ca. 4 kHz ► Elektronisk patientjournal Standard for patientdata skal kendes
Konklusion ► Vise de 3 afledninger ► Alarmer for asystoli, bradykardi og takykardi ► Søge i data for sidste døgn ► Ved vidre arbejde på systemet, vil det kunne anvendes som monitorerings-system på kardiologisk afdeling
GUI Labview
Frontpanel
Diagram
Muligheder på PC’en ► Yderligere konditionering af signal ► Ressourcekrævende beregninger ► Data præsentation ► Kommunikation/styring af ekstern hardware ► Grafisk brugerinteraktion ► Datalagring
Krav til GUI Opbygning
Krav til GUI Funktionalitet Kommunikation m. MC Visning Pulsberegning Alarm Patientoprettelse Datalagring/hentning
Implementering
Arbejdsstation
Arbejdsstationen
Monitorering
Monitorering
UART RX 4 bytes modtaget? Send kommando Modtag 3x10 nye pkt. Lav tre lister med 10 pkt.
Vis EKG Filtrering af valgte afledning
Pulsberegning ► Øjeblikspuls/gennemsnitspuls ► Stabilitet/kontinuitet ► HRV/pulsudvikling
Pulsberegning
Patientinformation
Filstruktur ► C:\EKGMonitorering ► \System:kildekode m.m. ► \Patienter:patientinfo + data ► \monitorer:Info om monitorerne
CPR.Nr.-tester
Tilføj patient/rettelser Test CPR.Nr Tilføj nye rettelser el. Opret patient Opdater patientlister
Slet patient Hent patient fra liste Bruger bekræftelse Slet patient
Alarmering
Datalagring
Vis EKG
Indstillinger
Reflektion ► Anvende digital filtrering på MC’en Nemt at implementere og ændre ► Ændre knækfrekvens 150Hz => 40Hz ► Ændre pulsberegningsmodulet +1 sek når der intet pulsslag registres
Perspektivering ► HRV Anvendelig for læger Nem at implementere i systemet ► Pacemakerspikes Samplerate ca. 4 kHz ► Elektronisk patientjournal Standard for patientdata skal kendes
Konklusion ► Vise de 3 afledninger ► Alarmer for asystoli, bradykardi og takykardi ► Søge i data for sidste døgn ► Ved vidre arbejde på systemet, vil det kunne anvendes som monitorerings-system på kardiologisk afdeling