FPGA和DDS在信號(hào)源中的應(yīng)用
1引言
本文引用地址:http://2s4d.com/article/275210.htmDDS同DSP(數(shù)字信號(hào)處理)一樣,是一項(xiàng)關(guān)鍵的數(shù)字化技術(shù)。DDS是直接數(shù)字式頻率合成器(DirectDigitalSynthesizer)的英文縮寫。與傳統(tǒng)的頻率合成器相比,DDS具有低成本、低功耗、高分辨率和快速轉(zhuǎn)換時(shí)間等優(yōu)點(diǎn),廣泛使用在電信與電子儀器領(lǐng)域,是實(shí)現(xiàn)設(shè)備全數(shù)字化的一個(gè)關(guān)鍵技術(shù)。在各行各業(yè)的測(cè)試應(yīng)用中,信號(hào)源扮演著極為重要的作用。但信號(hào)源具有許多不同的類型,不同類型的信號(hào)源在功能和特性上各不相同,分別適用于許多不同的應(yīng)用。目前,最常見的信號(hào)源類型包括任意波形發(fā)生器,函數(shù)發(fā)生器,RF信號(hào)源,以及基本的模擬輸出模塊。信號(hào)源中采用DDS技術(shù)在當(dāng)前的測(cè)試測(cè)量行業(yè)已經(jīng)逐漸稱為一種主流的做法。但DDS專用器件價(jià)格較貴,輸出波形單一,使用受到一定限制,特別不適合于輸出波形多樣化的應(yīng)用場(chǎng)合。隨著高速可編程邏輯器件FPGA的發(fā)展,電子工程師可根據(jù)實(shí)際需求,在單一FPGA上開發(fā)出性能優(yōu)良的具有任意波形的DDS系統(tǒng),極大限度地簡(jiǎn)化設(shè)計(jì)過程并提高效率。本文在討論DDS的基礎(chǔ)上,介紹利用FPGA設(shè)計(jì)的基于DDS的信號(hào)發(fā)生器。
2 DDS技術(shù)工作原理
一塊DDS芯片中主要包括頻率控制寄存器、高速相位累加器和正弦計(jì)算器三個(gè)部分(如Q2220)。頻率控制寄存器可以串行或并行的方式裝載并寄存用戶輸入的頻率控制碼;而相位累加器根據(jù)頻率控制碼在每個(gè)時(shí)鐘周期內(nèi)進(jìn)行相位累加,得到一個(gè)相位值;正弦計(jì)算器則對(duì)該相位值計(jì)算數(shù)字化正弦波幅度(芯片一般通過查表得到)。DDS芯片輸出的一般是數(shù)字化的正弦波,因此還需經(jīng)過高速D/A轉(zhuǎn)換器和低通濾波器才能得到一個(gè)可用的模擬頻率信號(hào)。DDS信號(hào)發(fā)生器,主要由相位累加器、相位寄存器、波形存儲(chǔ)器、D/A轉(zhuǎn)換器和模擬低通濾波器組成如圖1所示。fR為參考時(shí)鐘,K為輸入頻率控制字,其值與輸出頻率相對(duì)應(yīng),因此,控制輸入控制字K,就能有效控制輸出頻率值。通常情況下,K值由控制器寫入。
圖1 DDS信號(hào)發(fā)生器組成原理圖
由圖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)制編碼再通過D/A轉(zhuǎn)換器,把數(shù)字信號(hào)轉(zhuǎn)換成相應(yīng)的模擬信號(hào)。低通濾波器可進(jìn)一步濾除模擬信號(hào)中的高頻成分,平滑模擬信號(hào)。在整個(gè)過程中,當(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等資源,因此,能較好滿足該系統(tǒng)設(shè)計(jì)要求。而D/A轉(zhuǎn)換器則采用National Semiconductor公司的DAC0832.
4 DDS的FPGA實(shí)現(xiàn)
4.1相位累加器與相位寄存器的設(shè)計(jì)
VerilogHDL是一種硬件描述語言(HDL:HardwareDiscriptionLanguage),是一種以文本形式來描述數(shù)字系統(tǒng)硬件的結(jié)構(gòu)和行為的語言,用它可以表示邏輯電路圖、邏輯表達(dá)式,還可以表示數(shù)字邏輯系統(tǒng)所完成的邏輯功能。VerilogHDL和VHDL是目前世界上最流行的兩種硬件描述語言,都是在20世紀(jì)80年代中期開發(fā)出來的。前者由GatewayDesignAutomation公司(該公司于1989年被Cadence公司收購(gòu))開發(fā)。兩種HDL均為IEEE標(biāo)準(zhǔn)。
相位累加器與相位寄存器主要完成累加,實(shí)現(xiàn)輸出波形頻率可調(diào)功能。利用Quartus II可編程邏輯器件系統(tǒng)開發(fā)工具進(jìn)行設(shè)計(jì)。首先,打開Quartus II軟件,新建一個(gè)工程管理文件,然后在此工程管理文件中新建一個(gè)Verilog HDL源程序文件,并用硬件描述語言Verilog HDL編寫程序?qū)崿F(xiàn)其功能。在設(shè)計(jì)過程中,可在一個(gè)模塊中描述。一個(gè)參考的Verilog HDL程序如下:
4.2基于1/4波形的存儲(chǔ)器設(shè)計(jì)
為了提高系統(tǒng)的分辨率和降低FPGA資源的利用率,采用基于1/4波形的存儲(chǔ)器設(shè)計(jì)技術(shù)。利用正弦波對(duì)稱性特點(diǎn),只要存儲(chǔ)[O~π/2]幅值,通過地址和幅值數(shù)據(jù)變換,即可得到整個(gè)周期內(nèi)的正弦波,其設(shè)計(jì)原理如圖2所示。
圖2 1/4波形的存儲(chǔ)器件設(shè)計(jì)原理框圖
用相位累加器輸出高2位,作為波形區(qū)間標(biāo)志位。當(dāng)最高位與次高位都為"0"時(shí),表示輸出正弦波正處在[0~π/2]區(qū)間內(nèi),這時(shí),地址與輸出數(shù)據(jù)都不需要變換;當(dāng)最高位為"0",次高位為"l"時(shí),輸出正弦波正處在[π/2~π]區(qū)間內(nèi),這時(shí),地址變換器對(duì)地址進(jìn)行求補(bǔ)操作,而輸出數(shù)據(jù)不變;當(dāng)最高位為"l",次高位為"0"時(shí),輸出正弦波正處在[π~3π/2]區(qū)間內(nèi),這時(shí),地址不變,而輸出變換器對(duì)輸出數(shù)據(jù)進(jìn)行求補(bǔ)操作;當(dāng)最高位與次高位都為"l"時(shí),輸出正弦波正處在[3π/2~2π]區(qū)間內(nèi),這時(shí),地址和輸出數(shù)據(jù)都進(jìn)行求補(bǔ)操作。
5 D/A轉(zhuǎn)換電路
數(shù)據(jù)轉(zhuǎn)換器輸出的數(shù)據(jù)是數(shù)字形式的電壓值,為實(shí)現(xiàn)數(shù)字電壓值與模擬電壓值之間的轉(zhuǎn)換,系統(tǒng)還專門設(shè)計(jì)D/A轉(zhuǎn)換電路,其D/A轉(zhuǎn)換電路原理圖如圖3所示。
圖3 D/A轉(zhuǎn)換電路
模擬信號(hào)相關(guān)文章:什么是模擬信號(hào)
dc相關(guān)文章:dc是什么
fpga相關(guān)文章:fpga是什么
低通濾波器相關(guān)文章:低通濾波器原理
評(píng)論