夏振華
(長(zhǎng)江大學(xué) 電信學(xué)院,湖北 荊州 434023)
頻率測(cè)量在電子設(shè)計(jì)和測(cè)量領(lǐng)域中經(jīng)常用到,因此對(duì)頻率測(cè)量方法的研究在實(shí)際工程應(yīng)用中具有重要意義。常用的頻率測(cè)量方法有兩種:頻率測(cè)量法和周期測(cè)量法。頻率測(cè)量法是在時(shí)間t內(nèi)對(duì)被測(cè)信號(hào)的脈沖數(shù)N進(jìn)行計(jì)數(shù),然后求出單位時(shí)間內(nèi)的脈沖數(shù),即為被測(cè)信號(hào)的頻率。周期測(cè)量法是先測(cè)量出被測(cè)信號(hào)的周期T,然后根據(jù)頻率f=1/T求出被測(cè)信號(hào)的頻率。但是上述兩種方法都會(huì)產(chǎn)生±1個(gè)被測(cè)脈沖的誤差,在實(shí)際應(yīng)用中有一定的局限性。根據(jù)測(cè)量原理,很容易發(fā)現(xiàn)頻率測(cè)量法適合于高頻信號(hào)測(cè)量,周期測(cè)量法適合于低頻信號(hào)測(cè)量,但二者都不能兼顧高低頻率同樣精度的測(cè)量要求[1]。
等精度測(cè)量的一個(gè)最大特點(diǎn)是測(cè)量的實(shí)際門(mén)控時(shí)間不是一個(gè)固定值,而是一個(gè)與被測(cè)信號(hào)有關(guān)的值,剛好是被測(cè)信號(hào)的整數(shù)倍。在計(jì)數(shù)允許時(shí)間內(nèi),同時(shí)對(duì)標(biāo)準(zhǔn)信號(hào)和被測(cè)信號(hào)進(jìn)行計(jì)數(shù),再通過(guò)數(shù)學(xué)公式推導(dǎo)得到被測(cè)信號(hào)的頻率。由于門(mén)控信號(hào)是被測(cè)信號(hào)的整數(shù)倍,就消除了對(duì)被測(cè)信號(hào)產(chǎn)生的±1周期誤差,但是會(huì)產(chǎn)生對(duì)標(biāo)準(zhǔn)信號(hào)±1周期的誤差[2]。等精度測(cè)量原理如圖1所示。
圖1 等精度測(cè)量原理
從以上敘述的等精度的測(cè)量原理可以很容易得出如下結(jié)論:首先,被測(cè)信號(hào)頻率fx的相對(duì)誤差與被測(cè)信號(hào)的頻率無(wú)關(guān);其次,增大測(cè)量時(shí)間段“軟件閘門(mén)”或提高“標(biāo)頻”f0,可以減小相對(duì)誤差,提高測(cè)量精度;最后,由于一般提供標(biāo)準(zhǔn)頻率f0的石英晶振穩(wěn)定性很高,所以標(biāo)準(zhǔn)信號(hào)的相對(duì)誤差很小,可忽略。假設(shè)標(biāo)準(zhǔn)信號(hào)的頻率為100 MHz,只要實(shí)際閘門(mén)時(shí)間大于或等于1 s,就可使測(cè)量的最大相對(duì)誤差小于或等于10-8,即精度達(dá)到1/100 MHz。
等精度測(cè)量的核心思想在于如何保證在實(shí)際測(cè)量門(mén)閘內(nèi)被測(cè)信號(hào)為整數(shù)個(gè)周期,這就需要在設(shè)計(jì)中讓實(shí)際測(cè)量門(mén)閘信號(hào)與被測(cè)信號(hào)建立一定的關(guān)系[4]?;谶@種思想,設(shè)計(jì)中以被測(cè)信號(hào)的上升沿作為開(kāi)啟門(mén)閘和關(guān)閉門(mén)閘的驅(qū)動(dòng)信號(hào),只有在被測(cè)信號(hào)的上升沿才將圖1中預(yù)置的“軟件閘門(mén)”的狀態(tài)鎖存,因此在“實(shí)際閘門(mén)”Tx內(nèi)被測(cè)信號(hào)的個(gè)數(shù)就能保證整數(shù)個(gè)周期,這樣就避免普通測(cè)量方法中被測(cè)信號(hào)的±1的誤差,但會(huì)產(chǎn)生高頻的標(biāo)準(zhǔn)頻率信號(hào)的±1周期誤差,由于標(biāo)準(zhǔn)頻率f0的頻率遠(yuǎn)高于被測(cè)信號(hào),因此它產(chǎn)生的±1周期誤差對(duì)測(cè)量精度的影響十分有限,特別是在中低頻測(cè)量的時(shí)候,相較于傳統(tǒng)的頻率測(cè)量和周期測(cè)量方法,可以大大提高測(cè)量精度[5]。
等精度測(cè)頻的原理圖如圖2所示。圖中,預(yù)置軟件閘門(mén)信號(hào)GATE是由FPGA的定時(shí)模塊產(chǎn)生,GATE的時(shí)間寬度對(duì)測(cè)頻精度的影響較少,故可以在較大的范圍內(nèi)選擇。這里選擇預(yù)置閘門(mén)信號(hào)的長(zhǎng)度為1 s[3]。圖中的CNT1和CNT2是2個(gè)可控的32位高速計(jì)數(shù)器,CNT1_ENA和CNT2_ENA分別是其計(jì)數(shù)使能端,基準(zhǔn)頻率信號(hào)f0從CNT1_CLK輸入,待測(cè)信號(hào)fx從CNT2的時(shí)鐘輸入端CONT2_CLK輸入,并將fx接到D觸發(fā)器的clk端。測(cè)量時(shí),由FPGA的定時(shí)模塊產(chǎn)生預(yù)置的GATE信號(hào),在GATE為高電平,并且fx的上升沿時(shí),啟動(dòng)2個(gè)計(jì)數(shù)器,分別對(duì)被測(cè)信號(hào)和基準(zhǔn)信號(hào)計(jì)數(shù),關(guān)閉計(jì)數(shù)閘門(mén)必須滿足,GATE為低電平,且在fx的上升沿。若在一次實(shí)際閘門(mén)時(shí)間Tx中,計(jì)數(shù)器對(duì)被測(cè)信號(hào)的計(jì)數(shù)值為Nx,對(duì)標(biāo)準(zhǔn)信號(hào)的計(jì)數(shù)值為N0,而標(biāo)準(zhǔn)信號(hào)的頻率為f0,則被測(cè)信號(hào)的頻率為fx,則fx=(N0/Ns)f0[6]。 圖2中的所有功能都在FPGA端實(shí)現(xiàn)。
圖2 FPGA實(shí)現(xiàn)的功能的原理圖
圖2所示的單元完成了等精度測(cè)頻的核心部分,在實(shí)際應(yīng)用中多數(shù)時(shí)候需要將測(cè)量的結(jié)果通過(guò)顯示設(shè)備進(jìn)行顯示。從圖2可以看出本設(shè)計(jì)由于設(shè)計(jì)了鎖存單元,將計(jì)數(shù)結(jié)果和一些控制信號(hào)進(jìn)行了鎖存處理,便于與單片機(jī)或者其他的單片機(jī)(MCU)相連,因此在該FPGA實(shí)現(xiàn)的核心單元基礎(chǔ)上連接MCU,容易實(shí)現(xiàn)計(jì)數(shù)值到實(shí)際頻率值以及相應(yīng)的周期值之間的轉(zhuǎn)換,并通過(guò)MCU控制顯示設(shè)備將最終需要顯示的結(jié)果信息進(jìn)行顯示。FPGA器件與單片機(jī)硬件接口電路框圖如圖3所示。圖3中的等精度頻率測(cè)量模塊和鎖存模塊都由Altera公司的FPGA器件EP1C3T100C6實(shí)現(xiàn),等精度計(jì)數(shù)模塊的輸出結(jié)果為2個(gè)32 bit的數(shù)據(jù),為了方便與單片機(jī)連接,該2個(gè)32 bit數(shù)據(jù)由在FPGA器件內(nèi)部的鎖存器分8次鎖存輸出,單片機(jī)每次讀取8 bit,連續(xù)讀取8次即可,讀取的Nx和N0的計(jì)數(shù)值經(jīng)過(guò)單片機(jī)按照等精度頻率計(jì)算公式換算成實(shí)際頻率值,最后通過(guò)DM12864進(jìn)行顯示。
圖3 硬件接口框圖
采用高精度信號(hào)源輸出不同頻率的正弦波信號(hào),經(jīng)過(guò)信號(hào)調(diào)理電路,整形得到的方波信號(hào)提供給FPGA進(jìn)行計(jì)數(shù)測(cè)量,將測(cè)量結(jié)果與高精度信號(hào)源輸出的頻率相比較,計(jì)算其誤差,如表1所示。
表1 頻率和周期測(cè)試數(shù)據(jù)
表1給出了各種頻率的測(cè)量結(jié)果和誤差。結(jié)果顯示,本設(shè)計(jì)在1 Hz~20 MHz全范圍內(nèi)的測(cè)量誤差小于2×10-6。 從圖4可以看出測(cè)量結(jié)果的誤差分布在同一個(gè)數(shù)量級(jí)附近,達(dá)到了等精度測(cè)量的目的。在實(shí)際測(cè)試中發(fā)現(xiàn),如果提高系統(tǒng)晶振的頻率或者提高晶振的精度級(jí)別,頻率測(cè)量的誤差還會(huì)進(jìn)一步降低。
圖4 各個(gè)頻率點(diǎn)的測(cè)量誤差分布圖
詳細(xì)介紹了等精度測(cè)量的原理,并給出等精度測(cè)量的思想在FPGA上實(shí)現(xiàn)的方法。測(cè)試結(jié)果表明該等精度測(cè)量方案誤差非常小,在測(cè)量范圍內(nèi)誤差恒定。該設(shè)計(jì)方案對(duì)測(cè)量頻率實(shí)現(xiàn)設(shè)計(jì)具有一定的借鑒。
[1]莫琳.基于FPGA的等精度頻率計(jì)的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2004,10(10):81-82.
[2]李紅剛.基于FPGA的高速等精度頻率測(cè)量系統(tǒng)設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008,24(11):218-220.
[3]毛智德.基于FPGA的等精度頻率計(jì)設(shè)計(jì)[J].電子測(cè)量技術(shù),2007,29(4):85-86.
[4]陳明杰.利用CPLD設(shè)計(jì)高速等精度頻率測(cè)量?jī)x[J].重慶工商大學(xué)學(xué)報(bào),2004,21(4):32-34.
[5]李麗娟,張壽明.基于CPLD/FPGA的等精度頻率計(jì)設(shè)計(jì)[J].工業(yè)控制計(jì)算機(jī),2008,21(8):73-74.
[6]楊瀟,翟玉文,艾學(xué)忠.基于CPLD和VHDL的等精度頻率裝置[J].吉林化工學(xué)院學(xué)報(bào),2004,21(3):49-51.