当前位置:文档之家› PIC单片机等精度测量频率法

PIC单片机等精度测量频率法

PIC单片机等精度测量频率法
单片机测量频率,是一个比较常见但又不好解决的问题。

主要是测量频率是高端和低端不能兼顾的问题。

测量频率无非两种方法:
1.在一段固定的时间及脉冲的个数,然后除时间得到频率。

2.测量脉宽计算频率。

第一种方法,适合测频率在1KHz以上的脉冲信号。

因为要保证测量精度在0.1%,至少要保证脉冲个数在1000个,假设测10HZ左右的信号,则一个测试周期需要100秒,这显然不是我们所能接受的。

第二种方法,适合测频率小于1KHz的信号。

因为要保证测量精度在0.1%,在一个脉冲宽度(1ms)内,作为时标的定时器至少要走1000个数(此时PIC 的晶振理论上至少也要4MHz)。

事实上,想利用上述两种方法精确测量宽范围的频率,几乎是不可能的。

PIC系列特有的平级中断,也使其测量频率比51系列测量困难。

等精度数字测频基本框图
等精度数字测频基本框图如下
fx
图中的闸门G1、G2分别用来控制输入信号周期计数和闸门时间宽度计时。

其中,G1与输入信号同步,这样可使计数器N1的量化误差dN1=0。

计数器N2对标准时标信号Tc进行计数,并以此来测量实际的闸门宽度Tg,则输入信号的频率可表示为:
fx=N1/Tg=N1/(Tc*N2)
标准时标信号采用单片机自身的工作时钟,可看作常数。

因此fx的相对误差为:
dfx/fx=dN1/N1-dN2/N2=-dN2/N2
式中,dN2为计数器N2产生的量化误差,最大为±1个Tc,在实际设计中,选择适当的时标Tc和闸门宽度Tg可是N2始终足够大,以次在fx的全频段范围内得到足够高的精度。

等精度测量法的实质就是一种变相的测脉宽法。

在实际使用时(PIC为例),可将Timer0作计数器N1,Timer1作计数器N2,
外部中断INT0同T0连在一起,作为Tg信号,如图:
fx T0
INT0
PIC
首先打开INT中断,允许Timer0计数,当一个fx的上升沿来临时,触发INT中断。

在INT中断中,打开Timer1计数器,同时禁止INT中断。

延时0.5秒,打开INT中断,当INT中断再次发生后,关闭Timer1、Timer0计数器。

此时的频率为:
fx =fc* N1/N2
式中,fc为PIC的工作时钟,当时用4HMz晶体时,fc=1MHz。

相关主题