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