基于FPGA的DDS信號發(fā)生器設(shè)計
摘要:利用FPGA芯片及D/A轉(zhuǎn)換器,采用直接數(shù)字頻率合成技術(shù),設(shè)計并實現(xiàn)了一個頻率、幅值可調(diào)的信號發(fā)生器,同時闡述了該信號發(fā)生器的工作原理、電路結(jié)構(gòu)及設(shè)計思路。經(jīng)過電路調(diào)試,輸出波形達到技術(shù)要求,證明了該信號發(fā)生器的有效性和可靠性。
0 引言
信號發(fā)生器作為一種基本電子設(shè)備廣泛的應(yīng)用于教學(xué)、科研中,因此從理論到工程對信號的發(fā)生進行深入研究,有著積極的意義。隨著可編程邏輯器件(FPGA)的不斷發(fā)展,直接頻率合成(DDS)技術(shù)應(yīng)用的愈加成熟,利用DDS原理在FPGA平臺上開發(fā)高性能的多種波形信號發(fā)生器與基于DDS芯片的信號發(fā)生器相比,成本更低,操作更加靈活,而且還能根據(jù)要求在線更新配置,系統(tǒng)開發(fā)趨于軟件化、自定義化。本文研究了基于FPGA的DDS信號發(fā)生器設(shè)計,實現(xiàn)了滿足預(yù)定指標的多波形輸出。可產(chǎn)生不同頻率、幅度的正弦波、三角波、矩形波信號,仿真和實測結(jié)果均證實了其靈活性和可靠性。
1 函數(shù)信號發(fā)生器的原理和設(shè)計
1.1 函數(shù)信號發(fā)生器的結(jié)構(gòu)
圖1為DDS信號發(fā)生器系統(tǒng)結(jié)構(gòu)框圖。系統(tǒng)以FPGA芯片為信息處理核心,主要完成數(shù)字頻率合成、D/A轉(zhuǎn)換、選擇濾波、功率放大、LCD顯示等功能。
頻率控制字M送入32位的累加器進行累加運算,截取32位累加器的第24到第30位作為ROM的地址,ROM在累加器的控制下,輸出8位的數(shù)字波形數(shù)據(jù),經(jīng)過DAC0832轉(zhuǎn)換為模擬量,因為DAC0832輸出的是電流的形式,所以通過電壓轉(zhuǎn)電流電路轉(zhuǎn)換為電壓形式的模擬波形,但其中還含有大量的高頻成分,為了輸出頻率純凈的信號波形,再通過一個二階的有源低通濾波器。最后為了調(diào)節(jié)輸出信號的峰峰值,再引入一個幅度調(diào)節(jié)電路。
根據(jù)直接數(shù)字頻率合成理論將系統(tǒng)的頻率分辨率及輸出頻率寫為:
其中fclk和N為系統(tǒng)時鐘和位寬,M為頻率控制字,利用信號相位與時間成線性關(guān)系的特性,直接對所需信號進行抽樣、量化和映射,輸出頻率可調(diào)的信號波形。每個時鐘周期內(nèi),由頻率控制字M決定相位增量的大小以控制輸出頻率。由式子可以看出和N也關(guān)系著D/A轉(zhuǎn)換的頻率,位寬N越大、時鐘fclk越低,分辨率越高,但系統(tǒng)時鐘變低,也會
降低最大的輸出頻率,fclk以及一個周期波形的采樣數(shù)值的輸出個數(shù)。
1.2 數(shù)模轉(zhuǎn)換電路
數(shù)模轉(zhuǎn)換電路采用DAC0832,ADC0832是8位分辨率的倒T型電阻網(wǎng)絡(luò)型D/A轉(zhuǎn)換器。根據(jù)對DAC0832的數(shù)據(jù)鎖存器和DAC寄存器的不同控制方式,DAC0832有三種工作方式:直通方式、單緩沖方式和雙緩沖方式。本文使用的是直通的工作方式。DAC0832邏輯輸入滿足TTL電平,可直接與TTL電路或微機電路連接。
DAC0832轉(zhuǎn)換結(jié)果以電流形式輸出。為了得到模擬電壓信號,需要通過一個高輸入阻抗的線性運算放大器。運放的反饋電阻可通過RFB端引用片內(nèi)固有電阻,也可外接。為了將DAC0832轉(zhuǎn)換得到的模擬電流值轉(zhuǎn)換為模擬的電壓值,在ADC0832的輸出端接了由運放NE5532構(gòu)成的電流轉(zhuǎn)電壓電路,如圖3所示。
NE5532是高性能低噪聲雙運算放大器(雙運放)集成電路。與很多標準運放相似,但它具有更好的噪聲性能,優(yōu)良的輸出驅(qū)動能力及相當(dāng)高的小信號帶寬,電源電壓范圍大等特點。因此很適合應(yīng)用在高品質(zhì)和專業(yè)音響設(shè)備、儀器、控制電路及電話通道放大器。
DAC0832的轉(zhuǎn)換電流輸出為:
1.3 二階有源低通濾波器
二階有源低通濾波器也采用運放NE5532,其截止頻率設(shè)計為6KHz,函數(shù)信號發(fā)生器的輸出最高頻率是20KHz,根據(jù)實際調(diào)試中出現(xiàn)的情況:將低通濾波器的截止頻率設(shè)計為6KHz時,輸出的波形頻率純凈,如果提高低通濾波器的截止頻率,輸出波形就會有高頻成分,如果降低截止頻率就會降低輸出波形的最高頻率。二階有源低通濾波器如圖4所示。
其特征頻率為:
將R=1KΩ,C=10nF帶入式5計算得f0=16KHz。二階低通濾波器的通帶截止頻率為:fp=0.37fo,將帶入計算得截止頻率f0=16KHz,通帶放大倍數(shù)為1。
為了實現(xiàn)輸出波形的幅度可調(diào),在函數(shù)信號發(fā)生器的輸出端連接一個電壓跟隨器,并用一個滑動變阻器調(diào)節(jié)輸出的波形峰值。幅度調(diào)接電路由運放NE5532構(gòu)成,如圖5所示。
2 DDS的Verilog實現(xiàn)
DDS程序流程圖如圖6所示,32位累加器對輸出的頻率控制字進行不斷的累加,取32位累加器的的第24到第30位作為ROM的地址,根據(jù)32位累加器的第32位和第31位的值對ROM地址和ROM輸出數(shù)據(jù)做如下處理:
1)第32位等于0且第31位等于0,則ROM地址和ROM輸出數(shù)據(jù)不變;
2)第32位等于0且第31位等于1,則ROM地址取反但ROM輸出數(shù)據(jù)不變;
3)第32位等于1且第31位等于0,則ROM地址不變但ROM輸出數(shù)據(jù)取反;
4)第32位等于0且第31位等于0,則ROM地址取反和ROM輸出數(shù)據(jù)也取反。
DDS輸出正弦波的時序仿真波形如圖7所示。第一個信號是100MHz系統(tǒng)時鐘clk,第二個信號是復(fù)位信號rst_n,第三個信號是累加器add,第四個信號是累加器的高8位即ROM地址,第六個信號是ROM輸出即波形數(shù)據(jù)。
3 硬件調(diào)試
該信號發(fā)生器可以輸出一定功率的幅度、頻率可調(diào)的正弦波、方波、三角波信號。該信號發(fā)生器輸出波形的頻率分辨率為1Hz、輸出頻率范圍:1Hz-20kHz,輸出電壓范圍:50mV-1V。
由于低通濾波器的電容對輸出三角波和方波的充放電影響,輸出三角波和方波的頻率越高,影響越嚴重,導(dǎo)致輸出的波形失真。經(jīng)過測量,三角波的輸出不失真的頻率為5KHz左右,輸出方波不失真的頻率為2KHz左右。由于DDS采用全數(shù)字結(jié)構(gòu),不可避免地引入了散雜。其來源主要有三個:相位累加器相位舍入誤差造成的散雜;幅度量化誤差造成的散雜和DAC非理想特性造成的散雜。
函數(shù)信號發(fā)生器輸出頻率為1.3KHz的正弦波如圖8所示,函數(shù)信號發(fā)生器輸出頻率為1.2KHz的三角波如圖9所示,函數(shù)信號發(fā)生器輸出頻率為1.2KHz的方波如圖10所示。
4 結(jié)論
本文介紹了基于FPGA的DDS信號發(fā)生器的設(shè)計,描述了其電路結(jié)構(gòu)、工作原理、設(shè)計思路及實現(xiàn)方法,并按照技術(shù)要求進行計算、編程。經(jīng)過仿真、電路測試,結(jié)果表明輸出波形達到了設(shè)計指標的要求,可以作為穩(wěn)定的信號源使用,也對DDS的原理和實現(xiàn)有了更深的了解和認識。