胡樹林,唐莉,楊彪,宮東藩,侯冬晴
(吉首大學信息科學與工程學院,湖南吉首 416000)
心電儀作為臨床診斷的常用工具,其對各類疾病的預防與治療具有重要作用[1]。傳統的心電儀具有體積大、操作復雜、價格昂貴等缺點,只適合在醫院等場所使用,不便于日常使用[2]。隨著電子信息技術與物聯網技術的發展,心電監護設備逐漸進入人們日常生活中,正朝著微型化、智能化、便攜式等方向發展[3]。將物聯網技術與醫療應用相結合的便攜式心電儀能降低設備的體積、成本和操作難度,具有研究價值。
文中設計一種可以滿足日常使用的便攜式心電儀,實現了實時心電采集、心率檢測及藍牙無線傳輸等功能。系統采用模塊化設計,主要包括基于STM32單片機的微控制器單元,使用德州儀器公司的高精度模擬前端芯片ADS1292R 構成的心電信號采集模塊、藍牙無線傳輸模塊和手機APP。通過對人體ECG 信號進行采集、放大、濾波后進行心率計算、心電圖顯示、心率監測。系統總體設計框圖如圖1 所示。

圖1 便攜式心電儀系統總體設計框圖
所設計系統采用的MCU為STM32F103RCT6。該芯片內核為ARM32位Cortex-M3內核,最高工作頻率達72 MHz。其硬件資源豐富,具有256 kB片內FLASH,48 kB SRAM 且具有定時器、DMA、SPI、IIC、ADC、DAC等功能[4]。其集成了多種通信接口有利于模塊化設計和系統的穩定性,能滿足設計的要求。單片機最小系統的外圍電路由單片機、電源、時鐘電路、復位電路組成,其為單片機正常工作的基本電路。MCU 供電電壓為3.3 V,時鐘電路由晶體振蕩器和電容組成,為單片機提供時鐘脈沖。微控制器單元負責系統的邏輯控制、驅動其他模塊工作和對心電信號進行處理。
心電信號使用ADS1292R 模擬前端芯片進行采集。其為一款用于生物電勢測量的低功耗、多通道的同步采樣24 位數模轉換器(ADC),具有內置的可編程增益放大器(PGA),內部EMI 濾波、內部基準和板載振蕩器。ADS1292R 具有高精度、同步采樣、低功耗、多通道數據采集等優點[5]。ADS1292R 采集的數據傳輸使用SPI 兼容串口與MCU 通信,工作時的數據采樣速率高達8 ksps,該設計使用250 sps 的采樣速率。心電信號采集模塊原理圖如圖2 所示。

圖2 心電信號采集模塊原理圖
該設計無線通信模塊使用HC-05 藍牙串口模塊,其工作頻段為2.4 GHz,最遠通信距離為10 m[6]。其具有性能穩定、低功耗、采用AT 指令控制、操作簡單等優點,能滿足傳輸心電信號的要求。MCU 與藍牙模塊采用串口通信協議(UART),使用藍牙模塊實現MCU 與APP 的數據交互,可將心電數據傳輸到移動端顯示,也可將用戶在移動端輸入的控制信息傳輸到MCU,實現對心電儀的無線控制。
該系統輸入電壓范圍為6~12 V,可使用兩節18650 鋰電池串聯為系統供電。使用一片AMS1117-5.0線性穩壓芯片(LDO)降壓輸出5 V,一片AMS1117-3.3輸出3.3 V 為MCU、LCD 顯示信號電路和指示燈供電。人體心電信號幅值較低,一般為10 μV~4 mV[7],故心電信號采集電路對電源噪聲比較敏感。使用REG102NA-3.3 線性穩壓芯片單獨為采集電路供電,能減少電源紋波噪聲對采集信號的干擾。該LDO 輸出電壓的噪聲最大僅28 μVrms,輸出電壓精度高,且其體積小、外圍電路簡單,非常適合用于便攜式設備。電源電路如圖3 所示。

圖3 電源電路
顯示模塊負責將心電數據(包括心電波形圖、心率信息、狀態信息)進行顯示。為了追求更好的顯示效果,顯示模塊使用TFT LCD 液晶屏。其具有重量輕、平板化、低功耗、無輻射、顯示品質優良等特點[8]。其為16 位真彩顯示屏,在每一個像素上都有一個薄膜晶體管(TFT),可避免信號的串擾,故顯示的圖像具有較高的質量。液晶屏接口使用軟排線連接,可提高顯示屏插接的靈活性。
當使用者心率異常時,系統會發出警報。警報模塊由SS8550 三極管和蜂鳴器組成,當心率異常次數超過設定值時,單片機驅動三極管導通使蜂鳴器上電發出警報,當心率恢復正常后警報消除。
使用按鍵模塊作為系統的輸入設備,通過按鍵完成系統復位、暫停和參數設置等功能。
單片機軟件部分使用C 語言編程,使用KeiluVision5 集成開發環境開發,單片機軟件運行流程圖如圖4 所示。系統上電后首先進行單片機及各個模塊的初始化,然后MCU 開始讀取采集的心電信號。由于此時的心電信號為原始采集信號,可能存在多種干擾噪聲,故設計時針對心電信號的特點,設計了一個FIR(有限長單位沖激響應濾波器)帶通濾波器濾除原始采集心電信號中的噪聲干擾。使用意法半導體公司提供的DSP 庫函數,對輸入的原始心電序列進行處理,得到的輸出序列保留了心信電號并濾除了大部分干擾噪聲,更能反映真實的心電波形,有利于后續的單片機處理和顯示。由濾波后的信號可計算得到心率信息。

圖4 系統軟件流程圖
LCD 液晶屏將實時顯示心電波形圖及心率等信息。同時,單片機將心電數據通過藍牙模塊傳輸至APP 同步更新心電數據。單片機會對心率進行監控,若心率不在正常范圍,系統會通過蜂鳴器發出警報。該警報會在心率恢復正常或用戶按下取消按鍵時消除。
3.1.1 心率的計算
一個完整的心電周期包括一個P 波、一個QRS波群和一個T 波,T 波后可能還有一個U 波[9],如圖5所示。其中QRS 波群是整個周期中幅值最高,特征最明顯的波段,同時也是臨床診斷中使用最多的波形。該設計中單片機通過連續采集5 個周期的數據,計算其均值,將均值乘以一個系數作為R 波檢測的閾值,檢測每個周期的R 波信號,然后使用相鄰兩個R 波間的時間間隔TR-R計算瞬時心率。

圖5 單個周期心電信號波形圖
3.1.2 心電信號的濾波處理
ECG 信號的頻率范圍一般為0.5~100 Hz,主要集中在0.5~40 Hz 的頻率范圍內,屬于低頻信號。由于人體環境的復雜性,人體心電信號存在不穩定性和隨機性[10]。且心電信號具有微弱、低頻、高阻抗等特性,極容易受到干擾。采集的原始心電信號往往疊加了多種噪聲干擾信號,主要有以下3 種:
工頻干擾:我國家用電力系統使用交流電為50 Hz,工頻干擾噪聲的頻率主要為50 Hz。供電網絡無處不在,人體處在其輻射的電磁波周圍,容易受到工頻噪聲的影響。這種影響具有普遍性,是干擾噪聲的主要來源[11]。
肌電干擾:由于人體肌肉細胞活動產生的生理電信號對心電信號的干擾,這種噪聲會隨著人體肢體運動而變化,其頻率較高,一般在5~2 000 Hz之間[12]。
基線漂移:基線漂移主要是由于人體呼吸、肢體活動產生,使心電信號的基準電壓發生偏移,這種偏移會使心電信號處于不同的水平上,對后續單片機處理產生影響。基線漂移是一種變化緩慢的低頻噪聲,其頻率一般低于0.5 Hz[13]。
由于STM32F1 系列單片機性能有限,為保證系統的實時性和結果的準確性,結合心電信號頻率的特點,設計了一個通帶頻率為0.5~45 Hz 的FIR(有限長單位沖激響應濾波器)帶通濾波器,對原始采集信號進行濾波[14]。N階FIR 濾波器輸入序列與輸出序列的關系是一種有限卷積和的形式,其表達式為[15]:

其中,h(i)為濾波器參數,x(n)為輸入時間序列,y(n)為輸出序列。FIR 濾波器使用Matlab 的Filter Designer 工具設計,采樣頻率設為200 Hz,階數為200,窗函數選取海明窗。
通過Matlab 對設計的FIR 濾波器進行仿真驗證,將心電信號混入50 Hz 和2 kHz 的噪聲干擾,心電信號濾波仿真結果如圖6 所示。可見,通過FIR 帶通濾波器能有效濾除混在心電信號中的噪聲干擾。將通過Matlab 得到的濾波器系數存入程序中,調用意法半導體公司提供的DSP 庫函數中的ARM_FIR_F32()函數對原始心電數據進行濾波。

圖6 心電信號FIR帶通濾波器仿真
設計的APP 使用藍牙調試器軟件,在各大應用商店都可下載,這是一款功能強大的藍牙調試工具。用戶可自定義通信數據幀格式。該軟件含有可直接使用的豐富的圖形化組件。將心電數據添加到數據幀中,APP 端接收到數據后進行解析,將解析后的ECG 數據鏈接到Y-T 波形圖中顯示,可在手機上實時顯示心電波形。
為了測試系統心率監測的準確性,使用心電信號模擬儀生成各種心率的標準心電信號接入到系統中,將測量的心率與實際心率進行比較分析。為了測試心電儀實際使用效果,該系統使用三導聯的方式,通過電極片將系統與測試者連接,測試者是一位20 歲的男性。實際測試系統對人體ECG 信號的采集、顯示及監測效果。
對心電模擬儀產生的心電信號進行測試,結果如表1 所示。

表1 心率監測測試結果
由表1 可知,在測試數據中,系統對心率測量的平均相對誤差約為-1.34%。且在人體60~100 Bpm[16]的正常心率范圍內,相對誤差較小,具有可信度。
系統接入人體實際測試結果如圖7 所示,可見液晶屏及APP 上都能清晰顯示心電波形和心率信息,且心電波形經濾波處理后曲線較光滑,噪聲干擾較小。

圖7 系統接入人體測試結果
該文設計了一種基于藍牙無線傳輸方式,以STM32F103RCT6 單片機為控制器的便攜式心電儀,使用模擬前端芯片ADS1292R 對心電信號進行采集,通過一個FIR 帶通濾波器對原始采集信號進行濾波處理。經測試證明,該設計能實時在液晶屏和手機APP 顯示心電波形圖和心率信息,且心率測量相對誤差的絕對值小于3%。該設計方案成本較低、操作簡捷、攜帶方便,可以應用于日常醫療保健中,具有一定的推廣價值。進一步研究表明,可將心電儀連接互聯網,以實現遠程心電信號的采集和監控。