周 權,蓋淑萍,林楠森,周基陽,徐聲偉,劉軍濤,蔡新霞
(1.中國科學院電子學研究所,傳感技術聯(lián)合國家重點實驗室,北京 100190;2.中國科學院大學,北京 100190)
?
基于DSP與FPGA的實時功率譜分析儀
周 權1,2,蓋淑萍1,2,林楠森1,周基陽1,2,徐聲偉1,劉軍濤1,蔡新霞1,2
(1.中國科學院電子學研究所,傳感技術聯(lián)合國家重點實驗室,北京 100190;2.中國科學院大學,北京 100190)
設計了一套實時功率譜分析系統(tǒng),主要用于信號的實時功率譜分析。采用DSP浮點芯片TMS32C6713作為系統(tǒng)的主處理單元,負責進行功率譜分析;FPGA芯片 Spartan xc2s200為主控制單元,并通過CY7C68013 USB芯片與基于LabVIEW的上位機進行通信。為了保證系統(tǒng)的實時性,在DSP中使用了實時操作系統(tǒng)內核DSP/BIOS.它提供了搶占式多線程、硬件抽象、與寄存器配置等功能。 分別采用頻率為25 Hz、100 Hz的正弦信號對該系統(tǒng)進行標定。
DSP;FPGA;LabVIEW;功率譜分析;實時性;DSP/BIOS
功率譜分析在現(xiàn)代工業(yè)中有著極為廣泛的應用[1-3],如石油探測、噪聲分析、機床故障判斷等。針對許多應用中對功率譜分析的實時性要求,針對工業(yè)中常見信號的特征,設計了該系統(tǒng),該系統(tǒng)在諸多工業(yè)應用的功率譜分析中是可以通用的。
以TI DSP浮點芯片TMS32C6713為主處理單元,F(xiàn)PGA芯片 Spartan xc2s200為控制單元,使用CY7C68013 USB芯片與基于LabVIEW的上位機進行通信。同時系統(tǒng)使用了實時操作系統(tǒng)內核DSP/BIOS.DSP/BIOS是為集成開發(fā)環(huán)境CCS開發(fā)的一個尺寸可伸縮的實時內核,是為需要實時調度與同步而設計的,提供了搶占式多線程,硬件抽象,與寄存器配置等功能[4]。
系統(tǒng)的功率譜分析采用了非參量方法。具體流程是先使用漢明窗對信號截斷為若干段長為L的子信號段,然后對各子信號段分別進行功率譜估計,最后對各信號段的功率譜取算數(shù)平均值。對長為L的子信號段XL[n]的周期圖功率譜估計方法如下:
(1)
(2)
(3)
2.1 系統(tǒng)整體設計
系統(tǒng)整體設計如圖1所示,F(xiàn)PGA控制ADC芯片AD9240進行采樣,當ADC采滿512×14 bit 數(shù)據(jù)之后通過通用I/O口(GPIO)中斷DSP芯片,DSP芯片通過增強型DMA(EDMA)將數(shù)據(jù)讀入DSP進行功率譜估計,DSP處理完數(shù)據(jù)后將數(shù)據(jù)交給FPGA,F(xiàn)PGA再通過USB芯片CY7C68013將數(shù)據(jù)傳輸給上位機顯示。
圖1 系統(tǒng)結構
2.2 濾波放大電路
系統(tǒng)放大濾波電路是由 ADA4004-4 組成的濾波放大電路,由四階帶通組成,通帶范圍為 10 Hz~3 kHz,放大倍數(shù)為1 000倍,如圖2所示。
圖2 帶通濾波放大電路
2.3 DSP模塊
DSP模塊是整個系統(tǒng)的處理核心。為了保證系統(tǒng)的時序,使用了實時操作系統(tǒng)內核DSP/BIOS進行任務調度。在DSP/BIOS中,編寫了3個線程:讀A/D數(shù)據(jù)的線void AD(),做FFT的線程void FFT(),寫USB的線程 void USB_Write()。3個線程之間通過Semaphore通信。
下面以void USB_Write()線程為例說明:
void USB_Write()
{
while(1)
{
SEM_pend(&fftComplish,SYS_FOREVER);//等待FFT的完成
usbWrite((float*)power,N>>1);//前面已經定義好的函數(shù),將FFT后的數(shù)據(jù)傳輸走
SEM_post(&usbWriteComplish);//告訴其他線程FFT后的數(shù)據(jù)已經傳輸完成
}
}
ADC芯片由FPGA控制,并通過FPGA讀取采樣后的數(shù)據(jù),當FPGA讀滿大小為512×14 bit的buffer后中斷DSP,DSP的線程 void AD()通過EDMA從FPGA的buffer讀取512×14 bit數(shù)據(jù),讀取完成后觸發(fā)FFT線程。
FFT運算線程void FFT()負責對void AD()讀入的512×14 bit數(shù)據(jù)進行FFT變換,并最后轉化為功率譜。FFT模塊是系統(tǒng)計算量最大的部分,考慮到系統(tǒng)的性能,使用庫DSP67x.lib,調用它的庫函數(shù)void DSPF_sp_cfftr2_dit(float* x,float* w,short n)進行基2 FFT計算。
當FFT線程完成后,會觸發(fā)void USB_Write()線程,將功率譜分析的結果傳輸給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進行通信。
對于ADC芯片,F(xiàn)PGA通過接受用戶在上位機設定的采樣頻率,為ADC芯片提供該頻率的時鐘信號,使ADC芯片工作在該采樣頻率下;同時在ADC時鐘上升沿到來時讀取一次數(shù)據(jù)ADC所采樣的數(shù)據(jù),并存放在FPGA內部,當FPGA采集完512×14 bit數(shù)據(jù)之后,中斷DSP芯片,DSP芯片將數(shù)讀走。FPGA傳輸數(shù)據(jù)給DSP的Verilog代碼如下:
assign EXT_INT = (data_addr==511);//采完512個數(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內部數(shù)據(jù)
USB芯片由FPGA芯片控制。當FPGA收到從DSP芯片傳輸過來的功率譜分析數(shù)據(jù)后就會將數(shù)據(jù)交給USB芯片的端點0進行傳輸,USB芯片將該數(shù)據(jù)傳輸給LabVIEW上位機顯示。
2.5 USB模塊
USB芯片采用了EZ-USB FX2 系列芯片之中的CY7C68013,該芯片符合USB 2.0標準,可以工作在USB 2.0的最大速度下。系統(tǒng)中,USB芯片工作在 slave FIFO模式下。
2.6 ADC模塊
ADC芯片選擇14 bit芯片AD9240,由FPGA為其提供時鐘。
2.7 上位機模塊
上位機軟件采用LabVIEW編寫,對功率譜估計的結果實時顯示。首先,需要安裝NI-VISA,NI-VISA是一個用來與各種儀器總線進行通訊的高級應用編程接口(API)[5-6]。安裝完成之后,還需要安裝USB設備驅動程序。之后,就可以在LabVIEW上實現(xiàn)與USB設備的通信。
使用SPF20信號發(fā)生器產生頻率分別為25 Hz、100 Hz,幅度為0.5 mV的正弦波信號對該功率譜分析系統(tǒng)進行標定 ,在上位機上對ADC采樣頻率設定為512 Hz.
圖3為使用該系統(tǒng)對上述正弦信號功率譜分析結果。譜線高度為0.125 mW/Hz左右(由于有噪聲,所以略有浮動),這與正弦信號的理論功率譜是吻合的,由此完成系統(tǒng)的標定。
(a)25 Hz正弦信號功率譜
(b)100 Hz正弦信號功率譜圖3 LabVIEW顯示的正弦信號的功率譜分析結果
利用DSP芯片與FPGA芯片設計了一套功率譜分析系統(tǒng),并使用了實時操作系統(tǒng)內核DSP/BIOS,可以保證系統(tǒng)的實時性,完全可以滿足對實時性要求很高的工業(yè)場合;同時該系統(tǒng)使用方便,成本較低,配合各類傳感器,在工業(yè)的許多領域具有很好的使用價值。
[1] 李紹令,張磊,張漫,等.基于功率譜分析的機械故障免拆檢測裝置設計.儀表技術與傳感器,2012(7): 21-23.
[2] 王峰,鞠文濤,胡亮,等 自適應FFT功率譜分析在渦街流量計中的應用.機床與液壓,2008(10):116-118.
[3] 葉朋,王馳宇,李金桂.FFT功率譜分析技術在旋進流量計中的應用.中國測試,2009(2):70-74.
[4] Texas Instruments.TMS320C6000 DSP/BIOS 5.x Application Programming Interface (API) Reference Guide.www.ti.com,2013.
[5] 宗榮芳,田錦明.基于 LabVIEW 的海洋環(huán)境弱信號檢測系統(tǒng).儀表技術與傳感器,2013(11): 35-37.
[6] 袁寶紅,付奎,張德祥.基于FPGA和LabVIEW的USB數(shù)據(jù)采集與傳輸系統(tǒng).儀表技術與傳感器,2013(9):24-27.
DSP and FPGA-based Real-time Power Spectrum Analyzer
ZHOU Quan1,2,GAI Shu-ping1,2,LIN Nan-sen1,ZHOU Ji-yang1,2,XU Sheng-wei1,LIU Jun-tao1,CAI Xin-xia1,2
(1.State Key Laboratory of Transducer Technology,Institute of Electronics,Chinese Academy of Sciences,Beijing 100190,China; 2.University of Chinese Academy of Sciences,Beijing 100190,China)
Power spectrum analysis in the modern industry has very important significance and practical application value. A real time power spectrum analysis system was designed, mainly used for real-time signal power spectrum analysis. In this paper, a TI’s floating-point DSP chip TMS32C6713 was used as main processing unit, responsible for the power spectrum analysis. A Xilinx’s FPGA chip Spartan xc2s200 was used as main control unit, and communicated with the LabVIEW-based PC through Cypress’s USB chip CY7C68013. In order to ensure the real-time of the system, a real-time operating system kernel DSP / BIOS was used. It provides the functions of preemptive multithreading, hardware abstraction, register configuration, and so on. The sinusoidal signals with the frequency of 25 Hz and 100 Hz were adopted to calibrate the system.
DSP; FPGA; LabVIEW; power spectrum analysis; real-time analysis; DSP/BIOS
中國科學院戰(zhàn)略性先導專項項目(XDA06020100);國家重大科學研究計劃(2011CB933202);國家自然科學基金項目(61027001,61125105,61271147)
2013-12-25 收修改稿日期:2014-10-17
TP206.3
A
1002-1841(2015) 02-0026-03
周權(1989—),碩士研究生,從事電子通信以及儀器儀表的研究。E-mail:zq19891202@163.com