基于STM32W的老人心率實時監(jiān)測及跌倒檢測系統
摘要:為了有效地解決獨居老人由于突發(fā)性病癥而得不到及時救治的問題,本系統以STM32W108無線射頻芯片為核心處理器,提出了的一種心率實時監(jiān)測和跌倒檢測的解決方案。該系統利用ECG信號中的QRS波提取心率,同時分析三軸加速度傳感器的信號,結合運動狀態(tài)變化(SV M、DSVM)和姿態(tài)特征變化(姿態(tài)角)判斷是否跌倒。該設備通過模擬測試證明了其可靠性和實用性。
關鍵字:ECG心率檢測;QRS波;三軸加速度傳感器;跌倒檢測算法;ZigBee;STM32W
在面向遠程醫(yī)療和社區(qū)醫(yī)療信息化的無線物聯網技術總體研究如圖1所示的基礎上,本文以STM32W108無線射頻為核心MCU,提出了一種可
以老人實時監(jiān)測系統。該系統采用硬件濾波的方法提取ECG信號中的QRS波,可實時分析心率;通過分析運動狀態(tài)(SVM和DSVM)和姿態(tài)角變化判斷跌倒狀態(tài)。最后通過模擬測試證明了該系統的可靠性和實用性。
1 系統架構設計
1.1 STM32W無線射頻芯片介紹
STM32W108是意法半導體(ST)公司推出的完全集成的系統級芯片,符合IEEE802.15.4的標準,與目前其他的2.4GHz SoC芯片最大的區(qū)別在于:一、保持低功耗的基礎上,采用了32位ARMCortex—M3內核,處理能力強;二、芯片內部帶有功率放大器(PA),發(fā)射功率可以達到7dBm,無需功放就可獲得較大的通信距離;三、芯片內部固化了ZigBee協議棧,開發(fā)簡單。在該可課題的應用中,我們使用的是STM32W108 CBU61(內嵌ZigBee協議棧),128kB的Flash存儲器。
1.2 ECG心率檢測原理
心率的檢測可以從很多方面獲得,如:通過分析血壓的壓動信號;通過分析血氧脈搏波信號;通過分析ECG(Electrocardiogram)??紤]到設備的便宜性,我們采用的是胸部單導聯式的ECG采集原理,采用被測試人的右胸和腹部作為兩個電極信號輸入(由于當前設計只是針對心率的采集,故不需要參考電極)。一個完整周期的理想ECG信號如圖2所示。
如圖所示,QRS波群巾的R處波峰,代表了電脈沖在心房之間的傳輸,它的典型值是在1mV左右,是ECG信號中幅值最大的信號。在該課題中,心率的檢測就是利用QRS波這一特點,將處理后的ECG信號通過QRS檢波電路輸出R波的脈沖信號,利用STM32W芯片端口的輸入捕獲功能,即可算法心率值。ECC信號采集流程如圖3所示。
1.3 跌倒檢測原理
人體跌倒是南于身體不自主失去平衡的行為,在跌倒的瞬間,人體的重力、加速度、位移和姿態(tài)等相關量都會發(fā)生變化。由于本課題中的老人行動比較的單一簡單,所以我們利用單一的三軸加速度傳感器足以檢測出跌倒的狀態(tài)。我們通過分析加速度的瞬態(tài)變化去判斷人體的運動狀態(tài),然后根據姿態(tài)角變化去判斷人體的姿態(tài)特征,綜合兩者因素得出是否跌倒。
*速度瞬態(tài)變化
人體加速度向量幅值SVM和微分加速度幅值的絕對平均值DSVM是區(qū)分人體運動狀態(tài)的重要參量。SVM通過計算加速度幅度表征人體運動的劇烈程度,其值越大表明運動越劇烈。其定義為
DSVM通過計算SVM的微分絕對值的時間平均表征人體運動狀態(tài)變化的劇烈程度,其值越大表明運動狀態(tài)變化越劇烈。其定義為:
在動態(tài)坐標系下考察SVM和DSVM,可監(jiān)測人體的運動強度和運動狀態(tài)變化強度。
*姿態(tài)角判斷
在三維中間中,我們將人體沒想成一個方塊,利用三軸加速度和重力的關系,我們可以得到三個姿態(tài)角ρ、θ和φ,如圖4所示。通過判斷姿態(tài)角的變化,得出身體的姿態(tài)變化。
其中:ρ是X軸與水平面間的夾角;θ是Y軸與水平面之間的夾角;φ是Z軸與重力加速度方向間的夾角。
1.4 硬件組成和設計
考慮到沒備的便攜性,我們采用腰掛式,具體的實現方案如下:采用Li-ion電池供電,由于系統的電源是3.3 V,而Li電池的電池電壓范圍為2.5V-4.2 V,所以方案采用TI的TPS63031DC—DC升降壓芯片。
*STM32W芯片采用系統的3.3 V作為主電源,內核和存儲區(qū)域的電源有芯片內部的穩(wěn)壓器提供;外部時鐘源為24MHz高頻晶體振蕩器和32.768kHz低頻晶體振蕩器;RF使用的是陶瓷天線。
*ECG信號采集采用了織物式電極,兩處電極分別位于被測者的右胸和腹部;電極輸入前端有ESD保護,輸入阻抗匹配;心電數據存儲芯片選用AT24C02,2kB的e2PROM。
*三軸加速度傳感器采用的是ADI公司數字式傳感器ADXL345,超低功耗,分辨率可達到3.9mg/LSB,能夠測量不到1°的傾斜角變化;I2C通信方式。
*采用1.1寸的OLED屏幕顯示系統的狀態(tài)信息,三個功能鍵和一個電源按鍵。
2 軟件設計
STM32W的開發(fā)是基于EmberZNet協議棧的,它是ST公司為用戶提供的開發(fā)包,內部包含了豐富的API函數,用戶只需調用API即可完成相關功能。EmberZNet應用程序類似于一個操作系統,系統處理所有的模塊程序都是以任務調度的形式完成,即:監(jiān)控任務(Housekeeping Tasks)。系統主要的任務有:網絡維護任務和處理器維護任務,后者包括功能按鍵采集任務、心率檢測和備份曲線任務、三軸加速度傳感器數據采集任務及跌倒算法任務。
2.1 網絡維護任務
應用程序中負責管理網絡相關性的任務有:檢測網絡、加入網絡、網絡維護。網絡拓撲結構如圖所示,設備開機工作,在完成初始化以后,必須要加入到既定的家庭網絡。通過調用emberStartScan函數完成信道掃描和網絡的發(fā)現,調用emberScanCompleteHandler函數查看掃描的成功與否,調用mberNetworkFoundHandler查看掃描結果。在加入網絡之前,需要手動選擇自己家庭的PAN ID。配置相關網絡參數,選擇一個父節(jié)點,然后調用emberJoinNetwork函數加入到網絡。
在加入到網絡以后,作為移動端設備的E0是不需要綁定路由的,它必需通過周期性的輪詢(定義為5s)與父節(jié)點保持聯系,確保自己“在線”。如果周期性的輪詢丟失聯系,要重新加入網絡,調用emberRejoinNetwork函數。如圖5所示,E0到協調器的傳輸路徑可以是1、2或3。
2.2 處理器維護任務
在STM32W108的協議棧中,所有的應用程序都要求的唯一的任務要運行在這一個平臺上。通過周期性的調用emberTick函數,處理很多從最近一次調用emberTick函數開始收集的任務。
*功能按鍵采集任務
設備有四個按鍵,一個電源鍵,負責系統的開關機及鎖鍵功能,三個功能鍵,負責系統相關配置。
*心率檢測和備份曲線任務
心率的實時監(jiān)測是利用STM32W定時器捕獲中斷來完成的,利用中斷來啟動心率檢測的任務,算出即時的心率,并且完成對異常值報警。將1min內的記錄值(60-120個)壓縮成10個,每小時存儲60個,每天存儲1440個,按照時間順序存儲在2 kB的e2PROM中。
*三軸加速度傳感器數據采集任務
數據采集的頻率設定為100Hz,每采集完2S的數據后,啟動跌倒算法任務。
*跌倒算法任務
首先判斷各個方向加速度值是否大于預設閥值,然后根據公司(1) (2)計算出SVM、DSVM。當跌倒發(fā)生時,SVM會明顯增大,而且持續(xù)時間較長,DSVM明顯增大,當峰值超過預設閥值(試驗統計值為0.35g/s)時,則認為人體有跌倒傾向。如果差值明顯,就斷定為跌倒;如果不明顯,根據公式(3) (4) (5)判斷姿態(tài)角的變化,如果姿態(tài)角發(fā)生變化,也斷定為跌倒。具體算法流程圖如圖6所示。
3 系統測試
為了驗證設備的實用可靠性,我們要進行相關的測試,測試項目包括:系統功耗,即:系統正常工作時間(900mAh電池供電);心率測試的實時性;跌倒報警的實時性;網絡傳輸的可靠性。
為了驗證系統對心率測試的實時性,我們運動加快心跳的測試。為了方便測試,我們將每分鐘的心率數據壓縮成50個,即時發(fā)送給智能終端,通過智能終端的如下表1分析可以很明顯的看出心率的變化。
系統在網絡中的傳輸可以分為主動傳輸和被動傳輸,主動傳輸主要是用于發(fā)送報警信息,被動傳輸是智能終端訪問終端上的數據,每天都會將心率數據傳輸到終端上進行分析。為了方便測試,被動傳輸定義為1h。
4 結束語
在該課題研究中,完成了心率的檢測和數據記錄,同時提供了跌倒報警,為遠程監(jiān)護系統的發(fā)展提供了基礎,同時實現了對“空巢老人”的遠程監(jiān)護。記錄心率的歷史數據,對醫(yī)生分析病理有很大的幫助。該系統的優(yōu)點在于選用了處理功能強大的STM32W無線射頻芯片,采用了相對復雜但是精確的算法,可以準確的分析出突發(fā)性的事件(心率異常、跌倒)。以本系統為模型,可以設計對其他體征參數(如:血壓、血脂、血糖、呼吸等)的檢測系統,建立完整的健康檔案,對遠程醫(yī)療服務的發(fā)展具有實用意義。