新冠病毒讓人們提高了對健康的關(guān)注度,這在某種程度上促使人們對生物傳感可穿戴設備產(chǎn)生極大興趣,進(jìn)而又推動(dòng)人們對更有效的解決方案的需求。人們需要更小的外形尺寸、更多的功能、更高的精度、更低的成本以及更長(cháng)的電池續航時(shí)間。對于設計人員來(lái)說(shuō),這會(huì )帶來(lái)一系列持續的挑戰,因為他們需要應對緊迫的上市時(shí)間窗口和預算。有利的是,生物傳感技術(shù)取得了進(jìn)步,市面上出現了功能集成度更高的產(chǎn)品和更全面的設計解決方案。 本文將討論生物傳感器和可穿戴設備的發(fā)展趨勢以及設計人員所面臨的挑戰。然后介紹來(lái)自 Maxim Integrated 的心率和外周血氧飽和度 (SpO2) 生物傳感器模塊,并向開(kāi)發(fā)人員展示如何使用該模塊更有效地設計可穿戴設備,從而既能提供精確的心率和其他測量值,同時(shí)又不影響電池供電型移動(dòng)產(chǎn)品緊張的功耗預算。 生物傳感設計要求 雖然心率監測是各種消費類(lèi)可穿戴設備的核心要求,但人們對 SpO2 測量的興趣不斷增加。SpO2 測量曾經(jīng)主要是由運動(dòng)員用來(lái)優(yōu)化其健身計劃的,現在已經(jīng)發(fā)現了更廣泛的應用,特別是自我監測與新冠病毒疾病相關(guān)的呼吸功能下降跡象。對于開(kāi)發(fā)人員來(lái)說(shuō),若要為習慣于使用可穿戴電子產(chǎn)品且注重健康的人群提供合適的解決方案,在成本、功耗、外形尺寸和重量方面都面臨著(zhù)巨大的挑戰。 現在,許多生物傳感器都集成了模擬前端子系統,因此開(kāi)發(fā)人員不必構建健康與保健測量所需的信號鏈和后處理子系統。但在這些先進(jìn)的設備中,很少有設備正好具備適合可穿戴設備的功能組合。因此,它們并沒(méi)有解決在滿(mǎn)足用戶(hù)對微型生物傳感可穿戴設備的期望方面出現的設計挑戰,這些可穿戴設備要與其他類(lèi)型的領(lǐng)先可穿戴設備一樣不顯眼,其中包括智能手表、健身腕帶和真無(wú)線(xiàn)耳機。 當開(kāi)發(fā)人員需要為這些流行的可穿戴設備類(lèi)型增加一種或多種生物傳感功能時(shí),可能會(huì )出現與設計集成相關(guān)的更多挑戰。與所有其他類(lèi)型的電池供電型個(gè)人移動(dòng)電子產(chǎn)品一樣,即使對最小的產(chǎn)品,消費者也會(huì )隱含地要求延長(cháng)電池續航時(shí)間,他們通常會(huì )根據電池續航時(shí)間以及成本和功能來(lái)選擇這些產(chǎn)品。 為了滿(mǎn)足這些組合的需求,開(kāi)發(fā)人員可以轉而使用 Maxim Integrated 的 MAXM86146 生物傳感模塊來(lái)設計定制設備,并使用基于 MAXM86146 的 MAXM86146EVSYS 評估系統來(lái)進(jìn)行快速原型開(kāi)發(fā)。 生物傳感模塊提供了直接替代式解決方案 Maxim Integrated 的 MAXM86146 生物傳感模塊采用 4.5 x 4.1 x 0.88 毫米 (mm) 38 引腳封裝,是一款直接替代式解決方案,旨在幫助加快開(kāi)發(fā)電池供電型緊湊型健康與保健可穿戴設備。為了同時(shí)滿(mǎn)足對延長(cháng)電池續航時(shí)間和生物傳感功能的需求,該模塊在將功耗降至最低的同時(shí),保持著(zhù)對心率和 SpO2 的快速準確測量。 除了兩個(gè)集成光電二極管,該模塊還包括 Maxim Integrated 的 MAX86141 雙通道光學(xué)模擬前端 (AFE) 和基于 Arm Cortex-M4 的微控制器,后者是 Maxim Integrated 的 MAX32660 Darwin 微控制器的生物傳感優(yōu)化版(圖 1)。 ![]() 圖 1:Maxim Integrated 的 MAX86146 生物傳感模塊在緊湊型封裝中集成了光學(xué) AFE、微控制器和光電二極管。(圖片來(lái)源:Maxim Integrated) 集成式 MAX86141 每秒采集 25 個(gè)樣本 (sps) 時(shí),功耗僅為 10 微安 (μA),它提供了一個(gè)綜合光學(xué) AFE 子系統,旨在控制用于測量心率和 SpO2 的多個(gè)發(fā)光二極管。光學(xué)心率監測器通常使用光電容積描記法 (PPG),可監測與每次心臟搏動(dòng)相關(guān)的外周血容量變化。對于這種測量,這些設備通常使用波長(cháng)為 540 納米 (nm) 的綠光,這種光會(huì )被血液吸收,并且由于綠光穿透組織的深度比許多其他波長(cháng)要淺,所以產(chǎn)生的偽影比較少。光學(xué)脈搏血氧計使用紅色 LED(通常為 660 nm)和紅外 (IR) LED(通常為 940 nm)來(lái)測量血紅蛋白和脫氧血紅蛋白之間的吸收差異,這是光學(xué) SpO2 測量法的基礎技術(shù)(請參閱利用現成元器件設計低成本脈搏血氧儀)。 為了執行這些光學(xué)測量,開(kāi)發(fā)人員必須確保光電二極管信號采集與來(lái)自相應 LED 的光輸出脈沖精確同步。MAXM86146 模塊集成的 MAX86141 AFE 提供了獨立的信號鏈,分別用于 LED 控制和光電二極管信號采集。在輸出端,AFE 包括三個(gè)大電流、低噪聲 LED 驅動(dòng)器,可將脈沖傳輸到用于心率測量的綠色 LED 以及用于 SpO2 測量的紅色和紅外 LED。在輸入端,AFE 提供兩個(gè)光電二極管信號采集通道,每個(gè)通道都有一個(gè)專(zhuān)用的 19 位模數轉換器 (ADC)。這兩個(gè)讀出通道可以單獨操作,也可以組合使用,以提供更大的輻射面積。 為控制 AFE LED 和光電二極管信號鏈,板載微控制器上運行的固件可調整 AFE 設置,以最大程度提高信噪比 (SNR) 并降低功耗。隨著(zhù)環(huán)境光的變化,集成式 MAX86141 中內置的環(huán)境光校正 (ALC) 電路會(huì )對光照條件的逐漸變化作出響應。但是,在某些情況下,例如當用戶(hù)在陰影區域和明亮的陽(yáng)光間快速穿過(guò)時(shí),環(huán)境光可能會(huì )快速變化,從而導致 ALC 故障?紤]到這種常見(jiàn)的情況,MAX86141 加入了柵欄檢測和替換功能。在這里,該器件會(huì )識別環(huán)境測量值與先前樣本的較大偏差,并將個(gè)別外圍環(huán)境光數據樣本替換為與環(huán)境水平相對緩慢變化相一致的外推值。 由于該模塊的微控制器使用其固件來(lái)管理 AFE 操作,因此執行精確的心率和 SpO2 測量所需的詳細操作對于開(kāi)發(fā)人員來(lái)說(shuō)是透明的。該模塊使用固件設置自動(dòng)執行這些測量,將原始數據和計算結果存儲在先進(jìn)先出 (FIFO) 緩沖區中,供系統主處理器通過(guò)模塊的 I2C 串行接口訪(fǎng)問(wèn)。 MAX86146 如何簡(jiǎn)化可穿戴設備的硬件設計 憑借廣泛的集成功能,MAX86146 生物傳感模塊只需要相對較少的額外元器件,就可以完成能夠提供精確心率和 SpO2 測量的設計。若要同步進(jìn)行心率和 SpO2 測量,MAX86146 可以與外部低噪聲模擬多路復用器集成,例如連接到分立式綠色、紅色和紅外 LED 的 Maxim Integrated MAX14689 開(kāi)關(guān)(圖 2)。 ![]() 圖 2:要同步執行心率和 SpO2 測量,除了合適的 LED、模擬多路復用器(MAX14689,左側)和加速計,Maxim Integrated 的 MAX86146 生物傳感模塊幾乎不需要其他元器件,就可以在測量的同時(shí)檢測運動(dòng)。(圖片來(lái)源:Maxim Integrated) 此外,MAXM86146 還設計成使用來(lái)自三軸加速計的運動(dòng)數據,以在心率測量期間校正用戶(hù)的運動(dòng),并在 SpO2 測量期間檢測運動(dòng),后者需要用戶(hù)在測量的短時(shí)間內保持靜止狀態(tài)。在這里,開(kāi)發(fā)人員可以將固件支持的加速計直接連接到 MAXM86146 的 SPI 端口,或者將通用加速計連接到主機處理器。 主機連接選項為器件選擇提供了更大的靈活性,只需要一個(gè)通用三軸加速計,例如 Memsic 的 MC3630,采樣速度可達 25 sps。盡管如此,開(kāi)發(fā)人員仍需要確保加速計數據與心率數據采樣同步。為此,板載微控制器根據需要對加速計樣本進(jìn)行內部抽取或插補,以補償心率數據和加速計數據之間的漂移。 快速啟動(dòng) MAXM86146 評估和快速原型開(kāi)發(fā) 雖然 MAXM86146 簡(jiǎn)化了系統硬件設計,但對于希望評估 MAXM86146 或快速開(kāi)發(fā)其應用原型的開(kāi)發(fā)人員來(lái)說(shuō),他們可以跳過(guò)硬件設計,通過(guò) MAXM86146EVSYS 評估系統立即開(kāi)始使用該器件。MAXM86146EVSYS 通過(guò) USB 或 3.7 V 鋰聚合物 (LiPo) 電池供電,包括一個(gè)基于 MAXM86146 的 MAXM86146_OSB 光學(xué)傳感器板 (OSB),并通過(guò)軟線(xiàn)連接到支持低功耗藍牙 (BLE) 的 MAXSensorBLE 主數據采集板(圖 3)。 ![]() 圖 3:Maxim Integrated 的 MAXM86146EVSYS 評估系統包括支持 BLE 的主處理器板和基于 MAXM86146 的傳感器板(用軟線(xiàn)連接)。(圖片來(lái)源:Maxim Integrated) MAXSensorBLE 板集成了 Maxim Integrated 的 MAX32620 主機微控制器,以及 Nordic Semiconductor 的 NRF52832 藍牙微控制器。實(shí)際上,MAXSensorBLE 板可作為支持 BLE 的可穿戴式設計的完整參考設計。除了支持有源和無(wú)源元器件外,MAXSensorBLE 板設計還配備 Maxim Integrated 的 MAX20303 電源管理集成電路 (PMIC),該電路專(zhuān)為延長(cháng)可穿戴設備的電池續航時(shí)間而設計。 MAXM86146_OSB 光學(xué)傳感器板將 MAXM86146 生物傳感模塊與 MAX14689 模擬開(kāi)關(guān)和同步執行心率和 SpO2 測量所需的整套 LED 組合在一起。此外,該板集成了一個(gè)支持固件的三軸加速計,直接連接到 MAXM86146 模塊。 要使用 MAXM86146EVSYS 評估系統評估 MAXM86146 模塊,開(kāi)發(fā)人員使用 USB-C 或 LiPo 電池為系統供電,并根據需要將 BLE USB 加密狗插入運行 Maxim Integrated MAXM86146 EV 系統軟件應用程序的個(gè)人計算機。該 Windows 應用程序提供了一個(gè)圖形用戶(hù)界面 (GUI),讓開(kāi)發(fā)人員能夠輕松修改 MAXM86146 設置,并能立即觀(guān)察以數據曲線(xiàn)圖形式呈現的結果。除了提供對 MAXM86146 寄存器的訪(fǎng)問(wèn),該 GUI 還提供了直觀(guān)菜單,以供設置不同的操作模式和配置。例如,開(kāi)發(fā)人員可以使用 GUI 模式選項卡設置不同的 LED 序列(圖 4,上圖),使用 GUI 配置選項卡將這些 LED 序列應用于心率和 SpO2 測量(圖 4,下圖)。 ![]() 圖 4:Maxim Integrated 的 MAXM86146 EV 系統軟件 GUI 允許開(kāi)發(fā)人員通過(guò)定義不同的操作模式來(lái)評估 MAXM86146 的性能,例如定義 LED 序列(上圖),然后將這些序列應用于心率和 SpO2 測量(下圖)。(圖片來(lái)源:Maxim Integrated)。 對于自定義軟件開(kāi)發(fā),Maxim Integrated 提供了 MAXM86146 適用的可穿戴設備 HRM 和 SpO2 算法軟件包。由于 MAXM86146 使用其集成微控制器固件提供心率和 SpO2 測量,因此從設備提取數據的過(guò)程非常簡(jiǎn)單。Maxim Integrated 軟件包演示了初始化設備,最后從 MAXM86146 FIFO 讀取數據并解析出各個(gè)數據項的過(guò)程(清單 1)。 副本 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:Maxim Integrated 的軟件包一段代碼展示了從生物傳感模塊提取測量值和其他數據的基本技術(shù)。(代碼來(lái)源:Maxim Integrated) 清單 1 演示了如何使用 C 語(yǔ)言例程 execute_data_poll() 從 MAXM86146 返回一些心率和 SpO2 讀數。在這里,該代碼將設備的 FIFO 讀入本地緩存 databuf,然后將 databuf 的內容映射到幾個(gè)不同 C 語(yǔ)言軟件結構的實(shí)例。除了將配置數據和其他元數據存儲到這些結構實(shí)例中,該例程最后還在 mesOutput(mes_repor_t 結構的一個(gè)實(shí)例)中提供心率和 SpO2 測量值。開(kāi)發(fā)人員只需取消對最后 printf 語(yǔ)句的注釋?zhuān)纯稍诳刂婆_上顯示結果。 為了實(shí)現健康與保健可穿戴設計,MAXM86146 的軟硬件大幅簡(jiǎn)化了開(kāi)發(fā)。但是,對于旨在獲得美國食品藥品監督管理局 (FDA) 批準的設備,開(kāi)發(fā)人員必須進(jìn)行適當的測試,以驗證最終產(chǎn)品的 FDA 級性能。雖然 Maxim Integrated 的 MAXM86146 及其嵌入式算法提供了 FDA 級測量性能,但開(kāi)發(fā)人員需要確保整個(gè)系統滿(mǎn)足 FDA 的性能要求,而不僅僅是傳感器滿(mǎn)足該要求。 結語(yǔ) 人們對能夠提供精確心率和 SpO2 測量的可穿戴設備的興趣不斷增加,最近 SpO2 數據在監測新冠病毒疾病癥狀中顯現的作用進(jìn)一步推波助瀾。雖然專(zhuān)用生物傳感器可以提供這些測量,但現有可用于可穿戴設備的解決方案很少能夠滿(mǎn)足設備更小、電池續航時(shí)間更長(cháng)、功能更多樣和結構更緊湊的要求。如上所述,來(lái)自 Maxim Integrated 的微型生物傳感模塊在快速原型開(kāi)發(fā)套件的支持下,提供了一種高效的替代方案,以最小的功耗實(shí)現 FDA 級的測量結果。 來(lái)源:Digi-Key 作者:Stephen Evanczuk |