Verwendung eines Biosensormoduls zur Entwicklung von Gesundheits- und Fitness-Wearables
Zur Verfügung gestellt von Nordamerikanische Fachredakteure von DigiKey
2020-10-21
Das Interesse an biosensorischen Wearables wird zum Teil durch das gestiegene Gesundheitsbewusstsein durch COVID-19 angefacht und treibt die Nachfrage nach effektiveren Lösungen voran, um die Nachfrage der Anwender nach größerer Funktionalität und höherer Genauigkeit in kleineren Formfaktoren mit längerer Batterielebensdauer zu geringeren Kosten zu erfüllen. Für Entwickler stellt dies eine Reihe ständiger Herausforderungen dar, wenn sie daran arbeiten, enge Zeitfenster und Budgets für die Markteinführung einzuhalten. Zu ihren Gunsten wirken sich Fortschritte bei den Biosensoren aus, einschließlich einer höheren Funktionsintegration und umfassenderer Designlösungen.
Dieser Artikel erörtert Trends bei Biosensoren und Wearables sowie die Herausforderungen, denen sich Entwickler stellen müssen. Es stellt dann ein Biosensormodul für Herzfrequenz und periphere Sauerstoffsättigung (SpO2) von Maxim Integrated vor und zeigt, wie Entwickler es verwenden können, um Wearables, die genaue Herzfrequenzen und andere Messungen liefern können, effektiver zu implementieren, ohne die knappen Energiebudgets batteriebetriebener mobiler Produkte zu gefährden.
Konstruktionsanforderungen für Biosensorik
Während die Herzfrequenzmessung eine Kernanforderung bei einer Vielzahl von Verbrauchsgütern ist, nimmt das Interesse an der Messung von SpO2 weiter zu. Die Messung von SpO2 wurde einst vor allem von Athleten verwendet, die ihre Fitnessprogramme optimieren wollten, und hat inzwischen eine breitere Anwendung gefunden, insbesondere bei der Selbstkontrolle auf Anzeichen einer reduzierten Atemfunktion im Zusammenhang mit der COVID-19-Krankheit. Für Entwickler stellt die Bereitstellung geeigneter Lösungen für eine gesundheitsbewusste Bevölkerung, die an tragbare Elektronik gewöhnt ist, erhebliche Herausforderungen hinsichtlich Kosten, Leistung, Formfaktor und Gewicht dar.
Viele Biosensoren werden heute mit integrierten analogen Frontend-Subsystemen geliefert, so dass die Entwickler die Signalketten und Subsysteme zur Nachverarbeitung, die für Gesundheits- und Fitnessmessungen erforderlich sind, nicht mehr aufbauen müssen, aber nur wenige dieser fortschrittlichen Geräte verfügen über die richtige Mischung an Fähigkeiten für tragbare Geräte. Infolgedessen lösen sie nicht die Designherausforderungen, die sich bei der Erfüllung der Benutzererwartungen an winzige biosensorische Wearables stellen, die genauso unauffällig sind wie andere Arten führender Wearables, darunter Smartwatches, Fitnessbänder und echte drahtlose Ohrhörer.
Weitere Herausforderungen im Zusammenhang mit der Designintegration können sich ergeben, wenn Entwickler eine oder mehrere Biosensor-Fähigkeiten zu diesen beliebten tragbaren Typen hinzufügen müssen. Wie bei jeder anderen Art mobiler, batteriebetriebener persönlicher Elektronikprodukte verlangen die Verbraucher implizit eine verlängerte Batterielebensdauer selbst vom kleinsten Produkt, wobei sie diese Produkte in der Regel sowohl nach der Batterielebensdauer als auch nach Kosten und Funktionalität auswählen.
Um diese kombinierten Anforderungen zu erfüllen, können Entwickler auf das Biosensormodul MAXM86146 von Maxim Integrated für das Design kundenspezifischer Bauelemente und das auf dem MAXM86146 basierende Evaluierungssystem MAXM86146EVSYS für das Rapid Prototyping zurückgreifen.
Biosensormodul bietet Drop-in-Lösung
Das in einem 4,5 x 4,1 x 0,88 Millimeter (mm) großen 38-Pin-Gehäuse erhältliche Biosensormodul MAXM86146 von Maxim Integrated ist eine Drop-in-Lösung, die speziell entwickelt wurde, um die Entwicklung kompakter batteriebetriebener Wearables für Gesundheit und Fitness zu beschleunigen. Um die Anforderungen sowohl an eine verlängerte Batterielebensdauer als auch an die Biosensorik zu erfüllen, minimiert das Modul den Stromverbrauch bei gleichzeitiger Aufrechterhaltung einer schnellen und genauen Herzfrequenz- und SpO2-Messung.
Neben zwei integrierten Fotodioden enthält das Modul ein zweikanaliges optisches Analog-Frontend (AFE) MAX86141 von Maxim Integrated und einen Arm-Cortex-M4-basierten Mikrocontroller, der eine für die Biosensorik optimierte Variante des Darwin-Mikrocontrollers MAX32660 von Maxim Integrated ist (Abbildung 1).
Abbildung 1: Das Biosensormodul MAX86146 von Maxim Integrated integriert ein optisches AFE, einen Mikrocontroller und Fotodioden in einem kompakten Gehäuse. (Bildquelle: Maxim Integrated)
Mit einer Stromaufnahme von nur 10 Mikroampere (μA) bei 25 Abtastungen pro Sekunde (S/s) bietet der integrierte MAX86141 ein umfassendes optisches AFE-Subsystem zur Steuerung der Leuchtdioden (LEDs), die zur Herzfrequenz- und SpO2-Messung verwendet werden. Optische Herzfrequenzmonitore verwenden routinemäßig die Photoplethysmographie (PPG), die Veränderungen des peripheren Blutvolumens in Verbindung mit jedem Puls des Herzens überwacht. Für diese Messung verwenden diese Komponenten typischerweise grünes Licht mit einer Wellenlänge von 540 Nanometern (nm), das vom Blut absorbiert wird und zu weniger Artefakten führt, da grünes Licht weniger tief in das Gewebe eindringt als viele andere Wellenlängen. Optische Pulsoximeter verwenden sowohl eine rote LED (typischerweise 660 nm) als auch eine Infrarot(IR)-LED (typischerweise 940 nm) zur Messung des Absorptionsunterschieds zwischen Hämoglobin und Desoxyhämoglobin - die Technik, die den optischen Messmethoden für SpO2 zugrunde liegt (siehe Entwerfen Sie ein kostengünstiges Pulsoximeter unter Verwendung von Standardkomponenten).
Um diese optischen Messungen durchzuführen, muss der Entwickler sicherstellen, dass die Erfassung der Photodiodensignale genau mit den Lichtausgangsimpulsen der entsprechenden LEDs synchronisiert ist. Das integrierte AFE MAX86141 des MAXM86146-Moduls bietet separate Signalketten für die LED-Steuerung und für die Erfassung von Fotodiodensignalen. Auf der Ausgangsseite enthält das AFE drei stromstarke, rauscharme LED-Treiber zur Übertragung von Impulsen an grüne LEDs für die Herzfrequenzmessung sowie rote und IR-LEDs für die Messung von SpO2. Auf der Eingangsseite bietet das AFE zwei Fotodioden-Signalerfassungskanäle, jeder mit einem dedizierten 19-Bit-Analog/Digital-Wandler (ADC). Diese beiden Auslesekanäle können separat betrieben oder in Kombination verwendet werden, um eine größere Strahlungsfläche bereitzustellen.
Bei der Steuerung der AFE-LED- und Fotodioden-Signalketten passt die auf dem integrierten Mikrocontroller laufende Firmware die AFE-Einstellungen an, um das Signal-Rausch-Verhältnis (SNR) zu maximieren und den Stromverbrauch zu minimieren. Wenn sich das Umgebungslicht ändert, reagiert die im integrierten MAX86141 eingebaute Umgebungslichtkorrekturschaltung (ALC) auf allmähliche Änderungen der Lichtverhältnisse. Das Umgebungslicht kann sich jedoch in einigen Situationen schnell ändern, z.B. wenn der Benutzer schnell zwischen Schatten und hellem Sonnenlicht hin- und herwechselt, was zu ALC-Ausfällen führt. Um dieser häufigen Situation Rechnung zu tragen, verfügt der MAX86141 über eine Funktion zum Erkennen und Ersetzen von Lattenzauneffekten. Hier identifiziert das Gerät große Abweichungen in den Umgebungsmessungen von früheren Proben und ersetzt einzelne Datenproben des Umgebungslichts durch extrapolierte Werte, die mit einer relativ langsamen Änderung der Umgebungspegel übereinstimmen.
Da der Mikrocontroller des Moduls seine Firmware zur Verwaltung des AFE-Betriebs verwendet, sind die detaillierten Vorgänge, die zur Durchführung genauer Herzfrequenz- und SpO2-Messungen erforderlich sind, für Entwickler transparent. Mit Hilfe von Firmware-Einstellungen führt das Modul diese Messungen automatisch durch und speichert die Rohdaten und die berechneten Ergebnisse in einem FIFO-Puffer (First-in-First-out), auf den der System-Host-Prozessor über die serielle I2C-Schnittstelle des Moduls zugreifen kann.
Wie der MAX86146 das Design tragbarer Hardware vereinfacht
Mit seiner umfangreichen integrierten Funktionalität erfordert das Biosensormodul MAX86146 relativ wenige zusätzliche Komponenten, um ein Design zu vervollständigen, das genaue Herzfrequenz- und SpO2-Messungen ermöglicht. Für gleichzeitige HR- und SpO2-Messungen kann der MAX86146 mit einem externen rauscharmen analogen Multiplexer wie dem MAX14689 von Maxim Integrated integriert werden, der an diskrete grüne, rote und IR-LEDs angeschlossen ist (Abbildung 2).
Abbildung 2: Um gleichzeitige Herzfrequenz- und SpO2-Messungen durchzuführen, benötigt das Biosensormodul MAX86146 von Maxim Integrated neben geeigneten LEDs, einem analogen Multiplexer (MAX14689, links) und einem Beschleunigungsmesser zur Erkennung von Bewegungen während der Messungen nur wenige zusätzliche Komponenten. (Bildquelle: Maxim Integrated)
Darüber hinaus ist der MAXM86146 so konzipiert, dass er Bewegungsdaten von einem dreiachsigen Beschleunigungsmesser verwendet, um die Bewegung des Benutzers während der Herzfrequenzmessungen zu korrigieren und während SpO2-Messungen, bei denen der Benutzer für die kurze Dauer der Messung in Ruhe bleiben muss, eine Bewegung zu erkennen. Hier kann der Entwickler entweder einen Firmware-unterstützten Beschleunigungsmesser direkt an die SPI-Ports des MAXM86146 oder einen Allzweck-Beschleunigungsmesser an den Host-Prozessor anschließen.
Die Host-Verbindungsoption bietet eine größere Flexibilität bei der Komponentenauswahl und erfordert nur einen universellen Drei-Achsen-Beschleunigungsmesser wie den MC3630 von Memsic, der 25 S/s erreichen kann. Dennoch müssen die Entwickler sicherstellen, dass die Daten des Beschleunigungsmessers mit der Herzfrequenzdatenerfassung synchronisiert sind. Zu diesem Zweck dezimiert oder interpoliert der integrierte Mikrocontroller intern die Proben des Beschleunigungsmessers je nach Bedarf, um die Drift zwischen den Herzfrequenz-Daten und den Daten des Beschleunigungsmessers zu kompensieren.
Schneller Start durch MAXM86146-Evaluierung und Rapid Prototyping
Obwohl der MAXM86146 das System-Hardwaredesign vereinfacht, können Entwickler, die den MAXM86146 evaluieren oder schnell einen Prototyp ihrer Anwendungen erstellen möchten, das Hardwaredesign überspringen und sofort mit der Arbeit mit der Komponente beginnen, indem sie das Evaluierungssystem MAXM86146EVSYS verwenden. Das MAXM86146EVSYS wird über USB oder eine 3,7 Volt Lithium-Polymer(LiPo)-Batterie gespeist und besteht aus einer optischen Sensorplatine (OSB) MAXM86146_OSB auf MAXM86146-Basis, die über ein flexibles Kabel mit einem BLE-fähigen (BLE: Bluetooth Low Energy) Datenerfassungsboard MAXSensorBLE verbunden ist (Abbildung 3).
Abbildung 3: Das Evaluierungssystem MAXM86146EVSYS von Maxim Integrated umfasst ein BLE-fähiges Hauptprozessorboard und eine mit einem Flexkabel verbundene MAXM86146-basierte Sensorplatine. (Bildquelle: Maxim Integrated)
Das MAXSensorBLE-Board integriert einen Host-Mikrocontroller MAX32620 von Maxim Integrated und den Bluetooth-Mikrocontroller NRF52832 von Nordic Semiconductor. Tatsächlich dient das MAXSensorBLE-Board als vollständiges Referenzdesign für ein BLE-fähiges, tragbares Design. Neben der Unterstützung aktiver und passiver Komponenten wird das MAXSensorBLE-Boarddesign mit einem integrierten Energiemanagementchip (PMIC) MAX20303 von Maxim Integrated geliefert, der speziell zur Verlängerung der Batterielebensdauer von Wearables entwickelt wurde.
Die optische Sensorplatine MAXM86146_OSB kombiniert ein Biosensormodul MAXM86146 mit einem Analogschalter MAX14689 und einem kompletten Satz LEDs, die für die gleichzeitige Durchführung von Herzfrequenz- und SpO2-Messungen erforderlich sind. Darüber hinaus integriert das Board einen Firmware-gestützten Dreiachsen-Beschleunigungsmesser, der direkt mit dem Modul MAXM86146 verbunden ist.
Um das MAXM86146-Modul mit dem MAXM86146EVSYS-Evaluierungssystem zu evaluieren, schalten die Entwickler das System über USB-C oder einen LiPo-Akku ein und stecken bei Bedarf einen BLE-USB-Dongle in einen Personal Computer ein, auf dem die Anwendung MAXM86146 EV System Software von Maxim Integrated läuft. Diese Windows-Anwendung bietet eine grafische Benutzeroberfläche (GUI), die es Entwicklern ermöglicht, die Einstellungen des MAXM86146 einfach zu ändern und die als Datenplots dargestellten Ergebnisse sofort zu beobachten. Neben dem Zugriff auf die MAXM86146-Register bietet die GUI intuitive Menüs zur Einstellung verschiedener Betriebsarten und Konfigurationen. Beispielsweise können Entwickler über die GUI-Registerkarte „Mode“ verschiedene LED-Sequenzen einstellen (Abbildung 4, oben), und diese LED-Sequenzen über die GUI-Registerkarte „Configuration“ für Herzfrequenz- und SpO2-Messungen verwenden (Abbildung 4, unten).
Abbildung 4: Mit der GUI „MAXM86146 EV System Software“ von Maxim Integrated können Entwickler die Leistung des MAXM86146 durch die Definition verschiedener Betriebsmodi wie LED-Sequenzen (oben) bewerten und diese Sequenzen (unten) dann für die Herzfrequenz- und SpO2-Messung verwenden. (Bildquelle: Maxim Integrated)
Für die Entwicklung kundenspezifischer Software bietet Maxim Integrated sein Softwarepaket Wearable HRM & SpO2 Algorithm for MAXM86146 an. Da der MAXM86146 mit seiner integrierten Mikrocontroller-Firmware Herzfrequenz- und SpO2-Messungen liefert, ist der Prozess der Datenextraktion aus dem Gerät einfach. Das Softwarepaket von Maxim Integrated demonstriert das Verfahren für die Initialisierung des Geräts und schließlich das Lesen der Daten aus dem FIFO des MAXM86146 und das Parsen der einzelnen Datenelemente (Listing 1).
Kopieren
typedef struct{
uint32_t green_led_cnt;
uint32_t ir_led_cnt;
uint32_t red_led_cnt;
uint32_t hr;
uint32_t hr_conf;
uint32_t spo2;
uint32_t spo2_conf;
uint32_t scd_state;
} mes_repor_t;
typedef struct {
uint32_t led1;
uint32_t led2;
uint32_t led3;
uint32_t led4;
uint32_t led5;
uint32_t led6;
} max8614x_mode1_data;
typedef struct {
int16_t x;
int16_t y;
int16_t z;
} accel_mode1_data;
typedef struct __attribute__((packed)){
uint8_t current_operating_mode; // mode 1 & 2
// WHRM data
uint16_t hr; // mode 1 & 2
uint8_t hr_conf; // mode 1 & 2
uint16_t rr; // mode 1 & 2
uint8_t rr_conf; // mode 1 & 2
uint8_t activity_class; // mode 1 & 2
// WSPO2 data
uint16_t r; // mode 1 & 2
uint8_t spo2_conf; // mode 1 & 2
uint16_t spo2; // mode 1 & 2
uint8_t percentComplete; // mode 1 & 2
uint8_t lowSignalQualityFlag; // mode 1 & 2
uint8_t motionFlag; // mode 1 & 2
uint8_t lowPiFlag; // mode 1 & 2
uint8_t unreliableRFlag; // mode 1 & 2
uint8_t spo2State; // mode 1 & 2
uint8_t scd_contact_state;
} whrm_wspo2_suite_mode1_data;
void execute_data_poll( mes_repor_t* mesOutput ) {
[deleted lines of code]
status = read_fifo_data(num_samples, WHRMWSPO2_FRAME_SIZE, &databuf[0], sizeof(databuf));
if(status == SS_SUCCESS && num_samples > 0 && num_samples < MAX_WHRMWSPO2_SAMPLE_COUNT){
max8614x_mode1_data ppgDataSample;
accel_mode1_data accelDataSamp;
whrm_wspo2_suite_mode1_data algoDataSamp;
int sampleIdx = 0;
int ptr =0;
while( sampleIdx < num_samples ) {
ppgDataSample.led1 = (databuf[ptr+1] << 16) + (databuf[ptr+2] << 8) + (databuf[ptr+3] << 0);
ppgDataSample.led2 = (databuf[ptr+4] << 16) + (databuf[ptr+5] << 8) + (databuf[ptr+6] << 0);
ppgDataSample.led3 = (databuf[ptr+7] << 16) + (databuf[ptr+8] << 8) + (databuf[ptr+9] << 0);
ppgDataSample.led4 = (databuf[ptr+10] << 16)+ (databuf[ptr+11] << 8)+ (databuf[ptr+12] << 0);
ppgDataSample.led5 = (databuf[ptr+13] << 16)+ (databuf[ptr+14] << 8)+ (databuf[ptr+15] << 0);
ppgDataSample.led6 = (databuf[ptr+16] << 16)+ (databuf[ptr+17] << 8)+ (databuf[ptr+18] << 0);
accelDataSamp.x = (databuf[ptr+19] << 8) + (databuf[ptr+20] << 0);
accelDataSamp.y = (databuf[ptr+21] << 8) + (databuf[ptr+22] << 0);
accelDataSamp.z = (databuf[ptr+23] << 8) + (databuf[ptr+24] << 0);
algoDataSamp.current_operating_mode= (databuf[ptr+25]);
algoDataSamp.hr = (databuf[ptr+26] << 8) + (databuf[ptr+27] << 0);
algoDataSamp.hr_conf = (databuf[ptr+28]);
algoDataSamp.rr = (databuf[ptr+29] << 8) + (databuf[ptr+30] << 0);
algoDataSamp.rr_conf = (databuf[ptr+31]);
algoDataSamp.activity_class = (databuf[ptr+32]);
algoDataSamp.r = (databuf[ptr+33] << 8) + (databuf[ptr+34] << 0);
algoDataSamp.spo2_conf = (databuf[ptr+35]);
algoDataSamp.spo2 = (databuf[ptr+36] << 8) + (databuf[ptr+37] << 0);
algoDataSamp.percentComplete = (databuf[ptr+38]);
algoDataSamp.lowSignalQualityFlag = (databuf[ptr+39]);
algoDataSamp.motionFlag = (databuf[ptr+40]);
algoDataSamp.lowPiFlag = (databuf[ptr+41]);
algoDataSamp.unreliableRFlag = (databuf[ptr+42]);
algoDataSamp.spo2State = (databuf[ptr+43]);
algoDataSamp.scd_contact_state = (databuf[ptr+44]);
mesOutput->green_led_cnt = ppgDataSample.led1;
mesOutput->ir_led_cnt = ppgDataSample.led2;
mesOutput->red_led_cnt = ppgDataSample.led3;
mesOutput->hr = algoDataSamp.hr / 10;
mesOutput->hr_conf = algoDataSamp.hr_conf;
mesOutput->spo2 = algoDataSamp.spo2 / 10;
mesOutput->spo2_conf = algoDataSamp.spo2_conf;
mesOutput->scd_state = algoDataSamp.scd_contact_state;
/* printf(" greenCnt= %d , irCnt= %d , redCnt = %d ,"
" hr= %d , hr_conf= %d , spo2= %d , spo2_conf= %d , skin_contact = %d \r\n"
, mesOutput->green_led_cnt , mesOutput->ir_led_cnt , mesOutput->red_led_cnt
, mesOutput->hr , mesOutput->hr_conf , mesOutput->spo2 , mesOutput->spo2_conf , mesOutput->scd_state);
*/
[deleted lines of code]
Listing 1: Ein Snippet aus dem Softwarepaket von Maxim Integrated demonstriert die grundlegende Technik zur Extraktion von Messungen und anderen Daten aus dem Biosensormodul. (Codequelle: Maxim Integrated)
Listing 1 veranschaulicht die Verwendung der C-Sprachroutine execute_data_poll(), um eine Anzahl von Herzfrequenz- und SpO2-Messwerten aus dem MAXM86146 auszulesen. Hier liest der Code den FIFO des Geräts in den lokalen Puffer databuf und bildet dann den Inhalt von databuf auf Instanzen einiger weniger verschiedener Softwarestrukturen in C-Sprache ab. Zusammen mit der Speicherung von Konfigurationsdaten und anderen Metadaten in diesen Strukturinstanzen liefert die Routine schließlich Herzfrequenz und SpO2-Messungen in mesOutput, einer Instanz der Struktur mes_repor_t. Entwickler können einfach die Auskommentierung der abschließenden printf-Anweisung entfernen, um das Ergebnis auf der Konsole anzuzeigen.
Bei der Implementierung eines Gesundheits- und Fitness-Wearables vereinfachen die Software und die Hardware des MAXM86146 die Entwicklung erheblich. Bei Geräten, die die Zulassung der US Food and Drug Administration (FDA) erreichen sollen, müssen Entwickler jedoch entsprechende Tests durchführen, um die Leistung ihrer Endprodukte auf FDA-Niveau zu überprüfen. Obwohl der MAXM86146 von Maxim Integrated und seine eingebetteten Algorithmen eine Messleistung auf FDA-Niveau liefern, müssen Entwickler sicherstellen, dass ihr gesamtes System - und nicht nur der Sensor - die FDA-Leistungsanforderungen erfüllt.
Fazit
Das Interesse an Wearables, die in der Lage sind, genaue Herzfrequenz- und SpO2-Messungen zu liefern, nimmt weiter zu, was in jüngster Zeit durch die Rolle der SpO2-Daten bei der Überwachung der Symptome der COVID-19-Krankheit angeheizt wird. Obwohl spezialisierte Biosensoren diese Messungen liefern können, sind nur wenige bestehende Lösungen in der Lage, die Nachfrage nach kleineren Geräten zu befriedigen, die die Batterielebensdauer in multifunktionalen, kompakten Wearables verlängern können. Wie gezeigt, bietet ein winziges Biosensormodul von Maxim Integrated, unterstützt durch ein Rapid-Prototyping-Kit, eine effektive Alternative, die FDA-konforme Messungen bei minimalem Stromverbrauch liefert.

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der DigiKey oder offiziellen Politik der DigiKey wider.