點擊上方藍字關(guān)注我們
1 引言
DDS同DSP(數(shù)字信號處理)一樣,是一項關(guān)鍵的數(shù)字化技術(shù)。DDS是直接數(shù)字式頻率合成器(DirectDigitalSynthesizer)的英文縮寫。與傳統(tǒng)的頻率合成器相比,DDS具有低成本、低功耗、高分辨率和快速轉(zhuǎn)換時間等優(yōu)點,廣泛使用在電信與電子儀器領(lǐng)域,是實現(xiàn)設(shè)備全數(shù)字化的一個關(guān)鍵技術(shù)。在各行各業(yè)的測試應(yīng)用中,信號源扮演著極為重要的作用。但信號源具有許多不同的類型,不同類型的信號源在功能和特性上各不相同,分別適用于許多不同的應(yīng)用。目前,常見的信號源類型包括任意波形發(fā)生器,函數(shù)發(fā)生器,RF信號源,以及基本的模擬輸出模塊。信號源中采用DDS技術(shù)在當(dāng)前的測試測量行業(yè)已經(jīng)逐漸稱為一種主流的做法。但DDS專用器件價格較貴,輸出波形單一,使用受到一定限制,特別不適合于輸出波形多樣化的應(yīng)用場合。隨著高速可編程邏輯器件FPGA的發(fā)展,電子工程師可根據(jù)實際需求,在單一FPGA上開發(fā)出性能優(yōu)良的具有任意波形的DDS系統(tǒng),極大限度地簡化設(shè)計過程并提高效率。本文在討論DDS的基礎(chǔ)上,介紹利用FPGA設(shè)計的基于DDS的信號發(fā)生器。
2 DDS技術(shù)工作原理
一塊DDS芯片中主要包括頻率控制寄存器、高速相位累加器和正弦計算器三個部分(如Q2220)。頻率控制寄存器可以串行或并行的方式裝載并寄存用戶輸入的頻率控制碼;而相位累加器根據(jù)頻率控制碼在每個時鐘周期內(nèi)進行相位累加,得到一個相位值;正弦計算器則對該相位值計算數(shù)字化正弦波幅度(芯片一般通過查表得到)。DDS芯片輸出的一般是數(shù)字化的正弦波,因此還需經(jīng)過高速D/A轉(zhuǎn)換器和低通濾波器才能得到一個可用的模擬頻率信號。DDS信號發(fā)生器,主要由相位累加器、相位寄存器、波形存儲器、D/A轉(zhuǎn)換器和模擬低通濾波器組成如圖1所示。fR為參考時鐘,K為輸入頻率控制字,其值與輸出頻率相對應(yīng),因此,控制輸入控制字K,就能有效控制輸出頻率值。通常情況下,K值由控制器寫入。
由圖1可知,在參考時鐘fR的控制下,頻率控制字K與相位寄存器的輸出反饋在相位累加器中完成加運算,并把計算結(jié)果寄存于相位寄存器,作為下加運算的一個輸入值。相位累加器輸出高位數(shù)據(jù)作為波形存儲器的相位抽樣地址值,查找波形存儲器中相對應(yīng)單元的電壓幅值,得到波形二進制編碼,實現(xiàn)相位到電壓幅值的轉(zhuǎn)變。波形二進制編碼再通過D/A轉(zhuǎn)換器,把數(shù)字信號轉(zhuǎn)換成相應(yīng)的模擬信號。低通濾波器可進一步濾除模擬信號中的高頻成分,平滑模擬信號。在整個過程中,當(dāng)相位累加器產(chǎn)生溢出時,DDS系統(tǒng)就完成一個周期輸出任務(wù)。頻率控制字K與輸出波形頻率的函數(shù)表達關(guān)系式為:
f0=(K/2N)fR (1)
式中,K為頻率控制字;fR為參考時鐘,N為累加器的位寬值。
當(dāng)K=l時,可得DDS的分辨率為:
fmin=fR/2 (2)
為了得到較小分辨率,在實際工程設(shè)計中,N一般取得較大值,該系統(tǒng)是N取32位設(shè)計的。
3 關(guān)鍵器件選型
本設(shè)計所用到的關(guān)鍵器件主要是可編程邏輯器件(FPGA)和D/A轉(zhuǎn)換器??紤]設(shè)計成本等因素,F(xiàn)PGA采用Altera公司的低成本Cyclone系列EPlC6Q240C8.該器件采用邏輯陣列模塊(LAB)和查找表(LUT)結(jié)構(gòu),內(nèi)核采用1.5 V電壓供電,是低功耗元件。此外,Cyclone系列EPlC60240C8內(nèi)部資源豐富,其內(nèi)部內(nèi)嵌5 980個邏輯單元(LE),20個4 KB雙口存儲單元(M 4 KB RAM block)和92 160 bit普通高速RAM等資源,因此,能較好滿足該系統(tǒng)設(shè)計要求。而D/A轉(zhuǎn)換器則采用National Semiconductor公司的DAC0832.
4 DDS的FPGA實現(xiàn)
4.1 相位累加器與相位寄存器的設(shè)計
VerilogHDL是一種硬件描述語言(HDL:HardwareDiscriptionLanguage),是一種以文本形式來描述數(shù)字系統(tǒng)硬件的結(jié)構(gòu)和行為的語言,用它可以表示邏輯電路圖、邏輯表達式,還可以表示數(shù)字邏輯系統(tǒng)所完成的邏輯功能。VerilogHDL和VHDL是目前世界上的兩種硬件描述語言,都是在20世紀80年代中期開發(fā)出來的。前者由GatewayDesignAutomation公司(該公司于1989年被Cadence公司收購)開發(fā)。兩種HDL均為IEEE標準。
相位累加器與相位寄存器主要完成累加,實現(xiàn)輸出波形頻率可調(diào)功能。利用Quartus II可編程邏輯器件系統(tǒng)開發(fā)工具進行設(shè)計。首先,打開Quartus II軟件,新建一個工程管理文件,然后在此工程管理文件中新建一個Verilog HDL源程序文件,并用硬件描述語言Verilog HDL編寫程序?qū)崿F(xiàn)其功能。在設(shè)計過程中,可在一個模塊中描述。一個參考的Verilog HDL程序如下:
4.2 基于1/4波形的存儲器設(shè)計
為了提高系統(tǒng)的分辨率和降低FPGA資源的利用率,采用基于1/4波形的存儲器設(shè)計技術(shù)。利用正弦波對稱性特點,只要存儲[O~π/2]幅值,通過地址和幅值數(shù)據(jù)變換,即可得到整個周期內(nèi)的正弦波,其設(shè)計原理如圖2所示。
用相位累加器輸出高2位,作為波形區(qū)間標志位。當(dāng)位與次高位都為"0"時,表示輸出正弦波正處在[0~π/2]區(qū)間內(nèi),這時,地址與輸出數(shù)據(jù)都不需要變換;當(dāng)位為"0",次高位為"l"時,輸出正弦波正處在[π/2~π]區(qū)間內(nèi),這時,地址變換器對地址進行求補操作,而輸出數(shù)據(jù)不變;當(dāng)位為"l",次高位為"0"時,輸出正弦波正處在[π~3π/2]區(qū)間內(nèi),這時,地址不變,而輸出變換器對輸出數(shù)據(jù)進行求補操作;當(dāng)位與次高位都為"l"時,輸出正弦波正處在[3π/2~2π]區(qū)間內(nèi),這時,地址和輸出數(shù)據(jù)都進行求補操作。
5 D/A轉(zhuǎn)換電路
數(shù)據(jù)轉(zhuǎn)換器輸出的數(shù)據(jù)是數(shù)字形式的電壓值,為實現(xiàn)數(shù)字電壓值與模擬電壓值之間的轉(zhuǎn)換,系統(tǒng)還專門設(shè)計D/A轉(zhuǎn)換電路,其D/A轉(zhuǎn)換電路原理圖如圖3所示。
為降低設(shè)計成本,采用8位廉價DAC0832作為轉(zhuǎn)換器。該器件是倒T型電阻網(wǎng)絡(luò)型D/A轉(zhuǎn)換器,因其內(nèi)部無運算放大器,輸出為電流,所以要外接運算放大器,本文采用LM324型運算放大器。DAC0832可根據(jù)實際情況接成雙緩沖、單緩沖和直沖3種形式,這里采用第3種連接形式,即引腳1、引腳2、引腳17、引腳18接低電平,引腳19接+5 V.引腳8為參考電壓輸入端口。接至+1O V的電源,當(dāng)數(shù)字輸入端全為高電平時,模擬輸出端為+10 V.
6 驗證結(jié)果
為驗證本系統(tǒng)的設(shè)計正確性,利用Ouarlus II軟件的嵌入式邏輯分析儀分析信號的波形。在工程管理文件中,首先新建一個SignalTap文件,并在SignalTap文件中添加要驗證的信號引腳和設(shè)置相關(guān)的參數(shù),然后保存、編譯和到EPlC6Q240C8中,再啟動嵌入式邏輯分析儀就可實時觀察到相應(yīng)的引腳波形,圖4為在硬件環(huán)境中應(yīng)用嵌入式邏輯分析儀觀察到的波形。其中,圖4a為由DDS硬件合成的正弦波形;圖4b為由DDS硬件合成的矩形波形;圖4c為由DDS硬件合成的三角波形。觀察結(jié)果表明,該系統(tǒng)輸出的各種波形穩(wěn)定,與設(shè)計要求一致,從而有效驗證了該設(shè)計的正確性。
7 結(jié)論
直接數(shù)字頻率合成(DDS)技術(shù)屬第三代頻率合成技術(shù),與第二代基于鎖相環(huán)頻率合成技術(shù)相比,利用DDS技術(shù)合成的輸出波形具有良好的性能指標。本文在DDS技術(shù)工作原理的基礎(chǔ)上,介紹基于FPGA實現(xiàn)DDS的設(shè)計方法,并給出該系統(tǒng)合成的波形,從測試結(jié)果可看出,該系統(tǒng)工作穩(wěn)定、可靠,并具有較好的參考與實用價值。
有你想看的精彩 至芯科技-FPGA就業(yè)培訓(xùn)來襲!你的選擇開啟你的高薪之路!7月12號北京中心開課、歡迎咨詢! 利用FPGA進行基本運算及特殊函數(shù)定點運算 如何在FPGA中實現(xiàn)狀態(tài)機
掃碼加微信邀請您加入FPGA學(xué)習(xí)交流群
歡迎加入至芯科技FPGA微信學(xué)習(xí)交流群,這里有一群優(yōu)秀的FPGA工程師、學(xué)生、老師、這里FPGA技術(shù)交流學(xué)習(xí)氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!
點個在看你最好看
原文標題:FPGA和DDS在信號源中的應(yīng)用
文章出處:【微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21738瀏覽量
603461
原文標題:FPGA和DDS在信號源中的應(yīng)用
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論