基于FPGA的高速高精度頻率測量的研究
引言
在電子測量技術中,測頻是最基本的測量之一。常用的直接測頻方法在實用中有較大的局限性,其測量精度隨著被測信號頻率的下降而降低,并且對被測信號的計數(shù)要產(chǎn)生1個數(shù)字誤差。采用等精度頻率測量方法具有測量精度,測量精度保持恒定,不隨所測信號的變化而變化;并且結合現(xiàn)場可編程門陣列FPGA(Field Programmable Gate Array)具有集成度高、高速和高可靠性的特點,使頻率的測頻范圍可達到0.1Hz~100MHz,測頻全域相對誤差恒為1/1 000 000,
1 測頻原理及誤差分析
常用的直接測頻方法主要有測頻法和測周期法兩種。測頻法就是在確定的閘門時間Tw內(nèi),記錄被測信號的變化周期數(shù)(或脈沖個數(shù))Nx,則被測信號的頻率為:fx=Nx/Tw。測周期法需要有標準信號的頻率fs,在待測信號的一個周期Tx內(nèi),記錄標準頻率的周期數(shù)Ns,則被測信號的頻率為:fx=fs/Ns。這兩種方法的計數(shù)值會產(chǎn)生1個字誤差,并且測試精度與計數(shù)器中記錄的數(shù)值Nx或Ns有關。為了保證測試精度,一般對于低頻信號采用測周期法;對于高頻信號采用測頻法,因此測試時很不方便,所以人門提出等精度測頻方法。
等精度測頻方法是在直接測頻方法的基礎上發(fā)展起來的。它的閘門時間不是固定的值,而是被測信號周期的整數(shù)倍,即與被測信號同步,因此,測除了對被測信號計數(shù)所產(chǎn)生1個字誤差,并且達到了在整個測試頻段的等精度測量。其測頻原理如圖1所示。
在測量過程中,有兩個計數(shù)器分別對標準信號和被測信號同時計數(shù)。首先給出閘門開啟信號(預置閘門上升沿),此時計數(shù)器并不開始計數(shù),而是等到被測信號的上升沿到來時,計數(shù)器才真正開始計數(shù)。然后預置閘門關閉信號(下降沿)到時,計數(shù)器并不立即停止計數(shù),而是等到被測信號的上升沿到來時才結束計數(shù),完成一次測量過程??梢钥闯?,實際閘門時間τ與預置閘門時間τ1并不嚴格相等,但差值不超過被測信號的一個周期。
設在一次實際閘門時間τ中計數(shù)器對被測信號的計數(shù)值為Nx,對標準信號的計數(shù)值為Ns。標準信號的頻率為fs,則被測信號的頻率為
由式(1)可知,若忽略標頻fs的誤差,則等精度測頻可能產(chǎn)生的相對誤差為
δ=(|fxc-fx|/fxe)100% (2)
其中fxe為被測信號頻率的準確值。
在測量中,由于fx計數(shù)的起停時間都是由該信號的上升測觸發(fā)的,在閘門時間τ內(nèi)對fx的計數(shù)Nx無誤差(τ=NxTx);對fs的計數(shù)Ns最多相差一個數(shù)的誤差,即|ΔNs|≤1,其測量頻率為
fxe=[Nx/(Ns+ΔNs)]/fs (3)
將式(1)和(3)代入式(2),并整理得:
δ=|ΔNs|/Ns≤1/Ns=1/(τfs)
由上式可以看出,測量頻率的相對誤差與被測信號頻率的大小無關,僅與閘門時間和標準信號頻率有關,即實現(xiàn)了整個測試頻段的等精度測量。閘門時間越長,標準頻率越高,測頻的相對誤差就越小。標準頻率可由穩(wěn)定度好、精度高的高頻率晶體振蕩器產(chǎn)生,在保證測量精度不變的前提下,提高標準信號頻率,可使閘門時間縮短,即提高測試速度。表1所列為標頻在10MHz時閘門時間與最大允許誤差的對應關系。
表1 閘門時間與精度的關系
閘門時間/s | 精 度 |
0.01 0.1 1 | 10 -5 10 -6 10 -7 |
等精度測頻的實現(xiàn)方法可簡化為圖2所示的框圖。CNT1和CNT2是兩個可控計數(shù)器,標準頻率(fs)信號從CNT1的時鐘輸入端CLK輸入;經(jīng)整形后的被測信號(fx)從CNT2的時鐘輸入端CLK輸入。每個計數(shù)器中的CEN輸入端為時鐘使能端控制時鐘輸入。當預置門信號為高電平(預置時間開始)時,被測信號的上升沿通過D觸發(fā)器的輸出端,同時啟動兩個計數(shù)器計數(shù);同樣,當預置門信號為低電平(預置時間結束)時,被測信號的上升沿通過D觸發(fā)器的輸出端,同時關閉計數(shù)器的計數(shù)。
2 硬件設計
在快速測量的要求下,要保證較高精度的測頻,必須采用較高的標準頻率信號;而單片機受本身時鐘頻率和若干指令運算的限制,測頻速度較慢,無法滿足高速、高精度的測頻要求。采用高集成度、高速的現(xiàn)場可編程門陣列FPGA為實現(xiàn)高速,高精度的測頻提供了保證。
FPGA是20世紀90年代發(fā)展起來的大規(guī)模可編程邏輯器件,隨著EDA(電子設計自動化)技術和微電子技術的進步,F(xiàn)PGA的時鐘延遲可達到ns級,結合其并行工作方式,在超高速、實時測控方面有非常廣闊的應用前景;并且FPGA具有高集成度、高可靠性,幾乎可將整個設計系統(tǒng)下載于同一芯片中,實現(xiàn)所謂片上系統(tǒng),從而大大縮小其體積。
整個測頻系統(tǒng)分為多個功能模塊,如信號同步輸入、控制部件、分頻和計數(shù)部件、定時、脈沖寬度測量、數(shù)碼顯示、放大整形和標頻信號等模塊。除數(shù)碼管、放大整形和標頻信號外,其它模塊可集成于FPGA芯片中,并且各邏輯模塊用硬件描述語言HDL來描述其功能,如用VHDL或AHDL來對各功能模塊進行邏輯描述。然后通過EDA開發(fā)平臺,對設計文件自動地完成邏輯編譯、邏輯化簡、綜合及優(yōu)化、邏輯布局布線、邏輯仿真,最后對FPGA芯片進行編程,以實現(xiàn)系統(tǒng)的設計要求。
圖3所示為測頻主系統(tǒng)框圖。一片F(xiàn)PGA(EPF10K10LC84)可完成各種測試功能,可利用單片機完成數(shù)據(jù)處理和顯示輸出。在標準頻率信號為60MHz的情況下,其測量精度可達到1.110 -8,即能夠顯示近8位有效數(shù)字。其中A0~A7和B0~B7為兩計數(shù)器的計數(shù)值輸出。計數(shù)器是32位二進制計數(shù)器(4個8位計數(shù)值)。單片機通過[R1,R0]數(shù)據(jù)讀出選通端分別從這兩個計數(shù)值輸出端讀出4個8位計數(shù)值,根據(jù)測頻和測脈寬原理公式計算出頻和脈沖寬度。STR為預置門啟動輸入;F/T為測頻和測脈寬選擇;CH為自校/測頻選擇;Fa為自校頻率輸入端;Fs為標準頻率信號輸入端;Fx為經(jīng)過放大整形后的被測信號輸入端;END為計數(shù)結束狀態(tài)信號。
FPGA中各功能模塊如圖4所示。
圖4中,CH1和CH2為選擇器,CH1進行自校/測頻選擇,CH2進行測頻和測脈寬選擇。CONTRL1為控制模塊,控制被測信號fx和標頻信號fs的導通,以及兩個計數(shù)器(CONTa和CONTb)的計數(shù)。CONTa和CONTb為32位計數(shù)器,分別以4個8位二進制數(shù)輸出。
圖4 FPGA中各功能模塊
FPGA與單片機AT89C51的接口比較簡單。圖3中的輸入/輸出端與單片機連接:A[7..0]與單片機P2端口相連接;B[7..0]與單片機P0口相連接;其它輸入/輸出端與單片機P3口相連接。
結語
隨著EDA技術和FPGA集成度的提高,F(xiàn)PGA不但包括了MCU(微控制器或單片機)特點,并兼有串、并行工作方式和高速、高可靠性以及寬口徑適用性等諸多方面的特點。單片機完成的數(shù)據(jù)處理功能也可集成在FPGA芯片中?;贔PGA的電子系統(tǒng)設計僅僅是各種邏輯模塊與IP核的邏輯合成和拼裝。測頻系統(tǒng)的標準信號頻率的提高,可進一步提高測頻的精度或縮短測頻時間。
評論