張林行,尚小虎,趙美聰,劉 陽
?
一種基于FPGA的DDS信號源實現(xiàn)
張林行,尚小虎,趙美聰,劉陽
摘要:鑒于信號源在測試和實驗領(lǐng)域的廣泛應(yīng)用,設(shè)計了一種基于現(xiàn)場可編程門陣列(FPGA)的直接數(shù)字合成(DDS)信號源。設(shè)計中單片機作為控制芯片,完成輸入和顯示操作并把波形操作指令傳輸給運算器FPGA。在運算器FPGA中,通過查找表產(chǎn)生數(shù)字波形編碼,經(jīng)過D/A和濾波電路實現(xiàn)波形的模擬輸出。經(jīng)測試,該信號源輸出幅值精度達(dá)到1mV,頻率輸出范圍1MHz-1MHz,頻率控制精度0.01%,控制靈活,滿足設(shè)計要求。
關(guān)鍵詞:直接數(shù)字合成;現(xiàn)場可編程門陣列;鎖相環(huán)
信號發(fā)生器在測試和實驗領(lǐng)域有著廣泛的應(yīng)用,特別在通信、電子測量儀表、雷達(dá)等電子系統(tǒng)的研發(fā)和設(shè)計過程中有著不可替代的作用,因此,設(shè)計制作一臺高性能的信號發(fā)生器具有很高的實際價值。直接數(shù)字頻率合成(Direct Digital Synthesis,DDS)技術(shù)最開始由美國學(xué)者J. Tierney,C. M. Rader和B. Gold在1971年提出[1],它是以數(shù)字信號為基礎(chǔ),從相位的角度出發(fā)直接合成所需波形的一種新的全數(shù)字頻率合成技術(shù)。與傳統(tǒng)的頻率合成技術(shù)相比,DDS具有頻率分辨率高、頻率切換速度快和相位連續(xù)變化等優(yōu)點。
現(xiàn)場可編程門陣列(Field Programmable Gate Arrays,F(xiàn)PGA)是目前被廣泛采用的一種可編程信號處理器件[2]。FPGA具有設(shè)計靈活性大、開發(fā)周期短、集成度高、可重復(fù)編程、內(nèi)部資源豐富等優(yōu)點。利用DDS原理在FPGA平臺上開發(fā)高性能的信號發(fā)生器與基于DDS芯片的信號發(fā)生器相比,成本更低,操作更加靈活,還能根據(jù)要求在線更新配置,系統(tǒng)開發(fā)趨于軟件化、自定義化[3-4]。
本文使用Altera公司的Cyclone IV系列FPGA芯片實現(xiàn)信號發(fā)生器的設(shè)計,方便的實現(xiàn)常用波形的輸出,且頻率,幅度,相位和占空比調(diào)節(jié)準(zhǔn)確方便。
DDS是從相位概念出發(fā)直接合成所需要波形的一種新的頻率合成技術(shù)。一般包括系統(tǒng)時鐘、相位累加器、ROM查找表、D/A轉(zhuǎn)換器和低通濾波器(Low Pass Filter,LPF)。根據(jù)ROM表存儲的不同波形數(shù)據(jù)可以產(chǎn)生任意的波形,其原理如圖1所示:
圖1 DDS原理圖
輸入的頻率控制字K稱為相位步進(jìn)量,作為相位累加器的增量,系統(tǒng)時鐘則對相位累加器、ROM查表和D/A轉(zhuǎn)換器提供時序控制。相位累加器由N位全加器和N位累加寄存器級聯(lián)而成,在系統(tǒng)時鐘的控制下對頻率控制字的二進(jìn)制碼進(jìn)行累加運算,將累加器的值作為ROM查找表的地址數(shù)據(jù),相位累加器每一個周期的累加便完成一個波形采樣值的查表和輸出,這個周期就是DDS產(chǎn)生波形的頻率周期。由此可知DDS的信號輸出頻率為公式(1):
頻率分辨率為公式(2):
由公式(1)可以看出,輸出頻率與頻率控制字和系統(tǒng)時鐘成正比,為增大頻率的輸出范圍,本設(shè)計通過改變頻率控制字K和系統(tǒng)時鐘來改變輸出頻率[5]。
本設(shè)計整體原理如圖2所示:
圖2 信號發(fā)生器整體原理圖
2.1控制電路設(shè)計
本設(shè)計采用STC12LE5A60S2單片機作為主控芯片。如圖2所示,為交互方便,采用4*4按鍵和TFT彩屏來設(shè)置和顯示當(dāng)前信號波形、頻率、幅度、占空比等信息。單片機通過串行傳輸數(shù)據(jù)控制FPGA,傳達(dá)波形、頻率、幅度、占空比等控制指令。
2.2運算電路設(shè)計
FPGA使用Cyclone IV E系列的EP4CE10E22C8芯片,在芯片內(nèi)部編程完成PLL模塊、相位累加器模塊、ROM模塊和幅度控制模塊等的構(gòu)建。
2.2.1PLL模塊
由公式(1)可知,想要提高輸出頻率的上限值,必須要提高系統(tǒng)的運行時鐘。本系統(tǒng)的外部晶振頻為是50M,為提高系統(tǒng)內(nèi)部運行時鐘,本設(shè)計中調(diào)用quartus II軟件內(nèi)的宏功能模塊ALTPLL來實現(xiàn)時鐘的倍頻,考慮到后級D/A芯片的反應(yīng)時間,PLL的設(shè)計為2倍頻,輸出時鐘為100M。根據(jù)奈奎斯特準(zhǔn)則,允許輸出的最高頻率為,但考慮到低通濾波器的特性和設(shè)計難度以及對輸出信號雜散的抑制,實際輸出的最高頻率僅能達(dá)到0.4[6]。最終生成的PLL電路如圖3所示:
圖3 PLL電路
仿真結(jié)果如圖4所示:
圖4 PLL仿真圖
2.2.2ROM模塊
首先,是按照一定的采樣點數(shù)(用M表示)將一個周期波形的數(shù)據(jù)存于ROM表中,表中的數(shù)據(jù)代表著一個周期波形的幅度信息,每個地址對應(yīng)一個相位點的幅度值。采樣值可以通過MATLAB軟件實現(xiàn),正弦波采樣程序如下所示。
index=linspace(0,2*pi,1024);
a=fix(8191*(sin(index)+1)+0.5);
plot(index,a);
本設(shè)計選取采樣的點數(shù),由公式(1)可知。
利用quartus II軟件中的宏功能模塊ROM 來實現(xiàn)ROM的設(shè)計,將MATLAB生成的波形數(shù)據(jù)保存為.mif格式,加載到ROM中,最終生成的ROM電路如圖5所示:
圖5 ROM電路
2.2.3相位累加器
相位累加器是信號發(fā)生器設(shè)計中最主要的部分。由公式2可知,在系統(tǒng)時鐘為100M時,輸出頻率最小為100K,考慮到D/A需要輸入一定量的采樣點數(shù)才能還原出數(shù)字化的波形,因此頻率控制字K不能取的很大,本設(shè)計輸出頻率最高為1M,即K最大取10。這樣的話,頻率輸出范圍是100K到1M,顯然范圍太小。在設(shè)計相位累加器時,本系統(tǒng)取N和K為30位,其中N的高10位作為地址數(shù)據(jù)進(jìn)行尋址,頻率控制字高10位作為整數(shù)部分,低20位作為小數(shù)部分[7],這樣頻率分辨率就達(dá)到0.0931Hz,結(jié)合控制精度需要達(dá)到0.01%,規(guī)定系統(tǒng)時鐘為100M時的頻率輸出范圍是1K到1M。
當(dāng)然,增加N和K的位數(shù)還可以繼續(xù)擴(kuò)大頻率的輸出范圍,但同樣也會占用系統(tǒng)大量的資源,為了獲得較大的頻率輸出范圍,本設(shè)計通過不同頻段的輸出頻率來調(diào)整系統(tǒng)時鐘。即在輸出頻率為1K到1M時,系統(tǒng)時鐘選擇100M;在輸出頻率為1Hz到1K時,系統(tǒng)時鐘選擇100K;輸出頻率為1mHz到1Hz時,系統(tǒng)時鐘選擇100Hz。系統(tǒng)時鐘的選擇通過一個選擇器分頻實現(xiàn)。這樣,總的頻率輸出范圍就是1mHz到1M,控制精度達(dá)到0.01%。由公式(1)可知公式(3):
以上討論的是正弦波、三角波、方波的頻率改變。對于占空比可調(diào)的鋸齒波,由于增加了一個輸入量占空比(用字母D表示),需要單獨考慮。本設(shè)計采用兩個頻率控制字K1,K2來實現(xiàn)占空比的可調(diào),尋址ROM使用三角波定制的ROM,三角波ROM的前個點是上升點,尋址周期為公式(4):
可得整個ROM的尋址周期為公式(6):
根據(jù)鋸齒波占空比定義知為公式(7):
由公式4、5、6、7得公式(8)、(9):
此時,相位累加器N的高十位充當(dāng)一個2選擇器的觸發(fā)開關(guān),當(dāng)N的高十位小于時,頻率控制字K取K1;當(dāng)N的高十位大于時,頻率控制字K取K2。
2.2.4幅度控制模塊
ROM存儲的數(shù)據(jù)是輸出幅度為最大幅度的波形數(shù)據(jù),通過給ROM尋址輸出的數(shù)據(jù)乘以一個系數(shù)來實現(xiàn)幅度的調(diào)節(jié)。記ROM尋址輸出的波形幅度數(shù)據(jù)為q1,經(jīng)幅度模塊的輸出的幅度數(shù)據(jù)為q2,波形的最大幅度為A,輸出幅度為V,則有公式(10):
q2就是幅度調(diào)節(jié)后輸送給D/A的幅度數(shù)據(jù)。
2.3模數(shù)轉(zhuǎn)換設(shè)計
D/A芯片使用DAC904。DAC904是一款14位分辨率165MSPS采樣率的高速并行DAC,可以將FPGA輸出的波形數(shù)字信號轉(zhuǎn)換為電流信號[8]。DAC904輸出的差分電流信號經(jīng)過后一級OPA830電路轉(zhuǎn)化成初級波形輸出信號,再經(jīng)RC低通濾波器輸出最終信號。其電路如圖6所示:
圖6 D/A轉(zhuǎn)換電路圖
3.1軟件設(shè)計
系統(tǒng)軟件設(shè)計流程如圖7所示:
圖7 系統(tǒng)軟件流程圖
軟件設(shè)計的主要思路是,通過單片機檢測鍵盤輸入,經(jīng)初步數(shù)據(jù)處理,把輸入信息顯示到TFT彩屏上并串行發(fā)送指令到FPGA;FPGA根據(jù)輸入的頻率范圍調(diào)整參考時鐘,根據(jù)輸入的波形選擇相應(yīng)的ROM存儲器和相位累加器,再通過幅度控制實現(xiàn)調(diào)幅。
3.2系統(tǒng)仿真
在Quartus II13.0和KEIL環(huán)境下,實現(xiàn)了軟件部分的設(shè)計。對程序進(jìn)行編譯后,進(jìn)行時序仿真以驗證設(shè)計的正確性,正弦波和三角波的時序功能仿真圖,輸出端數(shù)據(jù)與ROM存儲器數(shù)據(jù)完全一致,如圖8所示:
圖8 波形時序圖
圖9是使用Quartus II自帶的嵌入式邏輯分析儀SignalTap II觀察到的波形數(shù)據(jù)。邏輯分析儀SignalTap II可以捕捉目標(biāo)器件FPGA內(nèi)部任何節(jié)點處信息,信號發(fā)生器正弦波和鋸齒波輸出節(jié)點的信息,如圖9所示:
圖9 使用邏輯分析儀SignalTap II仿真波形圖
經(jīng)過仿真和驗證,將編譯文件下載到核心板中,F(xiàn)AGA的幅度數(shù)據(jù)輸入到D/A電路模塊,在示波器上觀察輸出波形,波形輸出結(jié)果與設(shè)計輸出一致,符合設(shè)計要求。正弦波和鋸齒波的波形圖,如圖10所示:
圖10 示波器觀察波形圖
基于FPGA的DDS波形發(fā)生器實現(xiàn)了正弦波、三角波、方波和鋸齒波四種波形的頻率可調(diào)、幅值可調(diào)和鋸齒波占空比可調(diào)的信號輸出。結(jié)果表明,本設(shè)計簡單合理,波形轉(zhuǎn)換速度快,輸出波形質(zhì)量好,而且本設(shè)計還能根據(jù)要求在線調(diào)試,通過改變ROM存儲器的數(shù)據(jù)可以實現(xiàn)任意波形的輸出,軟件化程度高,具有良好的性價比。在本設(shè)計的基礎(chǔ)上,相位累加器之后級聯(lián)一個加法器,就可以實現(xiàn)相位的可調(diào),被加數(shù)就是需要調(diào)整相位的矢量地址。
參考文獻(xiàn)
[1] Tierney, J.; Rader, C.; Gold, B. A digital frequency synthesizer [J].Audio and Electroacoustics, IEEE Transactions on.1971, 19(1):48-57.
[2] 楊海鋼,孫嘉斌,王慰. FPGA 器件設(shè)計技術(shù)發(fā)展綜述[J].電子與信息學(xué)報,2010(3 ): 714-727.
[3] 李雪梅,張宏財,王學(xué)偉.基于DDS技術(shù)的信號源設(shè)計[J].電測與儀表,2012(01):55-56,66.
[4] 郝建衛(wèi).基于FPGA的脈沖寬度調(diào)制信號發(fā)生器[J]. 計算機工程,2013(2):260-264,269.
[5] 漢澤西,張海飛,王文渤,李國棟等.基于DDS 技術(shù)正弦波信號發(fā)生器的設(shè)計[J].電子測試,2009(08):65-69,77.
[6] 施羽暇,呂威,李一晨.基于DDS 技術(shù)的正弦信號發(fā)生器設(shè)計[J] .信息技術(shù), 2007(1):17-20 .
[7] 向 偉,沈詩律,查 智,耿文豹等. 無相位截斷誤差DDS的設(shè)計與FPGA 實現(xiàn)[J].微型電腦應(yīng)用,2013(10):1-4.
[8] 陳章余. 基于FPGA的DDS正弦信號發(fā)生器設(shè)計[J].電子技術(shù)與軟件工程,2014(12):136.
收稿日期:(2015.03.26)
作者簡介:張林行(1977-),男,吉林大學(xué),儀器科學(xué)與電氣工程學(xué),院副教授,博士,研究方向:地震勘探方法與儀器研究,長春,130021尚小虎(1992-),男,吉林大學(xué),儀器科學(xué)與電氣工程學(xué),大學(xué)本科,研究方向:地震勘探方法與儀器研究,長春,130021趙美聰(1993-),女,吉林大學(xué),儀器科學(xué)與電氣工程學(xué),大學(xué)本科,研究方向:地震勘探方法與儀器研究,長春,130021 劉陽(1992-),女,吉林大學(xué),儀器科學(xué)與電氣工程學(xué),大學(xué)本科,研究方向:地震勘探方法與儀器研究,長春,130021
基金項目:吉林大學(xué)2013年度創(chuàng)新訓(xùn)練國家級項目(2013A65238)
文章編號:1007-757X(2015)12-0016-03
中圖分類號:TN791
文獻(xiàn)標(biāo)志碼:A