余 果,郭心偉,劉小浩,張國棟,馬 驍
(陜西師范大學 物理學與信息技術學院,陜西 西安 710119)
基于FPGA的數字頻率計設計
余 果,郭心偉,劉小浩,張國棟,馬 驍
(陜西師范大學 物理學與信息技術學院,陜西 西安 710119)
隨著電子技術的發展,快速準確獲得各種電子信號的頻率顯得越來越重要。但傳統的頻率計大多采用單元電路或單片機進行設計,存在測頻范圍窄,測量精度低,操作復雜和功能單一等問題。此數字頻率計主要由AGC模塊、整形模塊、FPGA處理及顯示模塊組成,利用時鐘脈沖計數的方式,實現正弦波和矩形波信號的頻率、矩形波信號的占空比和輸入的兩路同頻周期矩形波信號時間間隔的測量功能。該數字頻率計測頻范圍寬,測量精度高,操作簡單,穩定可靠。
數字頻率計;時鐘脈沖計數;FPGA;頻率
數字頻率計是計算機、通信設備和音視頻等科研生產領域必不可少的測量儀器,它是一種用十進制數字來顯示被測信號頻率的數字測量儀器[1]。以往的頻率計大多數是采用單元電路或單片機技術進行設計的。本文在QuartusⅡ9.0開發環境下,借助強邏輯,弱算法的FPGA器件,用Verilog HDL語言設計了一種高精度計數式頻率計[2],較傳統的單元電路設計更靈活,更具可編程性,大大簡化了電路結構的復雜性,提高了電路的穩定性。同時為設計者提供了一種與結構無關的設計環境,使設計者能方便的進行設計輸入、快速處理和器件編程。
文中所述數字頻率計主要由AGC模塊、整形模塊、FPGA處理模塊、功能選擇模塊及顯示模塊組成,如圖1所示。它具有頻率、占空比和時間間隔測量功能,頻率測量范圍為10 Hz~10 MHz,占空比測量范圍為10%~90%,時間間隔測量范圍為0.1 us~100 ms,測量相對誤差的絕對值小于0.1%。
不同的功能實現,輸入的信號也不相同。實現頻率、占空比測量功能時只輸入幅度在50 mV~1.5 V范圍的A路信號。輸入的A路信號經過AGC模塊后其峰峰值可穩定在4V左右,然后由整形模塊處理成矩形波信號送給FPGA。A路信號輸入正弦波信號時,可實現頻率測量;輸入矩形波信號時,可實現頻率、占空比測量。實現時間間隔測量功能時,輸入為A、B兩路同頻同周期的且幅度在50 mV~1 V范圍的矩形波信號。
該數字頻率計的頻率、占空比和時間間隔測量功能的程序在FPGA處理模塊中是同時進行的,而所得結果則是在同一個顯示屏上分開顯示的。功能選擇模塊會根據輸入信號的不同,控制顯示屏顯示頻率、占空比的數值或是時間間隔的數值。只有A路信號輸入時,顯示屏顯示頻率或占空比數值;A、B兩路信號同時輸入時,顯示屏顯示時間間隔數值。

圖1 數字頻率計系統組成
硬件電路對輸入信號做放大及整形處理,使輸入信號變為FPGA可檢測到的信號后送入FPGA進行后續的運算。
為了使輸入正弦信號電壓有效值在50 mV~1.5 V、頻率在10 Hz~10 MHz之間時,輸出矩形波電壓的幅度穩定在2 V,我們采用如圖2所示的AGC電路和TL3016整形電路。AGC及自動增益控制,其原理是控制信號隨輸入信號幅度的變化而變化,使信道輸出幅度檢波后的直流值與參考電壓之間的誤差值盡量減少到最小值[3]。AGC電路由兩級AD603程控放大電路、增益控制電路組成。AD603程控放大電路由三級電路構成,即第一級調偏電路、第一級AD603程控放大電路,第二級調偏電路、第二級程控放大電路,以及末級放大電路。為了使通帶內輸出平坦,在第一級和第二級之間加入低通濾波。通過調節增益控制電路中的可變電阻RW3,能夠實現增益的手動控制。最終,AGC輸出的放大后的正弦信號S2送入TL3016整形電路轉換化成矩形波。當輸入信號為矩形波時,情況如上描述。

圖2 AGC電路
3.1 頻率測量方案選取
在頻率測量方法中,常用的有直接測頻法、直接測周法、倍頻法和等精度測頻法等。其中直接測頻法是以待測信號為計數脈沖在閘門信號持續時間內進行計數從而直接得出待測信號頻率的方法[4]。但是這種方法在低頻段誤差較大,而該數字頻率計所測信號頻率范圍很廣,因此在低頻段采用直接測周法進行頻率測量。直接測周法則是以時鐘信號為計數脈沖在閘門信號持續時間內進行計數從而得到待測信號的周期,再取倒數得到待測信號頻率[5]。為了保證精度,需要找到兩種方法轉換的臨界頻率。當待測信號頻率高于此臨界頻率時,采用直接測頻法進行測量;反之,則采用直接測周法測量。經過多次實驗,確定該臨界頻率為60 kHz。
3.2 總體結構
文中所述的數字頻率計軟件部分的總體結構由測周模塊、分頻模塊、測頻模塊、功能轉換模塊、時間間隔測量模塊、倍頻模塊以及顯示模塊組成,如圖3所示。

圖3 數字頻率計軟件部分總體結構圖
倍頻模塊通過調用altera FPGA內部的pll將50 MHz時鐘信號倍頻到100 MHz,作為時鐘信號分別送入測周模塊、時間間隔測量模塊以及分頻模塊;分頻模塊得到1秒閘門信號及清零信號分別送入測周模塊和測頻模塊。測周模塊與測頻模塊同時工作得到兩組數據,并對其分別進行處理可得兩個頻率值。在頻率測量結果選擇模塊中,分別讓這兩個頻率值與實驗所得的臨界測量頻率60 kHz作比較,若兩個頻率值均小于60 kHz,則采用測周模塊所得頻率值為最終結果輸出;否則采用測頻模塊所得頻率值為最終輸出。在計算占空比時,采用測周模塊所得數據。實現時間間隔測量功能時,送A、B兩路矩形波信號給時間間隔測量模塊,可得到兩路信號的時間間隔。選擇模塊則通過開關按鍵控制顯示模塊顯示頻率、占空比或時間間隔。
3.3 核心部分設計
3.3.1 頻率和占空比測量
在頻率測量中,為了保證測量精度,系統采用直接測頻法和直接測周法相結合的方式。占空比測量則采用直接測周法。下面對兩種方法分別進行說明。
1)測周模塊
測周模塊程序流程圖如圖4所示。通過等精度思路,利用脈沖(脈沖頻率Clk_100=100 MHz)計數的方式,在閘門信號(Clk_1s)持續1 s的時間內,在待測信號的上升沿啟動正電平周期計數,下降沿啟動負電平周期計數,并同時對到來的正負電平次數做累加記錄,最終分別得到高電平時總脈沖計數值(H)、低電平時總脈沖計數值(L)、總高電平數(S1)以及總低電平數(S2)。
依據H、L、S1、S24個輸出值,可知每個高電平持續時間內平均脈沖數F1=H÷S1,每個低電平持續時間內平均脈沖數F2=L÷S2。將求得的高低電平持續時間內的脈沖均值數求和F=F1+F2,再與時鐘脈沖周期相乘可得待測信號周期,取倒數即可測出待測信號頻率;同時高電平持續時間內平均脈沖數F1與高低電平持續時間內的脈沖均值數之和F相除,可得占空比。
2)測頻模塊
該模塊與測周模塊同步工作。寬度為1秒的閘門信號作為計數器的時鐘使能信號,而被測信號則作為計數器的時鐘輸入。當閘門信號為高電平時,允許計數器計數;當閘門信號為低電平時,禁止計數器計數,則1秒的閘門信號持續時間內計數器的計數值即為被測信號的頻率。同時為了保證測頻準確,在每次閘門信號開通前提供給測頻模塊一個清零脈沖信號,讓計數器處于零狀態,保證計數器每次都從零開始計數。
3.3.2 時間間隔測量
時間間隔測量模塊是測量兩路信號的間隔時間的hdl描述,為總線型選擇器結構。依然利用時鐘脈沖計數的思想,在第一路信號上升沿到來時開始計數,在第二路信號上升沿到來時停止計數,然后讀出計數值,使其再與時鐘脈沖周期相乘可得兩路信號時間間隔。
本設計可實現頻率范圍10 Hz~10 MHz、幅度范圍50 mV~1.5 V的正弦波信號的頻率及矩形波信號的頻率和占空比的測量功能,還可實現頻率范圍100 Hz~1 MHz、幅度范圍50 mV~1 V的兩路同頻周期方波信號的時間間隔的測量功能。經多次實驗驗證,測量結果相對誤差的絕對值小于0.1%。

圖4 測周模塊程序流程圖
[1]張博,曹學巖,房亮.基于VHDL的簡易數字頻率計的設計[J].技術與應用,2013,29(6):29-34.
[2]屈寶鵬,張喜鳳,李想.基于VHDL的高精度數字頻率計的設計與實現[J].現代電子技術,2013,36(18):144-147.
[3]胡展威,田克純,熬發良.數字通信系統中AGC電路設計與實現[J].廣西通信技術,2011,18(3):27-31.
[4]陳治國,李劍勇,馮海兵等.基于CPLD直接測頻法的數字頻率計設計[J].徐州工程學院學報:自然科學版,2011,26(1):22-28.
[5]徐秀妮.基于VHDL語言的全同步數字頻率計的設計與研究[D].西安:長安大學,2011.
[6]潘松,黃繼業,潘明.EDA技術實用教程——Verilog HDL版[M].北京:科學出版社,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
陜西省自然科學基金項目資助(2014JQ2-6032);中央高校基金項目資助(GK201503018)
余 果(1993—),女,河南鄭州人。研究方向:信號與信息處理。