基于FPGA和DDS的信號(hào)源研究與設(shè)計(jì)
1 引言
直接數(shù)字頻率合成DDS(Direct Digital Synthesizer)是基于奈奎斯特抽樣定理理論和現(xiàn)代器件生產(chǎn)技術(shù)發(fā)展的一種新的頻率合成技術(shù)。與第二代基于鎖相環(huán)頻率合成技術(shù)相比,DDS具有頻率切換時(shí)間短、頻率分辨率高、相位可連續(xù)變化和輸出波形靈活等優(yōu)點(diǎn),因此,廣泛應(yīng)用于教學(xué)科研、通信、雷達(dá)、自動(dòng)控制和電子測(cè)量等領(lǐng)域。該技術(shù)的常用方法是利用性能優(yōu)良的DDS專(zhuān)用器件,“搭積木”式設(shè)計(jì)電路,這種“搭積木”式設(shè)計(jì)電路方法雖然直觀(guān),但DDS專(zhuān)用器件價(jià)格較貴,輸出波形單一,使用受到一定限制,特別不適合于輸出波形多樣化的應(yīng)用場(chǎng)合。隨著高速可編程邏輯器件FPGA的發(fā)展,電子工程師可根據(jù)實(shí)際需求,在單一FPGA上開(kāi)發(fā)出性能優(yōu)良的具有任意波形的DDS系統(tǒng),極大限度地簡(jiǎn)化設(shè)計(jì)過(guò)程并提高效率。本文在討論DDS的基礎(chǔ)上,介紹利用FPGA設(shè)計(jì)的基于DDS的信號(hào)發(fā)生器。
2 DDS技術(shù)工作原理
DDS是一種從相位概念出發(fā)直接合成所需波形的數(shù)字頻率合成技術(shù),主要通過(guò)查波形表實(shí)現(xiàn)。由奈奎斯特抽樣定理理論可知,當(dāng)抽樣頻率大于被抽樣信號(hào)的最高頻率2倍時(shí),通過(guò)抽樣得到的數(shù)字信號(hào)可通過(guò)一個(gè)低通濾波器還原成原來(lái)的信號(hào)。DDS信號(hào)發(fā)生器,主要由相位累加器、相位寄存器、波形存儲(chǔ)器、D/A
由圖1可知,在參考時(shí)鐘fR的控制下,頻率控制字K與相位寄存器的輸出反饋在相位累加器中完成加運(yùn)算,并把計(jì)算結(jié)果寄存于相位寄存器,作為下一次加運(yùn)算的一個(gè)輸入值。相位累加器輸出高位數(shù)據(jù)作為波形存儲(chǔ)器的相位抽樣地址值,查找波形存儲(chǔ)器中相對(duì)應(yīng)單元的電壓幅值,得到波形二進(jìn)制編碼,實(shí)現(xiàn)相位到電壓幅值的轉(zhuǎn)變。波形二進(jìn)制編碼再通過(guò)D/A轉(zhuǎn)換器,把數(shù)字信號(hào)轉(zhuǎn)換成相應(yīng)的模擬信號(hào)。低通濾波器可進(jìn)一步濾除模擬信號(hào)中的高頻成分,平滑模擬信號(hào)。在整個(gè)過(guò)程中,當(dāng)相位累加器產(chǎn)生一次溢出時(shí),DDS系統(tǒng)就完成一個(gè)周期輸出任務(wù)。頻率控制字K與輸出波形頻率的函數(shù)表達(dá)關(guān)系式為:
f0=(K/2N)fR (1)
式中,K為頻率控制字;fR為參考時(shí)鐘,N為累加器的位寬值。
當(dāng)K=l時(shí),可得DDS的最小分辨率為:
fmin=fR/2 (2)
為了得到較小分辨率,在實(shí)際工程設(shè)計(jì)中,N一般取得較大值,該系統(tǒng)是N取32位設(shè)計(jì)的。
3 關(guān)鍵器件選型
本設(shè)計(jì)所用到的關(guān)鍵器件主要是可編程邏輯器件(FPGA)和D/A轉(zhuǎn)換器??紤]設(shè)計(jì)成本等因素,F(xiàn)PGA采用Altera公司的低成本Cyclone系列EPlC6Q240C8。該器件采用邏輯陣列模塊(LAB)和查找表(LUT)結(jié)構(gòu),內(nèi)核采用1.5 V電壓供電,是低功耗元件。此外,Cyclone系列EPlC60240C8內(nèi)部資源豐富,其內(nèi)部?jī)?nèi)嵌5 980個(gè)邏輯單元(LE),20個(gè)4 KB雙口存儲(chǔ)單元(M 4 KB RAM block)和92 160 bit普通高速RAM等資源,因此,能較好滿(mǎn)足該系統(tǒng)設(shè)計(jì)要求。而D/A轉(zhuǎn)換器則采用National Semiconductor公司的
4 DDS的FPGA實(shí)現(xiàn)
4.1 相位累加器與相位寄存器的設(shè)計(jì)
相位累加器與相位寄存器主要完成累加,實(shí)現(xiàn)輸出波形頻率可調(diào)功能。利用Quartus II可編程邏輯器件系統(tǒng)開(kāi)發(fā)工具進(jìn)行設(shè)計(jì)。首先,打開(kāi)Quartus II軟件,新建一個(gè)工程管理文件,然后在此工程管理文件中新建一個(gè)Verilog HDL源程序文件,并用硬件描述語(yǔ)言Verilog HDL編寫(xiě)程序?qū)崿F(xiàn)其功能。在設(shè)計(jì)過(guò)程中,可在一個(gè)模塊中描述。一個(gè)參考的Verilog HDL程序如下:
評(píng)論