周昱帆,涂國(guó)宇,潘鋒偉,劉錦濤,余素萍,夏守行
(浙江溫州科技職業(yè)學(xué)院信息技術(shù)學(xué)院,浙江溫州,325003)
這兩年的新型冠狀病毒性肺炎,打亂了整個(gè)世界生活秩序,雖然現(xiàn)在已被我們國(guó)家控制住,經(jīng)濟(jì)恢復(fù)得也很好,但國(guó)外有眾多的感染數(shù)量。對(duì)該型肺炎病人的監(jiān)護(hù),其中的心電圖(Electrocardiog-ram,ECG)指標(biāo)是一個(gè)重要的評(píng)估參考[1]。
根據(jù)相關(guān)部門(mén)推算,我國(guó)心血管病患病人數(shù)已超2億多,其中腦卒中和冠心病均達(dá)上千萬(wàn)之眾[2]。但是對(duì)于檢測(cè)此類(lèi)病的ECG一般也只能去醫(yī)院進(jìn)行檢測(cè),由于心血管病患者以慢性病見(jiàn)多,如果所有檢測(cè)均在醫(yī)院進(jìn)行,則醫(yī)療公共資源會(huì)很緊張,病人的治療費(fèi)用也升高而增多患者的負(fù)擔(dān)。
作為一些預(yù)防性和慢性病的平常性監(jiān)測(cè),在普通家庭中能用一種較便宜且實(shí)用的儀器檢測(cè)一些生命指標(biāo),也是一種較實(shí)用的較早發(fā)現(xiàn)病變趨勢(shì)的有效手段。下文將以測(cè)量ECG為例,設(shè)計(jì)制作一個(gè)實(shí)用的家用心電監(jiān)護(hù)儀,其基本功能是實(shí)時(shí)顯示ECG,并可擴(kuò)展存儲(chǔ)和重播等功能。
ECG的基本原理是,心肌在生物電作用下產(chǎn)生規(guī)律的跳動(dòng),從而在人體表面產(chǎn)生電位變化[3],測(cè)量該電位,并形成與時(shí)間的曲線,即為ECG,具體見(jiàn)如下文設(shè)計(jì)。
全電路主要由前置放大、右腿驅(qū)動(dòng)、低通濾波放大、單片機(jī)(MCU)、心電顯示、存儲(chǔ)SD卡等組成,如圖1所示,采用常規(guī)導(dǎo)聯(lián)測(cè)量方式,其他導(dǎo)聯(lián)方式請(qǐng)查相關(guān)資料。
圖1 SCG電路框圖
前置放大器采用專用儀表放大器,具有低噪聲、高輸入阻抗、高共模抑制比的特點(diǎn),并將右腿驅(qū)動(dòng)電路應(yīng)用于前置放大端,以消除來(lái)自人體的共模干擾。
電路主芯片型號(hào)為INA121,為FET輸入、低功耗儀表放大器,其輸入阻抗高達(dá)1012Ω,共模抑制比106dB,滿足生物電放大器60dB~80dB的CMRR值要求[4],等效輸入噪聲為(1kHz,Au=100時(shí))。心電信號(hào)為不足1mV的弱小信息,因此ECG放大器等效總自噪聲應(yīng)小于20μV。以單片機(jī)AD轉(zhuǎn)換5V基準(zhǔn)電壓計(jì)算,ECG放大器總放大倍數(shù)Au總計(jì)算如下:
如圖2所示的前置放大器放大倍數(shù)為Au1:
圖2 前置放大電路
圖2中R1和R2阻值選得較大,可明顯減小皮膚接觸電流,并與C5、C6和C7構(gòu)成無(wú)源低通濾波器,截止頻率一般小于150Hz即可,LA和RA分別為左右臂心電信號(hào)。R5取出左右臂的共模信息,送至右腿驅(qū)動(dòng)以進(jìn)一步減小共模信息。INA121的4和7腳為正負(fù)電源端。
U2C及外圍阻容構(gòu)成INA121的6腳輸出的電壓Vo1動(dòng)態(tài)跟蹤電路,正常情況下INA121的Vo1是以0V電位正負(fù)波動(dòng)的,但可能某些原因,如LA和RA接觸不良或人體本身電位等,Vo1可能正偏了或負(fù)偏了,由于U2C是反相接法,通過(guò)改變REF端電位,可自動(dòng)校正正偏或負(fù)偏,其時(shí)間常數(shù)為0.7R6C8=0.7s,選得較長(zhǎng),對(duì)心電信號(hào)影響很小,最終結(jié)果是使波形保持在某一基線上。
如圖3 所示,總體是一個(gè)帶通放大器。圖2的INA121雖其本身共模共模抑制比達(dá)106dB,但LA和RA檢測(cè)線不可能擺放對(duì)稱,皮膚接觸電阻也并不相等,且兩輸入端元件也不可能相等。因此仍有一定的干擾信號(hào)進(jìn)入到檢測(cè)電路中,特別是50Hz共模信號(hào)。為了降低共模干擾的影響,加入了右腿驅(qū)動(dòng)電路。其Pz端取出輸入端有共模信號(hào),經(jīng)U3B和U3A反相放大,重新通過(guò)接至右腿的RL端,作用于人體,則共模信號(hào)將相互抵消,從而達(dá)到減小共模干擾的目的。
圖3 右腿驅(qū)動(dòng)電路
圖4所示的帶通濾波放大由兩個(gè)基本相同的同相放大器組成,帶通,其總放大倍數(shù)Au2為:
則全電路總電壓放大倍數(shù)為Au1* Au2=6050倍,是符合放大倍數(shù)要求。
圖4每個(gè)帶通放大低端截止頻率為:
同理算得每個(gè)帶通放大高端截止頻率為284Hz。
圖4 帶通濾波放大
單片機(jī)采用STC的8G系列,為1T單片機(jī),同等晶振下,比AT89C52快12倍,本電路采用內(nèi)部晶振,為33MHz,那么相比12MHz晶振的AT89C52快33倍,這樣更容易波形的輸出顯示,以及更能勝任其它任務(wù),電路如圖5所示。
圖5的STC8G1K08A有6路的10位AD轉(zhuǎn)換輸入口,本電路只采用AD2口P32,P31和P30用作傳統(tǒng)傳輸串口,其余口仍為普通IO口。
P1為程序下載口,需另配USB/TTL轉(zhuǎn)換口,連至電腦USB口,用STC單片機(jī)下載程序軟件stc-isp-15xx-v6.88即可下載程序,注意下載時(shí)內(nèi)部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;//可以訪問(wèn)擴(kuò)展RAM區(qū)
ADCTIM=0x3F;//設(shè)置ADC時(shí)序控制
ADCCFG=0x0F;//ADC配置寄存器
ADC_CONTR=0x82;// ADC控制寄存器
AUXR=0xC0;//定時(shí)器1T方式
PCON =0x80;//串口速率加倍
TMOD=0X20;//8位定時(shí)器T1
TH1=0xF7;TL1=0xF7;//定時(shí)器初值
SCON=0x50;//串口方式1,允許接收
TR1=1;ES=1;EA=1;}//啟動(dòng)
ADC通道的端口應(yīng)選擇高阻類(lèi)型,即ADC端口不能對(duì)被測(cè)電路電壓有影響,配置值為11、10、01、00時(shí)分別對(duì)應(yīng)為開(kāi)漏、高阻、推挽、雙向,配置值等于P3M1和P3M0相同位置各取一個(gè)值,從左至右分別對(duì)應(yīng)P37~P30。上述子程序僅對(duì)P32置高阻,其余均為傳統(tǒng)普通雙向IO口。
ADC完成的數(shù)據(jù)為10位,分別存放在各8位的寄存器ADC_RES、ADC_RESL中,那么就有兩種存放方式,如表1所示:(1)左對(duì)齊,把數(shù)據(jù)的高8位和低2位分別存放在ADC_RES、ADC_RESL中,ADC_RESL的低6位則空余而自動(dòng)補(bǔ)0,最終ADC_RES和ADC_RESL合成將有16位數(shù)據(jù),但有效數(shù)據(jù)仍為左邊的10位;(2)右對(duì)齊,把數(shù)據(jù)的高2位和低8位分別存放在ADC_RES、ADC_RESL中,ADC_RES的高6位空余而自動(dòng)補(bǔ)0,ADC_RES和ADC_RESL合成數(shù)據(jù)雖有16位,但有效也仍為10位數(shù)據(jù)。
表1 ADCCFG配置
配置寄存器ADCCFG的低4位為AD轉(zhuǎn)換速度選擇,其值越高轉(zhuǎn)換則越慢,ADCCFG=0x0F,其意義為數(shù)據(jù)左對(duì)齊,AD轉(zhuǎn)換速度Sysclk/2/16,Sysclk為系統(tǒng)時(shí)鐘。
ADC_CONTR為ADC控制寄存器,如表2所示。Power為ADC電源控制,1為開(kāi)啟,0為關(guān)閉。
表2 ADC_CONTR控制寄存器
Start為1時(shí),啟動(dòng)ADC;Flag為AD轉(zhuǎn)換完成標(biāo)志,完成即自動(dòng)置1,須軟件清零; Ch3Ch2Ch1Ch0為0101、0100、0011、0010、0001、0000時(shí),ADC輸 入口 對(duì) 應(yīng) 選 擇 P55、P54、P33、P32、P31、P30。ADC_CONTR=0x82=1000 0010B,意思即為開(kāi)啟ADC電源,選擇P32通道轉(zhuǎn)換。
ADC完成值送至串口屏顯示,速度越快則波形顯示越完整,同時(shí)單片機(jī)也可以騰出更多的時(shí)間完成其它任務(wù)。串口屏支持的波特率有9600、19200、38400、57600、115200、230400、256000、512000、921600等,以上述TH1=0xF7計(jì)算,串口波特率為:
上式中,PCON =0x80,即SMOD=1,AUXR= 0xC0,即定時(shí)器比傳統(tǒng)AT89C51快12倍,式(6)波特率與230400相近,比傳統(tǒng)9600快24倍。
(2)AD轉(zhuǎn)換子程序
void ADC_P32() {
ADC_CONTR |= 0x40;//啟動(dòng)AD轉(zhuǎn)換
_nop_();_nop_();
while(!(ADC_CONTR&0x20));//ADC 完成
ADC_CONTR &= ~0x20;//清零完成標(biāo)志
ADC_Val=ADC_RES*256+ADC_RESL;}
//AD轉(zhuǎn)換值合成,并賦值給變量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轉(zhuǎn)換值關(guān)連起來(lái)即可。
首先要到淘晶馳官網(wǎng)www.tjc1688.com下載界面開(kāi)發(fā)軟件,再到資料中心中下載“STC單片機(jī)發(fā)正弦波給HMI屏顯示(曲線波形)”例子,在該例子基礎(chǔ)上進(jìn)行修改即可,如圖6參考修改文字。
圖6 淘晶馳串口屏布局
須要注意的是:淘晶馳串口屏默認(rèn)波特率為9600,由于前面單片機(jī)串口傳輸波特率為230400,則須在Pragram.s頁(yè)面處的當(dāng)前波特率值進(jìn)行修改,加入上語(yǔ)句“baud=230400”即可。
調(diào)試時(shí)首先要保證硬件電路是否正常工作,放大器至人體的測(cè)量線和導(dǎo)電片或?qū)щ妸A可采用專用檢測(cè)材料,采用導(dǎo)電夾時(shí)須在體表上涂抹生理鹽水,以增加導(dǎo)電性。電路供電不建議采用普通開(kāi)關(guān)電源或變壓器降壓整流濾波穩(wěn)壓供電,以免增大干擾而無(wú)法測(cè)量,最好用電池供電。
導(dǎo)電片或?qū)щ妸A接觸體表后,注意人體要安靜穩(wěn)定,先用示波器測(cè)量Vo1、Vo2處是否有正常心電信號(hào),再撤去示波器,并觀察淘晶馳串口屏是否有正常心電信號(hào)。實(shí)驗(yàn)效果圖如圖7所示。
圖7 實(shí)驗(yàn)顯示結(jié)果
本設(shè)計(jì)采用了專用低噪聲儀表放大器INA121,簡(jiǎn)化了電路,STA8G1K08A-8PIN為8腳小型低價(jià)單片機(jī),縮小了電路體積,便于于小型化和低成本,而直接采用淘晶馳串口屏官網(wǎng)的例子,更便于縮短開(kāi)發(fā)周期,淘晶馳串口屏自帶SD卡插口,因此可有存儲(chǔ)和重播功能。經(jīng)實(shí)驗(yàn)驗(yàn)證,實(shí)現(xiàn)了對(duì)心電信號(hào)的放大、濾波、AD轉(zhuǎn)換和顯示,達(dá)到實(shí)時(shí)測(cè)量心電信號(hào)的技術(shù)要求。