摘 要:該系統(tǒng)由FPGA、單片機控制模塊、鍵盤、LED顯示組成,采用直接數(shù)字頻率合成(DDS),D/A以及實時計算波形值等技術(shù),設(shè)計出具有頻率設(shè)置功能,頻率步進為100 Hz,頻率范圍為1 kHz~10 MHz之間正弦信號發(fā)生器。該系統(tǒng)的頻率范圍寬,步進小,頻率精度較高。
關(guān)鍵詞:FPGA; SCM; DDS; 正弦信號發(fā)生器
中圖分類號:TN741 文獻標(biāo)識碼:A
文章編號:1004-373X(2010)09-0118-03
Design of Sine Signal Generator Based on FPGA and DDS Technology
MAO Qun, WANG Shi-xu
(Electronics and Information Department, Aba Teachers College, Chengdu 611741, China)
Abstract: The system is composed of FPGA, SCM, keyboard and LED display module. A sine signal generator with frequency setting function was designed by using DDS technique, D/A converting and real-time waveform value computation, whose frequency step is 100 Hz, frequency range is 1 kHz~10 MHz. This system provides wide frequency range, small frequency step and high frequency accuracy.
Keywords: FPGA; SCM; DDS; sine signal generator
0 引 言
1971年,美國學(xué)者J.Tierney等人撰寫的《A Digital Frequency Synthesizer》一文首次提出了以全數(shù)字技術(shù),從相位概念出發(fā)直接合成所需波形的一種新合成原理。限于當(dāng)時的技術(shù),沒有得到重視,但隨著微電子技術(shù)的迅速發(fā)展,它以有別于其他頻率合成方法的優(yōu)越性能和特點成為現(xiàn)代頻率合成技術(shù)的佼佼者,具體體現(xiàn)在相對帶寬寬,頻率轉(zhuǎn)換時間短,頻率分辨率高,輸出相位連續(xù),可產(chǎn)生多種調(diào)制信號,控制靈活方便[1]。因此,對于正弦信號發(fā)生器的設(shè)計,可以采用 DDS,即直接數(shù)字頻率合成方案實現(xiàn)。DDS的輸出頻率是數(shù)字可調(diào)的,完全能實現(xiàn)頻率為1 kHz~10 MHz之間的正弦信號,這是實際應(yīng)用中產(chǎn)生可調(diào)頻率正弦信號波形較為理想的方案。實現(xiàn)DDS常用3種技術(shù)方案:高性能DDS單片電路的解決方案;低頻正弦波DDS單片電路的解決方案;自行設(shè)計的基于FPGA芯片的解決方案。雖然有的專用DDS芯片的功能也比較多,但控制方式卻是固定的,因此不一定滿足用戶需求。而基于FPGA則可以根據(jù)需要方便地實現(xiàn)各種比較復(fù)雜的調(diào)頻、調(diào)相和調(diào)幅功能,具有良好的實用性。專用DDS芯片由于采用特定的集成工藝,內(nèi)部數(shù)字信號抖動很小,可以輸出高質(zhì)量的模擬信號;利用FPGA也能輸出較高質(zhì)量的信號,雖然達不到專用DDS芯片的水平,但信號精度誤差非常小,能滿足大多數(shù)信號源要求[1]。DDS是本系統(tǒng)的關(guān)鍵技術(shù),在介紹本系統(tǒng)之前,先單獨介紹DDS的原理。
1 DDS電路工作原理
1.1 DDS的工作原理
DDS的工作原理是以數(shù)控振蕩器的方式產(chǎn)生頻率、相位可控制的正弦波。如圖1所示,電路一般包括基準時鐘、頻率累加器、相位累加器、幅度/相位轉(zhuǎn)換電路、D/A轉(zhuǎn)換器和低通濾波器(LPF)。頻率累加器對輸入信號進行累加運算,產(chǎn)生頻率控制數(shù)據(jù)X(frequency data或相位步進量)。相位累加器由N位全加器和N位累加寄存器級聯(lián)而成,對代表頻率的二進制碼進行累加運算,是典型的反饋電路,產(chǎn)生累加結(jié)果Y。幅度/相位轉(zhuǎn)換電路實質(zhì)上是一個波形寄存器,以供查表使用。讀出的波形數(shù)據(jù)送入D/A轉(zhuǎn)換器和低通濾波器轉(zhuǎn)換成符合要求的模擬信號。
1.2 具體工作過程
信號產(chǎn)生過程:如圖1所示,N位加法器將頻率控制數(shù)據(jù)X與累加寄存器輸出的累加相位數(shù)據(jù)在時鐘脈沖Fclk控制下相加,把相加后的結(jié)果Y送至累加寄存器的輸入端。累加寄存器一方面將在上一時鐘周期作用后所產(chǎn)生的新的相位數(shù)據(jù)反饋到加法器的輸入端,以使加法器在下一時鐘的作用下繼續(xù)與頻率控制數(shù)據(jù)X相加;另一方面將這個值作為取樣地址值送入幅度/相位轉(zhuǎn)換電路(即圖1中的波形存儲器),幅度/相位轉(zhuǎn)換電路根據(jù)這個地址輸出相應(yīng)的波形數(shù)據(jù)[2]。最后經(jīng)D/A轉(zhuǎn)換器和低通濾波器將波形數(shù)據(jù)處理成所需要的模擬波形。相位累加器在基準時鐘的作用下,進行線性相位累加,當(dāng)相位累加器加滿量時就會產(chǎn)生一次溢出,這樣就完成了一個周期,這個周期也就是DDS信號的一頻率周期[3]。DDS輸出信號的頻率由下式給定:
Fout=(X/Y)Fclk
假定基準時鐘為70 MHz,累加器為16位,則:
Y=216=65 536;
Fclk=70 MHz。
再假定X=4 096,則Fout=(4 096/65 536)×70=4.375 MHz。
圖1 DDS原理框圖
可見,通過設(shè)定相位累加器位數(shù)、頻率控制字X和基準時鐘的值,就可以產(chǎn)生任一頻率的輸出。DDS的頻率分辨率定義為:
Fout=Fclk/Y
由于基準時鐘一般固定,因此相位累加器的位數(shù)就決定了頻率分辨率。如上面的例子,相位累加器為16位,那么頻率分辨率就可以認為是16位。位數(shù)越多,分頻率越高。
2 正弦信號發(fā)生器系統(tǒng)結(jié)構(gòu)設(shè)計及實現(xiàn)
2.1 系統(tǒng)結(jié)構(gòu)圖
正弦信號發(fā)生器系統(tǒng)結(jié)構(gòu)圖如圖2所示。
圖2 系統(tǒng)結(jié)構(gòu)圖
2.2 單元電路
2.2.1 單片機控制模塊實現(xiàn)方式
單片機實現(xiàn)部分主要處理數(shù)據(jù)輸入及數(shù)據(jù)顯示,此模塊以AT89S51為中心,控制鍵盤輸入和LED顯示[4],其中鍵盤輸入值作為頻率控制字送給FPGA處理。單片機的P1口直接與鍵盤連接,無鍵按下時為高電平,當(dāng)有鍵按下時就變?yōu)榈碗娖健?梢栽O(shè)計鍵1為“0”值鍵、鍵2為“1”值鍵,滿足頻率控制字以二進制進行輸入;鍵3為輸入確定鍵;鍵4和鍵5為頻率步進控制鍵,鍵4為加100 Hz鍵,鍵5為減100 Hz鍵,當(dāng)鍵3按下時將輸入設(shè)置的頻率控制字以二進制數(shù)形式送至P2口,然后通過串行口輸出并驅(qū)動LED靜態(tài)顯示。P0.0和P0.1及P0.2控制數(shù)據(jù)輸出的先后順序。此模塊功能具體實現(xiàn)可通過匯編語言編程后下載到單片機調(diào)試并實現(xiàn),限于篇幅,具體程序不在此展現(xiàn),只展示設(shè)計思路。
2.2.2 FPGA處理模塊
(1) FPGA處理模塊控制原理
FPGA處理模塊是本系統(tǒng)的核心,系統(tǒng)結(jié)構(gòu)圖中FPGA模塊里的DDS基本結(jié)構(gòu)圖如圖3所示。
圖3 DDS基本結(jié)構(gòu)圖
圖3中DDS工作原理為:相位累加器由32位加法器與32位累加寄存器級聯(lián)構(gòu)成。在時鐘脈沖fc的控制下,加法器將頻率控制字M與累加寄存器輸出的累加相位數(shù)據(jù)相加,把相加后的結(jié)果送到累加寄存器的數(shù)據(jù)輸入端,以使加法器在下一個時鐘脈沖的作用下繼續(xù)與頻率控制字相加。這樣,相位累加器在時鐘作用下,不斷對頻率控制字進行線性相位累加。由此可以看出,相位累加器在每一個時鐘輸入時,把頻率控制字累加一次,相位累加器輸出的數(shù)據(jù)就是合成信號的相位。DDS采用改變尋址的步長來改變輸出信號的頻率,步長即為對數(shù)字波形查表的相位增量,由累加器對相位增量進行累加,累加器的值作為查表地址,這樣就可把存儲在波形存儲器內(nèi)的波形抽樣值(二進制編碼)經(jīng)查找表查出,完成相位到幅值轉(zhuǎn)換,波形存儲器的輸出送到D/A轉(zhuǎn)換器,D/A轉(zhuǎn)換器將數(shù)字量形式的波形幅值轉(zhuǎn)換成所要求合成頻率的模擬量形式信號。低通濾波器用于濾除不需要的取樣分量,以便輸出頻譜純凈的正弦波信號。
(2) FPGA處理模塊實現(xiàn)方式[5]
根據(jù)設(shè)計要求:要達到正弦波輸出頻率范圍(1 kHz~10 MHz)及頻率步進值100 Hz,設(shè)相位累加器的位寬為2N,sin表的大小為2P,累加器的高P位用于尋址Sin表[6]。根據(jù)DDS工作原理,主頻時鐘Clock的頻率為fc=100 MHz,累加器按步進為1進行累加直至溢出一遍的頻率即為頻率步進值[7]。
fout=fc/2N
(1)
以M點為步長(M為頻率控制字),產(chǎn)生信號的頻率:
fout=(fc/2N)M
(2)
由于頻率步進值為100 Hz,由式(1)可計算得N=20。要使輸出頻率達到10 MHz,由式(2)可計算得M=104 857,為了使輸出的波形盡可能不失真,頻率控制字位寬取17位,高三位添000,由于設(shè)計加法器為32位[8],則低12位添000000000000。本系統(tǒng)中使用的D/A轉(zhuǎn)換器件的輸入位寬為10,所以只取相位累加器輸出的高10位可滿足設(shè)計要求。整個過程的實現(xiàn)過程中,本系統(tǒng)選用Altera公司的Cyclone系列芯片,采用VHDL語言描述[9],利用開發(fā)軟件Quartus Ⅱ進行綜合[10],以實現(xiàn)產(chǎn)生1 kHz~10 MHz頻率范圍內(nèi)的各種正弦信號。
3 實驗數(shù)據(jù)測試
由鍵盤輸入的是二進制頻率控制字,通過數(shù)碼管可以顯示出十進制的頻率和相位,將信號發(fā)生器的輸出端和雙通道數(shù)字示波器接好,任意幾個頻率為1 kHz~10 MHz之間的信號測試結(jié)果如表1所示。
表1 信號頻率表
被測量輸入頻率字理論值測量值
頻率
00000000000001010953.674 3 Hz953.673 Hz
000000000000010111.049 041 kHz1.049 06 kHz
0000000000111000094.698 85 kHz94.701 3 kHz
110011001100110019.999 942 MHz10.000 1 MHz
4 結(jié) 語
本系統(tǒng)設(shè)計時,相位字是在編程時就固定的,輸出正弦信號的頻率變化是由頻率字變化引起的,而頻率字的預(yù)置是通過鍵盤輸入的,因此能夠得到頻率變化的正弦信號,這樣的信號源能夠很好地滿足需要變頻信號的情況,因此,實用性較強。通過理論計算和實際測量相比較可以看出,基于FPGA的DDS技術(shù)實現(xiàn)正弦信號發(fā)生器輸出正弦信號頻率范圍較寬、分辨率高、幅度和頻率的精度較高。另外,本系統(tǒng)還很容易擴展,不需要對硬件電路進行較大的修改,只需要修改相應(yīng)的程序便可實現(xiàn)相應(yīng)的功能,比如產(chǎn)生PSK,ASK信號等。但是它也有局限性,主要表現(xiàn)在輸出雜散大,這是由于DDS采用全數(shù)字結(jié)構(gòu),不可避免地引入雜散,主要來源有三個:相位累加器相位舍位誤差造成的雜散;幅度量化誤差造成的雜散和DAC非線性造成的雜散[1]。
參考文獻
[1]姜田華.實現(xiàn)直接數(shù)字頻率合成器的三種技術(shù)方案[J].電子技術(shù)應(yīng)用,2004(3):1-3.
[2]黃雪梅,胡建生,魏功輝,等.DDS技術(shù)實現(xiàn)可調(diào)信號發(fā)生器[J].現(xiàn)代電子技術(shù),2008,31(9):80-81.
[3]漢澤西,張海飛,王文渤,等.基于DDS技術(shù)正弦波信號發(fā)生器的設(shè)計[J].電子測試,2009(8):66-67.
[4]黃志偉.全國大學(xué)生電子設(shè)計競賽訓(xùn)練教程[M].北京:電子工業(yè)出版社,2005.
[5]付昱強.基于FPGA的DDS設(shè)計和實現(xiàn)[J].科技廣場,2005(5):95.
[6]潘毅.李棟,龔建榮.數(shù)字頻率合成器的FPGA實現(xiàn)[J].國外電子元器件,2004(8):53-56.
[7]余勇,鄭小林.基于FPGA的DDS正弦信號發(fā)生器的設(shè)計和實現(xiàn)[J].電子器件,2005,28(3):557-559.
[8]錢永青.基于DDS技術(shù)正弦信號發(fā)生器的設(shè)計[J].現(xiàn)代電子技術(shù),2008,31(21):104-105.
[9]侯伯亨,顧新.VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計[M].西安:西安電子科技大學(xué)出版社,2003.
[10]潘松,黃繼業(yè).EDA技術(shù)使用教程[M].北京:科學(xué)出版社,2002.