基于FPGA的频率计设计
提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔
文章目錄
- 前言
- 一、頻率計是什么
- 二、使用步驟
- 1.測量方法
- 2.測周方法:
- 3.系統框圖
- 總結
前言
所謂“頻率”,就是周期性信號在單位時間(秒)內變化的次數。
一、頻率計是什么
所謂“頻率”,就是周期性信號在單位時間(秒)內變化的次數。若在一定的時間間隔T內計數,計得某周期性信號的重復變化次數為N,則該信號的頻率可表達為:
f =N/ T所以測量頻率就要分別知道N和T的值,由此,測量頻率的方法一般有三種:測頻方法、測周方法和等精度測量。
測頻方法:這種方法即己知時基信號(頻率或周期確定)做門控信號,T為已知量,然后在門控信號有效的時間段內進行輸入脈沖的計數,原理圖如下圖所示:
二、使用步驟
1.測量方法
首先,被測信號①(以正弦波為例)經過放大整形后轉變成方波脈沖②,其重復頻率等于被測信號頻率。把方波脈沖②加到閘門的輸入端。由一個高穩定的石英振蕩器和一系列數字分頻器組成了時基信號發生器,它輸出時間基準(或頻率基準)信號③去控制門控電路形成門控信號④,門控信號的作用時間T是非常準確的(由石英振蕩器決定)。門控信號控制閘門的開與閉,只有在閘門開通的時間內,方波脈沖②才能通過閘門成為被計數的脈沖⑤由計數器計數。閘門開通的時間稱為閘門時間,其長度等于門控信號作用時間T。比如,時間基準信號的重復周期為1S,加到閘門的門控信號作用時間T亦準確地等于1S,即閘門的開通時間——“閘門時間”為1S。在這一段時間內,若計數器計得N=100000個數,根據公式f =N /T,那么被測頻率就是100000Hz。如果計數式頻率計的顯示器單位為“KHz”,則顯示100.000KHz,即小數點定位在第三位。不難設想,若將閘門時間設為T=0.1S,則計數值為10000,這時,顯示器的小數點只要根據閘門時間
T的改變也隨之自動往右移動一位(自動定位),那么,顯示的結果為100.00Khz。在計數式數字頻率計中,通過選擇不同的閘門時間,可以改變頻率計的測量范圍和測量精度。
2.測周方法:
測周方法:
被測信號(頻率或周期待測)做門控信號,T為未知量,做門控信號T,然后在門控信號有效的時間段內對時基信號脈沖計數,原理圖如下圖所示: 測周方法:
等精度測量法的核心思想是通過閘門信號與被測信號同步,將閘門時間t控制為被測信號周期長度的整數倍。測量時,先打開預置閘門,當檢測到被測信號脈沖沿到達時,標準信號時鐘開始計數。預置閘門關閉時,標準信號并不立即停止計數,而是等檢測到被測信號脈沖沿到達時才停止,完成被測信號整數個周期的測量。測量的實際閘門時間可能會與預置閘門時間不完全相同,但最大差值不會超過被測信號的一個周期。在等精度測量法中,相對誤差與被測信號本身的頻率特性無關,即對整個測量域而言,測量精度相等,因而稱之為“等精度測量”。標準信號的計數值越大則測量相對誤差越小,即提高門限時間r和標準信號頻率f。可以提高測量精度。在精度不變的情況下,提高標準信號頻率可以縮短門限時間,提高測量速度。
3.系統框圖
/***********************產生測試時鐘**************************************/ always @(posedge sysclk)begin if(counter==15'b110_0001_1010_1000)begintest_clk<=~test_clk;//500HZcounter<=15'b0;endelsecounter<=counter+1'b1;end /**********************產生1HZ的時鐘************************************/ always @(posedge sysclk)begin if(clk_counter==25'b1_0111_1101_0111_1000_0100_0000)beginclk_div<=~clk_div;clk_counter<=25'b0;endelseclk_counter<=clk_counter+1'b1;end /*********************測試待測信號***********************************/ always @(posedge inclk)begin if(clk_div)beginif(counter1==4'b1001)begin counter1<=4'b0;counter2<=counter2+1'b1;if(counter2==4'b1001)begin counter2<=4'b0;counter3<=counter3+1'b1;if(counter3==4'b1001)begin counter3<=4'b0;counter4<=counter4+1'b1;if(counter4==4'b1001)begin counter4<=4'b0;counter5<=counter5+1'b1;if(counter5==4'b1001)begin counter5<=4'b0;counter6<=counter6+1'b1;if(counter6==4'b1001)begincounter6<=4'b0;counter7<=counter7+1'b1;if(counter7==4'b1001)begin counter7<=4'b0;counter8<=counter8+1'b1;if(counter8==4'b1001)begincounter8<=4'b0;endend end end end end end endelsecounter1<=counter1+1'b1;endelse總結
可以使用PLL生成時鐘進行測試
總結
以上是生活随笔為你收集整理的基于FPGA的频率计设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rc列联表_R语言入门之频率表和列联表
- 下一篇: html 设置地图中心点,SOSO地图J