Elektroniknet Logo

Wearables und Medizintechnik

PPG-ICs & -Systeme im Praxistest – Teil 1

Nun  werden die ICs und SiPs betrachtet, mit denen das Pulsoximetrieverfahren implementiert wurde. Sie sollen verschiedene Vitalparameter ableiten können und für Entwickler einfach anzuwenden sein
© Shutterstock

Als Weiterführung des Fachaufsatzes »Elektronik zum Erfassen von Vitalparametern« auf elektronik.de werden nun die ICs und SiPs betrachtet, mit denen das Pulsoximetrieverfahren implementiert wurde. Sie sollen verschiedene Vitalparameter ableiten können und für Entwickler einfach anzuwenden sein.

Das Verfahren der Photoplethysmographie (PPG) wird für die Detektierung des Pulsschlages eingesetzt, was meist mit einem Fingerclip durchgeführt wird, der als wesentliche Komponenten ein Fotoelement (LED + Photodiode) sowie einen A/D-Umsetzer enthält. Die handelsüblichen Geräte (Pulsoximeter) können außerdem den Sauerstoffgehalt im Blut messen [1].

Die hierfür notwendige Elektronik lässt sich prinzipiell diskret aufbauen, was jedoch nur in den seltensten Fällen praktiziert wird, weil es mittlerweile eine ganze Reihe von integrierten und preiswerten Schaltungen hierfür gibt – die sogenannten »PPG Front-Ends«. Insbesondere Maxim Integrated hat in den vergangenen Jahren zahlreiche PPG-ICs auf dem Markt gebracht, wie in der Tabelle zu erkennen ist. Bei genauerer Betrachtung fällt jedoch auf, dass die verschiedenen ICs gar nicht so unterschiedlich sind, wie es die Angaben der Halbleiterhersteller vermuten lassen.

Relevante Anbieter

 Eine Übersicht zu PPG-ICs und -SiPs, die zur Detektierung des Pulsschlags eingesetzt werden können, sowie den jeweiligen Entwicklungskits
Tabelle. Eine Übersicht zu PPG-ICs und -SiPs, die zur Detektierung des Pulsschlags eingesetzt werden können, sowie den jeweiligen Entwicklungskits.
© Dembowski | Maxim

Wichtig ist zunächst, ob es sich bei dem jeweiligen PPG-Baustein um ein IC oder ein SiP (System-in-Package) handelt oder ob und wie viele LEDs und Fotodioden extern anzuschließen sind. Ein SiP-Modul ist prinzipiell weniger flexibel, dafür einfacher in der Anwendung, und es finden sich auch Angaben für die (maximale) Gesamtstromaufnahme. Werden externe Elemente benötigt, ist deren Stromaufnahme noch zur Stromaufnahme des PPG-Bausteins hinzuzurechnen. Grundsätzlich senden alle PPG-ICs ihre Daten nach entsprechender Programmierung über einen I2C- oder SPI-Bus an einen Host, der die Daten weiterverarbeitet.

Zusätzlich gibt es bei einigen Typen noch die Möglichkeit, einen Sensor per GPIO anzuschließen. In den meisten Fällen wird dies ein Beschleunigungssensor sein, der für die Berechnung von Bewegungsartefakten zum Einsatz kommt, weil diese die Messung ansonsten negativ beeinflussen können. Die hierfür notwendige Firmware wird üblicherweise für einen im PPG-IC integrierten Arm-Mikrocontroller ausgelegt und nimmt dann ebenfalls eine Vorverarbeitung und möglicherweise auch eine Berechnung der PPG-Daten vor. PPG-ICs ohne eigenen Mikrocontroller benötigen auf der Host-Seite hingegen nur ein entsprechendes Anwenderprogramm, das letztlich auch den notwendigen Gerätetreiber beinhaltet.

Je nach Hersteller und System wird mehr oder weniger Software angeboten. Meist ist ein Programm für Windows und/oder Android verfügbar, das die Messwerte in ansprechender Form grafisch präsentiert. Der Quellcode hierfür wird meist nicht zur Verfügung gestellt, genauso wenig wie der für die Firmware, sodass es sich dann genaugenommen um eine Demosoftware und nicht um eine Entwicklungsplattform handelt.

Auch Bibliotheken und APIs sind keineswegs selbstverständlich, und falls welche vom Hersteller verfügbar sind, sind sie selten gut dokumentiert und oftmals sehr groß, weil sie gleich für unterschiedliche ICs vorgesehen sind, sodass der Code sehr unübersichtlich und schwer nachvollziehbar ist. Immerhin sind die ICs – diejenigen ohne einen integrierten Mikrocontroller – relativ einfach zu programmieren, wenn bereits Erfahrungen mit der I2C- oder SPI-Kommunikation vorhanden sind.

MAX30101-Entwicklungssystem

Das Entwicklungskit für den MAX30101 [2] besteht aus zwei Platinen (Bild 1): Eine Platine ist mit dem MAX30101 und dem Beschleunigungssensor LIS2DH von STMicroelectronics, der sich auf der Platinenrückseite befindet, bestückt. Diese Baugruppe ist mit einem 10-poligen Flachbandkabel an die Platine USBOSMB anzuschließen, an das Serial Interface Mother Board, wie es Maxim Integrated bezeichnet.

Die beiden Platinen des MAX30101-Entwicklungskits mit der Sensorikbaugruppe (oben) und der Schnittstellenplatine (unten).
Bild 1. Die beiden Platinen des MAX30101-Entwicklungskits mit der Sensorikbaugruppe (oben) und der Schnittstellenplatine (unten).
© Dembowski | Maxim

Mit diesem Serial Interface Mother Board werden die beiden Sensoren per I2C mithilfe eines Mikrocontrollers C8051F321 (Silicon Labs) angesteuert und die Kommunikation über den USB für die Konfiguration und die Anzeige der Messdaten ermöglicht. Die USB-Signalleitungen sind auf der Platine mit einer ESD-Schutzschaltung (Dioden-Array) vom Typ MAX3207 abgesichert.

Über das Flachbandkabel werden neben den beiden I2C-Bus-Signalen (SDA, SCL) die Leitungen für die Spannungsversorgungen geführt: 1,8 V, 3,3 V, ULED (maximal 4,5 V) sowie Masse. Die drei Spannungen werden auf dem Mother Board USBOSMB aus den 5 V des USBs über drei verschiedene Low-Dropout-Regler-ICs der Serie MAX851x generiert. Die Ausschaltfunktion der Linearregler-ICs wird allerdings nicht genutzt, sodass diese Pins (/SHDN) jeweils auf das Spannungseingangssignal (IN) geschaltet sind.

Anzeige der PPG-Kurven des Programms MAX30101EVKit. In dieser Konfiguration sind alle drei LEDs eingeschaltet, sodass auch drei PPG Kurven angezeigt werden
Bild 2. Anzeige der PPG-Kurven des Programms MAX30101EVKit. In dieser Konfiguration sind alle drei LEDs eingeschaltet, sodass auch drei PPG Kurven angezeigt werden. Aus diesen Messdaten kann die Software dann Werte für die Heart Rate und die Sauerstoffsättigung (SpO2) berechnen.
© Dembowski | Maxim

Das Softwarepaket zum MAX30101-Eintwicklungskit wird als ZIP-File zur Verfügung gestellt und enthält als Windows-Software, für die das Microsoft Framework .NETv4 benötigt wird, das Programm MAX30101EVKit zur PPG-Messung (Bild 2) sowie eine Console Application, die eine grundlegende Kommunikation mit dem Modul sowie das Lesen und Schreiben von Registerinhalten erlaubt. Beide Programme verwenden eine ebenfalls mitgelieferte C#-Bibliothek. Der Quellcode dieser beiden Programme wird nicht zur Verfügung gestellt.

Die Console Application lässt sich direkt aufrufen, das Programm MAX3010_EvaluationKit muss dagegen vorher installiert werden, was ohne Probleme vonstatten geht, denn nach dem Verbinden der beiden Platinen mit dem Flachbandkabel und dem Anschluss an den USB eines Windows-PCs werden alle notwendigen Treiber und die Software automatisch installiert.

Der Quellcode (Bare Metal C code device driver) für die Firmware des Mikrocontrollers C8051F321 wird mitgeliefert und erlaubt dem C-Programmierer nützliche Einblicke in die Programmierung der beiden Sensoren und Schnittstellen (I2C, USB). Zur Kompilierung des Codes für den C8051F321 wird ein separater c51-Compiler von Keil benötigt. Zum Softwarepaket gehört außerdem ein Matlab-Skript, das ebenfalls die C#-Bibliothek nutzt und die Messergebnisse der Rot-, Infrarot- und Grün-Signale einliest, was somit als Basis für eigene Berechnungen des Pulses (Heart Rate), der Sauerstoffsättigung (SpO2) und möglicherweise des Blutdrucks in Matlab (ab Version 8.4) nützlich ist.

Des Weiteren gehört ein Linux sysfs Device Driver, der einem modifizierten Treiber für Android entspricht, dazu und im Internet (GitHub) sind einige Bibliotheken für verschiedene Maxim-PPG-ICs [3] zu finden, die sich für eigene Berechnungen einsetzen und in Applikationen adaptieren lassen.


  1. PPG-ICs & -Systeme im Praxistest – Teil 1
  2. MAX30101 im Detail

Verwandte Artikel

TU Hamburg-Harburg Inst. Für Mikrosystemtechnik, STMicroelectronics GmbH, Maxim Integrated Products