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