使用 PPG/ECG 複合穿戴式生物感測器模組,以進行獲得 FDA 認可的心臟量測
資料提供者:DigiKey 北美編輯群
2019-03-19
消費者要求從智慧型手錶、健康腕帶,以及其他電池供電式行動裝置,取得更準確的健身與心臟健康資料。為了滿足這些期望,開發人員必須努力開發複雜、昂貴且多重元件的解決方案。雖然這些解決方案最後確實能提供高準確度,但代價是功耗較高、覆蓋區面積較大,開發時間也較長,因此需要更簡潔且精巧的解決方案。
本文將會介紹以 Maxim Integrated 的高度整合式模組作為基礎,如何構建這種解決方案。首先,本文會簡單討論有關準確監測心臟能力的難題。接著會說明開發人員如何使用這款模組,在動態期間取得 FDA 認可的心率監測,以及在靜態時執行心電圖 (ECG) 量測。
心臟能力量測
醫療服務提供者通常仰賴 ECG (也稱為 EKG) 在不使用侵入式醫療行為下,盡可能取得最詳細的心臟健康資料。ECG 設備可擷取心臟週期中,心肌在去極化與再極化時所產生的波形 (圖 1)。受測者需在身上的特定位置放置 10 個電極。這些電極將組合成 12 對 (引線),用於與心臟組織上產生的不同波形軸對齊。

圖 1:雖然心電圖 (ECG 或 EKG) 能提供更詳細的資訊,但較為簡單的光體積變化描記圖 (PPG) 則能提供實用的資訊,例如此處所示的心室早期收縮 (PVC)。(圖片來源:Wikipedia)
舉例來說,病患腿上的一個電極可以與另一個電極配對產生引線,擷取心室去極化波形沿著心臟組織向下降的詳細資訊。醫療級 12 引線 ECG 儀器使用這個方式,結合來自不同電極對的資料,沿著與每個心臟週期階段有關的最佳軸來測量波形。
相對之下,消費性健身裝置所執行的 ECG 量測通常只使用一對電極,因而這種裝置的 ECG 稱為單引線 ECG。雖然單引線 ECG 可能缺少心臟病專家在進行診斷時所需要的細節,但對於心臟能力的相關資訊,已足以提醒醫療服務提供者注意,可能需要使用 12 引線 ECG 針對可能的病理進行準確診斷。
實際上,在健身裝置中使用單引線 ECG 進行量測可能非常困難,因為在受測者有任何較大幅度的動作時,量測效果很容易受影響。只要有任何的肌肉動作,肌纖維去極化就會產生相對應的電波形,沿著具傳導性的組織塊來傳遞。當主肌群一動,就會產生出生物電位,這很容易掩蓋心肌等較深層訊號源所發出的訊號。因此,要準確地進行 ECG 量測,受測者需要維持靜止,無論是躺在醫療機構中或是在運動期間。
如此說來,要在某人運動時對其進行單引線 ECG 檢測,大多會失敗。因此,若要個人健身裝置在運動期間提供心率資訊,通常會仰賴光體積變化描記圖 (PPG) 方法。
最基本的 PPG 形式是使用光感測器,隨著每次血液搏動改變血管容積時,測量光折射 (或吸收) 的相對差異。雖然最早期的消費性心率監測器使用這種基本做法,但現今的健身產品通常使用更先進的 PPG 形式,可測量周邊血氧飽和度 (SpO2)。這種做法能讓使用者更瞭解自身對運動的生理反應。
SpO2 量測會利用以紅色與紅外線 LED 照射時,充氧血與缺氧血對比所展現出的不同吸收光譜,而發射光譜會放在血紅素兩種個別狀態的中間 (請參閱《為健身設備增添心率監測功能》)。雖然 SpO2 著重於兩種狀態之間的比例,但還是能透過測量所測光訊號的峰值對峰值週期時間,從相同的資料中擷取出基本心率量測結果。消費性脈搏血氧儀使用此做法提供更可靠的心率量測,而不受身體移動、個別使用者變化,或是其他因素的影響。
雖然光學 PPG 式方法已用於健身裝置許多年,但最近 Apple Watch 等消費性產品開始採用單引線 ECG 做法。迫於競爭壓力,健身腕帶、智慧型手錶以及其他個人電子裝置的製造商,越來越需要在自家產品中同時納入 PPG 以及單引線 ECG 能力。
但對開發人員來說,光是實作一項能力就已經困難重重。要進行雙 LED PPG 設計,需要能夠最妥善地驅動紅色與 IR LED、捕捉反射或吸收的光線,並將結果同步,最後計算出心率,有時也需計算 SpO2。要進行單引線 ECG 設計,必須對打造類比訊號路徑具有廣泛的專業知識,才能處理與任何生物電位現象量測有關的雜訊訊號。
或許更重要的是,要實作這兩種類型的設計和同步處理其結果,必須顧及功率需求、設計尺寸以及零件數,但這些對大部分以電池供電的行動產品來說,可能令人卻步。為了處理這些問題,Maxim Integrated 的 MAX86150 生物感測器模組提供幾乎立即可用的解決方案,為任何功率受限的設計增添 PPG 以及 ECG 能力。
生物感測器模組
MAX86150 模組專為可攜式系統所設計,將用於雙 LED PPG 和 ECG 的子系統結合在單一裝置內,尺寸為 3.3 x 6.6 x 1.3 mm。針對光學量測,MAX86150 將完整的輸入/輸出光學訊號路徑,與紅色 LED、IR LED 以及光電二極體相結合,這些元件位於封裝內的玻璃蓋後方 (圖 2)。

圖 2:MAX86150 PPG 子系統提供光學式健身量測選擇,其中整合所有必需的元件,包含 LED 輸出以及光電二極體輸入的訊號路徑。而且,紅色 LED、紅外線 LED 以及光電二極體置於玻璃蓋後方。(圖片來源:Maxim Integrated)
對於 PPG 訊號路徑,此模組整合環境光消除 (ALC) 電路、19 位元的連續時間超取樣三角積分 (ΔΣ) 類比數位轉換器 (ADC),以及用於進一步降低雜訊的離散時間濾波器。在 ALC 中,數位類比轉換器 (DAC) 能透過消除環境光協助增加輸入動態範圍。為了幫助開發人員在功耗以及效能間取得平衡,裝置內建的 LED 驅動器可經過編程設定,提供 0 mA 至 100 mA 的電流,以及 50 μs 至 400 μs 的電流脈衝寬度。
要進一步節省功率,開發人員能夠啟用接近感測功能,讓裝置能在兩次量測之間維持在較低的功率狀態。在這個狀態下,裝置會以開發人員所編程的最低功率位準來驅動 IR LED。當光電二極體偵測到有用的訊號 ,顯示使用者的手指或其他皮膚表面靠近時,會產生中斷行為,而裝置會回到正常運作狀態,以繼續取樣。
對於 ECG 量測,MAX86150 整合完整的差動訊號路徑,只需要使用兩個乾電極以及一些額外的元件,就能夠實作單引線 ECG (圖 3)。與任何小訊號應用一樣,量測的準確度會持續受到環境中任何數量雜訊源的挑戰。在健身應用中,相關的心臟波形不只受到與肌肉運動以及其他生理過程有關的生物電位所影響,也常受到外部 RF 來源、線路頻率和電氣雜訊的干擾所掩蓋。
MAX86150 ECG 子系統透過用來抑制共模訊號的複雜訊號鏈,處理 ECG 量測中的訊號雜訊。

圖 3:除了 PPG 子系統之外,MAX86150 模組還包含完整的單引線 ECG 子系統,只需要一對乾電極並額外使用非常少量的元件,就能向微控制器提供 ECG 量測資料。(圖片來源:Maxim Integrated)
裝置中內建的 ECG 類比前端包含截波放大器、濾波器和可編程增益放大器 (PGA),可用於最大化心臟波形的訊噪比。在這個訊號鏈之後的 18 位元 ΔΣ ADC 會轉換每個樣本,並將每個結果推送到裝置共用的 32 樣本 FIFO,讓主機微控制器無需連續進行資料輪詢。
若要進一步降低功率並限制資料存取要求,開發人員可以調整 ECG 以及 PPG 子系統的取樣率,從最大每秒 3200 個樣本 (sps) 降低至 200 sps (ECG) 和 10 sps (PPG)。然而,如果一些複雜的應用需要同時進行 ECG 和 PPG/SpO2 取樣並同步處理結果,開發人員也能將此裝置用於這種應用。如果開發人員採用此做法時,兩個子系統的最低取樣率必須有所不同,那麼裝置只會對 FIFO 載入最後一個 PPG 樣本,在該子系統的下一個採樣週期提供新的 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 電腦系統,並針對 MAX86150EVSYS 套件,啟動 Maxim Integrated 的 Windows 圖形使用者介面評估套件軟體即可。此 GUI 套件會顯示 MAX86150 中的 ECG 及 PPG 資料,並讓開發人員能輕鬆修改裝置設定,以檢視對效能的影響 (圖 6)。
圖 6:該公司的相關軟體應用程式連接到 Maxim Integrated 的 MAX86150EVSYS 評估系統,讓開發人員能輕易檢視 MAX86150 執行的 ECG 與 PPG 量測。(圖片來源:Maxim Integrated)
對於準備好要建立自訂應用程式的開發人員,Maxim Integrated 的 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\n",
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\n", sd->vdd_oor_cnt);
}
return 0;
}
清單 1:此程式碼片段取自 Maxim Integrated 的 MAX86150 驅動程式套件,說明裝置 IRQ 處理器如何能夠只在有樣本可用或發生鄰近中斷等事件時才調用單獨的 FIFO 處理器,將處理作業減到最少。(程式碼來源:Maxim Integrated)
FIFO 處理器由裝置 IRQ 處理器調用後,會進行必要的低階運作,以重組 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 後,能讓開發人員快速實作行動健康與健身產品,提供有關心臟能力的詳細資料。
聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。






