Használjon bioszenzor modult egészségvédelmi és fitnesz célú viselhető eszközök fejlesztéséhez
Contributed By DigiKey's North American Editors
2020-10-21
Részben a COVID-19 miatti nagyobb egészségtudatosságnak köszönhetően, a viselhető bioszenzor-eszközök iránti érdeklődés még hatékonyabb megoldásokra támaszt igényt. A felhasználók a funkciók számának növelését szeretnék pontosabb mérésekkel, ugyanakkor viszont kisebb méretekkel, hosszabb akkumulátor-élettartammal és alacsonyabb költségekkel. A tervezők számára ez egy sor folyamatos kihívást jelent, miközben a szoros piacra kerülési idő és költségvetési korlátok szorításában dolgoznak. Kedvez nekik azonban a bioszenzor eszközök területén elért előrehaladás, beleértve a magasabb funkcionális integrációt és az átfogóbb tervezési megoldásokat.
Ez a cikk a bioszenzorok és viselhető eszközök trendjeit és a tervezőkkel szembeni kihívásokat tárgyalja. Majd bemutat egy bioszenzor modult a Maxim Integrated-től, amely a pulzusszám és az artériás oxigén-telítettség (SpO2) érzékelésére szolgál, és megmutatja, hogy a fejlesztők hogyan tudják felhasználni azt olyan viselhető eszközök hatékonyabb megvalósításához, amelyek pontos pulzusszám és más mérések biztosítására képesek, anélkül, hogy veszélyeztetnék az akkumulátoros hordozható termékek szűkös áramellátási lehetőségeit.
A bioérzékelés tervezési követelményei
Míg a pulzusmérés már alapvető funkció a fogyasztók által viselhető eszközök sokféle változatában, az SpO2 mérésének igénye folyamatosan nő. Az SpO2 mérését korábban a sportolók használták edzettségi állapotuk optimalizálására, ma már azonban szélesebb körű alkalmazásra talált, különösen a COVID-19 betegséggel összefüggő csökkent légzési funkció önellenőrzésében. A viselhető elektronikus eszközökhöz szokott egészségtudatos lakosság által elfogadható megoldások létrehozása jelentős kihívásokat jelent a fejlesztők számára a költség, a teljesítmény, a méret és a súly szempontjából.
Számos bioszenzor már integrált analóg front-end alrendszerrel rendelkezik, így a fejlesztőknek nem kell felépíteniük az egészségi állapot és a kondíció méréséhez szükséges jelláncokat és utófeldolgozó alrendszereket, azonban ezek közül a korszerű eszközök közül kevesen rendelkeznek a viselhető eszközök számára is megfelelő képességekkel. Emiatt nem felelnek meg az olyan kis méretű, a többi elterjedt viselhető eszközhöz (többek között okosórákhoz, fitneszszalagokhoz és valódi vezeték nélküli fülhallgatókhoz) hasonlóan nem feltűnően viselhető bioszenzor eszközökkel kapcsolatos felhasználói elvárásoknak megfelelni kívánó tervezési kihívásoknak.
A tervezési integrációval kapcsolatos további kihívások merülhetnek fel, ha a fejlesztőknek hozzá kell adniuk egy vagy több bioérzékelési képességet ezekhez a népszerű viselhető típusokhoz. Mint minden más típusú hordozható, akkumulátoros személyi elektronikus termék esetében, a fogyasztók implicit módon a legkisebb termékektől is meghosszabbított akkumulátor-élettartamot követelnek, és ezeket a termékeket általában az akkumulátor-üzemidő, valamint a költségek és a funkcionalitás alapján választják ki.
Ezen kombinált követelmények teljesítése érdekében a fejlesztők a Maxim Integrated MAXM86146 bioszenzor modulját használhatják az egyedi eszközök tervezéséhez, illetve a MAXM86146-alapú MAXM86146EVSYS fejlesztőrendszert a prototípusok gyors elkészítéséhez.
Drop-in megoldást kínáló bioszenzor modul
A 4,5 x 4,1 x 0,88 mm méretű, 38 kivezetéses tokozású Maxim Integrated MAXM86146 bioszenzor modul egy olyan drop-in megoldás, amelyet kifejezetten egészségvédelmi és fitnesz célú kompakt, akkumulátoros, viselhető eszközök fejlesztésének elősegítésére terveztek. A hosszabb akkumulátor-élettartamra és a bioérzékelési képességekre vonatkozó követelmények teljesítése érdekében a modul minimalizálja az energiafogyasztást, miközben fenntartja a pulzus és az SpO2 gyors és pontos mérését.
A két beépített fotodióda mellett a Maxim Integrated MAX86141 egy kétcsatornás optikai analóg front-end (AFE) fokozatot és egy Arm Cortex-M4-alapú mikrovezérlőt is tartalmaz, utóbbi a Maxim Integrated MAX32660 Darwin mikrovezérlő bioérzékelésre optimalizált változata (1. ábra).
1. ábra: A Maxim Integrated MAX86146 bioszenzor modul optikai AFE fokozatot, mikrovezérlőt és fotodiódákat egyesít egy kompakt tokban. (Kép: Maxim Integrated)
A 25 mintavétel per másodperc (sps) melletti 10 μA áramfelvételével az integrált MAX86141 átfogó optikai AFE alrendszert kínál, amelyet a pulzus és az SpO2 mérésére használt LED-ek vezérlésére fejlesztettek ki. Az optikai pulzusmérők rutinszerűen használják a fotopletizmográfiát (PPG), amely a perifériás vérmennyiségnek a szív minden egyes dobbanásához kapcsolódó változását figyeli. Ehhez a méréshez ezek az eszközök általában 540 nm hullámhosszú zöld fényt használnak, amelyet a vér elnyel és kevesebb műtermék keletkezik, mivel a zöld fény kevésbé mélyen hatol be a szövetbe, mint sok más hullámhossz. Az optikai pulzoximéterek vörös (általában 660 nm-es) és infravörös (IR) LED-et (általában 940 nm-es) egyaránt használnak a hemoglobin és a deoxihemoglobin közötti abszorpciós különbség mérésére – ez az optikai SpO2 mérési módszerek alapjául szolgáló technika (lásd: Design a Low-Cost Pulse Oximeter Using Off-the-Shelf Components, Olcsó pulzoximéter tervezése kereskedelemben kapható alkatrészek használatával).
Az ilyen optikai mérések során a fejlesztőnek biztosítania kell, hogy a fotodióda jelvétele pontosan szinkronban legyen a megfelelő LED-ek fénykibocsátási impulzusaival. Az MAXM86146 modul integrált MAX86141 AFE fokozata külön jelláncokat biztosít a LED-ek vezérléshez és a fotodióda jelvételéhez. A kimeneti oldalon az AFE három nagyáramú, alacsony zajszintű LED-meghajtót tartalmaz, ezek továbbítják az impulzusokat a zöld LED-ekhez a pulzusméréshez, valamint a piros és az IR LED-ekhez az SpO2 méréséhez. A bemeneti oldalon az AFE két fotodióda számára biztosít jelvételi csatornát; mindkettő dedikált 19 bites analóg-digitális átalakítóval (ADC) rendelkezik. Ez a két kiolvasó csatorna külön-külön is működhet, vagy kombinálva nagyobb sugárzási területet biztosíthat.
Az AFE LED és fotodióda jelláncok vezérléséhez a beépített mikrovezérlőn futó firmware elvégzi az AFE beállításait a jel-zaj viszony (SNR) maximalizálása és az energiafogyasztás minimalizálása érdekében. A környezeti megvilágítás változása esetén az integrált MAX86141-be épített környezeti fénykorrekciós (ALC) áramkör reagál a fényviszonyok fokozatos változásaira. A környezeti megvilágítás azonban gyorsan is változhat bizonyos helyzetekben, például amikor a felhasználó gyorsan halad át árnyékos és napfényes helyeken, ami ALC-hibákat eredményez. Ennek a gyakori helyzetnek a kiküszöbölésére az MAX86141 egy úgynevezett léckerítés-észlelő-cserélő funkciót tartalmaz. Itt az eszköz azonosítja a nagy eltéréseket a korábbi mintákból származó környezeti mérésekben és a környezeti viszonyok viszonylag lassú változásának megfelelő extrapolált értékekkel helyettesíti a külső környezeti fényadatok egyes mintáit.
Mivel a modul mikrovezérlője az AFE működtetésére a modul firmware-ét használja, a pontos pulzus- és SpO2-méréshez szükséges részletes műveletek a fejlesztők számára is átláthatók. A firmware-beállítások használatával a modul ezeket a méréseket automatikusan elvégzi, a nyers adatokat és a kiszámított eredményeket egy first-in first-out (FIFO) pufferben tárolja, amelyhez a rendszer gazdagép-processzora a modul I2C soros interfészén keresztül férhet hozzá.
Hogyan egyszerűsíti le az MAX86146 a viselhető eszközök tervezését?
Kiterjedt integrált funkcionalitásának köszönhetően az MAX86146 bioszenzor modul viszonylag kevés további alkatrészt igényel egy pontos pulzus- és SpO2-mérésekre képes eszköz fejlesztésének befejezéséhez. Egyidejű szívütem- és SpO2-mérésekhez az MAX86146 egy külső, alacsony zajszintű analóg multiplexerrel integrálható, például a Maxim Integrated MAX14689 chipjével, amely diszkrét zöld, piros és IR LED-ekhez csatlakozik (2. ábra).
2. ábra: A pulzus és az SpO2 egyidejű méréséhez a Maxim Integrated MAX86146 bioszenzor modulon kívül kevés további alkatrész szükséges. A megfelelő LED-ek mellett egy analóg multiplexerre (MAX14689, a bal oldalon) és egy gyorsulásmérőre a mérés közbeni mozgások érzékeléséhez. (Kép: Maxim Integrated)
Ezenkívül az MAXM86146-ot úgy tervezték, hogy pulzusmérés során egy háromtengelyes gyorsulásmérő mozgási adatait használja a felhasználó mozgásának figyelembe vételéhez, valamint SpO2 mérések közben a mozgás észleléséhez, amikor a felhasználónak nyugalomban kell lennie. Ehhez a fejlesztő vagy egy, a firmware által támogatott gyorsulásmérőt csatlakoztathat közvetlenül az MAXM86146 SPI portjaihoz, vagy egy általános célú gyorsulásmérőt a gazdagép processzorához.
A gazdagéphez való csatlakozási opció nagyobb rugalmasságot biztosít az eszközválasztásban, mert csak egy általános célú háromtengelyes gyorsulásmérőre van szükség, például a Memsic 25 sps-re képes MC3630 eszközére. A fejlesztőknek azonban még biztosítaniuk kell a gyorsulásmérő adatainak a pulzusadatok mintavételével való szinkronizálását. Ehhez a lapra integrált mikrovezérlő szükség szerint belsőleg tizedeléssel mintavételezi vagy interpolálja a gyorsulásmérő mintáit, hogy kompenzálja a pulzusszám-adatok és a gyorsulásmérő adatai közötti eltolódást.
Gyors kezdet az MAXM86146 fejlesztőrendszerével és a gyors prototípus-készítéssel
Bár az MAXM86146 leegyszerűsíti a rendszer hardverének tervezését, a vele történő fejlesztésre vagy a gyors prototípus-készítésre törekvő fejlesztők az MAXM86146EVSYS fejlesztőrendszert használva kihagyhatják a hardvertervezést és azonnal elkezdhetik a munkát az eszközzel. Az USB-n keresztül vagy 3,7 V-os lítium-polimer (LiPo) akkumulátorral működtetett MAXM86146EVSYS egy MAXM86146 alapú MAXM86146_OSB optikai érzékelő kártyát (OSB) tartalmaz, amely hajlékony kábellel csatlakozik egy alacsony fogyasztású Bluetooth (BLE) kompatibilis MAXSensorBLE fő adatgyűjtő kártyához (3. ábra).
3. ábra: A Maxim Integrated MAXM86146EVSYS fejlesztőrendszer egy BLE-kompatibilis fő processzorkártyát és egy flexibilis kábellel csatlakozó MAXM86146 alapú érzékelőkártyát tartalmaz. (Kép: Maxim Integrated)
A MAXSensorBLE kártyára a Maxim Integrated MAX32620 gazdagép mikrovezérlő és a Nordic Semiconductor NRF52832 Bluetooth mikrovezérlője van integrálva. A MAXSensorBLE kártya valójában teljes referenciaprojektként szolgál a BLE-kompatibilis viselhető eszközök tervezéséhez. Az aktív és passzív alkatrészek mellett az MAXSensorBLE kártya része egy Maxim Integrated MAX20303 energiafogyasztás-szabályozó integrált áramkör (PMIC) is, amelyet kifejezetten a viselhető eszközökkel használt akkumulátorok élettartamának meghosszabbítására terveztek.
Az MAXM86146_OSB optikai érzékelő kártya az MAXM86146 bioszenzoros modult kombinálja egy MAX14689 analóg kapcsolóval és az egyidejű pulzusszám- és SpO2-mérések elvégzéséhez szükséges LED-ek teljes készletével. Ezen felül a kártya tartalmaz egy, a firmware által támogatott háromtengelyes gyorsulásmérőt is, amely közvetlenül az MAXM86146 modulhoz csatlakozik.
Az MAXM86146 modullal az MAXM86146EVSYS fejlesztőrendszer segítségével történő fejlesztéshez a fejlesztők az USB-C port vagy a LiPo akkumulátor használatával kapcsolják be a rendszert, és szükség esetén csatlakoztatniuk kell egy BLE USB kulcsot a Maxim Integrated MAXM86146 EV System Software alkalmazást futtató személyi számítógéphez. Ez a Windows alkalmazás egy grafikus felhasználói felületet (GUI) biztosít, amely lehetővé teszi a fejlesztők számára, hogy egyszerűen módosítsák az MAXM86146 paramétereit és azonnal megfigyeljék az adatdiagramként megjelenő eredményeket. Az MAXM86146 regisztereihez való hozzáférés mellett a grafikus kezelőfelület intuitív menüket kínál a különböző üzemmódok és konfigurációk beállításához. Például a fejlesztők a GUI mód fülön különböző LED-szekvenciákat állíthatnak be (4. ábra, fent) és a GUI konfigurációs fül segítségével alkalmazhatják ezeket a LED-szekvenciákat a pulzusszám- és SpO2-mérésekhez (4. ábra, lent).
4. ábra: A Maxim Integrated MAXM86146 EV System Software alkalmazás grafikus kezelőfelülete lehetővé teszi a fejlesztők számára az MAXM86146 teljesítményének értékelését különböző működési módok, például LED-szekvenciák (fent) meghatározásával, majd ezeknek a szekvenciáknak a pulzusszám és az SpO2 mérésére való felhasználásával (lent). (Kép: Maxim Integrated).
Az egyedi szoftverfejlesztési igények kielégítésére a Maxim Integrated a Wearable HRM & SpO2 Algorithm for MAXM86146 szoftvercsomagot kínálja. Mivel az MAXM86146 saját integrált mikrovezérlő firmware-ével végzi a pulzusszám- és SpO2-méréseket, az adatok kinyerése az eszközről egyszerű. A Maxim Integrated szoftvercsomagja bemutatja az eszköz inicializálásának folyamatát, végül az MAXM86146 FIFO adatainak kiolvasását és az egyes adatelemek elemzését (1. lista).
Másolás
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]
1. lista: A Maxim Integrated szoftvercsomagjának részlete bemutatja a mérési és egyéb adatok bioszenzor modulból való kinyerésének alapvető technikáját. (Programkód: Maxim Integrated)
Az 1. lista a C nyelvű execute_data_poll() eljárás használatát szemlélteti a pulzusszám- és az SpO2-értékek MAXM86146-ból való kinyeréséhez. Itt a program beolvassa az eszköz FIFO-ját a helyi puffer adatbázisba, majd az adatbázis tartalmát több különböző C-nyelvű szoftverstruktúra példányaiba képezi le. A konfigurációs adatok és egyéb metaadatok ezekbe a struktúrapéldányokba való letárolásával együtt az eljárás végül rendelkezésre bocsátja a pulzusszám- és az SpO2-mérések értékeit az mesOutput-ban, az mes_repor_t struktúra egyik példányában. Ahhoz, hogy az eredmény megjelenjen a konzolon, a fejlesztőknek egyszerűen ki kell törölni („kikommentelni”) az utolsó printf utasítást letiltó karaktereket.
Az egészségvédelmi és fitnesz célú viselhető eszközök megvalósítása érdekében az MAXM86146 szoftver és hardver jelentősen leegyszerűsíti a fejlesztést. Az olyan eszközök esetében azonban, amelyeknek rendelkezniük kell az Egyesült Államok Élelmiszer- és Gyógyszerügyi Hivatala (FDA) jóváhagyásával, a fejlesztőknek megfelelő teszteket kell végezniük végtermékeik FDA-szintű teljesítőképességének ellenőrzésére. Noha a Maxim Integrated MAXM86146 eszköze és annak beágyazott algoritmusai FDA-szintű mérési teljesítményt nyújtanak, a fejlesztőknek biztosítaniuk kell, hogy teljes rendszerük – és ne csak az érzékelő – megfeleljen az FDA teljesítőképességre vonatkozó követelményeinek.
Összegzés
A pontos pulzus- és SpO2-méréseket biztosító viselhető eszközök iránti érdeklődés továbbra is növekszik, amelyet újabban az SpO2 adatoknak a COVID-19 betegség tüneteinek nyomon követésében játszott szerepe táplál. Habár ezeket a méréseket speciális bioszenzorok képesek elvégezni, kevés létező megoldás tudja kielégíteni az akkumulátor élettartamát megnövelni képes kisebb, többfunkciós, viselhető eszközök iránti igényt. Mint láthattuk, a Maxim Integrated gyors prototípus-készítést biztosító készlettel támogatott apró bioszenzor modulja hatékony alternatívát kínál, FDA minőségű mérési eredményeket szolgáltatva minimális energiafogyasztás mellett.
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.




