余 果,郭心偉,劉小浩,張國棟,馬 驍
(陜西師范大學(xué) 物理學(xué)與信息技術(shù)學(xué)院,陜西 西安 710119)
基于FPGA的數(shù)字頻率計設(shè)計
余 果,郭心偉,劉小浩,張國棟,馬 驍
(陜西師范大學(xué) 物理學(xué)與信息技術(shù)學(xué)院,陜西 西安 710119)
隨著電子技術(shù)的發(fā)展,快速準(zhǔn)確獲得各種電子信號的頻率顯得越來越重要。但傳統(tǒng)的頻率計大多采用單元電路或單片機進(jìn)行設(shè)計,存在測頻范圍窄,測量精度低,操作復(fù)雜和功能單一等問題。此數(shù)字頻率計主要由AGC模塊、整形模塊、FPGA處理及顯示模塊組成,利用時鐘脈沖計數(shù)的方式,實現(xiàn)正弦波和矩形波信號的頻率、矩形波信號的占空比和輸入的兩路同頻周期矩形波信號時間間隔的測量功能。該數(shù)字頻率計測頻范圍寬,測量精度高,操作簡單,穩(wěn)定可靠。
數(shù)字頻率計;時鐘脈沖計數(shù);FPGA;頻率
數(shù)字頻率計是計算機、通信設(shè)備和音視頻等科研生產(chǎn)領(lǐng)域必不可少的測量儀器,它是一種用十進(jìn)制數(shù)字來顯示被測信號頻率的數(shù)字測量儀器[1]。以往的頻率計大多數(shù)是采用單元電路或單片機技術(shù)進(jìn)行設(shè)計的。本文在QuartusⅡ9.0開發(fā)環(huán)境下,借助強邏輯,弱算法的FPGA器件,用Verilog HDL語言設(shè)計了一種高精度計數(shù)式頻率計[2],較傳統(tǒng)的單元電路設(shè)計更靈活,更具可編程性,大大簡化了電路結(jié)構(gòu)的復(fù)雜性,提高了電路的穩(wěn)定性。同時為設(shè)計者提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計環(huán)境,使設(shè)計者能方便的進(jìn)行設(shè)計輸入、快速處理和器件編程。
文中所述數(shù)字頻率計主要由AGC模塊、整形模塊、FPGA處理模塊、功能選擇模塊及顯示模塊組成,如圖1所示。它具有頻率、占空比和時間間隔測量功能,頻率測量范圍為10 Hz~10 MHz,占空比測量范圍為10%~90%,時間間隔測量范圍為0.1 us~100 ms,測量相對誤差的絕對值小于0.1%。
不同的功能實現(xiàn),輸入的信號也不相同。實現(xiàn)頻率、占空比測量功能時只輸入幅度在50 mV~1.5 V范圍的A路信號。輸入的A路信號經(jīng)過AGC模塊后其峰峰值可穩(wěn)定在4V左右,然后由整形模塊處理成矩形波信號送給FPGA。A路信號輸入正弦波信號時,可實現(xiàn)頻率測量;輸入矩形波信號時,可實現(xiàn)頻率、占空比測量。實現(xiàn)時間間隔測量功能時,輸入為A、B兩路同頻同周期的且幅度在50 mV~1 V范圍的矩形波信號。
該數(shù)字頻率計的頻率、占空比和時間間隔測量功能的程序在FPGA處理模塊中是同時進(jìn)行的,而所得結(jié)果則是在同一個顯示屏上分開顯示的。功能選擇模塊會根據(jù)輸入信號的不同,控制顯示屏顯示頻率、占空比的數(shù)值或是時間間隔的數(shù)值。只有A路信號輸入時,顯示屏顯示頻率或占空比數(shù)值;A、B兩路信號同時輸入時,顯示屏顯示時間間隔數(shù)值。
圖1 數(shù)字頻率計系統(tǒng)組成
硬件電路對輸入信號做放大及整形處理,使輸入信號變?yōu)镕PGA可檢測到的信號后送入FPGA進(jìn)行后續(xù)的運算。
為了使輸入正弦信號電壓有效值在50 mV~1.5 V、頻率在10 Hz~10 MHz之間時,輸出矩形波電壓的幅度穩(wěn)定在2 V,我們采用如圖2所示的AGC電路和TL3016整形電路。AGC及自動增益控制,其原理是控制信號隨輸入信號幅度的變化而變化,使信道輸出幅度檢波后的直流值與參考電壓之間的誤差值盡量減少到最小值[3]。AGC電路由兩級AD603程控放大電路、增益控制電路組成。AD603程控放大電路由三級電路構(gòu)成,即第一級調(diào)偏電路、第一級AD603程控放大電路,第二級調(diào)偏電路、第二級程控放大電路,以及末級放大電路。為了使通帶內(nèi)輸出平坦,在第一級和第二級之間加入低通濾波。通過調(diào)節(jié)增益控制電路中的可變電阻RW3,能夠?qū)崿F(xiàn)增益的手動控制。最終,AGC輸出的放大后的正弦信號S2送入TL3016整形電路轉(zhuǎn)換化成矩形波。當(dāng)輸入信號為矩形波時,情況如上描述。
圖2 AGC電路
3.1 頻率測量方案選取
在頻率測量方法中,常用的有直接測頻法、直接測周法、倍頻法和等精度測頻法等。其中直接測頻法是以待測信號為計數(shù)脈沖在閘門信號持續(xù)時間內(nèi)進(jìn)行計數(shù)從而直接得出待測信號頻率的方法[4]。但是這種方法在低頻段誤差較大,而該數(shù)字頻率計所測信號頻率范圍很廣,因此在低頻段采用直接測周法進(jìn)行頻率測量。直接測周法則是以時鐘信號為計數(shù)脈沖在閘門信號持續(xù)時間內(nèi)進(jìn)行計數(shù)從而得到待測信號的周期,再取倒數(shù)得到待測信號頻率[5]。為了保證精度,需要找到兩種方法轉(zhuǎn)換的臨界頻率。當(dāng)待測信號頻率高于此臨界頻率時,采用直接測頻法進(jìn)行測量;反之,則采用直接測周法測量。經(jīng)過多次實驗,確定該臨界頻率為60 kHz。
3.2 總體結(jié)構(gòu)
文中所述的數(shù)字頻率計軟件部分的總體結(jié)構(gòu)由測周模塊、分頻模塊、測頻模塊、功能轉(zhuǎn)換模塊、時間間隔測量模塊、倍頻模塊以及顯示模塊組成,如圖3所示。
圖3 數(shù)字頻率計軟件部分總體結(jié)構(gòu)圖
倍頻模塊通過調(diào)用altera FPGA內(nèi)部的pll將50 MHz時鐘信號倍頻到100 MHz,作為時鐘信號分別送入測周模塊、時間間隔測量模塊以及分頻模塊;分頻模塊得到1秒閘門信號及清零信號分別送入測周模塊和測頻模塊。測周模塊與測頻模塊同時工作得到兩組數(shù)據(jù),并對其分別進(jìn)行處理可得兩個頻率值。在頻率測量結(jié)果選擇模塊中,分別讓這兩個頻率值與實驗所得的臨界測量頻率60 kHz作比較,若兩個頻率值均小于60 kHz,則采用測周模塊所得頻率值為最終結(jié)果輸出;否則采用測頻模塊所得頻率值為最終輸出。在計算占空比時,采用測周模塊所得數(shù)據(jù)。實現(xiàn)時間間隔測量功能時,送A、B兩路矩形波信號給時間間隔測量模塊,可得到兩路信號的時間間隔。選擇模塊則通過開關(guān)按鍵控制顯示模塊顯示頻率、占空比或時間間隔。
3.3 核心部分設(shè)計
3.3.1 頻率和占空比測量
在頻率測量中,為了保證測量精度,系統(tǒng)采用直接測頻法和直接測周法相結(jié)合的方式。占空比測量則采用直接測周法。下面對兩種方法分別進(jìn)行說明。
1)測周模塊
測周模塊程序流程圖如圖4所示。通過等精度思路,利用脈沖(脈沖頻率Clk_100=100 MHz)計數(shù)的方式,在閘門信號(Clk_1s)持續(xù)1 s的時間內(nèi),在待測信號的上升沿啟動正電平周期計數(shù),下降沿啟動負(fù)電平周期計數(shù),并同時對到來的正負(fù)電平次數(shù)做累加記錄,最終分別得到高電平時總脈沖計數(shù)值(H)、低電平時總脈沖計數(shù)值(L)、總高電平數(shù)(S1)以及總低電平數(shù)(S2)。
依據(jù)H、L、S1、S24個輸出值,可知每個高電平持續(xù)時間內(nèi)平均脈沖數(shù)F1=H÷S1,每個低電平持續(xù)時間內(nèi)平均脈沖數(shù)F2=L÷S2。將求得的高低電平持續(xù)時間內(nèi)的脈沖均值數(shù)求和F=F1+F2,再與時鐘脈沖周期相乘可得待測信號周期,取倒數(shù)即可測出待測信號頻率;同時高電平持續(xù)時間內(nèi)平均脈沖數(shù)F1與高低電平持續(xù)時間內(nèi)的脈沖均值數(shù)之和F相除,可得占空比。
2)測頻模塊
該模塊與測周模塊同步工作。寬度為1秒的閘門信號作為計數(shù)器的時鐘使能信號,而被測信號則作為計數(shù)器的時鐘輸入。當(dāng)閘門信號為高電平時,允許計數(shù)器計數(shù);當(dāng)閘門信號為低電平時,禁止計數(shù)器計數(shù),則1秒的閘門信號持續(xù)時間內(nèi)計數(shù)器的計數(shù)值即為被測信號的頻率。同時為了保證測頻準(zhǔn)確,在每次閘門信號開通前提供給測頻模塊一個清零脈沖信號,讓計數(shù)器處于零狀態(tài),保證計數(shù)器每次都從零開始計數(shù)。
3.3.2 時間間隔測量
時間間隔測量模塊是測量兩路信號的間隔時間的hdl描述,為總線型選擇器結(jié)構(gòu)。依然利用時鐘脈沖計數(shù)的思想,在第一路信號上升沿到來時開始計數(shù),在第二路信號上升沿到來時停止計數(shù),然后讀出計數(shù)值,使其再與時鐘脈沖周期相乘可得兩路信號時間間隔。
本設(shè)計可實現(xiàn)頻率范圍10 Hz~10 MHz、幅度范圍50 mV~1.5 V的正弦波信號的頻率及矩形波信號的頻率和占空比的測量功能,還可實現(xiàn)頻率范圍100 Hz~1 MHz、幅度范圍50 mV~1 V的兩路同頻周期方波信號的時間間隔的測量功能。經(jīng)多次實驗驗證,測量結(jié)果相對誤差的絕對值小于0.1%。
圖4 測周模塊程序流程圖
[1]張博,曹學(xué)巖,房亮.基于VHDL的簡易數(shù)字頻率計的設(shè)計[J].技術(shù)與應(yīng)用,2013,29(6):29-34.
[2]屈寶鵬,張喜鳳,李想.基于VHDL的高精度數(shù)字頻率計的設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2013,36(18):144-147.
[3]胡展威,田克純,熬發(fā)良.數(shù)字通信系統(tǒng)中AGC電路設(shè)計與實現(xiàn)[J].廣西通信技術(shù),2011,18(3):27-31.
[4]陳治國,李劍勇,馮海兵等.基于CPLD直接測頻法的數(shù)字頻率計設(shè)計[J].徐州工程學(xué)院學(xué)報:自然科學(xué)版,2011,26(1):22-28.
[5]徐秀妮.基于VHDL語言的全同步數(shù)字頻率計的設(shè)計與研究[D].西安:長安大學(xué),2011.
[6]潘松,黃繼業(yè),潘明.EDA技術(shù)實用教程——Verilog HDL版[M].北京:科學(xué)出版社,2013.
Design of digital cymometer based on FPGA
YU Guo,GUO Xin-wei,LIU Xiao-hao,ZHANG Guo-dong,MA Xiao
(School of Physics&Information Technology,Shaanxi Normal University,Xi'an 710119,China)
As the development of electronic technology,it's more and more important to obtain accurate frequencies of various kinds of electronic signals rapidly.But traditional cymometer is mainly designed by unit circuits or SCM (Single Chip Microcomputer),which has narrow frequency measurement range and low measurement accuracy.The digital cymometer is made up of AGC module,plastic module,disposing and displaying module.It has functions of frequency measuring,duty ratio measuring and time interval measuring by clock counting.The digital cymometer is stable and accessible.The digital cymometer has wide frequency measurement range and high measurement accuracy.
digital cymometer;clock counting;FPGA;frequency
TN014
A
1674-6236(2016)18-0057-03
2015-09-14 稿件編號:201509094
陜西省自然科學(xué)基金項目資助(2014JQ2-6032);中央高?;痦椖抠Y助(GK201503018)
余 果(1993—),女,河南鄭州人。研究方向:信號與信息處理。