《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA直接數(shù)字頻率合成兩種控制電路設(shè)計(jì)
基于FPGA直接數(shù)字頻率合成兩種控制電路設(shè)計(jì)
摘要: 本文介紹了利用FPGA 器件實(shí)現(xiàn)直接數(shù)字頻率合成的兩種控制電路方案,即采用相位累加器和比例乘法器實(shí)現(xiàn)控制,。介紹了它們工作原理和設(shè)計(jì)實(shí)現(xiàn),??刂齐娐吩O(shè)計(jì)采用VHDL 語言和原理圖相結(jié)合的形式,在FPGA 芯片EPF10K 片內(nèi)實(shí)現(xiàn),。由此控制電路組成的直接數(shù)字頻率合成與單片機(jī)相結(jié)合,,可以方便、靈活和準(zhǔn)確地實(shí)現(xiàn)信號(hào)發(fā)生器,。
關(guān)鍵詞: FPGA DDS VHDL 數(shù)字頻率合成
Abstract:
Key words :

  一.概述

  頻率合成主要有三種方法:直接模擬合成法,、鎖相環(huán)合成法和直接數(shù)字合成法(Direct Digital Frequency Synthesis,一般簡(jiǎn)稱DDS)。直接模擬合成法利用倍頻,、分頻,、混頻及濾波,從單一或幾個(gè)參考頻率中產(chǎn)生多個(gè)所需的頻率,。該方法頻率轉(zhuǎn)換時(shí)間短,,但是體積大、功耗大,,目前已基本不被采用,。鎖相環(huán)合成法通過鎖相環(huán)完成頻率的加、減,、乘,、除運(yùn)算。該方法結(jié)構(gòu)簡(jiǎn)化,、便于集成,,且頻譜純度高,目前使用比較廣泛,,但存在高分辨率和快轉(zhuǎn)換速度之間的矛盾,,一般只能用于大步進(jìn)頻率合成技術(shù)中,。DDS 是近年來迅速發(fā)展起來的一種新的頻率合成方法。該方法與前兩種方法相比,,這種方法簡(jiǎn)單可靠,、控制方便,且具有很高的頻率分辨率和轉(zhuǎn)換速度,,可以實(shí)現(xiàn)可編程和全數(shù)字化,,控制靈活方便,并具有極高的性價(jià)比,。

  目前雖然有很多專用DDS 芯片,,但控制方式卻是固定的,在某些場(chǎng)合,,專用的DDS 芯片在控制方式,、置頻速率等方面與系統(tǒng)的要求差距很大,不一定是我們所需要的,。而用高性能的FPGA 器件設(shè)計(jì)符合自己需要的DDS 電路是一個(gè)很好的方法,。可編程邏輯器件以其速度高,、規(guī)模大,、可編程,,以及有強(qiáng)大EDA軟件支持等特性,,十分適合實(shí)現(xiàn)DDS 技術(shù)。

  DDS 的原理框圖如圖1,,控制電路按照一定的地址關(guān)系從存儲(chǔ)器中讀取數(shù)據(jù),,進(jìn)行數(shù)摸轉(zhuǎn)換,就可以得到一定頻率的輸出波形,,再通過濾波器對(duì)輸出波形進(jìn)行平滑處理,。

DDS 原理框圖

圖1 DDS 原理框圖

  基于FPGA 的DDS 控制電路的實(shí)現(xiàn)有采用相位累加和比例乘法器兩種方案,下面將分別介紹,。

  二.采用相位累加控制實(shí)現(xiàn)DDS

  1.工作原理

  電路如圖2 所示,,相位累加器由N位加法器與N位相位寄存器級(jí)聯(lián)構(gòu)成,類似于一個(gè)簡(jiǎn)單的加法器,。每來一個(gè)時(shí)鐘脈沖fclk,,加法器就將頻率控制字M 與相位寄存器輸出的累加相位數(shù)據(jù)相加,然后把相加后的結(jié)果送至相位寄存器輸入端,。相位寄存器在下一個(gè)時(shí)鐘的作用下就將加法器在上一個(gè)時(shí)鐘作用后產(chǎn)生的新相位數(shù)據(jù)反饋到加法器的輸入端,,以使加法器繼續(xù)將相位數(shù)據(jù)與頻率控制字M 相加。頻率控制字M 由累加器累加以得到相應(yīng)的這個(gè)相位數(shù)據(jù)將作為取樣地址值送入的波形存儲(chǔ)器,,波形存儲(chǔ)器根據(jù)這個(gè)地址輸出相應(yīng)的波形數(shù)據(jù),。最后經(jīng)D/A 轉(zhuǎn)換器和低通濾波器將波形數(shù)據(jù)轉(zhuǎn)換成所需要的模擬波形,。

相位累加器

圖2 相位累加器

  當(dāng)相位累加器累加滿量時(shí),就會(huì)產(chǎn)生一次溢出,,完成一個(gè)周期性的動(dòng)作,,這個(gè)周期就是合成信號(hào)的一個(gè)周期,累加器的溢出頻率也就是DDS 的合成信號(hào)頻率,。

  根據(jù)以上原理,,輸出信號(hào)頻率與累加器時(shí)鐘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)值時(shí),,采樣點(diǎn)數(shù)最多,。設(shè)計(jì)中根據(jù)所要求的最高頻率和最少采樣點(diǎn)數(shù)可確定需要的fclk;根據(jù)最小步進(jìn)和fclk,,可確定N 的位數(shù),;根據(jù)最高輸出頻率和最小步進(jìn)可確定M 的位數(shù)。

  2.設(shè)計(jì)實(shí)現(xiàn)

  如要求設(shè)計(jì)產(chǎn)生頻率范圍為0HZ~~160KHZ,,頻率的最小步進(jìn)為5HZ 的信號(hào),。

  根據(jù)公式可計(jì)算出fclk、N,、和M ,。f0 若達(dá)到160KHZ,采樣點(diǎn)數(shù)達(dá)64 點(diǎn),,則累加器時(shí)鐘fclk 為不小于10.24MHZ,;為實(shí)現(xiàn)5HZ 的步進(jìn),此時(shí)采樣點(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ì),,其高九位給波形存儲(chǔ)器作為地址,,根據(jù)以上要求的VHDL 設(shè)計(jì),,編譯成功后自動(dòng)生成的邏輯符號(hào)如圖3 所示。

XWLJ 邏輯符號(hào)

圖3 XWLJ 邏輯符號(hào)

  若當(dāng)頻率控制字為M=0100H 時(shí),,其仿真波形如圖4 所示,。可以看出,,N 的輸出高九位按設(shè)計(jì)要求實(shí)現(xiàn)了相位累加的功能,。

相位累加器仿真波形

圖4 相位累加器仿真波形

  三.采用比例乘法器控制實(shí)現(xiàn)DDS

  1.比例乘法器工作原理

  根據(jù)硬件比例乘法器(CC14527)的原理,我們對(duì)其進(jìn)行VHDL 設(shè)計(jì)實(shí)現(xiàn),。其完成的功能為:ST為片選信號(hào),,當(dāng)ST 有效時(shí),在CLK 每十個(gè)脈沖中輸出端Q 將輸出DATA[3..0](0~9)個(gè)脈沖,,同時(shí)在CLK 滿10 個(gè)脈沖時(shí),,C 端產(chǎn)生一個(gè)脈沖控制信號(hào)。在Max+plusⅡ下編譯成功后自動(dòng)生成的邏輯符號(hào)MUL 如圖5 所示,。其仿真波形如圖6,,可以看出,當(dāng)data 為4,,在clk 十個(gè)脈沖中,, q 輸出4 個(gè)脈沖,在CLK 滿10 個(gè)脈沖時(shí),,C 端產(chǎn)生一個(gè)脈沖控制信號(hào),,完全實(shí)現(xiàn)了比例乘法器功能。

比例乘法器的邏輯符號(hào)

圖5 比例乘法器的邏輯符號(hào)

 

比例乘法器仿真波形

圖6 比例乘法器仿真波形

  2 設(shè)計(jì)實(shí)現(xiàn)

  在兩個(gè)比例乘法器級(jí)聯(lián)時(shí),,令高位輸入數(shù)據(jù)q0,,低位輸入數(shù)據(jù)q1,在每10 個(gè)脈沖中高位輸出q0個(gè)脈沖,,同時(shí)高位C 端禁止低位CLK 進(jìn)入,當(dāng)高位滿10 個(gè)脈沖后高位C 端允許低位CLK 進(jìn)入1 個(gè)脈沖,,這樣在100 個(gè)脈沖中整體上將輸出10q0+q1 個(gè)脈沖,。于是在n 級(jí)級(jí)聯(lián)后,若輸入頻率為f,,則輸出脈沖頻率為[10 n-1q0+10n-2q1+…+10q(n-2)+q(n-1)]f/10n,。

  在Max+plusⅡ軟件環(huán)境下,對(duì)上面采用VHDL 語言已經(jīng)實(shí)現(xiàn)的比例乘法器模塊MUL,,采用6 級(jí)級(jí)聯(lián)產(chǎn)生DDS 控制電路頂層圖如圖7 所示,, 為了清楚地顯示設(shè)計(jì)功能,仿真時(shí)q0 取1,,q1 取2,,其仿真波形如圖8 所示,,可以看出,在CLK 的100 個(gè)脈沖中,,q 輸出12 個(gè)脈沖,。在給定輸入下,完全實(shí)現(xiàn)了設(shè)計(jì)的功能,。

MUL 級(jí)聯(lián)構(gòu)成的DDS 控制電路

 

圖7 MUL 級(jí)聯(lián)構(gòu)成的DDS 控制電路

MUL 級(jí)聯(lián)構(gòu)成的DDS 控制電路的仿真波形

 

圖8 MUL 級(jí)聯(lián)構(gòu)成的DDS 控制電路的仿真波形

  若在單片機(jī)的控制下,,F(xiàn)PGA 接收單片機(jī)傳送過來的用戶要求的波形數(shù)據(jù),及其頻率數(shù)據(jù),并送到FPGA 以產(chǎn)生所需要的輸出頻率值,。若時(shí)鐘信號(hào)為16MHz 時(shí),,則產(chǎn)生的頻率為實(shí)際所置頻率的16 倍。在用戶給定某一頻率后,,通過單片機(jī)將其乘8 后再送給FPGA,,乘法器再將其擴(kuò)大16 倍,得到用戶預(yù)置頻率128 倍頻,,故可以對(duì)波形的采樣點(diǎn)達(dá)128 個(gè),,提高波形準(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)任意信號(hào)發(fā)生電路的設(shè)計(jì)。 以上兩種控制方案,,只要累加器位數(shù)和比例乘法器級(jí)聯(lián)足夠多,,就可以實(shí)現(xiàn)頻率的步進(jìn)小,產(chǎn)生的頻率信號(hào)準(zhǔn)確,,穩(wěn)定性好,,頻率的分辨率高,頻率轉(zhuǎn)換快,,容易控制,。FPGA 的功能完全取決于設(shè)計(jì)需求,具有相當(dāng)大的靈活性,,比購買專用DDS 芯片具有很高的性價(jià)比,。基于FPGA 的DDS 控制技術(shù),,將在現(xiàn)代化電子系統(tǒng)和儀器儀表工業(yè)等領(lǐng)域廣泛應(yīng)用,。

  本文作者創(chuàng)新點(diǎn):在本文中,給出了兩種基于FPGA 的DDS 控制電路,增加了設(shè)計(jì)的選擇性,,從而可以根據(jù)設(shè)計(jì)外圍電路要求,,選擇一種更適合于系統(tǒng)設(shè)計(jì)的DDS 控制電路,可以使設(shè)計(jì)更加靈活,、方便,,易于實(shí)現(xiàn)。

  參考文獻(xiàn):

  [1] 黃正謹(jǐn). CPLD 系統(tǒng)設(shè)計(jì)入門與應(yīng)用 [M].北京.電子工業(yè)出版社,2002

  [2] 侯伯亨 顧新. VHDL 硬件描述語言與數(shù)字邏輯電路設(shè)計(jì). [M].西安. 西安電子科技大學(xué)出版社,,1999

  [3] 高速雷達(dá)數(shù)字信號(hào)發(fā)生器的FPGA 設(shè)計(jì)與實(shí)現(xiàn)技巧. [J].微計(jì)算機(jī)信息,,2006 年,第3-2 期,,166-168 頁

  [4] 李景華 杜玉遠(yuǎn).可編程邏輯器件及EDA 技術(shù). [M].沈陽.東北大學(xué)出版社.2000

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。