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