孔德鵬,毛惠豐,姬占濤
(西安工程大學(xué)電子信息學(xué)院,西安710048)
·大規(guī)模集成電路設(shè)計(jì)、制造與應(yīng)用·
一種基于FPGA的信號發(fā)生器研究與設(shè)計(jì)
孔德鵬,毛惠豐,姬占濤
(西安工程大學(xué)電子信息學(xué)院,西安710048)
基于數(shù)字頻率合成技術(shù),生成數(shù)字化正弦波,采用模塊化設(shè)計(jì)和查表的方法實(shí)現(xiàn)。直接數(shù)字合成技術(shù)是一種先進(jìn)的電路結(jié)構(gòu),能在全數(shù)字下對輸出信號頻率進(jìn)行輸出,在精度、靈活性上大大超越了模擬信號發(fā)生器。在Quartus II環(huán)境下,用超高速集成電路硬件描述語言編程,進(jìn)行模塊化設(shè)計(jì)。使用ALTERA公司提供的EP1K30TC144-3芯片作為核心器件進(jìn)行設(shè)計(jì),來實(shí)時(shí)生成數(shù)字化波形,結(jié)合GW48-CK實(shí)驗(yàn)開發(fā)系統(tǒng),最終給出了信號發(fā)生器的設(shè)計(jì)方案。
現(xiàn)場可編程門陣列;直接數(shù)字合成技術(shù);模塊化設(shè)計(jì);查表法
傳統(tǒng)的信號發(fā)生器是使用模擬電路或者專用芯片搭建而成,存在頻率不高,穩(wěn)定性較差,且不易擴(kuò)展和調(diào)試的缺陷。
數(shù)字化波形技術(shù)的應(yīng)用越來越廣泛,例如正弦波信號發(fā)生器,正弦波振蕩器,正弦波逆變器等。數(shù)字正弦波的精度高,誤差小,在工業(yè)應(yīng)用中比模擬電路產(chǎn)生的正弦波更穩(wěn)定,更精確。設(shè)計(jì)一種以FPGA為基礎(chǔ)的數(shù)字化波形信號發(fā)生器。該方法采用直接數(shù)字合成技術(shù),改變了以往的設(shè)計(jì)思路,在精度、靈活性上大大超越了模擬信號發(fā)生器。隨著可編程邏輯器件FPGA的迅速發(fā)展,基于FPGA控制的信號發(fā)生器使得電路設(shè)計(jì)更加簡單和精確。
以此產(chǎn)生的波形信號為其它系統(tǒng)提供波形,它是各類波形發(fā)生器和信號源的基礎(chǔ),采用FPGA結(jié)合簡單電路就可以實(shí)現(xiàn)輸出正弦波或三角波,可以很方便的改變頻率大小,具有電路結(jié)構(gòu)簡單、工作頻率穩(wěn)定度高、頻率調(diào)整精度高等特點(diǎn),該設(shè)計(jì)也可以直接拓展到其它領(lǐng)域的電路中。
2.1 正弦波信號的產(chǎn)生方法概述
工程實(shí)踐中常用的正弦波信號生成方式有以下兩種。方式1,使用模擬電路或者專用芯片搭建而成,可以產(chǎn)生方波,正弦波,三角波,通過調(diào)整外部元件可以改變輸出頻率。但是采用模擬器件分散性大,存在頻率不高,抗干擾能力差,成本也較高且不易擴(kuò)展和調(diào)試的缺陷。方式2,由單片機(jī)來完成。單片機(jī)功能強(qiáng)大,集成度高且其設(shè)計(jì)和控制比較容易。但是由于單片機(jī)設(shè)計(jì)系統(tǒng)中需使用許多分立元件組成單片機(jī)的外圍電路,因此系統(tǒng)復(fù)雜,隨著采用數(shù)據(jù)的增加,需要占用系統(tǒng)很多存儲資源,復(fù)雜的運(yùn)行過程容易出現(xiàn)死機(jī)或進(jìn)入死循環(huán),可靠性降低。
基于FPGA的正弦波信號發(fā)生器的設(shè)計(jì)方法可以實(shí)現(xiàn)三角波和正弦波的數(shù)字化處理,將一個(gè)周期內(nèi)的采集點(diǎn)存儲起來,生成頻率和幅值都可調(diào)的正弦波或者三角波,再通過D/A轉(zhuǎn)換和濾波電路便可得到模擬波形。該方法編程簡單,實(shí)現(xiàn)靈活。
2.2 基于FPGA的正弦波產(chǎn)生原理
圖1給出了基于FPGA的正弦波發(fā)生器的組成示意圖。系統(tǒng)由4部分組成:波形發(fā)生控制電路,波形數(shù)據(jù)ROM,D/A轉(zhuǎn)換和濾波電路。波形發(fā)生控制電路由FPGA來完成。FPGA波形發(fā)生控制電路通過輸入控制信號和高速時(shí)鐘信號,向波形數(shù)據(jù)ROM發(fā)出地址信號。波形ROM中存有發(fā)生器的波形數(shù)據(jù)。取出采樣點(diǎn)的幅值就可以產(chǎn)生數(shù)字化的波形。
圖1 波形發(fā)生器組成示意圖
正弦波在一個(gè)周期內(nèi)的波形可以通過數(shù)字采樣實(shí)現(xiàn),即用N個(gè)幅值離散的等間隔采樣點(diǎn)表示。如圖2為正弦波采樣的原理示意圖,設(shè)周期為T,采樣點(diǎn)數(shù)為N,采樣間隔為△t,T=N*△t,那么就可以得到圖示的數(shù)字信號。要改變頻率只需要改變采樣時(shí)間間隔,由于采樣點(diǎn)數(shù)N不變,N=T/△t,因此△t越小,T就越小,對應(yīng)的頻率就越大。
D/A轉(zhuǎn)換器負(fù)責(zé)將FPGA中ROM輸出的數(shù)字量數(shù)據(jù)轉(zhuǎn)換成模擬信號量,再經(jīng)過濾波電路后,輸出就是所要得到的需要波形。輸出波形的頻率上限與D/A器件的轉(zhuǎn)換速度有重要關(guān)系。本實(shí)驗(yàn)采用DAC0832器件。
圖2 正弦波采樣原理示意圖
FPGA的模塊化設(shè)計(jì)就是按照一定規(guī)則把系統(tǒng)劃分成若干模塊,然后對每個(gè)模塊分別進(jìn)行設(shè)計(jì),并將結(jié)果約束在預(yù)先設(shè)置好的區(qū)域內(nèi),最后將所有模塊有機(jī)的組織起來完成整個(gè)系統(tǒng)設(shè)計(jì)。下面對需要設(shè)計(jì)的模塊進(jìn)行介紹。
3.1 FPGA的輸入輸出模塊
輸入模塊采用按鍵輸入,同時(shí)通過按鍵來改變波形和頻率。輸出端口輸出八位二進(jìn)制碼,代表數(shù)字化的正弦波形。輸出受內(nèi)部程序控制,通過FPGA與DAC0832的互聯(lián)接口輸出模擬波形。
3.2 波形發(fā)生模塊
由于波形發(fā)生控制器和波形數(shù)據(jù)ROM都是利用硬件描述語言VHDL編程實(shí)現(xiàn)的,所以統(tǒng)稱為波形發(fā)生模塊。波形發(fā)生模塊包括頻率設(shè)置、正弦波/三角波切換進(jìn)程。
具體ROM模塊生成步驟如下:
(1)建立.mif格式文件
在Quartus II的ROM數(shù)據(jù)編輯窗口中建立.mif或.hex格式文件,然后將波形數(shù)據(jù)填入mif文件表中,如圖3所示,波形數(shù)據(jù)mif表格。在表格中輸入正弦波形數(shù)據(jù),表格中的數(shù)據(jù)為10進(jìn)制形式,任一數(shù)據(jù)(如第三行的99)對應(yīng)的地址為左列數(shù)與頂行數(shù)之和)。共64個(gè)波形點(diǎn)。
圖3 波形數(shù)據(jù)mif表格
(2)定制ROM元件
根據(jù)需求設(shè)置Mega Wizard Plug-in manager,根據(jù)設(shè)置得到ROM模塊的外部原理圖,即ROM模塊的結(jié)構(gòu)。如圖4所示,并且生成相應(yīng)的ROM模塊VHDL程序。
圖4 ROM的外部原理圖
(3)驗(yàn)證ROM模塊的正確性
為了驗(yàn)證正弦波波形數(shù)據(jù)的正確性,在應(yīng)用ROM模塊之前,首先對定制的ROM模塊進(jìn)行仿真,使其符合我們的設(shè)計(jì)要求。仿真數(shù)據(jù)如圖5所示。
圖5 ROM數(shù)據(jù)仿真輸出波形
3.3 D/A轉(zhuǎn)換模塊及濾波電路
D/A轉(zhuǎn)換器負(fù)責(zé)將ROM輸出的二進(jìn)制數(shù)字信號換成模擬信號,再經(jīng)濾波電路后輸出。DAC0832是8位D/A轉(zhuǎn)換器,轉(zhuǎn)換周期為1μs,其引腳信號可以直接與FPGA目標(biāo)芯片相連。它典型的接口方式如圖6所示。其參考電壓與+5V工作電壓相接。
濾波電路采用簡單的RC濾波就可以達(dá)到要求。
軟件設(shè)計(jì)分為三個(gè)進(jìn)程。正弦波/三角波切換進(jìn)程,頻率設(shè)置進(jìn)程,以及波形數(shù)據(jù)ROM。如正弦波,分為64個(gè)采樣點(diǎn),最高采樣點(diǎn)值為255,對應(yīng)的八位二進(jìn)制數(shù)為11111111。通過給輸入信號設(shè)定值,改變內(nèi)部采樣時(shí)鐘脈沖的時(shí)間△t,讓FPGA取出波形數(shù)據(jù)ROM中的采樣點(diǎn)數(shù)據(jù),設(shè)定值的大小直接影響采樣速率,使得輸出的波形頻率產(chǎn)生變化。
結(jié)合所有設(shè)計(jì)需要和期間內(nèi)部資源,進(jìn)行軟件程序設(shè)計(jì),程序流程圖如圖7所示。
程序初始化后,通過按鍵輸入,可以按鍵設(shè)置頻率,切換輸出三角波或者正弦波。實(shí)現(xiàn)預(yù)設(shè)功能。
連接示波器到DAC0832輸出口DOUT,調(diào)節(jié)示波器各項(xiàng)參數(shù)設(shè)置,進(jìn)行測試。根據(jù)示波器的顯示,可以直觀的觀察波形頻率、周期以及幅值大小,和軟件仿真結(jié)果對比,驗(yàn)證實(shí)驗(yàn)結(jié)果的正確性。以下是示波器觀察得到的波形圖。
設(shè)置輸入鍵1,2位為00時(shí),即輸入data為00000000,觀察到的波形如圖8所示。
圖6 DAC0832接口電路
圖7 軟件設(shè)計(jì)流程圖
圖8 輸出頻率最小的波形圖
設(shè)置輸入鍵1,2位為FE時(shí),即輸入data為11111110,觀察到的波形如圖9所示。
圖9 輸出頻率最大的波形圖
由圖8所示,圖中輸出的最小頻率為764.5Hz,周期最大為1.308ms。同樣,由圖9所示,圖中輸出的最大頻率為98.04KHz,周期最小為10.20μs。
在相同條件下進(jìn)行對比,時(shí)鐘CLK都為50MHz,進(jìn)行軟件仿真與實(shí)驗(yàn)對比,結(jié)果如表1所示。
表1 軟件仿真與實(shí)驗(yàn)對比
輸出頻率最小時(shí)刻,仿真與實(shí)驗(yàn)誤差在1.15Hz,誤差精度為0.001。輸出頻率最大時(shí)刻誤差在0.38KHz附近,誤差精度為0.0038。
通過按鍵實(shí)現(xiàn)波形在正弦波和三角波之間的切換,下圖為波形切換為三角波輸出時(shí)的波形圖,如圖10所示。三角波的頻率變化和正弦波一致。波形切換可以在任意時(shí)刻進(jìn)行。
圖10 三角波波形
在研究基于FPGA的數(shù)字化信號發(fā)生器設(shè)計(jì)的基本原理及其優(yōu)缺點(diǎn)的基礎(chǔ)上,給出了相關(guān)的仿真結(jié)果與最終的實(shí)驗(yàn)結(jié)果。仿真與實(shí)驗(yàn)結(jié)果表明,該方法具有簡單、可靠、精度高、可移植性好等優(yōu)點(diǎn),具有一定的工程實(shí)踐價(jià)值。
在實(shí)驗(yàn)測試時(shí),低頻段波形輸出比較正常,輸出頻率達(dá)到高頻(f>20KHz)段時(shí),波形輸出幅值開始衰減,頻率越大,幅值衰減越嚴(yán)重。
[1] 趙艷華,曹丙霞,張睿.基于Quartus II的FPGA/CPLD設(shè)計(jì)與應(yīng)用[M].北京:電子工業(yè)出版社,2009:172-184.
[2] 周俊峰,等.基于FPGA的直接數(shù)字頻率合成器的設(shè)計(jì)和實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2002(4):28-30.
[3] 曾云,韓順鋒.基于FPGA的DDS信號源設(shè)計(jì)及誤差分析[J].艦船電子工程.2009(2):72-74.
[4] 蔡麗,翟曉東,高紅云.基于FPGA技術(shù)的多功能信號發(fā)生器設(shè)計(jì)[J].儀表技術(shù),2007(8):16-20.
[5] 田大方,祝忠明.一種基于FPGA的信號發(fā)生器的設(shè)計(jì)方法[J].電子質(zhì)量,2012(4):27-30.
Design and Research of Signal Generator Based on FPGA
Kong Depeng,Mao Huifeng,Ji Zhantao
(School of Electronic Information,Xi’an Polytechnic University,Xi’an 710048,China)
Based on the digital frequency synthesis technology,the digital sine wave is generated by modular design and look-up tablemethod.The direct digital frequency synthesis technology,as a kind of advanced circuit structure,can output in full digital signal frequency.So it ismuch better than the analog signal generator in precision and flexibility.In the circumstances,Quartus II,with very-h(huán)ighspeed integrated circuithardware description language,themodular design is conducted by programming.EP1K30TC144-3 chip from ALTERA,as the core component,is used formicrochip design to generate digital wave in real-time.Combining with the experiment development system GW48-CK,the signal generator design scheme is finally provided.
Field programmable gate array;Direct digital frequency synthesis technology;Modular design;Look-up table
10.3969/j.issn.1002-2279.2015.01.001
TP346
A
1002-2279(2015)01-0001-04
孔德鵬(1990-),男,安徽省阜陽市人,碩士研究生在讀,主研方向:數(shù)字PWM控制技術(shù),伺服控制。
2014-06-27