馮源,尹曉東
(西安工程大學(xué)電子信息學(xué)院,西安 710600)
揚(yáng)聲器功率試驗(yàn)是指對揚(yáng)聲器進(jìn)行各種標(biāo)準(zhǔn)的功率測試,對揚(yáng)聲器的各項(xiàng)電參量進(jìn)行測量分析。揚(yáng)聲器功率試驗(yàn)系統(tǒng)在測試揚(yáng)聲器的過程中需要用標(biāo)準(zhǔn)信號(hào)對儀器進(jìn)行校準(zhǔn),更加精確的標(biāo)準(zhǔn)信號(hào)源可以有效地提高測試的精度[1-3]。
由于傳統(tǒng)的信號(hào)源生成的信號(hào)中諧波信號(hào)比較多,而且難以實(shí)現(xiàn)多路信號(hào)的獨(dú)立產(chǎn)生,本文設(shè)計(jì)了基于FPGA的標(biāo)準(zhǔn)精密信號(hào)源[4-5]。FPGA采用現(xiàn)場可編程邏輯門陣列,采用并行處理方式,能夠?qū)崿F(xiàn)多路標(biāo)準(zhǔn)正弦信號(hào)的獨(dú)立產(chǎn)生[6]。
本設(shè)計(jì)利用DDS原理對精密信號(hào)源的設(shè)計(jì),多通道D/A、低通濾波器、帶通濾波器、信號(hào)調(diào)理電路以及程控衰減電路,實(shí)現(xiàn)多路獨(dú)立的精密正弦信號(hào)的產(chǎn)生[7-8]。在功能上,本信號(hào)源具有良好的穩(wěn)定性、準(zhǔn)確性以及頻率和幅值的可控性。本設(shè)計(jì)由兩部分構(gòu)成,分別為數(shù)字部分和模擬部分構(gòu)成,數(shù)字部分的主體采用DDS原理,模擬部分采用低通濾波器,帶通濾波器以及信號(hào)調(diào)理電路和程控衰減電路組成,實(shí)現(xiàn)多路獨(dú)立的幅值、相位和頻率均可調(diào)節(jié)的高精度正弦信號(hào)發(fā)生器。其整體結(jié)構(gòu)如圖1所示,分別由DDS模塊、D/A模塊,低通濾波器模塊、低通濾波器模塊以及信號(hào)調(diào)理模塊構(gòu)成。其中DDS模塊是基于FPGA的可編程邏輯門電路設(shè)計(jì),實(shí)現(xiàn)數(shù)字正弦波的產(chǎn)生,然后通過D/A模塊變成連續(xù)信號(hào),再通過低通濾波器做平滑處理,然后再通過帶通濾波器進(jìn)一步對信號(hào)的雜波進(jìn)行濾除[9]。由于實(shí)際應(yīng)用過程中需要標(biāo)準(zhǔn)信號(hào)的幅值范圍的要求不同,所以在信號(hào)輸出的過程中往往在信號(hào)調(diào)理電路后面加上程控衰減電路,這樣方便工程應(yīng)用中的不同需求[10]。
圖1 信號(hào)源系統(tǒng)框圖
數(shù)字部分采用 DDS(Direct Digital Synthesizer)原理,實(shí)現(xiàn)多路獨(dú)立的數(shù)字信號(hào)的產(chǎn)生,是一種新型的頻率合成技術(shù),具有相對帶寬大,頻率轉(zhuǎn)換時(shí)間短、分辨率高和相位連續(xù)性好等優(yōu)點(diǎn),廣泛應(yīng)用于通信領(lǐng)域。如圖2所示,DDS主要由相位累加器、相位調(diào)制器、波形數(shù)據(jù)表以及D/A轉(zhuǎn)換器構(gòu)成。其中相位累加器由N位加法器與N位寄存器構(gòu)成。在時(shí)鐘上升沿,加法器就將頻率控制字與累加寄存器輸出的相位數(shù)據(jù)相加,相加的結(jié)果又反饋至累加寄存器的數(shù)據(jù)輸入端,以使加法器在下一個(gè)時(shí)鐘脈沖的作用下繼續(xù)與頻率控制字相加。相位累加器在時(shí)鐘作用下,不斷對頻率控制字進(jìn)行線性相位累加。相位累加器輸出的數(shù)據(jù)就是合成信號(hào)的相位。相位累加器的溢出頻率,就是DDS輸出的信號(hào)頻率。用相位累加器輸出的數(shù)據(jù),作為波形存儲(chǔ)器的相位采樣地址,這樣就可以把存儲(chǔ)在波形存儲(chǔ)器里的波形采樣值經(jīng)查表找出,完成相位到幅度的轉(zhuǎn)換。波形存儲(chǔ)器的輸出送到D/A轉(zhuǎn)換器,由D/A轉(zhuǎn)換器將數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào)輸出。
圖2 DDS基本原理圖
DDS信號(hào)流程示意圖如圖3所示。這里相位累加器位數(shù)為N位(N的取值范圍實(shí)際應(yīng)用中一般為24~32),相當(dāng)于把正弦信號(hào)在相位上的精度定義為N位,所以其分辨率為1/2N。若DDS的時(shí)鐘頻率為fclk,頻率控制字fword為1,則輸出頻率為Fout=B×Fclk/2,這個(gè)頻率相當(dāng)于“基頻”。若fword為B,則輸出頻率為Fout=B×Fclk/xN。因此理論上由以上三個(gè)參數(shù)就可以得出任意的fo輸出頻率。且頻率分辨率由時(shí)鐘頻率和累加器的位數(shù)決定。當(dāng)參考時(shí)鐘頻率越高,累加器位數(shù)越高,輸出頻率分辨率就越高。當(dāng)系統(tǒng)輸入時(shí)鐘頻率Fclk不變時(shí),輸出信號(hào)頻率由頻率控制字B所決定,由上式可得:B=2N×Fout/Fclk,其中B只能取整數(shù)。為了合理控制ROM的容量,此處選取ROM查詢的地址時(shí),可以采用截?cái)嗍?,即只?2位累加器的高M(jìn)位。這里相位寄存器輸出的位數(shù)一般取10~16位。
圖3 信號(hào)產(chǎn)生流程
硬件結(jié)構(gòu)采用模塊化結(jié)構(gòu)設(shè)計(jì),采用單獨(dú)的MCU控制信號(hào)發(fā)生模塊,為了便于設(shè)計(jì),采用FPGA最小系統(tǒng)以及外圍電路多位高速DAC,高階低通濾波器電路以及信號(hào)調(diào)理電路組成。
本設(shè)計(jì)濾波器模塊使用MAX7490構(gòu)成的低通濾波器和帶通濾波器電路,是為了將基于FPGA的DDS模塊產(chǎn)生的數(shù)字信號(hào)進(jìn)行平滑濾波處理,從而輸出高精度的正弦波。MAX7490由兩個(gè)同樣功能的、低功耗、低電壓、動(dòng)態(tài)范圍寬的二階開關(guān)電容濾波器組成。通過對其外部電阻電容的不同連接形式實(shí)現(xiàn)不同的濾波功能。該濾波器的中心頻率由外部時(shí)鐘頻率來控制,其關(guān)系如式(1):
在使用外部時(shí)鐘信號(hào)時(shí),方波占空比要控制在45%~55%之間,其中f0為中心頻率,fclk為外部時(shí)鐘信號(hào)。如圖4所示為由MAX7490構(gòu)成的四階低通濾波器和低通濾波器。
如圖5所示,信號(hào)調(diào)理電路由運(yùn)算放大器構(gòu)成的電壓跟隨器和程控衰減電器組成。低零漂、高精度的運(yùn)算放大器輸入阻抗無窮大,輸出阻抗無窮小,使信號(hào)完全傳輸?shù)胶蠹墶AC8801是一款14位高速串行DAC,作為程控衰減器使用,以參考電壓為基準(zhǔn),通過控制字來改變輸入信號(hào)的幅值。其中控制字為0~之間的整數(shù),當(dāng)參考電壓一定時(shí),輸出信號(hào)的大小和控制字成正比例。輸入信號(hào)和參考電壓,控制字之間的關(guān)系如式(2)所示。
圖4 四階低通濾波器及帶通濾波器
圖5 電壓幅值調(diào)節(jié)模塊
本設(shè)計(jì)采用FPGA最小系統(tǒng),采用Cyclone IV E作為主控芯片,參考時(shí)鐘50MHZ。該模塊輸入信號(hào)包括時(shí)鐘信號(hào),復(fù)位信號(hào),使能信號(hào)以及頻率控制字和相位控制字,輸出信號(hào)包括正弦波信號(hào)的數(shù)字輸出和DAC模塊的時(shí)鐘信號(hào)。如圖6所示,CLK為系統(tǒng)時(shí)鐘,Rst_n為控制器復(fù)位信號(hào),低電平有效;EN為DDS模塊使能信號(hào),高電平有效;FWord為32位二進(jìn)制的頻率控制字,用來改變產(chǎn)生信號(hào)的頻率;PWard為12位二進(jìn)制的相位控制字,用來改變產(chǎn)生信號(hào)的初始相位。
相位累加器決定了產(chǎn)生信號(hào)的頻率,通過對相位控制字的累加來產(chǎn)生ROM表的查詢地址。因?yàn)?2位對于FPGA的資源占用率非常高,所以選取12位的加法器截取相位累加器的高12位作為ROM的查詢地址,這樣對于信號(hào)產(chǎn)生的精度幾乎沒有影響,只是對于信號(hào)的純度有一定的影響,所以在FPGA的輸出后需要添加低通濾波器消除產(chǎn)生信號(hào)的諧波成分。其中,相位控制字通過同步加法器來改產(chǎn)生信號(hào)的相位。DAC的時(shí)鐘信號(hào)由DDS的使能信號(hào)和系統(tǒng)時(shí)鐘共同決定的,通過選擇器來進(jìn)行控制。
圖6 QuartusⅡ軟件生成的RTL視圖
波形數(shù)據(jù)表是DDS的基礎(chǔ),DDS的本質(zhì)就是通過改變讀波形數(shù)據(jù)表的地址來改變信號(hào)的頻率和初始相位。使用MATLAB產(chǎn)生波形數(shù)據(jù)表,并且通過編譯軟件Quartus2來生成MIF文件。此處MIF的位寬為10位,深度為4096.因?yàn)楫a(chǎn)生的正弦信號(hào)的一個(gè)整周期4096個(gè)數(shù)據(jù),每位數(shù)據(jù)的位寬為10位。ROM的讀數(shù)據(jù)是調(diào)用IP核來實(shí)現(xiàn)的,在使用過程中只需要將IP核相關(guān)端口進(jìn)行例化即可。例化程序如下:
在實(shí)際應(yīng)用過程中往往需要多路相互獨(dú)立的信號(hào)源,采用基于FPGA的DDS就能夠?qū)崿F(xiàn)需求,因?yàn)镕PGA采用邏輯門陣列結(jié)構(gòu),完全采用硬件實(shí)現(xiàn),并行處理,相對于傳統(tǒng)的控制器來說,更快速、更精確。本設(shè)計(jì)實(shí)現(xiàn)的是雙通道的信號(hào)發(fā)生器。將DAC的兩個(gè)通道的數(shù)據(jù)是通過一個(gè)數(shù)據(jù)通道和不同的控制字來實(shí)現(xiàn),為了能夠?qū)崿F(xiàn)兩通道產(chǎn)生信號(hào)初始狀態(tài)的同步性,在頂層文件中同時(shí)例化出兩個(gè)DDS模塊,就可以同時(shí)輸出兩路獨(dú)立的正弦波信號(hào)。將此模塊命名為DAC_2CH,該模塊例化了TLV5618模塊作為DAC的實(shí)際驅(qū)動(dòng)模塊。另外需要說明的是,本模塊的DDS模塊生成的數(shù)據(jù)為10位,而DAC是12位數(shù)據(jù)位寬的,因此在實(shí)際連接時(shí),將DDS輸出的數(shù)據(jù)左移了兩位,轉(zhuǎn)換為12位的數(shù)據(jù),然后再送給DAC進(jìn)行數(shù)模轉(zhuǎn)換。其模塊接口示意圖如圖7所示。
圖7 雙通道信號(hào)發(fā)生器接口示意圖
為了更好地實(shí)現(xiàn)高性能的正弦波信號(hào)源,在方案設(shè)計(jì)中采用了Labview、Multism以及ModelSim-Altera的仿真,從理論上保證了設(shè)計(jì)的合理性。在完成硬件電路時(shí)后,利用示波器以及頻譜分析儀對于結(jié)果進(jìn)行分析,從而得出結(jié)論。
為了驗(yàn)證DDS模塊的可行性以及Verilog語言編程邏輯上的準(zhǔn)確性,對于DDS模塊設(shè)計(jì)測試程序,并且在ModelSim上進(jìn)行仿真驗(yàn)證,通過測試文件設(shè)置兩個(gè)通道的頻率控制字,相位控制字,然后通過仿真軟件顯示出來,仿真結(jié)果如圖8所示,為了便于觀察,A、B兩個(gè)通道分別獨(dú)立的輸出1KHz和2KHz的正弦波,兩者之間初始相位相同,頻率相差一倍。
圖8 DDS仿真結(jié)果圖
在完成硬件搭建后,為了方便觀察,設(shè)置兩通道的頻率分別為10KHz和20KHz。下載程序,利用Quartus II固有的邏輯分析儀對輸出信號(hào)進(jìn)行抓取,DAC模塊的輸入輸出如圖9所示對于系統(tǒng)進(jìn)行測試如圖10所示,利用示波器捕獲到的輸出信號(hào)時(shí)域波形圖,兩通道頻率和幅值關(guān)系完全滿足要求。以及圖11所示,利用示波器的FFT變換,實(shí)現(xiàn)輸出信號(hào)的頻譜測量。
圖9 DAC模塊輸入輸出圖
圖10 示波器捕獲到的輸出波形圖
圖11 輸出信號(hào)的頻譜圖
本設(shè)計(jì)基于FPGA的高精度正弦波信號(hào)源的產(chǎn)生,經(jīng)過低通濾波器以及帶通濾波器,使系統(tǒng)能夠輸出純度很高的正弦波信號(hào),而且經(jīng)過信號(hào)調(diào)理電路以及程控衰減電路,實(shí)現(xiàn)信號(hào)幅值從0~500mV的任意幅值,完全滿足各種實(shí)驗(yàn)的要求。在結(jié)構(gòu)設(shè)計(jì)方面,采用模塊化的設(shè)計(jì)要求,具有可移植性和易用性,能夠在各種測試系統(tǒng)中兼容使用。