鄭 琴,魯 琴,宋承志
(武漢紡織大學(xué) 數(shù)學(xué)與計(jì)算機(jī)學(xué)院,湖北 武漢 430073)
一種基于FPGA的信號(hào)發(fā)生器設(shè)計(jì)實(shí)現(xiàn)
鄭 琴,魯 琴,宋承志
(武漢紡織大學(xué) 數(shù)學(xué)與計(jì)算機(jī)學(xué)院,湖北 武漢 430073)
應(yīng)用VHDL語(yǔ)言及QuartusII軟件提供的原理圖輸入設(shè)計(jì)功能,結(jié)合電子線路的設(shè)計(jì)加以完成一個(gè)可應(yīng)用于數(shù)字系統(tǒng)開發(fā)或?qū)嶒?yàn)時(shí)做輸入脈沖信號(hào)或基準(zhǔn)脈沖信號(hào)用的信號(hào)發(fā)生器,它具有結(jié)構(gòu)緊湊,性能穩(wěn)定,設(shè)計(jì)結(jié)構(gòu)靈活,方便進(jìn)行多功能組合的特點(diǎn),經(jīng)濟(jì)實(shí)用,成本低廉。
信號(hào)發(fā)生器;FPGA;QuartusII;VHDL語(yǔ)言
隨著我國(guó)的經(jīng)濟(jì)日益增長(zhǎng),社會(huì)對(duì)電子產(chǎn)品的需求量也就越來越大,目前,我國(guó)的電子產(chǎn)品市場(chǎng)正在迅速的壯大,市場(chǎng)前景廣闊。FPGA(Field Programmable Gate Array,現(xiàn)場(chǎng)可編程門陣列)在現(xiàn)代數(shù)字電路設(shè)計(jì)中發(fā)揮著越來越重要的作用。FPGA所具有的靜態(tài)可重復(fù)編程和動(dòng)態(tài)在系統(tǒng)重構(gòu)的特性,使得硬件的功能可以像軟件一樣通過編程來修改,這樣就極大地提高了電子系統(tǒng)設(shè)計(jì)的靈活性和通用性,縮短了產(chǎn)品的上市時(shí)間并降低可電子系統(tǒng)的開發(fā)成本。
信號(hào)發(fā)生器是數(shù)字設(shè)備運(yùn)行工作中必不可少的一部分,在傳統(tǒng)的信號(hào)發(fā)生器中,大都使用分立元件,而且體積龐大攜帶不便,且大部分只能輸出一種脈沖信號(hào)波形,而使用專用的數(shù)字電路設(shè)計(jì)的信號(hào)發(fā)生器,設(shè)備成本高、使用復(fù)雜?;谝陨峡紤],在中小型數(shù)字電路的設(shè)計(jì)和測(cè)試中,迫切需要設(shè)計(jì)一種小型易用成本低廉的信號(hào)發(fā)生器。
利用VHDL編程,依據(jù)基本數(shù)字電路模塊原理進(jìn)行整合。系統(tǒng)各部分所需工作時(shí)鐘信號(hào)由輸入系統(tǒng)時(shí)鐘信號(hào)經(jīng)分頻得到,系統(tǒng)時(shí)鐘輸入端應(yīng)滿足輸入脈沖信號(hào)的要求。組合波形信號(hào)經(jīng)顯示模塊輸出。具備幅度和頻率可調(diào)功能,幅度可通過電位器調(diào)整,頻率控制模塊則是一個(gè)簡(jiǎn)易的計(jì)數(shù)器,控制步徑為100HZ的可調(diào)頻率,最終送至脈沖發(fā)生模塊輸出脈沖信號(hào),達(dá)到設(shè)計(jì)課題所要求的輸出波形頻率可調(diào)及幅度可調(diào)功能。幅度可調(diào)功能由于比較簡(jiǎn)單,可以在FPGA外部利用硬件電路實(shí)現(xiàn)[2,3,8,9]??傮w設(shè)計(jì)框圖如下圖1所示:
圖1 總體設(shè)計(jì)框架圖
采用VHDL語(yǔ)言來編程,然后下載文件到FPGA來實(shí)現(xiàn)。VHDL語(yǔ)言是電子設(shè)計(jì)領(lǐng)域的主流硬件描述語(yǔ)言,具有很強(qiáng)的電路描述和建模能力,能從多個(gè)層次對(duì)數(shù)字系統(tǒng)進(jìn)行建模和描述,從而大大降低了硬件設(shè)計(jì)任務(wù),提高了設(shè)計(jì)效率和可靠性,要比模擬電路快得多。該方案是利用FPGA具有的靜態(tài)可重復(fù)編程和動(dòng)態(tài)在系統(tǒng)重構(gòu)的特性,使得硬件的功能可以像軟件一樣通過編程來修改,極大地提高了電子系統(tǒng)設(shè)計(jì)的靈活性和通用性,而且大大縮短了系統(tǒng)的開發(fā)周期。
本設(shè)計(jì)用VHDL語(yǔ)言根據(jù)傅立葉函數(shù)采集點(diǎn)進(jìn)行掃描,分別產(chǎn)生正弦波、三角波和矩形波。以下介紹各種常用周期信號(hào)的傅立葉函數(shù)展開式[1,4,5,8,10,11]。
3.1.1 正弦波
正弦波發(fā)生分為兩個(gè)步驟,即正弦波幅值采樣存儲(chǔ)和正弦波波形的還原輸出。幅值采樣是將一個(gè)周期正弦波進(jìn)行64等分,如圖2所示,將64個(gè)采樣點(diǎn)進(jìn)行量化處理,量化值=255*sin360/64(V),將64點(diǎn)量化值存入存儲(chǔ)器。正弦波形的產(chǎn)生是通過循環(huán)反復(fù)將存儲(chǔ)器中的64點(diǎn)采樣值通過DAC0832進(jìn)行還原輸出,得到幅值正比于64點(diǎn)采樣值的正弦波。
3.1.2 矩形波
矩形波的實(shí)現(xiàn)較之正弦波發(fā)生簡(jiǎn)單,由于矩形波是兩個(gè)電平值間的交替變換,因此波形采樣值的預(yù)存只要有兩個(gè)不同的數(shù)值就行了,為了使矩形波發(fā)生的頻率靈活可調(diào),采用60個(gè)采樣值掃描輸出來實(shí)現(xiàn),每半個(gè)矩形波周期采用三十個(gè)采樣值,循環(huán)反復(fù)將存儲(chǔ)器中的60點(diǎn)采樣值通過DAC0832進(jìn)行還原輸出,得到幅值正比于點(diǎn)采樣值的矩形波。采樣圖如圖3所示。
3.1.3 三角波
由于三角波是線性的,比較簡(jiǎn)單就可以產(chǎn)生,如果最低電壓設(shè)為15V,最高是255V,那么根據(jù)它的公式255/15=17,每個(gè)點(diǎn)的電壓只要依次加17就可以得到,一個(gè)波形所以采用簡(jiǎn)單的加減算法就可實(shí)現(xiàn),如圖4所示三角波的采樣圖。
3.1.4 基波
通過VHDL編程產(chǎn)生的正弦波、方波、三角波三種周期性波形即為基波。
圖5 頻率控制模塊流程圖
圖2 正弦波采樣圖
圖3 方波采樣圖
圖4 三角波采樣圖
圖6 選擇波形電路設(shè)計(jì)流程圖
3.1.5 諧波的產(chǎn)生
采用與基波產(chǎn)生的同樣原理,編程產(chǎn)生三種波形的諧波,所不同的是一個(gè)波形的周期采樣的點(diǎn)數(shù)不同,如果基波采樣點(diǎn)為63個(gè),諧波采樣點(diǎn)數(shù)則為21個(gè),其每點(diǎn)的電壓值為255*(sin360/60+sin360/20)(V),在對(duì)其進(jìn)行循環(huán)掃描即可實(shí)現(xiàn)基波與諧波的線性疊加。
系統(tǒng)要求頻率控制是在100HZ-1KHZ,步進(jìn)為100HZ。在本題設(shè)計(jì)中只需借助FPGA便可完成。根據(jù)用戶需要的頻率[5,6,9],通過編程把頻率控制數(shù)值傳送給各個(gè)模塊,從而實(shí)現(xiàn)頻率的控制。如圖5所示。
這一部分主要是通過一個(gè)按鍵對(duì)波形進(jìn)行循環(huán)選擇,按下確認(rèn)按鈕后進(jìn)行波形的調(diào)用。設(shè)計(jì)流程圖如圖6所示。
此次系統(tǒng)設(shè)計(jì)硬件部分通過 FPGA/CPLD實(shí)驗(yàn)箱完成。為了避免干擾信號(hào)影響系統(tǒng)正常工作,未分配功能的FPGA引腳必須接地,在FPGA器件的電源端必須并連一0.01uF的退耦電容,在所有的輸入引腳上串聯(lián)100歐姆左右電阻減弱干擾信號(hào)影響,如有必要還應(yīng)在輸入端設(shè)置上拉或下拉電阻。
圖7 濾波電路的設(shè)計(jì)
如圖7所示,設(shè)計(jì)D/A輸出后,通過濾波電路、輸出緩沖電路,使信號(hào)平滑且具有負(fù)載能力。
為保證穩(wěn)幅輸出,選用 AD817,這是一種低功耗、高速、寬帶運(yùn)算放大器 , 具有很強(qiáng)的大電流驅(qū)動(dòng)能力。實(shí)際電路測(cè)量結(jié)果表明:當(dāng)負(fù)載100Ω、輸出電壓峰-峰值10V時(shí),帶寬大于500kHz,幅度變化小于土1%。
幅度控制電路采用一個(gè)電位器來控制波形的輸出幅度,電位器的型號(hào)為10K 歐。
圖8 系統(tǒng)仿真波形
FPGA系統(tǒng)的軟硬件設(shè)計(jì)是緊密相連的,將軟件編譯綜合并且通過下載對(duì)FPGA進(jìn)行適配,運(yùn)行中的FPGA是由其內(nèi)部的硬件結(jié)構(gòu)控制讀出數(shù)據(jù),從而產(chǎn)生波形。
系統(tǒng)仿真波形如圖8所示:
系統(tǒng)以FPGA10K10器件為核心部件,可利用軟件編程實(shí)現(xiàn)了對(duì)D/A轉(zhuǎn)換信號(hào)的處理。努力做到了線路簡(jiǎn)單、高性價(jià)比的特點(diǎn),充分利用了軟件編程,彌補(bǔ)了硬件元器件的不足。
[1] 潘松,黃繼業(yè). EDA技術(shù)實(shí)用教程(第二版)[M]. 北京:北京科學(xué)出版社,2005.2.
[2] 李小波,等.基于CPLD和單片機(jī)的低頻信號(hào)源設(shè)計(jì)[J]. 儀表技術(shù)與傳感器,2005, (11):46-48.
[3] 包明,等.基于FPGA的高速高精度頻率測(cè)量的研究[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2003,(2):31-33.
[4] 王志鵬,付麗琴.可編程邏輯器件開發(fā)技術(shù). Quartus II. 北京: 國(guó)防工業(yè)出版社,2005.3.
[5] 王道先. VHDL電路設(shè)計(jì)技術(shù). 北京: 國(guó)防工業(yè)出版社,2004.1
[6] 候伯亨,顧新.VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,2000.
[7] 曾繁泰.EDA工程的理論與實(shí)踐[M]. 北京: 電子工業(yè)出版社,2004.5.
[8] 尹佳喜,尹仕.基于CPLD的三相多波形函數(shù)發(fā)生器設(shè)計(jì)[J]. 電子工程師, 2005,(8).
[9] 高淼.基于FPGA的自治型SPWM波形發(fā)生器的設(shè)計(jì)[J]. 世界電子元器件, 2003,(10).
[10] 李剛強(qiáng).FPGA設(shè)計(jì)中關(guān)鍵問題的研究[EB/OL]. http://www.edacn.net/viewarticle.php?id=27146,2005-10-15.
[11] Ralf N.Hardware/Software Co_designed for Data Flow Dominated Embedded System[M]. Kluwer Academic Publishers,1998.
The Design and Implementation of A Signal Generator based on FPGA
ZHENG Qin, LU Qin, SONG Cheng-zhi
(College of Mathmatics and Computer Science, Wuhan Textile university, Wuhan Hubei 430073, China)
VHDL language and QuartusII software application of the principle diagram provided input, combined with electronic circuit design function of the design to complete a can be used in the digital system development or experiment do input pulse signal or benchmark pulse signal with the signal generator, it has compact structure, stable performance, the structure design is flexible, convenient for the characteristics of the multi-functional combination, economic and practical, low cost.
FPGA; QuartusII; VHDL
TP302
A
1009-5160(2011)06-0061-04
鄭琴(1981-),女,講師,碩士,研究方向:計(jì)算機(jī)科學(xué)與技術(shù).