摘要: 設(shè)計(jì)了一套實(shí)時(shí)功率譜分析系統(tǒng),主要用于信號(hào)的實(shí)時(shí)功率譜分析。采用DSP 浮點(diǎn)芯片TMS32C6713 作為系統(tǒng)的主處理單元,負(fù)責(zé)進(jìn)行功率譜分析; FPGA 芯片Spartan xc2s200 為主控制單元,并通過CY7C68013 USB 芯片與基于LabVIEW 的上位機(jī)進(jìn)行通信。為了保證系統(tǒng)的實(shí)時(shí)性,在DSP 中使用了實(shí)時(shí)操作系統(tǒng)內(nèi)核DSP/BIOS. 它提供了搶占式多線程、硬件抽象、與寄存器配置等功能。分別采用頻率為25 Hz、100 Hz 的正弦信號(hào)對該系統(tǒng)進(jìn)行標(biāo)定。
?
0 引言
功率譜分析在現(xiàn)代工業(yè)中有著極為廣泛的應(yīng)用[1 - 3],如石油探測、噪聲分析、機(jī)床故障判斷等。針對許多應(yīng)用中對功率譜分析的實(shí)時(shí)性要求,針對工業(yè)中常見信號(hào)的特征,設(shè)計(jì)了該系統(tǒng),該系統(tǒng)在諸多工業(yè)應(yīng)用的功率譜分析中是可以通用的。
以TI DSP 浮點(diǎn)芯片TMS32C6713 為主處理單元,F(xiàn)PGA 芯片Spartan xc2s200 為控制單元,使用CY7C68013 USB 芯片與基于LabVIEW 的上位機(jī)進(jìn)行通信。同時(shí)系統(tǒng)使用了實(shí)時(shí)操作系統(tǒng)內(nèi)核DSP/BIOS. DSP/BIOS 是為集成開發(fā)環(huán)境CCS 開發(fā)的一個(gè)尺寸可伸縮的實(shí)時(shí)內(nèi)核,是為需要實(shí)時(shí)調(diào)度與同步而設(shè)計(jì)的,提供了搶占式多線程,硬件抽象,與寄存器配置等功能[4]。
1 功率譜分析方法
系統(tǒng)的功率譜分析采用了非參量方法。具體流程是先使用漢明窗對信號(hào)截?cái)酁槿舾啥伍L為L 的子信號(hào)段,然后對各子信號(hào)段分別進(jìn)行功率譜估計(jì),最后對各信號(hào)段的功率譜取算數(shù)平均值。對長為L 的子信號(hào)段 的周期圖功率譜估計(jì)方法如下:
2 系統(tǒng)設(shè)計(jì)
2. 1 系統(tǒng)整體設(shè)計(jì)
系統(tǒng)整體設(shè)計(jì)如圖1 所示,F(xiàn)PGA 控制ADC 芯片AD9240 進(jìn)行采樣,當(dāng)ADC 采滿512 ×14 bit 數(shù)據(jù)之后通過通用I /O 口( GPIO) 中斷DSP 芯片,DSP 芯片通過增強(qiáng)型DMA( EDMA) 將數(shù)據(jù)讀入DSP進(jìn)行功率譜估計(jì),DSP 處理完數(shù)據(jù)后將數(shù)據(jù)交給FPGA,F(xiàn)PGA 再通過USB 芯片CY7C68013 將數(shù)據(jù)傳輸給上位機(jī)顯示。
圖1 系統(tǒng)結(jié)構(gòu)
2. 2 濾波放大電路
系統(tǒng)放大濾波電路是由ADA4004 - 4 組成的濾波放大電路,由四階帶通組成,通帶范圍為10 Hz ~ 3 kHz,放大倍數(shù)為1000倍,如圖2 所示。
圖2 帶通濾波放大電路
2. 3 DSP 模塊
DSP 模塊是整個(gè)系統(tǒng)的處理核心。為了保證系統(tǒng)的時(shí)序,使用了實(shí)時(shí)操作系統(tǒng)內(nèi)核DSP/BIOS 進(jìn)行任務(wù)調(diào)度。在DSP/BIOS 中,編寫了3 個(gè)線程: 讀A/D 數(shù)據(jù)的線void AD( ) ,做FFT的線程void FFT( ) ,寫USB 的線程void USB_Write( ) 。3 個(gè)線程之間通過Semaphore 通信。
下面以void USB_Write( ) 線程為例說明:
void USB_Write( )
{
while( 1)
{
SEM_pend( &fftComplish,SYS_FOREVER) ; / /等待FFT 的完成
usbWrite( ( float* ) power,N > > 1) ; / /前面已經(jīng)定義好的函數(shù),將FFT 后的數(shù)據(jù)傳輸走
SEM_post( &usbWriteComplish) ; / /告訴其他線程FFT 后的數(shù)據(jù)已經(jīng)傳輸完成
}
}
ADC 芯片由FPGA 控制,并通過FPGA 讀取采樣后的數(shù)據(jù),當(dāng)FPGA 讀滿大小為512 × 14 bit 的buffer 后中斷DSP,DSP 的線程void AD( ) 通過EDMA 從FPGA 的buffer 讀取512 × 14 bit數(shù)據(jù),讀取完成后觸發(fā)FFT 線程。
FFT 運(yùn)算線程void FFT( ) 負(fù)責(zé)對void AD( ) 讀入的512 ×14 bit數(shù)據(jù)進(jìn)行FFT 變換,并最后轉(zhuǎn)化為功率譜。FFT 模塊是系統(tǒng)計(jì)算量最大的部分,考慮到系統(tǒng)的性能,使用庫DSP67x. lib,調(diào)用它的庫函數(shù)void DSPF_sp_cfftr2_dit( float* x, float* w,short n) 進(jìn)行基2 FFT 計(jì)算。
當(dāng)FFT 線程完成后,會(huì)觸發(fā)void USB_Write( ) 線程,將功率譜分析的結(jié)果傳輸給FPGA,F(xiàn)PGA 再將數(shù)據(jù)傳輸給由FPGA 控制的USB 芯片CY7C 68013。
2. 4 FPGA 模塊
FPGA 模塊使用Verilog HDL ( HDL: Hardware Discription Language) 語言編寫。FPGA 采用Spartan2 系列xc2s200 芯片。該模塊是系統(tǒng)的控制核心,控制著ADC 芯片與USB 芯片,以及通過DSP 的EMIF 接口與DSP 進(jìn)行通信。
對于ADC 芯片,F(xiàn)PGA 通過接受用戶在上位機(jī)設(shè)定的采樣頻率,為ADC 芯片提供該頻率的時(shí)鐘信號(hào),使ADC 芯片工作在該采樣頻率下; 同時(shí)在ADC 時(shí)鐘上升沿到來時(shí)讀取一次數(shù)據(jù)ADC 所采樣的數(shù)據(jù),并存放在FPGA 內(nèi)部,當(dāng)FPGA 采集完512× 14 bit 數(shù)據(jù)之后,中斷DSP 芯片,DSP 芯片將數(shù)讀走。FPGA傳輸數(shù)據(jù)給DSP 的Verilog 代碼如下:
assign EXT_INT = ( data_addr = = 511) ; / /采完512 個(gè)數(shù)后FPGA通過DSP 芯片的外部中斷引腳中斷DSP 芯片
reg[13: 0]TED_o;
always @ ( CE[2] or TEA or dout)
if ( ~ CE[2]&& ( TEA = = 4’b0000) )
TED_o = dout;
assign TED = ( ~ AOE) ? TED_o : 16’bz; / /DSP 芯片讀取FPGA內(nèi)部數(shù)據(jù)
USB 芯片由FPGA 芯片控制。當(dāng)FPGA 收到從DSP 芯片傳輸過來的功率譜分析數(shù)據(jù)后就會(huì)將數(shù)據(jù)交給USB 芯片的端點(diǎn)0 進(jìn)行傳輸,USB 芯片將該數(shù)據(jù)傳輸給LabVIEW 上位機(jī)顯示。
2. 5 USB 模塊
USB 芯片采用了EZ - USB FX2 系列芯片之中的CY7C68013,該芯片符合USB 2. 0 標(biāo)準(zhǔn),可以工作在USB 2. 0 的最大速度下。系統(tǒng)中,USB 芯片工作在slave FIFO 模式下。
2. 6 ADC 模塊
ADC 芯片選擇14 bit 芯片AD9240,由FPGA 為其提供時(shí)鐘。
2. 7 上位機(jī)模塊
上位機(jī)軟件采用LabVIEW 編寫,對功率譜估計(jì)的結(jié)果實(shí)時(shí)顯示。首先,需要安裝NI-VISA,NI-VISA 是一個(gè)用來與各種儀器總線進(jìn)行通訊的高級應(yīng)用編程接口( API) [5 - 6]。安裝完成之后,還需要安裝USB 設(shè)備驅(qū)動(dòng)程序。之后,就可以在Lab-VIEW 上實(shí)現(xiàn)與USB 設(shè)備的通信。
3 系統(tǒng)標(biāo)定
使用SPF20 信號(hào)發(fā)生器產(chǎn)生頻率分別為25 Hz、100 Hz,幅度為0. 5 mV 的正弦波信號(hào)對該功率譜分析系統(tǒng)進(jìn)行標(biāo)定,在上位機(jī)上對ADC 采樣頻率設(shè)定為512 Hz.
圖3 為使用該系統(tǒng)對上述正弦信號(hào)功率譜分析結(jié)果。譜線高度為0. 125 mW/Hz 左右( 由于有噪聲,所以略有浮動(dòng)) ,這與正弦信號(hào)的理論功率譜是吻合的,由此完成系統(tǒng)的標(biāo)定。
圖3 LabVIEW 顯示的正弦信號(hào)的功率譜分析結(jié)果
4 結(jié)束語
利用DSP 芯片與FPGA 芯片設(shè)計(jì)了一套功率譜分析系統(tǒng),并使用了實(shí)時(shí)操作系統(tǒng)內(nèi)核DSP/BIOS,可以保證系統(tǒng)的實(shí)時(shí)性,完全可以滿足對實(shí)時(shí)性要求很高的工業(yè)場合; 同時(shí)該系統(tǒng)使用方便,成本較低,配合各類傳感器,在工業(yè)的許多領(lǐng)域具有很好的使用價(jià)值。
評論