Utilizarea unui modul de biodetecție pentru dezvoltarea dispozitivelor portabile pentru sănătate și fitness
Contributed By DigiKey's North American Editors
2020-10-21
Alimentat parțial de o conștientizare sporită a sănătății cauzată de situația COVID-19, interesul pentru dispozitivele portabile de biodetecție continuă să impulsioneze cererea de soluții mai eficiente, pentru a satisface cererea utilizatorilor de funcționalitate sporită și acuratețe mai bună în dispozitive cu factori de formă mai mici, dar și cu o autonomie extinsă a bateriei, la cost mai mic. Pentru proiectanți, acest lucru vine cu mai multe provocări continue, pe măsură ce încearcă să lucreze între limitele bugetelor și intervalele de timp pentru scoaterea produselor pe piață. În ajutorul lor vin descoperirile din domeniul dispozitivelor de biodetecție, inclusiv integrarea funcțională mai amplă a acestora și soluții de design mai complexe.
Acest articol discută tendințele în materie de biosenzori și dispozitive portabile, dar și provocările cu care se confruntă proiectanții. Apoi prezintă un modul de biosenzor pentru ritmul cardiac și saturația periferică a oxigenului (SpO2) de la Maxim Integrated și arată cum dezvoltatorii îl pot utiliza pentru a implementa mai eficient dispozitivele portabile care pot obține măsurători exacte ale ritmului cardiac, dar și alte măsurători, fără a compromite limitele restrânse de alimentare ale produselor mobile care funcționează pe baterii.
Cerințe de proiectare pentru biodetecție
În timp ce monitorizarea ritmului cardiac este o cerință esențială într-o mare varietate de dispozitive portabile de consum, interesul pentru măsurarea SpO2 continuă să crească. Fiind des utilizată mai demult de sportivii care doreau să își optimizeze regimurile de fitness, măsurarea SpO2 și-a găsit o aplicare mai răspândită, în special în auto-monitorizarea semnelor de funcție respiratorie redusă, asociată cu boala COVID-19. Pentru dezvoltatori, furnizarea de soluții adecvate unei populații atente la sănătate, obișnuită cu electronicele portabile, prezintă provocări semnificative în ceea ce privește costul, consumul de energie, factorul de formă și greutatea.
Mulți biosenzori sunt acum proiectați cu subsisteme front-end analogice integrate, astfel că dezvoltatorii nu trebuie să construiască lanțuri de semnal și subsisteme de post-procesare necesare pentru măsurătorile stării de sănătate și a nivelului de fitness, dar puține dintre aceste dispozitive avansate prezintă combinația potrivită de funcții pentru dispozitivele portabile. Drept urmare, acestea nu rezolvă provocările de proiectare care apar în încercarea de a satisface așteptările utilizatorilor față de dispozitive portabile de biodetecție mici, care sunt la fel de discrete ca și alte tipuri de dispozitive portabile de top, inclusiv ceasurile inteligente, brățările de fitness și căștile True Wireless, printre altele.
Alte provocări asociate cu integrarea designului pot apărea atunci când dezvoltatorii trebuie să adauge una sau mai multe funcții de biodetecție la aceste tipuri populare de dispozitive portabile. La fel ca în cazul oricărui alt tip de produs electronic personal mobil, care funcționează pe baterii, consumatorii cer în mod implicit o autonomie extinsă a bateriei, chiar și de la cele mai mici produse, pe care le aleg, de obicei, în funcție de autonomia bateriei, dar și în funcție de cost și funcționalitate.
Pentru a îndeplini aceste cerințe combinate, dezvoltatorii pot alege să utilizeze modulul de biodetecție MAXM86146 Maxim Integrated pentru proiectarea dispozitivelor personalizate și sistemul de evaluare MAXM86146EVSYS bazat pe MAXM86146 pentru prototipare rapidă.
Modulul de biodetecție oferă o soluție cu montare directă
Disponibil într-un pachet de 4,5 x 4,1 x 0,88 milimetri (mm), cu 38 de pini, modulul de biodetecție MAXM86146 Maxim Integrated este o soluție cu montare directă, concepută special pentru a accelera dezvoltarea dispozitivelor portabile compacte pentru sănătate și fitness, alimentate cu baterii. Pentru a îndeplini cerințele atât pentru autonomia extinsă a bateriei, cât și pentru funcțiile de biodetecție, modulul minimizează consumul de energie, menținând în același timp măsurarea rapidă și exactă a ritmului cardiac și SpO2.
Împreună cu două fotodiode integrate, modulul include un circuit front-end analogic (AFE) MAX86141 Maxim Integrated optic, cu două canale, și un microcontroler pe bază de Arm Cortex-M4, care este o variantă optimizată pentru biodetecție a microcontrolerului MAX32660 Darwin Maxim Integrated (Figura 1).
Figura 1: modulul de biodetecție MAX86146 Maxim Integrated include un AFE optic, un microcontroler și fotodiode într-un pachet compact. (Sursă imagine: Maxim Integrated)
Consumând doar 10 microamperi (μA) la 25 de eșantionări pe secundă (sps), MAX86141 integrat oferă un subsistem AFE optic complex, conceput pentru a controla mai multe diode emițătoare de lumină (leduri) utilizate pentru măsurarea ritmului cardiac și SpO2. Monitoarele optice pentru ritmul cardiac utilizează în mod obișnuit fotopletismografia (PPG), prin care se monitorizează modificările volumului de sânge periferic asociate cu fiecare bătaie a inimii. De obicei, pentru această măsurătoare, aceste dispozitive folosesc lumină verde la o lungime de undă de 540 nanometri (nm), care este absorbită de sânge și generează mai puține artefacte, deoarece lumina verde pătrunde la un nivel mai superficial în țesut comparativ cu alte lungimi de undă. Pulsoximetrele optice utilizează atât un led roșu (de obicei 660 nm), cât și un led cu infraroșu (IR) (de obicei 940 nm) pentru a măsura diferența de absorbție între hemoglobină și deoxihemoglobină – tehnica de la baza metodelor optice de măsurare a valorii SpO2 (consultați Crearea unui pulsoximetru ieftin folosind componente de pe rafturile magazinelor).
Pentru a efectua aceste măsurători optice, dezvoltatorul trebuie să se asigure că achiziția semnalului fotodiodei este sincronizată precis cu impulsurile de ieșire a luminii de la ledurile corespunzătoare. AFE MAX86141 integrat al modulului MAXM86146 oferă lanțuri de semnal separate pentru controlul ledurilor și pentru capturarea semnalului fotodiodei. Pe partea de ieșire, AFE include trei drivere de leduri, de înaltă intensitate și cu zgomot redus, pentru transmiterea impulsurilor la ledurile verzi pentru măsurarea ritmului cardiac, precum și la ledurile roșii și IR pentru măsurarea SpO2. Pe partea de intrare, AFE oferă două canale de capturare a semnalului fotodiodei, fiecare cu un convertor analog-digital (ADC) dedicat de 19 biți. Aceste două canale de afișare pot funcționa separat sau pot fi utilizate combinate, pentru a asigura o zonă radiantă mai extinsă.
Prin controlarea lanțurilor de semnal pentru ledurile AFE și fotodiode, firmware-ul care rulează pe microcontrolerul integrat ajustează setările AFE pentru a maximiza raportul semnal-zgomot (SNR) și pentru a minimiza consumul de energie. Pe măsură ce lumina ambientală se schimbă, circuitele de corecție a luminii ambientale (ALC), încorporate în MAX86141 integrat, răspund la schimbările graduale ale condițiilor de iluminare. Cu toate acestea, lumina ambientală se poate schimba rapid în anumite situații, cum ar fi atunci când utilizatorul trece rapid dintr-o zonă umbroasă într-una cu lumină solară puternică, rezultând în erori ALC. Pentru a lua în calcul această situație obișnuită, MAX86141 include o funcție de detectare și înlocuire în condiții de oscilare rapidă a luminii. În acest caz, dispozitivul identifică modificările semnificative ale măsurătorilor ambientale din eșantioanele anterioare și înlocuiește eșantioanele periferice individuale de date privind lumina ambientală cu valori extrapolate, conform cu o schimbare relativ lentă a nivelurilor ambientale.
Deoarece microcontrolerul modulului își folosește firmware-ul pentru a gestiona funcționarea AFE, operațiunile detaliate necesare pentru efectuarea măsurătorilor precise ale ritmului cardiac și SpO2 sunt transparente pentru dezvoltatori. Folosind setările firmware, modulul efectuează aceste măsurători în mod automat, stocând datele neprelucrate și rezultatele calculate într-o memorie tampon de tipul „primul intrat, primul ieșit” (FIFO) pentru a fi accesate de către procesorul gazdă al sistemului prin interfața serială I2C a modulului.
Cum simplifică MAX86146 designul hardware-ului dispozitivelor portabile
Cu funcționalitatea sa complexă integrată, modulul de biodetecție MAX86146 are nevoie de relativ puține componente suplimentare pentru finalizarea unui design care poate oferi măsurători exacte ale ritmului cardiac și SpO2. Pentru măsurători simultane ale ritmului cardiac și SpO2, MAX86146 poate fi integrat cu un multiplexor analogic extern cu zgomot redus, cum ar fi comutatorul MAX14689 Maxim Integrated conectat la leduri discrete verzi, roșii și IR (Figura 2).
Figura 2: pentru a efectua măsurători simultane ale ritmului cardiac și SpO2, modulul de biodetecție MAX86146 Maxim Integrated necesită câteva componente suplimentare pe lângă ledurile corespunzătoare, un multiplexor analogic (MAX14689, pe stânga) și un accelerometru pentru detectarea mișcării în timpul efectuării măsurătorilor. (Sursă imagine: Maxim Integrated)
În plus, MAXM86146 este conceput pentru a utiliza datele de mișcare de la un accelerometru cu trei axe, în scopul de a corecta mișcarea utilizatorului în timpul măsurării ritmului cardiac și pentru a detecta mișcarea în timpul măsurării SpO2, care necesită ca utilizatorul să rămână în repaus pe perioada scurtă de timp în care se efectuează măsurătoarea. Aici, dezvoltatorul fie poate conecta un accelerometru acceptat de firmware direct la porturile SPI ale MAXM86146, fie poate conecta un accelerometru de uz general la procesorul gazdă.
Opțiunea de conectare la gazdă oferă flexibilitate mai mare pentru selectarea dispozitivului, necesitând doar un accelerometru cu trei axe de uz general, cum ar fi MC3630 de la Memsic, care poate atinge 25 sps. Totuși, dezvoltatorii trebuie să se asigure că datele accelerometrului sunt sincronizate cu eșantionarea datelor ritmului cardiac. În acest scop, microcontrolerul integrat decimează sau interpolează la nivel intern eșantioanele accelerometrului, după cum este necesar, pentru a compensa abaterea dintre datele ritmului cardiac și datele accelerometrului.
Cum să începeți să efectuați rapid evaluarea MAXM86146 și prototiparea rapidă
Deși MAXM86146 simplifică designul hardware al sistemului, dezvoltatorii care doresc să evalueze MAXM86146 sau să își prototipeze rapid aplicațiile pot omite etapa de design al hardware-ului și să înceapă imediat să lucreze cu dispozitivul, utilizând sistemul de evaluare MAXM86146EVSYS. Alimentat prin USB sau cu o baterie cu polimer de litiu (LiPo), de 3,7 volți, MAXM86146EVSYS conține o placă de senzori optici (OSB) MAXM86146_OSB bazată pe MAXM86146, conectată prin cablu flexibil la o placă principală de achiziție de date MAXSensorBLE activată prin Bluetooth, cu consum redus de energie (BLE) (Figura 3).
Figura 3: sistemul de evaluare MAXM86146EVSYS Maxim Integrated include o placă principală de procesor, activată prin BLE, și o placă de senzori bazată pe MAXM86146, conectată cu cablu flexibil. (Sursă imagine: Maxim Integrated)
Placa MAXSensorBLE include un microcontroler gazdă MAX32620 Maxim Integrated și un microcontroler Bluetooth NRF52832 de la Nordic Semiconductor. De fapt, placa MAXSensorBLE funcționează ca un design de referință complet pentru un design al unui dispozitiv portabil cu funcție BLE. Pe lângă compatibilitatea pentru componentele active și pasive, designul plăcii MAXSensorBLE vine cu un circuit integrat de management al energiei (PMIC) MAX20303 Maxim Integrated, conceput special pentru a extinde autonomia bateriei dispozitivelor portabile.
Placa de senzori optici MAXM86146_OSB combină un modul de biodetecție MAXM86146 cu un comutator analogic MAX14689 și un set complet de leduri, necesare pentru a efectua măsurătorile simultane ale ritmului cardiac și SpO2. În plus, placa are integrat și un accelerometru cu trei axe pe bază de firmware, conectat direct la modulul MAXM86146.
Pentru a evalua modulul MAXM86146 utilizând sistemul de evaluare MAXM86146EVSYS, dezvoltatorii alimentează sistemul folosind USB-C sau o baterie LiPo, și conectează un dongle USB BLE, dacă este necesar, la un computer personal pe care rulează aplicația software-ului de sistem MAXM86146 EV. Această aplicație pentru Windows oferă o interfață grafică de utilizare (GUI) care permite dezvoltatorilor să modifice cu ușurință setările MAXM86146 și să observe imediat rezultatele prezentate sub formă de grafice de date. Pe lângă furnizarea accesului la registrele MAXM86146, GUI oferă meniuri intuitive pentru setarea diferitelor moduri de operare și configurații. De exemplu, dezvoltatorii pot utiliza fila modului GUI pentru a seta diferite secvențe de leduri (Figura 4, sus) și pot utiliza fila de configurare GUI pentru a aplica aceste secvențe led pentru măsurătorile ritmului cardiac și SpO2 (Figura 4, jos).
Figura 4: interfața grafică de utilizare a software-ul sistemului MAXM86146 EV Maxim Integrated permite dezvoltatorilor să evalueze performanța MAXM86146 prin definirea diferitelor moduri de operare, cum ar fi secvențele ledurilor (sus), iar apoi să utilizeze acele secvențe (jos) pentru măsurarea ritmului cardiac și SpO2. (Sursă imagine: Maxim Integrated).
Pentru dezvoltarea de software personalizat, Maxim Integrated pune la dispoziție algoritmul său pentru monitorizarea ritmului cardiac și SpO2 pe dispozitive portabile pentru pachetul de software MAXM86146. Deoarece MAXM86146 oferă măsurători ale ritmului cardiac și SpO2 utilizând firmware-ul său integrat pentru microcontroler, procesul de extragere a datelor de pe dispozitiv este unul simplu. Pachetul software Maxim Integrated demonstrează procedura de inițializare a dispozitivului și, în final, citirea datelor din FIFO MAXM86146 și analizarea elementelor de date individuale (Lista 1).
Copie
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]
Lista 1: un fragment din pachetul software Maxim Integrated demonstrează tehnica de bază pentru extragerea măsurătorilor și a altor date din modulul de biodetecție. (Sursă cod: Maxim Integrated)
Lista 1 ilustrează utilizarea rutinei execute_data_poll() în limbajul C pentru returnarea unui număr de măsurători ale ritmului cardiac și SpO2 de la MAXM86146. Aici, codul citește FIFO-ul dispozitivului în memoria tampon locală databuf, iar apoi mapează conținutul databuf în instanțe ale unor structuri de software diferite în limbaj C. În final, pe lângă stocarea datelor de configurare și a altor metadate în acele instanțe de structură, rutina oferă și măsurători ale ritmului cardiac și SpO2 în mesOutput, o instanță a structurii mes_repor_t. Dezvoltatorii pot pur și simplu să activeze linia de script pentru declarația finală printf, pentru a afișa rezultatul pe consolă.
Pentru implementarea unui dispozitiv portabil pentru sănătate și fitness, software-ul și hardware-ul MAXM86146 simplifică în mod considerabil dezvoltarea. Cu toate acestea, pentru dispozitivele destinate obținerii aprobării Administrației pentru alimente și medicamente (FDA) din SUA, dezvoltatorii trebuie să efectueze testele corespunzătoare pentru a verifica performanța produselor finale la nivelul FDA. Deși MAXM86146 de la Maxim Integrated și algoritmii săi încorporați asigură o performanță de măsurare de nivel FDA, dezvoltatorii vor trebui să se asigure că întregul lor sistem – nu doar senzorul – îndeplinește cerințele de performanță ale FDA.
Concluzie
Interesul față de dispozitivele portabile capabile să măsoare cu acuratețe ritmul cardiac și SpO2 continuă să crească, fiind alimentat cel mai recent de rolul datelor SpO2 în monitorizarea simptomelor bolii COVID-19. Deși biosenzorii specializați pot furniza aceste măsurători, există puține soluții care pot răspunde cererii de dispozitive mai mici capabile să extindă autonomia bateriei în dispozitivele portabile multifuncționale și compacte. După cum se vede, un mic modul de biodetecție de la Maxim Integrated, susținut de un kit de prototipare rapidă, reprezintă o alternativă eficientă, oferind măsurători de calitate FDA cu un consum minim de energie.
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.




