- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
简易数字频率计的设计
一、概述
在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此,频率的测量就显得更为重要。测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。电子计数器测频有两种方式:一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是间接测频法,如周期测频法。直接测频法适用于高频信号的频率测量,间接测频法适用于低频信号的频率测量。本次设计的数字频率计以AT89C52为核心,在软件编程中采用的是C51语言,测量采用了多周期同步测量法,它避免了直接测量法对精度的不足,同时消除了直接与间接相结合方法,需对被测信号的频率与中介频率的关系进行判断带来的不便,能实现较高的等精度频率和周期的测量。
二、硬件电路设计方案
多周期同步测量法的基本思路是使被测信号与闸门之间实现同步化,从而从根本上消除了在闸门时间内对被测信号进行计数时的±1量化误差,使测量精度大大提高。倒数计数器就是基于该方法而设计出来的一种具有创新思想的测频、测周期的仪器。它采用多周期同步测量法,即测量输入多个(整数个)周期值,再进行倒数运算而求得频率。其优点是:可在整个测频范围内获得同样高的测试精度和分辨率。
(一)系统级方案设计
在选择多周期同步等精度测量法的情况下,按照自顶向下的设计方法,可以画出该频率计的系统级框图,如图1所示。根据测周期、频率的原理,可以将总体框图分为三个子系统:输入通道(即前置整形电路)该部分主要由模拟电路组成的;多周期同步等精度频率、周期的测量、控制及功能切换(中间部分),该部分基本上由数字硬件电路组成;单片机及外围电路,包括单片机、数码显示。
图 1 频率计的系统方框图
(二)子系统设计
1.输入通道的设计。输入通道是由前置放大器和整形器组成的,所以要对前置放大器的增益和带宽指标进行估计。为了能准确测量信号,将输入信号经过一个放大整形电路。其具体实施方案为:将输入信号经过LM358运放放大,再通过74LS132整形,此时的信号还不能直接送入单片机,这是因为在硬件上CPU对INT0和INT1引脚的信号不能控制,解决这个问题要通过硬件,再配合软件来解决。
2.预置闸门时间发生电路设计。闸门时间的确定,可以先由一个555定时器产生一个脉冲信号,将555产生的脉冲信号送入到74LS90十进制计数器当中,由于74LS90具有二-五进制混合计数的功能,所以可以用它来实现五进制计数,将74LS90的输出接到3—8线译码器74LS138的输入端,再将译码器的输出端接上五个发光二极管,这样就可以实现硬件上的闸门时间控制。但是考虑到硬件实现上的复杂性,可以通过软件上来实现,就是将五个发光二极管直接接到单片机的P1口由软件上来实现,通过按键来改变它的闸门时间。
3.数码显示电路的设计。该部分电路是由单向八位移位寄存器74LS164和数码管组成的。考虑到精度的问题,取五位计数值,采用五片74LS164级联,同时还要显示频率和周期的单位,所以还需再级联一块74LS164,在74LS164的输出端接六个单位指示灯,分别表示周期频率的三个不同的单位数量级,即周期单位s,ms,μs和频率单位Hz,KHz及MHz。移位寄存器的时钟信号是由单片机的串行输出口TXD脚控制。
三、软件设计
(一)软件主程序流程图(见图2)
(二)子程序的设计
1.键盘中断服务子程序。因该频率计的测量项目较多,所以在系统初始化时,将默认测量项目设置为测频,且预置闸门时间设置为1ms。具体做法就是在主程序的系统初始化部分,将测频选择键的键值以及预置闸门时间设置代码写入单片机RAM单元中去。这样开机后即使用户没有选择任何测量项目键,也能进行频率测量。
2.软件计数器子程序。该频率计所需要的不同闸门预置时间信号是由单片机产生的。由于预置闸门时间的范围很宽,最大值为10s,最小值为1ms,仅用单片机中的定时器硬件是不能实现的,需采用软硬件相结合的方法来实现。其具体实现方案为将C/T0定时器/计数器设置为由引脚高电平启动的方式1定时器T0,初始化将其初值设为0.该计数器的启动过程如下:主程序首先将单片机P1.6脚置为高电平(逻辑1)发出预置闸门信号,该信号经同步电路而产生高电平的同步门信号,从而使单片机引脚变为高电平,C/T0定时器中的计数器就被启动开始计数。
3.数据处理子程序。当事件计数器和时间计数器的计数值NA,NB被读到单片机中后,通过调用数据处理子程序,根据过去读入并保存在单片机RAM单元中的测量项目的键值,预置闸门值代码,判断出所要测量的参数项目,对计数值NA,NB进行相应的处理,求出所测参数的值和单位,最后应将参数值转换为十进制数,再转换为驱动LED数码显示器的段码(每位包含5个数字段码和1个小数点)以及驱动三个单位符号指示灯之一的位码,作为显示子程序的输入数据,存放在9个RAM单元组成的显示缓冲区中。对计数值NA,NB的处理运算要用到除法和乘法,为了提高运算精度,应当采用浮点运算。显然,采用C语言来编写这些运算程序可大大提高编程效率。
四、结论
本系统采用大规模集成电路设计,用C51语言编程,实现了对不同波形、不同频率信号的测量。在测试时应根据被测信号频率的不同,选择不同的预置闸门时间。根据测试结果,在低频端测量误差<0.01%,在高频端测量误差<0.001%,达到设计要求。对误差进行分析,主要是时间计数器B没有经过同步门,存在±1量化误差,这也是误差存在的主要来源。
图2主程序流程图
【参考文献】
[1]张永瑞.电子测量技术基础[M].西安:西安电子科技大学出版社,2002.
[2]张毅刚.MCS-51单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社,1997.
上一篇:得益于低功耗CPLD的手持装置
下一篇:无线传感器网络覆盖问题