張林行,尚小虎,趙美聰,劉 陽
(吉林大學(xué) 儀器科學(xué)與電氣工程學(xué)院,吉林 長春 130021)
基于FPGA的直接數(shù)字合成信號(hào)源設(shè)計(jì)
張林行,尚小虎,趙美聰,劉 陽
(吉林大學(xué) 儀器科學(xué)與電氣工程學(xué)院,吉林 長春 130021)
以高級(jí)語言描述、系統(tǒng)級(jí)仿真和綜合技術(shù)為特征的第三代EDA工具為依托,以給被測(cè)電路提供一個(gè)性能較好的信號(hào)為目的,提出了基于現(xiàn)場(chǎng)可編程門陣列(FPGA)的直接數(shù)字合成(DDS)信號(hào)源。該信號(hào)源采用直接數(shù)字頻率合成技術(shù),從"相位"的概念出發(fā)進(jìn)行頻率合成。主控芯片采用CycloneII EP2C5T144C8N,實(shí)現(xiàn)整個(gè)電路的控制。波形的發(fā)生采用查表的方式,通過與單片機(jī)進(jìn)行簡(jiǎn)單的并行通信,完成外部輸入數(shù)據(jù)與芯片內(nèi)部控制字的轉(zhuǎn)換,以D/A轉(zhuǎn)換器為核心構(gòu)成波形重構(gòu)電路。該信號(hào)源可以對(duì)產(chǎn)生的信號(hào)進(jìn)行頻率調(diào)節(jié)、相位調(diào)節(jié)、幅度調(diào)節(jié)。應(yīng)用了鎖相環(huán)技術(shù),使輸出信號(hào)頻率穩(wěn)定。與傳統(tǒng)信號(hào)源相比,該設(shè)計(jì)具有靈活可控、信號(hào)多樣、可靠性高等優(yōu)點(diǎn)。
信號(hào)源;直接數(shù)字合成;現(xiàn)場(chǎng)可編程門陣列;人機(jī)交互;串/并行通信;鎖相環(huán)
直接數(shù)字合成技術(shù)(Direct Digital Synthesis,DDS)基于取樣和計(jì)算,通過直接數(shù)字合成來生成波形信號(hào),頻率和相位對(duì)于參考頻率可以調(diào)節(jié)[1]。直接數(shù)字合成信號(hào)源頻率分辨率高、切換速度快,便于集成[2]。
數(shù)字信號(hào)處理和集成電路向高速數(shù)據(jù)處理方向發(fā)展,對(duì)數(shù)據(jù)處理的要求越來越高,MCU(Micro Controller Unit)+DDS的頻率合成技術(shù)已經(jīng)不能滿足目前的數(shù)據(jù)處理速度要求。而現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)具有速度快、集成度高、存儲(chǔ)容量大的特點(diǎn),F(xiàn)PGA+DDS的設(shè)計(jì)能夠?qū)崿F(xiàn)高速復(fù)雜數(shù)據(jù)處理的功能[3]。為了使電路的輸出時(shí)鐘與參考時(shí)鐘保持同步,采用了鎖相環(huán)(Phase Locked Loop,PLL)技術(shù),利用反饋實(shí)現(xiàn)了頻率及相位的同步。基于DDS原理并使用Altera Cyclone系列的FPGA芯片設(shè)計(jì)信號(hào)源,靈活可控、信號(hào)多樣、可靠性高。
MATLAB是用于算法數(shù)據(jù)可視化的交互式環(huán)境,基于MATLAB可以使產(chǎn)生的波形信號(hào)多樣化。使用MATLAB產(chǎn)生實(shí)時(shí)的波形數(shù)據(jù),通過串口通信發(fā)送給單片機(jī),再進(jìn)行單片機(jī)與FPGA之間的數(shù)據(jù)和控制信號(hào)的通信。結(jié)合單片機(jī)控制靈活和FPGA速度快、可靠性高的優(yōu)點(diǎn),組成如圖1所示的現(xiàn)場(chǎng)可編程系統(tǒng)。這樣設(shè)計(jì)的DDS信號(hào)源節(jié)約了FPGA的存儲(chǔ)空間,加快了數(shù)據(jù)處理速度,提高了產(chǎn)生信號(hào)的穩(wěn)定性[4]。
使用MATLAB軟件產(chǎn)生波形數(shù)據(jù),將數(shù)據(jù)通過串口通信傳送給單片機(jī),再進(jìn)行單片機(jī)與FPGA通信,將波形數(shù)據(jù)和控制信號(hào)傳送給PFGA。基于FPGA,用Quartus2軟件通過VHDL語言進(jìn)行程序設(shè)計(jì)。設(shè)計(jì)PLL鎖相環(huán)來控制不同工作時(shí)鐘,保證內(nèi)外工作頻率的同步性[5];設(shè)計(jì)頻率產(chǎn)生及控制部分,通過尋址波形ROM來產(chǎn)生波形數(shù)據(jù),并進(jìn)行頻率調(diào)節(jié)和相位調(diào)節(jié)。再經(jīng)過D/A轉(zhuǎn)換,輸出波形信號(hào)。通過控制DAC (Digital to Analog Converter)芯片的基準(zhǔn)電壓控制輸出信號(hào)的幅度最后通過數(shù)模轉(zhuǎn)換。

圖1 總設(shè)計(jì)原理框圖Fig.1 Block diagram of the total design
用PC機(jī)和單片機(jī)作為波形數(shù)據(jù)選擇控制系統(tǒng),并將波形數(shù)據(jù)和控制信號(hào)通過串/并行通信傳送給 FPGA[6]。選用CycloneII EP2C5T144C8N芯片作為波形發(fā)生系統(tǒng),提供50M的系統(tǒng)時(shí)鐘送入FPGA芯片內(nèi)置的鎖相環(huán)如圖2所示,用VHDL語言設(shè)計(jì)鎖相環(huán)輸出一個(gè)50M的時(shí)鐘作為頻率生成與調(diào)節(jié)的工作時(shí)鐘。將系統(tǒng)時(shí)鐘16分頻后的時(shí)鐘作為串口模塊的工作時(shí)鐘,通過頻率控制模塊產(chǎn)生調(diào)節(jié)信號(hào)FSKOUT、PSKOUT、ASKOUT,從而進(jìn)行頻率調(diào)節(jié)、相位調(diào)節(jié)、幅度調(diào)節(jié),并將這些調(diào)節(jié)信號(hào)反饋到PC端。最后通過D/A轉(zhuǎn)換,將數(shù)字信號(hào)轉(zhuǎn)換成DDS信號(hào)源的輸出信號(hào)[4]。

圖2 鎖相環(huán)(PLL)原理圖Fig.2 Block diagram of PLL
頻率控制模塊的設(shè)計(jì):
在頻率步進(jìn)控制方面,采用鍵盤輸入頻率值,并在頻率輸出后可以對(duì)頻率進(jìn)行微調(diào),微調(diào)量為輸出頻率的最小單位且要大于頻率分辨率。頻率的輸出范圍從毫赫茲到千赫茲,為了方便信號(hào)頻率的快速調(diào)節(jié),分別設(shè)計(jì)為毫赫茲、赫茲和千赫茲的3個(gè)檔位調(diào)節(jié)頻率,每個(gè)檔位都有其對(duì)應(yīng)的基準(zhǔn)頻率,系統(tǒng)的最小基準(zhǔn)頻率為100 Hz。根據(jù)公式(1)可得系統(tǒng)的最小輸出頻率可以達(dá)到1 mHz;由于輸出的最大頻率不超過系統(tǒng)時(shí)鐘的40%,以及數(shù)模轉(zhuǎn)換芯片轉(zhuǎn)換速度限制的原因,根據(jù)公式(2),設(shè)計(jì)系統(tǒng)最大輸出頻率為20 kHz。通過系統(tǒng)設(shè)計(jì)的算法把輸入的頻率值換算成相應(yīng)的頻率控制字來實(shí)現(xiàn)頻率的調(diào)節(jié)。
用f表示輸出頻率,用k表示頻率控制字,fc表示各自檔位對(duì)應(yīng)的基準(zhǔn)頻率。由公式(1)可以算出,對(duì)于輸入的頻率值f,都可以算出其對(duì)應(yīng)的頻率控制字k。

相位累加器設(shè)計(jì):
設(shè)計(jì)一個(gè)由N位全加器和累加寄存器組成的相位累加器,并用系統(tǒng)時(shí)鐘來控制相位累加器的工作。如圖3所示,當(dāng)頻率字為1,即系統(tǒng)時(shí)鐘產(chǎn)生上升沿時(shí),全加器將上一個(gè)相位值與頻率字相加并送入累加寄存器。累加寄存器將數(shù)據(jù)輸入給波形存儲(chǔ)器,同時(shí)又將該次的相位值送回全加器[7]。

圖3 相位累加器設(shè)計(jì)Fig.3 Block diagram of the phase accumulator
頻率的微調(diào)量與最小輸入值必須大于頻率分辨率,累加器的字長要求為2×8的整數(shù)倍,為了滿足DDS信號(hào)源最小頻率的輸出,由公式(3)設(shè)計(jì)累加器字長為N=14。
波形ROM設(shè)計(jì):
從噪聲功率的角度看,波形ROM的數(shù)據(jù)位數(shù)應(yīng)該與字長相一致或比字長稍長。由于選擇的是8位的DAC芯片,因而設(shè)定ROM的字長和DAC的位數(shù)保持一致即8位,從而確定ROM的數(shù)據(jù)位數(shù)。波形存儲(chǔ)器是利用相位累加器輸出的高8位對(duì)其進(jìn)行尋址的,并輸出該相位對(duì)應(yīng)的二進(jìn)制值[8]。用MATLAB編輯程序產(chǎn)生正弦數(shù)據(jù):
>>clear tic;
t=2*pi/256;
t=[0:t:2*pi];
y=128*sin(t)+128;
round(y);
t=0.0245;
ans;
將產(chǎn)生的波形數(shù)據(jù)進(jìn)行進(jìn)制轉(zhuǎn)換,轉(zhuǎn)為8位二進(jìn)制數(shù)據(jù),該數(shù)值與00000000-11111111區(qū)間內(nèi)的數(shù)據(jù)一一對(duì)應(yīng)。通過PC機(jī)與單片機(jī)、單片機(jī)與FPGA的串/并行通信將波形數(shù)據(jù)和控制信號(hào)傳送給FPGA。
調(diào)節(jié)幅度設(shè)計(jì):
用兩片DAC芯片級(jí)聯(lián)[9-11],兩片DAC均直流5 V供電,其中第一片DAC基準(zhǔn)電壓也使用5 V,將其輸出電壓作為第二片DAC的基準(zhǔn)電壓,由此調(diào)節(jié)第一片DAC的輸入數(shù)據(jù)控制其輸出電壓。對(duì)于第二片DAC,其基準(zhǔn)電壓是可調(diào)的,從而實(shí)現(xiàn)了調(diào)節(jié)輸出電壓幅度的功能。
通過相關(guān)軟件工具的仿真和試驗(yàn)后,將設(shè)計(jì)的信號(hào)源制作成品并進(jìn)行測(cè)試。用型號(hào)為GDS-2202A的Gwin數(shù)字示波器測(cè)試,該信號(hào)源可以產(chǎn)生正弦波、三角波、方波、矩形波等波形,信號(hào)的頻率、初始相位、幅度、占空比可通過按鍵控制,輸出信號(hào)的頻率穩(wěn)定,達(dá)到了設(shè)計(jì)目的,測(cè)試結(jié)果如表1~3所示。

表1 產(chǎn)生信號(hào)的頻率測(cè)試Tab.1 Test of the generated signal frequency

表2 產(chǎn)生信號(hào)的幅度測(cè)試Tab.2 Test of the generated signal amplitude

表3 產(chǎn)生信號(hào)的占空比測(cè)試Tab.3 Test of the generated signal phase
根據(jù)測(cè)試結(jié)果,頻率實(shí)測(cè)值精確度較高,誤差不超過理論值的0.3%,幅度調(diào)節(jié)誤差在理論值的1.0%以內(nèi),并且鋸齒波和矩形波的占空比可調(diào)。
本設(shè)計(jì)基于FPGA和直接數(shù)字合成(DDS)技術(shù)設(shè)計(jì)的信號(hào)源,通過人機(jī)交互使得產(chǎn)生的波形信號(hào)多樣化,實(shí)現(xiàn)了對(duì)產(chǎn)生信號(hào)的實(shí)時(shí)頻率調(diào)節(jié)、相位調(diào)節(jié)、幅度調(diào)節(jié)和占空比調(diào)節(jié)。
目前,在地磁探測(cè)、地震勘探、油氣探測(cè)等多個(gè)領(lǐng)域,都需要野外實(shí)測(cè)獲取數(shù)據(jù),因而存在數(shù)據(jù)的采集、保存、處理等問題,甚至需要在實(shí)驗(yàn)室條件下對(duì)野外采集到的數(shù)據(jù)進(jìn)行復(fù)原,本設(shè)計(jì)對(duì)于野外采集數(shù)據(jù)在實(shí)驗(yàn)室條件下的模擬有著實(shí)際的作用,并可以控制非周期信號(hào)的周期性發(fā)出以及周期性信號(hào)的單次發(fā)出[3]。
[1]林占江,林放.電子測(cè)量技術(shù)[M].北京:電子工業(yè)出版社,2012.
[2]漢澤西,張海飛,王文渤.基于DDS技術(shù)正弦波信號(hào)發(fā)生器的設(shè)計(jì)[J].電子測(cè)試,2009(8):65,66.
[3]王偉,趙吉祥.基于FPGA+DDS的控制設(shè)計(jì)[J].測(cè)控技術(shù),2008(6):13-15,19.
[4]章宇杰,支敏.基于FPGA的DDS實(shí)現(xiàn)[J].電子與封裝,2013,13(10):31-32.
[5]蔣濤,唐宗熙,張彪.一種基于DDS+PLL結(jié)構(gòu)的頻率合成器的設(shè)計(jì)[J].電子測(cè)量與儀器學(xué)報(bào),2009,23(10):91-95.
[6]趙新雨,徐忠仁,付貴增.基于FPGA與單片機(jī)的SPI接口的實(shí)現(xiàn)[J].工業(yè)儀表與自動(dòng)化裝置,2010(2):32,33.
[7]張凱琳,蘇淑靖,劉利生.基于FPGA的DDS多路信號(hào)源設(shè)計(jì)[J].電測(cè)與儀表,2011,48(543):63-65.
[8]鄭黃婷,賴萬昌,毛偉.基于FPGA的DDS波形信號(hào)發(fā)生器的設(shè)計(jì)[J].電子設(shè)計(jì)工程,2012,20(24):153-154.158.
[9]秦健.一種基于PWM的電壓輸出DAC電路設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2004(14?):81-83.
[10]唐大偉,吳瓊之,孫寧霄.基于高速D/A AD9739 2.5GSPS的寬帶信號(hào)源[J].電子設(shè)計(jì)工程,2013(20):45-47.
[11]王倩,李燕,王虹現(xiàn).基于高速數(shù)模轉(zhuǎn)換器的通用雷達(dá)信號(hào)模擬器的設(shè)計(jì)[J].電子科技,2008(1):21-24.
ZHANG Lin-hang,SHANG Xiao-hu,ZHAO Mei-cong,LIU Yang
(College of Instrument Science and Electrical Engineering,Jilin University,Changchun 130021,China)
Based on the third generation electronic design automation(EDA)tools that is characterized by a high-level language description,system level simulation and synthesis technology,to provide a better signal to the circuit under test,a direct digital synthesis(DDS)signal source based on field programmable gate array(FPGA)is proposed.Used with DDS technology,frequency synthesis starts from the concept of"phase".Adopt CycloneII EP2C5T144C8N as the master chip to control the whole circuit.Realize the happening of the waveform with the method of look-up table.External input data and chip internal control word converse through the parallel communication with single-chip microcomputer.Use D/A converter as the core of waveform reconstruction circuit.The frequency,phase and amplitude of the signal are adjustable.Phase locked loop
(PLL)is used to make the output signal frequency stability.Compared with the traditional signal source,the design is of flexible control,signal diversity and high reliability etc.
signal generator;DDS;FPGA;HCI;serial/parallel communication;PLL
TN791
A
1674-6236(2016)01-0172-03
2015-04-01稿件編號(hào):201504002
2013年度創(chuàng)新訓(xùn)練國家級(jí)項(xiàng)目(2013A65238)
張林行(1977—),男,山東壽光人,博士,副教授。研究方向:地震勘探方法與儀器研究。