摘 要:分析多周期同步測頻原理及誤差,在此基礎上提出一種多周期同步測頻的改進方法。該方法通過對標準頻率計數值的修正,在不提高系統時鐘頻率和閘門時間的前提下,實現了測量精度的提高,并詳細分析了其測量誤差。最后,討論了在FPGA中利用MC8051 IP核來實現真正意義的高性價比的SoPC頻率測量問題。
關鍵詞:多周期同步測頻; 頻率測量; MC8051; IP核
中圖分類號:TM93 文獻標識碼:A
文章編號:1004-373X(2010)11-0157-03
Improvement of Multi-Period Synchronous Frequency Measurement
Based on MC8051 Intellectual Property Core
LIAO Lei, XIE Zheng-wei, JIANG Tao
(School of Physics and Electronic Engineering, Sichuan Normal University, Chengdu 610066, China)
Abstract: The modified method of multi-period synchronous frequency measuement is proposed by analysing its prineiple and error. Through revising the standard frequency counter value, the measurement precision is improved without increasing the frequency of system clock and time of gate. The measurement error are analysed in detail. The method to realize the low price-performance ratio of the SoPC frequency measurement with MC8051 IP core in the FPGA is discussed.
Keywords: multi-period synchronous frequency measurement; frequency measurement;
0 引 言
頻率測量是現代電子測量中最常用的一種測試。新型的頻率計大多以可編程邏輯器件為核心,外置微控制器來控制系統的工作。這種方式成本低廉,應用靈活,但系統復雜,集成度低,功耗較大。隨著PLD與EDA技術的發展,尤其是MCU IP核的發展,將處理器、數字邏輯,甚至存儲器等嵌入到一塊芯片之內,構建各種嵌入式系統和片上系統成為發展的必然趨勢。但廣為人知的NiosⅡ,PowerPC,MicroBlaze,PicroBlaze等都需要容量巨大的RAM和FLASH才能正常運行,因此很難實現真正意義上的低成本和SoPC測頻系統。
傳統多周期同步測頻法的相對誤差僅由標準頻率信號的頻率和閘門開啟時間決定。標準頻率信號的頻率越高,閘門時間越長,則相對誤差越小。但頻率的提高要受器件的工作頻率限制,閘門時間的增長要求計數器有更長的字長,并且會降低測量速度。文獻[1-7]提出了全同步測頻法,盡管可以大致消除±1個計數誤差,但是難以實現被測信號與標準時鐘的完全同步,測量時間無法預知。文獻[8]基于相位檢測原理提出了一種準同步測頻方法,但該方法需要遠高于標準頻率的相位時鐘,才能獲得較小的相對誤差,與直接提高標準頻率來減小相對誤差的方法相比優勢不明顯,且電路復雜。
針對以上情況,提出了一種改進多周期同步測頻的方法,在不改變閘門時間和提高時鐘頻率的前提下,提高測量精度,并采用Oregano Systems的免費MC8051 IP核,實現了一種真正高性價比的SoPC頻率計。
1 多周期同步測頻原理及改進
1.1 傳統多周期同步測頻原理
如圖1所示,多周期同步測頻的核心是用被測頻率信號來同步預置閘門,使實際閘門時間為被測信號周期的整數倍。在實際閘門期間,分別用兩個計數器對被測頻率Fx和標準頻率Fs進行計數,如果所計數值分別為Nx和Ns,則被測頻率為:
Fx=(Nx/Ns)Fs
由于實際閘門時間只與被測頻率Fx同步,所以對被測頻率的計數Nx沒有±1的誤差,只有對標準頻率的計數值Ns存在ΔNs的誤差,|ΔNs|<1,所以實際頻率為
F′x
=NxNs±ΔNsFs。如果忽略標準頻率Fs的誤差,其相對誤差為[6]:
δ=Fx-F′xFx×100%=ΔNsNs<1Ns
(1)
如果實際閘門時間為Tg,則Ns=TgFs,即閘門時間Tg越長,標準頻率Fs越高,相對誤差越小。
圖1 多周期同步測量原理
1.2 多周期同步測頻的改進
從以上分析可以看出,提高測量精度的關鍵是減小對實際閘門時間Tg的計時誤差。傳統方法只使用一個對標準頻率的計數器,在同步閘門開啟時間內對標準頻率的上升沿計數,其對同步閘門Tg的測量值
T′g
為T′g=Ns/Fs。由于Ns存在±1的計數誤差,因此對同步閘門時間Tg的測量誤差為:
ΔTg=Tg-T′g<1/Fs
(2)
即最大計時誤差小于一個標準頻率的周期。
事實上如果用兩個計數器分別對標準頻率Fs的上升沿和下降沿計數則在閘門時間Tg內,用這兩個計數器所計值的算術平均值作為標準頻率計數的修正值,這將使對標準頻率的計數誤差減小50%。
如圖2所示,在實際閘門時間Tg內,上升沿計數器的值為Nsr,其測得的閘門時間Tgr=Nsr/Fs,下降沿計數器的值為Nsf,測得的閘門時間Tgf=Nsf/Fs。
圖2 標準頻率計數修正示意圖
圖2中T1,T2分別為閘門Tg開啟與關閉時刻到其后首次出現上升沿的時間;T3,T4分別為閘門Tg開啟與關閉時刻到其后首次出現下降沿的時間。實際閘門時間Tg與Tgr和Tgf之間關系如下:
Tg=Tgr+T1-T2(3)
Tg=Tgf+T3-T4(4)
式(3)和式(4)相加得:
2Tg=Tgr+Tgf+(T1+T3)-(T2+T4)
(5)
由圖2可知,T1與T3的時間差為半個標準頻率周期,即1/(2Fs),所以:
T1+T3=2min(T1,T3)+1/(2Fs)
(6)
同理,T2與T4之間有類似關系:
T2+T4=2min(T2,T4)+1/(2Fs)
(7)
將式(6)、式(7)與Tgf,Tgr代入式(7)整理得:
Tg=
N′s/Fs+min(T1,T3)-min(T2,T4)
(8)
式中:N′s=(Nsr+Nsf)/2。
由圖2可知,min(T1,T3)<1/(2Fs),min(T2,T4)<1/(2Fs),代入式(8)可得:
Tg-N′sFs=Tg-T′g<1/(2Fs)
(9)
因此,用上升沿與下降沿計數器的算術平均值修正的閘門時間T′g與同步后的標準閘門時間之間的誤差被控制在標準頻率周期的50%,即ΔN′s<1/2。所以相對誤差為:
δ=ΔN′s/N′s<1/(2N′s)
(10)
對比式(1)可知,該改進方法在不改變標準頻率與閘門時間的情況下,可以使測量的相對誤差減小50%,同時保留了測量時間可以預測和電路簡單的優點。
2 基于MC8051 IP核的實現
MC8051是Oregano Systems的免費開源軟IP核[9],采用單時鐘全同步設計,指令集與標準8051完全兼容。指令執行時間為1~4個時鐘周期,性能優于標準8051 十倍以上;用最多可以設置256個定時/計數器和串口,并通過新增特殊功能寄存器選擇不同的定時/計數器和串行接口;可根據需要選擇是否使用乘法器、除法器以及十進制調整功能,如果不用則可以節約10%的硬件資源;I/O口不復用,無雙向I/O口;內部帶256 B RAM,最多可擴展至64 KB的ROM和64 KB的RAM;可通過修改VHDL源代碼來實現擴展與裁剪。
頻率計控制模塊在2006年9月發布的1.5版MC8051軟IP上定制實現。根據系統的具體需要,對MC8051做了如下定制:
(1) 將mc8051_p.vhd中的常數C_IMPL_N_TMR設置為1,僅保留了1個定時計數器和串行接口;
(2) 將mc8051_p.vhd中的常數C_IMPL_MUL,C_IMPL_DIV以及C_IMPL_DA設置為1,以保留計算程序中需要保留的MUL,DIV,DA調整等指令。
(3) 使用Quartus Ⅱ的MegaWizard Plug-In Manager工具為MC8051定制一個128 B的RAM。
(4) 在KEIL μVision 3中對單片機程序進行編譯,生成的.HEX文件大小為3 806 B,因此利用Quartus Ⅱ的MegaWizard Plug-In Manager生成了一個容量為4 KB的ROM。
(5) 在CycloneⅡ芯片EP2C5T144C8上綜合得到51核的工作頻率為17 MHz左右,而外部系統時鐘為20 MHz,因此使用了1個ALTPLL鎖相環,構建了12 MHz和180 MHz兩個時鐘。其中,12 MHz頻率提供給51核,180 MHz頻率作為頻率測量的標準頻率。
(6) 由于系統較小,不需要外部RAM,所以沒有構建XRAM,同時去掉了無關的I/O口。
此外,在FPGA外部設置了顯示、鍵盤和通訊以及配置接口。其中,顯示采用FYD12864,并利用其串行模式與FPGA連接;鍵盤采用了4個獨立按鍵;RS 232接口用于數據的傳輸,便于對數據進行統計分析;配置模塊通過JTAG接口對FPGA直接配置,并利用.JIC文件實現JTAG對EPCS4的編程。完整的系統結構圖如圖3所示。
圖3 系統結構框圖
實際測試中由于缺乏高精度、高穩定度的信號源,因此只通過對Rakon公司的兩種固定頻率晶振做了測試。測試時采用安捷倫53132A高性能頻率計和010配件作為標準頻率計。經實際測試,采用Altera的EP2C5T144C8 FPGA,并嵌入了MC8051微處理器IP核,標準頻率采用180 MHz,閘門時間為200 ms,系統誤差可以被控制在10-8以下。
3 結 語
采用雙計數器,分別對標準頻率的升降沿進行計數,通過修正標準頻率計數值,使在不提高標準頻率和閘門時間的情況下,誤差減少50%。同時還保留了測試的等精度、測量時間的可預知,可快速連續測量等優點,適用于精度要求較高,需要較快測量速度的場合。同時,采用MC8051 IP核可僅僅以3 500多個LE的硬件開銷實現真正意義的SoPC頻率測量。該改進方法已應用于國家自然科學基金(10847006)、科技部國家創新基金(05c26215101336)以及校科研基金(08KYL12)等多個項目中,取得了很好的效果。
參考文獻
[1]ZHOU W. The greatest common factor frequency and its application in the accurate measurement of periodic signals[C]//Proceedings of the 1992 IEEE Frequency control symposium. \\: IEEE, 1992:270-273.
[2]王海,周渭,李智奇.基于延遲鏈的頻率測量方法[J].儀器儀表學報,2008,29(3):520-523.
[3]王海,周渭,宣宗強.高精度頻率測量技術及其實現[J].系統工程與電子技術,2008,30(5):981-983.
[4]康欽馬,姜海寧,周渭.基于相位重合檢測技術的虛擬頻率計設計[J].電子測量與儀器學報,2005,19(2):45-48.
[5]江玉潔,陳辰,周渭.新型頻率測量方法的研究[J].儀器儀表學報,2004,25(1):30-33,60.
[6]徐成,劉彥,李仁發,等.一種全同步數字頻率測量方法的研究[J].電子技術應用,2004(7):37-39.
[7]李廣明,楊雷.一種多周期測量頻率的方法及應用[J].現代電子技術,2008,31(12):155-157.
[8]邵楊帆,李宏.準全同步頻率測量方法的研究與實現[J].電子測量與儀器學報,2008,22(3):105-108.
[9]萬曉華,鐘夏,陳建勛.8051 IP核的應用開發系統研究[J].微計算機信息,2008,24(20):102-104.