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