基于MC8051 IP核的多周期同步测频改进

时间:2022-10-26 03:03:06

基于MC8051 IP核的多周期同步测频改进

摘 要:分析多周期同步测频原理及误差,在此基础上提出一种多周期同步测频的改进方法。该方法通过对标准频率计数值的修正,在不提高系统时钟频率和闸门时间的前提下,实现了测量精度的提高,并详细分析了其测量误差。最后,讨论了在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|

F′x

=NxNs±ΔNsFs。如果忽略标准频率Fs的误差,其相对误差为[6]:

δ=Fx-F′xFx×100%=ΔNsNs

(1)

如果实际闸门时间为Tg,则Ns=TgFs,即闸门时间Tg越长,标准频率Fs越高,相对误差越小。

图1 多周期同步测量原理

1.2 多周期同步测频的改进

从以上分析可以看出,提高测量精度的关键是减小对实际闸门时间Tg的计时误差。传统方法只使用一个对标准频率的计数器,在同步闸门开启时间内对标准频率的上升沿计数,其对同步闸门Tg的测量值

T′g

为T′g=Ns/Fs。由于Ns存在±1的计数误差,因此对同步闸门时间Tg的测量误差为:

ΔTg=Tg-T′g

(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)

Tg-N′sFs=Tg-T′g

(9)

因此,用上升沿与下降沿计数器的算术平均值修正的闸门时间T′g与同步后的标准闸门时间之间的误差被控制在标准频率周期的50%,即ΔN′s

δ=ΔN′s/N′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.

上一篇:基于AVR的智能节能插座设计 下一篇:基于AT91RM9200的CAN智能节点设计