3.3 脉冲频率测试及处理程序
为节约成本,采用单片机的控制接口进行脉冲频率的采集,因此采集精度的高低完全取决于软件控制。为了减少测量误差,提高速度的动态性能,通过反复实验将测量周期定为10 ms,并采用脉冲同步技术[7]。对于这种高速的频率测试,需要采用单片机标准的计数器,为了使得时间更为精准,采用了单片机标准的定时器,该部分中主要采用中断控制,可以提高系统的实时性。脉冲同步主要采用计数器1中断实现,将计数器的初值设置得很大,如初值为65 526,因此当外来脉冲再来10个时,计数器1将产生中断,此时正好是输入脉冲的下降沿,也为下一个脉冲的起始位,在此时启动定时器0,就可以解决脉冲同步的问题。当定时器0中断到来时即为10 ms时间结束,在此时关闭计数器1,而在计数器1内部寄存器TH1和TL1的值即为10 ms内频率的个数。通过相应的计算可以计算出当前的频率和相应的速度,经过反复的测量和比较找出其最大频率即为当前限速器的动作速度。其流程图如图7所示。
脉冲同步技术是利用单片机的定时器和计数器中断来实现的,两中断配合程序如下所示:
(1)计数器1中断处理程序
该中断处理程序主要完成脉冲同步。将计数初值设为65 536-10=65 526,这样当脉冲到来时很快可以取得同步。计数器1产生中断时,表示刚采集到信号的下降沿,此时需要关闭计数器1中断,并打开定时器0,表示采集开始。为了减少指令执行时的误差将启动定时器指令放在中断入口处。
org 001bh
setb tr0 ;;(一旦进入中断将打开定时器)
ljmp dsq1_interupt
.
.
.
dsq1_interupt:
clr tf0
clr tf1
setb et0
clr et1
reti
(2)定时器0中断处理程序
该程序主要完成测量周期的精确定时。本设计的定时时间为10 ms,晶振频率为11.059 2 MHz,因此定时器初值x的计算公式为[1]:
由式(2)可得定时器初值为x=65 536-9 126=56 320。
为了提高采集频率的精度,减少指令执行带来的误差,将关闭计数器1的指令放在中断入口处。在定时器中断处理程序中主要完成对当前速度的采集和下一次采集的初始化,主要是定时器0和计数器1的初始化。处理程序如下:
org 000bh
clr tr1 ;;(关闭计数器1)
clr tf0
ljmp dsq0_interupt ;; 进入中断处理程序
.
.
.
4 采集精度测试和频率采集效果
为了验证单片测试速度精度和脉冲同步技术的优点,将采集信号端接标准的信号发生器,从单片机读取速度,由于采用10 ms间隔,所以f=100×(TH1×256+TL1)(Hz),通过式(1)可以得出相应的速度。其测试效果如图8所示,其中曲线1表示没有加脉冲同步技术的误差曲线,曲线2表示加了脉冲同步技术的误差曲线。
从上面的测试结果可以清楚地看到,没有加脉冲同步技术的测试仪产生的误差比较大,而且上下波动也大,最大绝对误差达到了0.065 m/s,不满足精度要求,而且测试中速度跳动很大,不稳定。而具有脉冲同步技术的测试仪比较稳定,尤其是对于低频率段误差基本上为0,对于高频率段误差基本上在0.01 m/s,这完全可以满足采集要求,而且测量速度波动小,很稳定。
该限速器测试仪主要用于检测电梯限速器轮盘线速度,即限速器动作速度。不仅适用于质量技术监督局、商检局、电梯安装部门等单位对电梯限速器的现场检测,也适用于电梯及限速器生产厂家的在线检测[2]。现此仪器已应用于实际中,供电方便(内置9 V电池)、测量范围广、精确度高(测量范围:0.5~12 m/s,准确度:﹤±0.5%),基本上满足现代电梯的要求;能实时记录数据,最多可以记录1 000条记录,足够应对现场测量;具有RS232接口,能上传数据到计算机,方便数据的处理。
参考文献
[1] 丁元杰.单片微机原理及应用.北京:机械工业出版社, 2005.
[2] 常健生.检测与转换技术.北京:机械工业出版社,2007:225-230.
[3] 张天凡.51单片机C语言开发详解.北京:电子工业出版社,2008:208-216.
[4] 李福进.基于单片机的转速测量方法.工矿自动化,2006(1):54-55.
[5] 康华光.电子技术基础(模拟部分).北京:高等教育出版社,2006:500-506.
[6] 陈志军.高精度水文数据采集终端的设计与实现.自动化仪表,2009(5):66.
[7] 周杏鹏.现代检测技术.北京:高等教育出版社,2004: 55-62.