周昱帆,涂國宇,潘鋒偉,劉錦濤,余素萍,夏守行
(浙江溫州科技職業學院信息技術學院,浙江溫州,325003)
這兩年的新型冠狀病毒性肺炎,打亂了整個世界生活秩序,雖然現在已被我們國家控制住,經濟恢復得也很好,但國外有眾多的感染數量。對該型肺炎病人的監護,其中的心電圖(Electrocardiog-ram,ECG)指標是一個重要的評估參考[1]。
根據相關部門推算,我國心血管病患病人數已超2億多,其中腦卒中和冠心病均達上千萬之眾[2]。但是對于檢測此類病的ECG一般也只能去醫院進行檢測,由于心血管病患者以慢性病見多,如果所有檢測均在醫院進行,則醫療公共資源會很緊張,病人的治療費用也升高而增多患者的負擔。
作為一些預防性和慢性病的平常性監測,在普通家庭中能用一種較便宜且實用的儀器檢測一些生命指標,也是一種較實用的較早發現病變趨勢的有效手段。下文將以測量ECG為例,設計制作一個實用的家用心電監護儀,其基本功能是實時顯示ECG,并可擴展存儲和重播等功能。
ECG的基本原理是,心肌在生物電作用下產生規律的跳動,從而在人體表面產生電位變化[3],測量該電位,并形成與時間的曲線,即為ECG,具體見如下文設計。
全電路主要由前置放大、右腿驅動、低通濾波放大、單片機(MCU)、心電顯示、存儲SD卡等組成,如圖1所示,采用常規導聯測量方式,其他導聯方式請查相關資料。

圖1 SCG電路框圖
前置放大器采用專用儀表放大器,具有低噪聲、高輸入阻抗、高共模抑制比的特點,并將右腿驅動電路應用于前置放大端,以消除來自人體的共模干擾。
電路主芯片型號為INA121,為FET輸入、低功耗儀表放大器,其輸入阻抗高達1012Ω,共模抑制比106dB,滿足生物電放大器60dB~80dB的CMRR值要求[4],等效輸入噪聲為(1kHz,Au=100時)。心電信號為不足1mV的弱小信息,因此ECG放大器等效總自噪聲應小于20μV。以單片機AD轉換5V基準電壓計算,ECG放大器總放大倍數Au總計算如下:

如圖2所示的前置放大器放大倍數為Au1:


圖2 前置放大電路
圖2中R1和R2阻值選得較大,可明顯減小皮膚接觸電流,并與C5、C6和C7構成無源低通濾波器,截止頻率一般小于150Hz即可,LA和RA分別為左右臂心電信號。R5取出左右臂的共模信息,送至右腿驅動以進一步減小共模信息。INA121的4和7腳為正負電源端。
U2C及外圍阻容構成INA121的6腳輸出的電壓Vo1動態跟蹤電路,正常情況下INA121的Vo1是以0V電位正負波動的,但可能某些原因,如LA和RA接觸不良或人體本身電位等,Vo1可能正偏了或負偏了,由于U2C是反相接法,通過改變REF端電位,可自動校正正偏或負偏,其時間常數為0.7R6C8=0.7s,選得較長,對心電信號影響很小,最終結果是使波形保持在某一基線上。
如圖3 所示,總體是一個帶通放大器。圖2的INA121雖其本身共模共模抑制比達106dB,但LA和RA檢測線不可能擺放對稱,皮膚接觸電阻也并不相等,且兩輸入端元件也不可能相等。因此仍有一定的干擾信號進入到檢測電路中,特別是50Hz共模信號。為了降低共模干擾的影響,加入了右腿驅動電路。其Pz端取出輸入端有共模信號,經U3B和U3A反相放大,重新通過接至右腿的RL端,作用于人體,則共模信號將相互抵消,從而達到減小共模干擾的目的。

圖3 右腿驅動電路
圖4所示的帶通濾波放大由兩個基本相同的同相放大器組成,帶通,其總放大倍數Au2為:

則全電路總電壓放大倍數為Au1* Au2=6050倍,是符合放大倍數要求。
圖4每個帶通放大低端截止頻率為:

同理算得每個帶通放大高端截止頻率為284Hz。

圖4 帶通濾波放大
單片機采用STC的8G系列,為1T單片機,同等晶振下,比AT89C52快12倍,本電路采用內部晶振,為33MHz,那么相比12MHz晶振的AT89C52快33倍,這樣更容易波形的輸出顯示,以及更能勝任其它任務,電路如圖5所示。

圖5的STC8G1K08A有6路的10位AD轉換輸入口,本電路只采用AD2口P32,P31和P30用作傳統傳輸串口,其余口仍為普通IO口。
P1為程序下載口,需另配USB/TTL轉換口,連至電腦USB口,用STC單片機下載程序軟件stc-isp-15xx-v6.88即可下載程序,注意下載時內部IRC頻率改為33MHz。下載完成后,改接淘晶馳串口屏即可。
(1)初始化程序
void Port_ADC_Ser_int() {
P3M1 = 0x04;//0000 0100B端口配置
P3M0 = 0x00;//0000 0000B端口配置
P5M0 = 0x00;//0000 0000B端口配置
P5M1 = 0x00;//0000 0000B端口配置
P_SW2 |= 0x80;//可以訪問擴展RAM區
ADCTIM=0x3F;//設置ADC時序控制
ADCCFG=0x0F;//ADC配置寄存器
ADC_CONTR=0x82;// ADC控制寄存器
AUXR=0xC0;//定時器1T方式
PCON =0x80;//串口速率加倍
TMOD=0X20;//8位定時器T1
TH1=0xF7;TL1=0xF7;//定時器初值
SCON=0x50;//串口方式1,允許接收
TR1=1;ES=1;EA=1;}//啟動
ADC通道的端口應選擇高阻類型,即ADC端口不能對被測電路電壓有影響,配置值為11、10、01、00時分別對應為開漏、高阻、推挽、雙向,配置值等于P3M1和P3M0相同位置各取一個值,從左至右分別對應P37~P30。上述子程序僅對P32置高阻,其余均為傳統普通雙向IO口。
ADC完成的數據為10位,分別存放在各8位的寄存器ADC_RES、ADC_RESL中,那么就有兩種存放方式,如表1所示:(1)左對齊,把數據的高8位和低2位分別存放在ADC_RES、ADC_RESL中,ADC_RESL的低6位則空余而自動補0,最終ADC_RES和ADC_RESL合成將有16位數據,但有效數據仍為左邊的10位;(2)右對齊,把數據的高2位和低8位分別存放在ADC_RES、ADC_RESL中,ADC_RES的高6位空余而自動補0,ADC_RES和ADC_RESL合成數據雖有16位,但有效也仍為10位數據。

表1 ADCCFG配置
配置寄存器ADCCFG的低4位為AD轉換速度選擇,其值越高轉換則越慢,ADCCFG=0x0F,其意義為數據左對齊,AD轉換速度Sysclk/2/16,Sysclk為系統時鐘。
ADC_CONTR為ADC控制寄存器,如表2所示。Power為ADC電源控制,1為開啟,0為關閉。

表2 ADC_CONTR控制寄存器
Start為1時,啟動ADC;Flag為AD轉換完成標志,完成即自動置1,須軟件清零; Ch3Ch2Ch1Ch0為0101、0100、0011、0010、0001、0000時,ADC輸 入口 對 應 選 擇 P55、P54、P33、P32、P31、P30。ADC_CONTR=0x82=1000 0010B,意思即為開啟ADC電源,選擇P32通道轉換。
ADC完成值送至串口屏顯示,速度越快則波形顯示越完整,同時單片機也可以騰出更多的時間完成其它任務。串口屏支持的波特率有9600、19200、38400、57600、115200、230400、256000、512000、921600等,以上述TH1=0xF7計算,串口波特率為:

上式中,PCON =0x80,即SMOD=1,AUXR= 0xC0,即定時器比傳統AT89C51快12倍,式(6)波特率與230400相近,比傳統9600快24倍。
(2)AD轉換子程序
void ADC_P32() {
ADC_CONTR |= 0x40;//啟動AD轉換
_nop_();_nop_();
while(!(ADC_CONTR&0x20));//ADC 完成
ADC_CONTR &= ~0x20;//清零完成標志
ADC_Val=ADC_RES*256+ADC_RESL;}
//AD轉換值合成,并賦值給變量ADC_Val。
(3)顯示波形子程序
void disp_sine() {
ch0 = ADC_Val/256;//值折算
sprintf(buf,”add 1,1,%d”,ch0);
UART_Send_Str(buf);
UART_Send_END();}
由以上子程序可看出,只須把波形通道值ch0與AD轉換值關連起來即可。
首先要到淘晶馳官網www.tjc1688.com下載界面開發軟件,再到資料中心中下載“STC單片機發正弦波給HMI屏顯示(曲線波形)”例子,在該例子基礎上進行修改即可,如圖6參考修改文字。

圖6 淘晶馳串口屏布局
須要注意的是:淘晶馳串口屏默認波特率為9600,由于前面單片機串口傳輸波特率為230400,則須在Pragram.s頁面處的當前波特率值進行修改,加入上語句“baud=230400”即可。
調試時首先要保證硬件電路是否正常工作,放大器至人體的測量線和導電片或導電夾可采用專用檢測材料,采用導電夾時須在體表上涂抹生理鹽水,以增加導電性。電路供電不建議采用普通開關電源或變壓器降壓整流濾波穩壓供電,以免增大干擾而無法測量,最好用電池供電。
導電片或導電夾接觸體表后,注意人體要安靜穩定,先用示波器測量Vo1、Vo2處是否有正常心電信號,再撤去示波器,并觀察淘晶馳串口屏是否有正常心電信號。實驗效果圖如圖7所示。

圖7 實驗顯示結果
本設計采用了專用低噪聲儀表放大器INA121,簡化了電路,STA8G1K08A-8PIN為8腳小型低價單片機,縮小了電路體積,便于于小型化和低成本,而直接采用淘晶馳串口屏官網的例子,更便于縮短開發周期,淘晶馳串口屏自帶SD卡插口,因此可有存儲和重播功能。經實驗驗證,實現了對心電信號的放大、濾波、AD轉換和顯示,達到實時測量心電信號的技術要求。