用于胎兒心電信號測量的嵌入式數據處理系統(tǒng)研究
目前提取胎兒心電最常用的是自適應濾波方法。自適應濾波器是一種能夠自己調整參數的特殊維納濾波器,設計時不需要預先知道輸入信號和噪聲的統(tǒng)計學特性,而是在工作過程中通過計算估計出所需的統(tǒng)計特性,并且以此為依據調節(jié)參數,以達到最佳的濾波效果[1]。當輸入信號的統(tǒng)計特性發(fā)生改變時,它又能夠跟蹤這種變化自動調整系數,使濾波器的性能重新達到最佳。應用中一般把母親腹部的信號作為主輸人,胸部信號作為參考噪聲輸入。由于母親自己心電信號x(n)與母親胎兒混合信號d(n)的提取時間不同,使得其在時域內是非對應關系。若直接將兩個信號相減,則得到的不是胎兒的信號,但通過自適應濾波器的自動調整過程,將y(n)變成基于d(n)的對x(n)的估計,使得新的混合信號在時域上與母親信號有了某種的對應關系,從而直接將d(n)-y(n)得到胎兒信號。
除了提取胎兒的心電信號外,還需對處理后的胎兒心電信號進行提取特征值等進一步的處理與分析,一般為對心電波的平滑和各個特征點的檢測。雖然使用基于神經網絡算法及其他的基于統(tǒng)計學原理的方法能得到精確的測量結果,但是由于其軟件算法的復雜度較高,會帶來實時性差、能耗高等一系列問題。通用的設計方法是用差分闕值法檢測特征值,闕值的選取是先驗的,并且提取的信息實際上不是特征點的信息,而是由特征點所確定的各個時期的波形信息,如心率的確定是通過兩個相鄰周期內R點的間隔時間確定的。
為了實現(xiàn)上述功能,本文設計了嵌入式的心電信號處理系統(tǒng),完成對信號的濾波、分析處理過程,以滿足心電數據處理的高速度、高實時性要求,并且能夠做到對胎兒信號實時監(jiān)測。
1 系統(tǒng)硬件設計
1.1 系統(tǒng)性能與選型
(1)DSP
自適應濾波器要求的計算量比較高,并且由于要求實時測量,所以運算數據量極大,對處理器的要求很高,一般的單片機很難滿足要求,因此需要高性能的DSP芯片來實現(xiàn)。如果抽頭為51 200,階數L=5,每次抽頭采取5個乘加運算(MAC),則一共要采樣51 200×5=256 000個;若用200Hz采樣率,采樣間隔為1/200=5ms,以所選取的TI公司的TMS320VC5402為例,進行一次MAC為10ns,則一次濾波運算的數據運算時間是256 000×10=2.5ms,由此可以看到C54完全可以滿足系統(tǒng)實時性的要求。
TI公司的定點數字信號處理器TMS320VC5402含有專門的功耗控制功能,具有很低的靜態(tài)功耗;改進的哈佛結構,多總線(1條程序總線,3條數據總線和4條地址總線)和6級流水線,有40位的算術邏輯運算單元(ALU),包括2個獨立的40位累加器和1個40位的桶形移位寄存器,指令周期為10ns,運算速度為100MIPS,并且具有強大的尋址能力,1M×16bit的最大尋址外部空間,內置16K×16bit RAM,4K×16bit ROM,其乘法單元和加法單元可以在一個流水線狀態(tài)周期內完成一次MAC運算,數據處理能力強,支持JTAG硬件仿真[3]。
(2)MCU
從信號特征上來說,心電信號時域特征(波形的輪廓)明顯,幅度比較微弱(mV級),正常人心臟每分鐘跳動65~75 次左右,也就是說,它的頻率不到1Hz。但對于一些心臟病人來說,其諧波分量(QRS波群)頻率可能達到100Hz,這就表明采樣頻率不會過高,一般在200Hz左右[2]。
心電信號的處理對于精度沒有很高的要求,一般8位左右的A/D就可以滿足系統(tǒng)需要,出于簡化電路考慮,實際選用較多的是MCU片上A/D。綜上所述,本文選用了TI公司的MSP430F169,其含有一個片內的12位A/D,還有一個12位D/A,能夠方便地將處理后的數據轉化為模擬信號。
MSP430系列單片機是TI公司推出的一種超低功耗的混合信號控制器,具有16位的RISC結構,極高的代碼運行效率,豐富的外設資源,并且支持JTAG和FLASH在線編程[4]。
①極低功耗。給單片機供電的電壓可低到2.5V;工作電流低,在3V供電、1MHz情況下僅消耗電流0.4mA;該系列具有5 種節(jié)能模式, 在閑置模式下的電流值是0.1LA。
②運算能力強。MSP430F169基于16位RISC結構,內部帶有硬件乘法器,可以執(zhí)行16×16 位的帶符號數或不帶符號數乘法運算。
③片內資源豐富。在MSP430F169內部集成了A/D、LCD驅動電路、16位定時器、看門狗和串行口(UART)以及專用的可編程I/O口等,片內集成2KB的RAM和60KB的ROM。
(3)存儲器
為了增強系統(tǒng)的擴展性和提高DSP的處理能力,系統(tǒng)增加了外置的FLASH和SRAM。C54x系列DSP只能同異步的存儲器直接相接,并且TMS320VC5402的指令周期為10ns。為保證DSP無等待運行,需要外部存儲器的速度10ns左右,考慮現(xiàn)有芯片的性價比做如下選擇:
FLASH:AM29LV400-55,256K×16bit/512×8bit,指令周期55ns,電源電壓3.3V(加入5個軟件等待);
SRAM: CY7C1021V33-12,64K×16bit,指令周期12ns,電源電壓3.3V(加入1個等待)。
(4)電源
良好穩(wěn)定的電源是電路正常工作的保證,對于DSP這樣的高端處理器,還需要滿足其對內核和IO不同的上電順序,這里特別選用了TI公司專門為DSP設計的電源芯片TPS73HD318,5V輸入1.8/3.3V混合輸出,并且配備了專門的復位芯片。
1.2 系統(tǒng)架構
本系統(tǒng)構建以TI公司的MSP430F169為核心,TMS320VC5402為運算單元,系統(tǒng)硬件框圖如圖1所示。
系統(tǒng)中MSP430F169作為MCU,控制整個電路的工作,DSP負責邏輯運算。為了能夠更加有效地發(fā)揮DSP的運算能力,分別采用了FLASH和SRAM芯片擴展DSP的數據空間和存儲空間,并且用CPLD對存儲空間的映射進行控制,以達到對映射地址動態(tài)控制的目的。
1.3 通信模塊設計
系統(tǒng)設計的核心是MSP430和TMS320VC5402連接通信問題,本文采用主機接口(HPI)通信模式。HPI是一個8位的并行口,MSP430可以方便地通過這個接口訪問DSP整個數據空間,直接由DSP的硬件流水進行優(yōu)化,沒有多余的開銷。連接方式如圖2所示。
[!--empirenews.page--]
HPI有兩種工作模式:
(1)共用訪問模式(SAM)。此狀態(tài)下MSP430和DSP都可以訪問HPI存儲器,如果二者的讀取周期發(fā)生了沖突,主機(MSP430)有優(yōu)先權。
(2)僅主機訪問模式(HOM)。在此模式下只有主機(MSP430)可以訪問HPI存儲器,DSP處于復位狀態(tài)或最小功耗狀態(tài)。
其中8位數據總線(HD0~HD7)負責與主機交換信息,因為TMS320VC5402接口為16位,所以主機與DSP之間數據傳輸由2個連續(xù)的字節(jié)組成。由HBIL引腳指示正在傳輸的是高8位還是低8位。主機通過HCNTL0和HCNTL1指定所訪問的寄存器是控制寄存器HPIC、地址寄存器HPIA還是數據寄存器HPID。HPIA寄存器還可以被設置為自動增尋址方式,以提高對連續(xù)地址訪問操作的效率。HCS是片選信號,在主機訪問HPI時必須保持為低。HAS是地址選通信號,一般用作地址鎖存或不用(接高電平)。HR/W為讀寫選通信號,用來確定數據傳輸的方向。和是數據選通信號,用于在主機訪問周期控制數據的傳輸。當沒有使用信號,并且HCS信號處于低電平時,或可用于對HBIL、HCNTL0/1和HR/W信號的采樣。因為HDS1和HDS2內部互斥,所以不能同時將和置低。硬件連接示意圖如圖3所示。
1.4 外置存儲器設計
為了增強系統(tǒng)的擴展性及擴展DSP存儲空間,特增加了外置FLASH和SRAM,并由CPLD控制二者與DSP之間的時序關系。圖4為外接存儲器系統(tǒng)的硬件框圖。
CPLD配備了JTAG接口,便于程序燒錄和日后修改。由于CPLD的時序嚴格,并且速度快、易編程,非常適于用作接口邏輯控制芯片。本設計采用了Alreta公司的EPM7032S芯片,利用DSP的MSTRB和R/W控制SRAM和FLASH的OE與WE的選通,A15、DS和XF控制FLASH的選通,PS和A19控制SRAM的選通。
VHDL語言描述如下:
OE<=‘0’when (mstrb=‘0’and rw=‘1’) else‘1’;
WE<=‘0’when (mstrb=‘0’and rw=‘0’) else‘1’;
CE(sram)<=‘0’ when(ps=‘0’and A19=‘0’) else ‘1’;
CE(flash)<=‘0’ when(ps=‘0’and xf=‘0’ and a19= ‘1’) or (ds=‘0 and xf=‘1 and a19=‘0’) else‘1’;
為了減少每次開機時的工作量,將處理程序(自適應LMS算法)燒入了FLASH中,并在系統(tǒng)復位時由編寫的Bootloader自動將外部FLASH中的程序寫入DSP內部的DRAM中,采用了在線燒制的方式。具體實現(xiàn)方式不再給出。編寫時要注意復位時內部RAM的映射問題,因為復位時DSP自動將OVLY置1[3],將內部的RAM映射到所有數據空間的每一頁的0080~3fff中,所以實際編寫B(tài)ootloader時程序寫入數據空間的起始地址應當為4000。
復位后FLASH映射到數據空間的0000~ffff,SRAM映射到程序空間的0000~ffff上,待燒錄完成后,由通用IO引腳XF控制映射到程序空間的80000~bffff。數據空間由內部和外部RAM獨占。 [!--empirenews.page--]
2 系統(tǒng)軟件設計
單片機與DSP軟件通信流程如圖5所示。由于本系統(tǒng)中的位已置1,所以實際通過軟件控制位置1和置0來完成每個讀寫周期。DSP的工作流程與其正好相反,一旦接受到MSP430傳來的中斷信號,便馬上進入中斷子程序,從發(fā)送來的地址中取出數據進行運算處理,完成后對其取反后存在相同的地址內,之后置位HINT中斷單片機,退出中斷子程序。
系統(tǒng)總軟件流程由圖6所示。MSP430采集完數據后,進入HPI發(fā)送子程序,發(fā)送完數據后進入低功耗模式等待DSP的處理結果,并將其顯示出來;DSP上電后進入低功耗狀態(tài),待MSP430將數據傳遞完后啟動濾波算法對數據進行處理,待處理結束后將結果傳回到MSP430中,重新進入低功耗狀態(tài)等待下一次中斷。
3 結果分析
圖7為對實際采集的母嬰混合心電信號和母親自身信號進行分析處理后的實時數據,通過Matlab儀表控制工具箱中的Serial類函數及其相關函數,讀取串口發(fā)送的數據,并繪制得到。該類函數操作雖然效率一般并且對中斷的響應比較差,但是對于本文所用的串口數據的讀取處理,有著操作簡單、直觀的優(yōu)點。具體過程如下:
(1)創(chuàng)建串行口設備對象Serial();
(2)設置波特率=9 600,幀格式(停止位=0,數據位=8,校驗位=0等);
(3)設置具體函數,完成與硬件系統(tǒng)的連接和之間的數據交換;
(4)設置關閉和刪除設備對象函數。
設置過程比較簡單,不再給出詳細的程序,具體設置方法見參考文獻6。
通過對輸入和輸出心電波形比較可以看到,輸出波形失真度低,特征點對應準確。結果表明系統(tǒng)可以滿足設計要求,轉換精度高,實時性很好。
本文通過對胎兒及母嬰心電混合信號特點的討論,給出了一整套的嵌入式數據處理解決方案,不但滿足了信號處理的大運算量、高實時性的要求,還具備了便攜特點,有很高的實用價值。