基于ARM7 TDMI核的MCU ADuC7020的單電源心電檢測(cè)系統(tǒng)設(shè)計(jì)
心電信號(hào)采集系統(tǒng)的基本架構(gòu)如圖1所示。人體的心電信號(hào)經(jīng)電極和專用導(dǎo)聯(lián)線從人體送至系統(tǒng)。通過濾波和放大調(diào)節(jié)電路,微弱的心電信號(hào)被放大到合適的幅值,并處于A/D轉(zhuǎn)換范圍之內(nèi)。
系統(tǒng)的控制和數(shù)據(jù)的處理由ADI公司基于ARM7 TDMI核的MCU ADuC7020來完成。這款芯片有豐富的片內(nèi)外圍電路,處理速度高達(dá)40MIPS,A/D轉(zhuǎn)換速度可達(dá)1MSPS,具有很高的性價(jià)比。最后將結(jié)果由 ADuC7020通過UART口送至計(jì)算機(jī),由計(jì)算機(jī)通過由LabVIEW編寫的界面將結(jié)果直觀地顯示出來或存儲(chǔ)下來。圖2是基本的硬件電路圖。
圖1:心電信號(hào)采集系統(tǒng)的基本架構(gòu)。 |
從人體或是心電信號(hào)發(fā)生器上采集到的心電信號(hào)幅值在0.05~5mV之間(一般為2mV),頻率在0.05Hz~75Hz之間。心電信號(hào)要經(jīng)過緩沖、匹配電阻網(wǎng)絡(luò)、電壓放大和濾波等幾級(jí)電路。
心電信號(hào)首先經(jīng)過一個(gè)兩級(jí)的RC低通濾波電路,進(jìn)入緩沖級(jí)。信號(hào)進(jìn)入系統(tǒng)之前,需要除去高頻分量,因此這里設(shè)計(jì)了一個(gè)截止頻率為300Hz的低通濾波器,以保證0.05~75Hz的微弱心電信號(hào)不會(huì)被衰減。緩沖級(jí)由電壓跟隨器組成,它可以提高整個(gè)放大電路的輸入阻抗,降低輸出阻抗。為保證差分信號(hào)的一致性,應(yīng)選用集成在芯片上的放大器。匹配電阻網(wǎng)絡(luò)通常采用威爾遜電中心端網(wǎng)絡(luò),它通過特定的電阻網(wǎng)絡(luò)獲得威爾遜電中心端作為整個(gè)ECG系統(tǒng)的參考點(diǎn)。
濾波放大電路的前級(jí)采用負(fù)反饋差分放大電路,這里使用ADI公司可調(diào)增益高共模抑制比的儀表放大器AD8221作為前級(jí)放大器。放大倍數(shù)設(shè)為8倍,由公式G=49.4kΩ/RG+1計(jì)算得到,其中RG是AD8221兩個(gè)RG管腳之間的電阻值。
圖2:基本的硬件電路。 |
這個(gè)電阻應(yīng)當(dāng)選用高精度、低溫漂的金屬膜電阻,以保證AD8221的低噪聲性能。AD8221的REF管腳沒有接地,而是和一個(gè)低通濾波器構(gòu)成負(fù)反饋回路,以便能有效地濾除直流分量,從而使U1處的電壓始終箝位在1.25V。因?yàn)槭?strong>單電源供電,而不同導(dǎo)聯(lián)的心電信號(hào)電壓有正有負(fù),所以一定要提供一個(gè)合適的箝位電壓。ADuC7020的AD轉(zhuǎn)換模式下電壓輸入范圍是0-2.5V,這里就選擇中間值1.25V作為箝位電壓。
AD8221輸出的單端信號(hào)幅值非常小,其中還混有大量干擾,無法進(jìn)行數(shù)據(jù)處理。后級(jí)濾波放大電路由一個(gè)增益較大的有源低通組成,增益可調(diào)。不同人的心電信號(hào)強(qiáng)弱不一樣,考慮到有衰減,一般將該增益設(shè)為150倍。系統(tǒng)的傳遞函數(shù)為:
從保護(hù)病人和提高系統(tǒng)的共模抑制比兩方面考慮,必須將共模信號(hào)反相并放大后,再反饋給人體,這樣系統(tǒng)和人體就共同構(gòu)成了一個(gè)電壓并聯(lián)負(fù)反饋網(wǎng)絡(luò),即通常所說的右腿驅(qū)動(dòng)電路。由ADuC7020對(duì)處理后的心電信號(hào)進(jìn)行AD轉(zhuǎn)換,選擇定時(shí)器控制的ADC采樣模式。一次A/D轉(zhuǎn)換結(jié)束,觸發(fā)ADC中斷,在中斷服務(wù)程序中對(duì)數(shù)字信號(hào)進(jìn)行處理。
圖3:數(shù)據(jù)處理的基本步驟。 |
處理心電數(shù)字信號(hào)的關(guān)鍵是對(duì)心電信號(hào)中QRS復(fù)波的精確識(shí)別。正常人的QRS波群的寬度為0.06至0.10秒,且不受心律變化的影響。針對(duì)R波很尖銳的特點(diǎn),我們通過一個(gè)滑動(dòng)時(shí)間窗判斷信號(hào)峰、谷是否滿足要求,同時(shí)確認(rèn)其是否在時(shí)間窗內(nèi)。對(duì)信號(hào)幅值的閾值采用雙可變閾值法,即對(duì)波形設(shè)置波峰閾值和波谷閾值。如果峰閾值和谷閾值在一段適當(dāng)時(shí)間內(nèi)有較大變化,則重新設(shè)置峰閾值和谷閾值。下面我們將對(duì)QRS復(fù)波定位和心律計(jì)算進(jìn)行討論。對(duì)起始一段時(shí)間的信號(hào)只進(jìn)行反相和濾波處理,這是為了將倒置的心電信號(hào)恢復(fù)過來,并避免信號(hào)初期的波動(dòng)影響閾值。然后在一定的時(shí)期內(nèi),根據(jù)采樣得到的數(shù)據(jù)設(shè)置峰閾值Thpeak 和谷閾值THtrough,然后對(duì)QRS波進(jìn)行定位。最后,按以下步驟(見圖3)進(jìn)行數(shù)據(jù)處理。
讀取新采樣點(diǎn)Ni:
1)判斷采樣的信號(hào)點(diǎn)幅值是否大于峰閾值Thpeak。如果不滿足,則回到第1)步。
2)如果滿足條件,則開始計(jì)數(shù)n=1,并記錄n值為peaktime1。將時(shí)間窗的起始邊滑至此處。
3)繼續(xù)采樣Ni+1,每采樣一次則n+1。
4)判斷新的采樣點(diǎn)Ni+1是否小于谷閾值。如果不滿足,則回到第4)步。
5)如果滿足采樣點(diǎn)小于谷閾值Thtrough,則記錄該點(diǎn)的n值為troughtime1。
6判斷這兩次滿足幅值要求的信號(hào)點(diǎn)時(shí)刻troughtime1和peaktime1之差是否在時(shí)間窗內(nèi),即是否小于窗寬度THtime。如果不小于THtime,則回到第1)步。
7)如果滿足,則這段信號(hào)被認(rèn)為是一個(gè)QRS波群。Peaktime1就被定位為一個(gè)R波。
有了定位的R波,就可以在此基礎(chǔ)上按以下步驟統(tǒng)計(jì)心率:1)找到第一個(gè)R波,并記錄n值為peaktime1;2)找到第二個(gè)R波,并記錄n值為peaktime2;3)按照以下公式計(jì)算心律。