所谓频率,就是在单位时间内检测到的脉冲数。检测脉冲数的方法便是我们测量频率的传统方法,将其称之为“电子计数测频法”;而另一种方法是通过准确测量被测信号的周期来测量其频率,将其称之为“同步周期测频法”。下面我分别为大家介绍这两种方法。
电子计数法测频法
右图为传统数字频率计,它采取直接测频法,测频率时将频率信号接在A端,高精度晶体振荡器接在B端,利用电子计数器严格按照式f=N/T所表达的频率的定义进行直接测量频率。由于其闸门开启时间在一个频率段内是固定的,为保证测量精度,要进行周期频率测量转换。周期测量时,A端接入高精度晶体振荡器,B端接入被测信号。由于这种测频方法非常简单,具体测量步骤以及方法的实现,读者可参考本文给出的该方案测频源程序来分析理解。
同步周期测频法
本方案采用测频方法是软件控制的等精度数字测频。原理框图如左图所示。
利用单片机AT89C51的T0,T1口构成多位计数器,将单片机自身中断INT0设置为边沿触发方式。当输入信号到达时,输入脉冲同时也被引到INT0脚,在脉冲的下跳沿产生一个中断请求,计数器T0,T1对输入信号的周期计数和闸门时间宽度计时,使测量闸门的时间宽度随输入信号自动可变,从而保证在此测频方法下,不同的频率测量精度是一致的。此方法应用硬件少,结构简单,测量精度取决与晶振的精度,故测量精度比较高,而且高低频率的测量精度是一致的,故不需进行频率周期转换。具体实现方法是:
AT89C51单片机具有两个16位的定时器/计数器T1和T0,单片机的外部中断功能可方便地实现闸门开关与被测信号的跳变沿同步:利用单片机的数据运算能力可编制相应的乘除法程序,并实现测量结果的等精度显示。
设在t0时刻系统开始进行初始化,T1和TO分别设置为计数器和定时器来对输入信号和时标信号进行计数,它们的初始值均为0。时标信号的频率在单片机内固定为fc=fosc/12,fosc为单片机的时钟频率。外部中断INT0通常可设置为边沿触发,开放INTO和T0的中断允许。在t1时刻,输入信号的跳变沿产生第一次INT0中断时,开放T1和T0的计数闸门并关闭自身的中断允许。当T0计数满溢出时,可在t2时刻产生T0中断,记录自身的中断次数n,再次开放lNT0的中断允许。T0溢出后将从0开始继续计数,直到t3时刻 由输入信号产生第N1+1次lNT0中断,然后关闭T1和T0以完成一次测量过程。T1中的计数值代表了输入信号完整的N1个周期。设T0中的“剩余”读数为N2。则被测信号的频率可由下式计算:fx=N1/[12(65536n+N2')/fOSC]。至于N取几最精确,要根据系统确定,一般取3—5就基本上可以了,为了保证计算精度和数据的有效位数,可采用浮点乘除法运算。用周期测频法测频时,定时/计数器的计数时间间隔由软件延时完成,理论上定时的时间可以达到无穷大,即fs1可达到足够低,因此,fx1可达到无穷小,可以认为测频法的测频范围只有上限频率而没有下限频率。对于测频法,单次测量的测量测量装置的测频上限为fosc/24。
方案对比及总结
通过以上的分析,我们可以看出,如果采用方案1,这对于测量高频信号是相当准确的,但是对于低频信号比如100Hz以内的信号就稍逊一筹;而方案2,周期测量法,显然对于测量低频是非常准确的,因为如果频率越高,其周期就越短,测量出的时间就越小,误差就会越大:反之,如果频率越低,其周期就越长,测量误差就越小。所以,容易看出,上述所介绍的这两种测频方案,各有优缺点,也就是说,这两种方案有一个中间临界值的问题,或者这样说,到底所测频率多大时我们交换这两种测频方法,所以这无疑是所有测频系统的一个关键点,这就要求我们在设计测频系统时要同时使用这两种测频方案。这也是如今大多数高档测频系统所采用的方案,至于具体如何来选择这个算法临界点,那就要根据系统设计要求了。