一.概述
頻率合成主要有三種方法:直接模擬合成法、鎖相環(huán)合成法和直接數(shù)字合成法(Direct Digital Frequency Synthesis,一般簡稱DDS)。直接模擬合成法利用倍頻、分頻、混頻及濾波,從單一或幾個參考頻率中產(chǎn)生多個所需的頻率。該方法頻率轉(zhuǎn)換時間短,但是體積大、功耗大,目前已基本不被采用。鎖相環(huán)合成法通過鎖相環(huán)完成頻率的加、減、乘、除運(yùn)算。該方法結(jié)構(gòu)簡化、便于集成,且頻譜純度高,目前使用比較廣泛,但存在高分辨率和快轉(zhuǎn)換速度之間的矛盾,一般只能用于大步進(jìn)頻率合成技術(shù)中。DDS 是近年來迅速發(fā)展起來的一種新的頻率合成方法。該方法與前兩種方法相比,這種方法簡單可靠、控制方便,且具有很高的頻率分辨率和轉(zhuǎn)換速度,可以實(shí)現(xiàn)可編程和全數(shù)字化,控制靈活方便,并具有極高的性價比。
目前雖然有很多專用DDS 芯片,但控制方式卻是固定的,在某些場合,專用的DDS 芯片在控制方式、置頻速率等方面與系統(tǒng)的要求差距很大,不一定是我們所需要的。而用高性能的FPGA 器件設(shè)計符合自己需要的DDS 電路是一個很好的方法??删幊踢壿嬈骷云渌俣雀摺⒁?guī)模大、可編程,以及有強(qiáng)大EDA軟件支持等特性,十分適合實(shí)現(xiàn)DDS 技術(shù)。
DDS 的原理框圖如圖1,控制電路按照一定的地址關(guān)系從存儲器中讀取數(shù)據(jù),進(jìn)行數(shù)摸轉(zhuǎn)換,就可以得到一定頻率的輸出波形,再通過濾波器對輸出波形進(jìn)行平滑處理。
圖1 DDS 原理框圖
基于FPGA 的DDS 控制電路的實(shí)現(xiàn)有采用相位累加和比例乘法器兩種方案,下面將分別介紹。
二.采用相位累加控制實(shí)現(xiàn)DDS
1.工作原理
電路如圖2 所示,相位累加器由N位加法器與N位相位寄存器級聯(lián)構(gòu)成,類似于一個簡單的加法器。每來一個時鐘脈沖fclk,加法器就將頻率控制字M 與相位寄存器輸出的累加相位數(shù)據(jù)相加,然后把相加后的結(jié)果送至相位寄存器輸入端。相位寄存器在下一個時鐘的作用下就將加法器在上一個時鐘作用后產(chǎn)生的新相位數(shù)據(jù)反饋到加法器的輸入端,以使加法器繼續(xù)將相位數(shù)據(jù)與頻率控制字M 相加。頻率控制字M 由累加器累加以得到相應(yīng)的這個相位數(shù)據(jù)將作為取樣地址值送入的波形存儲器,波形存儲器根據(jù)這個地址輸出相應(yīng)的波形數(shù)據(jù)。最后經(jīng)D/A 轉(zhuǎn)換器和低通濾波器將波形數(shù)據(jù)轉(zhuǎn)換成所需要的模擬波形。
圖2 相位累加器
當(dāng)相位累加器累加滿量時,就會產(chǎn)生一次溢出,完成一個周期性的動作,這個周期就是合成信號的一個周期,累加器的溢出頻率也就是DDS 的合成信號頻率。
根據(jù)以上原理,輸出信號頻率與累加器時鐘fclk, 累加器位數(shù)N,相位增量M 的關(guān)系為f0=(fclk, • M )/ 2N 。其中:采樣點(diǎn)為2N/M,若fclk,一定,f0 越高,采樣點(diǎn)數(shù)越少;最小步進(jìn)為fclk/2N,達(dá)到最小步進(jìn)值時,采樣點(diǎn)數(shù)最多。設(shè)計中根據(jù)所要求的最高頻率和最少采樣點(diǎn)數(shù)可確定需要的fclk;根據(jù)最小步進(jìn)和fclk,可確定N 的位數(shù);根據(jù)最高輸出頻率和最小步進(jìn)可確定M 的位數(shù)。
2.設(shè)計實(shí)現(xiàn)
如要求設(shè)計產(chǎn)生頻率范圍為0HZ~~160KHZ,頻率的最小步進(jìn)為5HZ 的信號。
根據(jù)公式可計算出fclk、N、和M 。f0 若達(dá)到160KHZ,采樣點(diǎn)數(shù)達(dá)64 點(diǎn),則累加器時鐘fclk 為不小于10.24MHZ;為實(shí)現(xiàn)5HZ 的步進(jìn),此時采樣點(diǎn)數(shù)最多,有 5= fclk / 2N ,得到N=21,即累加器為21 位;最終輸出頻率與相位增量M 的關(guān)系為f0 =5M,由于最高達(dá)到160KHZ,則M≥160000/5=32000,而215=32768,所以選擇相位增量的位數(shù)為15 位。相位累加器XWLJ 采用VHDL 設(shè)計,其高九位給波形存儲器作為地址,根據(jù)以上要求的VHDL 設(shè)計,編譯成功后自動生成的邏輯符號如圖3 所示。
圖3 XWLJ 邏輯符號
若當(dāng)頻率控制字為M=0100H 時,其仿真波形如圖4 所示??梢钥闯?,N 的輸出高九位按設(shè)計要求實(shí)現(xiàn)了相位累加的功能。
圖4 相位累加器仿真波形
三.采用比例乘法器控制實(shí)現(xiàn)DDS
1.比例乘法器工作原理
根據(jù)硬件比例乘法器(CC14527)的原理,我們對其進(jìn)行VHDL 設(shè)計實(shí)現(xiàn)。其完成的功能為:ST為片選信號,當(dāng)ST 有效時,在CLK 每十個脈沖中輸出端Q 將輸出DATA[3..0](0~9)個脈沖,同時在CLK 滿10 個脈沖時,C 端產(chǎn)生一個脈沖控制信號。在Max+plusⅡ下編譯成功后自動生成的邏輯符號MUL 如圖5 所示。其仿真波形如圖6,可以看出,當(dāng)data 為4,在clk 十個脈沖中, q 輸出4 個脈沖,在CLK 滿10 個脈沖時,C 端產(chǎn)生一個脈沖控制信號,完全實(shí)現(xiàn)了比例乘法器功能。
圖5 比例乘法器的邏輯符號
圖6 比例乘法器仿真波形
2 設(shè)計實(shí)現(xiàn)
在兩個比例乘法器級聯(lián)時,令高位輸入數(shù)據(jù)q0,低位輸入數(shù)據(jù)q1,在每10 個脈沖中高位輸出q0個脈沖,同時高位C 端禁止低位CLK 進(jìn)入,當(dāng)高位滿10 個脈沖后高位C 端允許低位CLK 進(jìn)入1 個脈沖,這樣在100 個脈沖中整體上將輸出10q0+q1 個脈沖。于是在n 級級聯(lián)后,若輸入頻率為f,則輸出脈沖頻率為[10 n-1q0+10n-2q1+…+10q(n-2)+q(n-1)]f/10n。
在Max+plusⅡ軟件環(huán)境下,對上面采用VHDL 語言已經(jīng)實(shí)現(xiàn)的比例乘法器模塊MUL,采用6 級級聯(lián)產(chǎn)生DDS 控制電路頂層圖如圖7 所示, 為了清楚地顯示設(shè)計功能,仿真時q0 取1,q1 取2,其仿真波形如圖8 所示,可以看出,在CLK 的100 個脈沖中,q 輸出12 個脈沖。在給定輸入下,完全實(shí)現(xiàn)了設(shè)計的功能。
圖7 MUL 級聯(lián)構(gòu)成的DDS 控制電路
圖8 MUL 級聯(lián)構(gòu)成的DDS 控制電路的仿真波形
若在單片機(jī)的控制下,F(xiàn)PGA 接收單片機(jī)傳送過來的用戶要求的波形數(shù)據(jù),及其頻率數(shù)據(jù),并送到FPGA 以產(chǎn)生所需要的輸出頻率值。若時鐘信號為16MHz 時,則產(chǎn)生的頻率為實(shí)際所置頻率的16 倍。在用戶給定某一頻率后,通過單片機(jī)將其乘8 后再送給FPGA,乘法器再將其擴(kuò)大16 倍,得到用戶預(yù)置頻率128 倍頻,故可以對波形的采樣點(diǎn)達(dá)128 個,提高波形準(zhǔn)確度,很容易實(shí)現(xiàn)低值的頻率步進(jìn),步進(jìn)可以降低到1Hz。
3. 結(jié)論
實(shí)踐證明,通過FPGA 實(shí)現(xiàn)的DDS 控制電路與其它的控制芯片如單片機(jī)等相結(jié)合,可以準(zhǔn)確、靈活和方便地實(shí)現(xiàn)任意信號發(fā)生電路的設(shè)計。 以上兩種控制方案,只要累加器位數(shù)和比例乘法器級聯(lián)足夠多,就可以實(shí)現(xiàn)頻率的步進(jìn)小,產(chǎn)生的頻率信號準(zhǔn)確,穩(wěn)定性好,頻率的分辨率高,頻率轉(zhuǎn)換快,容易控制。FPGA 的功能完全取決于設(shè)計需求,具有相當(dāng)大的靈活性,比購買專用DDS 芯片具有很高的性價比?;贔PGA 的DDS 控制技術(shù),將在現(xiàn)代化電子系統(tǒng)和儀器儀表工業(yè)等領(lǐng)域廣泛應(yīng)用。
本文作者創(chuàng)新點(diǎn):在本文中,給出了兩種基于FPGA 的DDS 控制電路,增加了設(shè)計的選擇性,從而可以根據(jù)設(shè)計外圍電路要求,選擇一種更適合于系統(tǒng)設(shè)計的DDS 控制電路,可以使設(shè)計更加靈活、方便,易于實(shí)現(xiàn)。
參考文獻(xiàn):
[1] 黃正謹(jǐn). CPLD 系統(tǒng)設(shè)計入門與應(yīng)用 [M].北京.電子工業(yè)出版社,2002
[2] 侯伯亨 顧新. VHDL 硬件描述語言與數(shù)字邏輯電路設(shè)計. [M].西安. 西安電子科技大學(xué)出版社,1999
[3] 高速雷達(dá)數(shù)字信號發(fā)生器的FPGA 設(shè)計與實(shí)現(xiàn)技巧. [J].微計算機(jī)信息,2006 年,第3-2 期,166-168 頁
[4] 李景華 杜玉遠(yuǎn).可編程邏輯器件及EDA 技術(shù). [M].沈陽.東北大學(xué)出版社.2000