汪小會(huì)
(解放軍電子工程學(xué)院,安徽合肥 230037)
本文介紹了一種基于FPGA的自適應(yīng)數(shù)字頻率計(jì)的設(shè)計(jì)方案。它以數(shù)字電子技術(shù)和可編程邏輯器件的控制原理為切入點(diǎn),貫穿了數(shù)據(jù)選擇器、觸發(fā)器、計(jì)數(shù)器和鎖存器等功能器件的基本原理和應(yīng)用方法。設(shè)計(jì)方案在FPGA器件上實(shí)現(xiàn),采用圖形輸入方式,由數(shù)字電子技術(shù)課程介紹的基本模塊構(gòu)成。
現(xiàn)有資料介紹自適應(yīng)數(shù)字頻率計(jì)設(shè)計(jì)方法,大多采用VHDL設(shè)計(jì)[1]。但是,掌握VHDL設(shè)計(jì)要用較多時(shí)間,且本科生教學(xué)設(shè)計(jì)課題成功率較低,如果用數(shù)字邏輯電路和可編程邏輯器件FPGA設(shè)計(jì),通常可以完成課題設(shè)計(jì)任務(wù)。
數(shù)字頻率計(jì)是直接用十進(jìn)制數(shù)字來(lái)顯示被測(cè)信號(hào)頻率的一種測(cè)量裝置[2]。對(duì)于非矩形波信號(hào)測(cè)量時(shí)需先進(jìn)行處理,整形變換成幅度為5V的矩形波。本文討論對(duì)矩形波信號(hào)基本測(cè)量頻率為10kHz(顯示四位十進(jìn)制數(shù))和擴(kuò)大10倍量程信號(hào)頻率即100kHz測(cè)量。
本系統(tǒng)由脈沖輸入電路、控制電路(由FPGA構(gòu)成)和輸出顯示電路組成??刂频暮诵男酒荈PGA,它由兩大功能模塊組成:①頻率計(jì)數(shù)模塊,包含選通時(shí)間控制部分和計(jì)數(shù)兩個(gè)部分。②顯示模塊。如圖1所示。
該系統(tǒng)的工作原理是:被測(cè)信號(hào)經(jīng)門控電路整形生成矩形波,輸入到控制核心芯片F(xiàn)PGA的計(jì)數(shù)模塊,計(jì)數(shù)器根據(jù)矩形波上升計(jì)數(shù)。計(jì)數(shù)時(shí)間則由選通時(shí)間控制電路決定,可根據(jù)頻率所處的范圍來(lái)決定檔位。最后將計(jì)數(shù)的結(jié)果給顯示電路,在數(shù)碼管上顯示頻率。
圖1 基本測(cè)頻系統(tǒng)總體框圖
本課題在FPGA的開發(fā)環(huán)境QuartusⅡ中進(jìn)行,學(xué)生使用邏輯符號(hào)設(shè)計(jì)方式[3]。在QuartusⅡ圖形文件編輯過(guò)程中,輸入器件型號(hào)即可調(diào)出所需器件。由于QuartusⅡ的基本元件庫(kù)幾乎囊括了所有中規(guī)模集成器件,QuartusⅡ還具有兆功能函數(shù)庫(kù)中的參數(shù)化模塊,含有所有基本數(shù)字邏輯功能器件。這些參數(shù)化功能模塊的輸入、輸出以及各種控制方式都可由用戶設(shè)定。學(xué)生的設(shè)計(jì)基本不受器件資源的限制,能夠?qū)崿F(xiàn)真正意義上的自主設(shè)計(jì)。
1)電路實(shí)現(xiàn)方案
本文是以一個(gè)閘門信號(hào)低電產(chǎn)控制被測(cè)信號(hào)通過(guò)門控電路。通過(guò)門控的信號(hào)由計(jì)數(shù)器來(lái)統(tǒng)計(jì),閘門信號(hào)一個(gè)周期內(nèi)完成一次信號(hào)數(shù)量統(tǒng)計(jì),同時(shí)刷新一次顯示數(shù)碼,即閘門信號(hào)選通結(jié)束時(shí)將計(jì)數(shù)器內(nèi)數(shù)碼轉(zhuǎn)移到鎖存器,鎖存器內(nèi)數(shù)碼作為顯示狀態(tài)。其后清除計(jì)數(shù)器內(nèi)數(shù)據(jù)。故電路中需要有控制電路產(chǎn)生鎖存器鎖存控制信號(hào)(圖1中④)和計(jì)數(shù)器清零信號(hào)(圖1中⑤)。
2)計(jì)數(shù)器與鎖存器
計(jì)數(shù)器為同步型(10000)10進(jìn)制加法計(jì)數(shù)器,鎖存器(圖1中⑥)由2片74373鎖存4片74160十六位二進(jìn)制數(shù)碼組成[4]。
3)閘門信號(hào)和控制信號(hào)
將晶體振蕩器信號(hào)分頻產(chǎn)生一個(gè)正脈沖或負(fù)脈沖(本文以負(fù)脈沖)寬度為1秒的信號(hào)(圖1中②)作為閘門信號(hào)(圖2中74161輸出QD)。晶體振蕩器分頻中產(chǎn)生另一個(gè)8Hz信號(hào)(圖1中①)作為計(jì)數(shù)器74161時(shí)鐘信號(hào)。74161輸出用74138譯碼產(chǎn)生鎖存控制信號(hào)g和計(jì)數(shù)器清零信號(hào)(圖2中74138輸出Y1N)。
4)溢出信號(hào)產(chǎn)生電路
計(jì)數(shù)器在閘門信號(hào)選通期若最高位數(shù)碼由1變0(即下降沿)就說(shuō)明所測(cè)信號(hào)超出范圍,這時(shí)產(chǎn)生一個(gè)信號(hào)(圖2中DFF輸出Q)為1,用此信號(hào)去控制圖2的二選一數(shù)據(jù)選擇器。有溢出時(shí)將測(cè)信號(hào)十分頻(圖 2中74160)后作為待測(cè)信號(hào),把圖 4中DFF輸出Q信號(hào)用作指示燈示意被測(cè)信號(hào)進(jìn)行了十分頻,或用于控制顯示的數(shù)碼管小數(shù)點(diǎn)。
圖2 閘門信號(hào)和控制信號(hào)產(chǎn)生電路
在閘門信號(hào)選通期如有溢出在本周期內(nèi)計(jì)數(shù)器統(tǒng)計(jì)的脈沖數(shù)目并非是實(shí)際信號(hào)數(shù)目,所以此時(shí)計(jì)數(shù)器狀態(tài)不進(jìn)行鎖存即不顯示,在下一個(gè)閘門信號(hào)周期才鎖計(jì)數(shù)器狀態(tài)即顯示,再下一個(gè)周期應(yīng)將溢出信號(hào)完成清除(置0)。圖2中在7490右邊電路就是為此目的設(shè)計(jì)所用。
5)更大范圍測(cè)頻設(shè)計(jì)
可將上面的計(jì)數(shù)溢出信號(hào)進(jìn)行計(jì)數(shù),判定是否溢出,其后對(duì)被測(cè)信號(hào)進(jìn)行十分頻。類似進(jìn)行上面處理及控制數(shù)碼管該點(diǎn)亮的小數(shù)點(diǎn)及單位符號(hào)。
最后編程下載至FPGA,經(jīng)測(cè)試測(cè)量矩形波信號(hào)基本檔誤差±1Hz,擴(kuò)張檔誤差±10Hz。
本課題是筆者多年從事數(shù)字邏輯電路和可編程器件開發(fā)應(yīng)用教學(xué)多個(gè)課題中一個(gè)典型代表,其綜合知識(shí)范圍廣,設(shè)計(jì)思想新穎,十分適合用于教學(xué)實(shí)驗(yàn)。本課題設(shè)計(jì)是采用原理圖輸入法完成,部分模塊還可采用硬件描述語(yǔ)言法來(lái)做。數(shù)碼的顯示還可用動(dòng)態(tài)數(shù)碼管顯示,如果這樣做可提高學(xué)生對(duì)各種知識(shí)綜合運(yùn)用能力的提高。
[1] 楊剛,龍海燕.現(xiàn)代電子技術(shù)-VHDL與數(shù)字系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2004
[2] 黃正瑾.CPLD系統(tǒng)技術(shù)設(shè)計(jì)入門與應(yīng)用[M].北京:電子工業(yè)出版社,2002
[3] 趙曙光.可編程邏輯器件原理、開發(fā)與應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2006
[4] 中國(guó)集成電路大全[M].國(guó)防工業(yè)出版社,2000