PCB中基于FPGA的等精度頻率計的設計

2013-10-18 16:01 來源:電子信息網 作者:鈴鐺


現場可編程門陣列FPGA(Field Programmable GateArray)屬于ASIC產品,通過軟件編程對目標器件的結構和工作方式進行重構,能隨時對設計進行調整,具有集成度高、結構靈活、開發(fā)周期短、快速可靠性高等特點,數字設計在其中快速發(fā)展。


本文介紹了一種利用FPGA實現DC~100 MHz的自動切換量程數字等精度頻率計的實現方法,并給出實現代碼。整個系統在研制的CPLD/FPGA實驗開發(fā)系統上調試通過。

1 等精度測頻原理

頻率的測量方法主要分為2種方法:

(1)直接測量法,即在一定的閘門時間內測量被測信號的脈沖個數。

(2)間接測量法,例如周期測頻法、V-F轉換法等。 間接測頻法僅適用測量低頻信號。

基于傳統測頻原理的頻率計的測量精度將隨被測信號頻率的下降而降低,在實用中有較大的局限性,而等精度頻率計不但具有較高的測量精度,而且在整個頻率區(qū)域能保持恒定的測試精度。

本設計頻率測量方法的主要測量控制框圖如圖1所示。圖1中預置門控信號GATE是由單片機發(fā)出,GATE的時間寬度對測頻精度影響較少,可以在較大的范圍內選擇,只要FPGA中32 b計數器在計100 M信號不溢出都行,根據理論計算GATE的時間寬度Tc可以大于42.94 s,但是由于單片機的數據處理能力限制,實際的時間寬度較少,一般可在10~0.1 s間選擇,即在高頻段時,閘門時間較短;低頻時閘門時間較長。這樣閘門時間寬度Tc依據被測頻率的大小自動調整測頻,從而實現量程的自動轉換,擴大了測頻的量程范圍;實現了全范圍等精度測量,減少了低頻測量的誤差。

00001


圖1中BZ_Counter和DC_Counter是2個可控的32 b高速計數器(100 MHz),BZ_ENA和DC_ENA分別是他們的計數允許信號端,高電平有效?;鶞暑l率信號從BZ_Counter的時鐘輸入端BZ_CLK輸入,設其頻率為Fb;待測信號經前端放大、限幅和整形后,從與BZ_Counter相似的32 b計數器DC_Counter的時鐘輸入端DC_CLK輸入,測量頻率為Fx。

測量開始,首選單片機發(fā)出一個清零信號CLR,使2個32 b的計數器和D觸發(fā)器置0,然后單片機再發(fā)出允許測頻命令,即使預置門控信號GATE為高電平,這時D觸發(fā)器要一直等到被測信號的上升沿通過時,Q端才被置1,即使BZ_ENA和DC_ENA同時為1,將啟動計算器BZ_Counter和DC_Counter,系統進入計算允許周期。這時,計數器BZ_Counter和DC_Counter分別對被測信號和標準頻率信號同時計數。當Tc秒過后,預置門控信號被單片機置為低電平,但此時2個32 b的計數器仍然沒有停止計數,一直等到隨后而至的被測信號的上升沿到來時,才通過D觸發(fā)器將這2個計算器同時關閉。由圖2所示的測頻時序圖可見,GATE的寬度和發(fā)生的時間都不會影響計數使能信號允許計數的周期總是恰好等于待測信號XCLK的完整周期,這正是確保XCLK在任何頻率條件下都能保持恒定測量精度的關鍵。因為,此時GATE的寬度Tc改變以及隨機的出現時間造成的誤差最多只有基準時鐘BCLK信號的一個時鐘周期,由于BCLK的信號是由高穩(wěn)定度的100 MHz晶體振蕩器發(fā)出的,所以任何時刻的絕對測量誤差只有1/108 s,這也是系統產生主要的誤差。

設在某一次預置門控時間Tc中對被測信號計數值為Nx,對標準頻率信號的計數值為Nb,則根據閘門時間相等,可得出公式(1):

00002

1 2 > 
FPGA PCB

相關閱讀

暫無數據

一周熱門