基于单片机的数字频率计设计
扫描二维码
随时随地手机看文章
摘要:基于单片机的数字频率计的设计,目的是设计一款数字频率计,能够测量1 Hz~20 MHz的数字频率,包括三角波、正弦波及方波的测量,支持0.5 V~20 V电压。本频率计的特点是突破普通单片机频率计喜欢选用的直接测量法,选择了高频用多周期同步法,低频用周期法来测量频率。这样可以使频率计达到更高的精度。而且本频率计通过程序来控制分频芯片自动分频,无需测量者对信号进行预估计,超出测量范围会自动警报,更加人性化。
关键词:单片机;频率计;自动分频
1 总述
单片机频率计不仅反应快、精度高,操作也非常人性化,而且应用范围大、带宽大以及成本低廉、小巧方便。它可以用来测量一定电压范围内正弦波、三角波及方波。本设计是基于单片机为主控制电路,配合着一定的外围芯片及电路而设计的一款处理数字信号的高频频率计,测量范围能达到1 Hz~20 MHz,其新颖之处在于用运了两种测频方法,且采用自动分频的方式使基于单片机的频率计能够在低成本的前提下完成较高精度的高频数字信号的频率测量。
2 总体设计
本设计欲设计一款基于单片机的数字频率计,其特色是测量范围为1 Hz~20 MHz。对待低频和高频信号的测量分别使用不同的测频方法去对待。具体总的思想是以单片机为核心,被测信号先进入信号放大电路进行放大,再被送到波形整形电路整形,把被测得正弦波或者三角波转化为方波。利用单片机的计数器和定时器的功能对被测信号进行计数。编写相应的程序可以使单片机自动调节测量的量程,并把测出的频率数据送到显示电路显示。该频率计系统设计共包括五大模块:主芯片控制模块、分频选择模块、放大整形模块、基准频率模块和显示模块。各模块作用如下:
主芯片控制模块:以AT89S52单片机为控制核心,来完成对待测信号的计数,译码和显示以及对分频比的控制。利用其内部的定时/计数器完成待测信号周期/频率的测量。单片机AT89S52内部具有3个16位定时/计数器,定时/计数器的工作可以由编程来实现定时、计数和产生计数溢出时中断要求的功能。
分频选择模块:考虑单片机外部计数,使用12 MHz时钟时,最大计数速率为500 kHz,因此需要外部分频。分频电路用于扩展单片机频率测量范围,并实现单片机频率测量使用统一信号,可使单片机测频更易于实现,而且也降低了系统的测频误差。本设计使用的分频芯片是74HC4040,选择芯片是74LS153。
放大整形模块:放大电路是对待测信号的放大,降低对待测信号幅度的要求。整形电路是对一些不是方波的待测信号转化成方波信号,便于测量。本设计使用的放大芯片是LT1358,整形芯片是74LS132。
基准频率模块:为了产生一个标准的频率,这里使用了AT89C2051。这是一款类似于AT89S51的8051内核的非总线单片机。这里运用其一个定时器产生一个稳定的频率。
显示模块:鉴于大部分频率计采用的是数码管形式的显示方式,为了节约用电,减小体积本设计采用液晶显示屏显示,融入了文字提示等信息,方便使用者观察选择。本设计选用LCD1602。
2.1 高频方案
本设计对待高频信号(>10 kHz)欲选用多周期同步测量法,在充分利用单片机计数器的条件下,实现更精确的测量。图1所示即为多周期同步法测频原理框图。参考闸门产生大概的取样时间为T,实际闸门的开启由参考闸门和被测信号同步产生。当参考闸门给出后,由随后到来的被测信号的第一个脉冲打开两个计数器的闸门开始计数。被测信号fx通过闸门1由计数器A计数,得到计数值Nx,标频信号脉冲fs通过闸门2由计数器B进行计数,得到计数值Ns。当参考闸门关闭后,由随后到来的被测信号脉冲关闭两个计数器的闸门,停止计数。则被测频率的表达式为:fx=fs×(Nx/Ns)。
多周期同步法的测量误差主要由Ns产生。当频率较低(<10 kHz),且测量信号信噪比较小(40 dB)时,触发误差较大,是误差的主要来源。当被测频率大于10 kHz时,误差取决于标频信号的准确度和分辨率带来的误差,两者基本相当。所以低频测量时,运用多周期测量法误差会很大。
如图2所示,高频测量时首先利用单片机的定时器TO进行软件分频,根据定时时间的不同分出一个或几个闸门信号,利用这些不同周期的闸门去做不同的基准时间。对于不同基准时间内的频率测量,其精度是不同的,随着基准时间的加长,精度会越来越高。测频时,根据测量精度要求,预置闸门TO控制起闭时间为t,开启TO,同时放出待测信号和标准信号。这时计数器T2和计数器T1分别对待测信号fx和标准信号fc(频率已知)同时计数,当预置闸门控制时间Tn到达闸门关闭时,两个计数器停止计数。若两个计数器T2、T1的计数值分别为M和N,则待测频率的值为fx=fc×(M/N)。
2.2 低频方案选择
对低频段信号(<10 kHz)的信号采用周期测频法。周期测量法也是频率测量的一种常用方法,而且常常用于低频的测量。其原理是在被测频率fx的一个周期内Tx,记录标准频率fc的变化次数M,则有fc=M/Tx,即待测信号频率为fx=fc/M。采用这种方法时,我只用到了单片机的T2定时器,由于T2定时器拥有捕获功能,可以在被测信号脉冲的下降沿到来之际实现对此时时间的捕获,这样在被测频率两个下降沿之间就形成一个周期,产生两次捕获,而这两侧捕获的时间差就是被测频率的周期,其频率就是周期的倒数。运用这种方法可以对频率为65 535 Hz以内的频率进行测量,如图3所示。
3 结论
本论文中对高频测量进行了软件仿真,从表1中我们可以看出,随着所测频率的位数的增大,频率的误差越小。在甚低频阶段,由于仿真时只开启高频测量,用的是多周期同步测量法,所以可以看到由于基准频率±1的误差而引起的±1的误差,而对于甚低频及低频的测量,±1的误差是极其影响测量效果的。这和理论预测的效果是完全吻合的。由于一些不明原因,低频测量程序无法得到仿真。如果低频测量程序可以开启的话,在低频测量时就会转化成周期法测量。这样由于低频的频率很低,其周期很大,所以单片机的反应速度是可以跟得上的,从而避免了±1的误差,使得低频测量也可以达到误差为0%。对于中频及高频阶段,我们可以在表中看到,虽然差值随着频率的增大而越来越大,但是误差百分比却越来越小,尤其对于高频的测量,其误差可以小到十万分之几,完全可以满足一般用户的需求。
由此,该频率计验证了多周期同步测量法对中高频信号的测量能力是不错的,但是对于低频及甚低频的测量却缺陷很大。而正好周期法的优点就是测量低频信号非常准确。这两种方法的结合正好弥补了两者的缺陷,凸显了两者的优点。再加上智能分频使单片机的测量带宽提高了一千倍以上,仅用几个芯片搭成的低成本简单电路,使该频率计拥有了不错的性价比。