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