Používání biosenzorického modulu k vývoji nositelné elektroniky pro monitorování zdraví a kondice

By Stephen Evanczuk

Contributed By DigiKey's North American Editors

Zájem o nositelnou elektroniku, podporovaný zčásti větším povědomím o zdraví kvůli viru COVID-19, neustále roste a pohání poptávku po efektivnějších řešeních, která by splňovala poptávku uživatelů po širších funkcích a vyšší přesnosti v malých zařízeních s delší výdrží baterie při nižších nákladech. Pro návrháře představuje tento trend řadu neustálých výzev, protože se ve velmi omezeném čase snaží splnit limity pro uvedení na trh a zároveň se musí vejít do daného rozpočtu. V jejich prospěch hrají pokroky biosenzorických zařízení, včetně vyšší integrace funkcí a ucelenějších řešení návrhu.

V tomto článku jsou rozebírány trendy v oblasti biosnímačů a nositelné elektroniky a výzvy, kterým návrháři čelí. Dále zde je představen modul s biosnímači pro měření srdečního tepu a saturace krve kyslíkem (SpO2) v periferních částech těla od společnosti Maxim Integrated a ukázáno, jak ho mohou vývojáři efektivněji implementovat do nositelné elektroniky schopné poskytovat přesná měření srdečního tepu a dalších charakteristik, aniž by byl ohrožen napjatý rozpočet mobilních produktů napájených bateriemi.

Požadavky na konstrukci biosenzorického snímání

Monitorování srdečního tepu je již dlouho klíčovým požadavkem na celou řadu spotřební nositelné elektroniky, ale roste i zájem o měření saturace kyslíkem SpO2. Dříve toto měření využívali především atleti, kteří chtěli optimalizovat svou zdravou životosprávu, dnes však nachází měření SpO2 mnohem širší využití, zejména při samomonitorování známek zhoršené respirační funkce související s onemocněním COVID-19. Pro vývojáře dodávající vhodná řešení pro populaci se zdravotním povědomím zvyklou na nositelnou elektroniku to představuje významné výzvy, co se týče nákladů, napájení,velikosti a hmotnosti.

Mnoho biosnímačů se nyní dodává s integrovanými analogovými front-endovými subsystémy, takže vývojáři nemusí sestavovat signálové řetězce a subsystémy následného zpracování požadované k měření charakteristik zdraví a kondice, ale jen velmi málo z těchto pokročilých zařízení nabízí ten správný poměr funkcí pro nositelná zařízení. Výsledkem je, že se často neřeší výzvy spojené s designem vyvstávající ze splnění očekávání uživatelů ohledně malé nositelné elektroniky ke biosenzorickému snímání, která je stejně nerušivá jako jiné typy nositelné elektroniky předních značek, včetně kromě jiného chytrých hodinek, fitness náramků a skutečně bezdrátových sluchátek do uší.

Další výzvy související s designovou integrací mohou vyvstat, když do těchto oblíbených typů nositelné elektroniky potřebují vývojáři přidat jednu nebo více biosenzorických funkcí. Jako u všech typů mobilních osobních elektronických zařízení napájených na baterie požadují spotřebitelé i od těch nejmenších produktů dlouhou výdrž baterií a obvykle je při výběru produktů výdrž baterií stejně důležitým kritériem jako cena a funkce.

Ke splnění těchto různorodých požadavků mohou vývojáři použít k navrhování vlastních zařízení biosenzorický modul MAXM86146 a vyhodnocovací sadu MAXM86146EVSYS založenou na modulu MAXM86146 pro rychlé prototypování. Oba produkty jsou od společnosti Maxim Integrated.

Biosenzorický modul pro miniaturní řešení

Biosenzorický modul MAXM86146 společnosti Maxim Integrated je k dispozici v balíčku se 38 piny o rozměrech 4,5 × 4,1 × 0,88 milimetru (mm) a představuje miniaturní řešení určené speciálně pro rychlý vývoj kompaktní nositelné elektroniky napájené bateriemi a určené ke sledování zdraví a kondice. Ke splnění požadavků jak na delší výdrž baterií, tak na biosenzorické funkce minimalizuje modul spotřebu energie, ale zároveň zachovává rychlost a přesnost měření srdečního tepu a SpO2.

Modul obsahuje spolu se dvěma integrovanými fotodiodami také optický analogový front-end (AFE) se dvěma kanály MAX86141 a mikrokontrolér Arm založený na jádru Cortex-M4, který je variantou mikrokontroléru Darwin MAX32660 optimalizovaného pro biosenzorické snímání (obrázek 1). Všechny tyto produkty jsou od společnosti Maxim Integrated.

Schéma biosenzorického modulu MAX86146 společnosti Maxim Integrated (zvětšíte kliknutím)Obrázek 1: Biosenzorický modul MAX86146 společnosti Maxim Integrated má v sobě integrovaný optický front-end AFE, mikrokontrolér a fotodiody v kompaktním balíčku. (Zdroj obrázku: společnost Maxim Integrated)

Integrovaný front-end MAX86141 spotřebovává pouze 10 mikroampérů (μA) při 25 vzorcích za sekundu (S/s) a poskytuje rozsáhlý podsystém s optickým front-endem AFE navržený k řízení několika elektroluminiscenčních diod (LED) používaných k měření srdečního tepu a SpO2. Optické monitory srdečního tepu obvykle využívají fotopletysmografii (PPG), která monitoruje změny objemu krve v periferních částech těla související s tlakovými pulzy při srdeční činnosti. K tomuto měření používají tato zařízení typicky zelené světlo s vlnovou délkou 540 nanometrů (nm), kterou krev absorbuje a která způsobuje méně artefaktů, protože zelené světlo neproniká do tkání tak hluboko jako mnoho jiných vlnových délek. K měření rozdílu absorpce mezi hemoglobinem a deoxyhemoglobinem – techniky, která je základem optické metody měření SpO2 (viz Návrh pulzního oxymetru s nízkými náklady pomocí předpřipravených součástek) – využívají optické pulzní oxymetry jak červené diody LED (typicky s vlnovou délkou 660 nm), tak infračervené (IR) diody LED (typicky s vlnovou délkou 940 nm).

Vývojář musí zajistit, aby bylo získávání signálu fotodiody přesně synchronizováno s pulzy světelného výstupu z příslušných diod LED, aby bylo možné tato optická měření provést. Front-end AFE MAX86141 integrovaný v modulu MAXM86146 zajišťuje oddělené signálové řetězce pro řízení diod LED a získávání signálu fotodiod. Na straně výstupu obsahuje front-end AFE tři vysokoproudové řadiče LED s nízkým šumem k přenášení pulzů do zelených diod LED k měření srdečního tepu a do červených a IR diod LED k měření SpO2. Na straně vstupu poskytuje front-end AFE dva kanály získávání signálu fotodiod, každý s vyhrazeným 19bitovým analogově-digitálním převodníkem (ADC). Tyto dva kanály údajů mohou fungovat samostatně nebo být použity v kombinaci, aby poskytly větší oblast záření.

Firmware běžící přímo v mikrokontroléru upravuje řízením signálových řetězců diod LED AFE a fotodiod LED nastavení AFE, aby maximalizoval odstup signál–šum (SNR) a minimalizoval spotřebu energie. Se změnou okolních světelných podmínek reaguje systém obvodů korekce okolního světla (ALC), vestavěný do integrovaného front-endu MAX86141, na postupné změny světelných podmínek. V některých situacích však může dojít k náhlé změně okolního osvětlení, například když uživatel projde mezi oblastí stínu a jasného slunečního záření, což způsobí chyby korekce ALC. Front-end MAX86141 nabízí funkci střeženého obvodu s detekcí a nahrazením, aby se s touto běžnou situací vyrovnal. Zařízení s touto funkcí identifikuje velké odchylky při měření okolních podmínek od předchozích vzorků a nahradí jednotlivé základní hodnoty okolního osvětlení extrapolovanými hodnotami konzistentními s relativně pomalou změnou úrovní okolních podmínek.

Mikrokontrolér modulu využívá svůj firmware ke správě operací AFE, podrobné operace vyžadované k přesnému provádění měření srdečního tepu a SpO2 jsou proto pro vývojáře transparentní. Modul provádí pomocí nastavení firmwaru tato měření automaticky a ukládá nezpracovaná data a vypočítané výsledky do vyrovnávací pamětí typu FIFO (první dovnitř, první ven), aby k nim měl přístup procesor hostitele systému prostřednictvím sériového rozhraní I2C modulu.

Jak modul MAX86146 zjednodušuje design hardwaru nositelné elektroniky

Biosenzorický modul MAX86146 se svými mnoha integrovanými funkcemi vyžaduje relativně málo dodatečných součástek k dokončení designu, který bude umožňovat přesná měření srdečního tepu a SpO2. K současnému měření srdečního tepu a SpO2 může být modul MAX86146 integrován s externím analogovým multiplexerem s nízkým šumem, jako je spínač MAX14689 společnosti Maxim Integrated připojený k samostatným zeleným, červeným a IR diodám LED (obrázek 2).

Schéma biosenzorického modulu MAX86146 společnosti Maxim Integrated (zvětšíte kliknutím)Obrázek 2: K současnému měření srdečního tepu a SpO2 vyžaduje biosenzorický modul MAX86146 společnosti Maxim Integrated, kromě vhodných diod LED, analogového multiplexeru (MAX14689, vlevo) a akcelerometru k detekci pohybu při provádění měření, jen několik dalších součástek. (Zdroj obrázku: společnost Maxim Integrated)

Modul MAXM86146 je navíc navržen k používání dat pohybu ze tříosého akcelerometru ke korekci pohybu uživatele během měření srdečního tepu a k detekci pohybu během měření SpO2, které od uživatele vyžaduje, aby byl po krátkou dobu probíhajícího měření v klidu. K tomu může vývojář buď připojit akcelerometr s podporovaným firmwarem přímo k portům SPI modulu MAXM86146, nebo k procesoru hostitele připojit univerzální akcelerometr.

Možnost připojení hostitele nabízí větší flexibilitu při výběru zařízení a vyžaduje pouze univerzální tříosý akcelerometr, jako je MC3630 společnosti Memsic dosahující rychlosti 25 vzorků za sekundu. Vývojáři však stále musí zajistit, aby se data akcelerometru synchronizovala se vzorky dat srdečního tepu. Za tímto účelem vestavěný mikrokontrolér interně decimuje nebo interpoluje vzorky akcelerometru podle potřeby ke kompenzaci posunu mezi údaji srdečního tepu a údaji akcelerometru.

Možnost rychlého začátku vyhodnocování modulu MAXM86146 a rychlého prototypování

Přestože modul MAXM86146 zjednodušuje design hardwaru systému, vývojáři, kteří chtějí modul MAXM86146 vyhodnocovat nebo rychle sestavit prototypy svých aplikací, mohou design hardwaru přeskočit a okamžitě se zařízením začít pracovat, když použijí vyhodnocovací systém MAXM86146EVSYS. Systém MAXM86146EVSYS napájený prostřednictvím připojení USB nebo 3,7voltové lithium-polymerové (LiPo) baterie zahrnuje desku optického snímače (OSB) MAXM86146_OSB založenou na modulu MAXM86146 a připojenou prostřednictvím flexibilního kabelu k hlavní desce získávání dat MAXSensorBLE s funkcí BLE („Bluetooth low energy“) (obrázek 3).

Obrázek vyhodnocovacího systému MAXM86146EVSYS společnosti Maxim IntegratedObrázek 3: Vyhodnocovací systém MAXM86146EVSYS společnosti Maxim Integrated s hlavní deskou procesoru s funkcí BLE a flexibilním kabelem připojeným k desce snímačů založené na modulu MAXM86146. (Zdroj obrázku: společnost Maxim Integrated)

Deska MAXSensorBLE je integrována s mikrokontrolérem hostitele MAX32620 společnosti Maxim Integrated a mikrokontrolérem Bluetooth NRF52832 společnosti Nordic Semiconductor. Deska MAXSensorBLE vlastně slouží jako kompletní referenční design pro design nositelné elektroniky s funkcí BLE. Spolu s podpůrnými aktivními a pasivními součástkami se design desky MAXSensorBLE dodává kompletně s integrovaným obvodem řízení napájení (PMIC) MAX20303 určeným speciálně k prodloužení výdrže baterie nositelné elektroniky.

Deska optického snímače MAXM86146_OSB kombinuje biosenzorický modul MAXM86146 s analogovým spínačem MAX14689 a kompletní sadou diod LED vyžadovaných k současnému provádění měření srdečního tepu a SpO2. Deska má v sobě navíc integrovaný tříosý akcelerometr s podporovaným firmwarem připojený přímo k modulu MAXM86146.

K vyhodnocení modulu MAXM86146 pomocí vyhodnocovacího systému MAXM86146EVSYS napájí vývojáři systém prostřednictvím připojení USB-C nebo LiPo baterie a v případě potřeby zapojí do počítače se spuštěnou aplikací MAXM86146 EV System Software společnosti Maxim Integrated dongle BLE USB. Tato aplikace pro systémy Windows poskytuje grafické uživatelské rozhraní (GUI), které umožňuje vývojářům snadno měnit nastavení modulu MAXM86146 a ihned sledovat výsledky prezentované ve formě grafů dat. GUI poskytuje spolu s přístupem k registrům modulu MAXM86146 také intuitivní nabídky k nastavení různých provozních režimů a konfigurací. Vývojáři mohou například použít kartu režimů v GUI k nastavení různých sekvencí diod LED (obrázek 4, nahoře) a použít kartu konfigurace v GUI k použití těchto sekvencí diod LED k měření srdečního tepu a SpO2 (obrázek 4, dole).

Obrázek GUI aplikace MAXM86146 EV System Software společnosti Maxim IntegratedObrázek 4: GUI aplikace MAXM86146 EV System Software společnosti Maxim Integrated umožňuje vývojářům vyhodnocovat výkon modulu MAXM86146 definováním různých provozních režimů, jako jsou sekvence diod LED (nahoře), a poté použít tyto sekvence (dole) k měřením srdečního tepu a SpO2. (Zdroj obrázku: společnost Maxim Integrated)

K vývoji vlastního softwaru poskytuje společnost Maxim Integrated svůj softwarový balíček algoritmu pro modul MAXM86146 k měření srdečního tepu a SpO2 pro nositelnou elektroniku. Vzhledem k tomu, že modul MAXM86146 zajišťuje měření srdečního tepu a SpO2 pomocí svého integrovaného firmwaru mikrokontroléru, je proces extrahování dat ze zařízení jednoduchý. Softwarový balíček společnosti Maxim Integrated demonstruje postup inicializace zařízení a nakonec odečet údajů z paměti FIFO modulu MAXM86146 a analýzu jednotlivých položek údajů (zápis 1).

Kopírovat
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]

Zápis 1: Fragment kódu softwarového balíčku společnosti Maxim Integrated demonstruje základní techniku extrahování údajů měření a dalších údajů z biosenzorického modulu. (Zdroj kódu: společnost Maxim Integrated)

V zápisu 1 je ilustrováno použití rutiny programovacího jazyka C execute_data_poll() k vrácení čísla odečtu měření srdečního tepu a SpO2 z modulu MAXM86146. Kód zde načítá z paměti FIFO do místní vyrovnávací paměti údajů a poté obsah vyrovnávací paměti údajů mapuje do instancí několika různých softwarových struktur jazyka C. Kromě uložení dat konfigurace a dalších metadat do těchto instancí struktury odesílá na závěr rutina měření srdečního tepu a SpO2 na výstup mesOutput, což je instance struktury mes_repor_t. Vývojáři mohou finální výrok printf jednoduše odkomentovat, aby se v konzoli zobrazil výsledek.

Software a hardware modulu MAXM86146 výrazně zjednodušuje vývoj při implementaci do nositelné elektroniky k monitorování zdraví a kondice. U zařízení, která musí získat schválení amerického úřadu pro kontrolu potravin a léčiv („Drug Administration“, FDA), však musí vývojáři provést příslušné testování, aby ověřili výkon svých finálních produktů dle standardů stanovených FDA. Přestože modul MAXM86146 společnosti Maxim Integrated a jeho vestavěné algoritmy poskytují výkon měření odpovídající standardu FDA, musí vývojáři zajistit, aby požadavky výkonu FDA splňoval celý systém a nikoli pouze snímač.

Závěr

Rostoucí zájem o nositelnou elektroniku schopnou poskytovat přesná měření srdečního tepu a SpO2 je poháněn úlohou údajů SpO2 při monitorování symptomů onemocnění COVID-19. Tato měření jsou schopné poskytovat specializované biosnímače, přesto jen málo stávajících řešení je schopných splnit poptávku po malých zařízeních s prodlouženou výdrží baterie v kompaktní multifunkční nositelné elektronice. Jak je uvedeno výše, miniaturní biosenzorický modul od společnosti Maxim Integrated, podporovaný sadou pro rychlé prototypování, nabízí efektivní alternativu poskytující měření se standardem FDA s minimální spotřebou energie.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

About this author

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk has more than 20 years of experience writing for and about the electronics industry on a wide range of topics including hardware, software, systems, and applications including the IoT. He received his Ph.D. in neuroscience on neuronal networks and worked in the aerospace industry on massively distributed secure systems and algorithm acceleration methods. Currently, when he's not writing articles on technology and engineering, he's working on applications of deep learning to recognition and recommendation systems.

About this publisher

DigiKey's North American Editors