楊力
(鹽城三新供電服務有限公司,江蘇鹽城,224600)
中國心血管報告編寫組于2017 年6 月發(fā)表了《中國心血管疾病報告2016》,旨在揭示城鄉(xiāng)居民心血管疾病死因情況。報告指出,目前心血管病是城鄉(xiāng)居民死因的最高占比,農(nóng)村和城市分別達到45.01%和42.61%。因此,加強心血管疾病的治療、預防和宣傳勢在必行,及時了解心臟機能對于預防和治療心血管疾病至關重要。
動態(tài)心電圖儀從1957 年Norman.J.Holter 發(fā)明至今已有60年歷史,是醫(yī)療領域不可或缺的電子儀器之一。然而,普通大眾難以將這種動態(tài)心電圖儀運用于日常監(jiān)測,從而未能在患病初期得到準確檢測和及時預防。為此,急需一種方便攜帶的家庭心率檢測儀,以實現(xiàn)心率檢測的準確性和便捷性,這是當前心率檢測儀器發(fā)展的重要方向。目前,最為熱門的健康檢測儀器是可穿戴式家庭健康監(jiān)測儀,可實現(xiàn)心率、血壓、睡眠等與健康相關因素的測量。市面上大多數(shù)心率檢測儀器均采用光電心率傳感器進行光反射測量,在人體靜止狀態(tài)下,測得數(shù)據(jù)相對準確;檢測儀器應貼近心臟或指尖佩戴,以獲得更加準確的數(shù)據(jù)。因此,現(xiàn)代化健康數(shù)據(jù)測量儀器的研究與發(fā)展具有重大意義。
本設計整體流程是通過脈搏波傳感器將模擬數(shù)據(jù)送往GPIO 口進行模數(shù)轉(zhuǎn)換。將轉(zhuǎn)化得到的數(shù)據(jù)存儲在直接存儲器里且將計算得到的心率值存入存儲卡內(nèi)。通過按鍵來選擇用戶界面,當按下按鍵時,會將存儲卡數(shù)據(jù)經(jīng)過串口發(fā)送到LCD。圖1 是本設計整體架構(gòu)圖。
圖1 系統(tǒng)整體框圖
STM32F103 芯片電路圖如圖2 所示,在其中上部分的BOOT1 和BOOT0 控制STM32 的啟動方式。本設計中將BOOT0 設為1,BOOT1 設為0,則是串口下載代碼,下載完后通過FlyMcu 來將程序燒錄進入開發(fā)板。
本設計需要的身體健康指標包括心率和血壓。數(shù)據(jù)采集模塊這部分所要實現(xiàn)的功能是完成兩路脈搏波的采集。本設計使用光電容積法測量心率。
該傳感器的工作原理如下:其數(shù)據(jù)輸入端口與STM32微控制器的PA1 端口相連,而正極則接入3.3V 電源。通過將PA1 端口配置為模擬輸入模式,指尖脈搏信號便可通過該端口傳入STM32 的模擬-數(shù)字轉(zhuǎn)換器(ADC)模塊中。隨后,一個定時器會控制采樣周期并定時從ADC 模塊中采集脈搏信號。在中斷函數(shù)中處理這些采集到的數(shù)據(jù),以計算心率。在使用傳感器過程中,應盡量避免強光刺激,并將傳感器置于指尖位置。適當使用黑布覆蓋手指,可防止光線干擾,從而提高傳感器的測量準確度。
如圖3 所示,光電式脈搏傳感器的實物圖主要包括四個部分:光源、光接收器、濾波器和放大器。由于光接收器接收到的電信號為毫伏級別,容易受到干擾且難以檢測,因此在傳感器內(nèi)部采用差分放大器對信號進行放大,并通過帶通濾波器(頻率范圍為0.05~200Hz)濾除干擾信號。本設計旨在實現(xiàn)便攜式測量,且使用者無需具備專業(yè)醫(yī)學知識,因此選擇脈搏波傳導時間(PTT)作為血壓測量方法。該方法的工作原理是測量兩路脈搏波,分別找到每次脈搏的峰值點,然后測量相鄰指尖脈搏峰值與橈動脈脈搏波峰值之間的時間差,即PTT。通過血壓與PTT 之間的回歸方程,可以計算得出血壓值。
圖3 光電容積脈搏波傳感器
如圖4所示,其接口是標準耳機接口,正極接入5V電源,數(shù)據(jù)輸入口接STM32 的PA2 口,將PA2 口設置為模擬輸入口,將送入的橈動脈脈搏波送往ADC 模塊。
圖4 HK-2000B 橈動脈傳感器
圖5 DHT11 接口圖
本設計采用了一種成熟穩(wěn)定的數(shù)字傳感器,該傳感器是溫濕度一體化的,并且工作電壓為5V。該傳感器的溫度測量范圍為0℃~50℃,濕度測量范圍為20%~90%。由于它可直接提供數(shù)字信號,因此和STM32 通信時采用單總線連接。在DHT11 接口圖中,數(shù)據(jù)輸出口接在PA11 口。每一次的數(shù)據(jù)傳輸都是40 個bit,包括十六位的濕度和十六位的溫度。在校驗和與前四個字節(jié)相加的值相等時,數(shù)據(jù)為正確值,可以直接傳遞溫濕度值給STM32。在主函數(shù)中,當按鍵0 按下時,STM32 會去讀取DHT11 傳感器的數(shù)值。
要求智能健康監(jiān)測系統(tǒng)能夠存儲歷史健康數(shù)據(jù),因此需要將數(shù)據(jù)存儲下來,并可查詢以支持健康分析。為此,本設計選擇了存儲心率數(shù)據(jù)的SD 卡,這種容量較大、體積小的存儲設備可用于專門健康分析。SD 卡可采用SPI 和SD 總線兩種工作模式。由于STM32F103 系列不支持SD 總線,因此本文采用了SPI 模式對SD 卡進行操作。圖6 是SD 卡的電路原理圖。
圖6 SD 卡電路示意圖
STM32 單片機提供兩路排針來外擴2.8 寸LCD。LCD在本設計中用于顯示用戶健康數(shù)據(jù)的顯示。其電路圖如圖7 所示。TFTLCD 和STM32 在硬件接口如下所示:LCD_D[17:1]接PB[15:0],LCD-CS 接PC9,LCD-WR 接PC7,LCD-RD 接PC6,LCD-RS 接PC8。
圖7 LCD 電路圖
在本設計中,通過按鈕來實現(xiàn)人機交互功能。在硬件連接上,如圖8 所示。KEY0 接PC5,KEY1 接PA15,WK-UP 接PA0。其中WK-UP 是高電平有效,無上下拉電阻。KEY0、KEY1 均是低電平有效,但是KEY1 有上拉電阻,KEY0 沒有,故在配置的時候要注意。
圖8 按鍵電路
主函數(shù)模塊的主要功能是進行各子模塊的初始化,并提供人機交互界面,使用戶能夠通過不同的按鍵選擇要顯示的當前數(shù)據(jù)和歷史數(shù)據(jù)界面。系統(tǒng)的初始化包括ADC 模塊、定時模塊、LCD 模塊和LED 模塊等。在程序中,分別調(diào)用DHT11_Init()和SD_Init()進行DHT11 和SD 模塊的初始化,利用while 循環(huán)進行檢測,如果初始化失敗,則返回值為1,輸出警告信息,導致整個系統(tǒng)停止向下執(zhí)行,如果初始化成功,則程序繼續(xù)往下運行。最后,用戶可以通過按鍵選擇不同的界面,并在LCD 上顯示相應的數(shù)據(jù)。
圖9 主函數(shù)流程圖
數(shù)據(jù)采集模塊主要是兩路脈搏波數(shù)據(jù)的采集。本設計采用定時器3 和模數(shù)轉(zhuǎn)換器一起來采集數(shù)據(jù),由定時器控制采樣頻率。ADC 的配置流程圖,如圖10 所示。因為要求ADC 時鐘不能超過14M,時鐘分頻因子為6,則ADC 時鐘為72M/6=12M。
圖10 ADC 流程圖
ADC 數(shù)據(jù)通過直接內(nèi)存訪問(DMA)進行存儲。程序流程圖如圖11 所示。DMA 參數(shù)配置涉及以下幾個方面:由于不同的外設觸發(fā)DMA 時,數(shù)據(jù)傳輸通道各異。例如,當ADC 觸發(fā)DMA1 時,其通道為通道1。因此,首先需要啟用DMA 時鐘并對通道1 進行復位操作。使用DMA 時,需明確目標地址和源地址,以及數(shù)據(jù)傳輸方向和每次傳輸?shù)臄?shù)據(jù)長度。在本設計中,ADC_DR 數(shù)據(jù)寄存器作為源地址,目標地址為用于存儲兩個數(shù)據(jù)的數(shù)組,數(shù)據(jù)傳輸方向為從ADC_DR 到數(shù)組。啟用循環(huán)模式,并將數(shù)據(jù)增加方向配置為內(nèi)存地址寄存器遞增。這意味著當ADC 數(shù)據(jù)傳輸完成一次后,數(shù)據(jù)將遞增1。這是因為DMA 最多可存儲65536 個數(shù)據(jù)。當存儲空間已滿時,系統(tǒng)將自動從頭開始,覆蓋之前的數(shù)據(jù)。
圖11 DMA 流程圖
測試結(jié)果如圖12 所示。該智能監(jiān)測系統(tǒng)界面具有多項功能。當按下KEY0 時,系統(tǒng)將導航至當前健康測量界面;而按下KEY1 時,將跳轉(zhuǎn)至歷史健康數(shù)據(jù)檢測界面。在此系統(tǒng)中,HR 代表當前心率值,Temp 表示當前溫度值,Humi代表當前濕度值,而Comf 則表示當前的舒適度。當Comf顯示為“Comfortable for BPM”時,表明當前環(huán)境較適合進行心率測量。該值是通過綜合考慮當前溫度、濕度以及心率得出的。若顯示為“Confortable”,則僅根據(jù)溫度和濕度判斷舒適度,而不考慮心率值。若顯示為“Alarm”,則意味著當前溫濕度低于維持人體健康所需的環(huán)境,提醒用戶注意。如需更新數(shù)據(jù),用戶可繼續(xù)按下KEY0。此外,用戶還可以通過查看串口直接觀察數(shù)據(jù)更新情況。在此系統(tǒng)中,BPM 表示心率值,BP 表示血壓值,而最后一行顯示的是SD 卡的總?cè)萘俊eart Condition 用于表示心率是否處于正常范圍內(nèi)。
圖12 測試結(jié)果界面
本研究首先獲取模擬脈搏波數(shù)據(jù),經(jīng)過采樣、心率計算和數(shù)據(jù)存儲后,將其與溫濕度數(shù)據(jù)一同傳輸至LCD 顯示器進行展示。通過分析一定范圍內(nèi)的溫濕度與心率之間的相關性,得出熱舒適度指數(shù)。實驗結(jié)果表明,各個模塊的功能均滿足預期要求。然而,仍存在以下不足之處,有待進一步優(yōu)化。數(shù)據(jù)采集模塊所采集到的數(shù)據(jù)存在較多噪聲。為提高測量結(jié)果的準確性,應在電路中加入濾波器,以消除脈搏波的基線干擾等。