摘要:為了對鐵路信號進行分析,系統采用一種基于USB接口的虛擬信號分析儀實現方法。以FPGA為主控芯片,采用高速A/D轉換器進行音頻信號采集,USB接口傳輸,LabVIEW平臺實現信號分析。具有開發(fā)成本低,便于重構的優(yōu)點。測試結果表明,系統功能正常,性能穩(wěn)定。
關鍵詞:音頻分析;虛擬儀器;FPGA;USB
0 引言
音頻分析儀是一種利用頻譜分析原理,以數字信號處理為分析手段,提取信號在時域、頻域內一系列特性的過程,是對音頻信號進行頻率、頻譜及波形分析的一種測量工具,應用于電聲測量、音頻制作、信號分析乃至振動測試等領域。
早期的音頻測量一般是利用頻率計、示波器及頻譜儀等組合成一套測試系統。這種測試系統中間環(huán)節(jié)多,各環(huán)節(jié)之間接口匹配較為困難,使用起來比較麻煩,測量結果往往也不精確。目前雖然大部分的音頻分析儀已向集成化方向發(fā)展,但仍以硬件電路實現傳統意義上的音頻分析,有著自身無法克服的缺點。為此,本文提出了一種利用虛擬儀器技術來實現音頻分析的設計方案。
1 系統總體設計
本設計采用FPGA為系統的主控制芯片,完成音頻信號采集,數模轉換,數據傳輸等功能,并在虛擬儀器軟件的基礎上確定了一種方便可行的音頻分析儀的設計方法。
系統總體設計框圖如圖1所示。音頻信號經過前置放大器進行放大后進入A/D轉換器,經過轉換得到數字信號,存入FIFO緩存區(qū),數據在FPGA主芯片中進行編排控制,經過USB接口傳送給計算機,最后由LabVIEW來完成音頻信號的處理并顯示結果。
2 系統硬件設計
系統硬件電路的核心芯片選用Altera公司CycloneⅢ系列FPGA EP3C25,該器件密度為18萬門,最高工作頻率高達300 MHz,完全可滿足高速數據采樣速率時序要求。
2.1 前置放大電路設計
前置放大電路用于將信號放大到A/D轉換器要求的電壓范圍。為保證放大電路的性能指標,采用AD公司的高頻寬帶運放AD811為核心進行設計,如圖2所示。AD811 3 dB帶寬高達140 MHz,并且具有2 500 V/μs的速度,差分增益誤差小于0.01%,0.01°差分相位,電流噪聲為1.9 nV。
前置放大電路的VIN為信號輸入口,U3和U4設計為反相和同相放大電路,以構成單端輸入至差分平衡輸入轉換電路,以滿足A/D轉換器對信號形式的要求。
2.2 高速A/D轉換電路
A/D轉換電路采用TI公司的雙通道高速A/D轉換器ADS2807。ADS2807集成了高帶寬跟蹤保持電路,即使在高達或超出奈斯奎特速率的情況下,同樣具有優(yōu)秀的噪聲性能。該跟蹤保持電路和ADC電路的差動特性不僅能夠最大程度地減小偶階諧波,而且可提供優(yōu)秀的共模噪聲抑制性能。ADS2807的信噪比為65 dB,無雜散信號動態(tài)范圍為70 dB。高速A/D轉換電路如圖2所示。
2.3 USB接口
USB接口芯片選用CYPRESS公司的EZ-USBFX2芯片CY7C68013。CY7C68013有Slave FIFO和GPIF兩種接口方式,本設計采用Slave FIFO模式,FPGA與USB硬件接口如圖3所示。
圖中D0~D7為數據總線,用于數據傳輸;INTI為中斷標志,當傳輸完一組數據時產生一次中斷。IFCLK為外部時鐘輸入;FIFOADR[1:0]選擇四個FIFO中的一個,本設計中FIFOADR[1]直接接+3.3 V,FIFOADR[0]直接接地,選擇用EP6傳輸數據,4倍緩存;FULL為FIFO滿狀態(tài)標志,低電平有效;SLWR為數據寫入FIFO使能,低電平有效;FD[7:0]為8位數據線。
如上所述,系統選擇了FIFO的異步模式進行數據傳輸的方式。在IFCLK的上升沿,如果SLWR有效(低電平有效),而數據有滿足建立保持時間,數據就被寫入FIFO,同時,若內部控制器發(fā)現FIFO己滿,經過大約為10 ns的延時,FULL標志會被置成有效。
3 系統軟件設計
3.1 USB固件設計
固件是在USB接口芯片加電后,由其他設備加載到CY7C68013中并在其中運行完成接口數據傳輸功能的一段程序,其作用是控制硬件來完成預期的設備功能。固件的主要功能包括:初始化工作、輔助硬件完成設備的重枚舉過程、對主機的設備響應做出適當的響應、對中斷的處理、數據的接收與發(fā)送、對外圍電路的控制。
本系統固件程序采用Cypress公司提供的固件程序框架,在其初始化函數中添加了用戶配置代碼。該設計中異步自動從屬FIFO數據傳輸的初始化代碼如下:
3.2 USB驅動程序設計
USB驅動程序處于應用程序和設備端固件之間,使操作系統識別USB設備,并建立起主機端和設備端之間的通信。
VISA(Virtual Instrument SoftWare Architecture)是美國NI公司開發(fā)用來與各種儀器總線進行通信的高級應用程序編程接口(API)。它不受平臺、總線和環(huán)境的限制,可用來對USB、GPIB、串口、VXI、PXI及以太網等進行配置、編程和調試。因此本系統利用LabVIEW的VISA來對USB的底層驅動經行開發(fā),具體步驟如下:
(1)使用Driver Development Wizard創(chuàng)建INF文檔。
(2)安裝INF文檔,并安裝使用INF文檔的USB設備。
(3)使用NI-VISA Interactive Control對設備進行測試。
USB底層配置正確以后,選擇VISA類為USBRaw,計算機會自動刷新選擇的USB設備,利用VISAOpen,VISA Close,VISA Write和VISA Read
四個節(jié)點即可實現和USB設備的雙向通信。與USB設備的通信過程分為4個步驟:
(1)由VISAOpen函數打開VISA resource name端口指定的USB設備;
(2)通過VISA Write函數向USB設備發(fā)送控制命令啟動設備工作,USB設備接收到控制命令后開始采集數據并將采集到的數據按要求發(fā)送到數據緩沖區(qū);
(3)通過VISA Read函數將數據讀出;
(4)通過VISA Close函數關閉設備。
3.3 LabVIEW程序設計
LabVIEW是美國NI公司開發(fā)的一種圖形化編程軟件,具有良好的圖形顯示功能,提供種類齊全的各種波形圖和波形圖表控件,能夠以多樣化的方式直觀地顯示各種信號波形。其次LabVIEW擁有數量眾多、功能齊全的信號分析與處理子VI,供用戶調用,從而組合實現出所需要的信號處理功能。同時LabVIEW具有良好的擴展性,無論是通過附加工具包擴展,還是通過其他平臺(如Matlab/Simulink)的接口擴展,都能很方便地進一步擴展其信號處理功能。
本音頻分析儀主要包括音頻信號采集與存儲模塊,音頻信號功率譜分析模塊,音頻信號頻譜分析模塊和波形顯示模塊。其中頻譜分析采用快速傅里葉變換算法(FFT),經過FFT變換后,可以十分直觀地觀察信號所包含的頻率信息。其中信號采集與存儲模塊,功率譜分析模塊如圖4,圖5所示。
4 系統測試
聯機進行實驗測試,得出音頻分析結果如圖6所示。
從測試結果中可以直接觀察到信號的頻譜分析、諧波分析、信號功率譜以及功率譜密度等信息,實現了對音頻信號的分析。
5 結語
以FPGA為主控芯片的采集系統可實現對音頻信號的采集和預處理,而采用USB傳輸數據可以保證較高的帶寬和高速穩(wěn)定的傳輸速率,利用LabVIEW強大的信號處理能力,很好地實現了音頻分析儀的功能。