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