基于FPGA和虛擬儀器的DDS信號發(fā)生器設(shè)計(jì)
摘要:將虛擬儀器技術(shù)同FPGA技術(shù)結(jié)合,設(shè)計(jì)了一個(gè)頻率可控的DDS任意波形信號發(fā)生器。在闡述直接數(shù)字頻率合成技術(shù)的工作原理、電路構(gòu)成的基礎(chǔ)上,分別介紹了上位機(jī)虛擬儀器監(jiān)控面板的功能和結(jié)構(gòu),以及實(shí)現(xiàn)DDS功能的下位機(jī)FPGA器件各模塊化電路的作用。經(jīng)過設(shè)計(jì)和電路測試,輸出波形達(dá)到了技術(shù)要求,工作穩(wěn)定可靠。
關(guān)鍵詞:DDS;FPGA;LabVIEW;信號發(fā)生器
信號發(fā)生器是一種常用的信號源,廣泛應(yīng)用于通信、測量、科研等現(xiàn)代電子技術(shù)領(lǐng)域。信號發(fā)生器的核心技術(shù)是頻率合成技術(shù),主要方法有:直接模擬頻率合成、鎖相環(huán)頻率合成(PLL)、直接數(shù)字合成技術(shù)(DDS)。DDS是開環(huán)系統(tǒng),無反饋環(huán)節(jié),輸出響應(yīng)速度快,頻率穩(wěn)定度高。因此直接數(shù)字頻率合成技術(shù)是目前頻率合成的主要技術(shù)之一。文中的主要內(nèi)容是采用FPGA結(jié)合虛擬儀器技術(shù),進(jìn)行DDS信號發(fā)生器的開發(fā)。
1 DDS工作原理
圖1是DDS基本結(jié)構(gòu)框圖。以正弦波信號發(fā)生器為例,利用DDS技術(shù)可以根據(jù)要求產(chǎn)生不同頻率的正弦波。
DDS電路主要由相位累加器、相位調(diào)制器、正弦ROM查找表、DAC和低通濾波器構(gòu)成。其中,相位累加器是整個(gè)DDS的核心,完成相位累加的功能。下面對相位累加器的輸入即相位增量進(jìn)行分析。
對于正弦信號發(fā)生器,它的輸出可以用下式來描述:
Sout=Asinωt=Asin(2πfoutt) (1)
其中Sout是指該信號發(fā)生器的輸出信號波形,fout指輸出信號對應(yīng)的頻率。正弦信號的相位:θ=2πfoutt。在一個(gè)clk周期Tclk,相位θ的變化量為:
為了用數(shù)字化邏輯實(shí)現(xiàn)電路,必須對△θ進(jìn)行數(shù)字量化,把2π切割成2N份,由此每個(gè)clk周期的相位增量△θ用量化值B△θ來表述:
其中θk-1指前一個(gè)clk周期的相位值。
由上面的推導(dǎo)可以看出,只要對相位的量化值進(jìn)行簡單的累加運(yùn)算,就可以得到正弦信號的當(dāng)前相位值,而用于累加的相位增量量化值B△θ(也叫頻率控制字)決定了信號的輸出頻率fout,并呈現(xiàn)簡單的線性關(guān)系。直接數(shù)字合成器DDS就是根據(jù)上述原理而設(shè)計(jì)的數(shù)字控制頻率合成器。
從本質(zhì)上看,DDS是一個(gè)恒定高頻率運(yùn)行的多位計(jì)數(shù)器。在溢出時(shí),通過利用一個(gè)多位控制字來設(shè)置計(jì)數(shù)器步進(jìn)的尺寸,允許計(jì)數(shù)器過零。計(jì)數(shù)器的高階位用來尋址存儲設(shè)備,該設(shè)備保持生成的一個(gè)波形周期的數(shù)字記錄。高頻時(shí)鐘每前進(jìn)一單位,計(jì)數(shù)器便步進(jìn)一次,存儲器也將生成一個(gè)新的地址字,而新的波形數(shù)據(jù)值將會(huì)發(fā)送到DAC。DDS主要有3個(gè)優(yōu)點(diǎn):1)輸出信號的頻率精度可以達(dá)到作為發(fā)生器參考信號使用的晶體控制振蕩器的水平;2)DDS發(fā)生器可以生成非常高的頻率精度;3)如果有RAM波形存儲器,那么DDS函數(shù)發(fā)生器可以重現(xiàn)幾乎任何波形。
2 系統(tǒng)設(shè)計(jì)
該系統(tǒng)采用LabVIEW軟件完成上位機(jī)虛擬儀器的開發(fā),生成正弦波、方波、三角波、手工繪制波形和公式波形等波形數(shù)據(jù),實(shí)時(shí)顯示于前面板并通過VISA串口將波形數(shù)據(jù)傳送至FPGA存儲器。下位機(jī)采用Alter公司的FPGA芯片EP1C3T144C8開發(fā),通過VHDL語言軟件式的硬件設(shè)計(jì)方法完成DDS模塊開發(fā),根據(jù)頻率控制字?jǐn)?shù)值讀取ROM中的波形數(shù)據(jù)送入D/A轉(zhuǎn)換器,最后通過低通濾波器完成平滑濾波輸出。
2.1 虛擬儀器上位機(jī)面板開發(fā)
通過圖形化的虛擬儀器開發(fā)工具LabVIEW完成上位機(jī)的設(shè)計(jì),主要功能有波形預(yù)覽、參數(shù)設(shè)置、數(shù)據(jù)傳送及數(shù)據(jù)保存。
圖2為虛擬儀器上位機(jī)主面板,通過串口設(shè)置窗口選擇通信端口,采用cluster捆綁各操作類型并通過case結(jié)構(gòu)判斷所選操作,選擇常規(guī)波形、公式波形及手繪波形會(huì)分別彈出對應(yīng)的編輯窗口顯示波形數(shù)據(jù)。如圖3和圖4所示,為選擇常規(guī)波形和手繪波形彈出的波形參數(shù)設(shè)置對話框,設(shè)置完相應(yīng)的波形后,單擊done按鈕確認(rèn)。設(shè)置完波形后,可以點(diǎn)擊保存波形數(shù)據(jù),把繪制好的波形以二進(jìn)制文本形式進(jìn)行保存。
2.2 FPGA下位機(jī)開發(fā)
下位機(jī)主要完成DDS數(shù)字合成器的功能,采用Ahera公司的EP1C3T144C8芯片,它具有104個(gè)可供用戶自行配置的I/O端口,使用VHDL語言在QuartusⅡ開發(fā)工具中實(shí)現(xiàn)。
直接數(shù)字合成器由3部分組成,如圖5所示。
其中:
1)ADDER32B作為32位數(shù)據(jù)加法器,提供可控步進(jìn)的頻率值;
2)REG32B作為32位移位寄存器,與ADDER32B一起組成累加器,將接收到的32位數(shù)據(jù)反饋到ADDER32B完成以外部端口F為鍵控頻率字(即上文提到的)的步進(jìn);
3)ROM作為讀取存儲器波形數(shù)據(jù),根據(jù)步進(jìn)地址讀取存儲器中的10位長度的波形數(shù)據(jù),送入DA轉(zhuǎn)換器。
3 DDS信號發(fā)生器結(jié)果分析
圖6為仿真波形,可以看到,對于不同的頻率控制字F給出的不同值,對應(yīng)每一個(gè)時(shí)鐘輸出的采樣點(diǎn)的步幅變化不同。圖7為采用Quartus Ⅱ自帶的測試工具SignalTapⅡ(嵌入式邏輯分析儀)對設(shè)計(jì)結(jié)果進(jìn)行分析,如圖7所示為F鍵控頻率字設(shè)為16H時(shí)生成的正弦信號。圖8是在示波器上觀察的由DAC產(chǎn)生經(jīng)低通濾波器處理后的真實(shí)波形。
4 結(jié)束語
文中采用LabVIEW虛擬儀器技術(shù)結(jié)合FPGA技術(shù)實(shí)現(xiàn)的DDS信號發(fā)生器,通過利用計(jì)算機(jī)的強(qiáng)大功能,把傳統(tǒng)儀器的設(shè)計(jì)、編輯都放到計(jì)算機(jī)上完成,并通過通訊接口傳輸數(shù)據(jù),實(shí)現(xiàn)不同波形的輸出。通過對系統(tǒng)仿真和實(shí)際測試,結(jié)果表明該DDS信號發(fā)生器不僅能產(chǎn)生理想的輸出信號,還具有集成度高。穩(wěn)定性好和擴(kuò)展性強(qiáng)等優(yōu)點(diǎn)。