Bauanleitung für ein EKG-Gerät

Feed

 

Letzte Änderung: 22. August 2017

Dies ist ein EKG-Gerät zum Anschluß an die serielle Schnittstelle. Die Hardware stellt drei Kanäle zur Verfügung, so daß die Extremitätenableitungen nach Eindhoven aufgenommen werden können. Die Ableitungen nach Goldberger werden daraus berechnet. Die Schaltung kann auf einer Lochrasterplatine im Euro-Format aufgebaut werden. Die zugehörige Software steht unter der GPL zur Verfügung.

Achtung!

Da dieses Gerät an Personen angeschlossen wird, darf es nur mit Batterien betrieben werden und niemals mit dem Lichtnetz verbunden werden. Bei dem Entwurf der Schaltung bin ich mit größter Sorgfalt vorgegangen, trotzdem kann ich Fehler nicht ausschließen. Da ich außerdem keinen Einfluß darauf habe, was andere Leute mit dieser Bauanleitung machen, schließe ich jegliche Haftung für Schäden, die durch diese Bauanleitung und die zugehörige Software entstehen könnten, aus. Ich weise darauf hin, daß es sich hier um ein Spielzeug und nicht um ein medizinisches Gerät handelt.

Die Software

Die Software ist in C++ geschrieben und sollte auf allen gängigen Linux/Unix-Distributionen laufen. Es gibt ein graphisches und ein kommandozeilenorientiertes Programm zur Aufnahme von EKG. Beide können Aufnahmen als Postscript in üblichen skalierungen aufnehmen. Hier ist ein screenshot von gEKG und ein Ausdruck. Einige Funktionen sind:

Installation

Für das graphische Programm werden die Bibliotheken gtkmm-2.4 und ↥pstreams benötigt. Üblicherweise müssen neben den Bibliotheken selbst noch die Pakete für die Header-Dateien installiert werden, die unter Debian (und Ubuntu) auf „-dev“ enden. In diesem Falle also die Pakete „libgtkmm-2.4-dev“ und „libpstreams-dev“.

Sind die Pakete installiert, können die Programme compiliert werden:

$ tar -xzvf gekg.tar.gz	    # Archiv entpacken
$ cd gekg		    # in das Quellverzeichnis wechseln
$ make ekg		    # Kommandozeilenprogramm bauen
$ make gekg		    # graphisches Programm bauen

Die beiden entstandenen Programme ekg und gekg können jetzt an Ort und Stelle gestartet werden oder als root nach /usr/local/bin/ kopiert werden, so daß sie systemweit zur Verfügung stehen. Beide Programme geben mit der Option -h eine kleine Hilfe aus.

$ ekg -h	# Hilfe zum Kommandozeilenprogramm
$ gekg -h	# Hilfe zum graphischen Programm

Die Schaltung

Die Schaltung besteht aus drei Eingangsverstärkern, einem Multiplexer, einem AD-Wandler und einer galvanischen Trennung zur seriellen Schnittstelle. Und zuletzt gibt es eine Liste aller benötigten Bauteile.

block.png

Meßverstärker

Es werden insgesamt drei Meßverstärker aufgebaut. Ein Verstärker besteht aus einem hochohmigen Differenzverstärker aus T1 und T2 am Eingang, zwei Operationsverstärkern und einem Tiefpaßfilter 4. Ordnung. Die Grenzfrequenz der Tiefpaßfilter beträgt etwa 25 Hz. Sie dienen dazu, Störspannungen, die hauptsächlich durch das Lichtnetz erzeugt werden, zu entfernen. Der Verstärkungsfaktor kann mit einem Trimmpoti eingestellt werden; eine mittlere Schleiferposition ist geeignet.

amp.png

Multiplexer

Der Multiplexer hat vier Kanäle, von denen der Erste fest mit der negativen Versorgungsspannung verbunden ist. Dieser Wert, der durch den nachgeschaltetn invertierenden Verstärker zu einem maximal großen Meßwert gemacht wird, dient der Software als Synchronisationssignal, um die Meßwerte im Datenstrom richtig zuzuordnen. Der Multiplexer schaltet nach jedem gesendeten Meßwert auf den nächsten Kanal um.

Dem Multiplexer nachgeschaltet ist ein Pegelumsetzer aus zwei Operationsverstärkern. Er Verschiebt den Bezugspunkt des Meßsignals von der halben analogen Versorgungsspannung (9 Volt) auf die halbe digitale Versorgungsspannung (5 Volt) und arbeitet auch bei nicht frischer Batterie zuverlässig. Außerdem wird das Maßsignal um etwa den Faktor 3 verstärkt.

mux.png

AD-Wandler

Die Funktionsbeschreibung im Groben: Der IC 4060 oben links erzeugt eine Taktfrequenz von 9600 Hz und dient als Baudrategenerator. Die Taktfrequenz wird an den Zähler 47LS161 weitergegeben. Sobald vom Computer mittels der DTR-Leitung das Signal zum senden gibt (DTR wird beim öffnen der seriellen Schnittstelle gesetzt. ), beginnt der ADC 0803 die angelegte analoge Spannung zu messen und gibt sie an D0 - D7 aus. Über INTR wird dem Zähler der fertige Meßwert signalisiert. Der erzeugt daraufhin ein Startbit und steuert dann das Schieberegister, welches den Meßwert sendet. Der Zähler erzeugt ein Stopbit und beginnt dann den nächsten Sendevorgang, solange, bis DTR gelöscht wird.

Das Startbit, welches nach der Messung, aber vor dem Sendevorgang stattfindet, dient dem Multiplexer als Zeichen, auf den nächsten Kanal umzuschalten. Der ADC 0803 gibt an Uref genau die halbe Versorgungsspannung aus. Zu Testzwecken ist es Sinvoll, ein Oszilloskop auf das Signal an Trig. zu triggern. Der Inverter T3 kann nicht durch das noch freie NAND-Gatter ersetzt werden, da er langsam sein muß.

adc.png

Die Schaltung gibt also die ganze Zeit Bytes mit 9600 Baud (8N1) aus. Dabei wird eine sich immer wiederholende Folge von 4 Bytes gesendet: Sy K1 K2 K3. Dabei sind K1–3 die Meßwerte der drei Kanäle und Sy eine konstante, recht hohe Zahl, die der Software zur Synchronisierung des Datenstroms dient. Die Meßwerte müssen dann noch in Spannungswerte umgerechnet werden. Die Skalierung wird in der Datei calibrate.h eingetragen.

Galvanische Trennung

Um den Patienten vom Computer galvanisch zu trennen, werden die Signale DTR und RxD über Optokoppler vermittelt. Die RS232 Schnittsttelle des Computers legt im Betrieb DTR und RTS auf positiver Spannung (+5 V bis +12 V) und TxD auf negative Spannung (-5 V bis -12 V), wenn der Computer nicht sendet. DTR signalisiert, daß der Computer empfangsbereit ist, und schaltet den RS-232 Sender des EKG-Gerätes ein. Der Strom für die DTR Sendediode wird mit einem FET beschränkt (etwa 10 mA) und ist damit unabhängig von der genauen Höhe der positiven Spannung. Auf RxD werden die Daten vom EKG-Gerät gesendet. Die Stromversorgung für den entsprechenden Empfänger wird aus den nicht benötigten Leitungen RTS und TxD gewonnen.

Zur Dokumentation ist hier noch eine alte Version der galvanischen Trennung gezeigt. Von deren Nachbau rate ich allerdings dringend ab. Diese Schaltung hatte zwar eine bessere Flankensteilheit, es hat sich aber gezeigt, daß sie nicht sehr nachbausicher ist, da der 741 doch schon sehr weit außerhalb der Spezifikation betrieben wird.

opto.alt.pngopto.png

Liste der benötigten Bauteile

Widerstände Kondensatoren Halbleiter
3 120 1 12 p 3 BAT 46
4 220 1 150 p 11 BC 547 B
6 470 6 6,8 n 1 BC 557 B
6 2,2 k 5 22 n 1 BF 256 B
1 2,7 k 5 100 n 1 741
10 10 k 20 10 µ 3 LM 324
9 22 k 3 47 µ 1 TL 082
5 47 k 3 100 µ 2 CNY 17-3
5 100 k 3 470 µ 1 ADC 0803
2 330 k     1 74 LS 00
6 680 k     1 74 LS 02
6 1 M     1 74 LS 05
Trimmpotis     1 74 LS 74
3 100 k     1 74 LS 161
1 220 k     1 74 LS 165
        1 4052
        1 4060
        1 LED
Außerdem
1 Batterieclip für 9 V Block
1 SUB-D Stecker, 9 pol.
4 Buchsen, 4 mm (schwarz, rot, gelb, grün)
4 Stecker, 4 mm (schwarz, rot, gelb, grün)
4 Elektroden mit Anschlußleitung

Aufbau der Platine

Die gesamte Schaltung kann auf einer Lochrasterplatine im Euro-Format aufgebaut werden. Die Anordnug der Bauteile kann sicherlich noch optimiert werden, dennoch kann das folgende Bild als Anhaltspunkt dienen.

Platine.jpg

Kalibrieren der Schaltung

Zuerst muß der Baudrate-Generator im AD-Wandler auf die richtige Frequenz eingestellt werden. An Pin 7 muß eine Frequenz von 9600 Baud anliegen. Ich habe zum Abgleich ein Spindeltrimmer eingebaut; möglicherweise reicht aber auch ein normales Trimmpoti, wenn man sich mit dem Abgleich Mühe gibt.

Zum (groben) Kalibrieren der Eingagnsverstärker benötigt man eine geeignete Signalquelle. Das kann entweder ein Sinusgenerator mit f = 1 Hz und Vss = 1 mV sein oder ein Pulsgenerator, der Pulse von etwa 50 ms und 0,5 mV Amplitude im Abstand von etwa 1 s ausgibt. Um auf so kleine Spannungen zu kommen, wird man sich mit einem entsprechenden Spannungsteiler behelfen müssen. Hier ist ein geeigneter Pulsgenerator zu finden.

Hier wird die Kalibrierung mit einem Pulsgenerator beschrieben. Folgende Schritte werden für jeden Kanal (I: gelb → rot, II: grün → rot, III: grün → gelb) einzeln durchgeführt:

raw.png
Kalibrierung von Kanal I aus den Rohdaten aus dem EKG-Gerät. In rot sind Nullwert und Maximalwert eingezeichnet. Der blau gezeichnete Wert ist die Konstante zur Markierung der Kanäle im Datenstrom.

Mit den Trimmpotis in den Meßverstärkern kann die Empfindlichkeit der Schaltung eingestellt werden. Es hat sich als günsig erwiesen, die Potis einfach auf einen mittleren Wert einzustellen. Nur wenn die Kurven deutlich zu klein (oder nach einer Kalibrierung deutlich zu treppenförmig) sind oder aber übersteuern, ist es notwendig, den Verstärkungsfaktor entsprechend zu ändern.

EKG aufnehmen

Der Patient wird über vier Buchsen angeschlossen. Rechter Fuß an „schwarz“, rechte Hand an „rot“, linke Hand an „gelb“ und linker Fuß an „grün“. Als Elektroden sind Metallplatten ab ca. 1 cm² geeignet. Um einen guten Übergangswiderstand zu Haut zu haben, sollten die Elektroden mit einem Elektrolyten versehen werden (anspucken ist gut!). Die Elektroden sollten gut befestigt werden, z. B. mit Leukoplast. Wenn die Elekroden guten Kontakt haben, ist ein softwareseitiges Nachbearbeiten des Signals mit Frequenzflitern nicht nötig.

eindhoven.png
Anbringung der Elektroden und Polarität der Kanäle I, II und III.

Was man so braucht …

Und für das Archiv:

Quellen und Literatur

Um nun auch zu verstehen, was auf den EKG-Aufnahmen überhaupt zu sehen ist, kann ich die Seite ↥ www.grundkurs-ekg.de/index.html empfehlen. Hier habe ich auch wichtige Informationen für die Planung der Schaltung gefunden.

Die Idee zu diesem Projekt kam mir beim Lesen des (leider vergriffenen) Buches „Bio-Elektronik“ von A. Holz und H.-G. Kreysch, aus dem auch der Eingangsverstärker stammt.