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