基于DSP的心電監(jiān)護(hù)模塊設(shè)計(jì)方案
心臟在機(jī)械收縮之前,心肌預(yù)先發(fā)生電的激動(dòng),并向全身各部位放散,從而在體表的不同部位產(chǎn)生電位差。通過體表把這種變動(dòng)著的電位差按時(shí)間順序描記出來的連續(xù)曲線就是心電圖ECG。
本文引用地址:http://cafeforensic.com/article/257391.htm心電圖是診斷心律失常的最可靠的途徑,其它臨床檢查雖然也可以診斷某些心律失常,但是準(zhǔn)確率不高。通過觀察患者的心電圖,其診斷準(zhǔn)確率幾乎可以達(dá)到100%。心電監(jiān)護(hù)模塊的功能就是實(shí)時(shí)地記錄下病人的心電波形,并進(jìn)行自動(dòng)分析和處理,同時(shí)給出相應(yīng)的結(jié)論。
隨著數(shù)字信號(hào)處理技術(shù)和大規(guī)模集成電路工藝的發(fā)展,單片數(shù)字信號(hào)處理器的功能越來越強(qiáng)大,價(jià)格越來越低,越來越多地被應(yīng)用到人們生產(chǎn)生活的各個(gè)領(lǐng)域。本文介紹一種基于DSP芯片的心電監(jiān)護(hù)模塊的解決方案,討論了它的硬件結(jié)構(gòu)和軟件組成。
該心電監(jiān)護(hù)模塊是一個(gè)以美國德州儀器公司(TI)的TMS320F206為核心的DSP數(shù)據(jù)采集和處理模塊。整個(gè)系統(tǒng)安裝在一塊4層的PCB板上,通過9針RS-232電纜和PC機(jī)進(jìn)行通訊,其原理框圖如圖1所示。其中所有的輸入信號(hào)包括ECG1、ECG2(兩路心電信號(hào))、TEMPI(體溫信號(hào))、RESP(呼吸信號(hào))、LEADOFF(導(dǎo)聯(lián)脫落檢測)、PACE(起博器檢測)等均來自心電信號(hào)前期模擬處理模塊。
1 TMS320F206簡介
TMS320F206(以下簡稱F206)是TI公司于1996年推出的一種性價(jià)比很高的16位定點(diǎn)DSP芯片,運(yùn)算速度為40MIPS。F206體系采用改進(jìn)的哈佛結(jié)構(gòu),將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的總線分開,以便最大限度地提高處理能力。其可尋址空間為224K字(64K字程序空間,64K字?jǐn)?shù)據(jù)空間,64K字I/O空間,32K字全局空間),64K字程序空間中的前32K字可映射到F206片內(nèi)集成的閃爍存儲(chǔ)器(FLASH MEMORY)中,這樣可以通過仿真器對(duì)F206進(jìn)行在線的編程和擦寫。F206片內(nèi)具有4級(jí)流水線結(jié)構(gòu),其指令集專門對(duì)信號(hào)處理中常用的乘-加運(yùn)算作了優(yōu)化,支持單周期的乘法/累加指令;支持存儲(chǔ)器塊搬移指令,以便更好地管理程序和數(shù)據(jù);支持基2的FFT位倒序檢索尋址。
除支持高速運(yùn)算以外,F(xiàn)206還具有眾多的片上外設(shè),主要包括:①軟件可編程定時(shí)器;②用于程序、數(shù)據(jù)、I/O存儲(chǔ)空間的軟件可編程等待狀態(tài)發(fā)生器,便于和低速器件接口;③片內(nèi)振蕩器和鎖相環(huán)(PLL),用于時(shí)鐘選擇×1,×2,×4,÷2;④同步串口,便于和串行CODEC接口;⑤全雙工的異步串口,便于和PC機(jī)通信。
2 硬件組成
該心電監(jiān)護(hù)模塊共有4路輸入:兩路心電信號(hào)ECG1和ECG2、一路體溫信號(hào)TEMPI、一路呼吸信號(hào)RESP,采用分時(shí)采樣的工作方式。由于呼吸信號(hào)和體溫信號(hào)的頻率遠(yuǎn)小于心電信號(hào)的頻率,在確定采樣率時(shí)就以心電信號(hào)為基準(zhǔn)。經(jīng)驗(yàn)表明,在做常規(guī)心電圖時(shí),要求系統(tǒng)的帶寬為100Hz左右,根據(jù)Nyquist采樣定理,采樣頻率必須不低于200Hz??紤]到一定的工作裕量,每個(gè)工作通道的采樣率取250Hz,這樣對(duì)4個(gè)通道而言,總的工作頻率為1kHz。通道切換的工作由一片雙向模擬開關(guān)CD4051來實(shí)現(xiàn),將C、B、A控制端連接到TMS320F206的三根地址線上,通過I/O指令打開相應(yīng)的模擬通道,進(jìn)行信號(hào)的采樣。
信號(hào)的采樣和量化工作由一片ADS774完成。ADS774是美國Burr-Brown公司生產(chǎn)的12位逐次逼近型并行A/D轉(zhuǎn)換器,典型轉(zhuǎn)換時(shí)間為8.5μs,并且有多種工作方式可供用戶選擇。在本心電模塊中我們選用了直通 throughout 模式,僅用兩根控制線R/C和STATUS與TSM320F206接口,其工作原理和時(shí)序如圖2所示。
TMS320F206通過指令在XF引腳上產(chǎn)生一個(gè)寬度大于25ns的低電平脈沖,啟動(dòng)ADS774進(jìn)行一次轉(zhuǎn)換。啟動(dòng)后ADS774的STATUS引腳變?yōu)楦唠娖?,轉(zhuǎn)換結(jié)束后ADS774數(shù)據(jù)線上的數(shù)據(jù)有效,此時(shí)其STATUS引腳跳變回低電平,通過這個(gè)電平跳變觸發(fā)TMS320F206的INT1外部中斷,將12位轉(zhuǎn)換數(shù)據(jù)讀入數(shù)據(jù)存儲(chǔ)器。
由于TMS320F206片內(nèi)的數(shù)據(jù)存儲(chǔ)空間有限,為保存大量的采樣數(shù)據(jù)和運(yùn)算的中間結(jié)果,需增加外部數(shù)據(jù)存儲(chǔ)器;同時(shí)為了在調(diào)試程序時(shí)能夠設(shè)置斷點(diǎn)和進(jìn)行單步操作,也需要增加外部程序存儲(chǔ)器。我們采用了4片日立公司的8位SRAM HM62256-10,兩兩組成16位的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,分別用F206的PS和DS信號(hào)進(jìn)行片選。HM62256-10的典型存取時(shí)間為100ns,而TMS320F206的指令周期為50ns。為節(jié)省硬件等待電路的開支,利用了TMS320F206片內(nèi)的可編程軟件等待狀態(tài)發(fā)生器產(chǎn)生兩個(gè)等待狀態(tài),從而滿足存儲(chǔ)器的操作時(shí)間要求。利用TMS320F206片上集成的全雙工異步串口,可以實(shí)現(xiàn)心電模塊和PC機(jī)的通信。但是RS232電平和TTL電平不兼容,我們使用了一片電平轉(zhuǎn)換芯片MAX202,它采用+5V單電源供電,使用時(shí)只需加幾個(gè)電容,便能完成兩種電平的轉(zhuǎn)換。為防止數(shù)據(jù)在傳輸過程中受到干擾,在輸入輸出端都加上光電耦合器。
R波的精確定位是心電監(jiān)護(hù)模塊的一個(gè)重要功能,它關(guān)系到后面進(jìn)行心率計(jì)算及心律失常分析結(jié)果的正確性。一個(gè)正常人完整的的心電波形由P、Q、R、S、T五個(gè)部分組成,其中R波和T波的幅值相對(duì)較高。心率計(jì)算通常是根據(jù)心電波形中R波的間距來推算得到。但在少數(shù)異常波形中,T波的幅值會(huì)超過R波,如果把T波誤判為R波來進(jìn)行心率計(jì)算,則會(huì)產(chǎn)生很大的誤差。通過對(duì)大量的心電信號(hào)進(jìn)行頻譜分析,發(fā)現(xiàn)R波通常位于0~33Hz的頻率范圍內(nèi),而T波位于0~9Hz的頻率范圍內(nèi)。為了在心率計(jì)算時(shí)消除T波可能引起的干擾,我們?cè)O(shè)計(jì)了一個(gè)有源帶通濾波器,其中心頻率f0=12.867Hz,帶寬B=f0/Q=5.629Hz,下限截止頻率f1=10.3565Hz;上限截止頻率f2=15.9855Hz。標(biāo)準(zhǔn)心電信號(hào)通過該帶通濾波器前后的波形如圖3所示??梢钥闯?,頻率相對(duì)較低的T波有很大的衰減而R波基本保持不變。
3 軟件設(shè)計(jì)
該心電監(jiān)護(hù)模塊的軟件由兩部分組成。一是運(yùn)行在TMS320F206片內(nèi)FLASH MEMORY中的系統(tǒng)監(jiān)控程序,二是運(yùn)行于PC機(jī)端的圖形界面用戶程序。前者對(duì)實(shí)時(shí)性的要求較高,為提高運(yùn)行效率,采用TMS320C2XX匯編語言編寫,經(jīng)匯編、鏈接后在外部程序RAM中調(diào)試,調(diào)試成功后燒寫到TMS320F206的FLASH中。它主要由如下幾個(gè)功能模塊組成:①系統(tǒng)初始化模塊。完成RAM、ADS774、中斷以及定時(shí)器等外設(shè)的初始化設(shè)置;②定時(shí)采樣模塊,進(jìn)行四路信號(hào)的分時(shí)采集,經(jīng)預(yù)處理后存入數(shù)據(jù)RAM;③心率、呼吸率計(jì)算和體溫插值運(yùn)算模塊;④512點(diǎn)心電信號(hào)的基2 FFT運(yùn)算模塊;⑤異步串行通信模塊,實(shí)現(xiàn)與PC機(jī)之間的通信協(xié)議。
下面簡要介紹一下心率計(jì)算模塊的算法。設(shè)dR-R是相鄰兩個(gè)R波的間距(即兩個(gè)R波之間有dR-R個(gè)采樣點(diǎn)),由于心電通道的采樣率為250Hz,所以250÷dR-R即為一秒鐘內(nèi)R波的個(gè)數(shù),60×250÷dR-R即為一分鐘內(nèi)的心跳次數(shù)。因此關(guān)鍵在于對(duì)R波進(jìn)行準(zhǔn)確定位。算法流程如圖4所示。其中F I 為數(shù)據(jù)RAM中最新的1024個(gè)心電信號(hào)值,一次運(yùn)算后, FIFO即被刷新,準(zhǔn)備進(jìn)行下次運(yùn)算。 圖5顯示了R波的定位結(jié)果,X標(biāo)識(shí)出查找到的R波最高點(diǎn)。
為了驗(yàn)證這個(gè)算法的正確性,我們以BIO-TECH心電信號(hào)仿真器產(chǎn)生的標(biāo)準(zhǔn)心電信號(hào)作為測試信號(hào),發(fā)現(xiàn)它對(duì)正常信號(hào)和大部分異常信號(hào)均能準(zhǔn)確地測出心率。
4 模塊調(diào)試過程
整個(gè)心電模塊的調(diào)試過程分三個(gè)階段:①硬件調(diào)試,確保DSP板上的各器件均正常工作,這是進(jìn)行軟件調(diào)試的基礎(chǔ);②TMS320F206端軟件調(diào)試,采用模塊化方法,對(duì)各個(gè)功能編寫相應(yīng)的子程序,分別調(diào)通各個(gè)功能模塊,然后把這些模塊通過接口組裝起來,實(shí)現(xiàn)整個(gè)系統(tǒng)的功能;③圖形用戶界面GUI軟件調(diào)試,與TMS320F206的通訊模塊調(diào)試同時(shí)進(jìn)行,確保數(shù)據(jù)的正確收發(fā),并在此基礎(chǔ)上逐步增加新的功能。
調(diào)試結(jié)束后,用仿真器的FLASH燒寫程序?qū)⒛繕?biāo)代碼通過JTAG口下載到TMS320F206中去,實(shí)現(xiàn)整個(gè)系統(tǒng)的脫機(jī)運(yùn)行。
本系統(tǒng)已經(jīng)達(dá)到設(shè)計(jì)任務(wù)書規(guī)定的要求,但還具有進(jìn)一步擴(kuò)展的潛力。軟件方面,由于采用模塊化設(shè)計(jì),可以方便地增加新的功能模塊,如自相關(guān)處理等;在硬件方面,TMS320F206和外圍芯片的接口邏輯目前是用小規(guī)模集成電路實(shí)現(xiàn),今后可改用PLD或FPGA芯片編程實(shí)現(xiàn)接口邏輯,減少芯片的數(shù)量,提高系統(tǒng)的可靠性。
評(píng)論