??? 摘 要: 介紹了等精度" title="等精度">等精度頻率測(cè)量方法的原理及誤差分析,利用基于FPGA的SoPC技術(shù)在QuartusⅡ5.0環(huán)境下用VHDL語(yǔ)言實(shí)現(xiàn)了等精度頻率計(jì)" title="等精度頻率計(jì)">等精度頻率計(jì)的軟核IP Core設(shè)計(jì),并在相應(yīng)的開發(fā)平臺(tái)上作了驗(yàn)證。
??? 關(guān)鍵詞: FPGA? SoPC? 等精度? IP Core
?
??? 頻率測(cè)量是電子測(cè)量技術(shù)中最基本的測(cè)量之一。在現(xiàn)代信號(hào)分析和處理領(lǐng)域中,高精度的頻率測(cè)量有非常重要的意義。
??? 常用的測(cè)頻" title="測(cè)頻">測(cè)頻方法有計(jì)數(shù)法和周期法。計(jì)數(shù)法是在預(yù)制的閘門時(shí)間TW內(nèi)測(cè)量被測(cè)信號(hào)的脈沖個(gè)數(shù)Nx,進(jìn)行換算得出被測(cè)信號(hào)的頻率為fx=Nx/:TW。這種測(cè)量方法的測(cè)量精度" title="測(cè)量精度">測(cè)量精度取決于閘門時(shí)間和被測(cè)信號(hào)頻率。當(dāng)被測(cè)信號(hào)頻率較低時(shí)將產(chǎn)生較大誤差,除非閘門時(shí)間取得很大。周期法是在被測(cè)信號(hào)的一個(gè)周期Tx內(nèi),測(cè)量標(biāo)準(zhǔn)信號(hào)(周期TC)ΔFS/FS的周期個(gè)數(shù)NS,進(jìn)行換算得出被測(cè)信號(hào)的頻率為fx=fC/NS。這種測(cè)量方法的測(cè)量精度取決于被測(cè)信號(hào)的周期和計(jì)時(shí)精度。本文采用的測(cè)量方法克服了以上兩種方法的缺點(diǎn),測(cè)頻精度與被測(cè)信號(hào)的頻率大小無關(guān),從而保證了頻率的等精度測(cè)量。
??? 隨著FPGA和SoPC技術(shù)的迅速發(fā)展,在單芯片上實(shí)現(xiàn)的功能越來越復(fù)雜。這就使得設(shè)計(jì)師的工作量非常大,而IP Core的復(fù)用可以大大減少工作量,從而減小設(shè)計(jì)的復(fù)雜性,提高產(chǎn)品的設(shè)計(jì)效率。本文根據(jù)等精度頻率測(cè)量的原理,用VHDL語(yǔ)言實(shí)現(xiàn)了等精度頻率計(jì)的IP Core,實(shí)現(xiàn)軟核的重用。
1 等精度頻率測(cè)量
1.1 等精度頻率測(cè)量原理
??? 基于傳統(tǒng)測(cè)頻原理的頻率計(jì)的測(cè)量精度將隨被測(cè)信號(hào)頻率的下降而降低,在實(shí)用中有較大的局限性。而等精度頻率計(jì)不但具有較高的測(cè)量精度,并且在整個(gè)頻率區(qū)域保持恒定的測(cè)量精度。
??? 等精度頻率測(cè)量用被測(cè)信號(hào)的多周期而不是單周期作門控" title="門控">門控信號(hào);門控信號(hào)周期數(shù)可根據(jù)被測(cè)頻率的大小自動(dòng)調(diào)節(jié),使計(jì)數(shù)值Ns保持不變,從而實(shí)現(xiàn)等精度測(cè)量。
??? 等精度測(cè)頻的原理框圖如圖1所示。圖中預(yù)置門控信號(hào)是寬度為Tpr的一個(gè)脈沖,Counterl和Counter2是兩個(gè)可控計(jì)數(shù)器,標(biāo)準(zhǔn)頻率信號(hào)從Counter1的時(shí)鐘輸入端CLK輸入,其頻率為Fs;經(jīng)整形后的被測(cè)信號(hào)從Counter2的時(shí)鐘輸入端CLK輸入,設(shè)其實(shí)際頻率為Fxe,測(cè)量頻率為Fx。
???????????????????????????????
??? 當(dāng)預(yù)置門控信號(hào)為高電平時(shí),經(jīng)整形后的被測(cè)信號(hào)的上沿通過D觸發(fā)器的Q端同時(shí)啟動(dòng)計(jì)數(shù)器Counter1和Counter2。Counter1、Counter2分別對(duì)被測(cè)信號(hào)(頻率為Fx)和標(biāo)準(zhǔn)頻率信號(hào)(頻率為Fs)同時(shí)計(jì)數(shù)。當(dāng)預(yù)置門信號(hào)為低電平時(shí),隨后而至的被測(cè)信號(hào)的上沿將使這兩個(gè)計(jì)數(shù)器同時(shí)關(guān)閉。設(shè)在一次預(yù)置門時(shí)間Tpr中對(duì)被測(cè)信號(hào)計(jì)數(shù)值為Nx;對(duì)標(biāo)準(zhǔn)頻率信號(hào)的計(jì)數(shù)值為Ns,則下式成立:
???
1.2 誤差分析
??? 設(shè)所測(cè)頻率值為Fx,其真實(shí)值為Fxe,標(biāo)準(zhǔn)頻率為Fs。在一次測(cè)量中,由于計(jì)數(shù)的起停時(shí)間都是由該信號(hào)的上跳沿觸發(fā)的,在Tpr時(shí)間內(nèi)對(duì)Fx的計(jì)數(shù)Nx無誤差;在此時(shí)間內(nèi),F(xiàn)s的計(jì)數(shù)Ns最多相差一個(gè)脈沖,即:
???
??? 則下式成立:
??? 根據(jù)相對(duì)誤差的公式有:
??? 由上式可以得出以下結(jié)論:
??? (1)相對(duì)測(cè)量誤差與頻率無關(guān)。
??? (2)增大Tpr或提高Fs,可以增大Ns,減少測(cè)量誤差,提高測(cè)量精度。
??? (3)標(biāo)準(zhǔn)頻率誤差為ΔFs/Fs。
??? (4)等精度測(cè)頻方法測(cè)量精度與預(yù)置門寬度和標(biāo)準(zhǔn)頻率有關(guān),與被測(cè)信號(hào)的頻率無關(guān)。在預(yù)置門時(shí)間和常規(guī)測(cè)頻閘門時(shí)間相同,而被測(cè)信號(hào)頻率不同的情況下,等精度測(cè)量法的測(cè)量精度不變,而常規(guī)的直接測(cè)頻法精度隨著被測(cè)信號(hào)頻率的下降而下降。測(cè)試電路可采用高頻率穩(wěn)定度和高精度的恒溫可微調(diào)的晶體振蕩器作標(biāo)準(zhǔn)頻率發(fā)生電路。
1.3 等精度頻率計(jì)的實(shí)現(xiàn)方法
??? 隨著微電子技術(shù)與工藝的發(fā)展,等精度頻率計(jì)的實(shí)現(xiàn)從完全使用小規(guī)模集成電路、單片機(jī)+小規(guī)模集成電路、FPGA+單片機(jī)發(fā)展到基于FPGA的SoPC設(shè)計(jì)。小規(guī)模集成電路在實(shí)現(xiàn)乘除運(yùn)算時(shí)相當(dāng)復(fù)雜,而單片機(jī)受本身時(shí)鐘頻率和若干指令運(yùn)算的限制,測(cè)頻速度較慢,無法滿足高速、高精度的測(cè)頻要求,同時(shí)需要外部分離元件的支持,這增加了系統(tǒng)的復(fù)雜度。采用高集成度、高速的現(xiàn)場(chǎng)可編程門陣列FPGA為實(shí)現(xiàn)高速、高精度的測(cè)頻提供了保證。
??? 本系統(tǒng)采用基于FPGA的SoPC技術(shù)實(shí)現(xiàn)等精度頻率測(cè)量?;赟oPC的特點(diǎn),本系統(tǒng)具有靈活的設(shè)計(jì)方式,體積小、開發(fā)周期短、可裁剪、可擴(kuò)充、可升級(jí),并具備軟硬件在系統(tǒng)可編程的功能。
2 等精度頻率計(jì)IP Core
??? 本文主要介紹等精度頻率計(jì)的功能模塊設(shè)計(jì),包括任務(wù)邏輯、寄存器文件及Avalon接口的設(shè)計(jì)。
2.1 任務(wù)邏輯
??? 任務(wù)邏輯框圖如圖2所示。任務(wù)邏輯完成用戶定制元件的基本功能。本設(shè)計(jì)中任務(wù)邏輯完成頻率測(cè)量、脈寬測(cè)量及占空比測(cè)量三個(gè)功能。由于FPGA低偏斜、高負(fù)載的布線資源有限,為了避免高速、高頻率系統(tǒng)時(shí)序中潛在的競(jìng)爭(zhēng)、毛刺、建立和保持時(shí)間違反問題,本系統(tǒng)采用同步設(shè)計(jì)。然而在實(shí)際運(yùn)用中經(jīng)常出現(xiàn)時(shí)鐘選擇和時(shí)鐘控制的異步設(shè)計(jì),導(dǎo)致系統(tǒng)產(chǎn)生毛刺和時(shí)鐘偏斜及時(shí)鐘分析路徑復(fù)雜等問題。為了解決該問題,需將時(shí)鐘控制改為觸發(fā)器輸入允許,將時(shí)鐘選擇改為獨(dú)立的時(shí)鐘分析。
??????????????????
??? 當(dāng)功能切換和門控信號(hào)同時(shí)為1時(shí),該系統(tǒng)實(shí)現(xiàn)頻率的測(cè)量。Counter1和Counter2分別輸出標(biāo)準(zhǔn)頻率數(shù)(Ns)和被測(cè)頻率數(shù)(Nx)??紤]到等精度頻率計(jì)的精度和速度,該系統(tǒng)選擇標(biāo)準(zhǔn)頻率計(jì)數(shù)器計(jì)滿20位時(shí)產(chǎn)生中斷,同時(shí)輸出Ns和Nx。
??? 當(dāng)功能切換為0、門控信號(hào)為1時(shí),系統(tǒng)實(shí)現(xiàn)被測(cè)時(shí)鐘信號(hào)的高電平寬度測(cè)量(即脈寬測(cè)量),并由Counter1輸出其寬度值N1;當(dāng)功能切換和門控信號(hào)同時(shí)為0時(shí),系統(tǒng)實(shí)現(xiàn)被測(cè)時(shí)鐘信號(hào)的低電平寬度測(cè)量,同時(shí)由Counter1輸出其寬度值N2,則被測(cè)時(shí)鐘信號(hào)的占空比為:。
??? 功能切換=1時(shí),測(cè)頻率;功能切換=0時(shí),測(cè)占空比和脈沖寬度。門控信號(hào)在測(cè)頻率時(shí)是門控信號(hào);測(cè)占空比時(shí),門控信號(hào)=1,測(cè)高電平寬度;門控信號(hào)=0,測(cè)低電平寬度。
2.2 寄存器文件
??? 寄存器文件提供了任務(wù)邏輯與外界交換信息的途徑。用戶可以通過Avalon接口采用基地址 +地址偏移量的方式來訪問元件內(nèi)部各寄存器。本IP Core內(nèi)部寄存器如表1所示。
??????????????????????????????
2.3 Avalon接口設(shè)計(jì)
??? Avalon接口為寄存器文件提供了一個(gè)標(biāo)準(zhǔn)的Avalon前端,它使用Avalon必須的信號(hào)來訪問寄存器文件,并且支持任務(wù)邏輯的傳輸類型。 等精度頻率計(jì)的Avalon接口信息如表2所示。
???????????????????????????????
3 測(cè)試與驗(yàn)證
??? IP Core設(shè)計(jì)完成后,利用SoPC Builder搭建一測(cè)試該IP Core的系統(tǒng),并在其中加入該IP核。硬件測(cè)試結(jié)果如表3所示。
???????????????????????????????
??? 本設(shè)計(jì)通過SoPC技術(shù)在FPGA上實(shí)現(xiàn)了等精度頻率計(jì)的IP Core設(shè)計(jì)。系統(tǒng)采用同步設(shè)計(jì),避免了由時(shí)鐘異步導(dǎo)致的時(shí)鐘偏斜。
??? 經(jīng)測(cè)試證明,該頻率計(jì)的測(cè)頻范圍為0.1Hz~100MHz,測(cè)頻精度恒為百萬分之一,能夠滿足高速度、高精度的測(cè)頻要求。本設(shè)計(jì)可移植性好、穩(wěn)定性好、精確度高、測(cè)頻速度快,達(dá)到設(shè)計(jì)要求。
參考文獻(xiàn)
[1] 譚會(huì)生,瞿遂春.EDA技術(shù)綜合應(yīng)用實(shí)例與分析.西安:西安電子科技大學(xué)出版社,2004.
[2] 潘松,王國(guó)棟.VHDL實(shí)用教程.電子科技大學(xué)出版社,2004.
[3] 莫琳.基于FPGA的等精度頻率計(jì)的設(shè)計(jì)與實(shí)現(xiàn).現(xiàn)代電子技術(shù),2004.
[4] 毛智德,呂善偉.基于FPGA的等精度頻率計(jì)設(shè)計(jì).電子測(cè)量技術(shù),2006