引言
频率的概念就是1 s时间内被测信号的周期个数,最直接的测量方法就是单位时间内计数法,这种方法比较适合高频测量。低频通常用测周期法。这两种方法的测量精度不固定,与被测信号的范围相关。
等精度频率测量法融合以上两种方法的优点,可兼顾低频与高频信号;但较以上两种方法而言,等精度频率测量有较高的测量精度,且误差不会随着被测信号频率的改变而改变。
1等精度频率测量原理
等精度频率测量原理框图如图1所示。图中计数器是带使能控制的32位计数器,EN是计数允许使能信号,高电平允许计数。计数器1对基准时钟信号fb计数,计数器2对被测信号fx计数。D触发器实现对被测信号fx上升沿检测,实现门控信号与fx上升沿同步,从而保证计数器2对被测信号计数刚好为整数个周期,零误差。
测量过程控制时序波形如图2所示。测量开始,t0时刻MCU发出一个清零信号Clr,使计数器和D触发器置0;t1时刻MCU发出测量启动信号Gate,使D触发器输人D为高电平;在被测信号fb上升沿到来t2时刻,D触发器Q端才被置1,使计数器1和计数器2的EN同时为1,计数器开始计数,系统进入计数允许周期。这时,计数器1和2分别对基准时钟信号和被测信号同时计数。一段时间过后,t3时刻MCU发出停止信号,即D触发器输入D为低电平,但此时计数器仍然没有停止计数,直到下一个被测信号的上升沿t4时刻到来时,D触发器Q输出0将这2个计数器同时关闭。
由图2可见,Gate的宽度Tc和发生的时间都不会直接影响计数使能信号EN,EN总是在被测信号fx上升沿改变,从而保证了被测信号被计数的周期总是整数个周期nTx,而与被测信号的频率无关。正确理解这点,是理解等精度频率测量的关键。由于测量过程中不能保证基准时钟周期的完整性,还会引入测量误差。这种随机误差dt最多只有基准时钟fb信号的一个时钟周期。由于fb的信号通常由高稳定度的高频晶体振荡器发出,任何时刻的绝对测量误差只有1/N1。例如,对于门控信号接近1 s的测量过程,fb取100 MHz的晶振,最大误差可以达到10-8。
2方案设计
2.1系统方案
单片机定时器/计数器电路如图3所示。当C/T=0,TR=1,GATE=1时,单片机内部计数器时钟开关可受外部引脚INTn控制,这样就可以实现单片机内部计数器与外部计数器同步开关。
正是基于单片机这种电路结构,根据等精度原理,提出图4所示的系统框图。单片机加CPLD结构,利用单片机内部定时器定时,外部CPLD实现等精度测量逻辑电路和计数功能。基准时钟fb由单片机晶振提供,频率为单片机时钟晶振12分频后所得机器时钟。预置闸门由单片机引脚P1.0输出控制,计数器清零和复位由单片机引脚P1.1输出控制,单片机引脚P3.2是内部定时器使能开关控制引脚。
2.2单片机与CPLD接口设计
图5所示为一种基于总线的接口方案,采用三总线(数据、控制、地址)结构,用于实现单片机与CPLD之间的数据传输。
单片机P0口为双向数据总线,与CPLD的通用IO口连接,完成数据和低8位地址传送。控制总线包括单片机读写控制总线RD和WR,以及地址锁存信号ALE(Address Lock Enable)。地址总线A15(P2.7)通过CPLD的全局输入信号引脚输入。
2.3 CPLD电路
CPLD内部电路原理框图如图6所示。当预置闸门GATE输入高电平时,由于DFF触发器为边沿触发器,在上升沿时才将数据输出,所以Q输出端并不立即置1,只有当外部信号上升沿到来时,Q才为1,使能计数器和定时器。这样保证了计数器和定时器在被测信号的上升沿到来时同时有效。当预置闸门GATE=0关闭时,两计数器的允许信号同样在被测信号的上升沿到来时同时关闭。由于基准信号的定时器与被测信号严格同步,所以理论上最大误差只有基频的一个周期。CPLD内计数器为32位,在预置时间内,只要计数器不溢出,即可准确测量被测信号个数。