基于8051单片机的频率测量技术
作者姓名: 丁昕 李子健
0 引言
随着无线电技术的发展与普及,频率已经成为广大群众所熟悉的物理量。而单片机的出现,更是对包括测频在内的各种测量技术带来了许多重大的飞跃,然而,小体积、价廉、功能强等优势也在电子领域占有非常重要的地位。为此,本文给出了一种以单片机为核心的频率测量系统的设计方法。
1 测频系统的硬件结构
测量频率的方法一般分为无源测频法、有源测频法及电子计数法三种。无源测频法(又可分为谐振法和电桥法),常用于频率粗测,精度在1%左右。有源比较法可分为拍频法和差频法,前者是利用两个信号线性叠加以产生拍频现象,再通过检测零拍现象进行测频,常用于低频测量,误差在零点几Hz;后者则利用两个非线性信号叠加来产生差频现象,然后通过检测零差现象进行测频,常用于高频测量,误差在±20 Hz左右。以上方法在测量范围和精度上都有一定的不足,而电子计数法主要通过单片机进行控制。由于单片机的较强控制与运算功能,电子计数法的测量频率范围宽,精度高,易于实现。本设计就是采用单片机电子计数法来测量频率,其系统硬件原理框图如图1所示。
为了提高测量的精度,拓展单片机的测频范围,本设计采取了对信号进行分频的方法。设计中采用两片同步十进制加法计数器74LS160来组成一个100分频器。该100分频器由两个同步十进制加法计数器74LS160和一个与非门74LS00共同设计而成。由于一个74LS160可以分频十的一次方,而当第一片74LS160工作时,如果有进位,输出端TC便有进位信号送进第二片的CEP端,同时CET也为高电平,这样两个工作状态控制端CET、CEP将同时为高电平,此时第二片74LS160将开始工作。
2 频率测量模块的电路设计
用单片机电子计数法测量频率有测频率法和测周期法两种方法。测量频率主要是在单位定时时间里对被测信号脉冲进行计数;测量周期则是在被测信号一个周期时间里对某一基准时钟脉冲进行计数。
2.1 8051测频法的误差分析
电子计数器测频法主要是将被测频率信号加到计数器的计数输入端,然后让计数器在标准时间Ts1内进行计数,所得的计数值N1。与被测信号的频率fx1的关系如下:
而电子计数器测周法则是将标准频率信号fs2送到计数器的计数输入端,而让被测频率信号fx2控制计数器的计数时间,所得的计数值N2与fx2的关系如下:
事实上,无论用哪种方法进行频率测量,其主要误差源都是由于计数器只能进行整数计数而引起的±1误差:
可见,在同样的Ts下,测频法fx1的低频端,误差远大于高频端,而测周法在fx2的高频端,其误差远大于低频端。理论研究表明,如进行n次重复测量然后取平均,则±1误差会减小n倍。如给定±1误差ε0,则要求ε≤ε0ο对测频法要fx1≥对测周法则要求fx2≤ε0fs2ο因此,对一给定频率信号fs进行测量时,用测频法fs1越低越好,用测周法则fs2越高越好。
2.2 8051单片机的测频范围和测频时间
8051单片机的定时器/计数器接口,在特定晶振频率fc=12 MHz时,可输人信号的频率上限是fx≤fc/24=500 kHz。如用测频法,则频率的上限取决于8051,故测频法的测量范围是:
即:fx1≤500 kHz。
用测频法测频时,定时器/计数器的计数时间间隔可由8051的另外一个定时器/计数器完成,外接100分频器的情况下,fx1的频率范围可扩展到50MHz用测周法设计时,其频率的下限取决8051计数器的极限。考虑到8051内部为16位,加上TF标志位,计数范围为217,因此其最大计数时间秒。而如果采用半周期测量,则测频范围是:
在测周法中,标准频率信号fs2由8051的内部定时结构产生,f s2恒为fc/12,因此,在给定ε0为0.0 1时,fx2既有一定的上限频率,也有一定的下限频率。即:
并由此可见得出:4Hz≤fx1≤10 kHz理论上可以达到无穷大,即fs1可以达到无穷低,因此,fx1可达到无穷小,因此,可以认为测频法的测频范围只有上限频率,没有下限频率。而再 这样,两个频率范围相叠加即可得到该频率计的测频范围:4 Hz≤fx1≤50 MHz。精度可以达到1Hz。从以上分析可以看出,测频法测量的频率覆盖范围较宽,且在高频端的测量精度较高,而在低频段的测量精度较低,同时测量时间较长。测周法测量的频率覆盖范围较窄,在高频段的测量精度较低,在低频段的测量精度较高,测量时间短。因此,测频法适于高频信号的测量,测周法适于较低频信号测量。
8051可用软件来控制定时器/计数器的工作方式,以实现测频法与测周法的动态切换。对宽频带、高速度的频率测量,可采用软件切换测量方法来提高测量精度与测量速度。其测频电路如图2所示。
3 软件设计
由图2所示的测频电路可知,波形经过施密特触发器74LS132后,再经整形放大后即可变成方波,然后利用8051的定时器/计数器T0给定定时时间为10 ms,再利用8051的定时器/计数器T1作计数器,累计10 ms时间里所经过施密特触发器74LS132的方波信号。当T0定时满10 ms时,T0向CPU发出中断信号以申请中断,并进行频率测量。假设所设定的中介频率为l00/10 ms="l00"×100=10000 Hz="10" kHz,冈为fx=N/T,所以,可以将假定给定数值100与Tl进行比较,再将Tl计数器里所计的数值与给定的数值进行比较。由于在用测频法测量频率时,较小频率的误差较大(±l误差)。所以,这里用l0 kHz作为中间频率,其±1误差为9.9 kHz和1 0.1 kHz,误差率为1%,可见该误差不是很大,还可以接受。
事实上,当频率比较小于1 0kHz时,若程序选择用测量周期法。则测周法流程图及其程序如如图3所示。
4 结束语
通过本文所介绍的设计过程即可实现频率测量要求,并能够很好的完成测量结果的存储,完全能够达到预期的效果。 |
用户224253 2009-8-22 17:01