羅錦 李曉 李昀澄 譚銘


摘 要 本設計制作的是無線運動傳感器,采用STM32RCT6為控制核心板,通過多個種類的傳感器將采集來的信息送入主控單片機。使用TI模擬前端芯片ADS1292實現兩路心電信號的采集、存儲及顯示心電圖,分析計算得出心率其誤差不大于2%。設計采用右腿驅動電路和低通濾波及軟件IIR濾波抑制干擾措施,提高放大器共模抑制比;基于LMT70溫度傳感器測得使用者體表溫度,MPU6050通過姿態解算檢測使用者運動信息,得出運動步數和運動距離。并且將數據通過NRF24L01傳輸給電腦,上位機顯示動態心電圖、體表溫度和運動信息。各個模塊應功能完整,測量精度誤差不大于各自要求。
關鍵詞 心電采集 濾波 運動監測 無線傳輸
中圖分類號:TP212.9 文獻標識碼:A 文章編號:1007-0745(2020)02-0001-03
1 方案設計
1.1 總方案
本系統可實現實時采集心電體表和運動信息。使用ADS1292作為采集心電模塊主要芯片,通過IIR濾波濾去多余信號,在體表測量電路LMT70中加入去耦電路。使用MPU6050對使用者進行姿態檢測。通過單片機控制各個模塊,采集分析數據計算得出心率、步數、運動距離。通過NRF24L01無線傳輸通信傳送運動節點數據到上位機,可實時顯示心電圖等信息。
1.1.1 濾波方案
方案一:通過二階的50Hz雙T陷波器對人體內產生的50Hz的天線噪聲和電源供電引入的工頻干擾進行濾波。
方案二:使用數字濾波器同樣對人體噪聲和工頻干擾進行濾波,在matlab做出IIR四階濾波器對心電數據進行濾波。
對比以上兩種方案通過陷波器后仍有較大工頻干擾,且陷波器自帶噪聲也夾雜在所需ECG信號中。而數字濾波設計更方便,可及時糾錯從而降低成本,且效率更高。
1.1.2 運動狀態檢測方案
方案一:使用MPU6050加速度傳感器的自適應采樣。MPU6050具備三軸加速度和三軸姿態角。將三軸加速度ax、ay、az采用三軸合一得到向前加速度,進行加速度積分得到速度,計算得出運動狀態步數,并計算得出運動步距。
方案二:或者采用四元數法,雖然要比解歐拉微分方程多一個方程,但其優越性在于計算量小、精度高、可避免奇異性。與方向余弦法相比,四元數法的優點在于,不僅歪斜誤差等于零而且刻度誤差的推導很簡單,能得出便于進一步分析的解析表達式。
對于兩個方案,由于在微處理器中運算速度受到限制,且浮點運算會消耗大量的計算資源,所以方案二并不適合本設計。
1.1.3 無線傳輸方案
方案一:E34-2G4H27D是EBYTE公司的無線串口模塊,連上后無需其他的操作就可直接讓單片機向串口發送數據,同電腦讀取串口的數據。
方案二:NRF24L01芯片,讓NRF24L01再與電腦相連,MCU也與NRF24L01相連,單片機先與NRF24L01相連再與電腦相連,將數據發送向單片機再發往上位機。
對比兩個方案由于串口模塊并不穩定且傳輸速度比無線模塊慢,所以選用方案。
2 理論分析及器件選擇
2.1 理論分析
2.1.1 心電信號采集
心臟工作時在體內不同位置產生不同電勢,伴隨心跳律動的電勢而變化,通過電位差測試記錄畫下的就是心電圖(ECG)。心電信號頻率低于0.05Hz至100Hz,是幅度在10?V~5mv的微弱交流信號,且夾雜著肌電信號及外界工頻干擾。如何從環境噪聲中提取微弱的心電信號是采集的難點和要點,此點屬于小信號放大。系統采用常見電池供電,采集左右信道心電信號,右腿驅動負反饋消除共模干擾,通過放大、濾波得到模擬心電信號,并能利用液晶實時顯示心率并在上位機存儲回放ECG波形。
心電信號主要芯片采用TI專用的近醫療級心電采集芯片。網絡標號ADS1292_ERA、ADS1292_ELA和ADS1292_RLD分別接三導聯心電傳感器,其中ADS1292_RLD用于消除共模干擾信號,確保心電信號輸入電壓在正常的監測范圍內。原始心電信號從網絡標號ADS1292_ERA、ADS1292_ELA接入一階微分電路濾除部分干擾,從IN1P、IN1N引腳進入采集芯片ADS1292,芯片對采集的原始數據進行A/D轉換、放大,通過ADS1292_DIN、ADS1292_DOUT兩個引腳,在特定的時序下以其自身幀格式將數據發送給主控模塊的單片機(MCU),3B的幀頭、3B的狀態幀及3B心電信號,組成每幀9B的數字信號。每處理結束一幀數據后,向單片機STM32F103C8T6發送請求,單片機響應后進行數據傳輸。
2.1.2 體表溫度采集
LMT70是TI公司的半導體模擬溫度傳感器。LMT70的輸出特性曲線看起來是線性的,實際上在它的溫度范圍內,根據需求又有三種計算方式:
(1)在20℃-30℃范圍內,輸出線性擬合:
(2)在-55℃到150℃的范圍內,二階的計算方式會獲得更加精確的效果,特別提醒于極端溫度(零下低溫-60℃時)效果不好。
2.1.3 步距測量
人體處于動態時會產生側向、前向和豎向的加速度分量,這3個加速度分量相互正交,對應加速度傳感器3個軸—x、y、z軸上的加速度。6050獲得的三軸加速度不可以直接使用,需先采用高斯濾波器對信號進行預處理。用a(xt)、a(yt)、a(zt)分別表示t時刻x軸、y軸、z軸的加速度信號,記A(t)=[a(xt),a(yt),a(zt)],則高斯濾波公式為:
采用三軸合一的方法,計算三軸加速度的信號矢量幅值SVM來確定加速度,以提高計步的準確性,計算公式如下:
其中,a(xt)、a(yt)、a(zt)分別為t時刻加速度傳感器在x、y、z軸所測得的數據。三軸合一后的SVM數據波形與實際步數相對應,一個波峰的變化正好對應一個步伐。
計算距離用現有加速度已經得出后計算加速度的積分得到速度,則可得到運動步距。
2.1.4 無線傳輸
采用SPI通信。SPI的通信原理很簡單,它以主從方式工作,這種模式通常有一個主設備和一個或多個從設備,需要至少4根線,事實上3根也可以(單向傳輸時)。也是所有基于SPI的設備共有的,它們分別是SDI(數據輸入)、SDO(數據輸出)、SCK(時鐘)、CS(片選)。通訊是通過數據交換完成的,這里先要知道SPI。
2.2 器件選擇
心電采集器件選擇TI公司的ADS1292。由于人體心電信號具有微弱、易受生物體內與體外信號干擾等的特點。故選用TI公司生產的用于生物電勢測量的ADS129x。其24位模擬前端能有效保證采集到的數據的準確性。同時,可通過配置將其三路輸入中任意一路輸入連接到片內集成的右腿驅動電路上,形成負反饋,能有效消除共模干擾。ADS1292既能滿足對數據精度的要求,又具有極高的集成度、功耗低、同步采樣、數字接口SPI兼容串口通信、信息收發方便等優點。
體表溫度測量選擇LMT70,它的應用幾乎包括任何需要高性價比、高精度和低功耗的溫度檢測,足以滿足系統設計要求。LMT70具有出色的溫度匹配性能,超線性溫度模擬傳感器可以保證數據的準確性。
運動狀態測量選擇MPU6050。MPU6050內部整合了三軸陀螺儀和三軸加速度傳感器。自帶數字運動處理器DMP,可以使用已有的運動處理資料庫,進行非常方便的姿態解算,降低運動處理運算對操作系統的負荷。
無線傳輸選擇NRF24L01。它采用spi通信,可設置自動應答,相比起IIC的半雙工通信,同步全雙工的通信方式使得數據傳輸更加穩定,相比并行通信方式而言,更加節約GPIO口,且該模塊的成熟度與穩定性都非常好,能滿足系統穩定性的要求。
MPU模塊選擇STM32F103RCT6。TM32F系列屬于中低端的32位ARM微控制器,該系列芯片是意法半導體(ST)公司出品,其內核是Cortex-M3。STM32F103RCT6與C8T6相比具有更多的寄存器,更多的IO口以及更大的內存容量。
3 電路與程序設計
3.1 電路的設計
3.1.1 系統總體框圖
系統總體框圖如圖1所示
3.1.2 電源模塊
出于便攜和穩定的原因,選用干電池獨立為系統供電。其中,經過穩壓模塊LM2596,將電壓降到3.3v。同時,穩壓模塊起到了一定程度的濾波作用,使輸入系統的電壓更加穩定、純凈。
3.1.3 心電模塊
心電模塊內部集成了低壓差線性穩壓器(即LDO)電路,即便壓降電壓小,仍然能穩定、準確供電。并且LDO電路的噪聲低,適用于心電信號的特性。其次,模塊內部將一路輸入連接到右腿驅動上,形成負反饋,能夠有效消除共模干擾。由于心電信號極易受到來自外界、人體自身以及電路的干擾,如基線干擾、工頻干擾等,干擾信號混雜于心電及呼吸信號中,導致有用信號畸變,甚至有時有用信號會完全淹沒在噪聲中,所以相應的濾波去噪處理十分必要。用在1292模塊輸入信號的低通濾波電路[1]。
3.1.4? LMT70測溫模塊
本系統中,直接在硬件上對LMT70芯片進行使能。但由于LMT70向MCU傳輸一個模擬量,對于外部電路要求較高,其供電的噪聲需要盡量減小,故外接了一個LDO電路對其供電,以盡量減小電源噪聲可能存在的干擾,并加上去耦電路緩沖、濾波。
3.1.5 運動狀態監測模塊
MPU6050模塊中集成了一個穩壓電路。采用IIC與外部通訊,其中IIC_SDA和IIC_SCL帶了4.7K上拉電阻,另外MPU_AD0自帶了10K下拉電阻,當AD0懸空時,默認IIC地址為(0x68)。
3.2 程序的設計
3.2.1 程序功能描述與設計思路
程序功能描述:(1)監測:可以實時監測心電數據、體表溫度、運動狀態、輸出心電信號、體表溫度步數和步距。(2)顯示部分:在OLED顯示心率、步數、步距、溫度,在上位機實時更新心電數據和步數。
上位機使用QT進行開發,對串口的數據進行讀取,并將下位機的數據進行解包,繪制心電曲線圖,顯示出從下位機發回的心率等數據[2]。
4 測試結果
4.1 測試條件與儀器
測試條件:要求進行多次檢查,仿真電路和硬件電路必須與系統原理圖完全相同,并且檢查無誤,硬件電路保證無虛焊。
測試儀器:高精度的數字毫伏表、模擬示波器、數字示波器、數字萬用表、指針式萬用表、心電信號模擬器、測溫計。
4.2 測試結果及分析
4.2.1 測試結果(數據)
心率顯示:(如表1)
步數顯示:(如表2)
溫度顯示:(如表3)
4.2.2 測試分析與結論
根據上述測試數據,分析計算可得出以下結論:
(1)上位機顯示正確的心電圖,可看到明顯的R圖以及心率和步數顯示;
(2)心率計算較為準確,誤差不大于1%;
(3)步數以及步距的測量亦較為精準,誤差不大于0.5%;
(4)溫度顯示在誤差范圍之內;
綜上所述,本設計達到設計要求。
5 結論
在本系統中,心率的測算以及心電圖的繪制較為精準,能在上位機上有效地、低誤差地描繪心電圖,且心率的誤差不大于1%。同時,步數以及步距的測量亦較為精準,誤差不大于0.5%。本設計體積較小,額外加入一個OLED顯示屏可實時監測步數、步距以及心率的變化??刂瓢迮c上位機之間傳輸高效并且準確,能夠在上位機中準確繪制出心電圖,且系統功耗較低,效率較高[3]。
參考文獻:
[1] 鄭忠楷,蔣學程,羅志灶.基于QT的串口通信程序設計[J].電子技術與軟件工程,2019(24):236-238.
[2] 肖軍,涂強,林月樺,黃靜敏,羅一立.基于STM32的便攜式混合信號示波器設計[J].工業控制計算機,2019,32(07):140-141+144.
[3] 王儀,羅濤,張宏橋,何湘艷,蔣純志.基于MPU6050傳感器的人體啞鈴動作識別系統的設計[J].湘南學院學報,2020,41(02):121-124.
西華大學,四川 成都