Kehitä puettavia terveys- ja kuntoilulaitteita käyttämällä biosensorimoduulia
Julkaisija DigiKeyn kirjoittajat Pohjois-Amerikassa
2020-10-21
COVID-19 on osaltaan lisännyt terveystietoisuutta ja mielenkiintoa puettavia biosensoreita kohtaan. Kysyntä kasvaa tehokkaammille ratkaisuille, jotka vastaavat käyttäjien haluun saada enemmän toiminnallisuutta ja tarkemmat tulokset pienemmässä koossa, pidemmällä akunkestolla ja halvemmalla. Suunnittelijoiden kannalta tämä asettaa jatkuvia haasteita heidän pyrkiessään täyttämään tiukat markkinoilletuontiajat ja budjetit. Suunnittelijoita auttaa tässä biosensoreissa tapahtuneet kehitysaskeleet, mukaan lukien korkeampi toiminnallinen integraatio ja kattavammat suunnitteluratkaisut.
Tässä artikkelissa keskustellaan biosensoreiden ja puettavien laitteiden trendeistä sekä suunnittelijoiden kohtaamista haasteista. Tämän jälkeen artikkeli esittelee syke- ja SpO2-biosensorimoduulin (peripheral oxygen saturation) yritykseltä Maxim Integrated ja näyttää miten kehittäjät voivat sen avulla toteuttaa tehokkaammin puettavia laitteita, jotka mittaavat tarkasti sykkeen ja muita parametreja kuitenkaan kuluttamatta akkukäyttöisten tuotteiden tiukkaa virtabudjettia.
Biosensoreiden suunnitteluvaatimukset
Vaikka sykkeen seuraaminen on useiden kuluttajille suunnattujen puettavien laitteiden keskeisiä vaatimuksia, mielenkiinto SpO2-arvon mittaukseen kasvaa jatkuvasti. SpO2-arvo oli aikoinaan mielenkiinnon kohteena lähinnä vain urheilijoilla, jotka halusivat optimoida harjoittelunsa. Nyt sitä käytetään yleisesti, erityisesti seurattaessa itse merkkejä COVID-19-tautiin liittyvästä heikentyneestä hengitystoiminnasta. Kehittäjien kannalta on haastavaa tarjota puettaviin elektroniikkalaitteisiin tottuneelle terveystietoiselle populaatiolle sopivia ratkaisuita, jotka ovat edullisia, vähävirtaisia, pieniä ja kevyitä.
Monet biosensorit toimitetaan nyt integroidulla analogisella etuasteella ja alijärjestelmällä, niin että kehittäjien ei tarvitse rakentaa signaaliketjuja ja jälkikäsittelyn alijärjestelmiä, joita terveyden ja kunnon mittaamiseen vaaditaan. Kuitenkin vain harvoissa näistä korkeatasoisista laitteista on puettavien laitteiden vaatimia ominaisuuksia. Tästä syystä ne eivät vastaa suunnitteluhaasteisiin, jotka liittyvät pienikokoisten puettavien biosensoreiden käyttäjäodotuksiin. Näiden tulisi olla yhtä huomaamattomia kuin muunkin tyyppiset parhaat puettavat laitteet, mukaan lukien älypuhelimet, kuntoilurannekkeet ja aidosti langattomat korvanapit ja niin edelleen.
Suunnitteluintegroinnissa voi syntyä lisää haasteita kun kehittäjien on lisättävä biosensoritoiminnallisuutta näihin suosittuihin puettaviin laitetyyppeihin. Kuten kaikkien muidenkin mobiilien akkukäyttöisten henkilökohtaisten elektroniikkalaitteiden kohdalla, asiakkaat implisiittisesti vaativat pidempää akunkestoa kaikkein pienimmiltäkin tuotteilta ja tyypillisesti valitsevat nämä tuotteet yhtä pitkälle akunkeston kuin hinnan ja toiminnallisuudenkin perusteella.
Vastatakseen kaikkiin näihin vaatimuksiin kehittäjät voivat kääntyä Maxim Integrated -yrityksen MAXM86146 -biosensorimoduulin puoleen suunnitellessaan räätälöityjä tuotteita. Kehittäjät voivat käyttää MAXM86146-pohjaisten laitteiden nopeaan prototyyppikokeiluun MAXM86146EVSYS-arviointijärjestelmää.
Biosensorimoduuli tarjoaa valmiin ratkaisun
38-jalkaisessa kotelossa kooltaan 4,5 x 4,1 x 0,88 millimetriä (mm) saatava Maxim Integrated MAXM86146 -biosensorimoduuli on valmis ratkaisu, joka on tarkoitettu erityisesti nopeuttamaan kompaktien akkukäyttöisten puettavien terveys- ja kuntoilusovellusten kehitystä. Vastatakseen vaatimuksiin sekä pidemmästä akunkestosta ja biosensoritoiminnallisuudesta moduuli minimoi virrankulutuksen samalla kun se mittaa sykkeen ja SpO2-arvon nopeasti ja tarkasti.
Kahden integroidun valodiodin lisäksi moduuli sisältää Maxim Integrated MAX86141 -piirin, joka on kahden kanavan optinen analoginen etuaste (AFE), sekä Arm Cortex-M4-pohjaisen mikrokontrollerin, joka on biosensorioptimoitu variantti Maxim Integrated MAX32660 Darwin -mikrokontrollerista (kuva 1).
Kuva 1: Maxim Integrated MAX86146 -biosensorimoduuli integroi optisen AFE:n, mikrokontrollerin sekä valodiodit kompaktiin koteloon. (Kuvan lähde: Maxim Integrated)
Laite kuluttaa virtaa vain 10 mikroampeeria (μA) mitatessaan 25 näytettä sekunnissa (sps). Integroitu MAX86141 tarjoaa kattavan optisen AFE-alijärjestelmän, joka on tarkoitettu ohjaamaan useita sykkeen ja SpO2-arvon mittaamisessa käytettäviä ledejä (Light Emitting Diode). Optiset sykemittarit käyttävät usein PPG (PhotoPlethysmoGraphy) -mittausta, joka seuraa sydämen kuhunkin pulssiin liittyviä veren perifeerisiä volyymimuutoksia. Tässä mittauksessa nämä laitteet käyttävät tyypillisesti vihreää valoa, jonka aallonpituus on 540 nanometriä (nm). Veri absorboi valon ja kyseinen valo synnyttää vähemmän artefakteja, koska vihreä valo ei uppoa kudokseen yhtä syvälle kuin monet muut aallonpituudet. Optiset pulssioksimetrit käyttävät sekä punaista lediä (tyypillisesti 660 nm) että infrapunalediä (IR, tyypillisesti 940 nm) mitatakseen eron hemoglobiinin ja deoksihemoglobiini absorptiossa. Optiset SpO2-arvon mittausmenetelmät perustuvat tähän tekniikkaan (katso Suunnittele edullinen pulssioksimetri käyttäen valmiita komponentteja).
Näiden optisten mittausten suorittamiseksi kehittäjän on varmistettava, että valodiodisignaalin luku on synkronoitu tarkkaan valon lähtöpulsseihin kyseisiltä ledeiltä. MAXM86146-moduulin integroitu MAX86141-AFE tarjoaa erilliset signaaliketjut ledien ohjausta ja valodiodisignaalin lukua varten. Lähtöpuolella AFE-sisältää kolme virtamäärältään korkeaa alhaisen kohinan lediohjainta pulssien lähettämiseksi vihreille ledeille sykemittausta varten, sekä punaisille ledeille ja infrapunaledeille SpO2-mittausta varten. Tulopuolella AFE tarjoaa kaksi valodiodisignaalin lukukanavaa, joista kummallakin on dedikoitu 19-bittinen analogia-digitaalimuunnin (ADC). Nämä kaksi lukukanavaa voivat toimia erikseen tai niitä voidaan käyttää yhdessä laajemman säteilyalueen kattamiseksi.
Mikrokontrollerin laiteohjelmisto ohjaa AFE-ledejä ja valodiodien signaaliketjuja sekä säätää AFE-asetuksia maksimoiden SNR-suhteen (Signal to Noise Ratio) ja minimoiden virrankulutuksen. Kun ympäristön valotaso muuttuu, MAX86141-piiriin integroitu ALC-ominaisuus (Ambient Light Correction) vastaa valaistusolosuhteiden hiljattaisiin muutoksiin. Ympäristön valotaso voi kuitenkin muuttua joissain tilanteissa nopeasti, esimerkiksi kun käyttäjä ohittaa nopeasti varjoisia tai auringonvalossa kylpeviä kohtia. ALC ei osaa käsitellä tällaisia muutoksia. Nämä ovat tavallisia tilanteita ja MAX86141 käyttää tällaisissa tilanteissa aidan-tunnistus-ja-korvaus-funktiota. Tässä laite havaitsee taustamittauksessa huomattavat poikkeamat aikaisemmista mittauksista ja korvaa yksittäiset kaukana sijaitsevat ympäristövalon datanäytteet extrapoloiduilla arvoilla, jotka sopivat taustavalotason suhteellisen hitaaseen muutokseen.
Koska moduulin mikrokontrolleri käyttää AFE-toiminnan ohjaamiseen laiteohjelmistoa, kehittäjien ei tarvitse välittää yksityiskohtaisista toimenpiteistä tarkkojen syke- ja SpO2-mittauksien suorittamiseksi. Moduuli käyttää laiteohjelmiston asetuksia ja suorittaa nämä mittaukset automaattisesti sekä tallentaa raakadatan ja lasketut tulokset FIFO-puskuriin (First-In First-Out), josta järjestelmän isäntäprosessori voi lukea ne moduulin I2C-sarjaliitännän kautta.
Miten MAX86146 yksinkertaistaa puettavien laitteiden suunnittelua
MAX86146-biosensorimoduulin laaja integroitu toiminnallisuus vaatii suhteellisen vähän muita komponentteja muodostaakseen ratkaisun, joka tarjoaa tarkat syke- ja SpO2-mittaukset. Jos syke ja SpO2 halutaan mitata samanaikaisesti, MAX86146 voidaan integroida ulkoisen matalakohinaisen analogisen multiplekserin kanssa, esimerkkinä Maxim Integrated MAX14689 -kytkin yhdistettynä erillisiin vihreisiin, punaisiin ja infrapunaledeihin (kuva 2).
Kuva 2: Jotta Maxim Integrated MAX86146 -biosensorimoduuli voisi mitata sykkeen ja SpO2-arvon samanaikaisesti, se tarvitsee muutamia lisäkomponentteja sopivien ledien, analogisen multiplekserin (MAX14689, vasemmalla) sekä mittauksen aikana tapahtuvan liikkeen havaitsevan kiihtyvyysanturin lisäksi. (Kuvan lähde: Maxim Integrated)
Lisäksi MAXM86146 on suunniteltu käyttämään liiketietoja kolmiakseliselta kiihtyvyysanturilta ottaakseen huomioon käyttäjän liikkeen sykemittauksen aikana sekä havaitsemaan liike SpO2-mittauksen aikana, koska tämä vaatii käyttäjää pysymään levossa lyhyen aikaa mittauksen aikana. Tässä kehittäjä voi joko kytkeä laiteohjelmiston tukeman kiihtyvyysanturin suoraan MAXM86146-piirin SPI-porttiin tai kytkeä yleiskäyttöisen kiihtyvyysanturin isäntäprosessoriin.
Kytkeminen isäntään tarjoaa laajimman joustavuuden laitteen valintaa varten ja siinä vaaditaan vain yleiskäyttöinen kolmiakselinen kiihtyvyysanturi kuten Memsicin MC3630, joka pystyy nopeuteen 25 sps. Kehittäjien on silti varmistettava, että kiihtyvyysanturin data synkronoidaan sykedatan näytteenoton kanssa. Tätä varten piirillä oleva mikrokontrolleri sisäisesti desimoi tai interpoloi kiihtyvyysanturin näytteet sikäli kuin sykedatan ja kiihtyvyysanturidatan siirtymän kompensointi sitä vaatii.
Nopeasti vauhtiin pääseminen MAXM86146-arvioinnin ja nopeiden prototyyppien avulla
Vaikka MAXM86146 yksinkertaistaa järjestelmän laitteistosuunnittelua, kehittäjät, jotka haluavat arvioida MAXM86146-piiriä tai tehdä nopeita prototyyppejä sovelluksistaan, voivat ohittaa laitteistosuunnitteluvaiheen ja alkaa heti työskennellä laitteen kanssa käyttäen MAXM86146EVSYS-arviointijärjestelmää. MAXM86146EVSYS saa virtansa USB:n tai 3,7 voltin litium-polymeeri-akun (LiPo) kautta ja se muodostuu MAXM86146-pohjaisesta OSB-kortista (Optical Sensor Board) MAXM86146_OSB, joka yhdistetään joustavalla kaapelilla a Bluetooth Low Energy (BLE) -protokollaa tukevaan tiedonhankinnan MAXSensorBLE-pääkorttiin (kuva 3).
Kuva 3: Maxim Integrated MAXM86146EVSYS -arviointijärjestelmä sisältää BLE-protokollaa tukevan pääprosessorikortin sekä joustavalla kaapelilla yhdistetyn MAXM86146-pohjaisen anturikortin. (Kuvan lähde: Maxim Integrated)
MAXSensorBLE-kortti sisältää Maxim Integrated MAX32620 -isäntämikrokontrollerin sekä Nordic Semiconductorin NRF52832 Bluetooth -mikrokontrollerin. Itse asiassa MAXSensorBLE-kortti tarjoaa kattavan referenssisuunnitelman BLE-protokolaa käyttävälle puettavalle laitteelle. MAXSensorBLE-kortti tukee aktiivisia ja passiivisia komponentteja ja se toimitetaan valmiina Maxim Integrated MAX20303 -PMIC-piirillä (Power Management Integrated Circuit), joka on tarkoitettu erityisesti pidentämään puettavien laitteiden akunkestoa.
Optinen anturikortti MAXM86146_OSB yhdistää a MAXM86146-biosensorimoduulin analogiseen MAX14689-kytkimeen sekä kattavaan ledisarjaan, joita tarvitaan samanaikaiseen syke- ja SpO2-mittaukseen. Lisäksi kortti sisältää laiteohjelmiston tukeman kolmiakselisen kiihtyvyysanturin, joka on yhdistetty suoraan MAXM86146-moduuliin.
Kehittäjät voivat arvioida MAXM86146-moduulia käyttämällä MAXM86146EVSYS-arviointijärjestelmää ja käynnistää sen käyttäen joko USB-C-liitäntää tai LiPo-akkua sekä kytkemällä tarvittaessa BLE USB -käyttöavain tietokoneeseen, jossa käytetään Maxim Integrated MAXM86146 EV System Software -sovellusta. Tämä Windows-sovellus tarjoaa graafisen käyttöliittymän (GUI), jossa kehittäjien on helppo muokata MAXM86146-piirin asetuksia, jolloin käyttäjät voivat välittömästi nähdä tulokset datakaavion muodossa. GUI mahdollistaa MAXM86146-piirin rekisterien käytön sekä tarjoaa intuitiiviset valikot erilaisten toimintatilojen ja konfiguraatioiden asettamista varten. Kehittäjät voivat käyttää esimerkiksi GUI-tilavälilehteä ja asettaa erilaisia ledisekvenssejä (kuvan 4 yläosa) sekä käyttää GUI-konfigurointivälilehteä näiden ledisekvenssien käyttämiseksi syke- ja SpO2-mittauksissa (kuvan 4 alaosa).
Kuva 4: Maxim Integrated MAXM86146 EV System Software GUI tarjoaa kehittäjille mahdollisuuden arvioida MAXM86146-piirin suorituskykyä määrittämällä erilaisia toimintatiloja kuten ledisekvenssit (yläosa) ja sen jälkeen käyttää kyseisiä sekvenssejä (alaosa) syke- ja SpO2-mittauksissa. (Kuvan lähde: Maxim Integrated).
Maxim Integrated tarjoaa Wearable HRM & SpO2 Algorithm for MAXM86146 -ohjelmistopaketin räätälöidyn ohjelmiston kehittämistä varten. Koska MAXM86146 tarjoaa syke- ja SpO2-mittaukset käyttäen laitteen integroitua mikrokontrolleri-laiteohjelmistoa, datan kerääminen laitteelta on suoraviivaista. Maxim Integrated -ohjelmistopaketti näyttää miten alustaa laite ja miten lopulta lukea data MAXM86146-piirin FIFO-puskurista sekä miten parsia yksittäiset datayksiköt (listaus 1).
Kopioi
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]
Listaus 1: Koodipätkä Maxim Integrated -ohjelmistopaketista, joka näyttää perustekniikan mittausten sekä biosensorimoduulin muiden tietojen lukemiseen. (Koodin lähde: Maxim Integrated)
Listaus 1 näyttää miten käyttää C-kielen rutiinia execute_data_poll(), joka palauttaa sykenumeron ja SpO2-lukemat MAXM86146-piiriltä. Tässä koodi lukee laitteen FIFO-puskurin paikalliseen puskuriin databuf ja sen jälkeen siirtää databuf-puskurin sisällön muutamiin erilaisiin C-kielen ohjelmistorakenneinstansseihin. Rutiini tallentaa konfigurointitiedot ja muut metatiedot kyseisiin rakenneinstansseihin ja lopulta tarjoaa syke- ja SpO2-mittaukset mesOutput-parametrissa, joka on mes_repor_t-rakenteen instanssi. Kehittäjät voivat yksinkertaisesti poistaa lopussa olevan printf-käskyn kommenteista ja näyttää tuloksen konsolissa.
MAXM86146-ohjelmisto ja -laitteisto yksinkertaistavat merkittävästi puettavien terveys- ja kuntoilulaitteiden kehitystä. Jos laitteiden halutaan saavan Yhdysvaltojen Elintarvike- ja lääkeviraston (FDA) hyväksyntä, kehittäjien on kuitenkin suoritettava tarvittava testaus varmistaakseen, että lopputuotteet täyttävät FDA-vaatimukset. Vaikka Maxim Integrated MAXM86146 ja sen sulautetut algoritmit täyttävät FDA-tasoisen suorituskyvyn mittauksessa, kehittäjien on varmistettava, että koko järjestelmä – ei pelkästään anturi – täyttää FDA:n suorituskykyvaatimukset.
Yhteenveto
Mielenkiinto kasvaa jatkuvasti sellaisia puettavia laitteita kohtaan, jotka tarjoavat tarkan syke- ja SpO2-mittauksen. Tähän on viimeaikoina vaikuttanut SpO2-datan rooli COVID-19-taudin oireiden seuraamisessa. Vaikka erityiset biosensorit voivat tarjota nämä mittaukset, vain harvat nykyiset ratkaisut pystyvät vastaamaan haasteeseen tarjota pienempiä laitteita, jotka pidentävät akun kestoa monikäyttöisissä kompakteissa puettavissa laitteissa. Kuten artikkelissa osoitetaan, Maxim Integrated -yrityksen pienikokoinen biosensorimoduuli ja sitä tukeva nopea prototyyppisarja tarjoavat tehokkaan vaihtoehdon, joka tarjoaa FDA-tasoiset mittaukset ja minimaalisen virrankulutuksen.

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.