王彥東,邵 英,王黎明,肖雄波
(海軍工程大學(xué)電氣與信息工程學(xué)院,湖北 武漢 430033)
基于FPGA的智能高精度頻率測(cè)量設(shè)計(jì)
王彥東,邵 英,王黎明,肖雄波
(海軍工程大學(xué)電氣與信息工程學(xué)院,湖北 武漢 430033)
為提高頻率測(cè)試的精度和智能化程度,減少測(cè)試時(shí)間,提出一種基于FPGA的依據(jù)待測(cè)信號(hào)頻率智能選擇測(cè)試方案的頻率測(cè)量方法。利用控制時(shí)鐘和待測(cè)信號(hào)通過(guò)門(mén)電路延時(shí)產(chǎn)生的脈沖觸發(fā)閘門(mén)信號(hào),對(duì)待測(cè)信號(hào)頻率精確測(cè)量進(jìn)行理論分析、電路仿真以及FPGA硬件實(shí)現(xiàn)。仿真和測(cè)試結(jié)果表明:該方法能夠依據(jù)待測(cè)信號(hào)自適應(yīng)選擇測(cè)試方案,提高測(cè)試精度,降低時(shí)間,很大程度上減少人工參與。
儀器儀表技術(shù);雙同步測(cè)頻法;FPGA;頻率
頻率是電能質(zhì)量的重要指標(biāo),很多場(chǎng)合下需要將模擬電壓電流信號(hào)轉(zhuǎn)換成先行變化的頻率信號(hào)輸出,以提高抗干擾能力[1]。因而頻率的精確、快速測(cè)量具有諸多的現(xiàn)實(shí)意義。
現(xiàn)在主要的測(cè)量方法有測(cè)頻法和測(cè)周法,但通常測(cè)得的10-5的毫秒級(jí)精度已經(jīng)遠(yuǎn)遠(yuǎn)不能滿(mǎn)足電能質(zhì)量對(duì)于納秒級(jí)數(shù)據(jù)的需求。本文從實(shí)際應(yīng)用的角度出發(fā),對(duì)傳統(tǒng)的頻率測(cè)量方法進(jìn)行分析,并將傳統(tǒng)的簡(jiǎn)單計(jì)數(shù)測(cè)頻法和雙同步測(cè)頻法加以結(jié)合,探索出一種新型的融合二者優(yōu)點(diǎn)的自適應(yīng)選擇頻率測(cè)試方法,既保證測(cè)量結(jié)果的精度滿(mǎn)足現(xiàn)代電力系統(tǒng)中對(duì)數(shù)據(jù)的要求,又提供了極為方便的便攜性。
1.1 簡(jiǎn)單的頻率測(cè)量方法
(1)測(cè)頻法。在一定的時(shí)間間隔td-ta(即閘門(mén)信號(hào)時(shí)間)T內(nèi),輸入的周期信號(hào)脈沖計(jì)數(shù)為N,則信號(hào)的頻率為
測(cè)頻法所測(cè)量的數(shù)據(jù)結(jié)果相對(duì)誤差最大為:1/N×(100/100),(N為閘門(mén)信號(hào)時(shí)間內(nèi)待測(cè)頻率的個(gè)數(shù))。
(2)測(cè)周法。這種方法是通過(guò)計(jì)量被測(cè)信號(hào)一個(gè)周期內(nèi)頻率為F0的標(biāo)準(zhǔn)信號(hào)的脈沖數(shù)N來(lái)間接測(cè)量頻率:
測(cè)周法所測(cè)得的數(shù)據(jù)結(jié)果相對(duì)誤差為:1/N×(100/100)(N為待測(cè)信號(hào)閘門(mén)時(shí)間內(nèi)標(biāo)準(zhǔn)時(shí)鐘的個(gè)數(shù))。
1.2 雙同步測(cè)頻法
當(dāng)待測(cè)頻率低于40MHz時(shí),就需尋找另一種測(cè)試方法以滿(mǎn)足測(cè)試精度要求。
理論上,可以利用標(biāo)準(zhǔn)信號(hào)和待測(cè)信號(hào)同時(shí)到達(dá)上升沿的時(shí)刻觸發(fā)門(mén)信號(hào)的翻轉(zhuǎn),并在此期間進(jìn)行兩信號(hào)的測(cè)量,所得結(jié)果在理想條件下可以達(dá)到零誤差,其原理如圖1所示。但實(shí)際中,門(mén)延時(shí)是不可避免的,兩信號(hào)之間完全同時(shí)到達(dá)上升沿幾乎不可能實(shí)現(xiàn),門(mén)之間通常有幾十到幾百皮秒的延時(shí)差異[2],此時(shí)就可以充分利用兩信號(hào)經(jīng)過(guò)“與”運(yùn)算之后的類(lèi)似于脈沖的信號(hào)來(lái)近似代替兩信號(hào)同時(shí)到達(dá)的上升沿,隨之可以展開(kāi)進(jìn)行一系列精密測(cè)量的設(shè)計(jì)[3]。由此引出本設(shè)計(jì)中的核心測(cè)量方法-雙同步測(cè)頻法。
1.3 方案對(duì)比選擇
當(dāng)待測(cè)信號(hào)的頻率足夠大時(shí),測(cè)頻法計(jì)數(shù)所測(cè)結(jié)果±1的數(shù)據(jù)誤差足以滿(mǎn)足測(cè)量要求,并且所需要的測(cè)量時(shí)間也很短,一般不超過(guò)1s即可得出比較精確的測(cè)試結(jié)果。
雙同步測(cè)頻法摒棄了傳統(tǒng)測(cè)量方式對(duì)閘門(mén)信號(hào)的過(guò)分依賴(lài),以可能花費(fèi)稍長(zhǎng)時(shí)間為代價(jià)換取低頻率信號(hào)的高精度。當(dāng)頻率比較低時(shí),±1個(gè)計(jì)數(shù)誤差所帶來(lái)的影響使結(jié)果已不具有可參考性。雙同步測(cè)頻法中的閘門(mén)僅用于頻率測(cè)量的開(kāi)啟和關(guān)閉,相當(dāng)于信號(hào)采集區(qū)間,同時(shí)閘門(mén)信號(hào)的開(kāi)啟和關(guān)閉也由標(biāo)準(zhǔn)信號(hào)和待測(cè)信號(hào)同時(shí)決定。該方法最大程度上降低了由于閘門(mén)信號(hào)不合時(shí)宜的開(kāi)關(guān)所帶來(lái)的計(jì)數(shù)誤差。然而,所消耗的時(shí)間卻有可能相對(duì)過(guò)長(zhǎng)。
頻率測(cè)試對(duì)電能質(zhì)量的檢測(cè)具有很大的作用,通過(guò)Verilog HDL(硬件設(shè)計(jì)語(yǔ)言)的綜合改進(jìn)[4],使得頻率測(cè)量可以根據(jù)待測(cè)頻率的大小自適應(yīng)選擇測(cè)頻法或是雙同步測(cè)頻法來(lái)完成高精度測(cè)量。本設(shè)計(jì)中將臨界點(diǎn)設(shè)置在計(jì)數(shù)值的25位達(dá)到1,此時(shí)的誤差可降至10-7以下。
本文著重考慮待測(cè)頻率精度要求,充分利用FPGA設(shè)計(jì)的靈活性實(shí)現(xiàn)了由待測(cè)頻率的大小自適應(yīng)選擇測(cè)試方案的目標(biāo),充分滿(mǎn)足頻率測(cè)試對(duì)精度和時(shí)間多方面的要求。
2.1 PCI9054硬件平臺(tái)介紹
本文利用PCI9054板卡[5](見(jiàn)圖2)進(jìn)行設(shè)計(jì),板卡所帶40MHz的系統(tǒng)頻率為本次實(shí)驗(yàn)提供了極大的方便,該板卡晶體振蕩器的頻率穩(wěn)定度,決定了頻率計(jì)測(cè)量誤差的最小化。
同時(shí)板卡與PC機(jī)良好的交互功能為頻率及其他量的測(cè)試帶來(lái)了更多方便,更加便于數(shù)據(jù)的存儲(chǔ)及其直觀顯示,同時(shí)經(jīng)過(guò)驅(qū)動(dòng)的作用,經(jīng)由PC機(jī)對(duì)板卡的操作為進(jìn)一步的設(shè)計(jì)要求提供了潛在的應(yīng)用基礎(chǔ),具有良好的可移植性,對(duì)下一步更高的精度測(cè)試提供了可能。
經(jīng)外設(shè)采集到的信號(hào)經(jīng)過(guò)信號(hào)調(diào)理電路后可以轉(zhuǎn)換為待測(cè)頻率信號(hào),經(jīng)由三總線(xiàn)達(dá)到與FPGA的交互,通過(guò)硬件設(shè)計(jì)語(yǔ)言達(dá)到對(duì)待測(cè)信號(hào)的處理、測(cè)量,由PCI9054完成與PC機(jī)的交互功能[6]。
2.2 軟件設(shè)計(jì)方案
當(dāng)被測(cè)頻率大于107Hz時(shí),采用測(cè)頻法所得精度達(dá)到了10-7級(jí)別,并且測(cè)量速度也極快,已經(jīng)基本能滿(mǎn)足各種測(cè)試的需求,同時(shí)達(dá)到了快速和高精度的要求。
當(dāng)頻率低于107Hz又對(duì)測(cè)量精度有很高要求時(shí),采用本實(shí)驗(yàn)提出的雙同步測(cè)頻法,同樣能夠測(cè)得很精確的頻率。所以,本設(shè)計(jì)綜合了二者的優(yōu)勢(shì),對(duì)提高頻率測(cè)量準(zhǔn)確度和減少測(cè)量用時(shí)有很大作用。原理如圖3所示。
利用測(cè)頻法對(duì)待測(cè)信號(hào)進(jìn)行粗測(cè)量,如果待測(cè)信號(hào)頻率高于107Hz,則利用測(cè)頻法直接測(cè)量并計(jì)數(shù),若待測(cè)信號(hào)頻率較低,則利用雙同步法進(jìn)行測(cè)量計(jì)數(shù)。
此處的閘門(mén)時(shí)間由系統(tǒng)時(shí)鐘進(jìn)行分頻提供,系統(tǒng)提供的高精度時(shí)鐘經(jīng)過(guò)40M分頻得到的秒閘門(mén)信號(hào)通過(guò)FPGA測(cè)得的計(jì)數(shù)值即為初步測(cè)量的信號(hào)計(jì)數(shù)值。通過(guò)初步判斷計(jì)數(shù)值,選擇相應(yīng)方案進(jìn)行進(jìn)一步測(cè)量,結(jié)果經(jīng)由數(shù)碼管顯示。閘門(mén)信號(hào)的開(kāi)啟完全由標(biāo)準(zhǔn)時(shí)鐘信號(hào)CLK和待測(cè)信號(hào)CLK0控制,每
當(dāng)標(biāo)準(zhǔn)時(shí)鐘信號(hào)和待測(cè)信號(hào)同時(shí)到達(dá)上升沿時(shí),閘門(mén)信號(hào)翻轉(zhuǎn),在閘門(mén)信號(hào)高電平期間,對(duì)標(biāo)準(zhǔn)時(shí)鐘信號(hào)和待測(cè)信號(hào)分別計(jì)數(shù)為m和n,并于閘門(mén)信號(hào)低電平期間鎖存計(jì)數(shù)值并送顯,則得到了所測(cè)信號(hào)的頻率值為
f0為標(biāo)準(zhǔn)時(shí)鐘信號(hào)頻率,由此得到了待測(cè)信號(hào)頻率的精確值。該測(cè)量方法避免了由于閘門(mén)信號(hào)開(kāi)啟和待測(cè)信號(hào)上升沿不能完全同步所帶來(lái)的±1個(gè)計(jì)數(shù)誤差。
當(dāng)兩個(gè)信號(hào)周期恰好完全成整數(shù)倍關(guān)系,并且初相位沒(méi)有重合時(shí),則使用該方法很難產(chǎn)生閘門(mén)信號(hào),此時(shí)可以使程序跳回測(cè)頻法進(jìn)行測(cè)量,由測(cè)頻法原理可知,采用此法可以避免±1個(gè)計(jì)數(shù)誤差,所以測(cè)得頻率即為待測(cè)信號(hào)真實(shí)頻率。
3.1 Quartus II仿真實(shí)現(xiàn)
利用Verilog語(yǔ)言進(jìn)行設(shè)計(jì),采用自頂向下的設(shè)計(jì)模式,從開(kāi)始設(shè)計(jì)就考慮性能的優(yōu)化。整個(gè)測(cè)頻程序分為幾個(gè)模塊,主要有系統(tǒng)時(shí)鐘分頻模塊、計(jì)數(shù)模塊、判斷選擇模塊、雙同步測(cè)量模塊、計(jì)數(shù)、顯示模塊。
同時(shí)本實(shí)驗(yàn)采用Verilog結(jié)合原理圖綜合設(shè)計(jì)的方法進(jìn)行設(shè)計(jì),利用語(yǔ)言的便捷性和原理圖的直觀性,將設(shè)計(jì)的各個(gè)模塊靈活有效地進(jìn)行結(jié)合達(dá)到實(shí)驗(yàn)?zāi)康摹?/p>
分頻模塊對(duì)系統(tǒng)時(shí)鐘進(jìn)行分頻主要為閘門(mén)信號(hào),此處進(jìn)行的是40 M分頻,得到1s的閘門(mén)信號(hào),用于測(cè)頻法以及在閘門(mén)時(shí)間內(nèi)對(duì)待測(cè)信號(hào)的初步計(jì)數(shù)。計(jì)數(shù)模塊主要完成多個(gè)計(jì)數(shù),分別對(duì)測(cè)頻法里的待測(cè)信號(hào)和雙同步里的標(biāo)準(zhǔn)、待測(cè)信號(hào)計(jì)數(shù),之后對(duì)計(jì)數(shù)值進(jìn)行鎖存。當(dāng)計(jì)數(shù)值達(dá)到測(cè)頻法或雙同步法的要求時(shí)分別選擇相應(yīng)的模塊測(cè)量、顯示。
程序的關(guān)鍵部分在于閘門(mén)信號(hào)的獲取,當(dāng)標(biāo)準(zhǔn)頻率和待測(cè)頻率信號(hào)輸入時(shí),分別經(jīng)過(guò)一個(gè)非門(mén)的延時(shí)得到反相信號(hào),然后原信號(hào)與延時(shí)反相信號(hào)經(jīng)過(guò)與門(mén)之后分別得到瞬時(shí)短脈沖信號(hào),利用該信號(hào)代替兩信號(hào)的上升沿,重合時(shí)即視為兩信號(hào)的上升沿完全重合。該模塊原理如圖4所示。
經(jīng)過(guò)仿真后得到如圖5所示結(jié)果。同時(shí),由于FPGA門(mén)延時(shí)時(shí)間極短,不利于電路完全通過(guò)搭建硬
件與非門(mén)來(lái)實(shí)現(xiàn),為便于現(xiàn)象的觀察,考慮將上圖中的信號(hào)同步檢測(cè)過(guò)程通過(guò)與板卡相結(jié)合[7]變得更為簡(jiǎn)便。
由圖5可知,設(shè)計(jì)利用兩個(gè)信號(hào)的上升沿同時(shí)到來(lái)時(shí)得到瞬時(shí)脈沖的方案,則得到脈沖之后,經(jīng)過(guò)Verilog語(yǔ)言生成的模塊可以實(shí)現(xiàn)使gate0模塊輸出的信號(hào)在脈沖信號(hào)上升沿到來(lái)時(shí)實(shí)現(xiàn)翻轉(zhuǎn)的功能,該信號(hào)即為最終的“閘門(mén)信號(hào)”。利用該信號(hào)進(jìn)行雙同步測(cè)頻法分別對(duì)兩信號(hào)進(jìn)行計(jì)數(shù)即可得到待測(cè)信號(hào)高精度頻率值。
軟件仿真結(jié)果如圖6所示,state為1時(shí),系統(tǒng)自動(dòng)選擇雙同步法進(jìn)行測(cè)量,clk和clk0產(chǎn)生代替上升沿的瞬時(shí)脈沖信號(hào),觸發(fā)計(jì)數(shù)閘門(mén)信號(hào)clk_gate的產(chǎn)生,閘門(mén)信號(hào)高電平期間,cnt和q分別為clk0和clk的計(jì)數(shù)值,由結(jié)果可知n=5,m=277。
本次仿真綜合考慮仿真時(shí)間的要求,選取了較低頻率的標(biāo)準(zhǔn)時(shí)鐘信號(hào),由式(3)可計(jì)算得到待測(cè)頻率值為f=722021.661Hz,與輸入的待測(cè)頻率f′=722 021Hz的誤差在10-7級(jí)別,滿(mǎn)足實(shí)驗(yàn)精度要求。
3.2 硬件電路實(shí)現(xiàn)
基于對(duì)性能和靈活性的綜合考慮,本設(shè)計(jì)的硬件仿真電路主要由芯片EP1C12Q240C8的FPGA實(shí)驗(yàn)板來(lái)完成[8]。標(biāo)準(zhǔn)頻率信號(hào)由實(shí)驗(yàn)板的晶振產(chǎn)生,經(jīng)測(cè)試為標(biāo)準(zhǔn)40MHz信號(hào),該頻率極大地滿(mǎn)足了工業(yè)各測(cè)量的標(biāo)準(zhǔn),同時(shí)高精度的條件也為提高精度做了極為充分的準(zhǔn)備。本設(shè)計(jì)原理如圖7所示。
待測(cè)信號(hào)經(jīng)過(guò)波形處理由模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)交由1s閘門(mén)信號(hào)進(jìn)行計(jì)數(shù),若大于107,則直接采用測(cè)頻法進(jìn)行計(jì)數(shù)并送顯,若計(jì)數(shù)值在107之下,則轉(zhuǎn)入雙同步測(cè)頻法進(jìn)行測(cè)量計(jì)數(shù)[9]。該測(cè)量過(guò)程完全不需要人為參與,由編譯好的程序進(jìn)行自適應(yīng)選擇,實(shí)現(xiàn)了自適應(yīng)的智能化和高精度,對(duì)于數(shù)據(jù)檢測(cè)的智能測(cè)試有很大幫助和參考價(jià)值。
將設(shè)計(jì)并驗(yàn)證過(guò)的程序燒錄至FPGA實(shí)驗(yàn)板上進(jìn)行實(shí)驗(yàn),程序進(jìn)入本實(shí)驗(yàn)的最后驗(yàn)證階段,結(jié)果無(wú)報(bào)錯(cuò)。
由表1中經(jīng)過(guò)測(cè)試的結(jié)果,頻率測(cè)試的精度均達(dá)到了10-7級(jí)別,極大滿(mǎn)足了各方面的需求,為電能質(zhì)量的測(cè)試奠定了良好基礎(chǔ)。但仍存在誤差,綜合分析,誤差主要來(lái)自門(mén)延時(shí)的不確定性。該設(shè)計(jì)主要利用非門(mén)延時(shí)同原信號(hào)經(jīng)過(guò)與門(mén)之后產(chǎn)生的瞬時(shí)脈沖來(lái)代替信號(hào)上升沿觸發(fā)閘門(mén)信號(hào)的產(chǎn)生,因而門(mén)延時(shí)的時(shí)間對(duì)實(shí)驗(yàn)結(jié)果的精度有較大影響[10]。
經(jīng)過(guò)測(cè)試的實(shí)驗(yàn)結(jié)果見(jiàn)表1。
此誤差計(jì)算為
T——閘門(mén)信號(hào)持續(xù)時(shí)間[11]。
由式(4)及結(jié)果可知,系統(tǒng)誤差主要取決于門(mén)延時(shí)時(shí)間,同時(shí)適當(dāng)延長(zhǎng)閘門(mén)時(shí)間也可有效減小誤差。
晶振是電子設(shè)備中始終計(jì)數(shù)的基準(zhǔn),時(shí)鐘的表示都是通過(guò)晶振計(jì)算,然而使用環(huán)境對(duì)晶振的影響頗大,不可避免的對(duì)測(cè)量結(jié)果有一定的影響。測(cè)量結(jié)果與文獻(xiàn)[12]相比加大了測(cè)量范圍,根據(jù)頻率自適應(yīng)選擇測(cè)量范圍,盡量縮短測(cè)量時(shí)間。
FPGA的門(mén)延時(shí)相對(duì)于TTL器件的門(mén)延時(shí)有了很大改進(jìn),本設(shè)計(jì)主要利用該項(xiàng)優(yōu)勢(shì)對(duì)頻率測(cè)量進(jìn)行改進(jìn),有效提高了頻率測(cè)量精度。
本設(shè)計(jì)充分利用FPGA的靈活性和皮秒級(jí)的門(mén)延時(shí),設(shè)定了判斷選擇模塊,根據(jù)待測(cè)信號(hào)靈活選擇測(cè)試方案,充分滿(mǎn)足了工業(yè)設(shè)計(jì)中對(duì)頻率精度更進(jìn)一步的要求,對(duì)頻率測(cè)量精度的進(jìn)一步提高提供了極大的方便。經(jīng)過(guò)改善和綜合設(shè)計(jì)的測(cè)頻方法誤差不超過(guò)10-7,范圍為10Hz~80MHz,有效提高了電子設(shè)計(jì)中頻率測(cè)量的精度,為其他基于頻率的電子測(cè)量提供了進(jìn)一步提高精度的的可能。
[1]Ryszard S,Jozef K.Interpolating time counter with 100 ps resolution on a single FPGA device[J].IEEE Trans.on Instrumentation and Measurement,2000,49(4):879-882.
[2]Jozef K,Ryszard S,Ryszard P.Single-chip interpolating timecounter with 200 ps resolution and 43 ps range[J]. IEEE Trans.on Instrumentation and Measurement,1997,46(4):85l-856.
[3]謝浪清.高速等精度頻率測(cè)量的研究 [J].中國(guó)科技信息,2006(15):304-305.
[4]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2008.
[5]韓雪峰,黃焱,楊濤.基于PCI總線(xiàn)的高速數(shù)據(jù)采集接口的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2005(8):71-73.
[6]Walter Oneey.Programming the microsoft windows driver model[M].Microsoft Press,2003.
[7]陳光禹.現(xiàn)代測(cè)試技術(shù)[M].成都:電子科技大學(xué)出版社,2002.
[8]王慧.基于FPGA高速高精度頻率測(cè)量系統(tǒng)的實(shí)現(xiàn)[J].傳感器世界,2006(1):27-29.
[9]侯聰靈,趙文龍.基于EDA技術(shù)的數(shù)字頻率計(jì)的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2009,32(11):304-305.
[10]王海,周渭,劉暢生,等.一種新的短時(shí)間間隔測(cè)量方法[J].西安電子科技大學(xué)學(xué)報(bào),2008(2):267-271.
[11]方易圓,鄧琛.等精度頻率計(jì)的FPGA設(shè)計(jì)[J].測(cè)控技術(shù),2012,31(10):1-4.
[12]李衛(wèi)兵,李道通,胡波,等.基于FPGA的多功能頻率計(jì)的設(shè)計(jì)[J].電子設(shè)計(jì)工程,2012,20(20):164-167.
Design of intelligent precision frequency measurement based on FPGA
WANG Yan-dong,SHAO Ying,WANG Li-ming,XIAO Xiong-bo
(Institute of Electrical and Information Engineering,Navy University of Engineering,Wuhan 430033,China)
For improving the accuracy and intellectualization of the frequency and minimizing test time,a method to measure the frequency based on the signal to be measured which can choose the testing program intelligently was proposed.By controlling the signal generated by the clock and the test signal through the gate delay combining FPGA and gates 74LS series,the frequency of the signal to be measured can conduct theoretical analysis,circuit simulation and FPGA hardware implementation.Simulation and test results show that this method can solve the problem of measurement accuracy and adaptively select testing program based on the measured signal for improving precision,reducing the time requirements,reducing the labor involved in largely.
instrumentation technology;dual synchronous;FPGA;frequency
TM935;TN911.7;TK018;TP274
:A
:1674-5124(2014)04-0119-05
10.11857/j.issn.1674-5124.2014.04.030
2013-07-29;
:2013-09-24
王彥東(1990-),男,河南西華縣人,碩士研究生,專(zhuān)業(yè)方向?yàn)殡娔苜|(zhì)量檢測(cè)。