摘要:
為了能讓患者在家中長期地監測自身的各種生理參數,隨時捕捉突發性心率失常,同時能將生理參數反映給醫療機構,方便醫務人員用于指導和協助治療,機智云開發者設計了一款基于單片機的智能遠程多生理參數健康監護儀。通過血氧、脈搏和體溫等數字信號采集模塊采集原始數據,由單片機進行算法處理,在顯示模塊顯示人體的血氧值、心率值和體溫值等,用戶還可通過按鍵配置生理參數的閾值報警、按鍵發送生理參數至云端。最后,與標準醫用監護儀進行對比測試,驗證了該設計的準確性與可行性。
1 總體框架
本設計的總體框架如圖1 所示。
圖1中, 監護儀采用以 ARM Cortex-M3 為內核 STM32 單片機作為核心處理單元, 分別將數字集成心率血氧采集模塊、 非接觸測量溫度的紅外線傳感器模塊得到的心率信號、 血氧信號、溫度信號通過通用的通信協議傳到核心處理單元進行特定的算法以及處理, 得到當前測試者的心率值、 血氧值、體溫值, 這些參數同時在LCD 顯示屏上實時顯示與更新。測試者還可以通過獨立按鍵配置生理參數的閾值提醒和將得到的生理參數通過無線通信模塊實時發送至智能手機與電腦等終端設備, 在云端可以實現這些生理參數的遠程監測。
2 硬件設計
2.1 微控制單元
該設計使用的微控制單元為STM32F103VET6 主控芯片, 其內核 Cortex-m3 是 ARM 公司面向成本和功耗敏感同時滿足相對高性能的市場產品而推出的。 ST 公司基于 Cortex-m 內核推出了STM32 的多個系列版本, 有基本型、增強型、互補型和 USB 基本型等, 其主流產品STM32F103 增強型系列微控器廣泛應用于電子電力系統、電機驅動、手持設備、空調系統、醫療電子等。
STM32F103VET6 的工作頻率最高可達72 MHz , 512 KB 的 Flash 容量作為 程序存 儲器 , 64 KB 的 SRAM 靜態隨機存取存儲器, 同時, 片上集成豐富的外設, 如: USB 、ADC 、CAN 、I2C 、UART 、TIMER 等。 開發者可通過庫函數、寄存器、STM32CUBEMX 等多種開發方式提高編程效率。
2.2 數字集成心率血氧傳感器
MAX30102 是美信半導體公司于 2016 年專為可穿戴設備和健康醫療輔助設備設計的一款數字集成心率血氧傳感器模塊。 該模組主要集成了雙波長紅光和紅外光 LED 、接收反射紅光和紅外光的光電探測器、環境光消除器件、分辨率可調的高精度 18 位 ADC 、數字噪聲消除器件、FIFO 存儲器和 I2C 通信接口。 單片機可通過 I2C 通信對 MAX30102 單獨設置為心率模式、血氧模式或者共用模式, 配置內部 ADC 分辨率、紅光和紅外光樣本的采集速率、FIFO 中樣本數量溢出的中斷方式、低功耗待機模式等操作。美信官網有 MAX30102 的系統圖和數據手冊, MAX30102 模塊的電路如圖 2 所示。
該傳感器測量心率和血氧的方法即光電容積法(PPG)。測量心率的基本原理[5-6]是利用動脈血液中的脈動成分對紅外光的吸光度隨著心臟跳動而進行周期性的變化(紅外光波長通常為900nm附近),經過反射后的紅外光光強被光電探測器接收后轉化為數字信號,進而通過算法處理得到心率。而測量血氧需要用到兩種波長不同的紅光(波長通常在660nm附近)和紅外光。脈動血液中的還原血紅蛋白(Hb)和氧合血紅蛋白(HbO2)對660nm(Hb對紅外光的消光系數)、aHbO2(HbO2對紅光的消光系數)以及用算法從原始樣本中分離的交流信號的以下公式,即可得到血氧飽和度值。
2.3 3 紅外非接觸溫度傳感器
某些晶體可以因為溫度變化而引起晶體表面電荷, 輻射紅外線。 紅外非接觸傳感器的工作原理為探測物體表面紅外輻射能量, 并將其轉變為易于測量的電信號或其他形式的量。 MLX90614 模組集成了用于探測目標溫度和環境溫度的熱電偶 MLX81101 和用于處理熱電偶輸出模擬信號的專用集成芯片 MLX90302 , 由邁來芯公司研發和生產。
該傳感器系列有多個型號和封裝方式,適用于不同領域的測量,專用于人體溫度監測的醫療應用版本在適用范圍內精度可達到0.1℃。在傳感器開發方面,存儲在MLX90302RAM中的目標溫度和環境溫度數據可由兩線SMBus通信協議模式和10位PWM模式輸出。
GY-90614模塊的電路如圖3所示。
3 軟件設計
3.1用于配置閾值和選擇發送數據的按鍵掃描算法
由于本監護儀設計的循環流程運行一次所需時間為 3 ~ 4 s , 因此通常的在主函數中的按鍵掃描算法無法精確地識別到測試者按鍵操作, 故采用了外部中斷嵌套定時器中斷掃描按鍵的方法來檢測測試者的按鍵動作。 該方法能極大地減少用戶進行單片機配置時所需要的按鍵數目, 降低產品成本, 同時提高了單片機運行程序的效率, 提高硬件資源的使用率。
具體的按鍵掃描算法思想如下: 測試者按下配置按鍵, 單片機掃描到邊沿信號, 程序進入設置了打開定時器的外部中斷服務函數, 單片機處于掃描按鍵狀態, 測試者此時可進行各種生理參數的閾值配置( 當閾值大于或小于測試者配置的數值時, 單片機會實時響應并提醒測試者) , 或者選擇關閉定時器的中斷開關, 從而使單片機退出配置模式, 按鍵算法流程如圖 4 所示。
3.2 2 心率血氧算法選擇分析
從 MAX30102 中獲取的數據信號為原始信號, 需經過算法處理才能得到測試者的心率值與血氧值。 對于從該模塊采集出來的數據信號進行處理的方法, 常用的有兩種: 一種是時域分析, 即算出脈搏數據信號( PPG) 的平均波峰距, 再用一分鐘除以這個波峰距即可得到心率值; 另一種是通過對 PPG 信號進行 FFT 變換得到頻域中脈搏波信號的頻段, 再將這個頻率值乘以一分鐘得到心率值。 首先是第二種方法, 經過了在 STM32VET6 使用FFT ( 快速傅里葉變換) 算法對 PPG 信號的處理后, 發現這種方法計算心率值存在時間和精度相矛盾的問題, 由以下公式可得出:
heartrate=60×Samples_per_second×s2_max_index×FFT_N
( 5 )其中, Samples_per_second 為每秒從 MAX30102 中采集的紅 外 光 樣 本 數 量 , s2_max_index × FFT_N 為 脈 搏 信 號 中交流成分信號的頻率, FFT_N 為快速傅里葉變換的點數長度。 若 Samples_per_second 設置為 100 , FFT_N 設置為1 024 , 從 FFT 填滿數據到計算出心率值需要花 費 5 s , 但得到的各心率值間隔為 3 。 從監測測試者的心率的實時性和準確性來看, 這都是沒有參考價值的。 若提高FFT 的點數長度, 雖然能提高測試心率值的精度, 但這將大大增加了監測出心率的時間, 同時加大了微控單元的負擔。本文設計心率算法使用的是第一種, 計算心率血氧的算法流程如圖 5 所示。
3.3 3 機智云
物聯網平臺
demoapp 的移植與調試
從下位機監護儀采集的測試者生理參數( 如:心率、血氧和體溫) 在 LCD 模塊實時顯示, 同時, 還能將監護儀進行聯網后在手機客戶端和官方的網頁界面監測到這 些生理參數。 物聯網平臺選擇的是機智云, 而聯網設備選擇的是樂鑫的
。
ESP8266 廣泛應用于各種物聯網智能硬件的開發, 如: 傳感器網絡、智能家居設計和無線醫療電子設備等。其常用的固件 AT 指令作為微控單元和 WiFi 模組之間配置功能, 連接與通信的底層指令。 相應地, 機智云
物聯網開發平臺
使用
GAgent
固件作為其與WiFi 模組的橋梁。
在 MCU 代碼開發方面, 機智云有官方的代碼自動生成工具, 該工具幫助開發者完成了 MCU與 WiFi 模組通信連接的底層協議工作, 適用于獨立 MCU 方案和 SoC 方案, 使開發者更專注于軟硬件的功能開發。機智云數據點設置如表1所示, 云端網頁生理參數遠程監測如圖6所示, 記錄了測試者某天21時一段時間內生理參數隨時間變化情況。
4測試驗證
為了測試驗證本次設計的監護儀的準確性, 以同一測試者 10 個不同時間點的生理參數作為測試樣本, 每個時間點分別用參考監護儀和本監護儀進行 5 次采集,最后求平均值。測試者心率、血氧和體溫的測試結果如表 2 所示。
5結論
智能遠程多生理參數健康監護儀為社會上的一些特定人群提供了日常居家健康監護的可行性, 監護儀采用數字集成心率血氧模塊等采集人體的心率、血氧和體溫等, 通過下位機實時顯示數據和波形, 使用獨立按鍵配置閾值提醒和配置聯網, 同時可通過云端網頁監測記錄。 本設計具有操作簡單、成本低、便攜性好、擴展性豐富、測量較為準確等特點。
-
STM32
+關注
關注
2266文章
10875瀏覽量
354878
發布評論請先 登錄
相關推薦
評論