發布日期:2022-10-09 點擊率:340
消費者需要從智能手表、健康腕帶和其他電池供電的移動設備,獲取更精確的健身和心臟健康數據。為了滿足這些期望,開發人員不得不努力應對復雜而又昂貴的多元件解決方案。雖然這些解決方案最終能夠提供高精確度,但為此付出的代價是更高的功耗、更大的占用空間、更長的開發時間。我們需要更簡單、更精巧的解決方案。
本文將介紹基于 Maxim Integrated 的高度集成模塊來構建此類解決方案的途徑。首先,本文將簡要討論精確心臟功能監測的相關難點。然后,本文將展示開發人員如何能夠使用該模塊,在活動期間執行符合 FDA 認證的心率監測,以及在靜息時執行心電圖 (ECG) 測量。
醫療機構通常依賴于 ECG(也稱為 EKG)來提供有關心臟健康的最詳細數據,這個過程中沒有侵入性治療。ECG 設備可捕捉心動周期內的心肌去極化和復極化產生的波形(圖 1)。這個過程需要在人體周圍的重要位置放置 10 個電極。然后,它們組合形成 12 對或導聯,設計成與在心臟組織體積上產生的不同波形圖軸對齊。
圖 1:雖然心電圖(ECG 或 EKG)提供更多細節,但更為簡單的光電容積描記圖 (PPG) 也可提供有用的信息,例如此處所示的心室早發性收縮 (PVC) 的發生。(圖片來源:維基百科)
例如,一個放置在患者腿部的電極可與另一個電極配對,以提供一個導聯,能夠采集心室去極化波形下降穿過心臟組織的詳細信息。醫療級 12 導聯 ECG 設備使用這種方法,結合來自不同電極對的數據,沿著與心動周期的每個相位相關的最佳軸來測量波形。
相反,消費型健身器材執行的 ECG 測量通常僅使用一個電極對,因而此類設備的心電圖被稱為單導聯 ECG。雖然單導聯 ECG 可能缺少心臟病醫師進行診斷所需的詳細信息,但它提供了有關心臟功能的足夠信息,以提醒醫療機構可能需要使用 12 導聯 ECG 進行準確診斷的病理。
在實踐中,由于測量很容易被用戶的劇烈運動破壞,因而健身器材中的單導聯 ECG 測量尤其可能出現問題。任何肌肉運動都會產生肌肉纖維去極化的相應電波形,這些波形穿過導電的組織塊傳播。大肌肉群的運動可能產生生物電位,很容易阻礙從更深埋的信號源(例如心肌)發出的信號。因此,要進行精確的 ECG 測量,就要求患者保持靜止,無論是躺在醫院里,還是在體育鍛煉期間。
事實上,嘗試對正在進行體育運動的用戶執行單導聯 ECG 測量,很可能會以失敗告終。出于這個原因,在體育運動過程中提供心率數據的個人健身器材通常依賴于光電容積描記圖 (PPG) 方法。
PPG 的最基本工作方式是使用光學傳感器,隨著每次血液脈動改變血管的容積,測量光反射(或吸收)的相對差。最早的消費型心率監測儀使用這種基本方法,但現在的健身產品通常采用一種更加先進的 PPG,用于測量周邊血氧飽和度 (SpO2) 水平。這樣可讓用戶更深入了解他們對運動的生理反應。
SpO2 測量充分利用在紅光和紅外線 LED 照射時充氧血和缺氧血展現的不同吸收光譜,發射光譜以兩種相應的血紅蛋白狀態為中心(請參見“為健身器材添加心率監測功能”)。雖然 SpO2 的重點是兩種狀態之間的比率,但可以通過測量光學信號的峰間周期時間,從相同的數據提取基本心率測量數據。消費型脈搏血氧計使用這種方法,提供更可靠的心率測量,而不受體育運動、用戶個體差異或其他因素的影響。
雖然基于光學 PPG 的方法已經在健身器材中使用多年,但單導聯 ECG 技術近期已經在蘋果手表等消費型產品中興起。在競爭壓力的驅動下,健身腕帶、智能手表和其他個人電子設備的制造商越來越需要在他們的產品中同時提供 PPG 和單導聯 ECG 功能。
但對于開發人員而言,僅實現其中一種功能就帶來了很多困難。雙 LED PPG 設計要求我們能夠最好地驅動紅光和紅外線 LED、捕捉反射或吸收的光線、同步結果,最終計算心率和 SpO2。單導聯 ECG 設計需要掌握有關構建模擬信號路徑的廣泛專業知識,能夠處理與任何活動生物電位現象測量相關的噪聲信號。
也許最基本的問題是實現兩種類型設計和同步它們的結果所必需的電源要求、設計尺寸和零件數量,對于大多數電池供電的移動產品而言,這是一項非常困難的設計工作。為了解決這些問題,Maxim Integrated 的 MAX86150 生物傳感器模塊提供了幾乎直接置入的解決方案,可為任何功率受限的設計添加 PPG 和 ECG 功能。
MAX86150 模塊專門針對便攜式系統而設計,將雙 LED PPG 和 ECG 的子系統組合在單個器件中,外形尺寸為 3.3 x 6.6 x 1.3 mm。對于光學測量,MAX86150 將完整的輸入/輸出光信號路徑與紅光 LED、紅外線 LED 和光電二極管組合在一起,它們位于封裝中內置的玻璃蓋后面(圖 2)。
圖 2:MAX86150 PPG 子系統將所有必需元器件集成在一起,包括 LED 輸出和光電二極管輸入的信號路徑,從而提供基于光學技術的健身測量。此外,紅光 LED、紅外線 LED 和光電二極管器件位于玻璃蓋后面。(圖片來源:Maxim Integrated)
在 PPG 信號路徑方面,該模塊集成了環境光消除(ALC) 電路、19 位連續時間過采樣三角積分 (ΔΣ) 模數轉換器 (ADC) 以及離散時間濾波器(進一步消除噪聲)。在 ALC 內部,數模轉換器 (DAC) 通過消除環境光,幫助提高輸入動態范圍。為了幫助開發人員平衡功耗和性能,該器件的集成式 LED 驅動器可以進行編程,提供從 0 毫安 (mA) 到 100 毫安的電流,電流脈沖寬度在 50 微秒 (μs) 到 400 微秒范圍內。
為了進一步節省電能,開發人員可以實現接近感應功能,讓該器件在測量之間保持在低功耗狀態下。在這種狀態下,器件在開發人員編程設定的最低功耗水平下驅動紅外線 LED。當光電二極管檢測到有用的信號時(表示靠近用戶的手指或其他皮膚表面),將會生成中斷,器件返回到正常工作狀態,繼續進行采樣。
為了進行 ECG 測量,MAX86150 集成了一個完整的差分信號路徑,僅需兩個干電極和其他幾個元器件,即可實現單導聯 ECG(圖 3)。與任何小信號應用相同,環境中存在的任何數量的噪聲源,都會持續向測量精度提出挑戰。在健身應用中,相關心臟波形不僅受到與肌肉運動和其他生理過程相關的生物電位的影響,通常還受制于來自外部射頻源、線路頻率和電氣噪聲的干擾。
MAX86150 ECG 子系統通過用于抑制共模信號的復雜信號鏈,來處理 ECG 測量中的信號噪聲。
圖 3:除了 PPG 子系統之外,MAX86150 模塊還包括完整的單導聯 ECG 子系統,僅需要一對干電極和少量其他元器件,即可為微控制器提供 ECG 測量數據。(圖片來源:Maxim Integrated)
該器件的集成式 ECG 模擬前端包括斬波放大器、濾波器和可編程增益放大器 (PGA),其設計目的是最大程度提高心臟波形的信噪比。在該信號鏈之后,還有一個 18 位 ΔΣ ADC,可轉換每個樣本,并將所有結果推送到器件的共享 32 樣本 FIFO,因而無需主機微控制器進行持續數據輪詢。
為了進一步減少功耗和限制數據訪問要求,開發人員可以調節 ECG 和 PPG 子系統的采樣率,ECG 的采樣率范圍是從最高 3200 樣本每秒 (sps) 到 200 sps,對于 PPG,最低采樣率可以達到 10 sps。但是,在需要同時進行 ECG 和 PPG/SpO2 采樣以及同步結果的高級應用中,開發人員也可以使用該器件。如果開發人員需要應用這種方法,使用兩個子系統的不同最小采樣率,則該器件只使用最新 PPG 樣本加載 FIFO,在該子系統的下一個采樣周期提供新的 PPG 數據。
正如上文所述,由于 MAX86150 集成了 ECG 和 PPG 測量所需的核心功能,我們只需一對干電極以及少數用于解耦和緩沖的其他元器件,即可形成完整的 MAX86150 硬件接口。因此,開發人員可將微控制器與 MAX86150 以及少數外部元器件組合在一起,實現先進的生物電位測量系統(圖 4)。開發人員甚至能夠使用 Maxim Integrated 的 MAX86150EVSYS 評估系統,快速開始研究 ECG/PPG 應用,從而跳過硬件設計步驟。
圖 4:開發人員能夠將 Maxim Integrated 的 MAX86150 和主機微控制器以及少數其他元器件組合在一起,在移動健身產品中實現先進的心臟功能測量。(圖片來源:Maxim Integrated)
MAX86150EVSYS 評估系統可同時用作即時應用平臺和參考設計,它包括 MAX86150 板、MAX32630FTHR 板和 500 毫安小時 (mAh) 鋰聚合物電池(圖 5)。與 MAX86150 相同,MAX86150 板提供兩個不銹鋼干電極,以及上文提及的其他元器件。
MAX32630FTHR 板通過針座連接,它提供了支持藍牙的完整系統,基于 Maxim Integrated 的 MAX32630 微控制器構建,還可為附帶的電池組進行充電和電源管理。
圖 5:Maxim Integrated 的 MAX86150EVSYS 評估系統提供帶有干電極的 MAX86150 板(左側)、基于 MAX32630 的 MAX32630FTHR 開發板和電池組,以便開發人員能夠快速開始評估心臟測量方法。(圖片來源:Maxim Integrated)
這個開箱即用的評估系統帶有 MAX32630FTHR 板,已預裝基礎 MAX86150 應用的固件,讓開發人員能夠即時開始探索 ECG 和 PPG 測量。開發人員只需通過藍牙將板組連接至 Windows PC 系統,并針對 MAX86150EVSYS 套件啟動 Maxim Integrated 基于 Windows 的圖形用戶界面cription.html/swpart=SFW0008770B" target="_blank">評估套件軟件。該 GUI 軟件包顯示來自 MAX86150 的 ECG 和 PPG 數據,讓開發人員能夠輕松地修改器件設置,以檢測對性能的影響(圖 6)。
圖 6:該公司的相關軟件應用程序連接到 Maxim Integrated 的 MAX86150EVSYS 評估系統,讓開發人員能夠輕松地檢測 MAX86150 執行的 ECG 和 PPG 測量。(圖片來源:Maxim Integrated)
對于準備構建定制應用程序的開發人員,Maxim Integrated 的 cription.html/swpart=SFW0008900A" target="_blank">MAX86150 驅動器軟件包提供了核心器件功能的源代碼。在各種功能中,該驅動器軟件包展示了:如何通過使用器件的 FIFO,減少主機處理器保持其活動狀態所需的時間,從而最大程度地降低功耗。這種方法的核心是,軟件要依賴于一對中斷處理程序來響應器件事件,然后在數據樣本可用時采取行動。
這種中斷驅動的方法從初始化例程開始。這種方法會注冊一個器件中斷請求 (IRQ) 處理程序 max86xxx_irq_handler()
。發生中斷事件時,此處理程序檢查可用的器件數據,如果需要,還會調用單獨的 FIFO 處理程序 (max86xxx_fifo_irq_handler()
),并執行重要的內務處理功能,包括檢查器件芯片溫度和 VDD 水平(清單 1)。
復制 int max86xxx_irq_handler(void* cbdata) { struct max86xxx_dev *sd = max86xxx_get_device_data(); int ret; union int_status status; status.val[0] = MAX86XXX_REG_INT_STATUS1; ret = max86xxx_read_reg(status.val, 2); if (ret < 0) { printf("I2C Communication error.err: %d.%s:%d ", ret, __func__, __LINE__); return -EIO; } if (status.a_full || status.ppg_rdy || status.ecg_imp_rdy || status.prox_int) { max86xxx_fifo_irq_handler(sd); } if (status.die_temp_rdy) max86xxx_read_die_temp(sd); if (status.vdd_oor) { sd->vdd_oor_cnt++; printf("VDD Out of range cnt: %d ", sd->vdd_oor_cnt); } return 0; }
清單 1:在 Maxim Integrated 的 MAX86150 驅動程序軟件包中,這個片段顯示了:器件 IRQ 處理程序如何通過僅在樣本可用或發生事件(例如接近中斷)時,調用單獨的 FIFO 處理程序,以最大程度地減少處理。(代碼來源:Maxim Integrated)
當由 IRQ 處理程序調用時,FIFO 處理程序執行所需的低級操作,以重新組合 86150 存儲在 FIFO 緩沖區中的傳感器讀數。此處,該處理程序遍歷 FIFO 緩沖區中的可用樣本,重新組合三個字節,這些字節用于存儲來自 ECG 通道的 18 位 ADC 和 PPG 通道的 19 位 ADC 的數據(清單 2)。
復制 void max86xxx_fifo_irq_handler(struct max86xxx_dev *sd) { ...num_samples = max86xxx_get_num_samples_in_fifo(sd); ...num_channel = max86xxx_get_fifo_settings(sd, &fd_settings); ...num_bytes = num_channel * num_samples * NUM_BYTES_PER_SAMPLE; fifo_buf[0] = MAX86XXX_REG_FIFO_DATA; ret = max86xxx_read_reg(fifo_buf, num_bytes); ...fifo_mode = max86xxx_get_sensor_mode(sd, fd_settings, num_channel); ...sensor = get_sensor_ptr(sd, fifo_mode); for (i = 0; i < num_samples; i++) { offset1 = i * NUM_BYTES_PER_SAMPLE * num_channel; offset2 = 0; for (j = 0; j < MAX_FIFO_SLOT_NUM; j++) { tmp_fd = (fd_settings >> (4 * j)) & 0x000F; if (tmp_fd) { index = offset1 + offset2; tmp = ((int)fifo_buf[index + 0] << 16) | ((int)fifo_buf[index + 1] << 8) | ((int)fifo_buf[index + 2]); samples[tmp_fd] = tmp; max86xxx_preprocess_data(&samples[tmp_fd], 1); offset2 += NUM_BYTES_PER_SAMPLE; } } ...sensor->report(sensor, samples); ...} if (sensor->update) sensor->update(sensor); return; ...
清單 2:在 Maxim Integrated 的 MAX86150 驅動程序軟件包中,這個片段顯示了使用 FIFO 處理程序從 MAX86150 FIFO 中提取采樣數據,其中每個采樣以三字節格式存儲。(代碼來源:Maxim Integrated)
除了基于 PPG 的心率測量之外,單導聯 ECG 功能已逐漸成為智能手表、健身腕帶和其他移動設備的一種日益增長的需求。但事實證明,在此類可穿戴設備中實現實用、精確、低功耗的 PPG 和 ECG 功能非常困難。
Maxim Integrated 的 86150 生物電位傳感器模塊帶有集成的 PPG 和 ECG 子系統,可提供有效的解決方案。86150 模塊與 MCU 相結合,使開發人員能夠快速實現能夠提供心臟功能詳細數據的移動健康和健身產品。
下一篇: PLC、DCS、FCS三大控
上一篇: 直接數字合成器DDS基