车速测量方法对比及其实现

作者:廖颂文 

摘要:

本文介绍和对比了几种常用的速度测量方法,最后给出了使用测周法的速度测量模块在STC12C5201AD上的具体实现,包括原理图、关键程序流程图和分频系数表。

关键词:速度测量、STC12C5201AD、误差计算、查表、自适应、模糊匹配。

概述:

速度的定义是单位时间内物体移动的距离。实际是测量单位时间内车轮转动产生的脉冲个数,即频率测量。速度测量按测量方法可以分为直接测频法和间接测频法。其中间接测频法又可以分为测周法和等精度测频法,以及不太常用的频率电压变换法。文中给出了不同测量方法的原理和误差产生的原因及误差计算公式。最后针对实际的速度测量模块,给出了基于STC12C5201AD单片机测速模块的实现方法。

基本原理

直接测频法,即测量单位时间内输入信号的脉冲个数。由于输入信号和闸门时间不同步,会存在闸门时间内多计或少计1个脉冲的问题,从而产生+-1的系统误差,误差大小err为:

图1-1

当被测信号的频率较低时,采用直接测频方法引起的测频误差太大,例如10HZ的脉冲信号(对应10公里/小时),使用直接测频法的测量误差是±10%。从误差计算公式可以看出通过增加闸门时间T0可以减少测量误差,但会导致测量时间变长,测量显示值更新缓慢。

间接测频法,即通过测量输入信号的周期反推计算输入信号fx的频率。工作原理如下,利用输入信号产生计数的闸门信号,对基准信号f0计数,计数结果为N0,测被测频率为f0/N0。这个方法同样会产生±1的系统误差,误差大小err为:

从误差公式可以看出当基准信号f0远高于被测信号fx的频率时误差很小;例如f0为1MHZ时,对于速度信号0~200HZ的测量误差可以忽略。但当被测信号很高,例如500KHZ时测量误差会很大。实际这种情况不会发生,因为车速信号频率多数在200HZ以下,即使是高铁速度对应的频率也在500HZ以下。少数使用助推的赛车车轮运转频率也没有超过500HZ。对于某些旋转编码器为了提高测量精度使用机械插值方法,使实际转速信号频率提高100倍的情况,频率也不会超过50KHZ。所以测周法适合车辆速度信号的测量。使用1MHZ基准信号,在0~200HZ范围内最大误差为±2 X 10-4次方,对于车速测量完全足够。

图1-2

等精度测频法也叫多周期测量法。是另一种间接测频法。这种方法同时对基准信号和速度信号计数。利用Nx/N0=fx/f0的原理计算得到fx=f0*Nx/N0。

在忽略基准信号温漂,抖动因素导致的误差情况下,等精度测频法测量误差是:

这个方法可以在高频和低频段保持一致的测量精度,只是硬件上复杂一些需要2个计数器。同时为了避免输入信号太低,TIM2计数器在闸门时间内计数值为零的情况出现,及±1误差的出现,需要引入同步触发机制,使被测信号和闸门信号同步。闸门脉冲和基准信号f0是不同步的,但由于f0的频率很高多数在1MHZ以上,所以±1计数误差导致的误差在10^-6次方级别,比普通晶振的温漂±20ppm导致的误差还小。误差公式是在闸门时间为1秒时的计算结果,增加闸门时间可以提高精度,减少闸门时间会降低测量精度。

图1-3

最后是频率电压变换法,常用于电机速度控制,电源线频率检测,音频均衡指示,模拟速度表,或远距离信号传输。是一种简单有效的模拟频率测量方法,通常测量误差在0.01%内。其工作原理如下:

图2-1

充电电容的平均电流根据C*U=I*t计算,C是电容的容量,单位法拉;U是电容两端的电压,单位伏特;I是充电电流的大小,单位安培;t是充电时间。

所以图2-1中:

输出电压和输入频率的关系如下:

V0是R1两端平均电压;K是修正系数,通常为1。可以看出输出电压和输入频率成正比例关系,所以通过测量V0电压可以知道输入频率的大小。

图2-2是典型的电压频率转换电路。

图2-2

通过对比,很容易发现,对于车速信号。使用测周法是比较简单的,同时又可以保证测量精度,使用的MCU资源较少,可以降低仪表成本。为了进一步提高测量精度可以根据被测频率调整基准频率,使计数值保持在1/2满计数值附近。常见的调整方法有直接计算分频系数和模糊匹配分频系数两种方法。

直接计算分频系数的方法如下:

模糊匹配分频系数的方法如下: 

模糊匹配的实现过程是用上一次对待测信号的计数值作为输入变量,根据参考时钟,分频系数,计算速度值V0;只用1字节长度的整数速度值,范围是1~200;1~200对应存储在ROM中分频系数表K200[200]; 对应值即为需要的分频系数K1。通过调整分频系数,调整参考时钟频率,保证计数值在满量程的50%左右,避免计数值偏小时±1计数误差导致的测量误差偏大。和直接计算时标调整值的方法相比,使用模糊匹配得到控制量的方法可以减少MCU计算参考时钟的运算量,降低MCU的功耗。参考时钟调整的流程图如图3-1。

图3-1

由于参考时钟不需要太精确,对于没有乘法除法指令的8位MCU来说,模糊匹配简单有效,对于有乘法器的高性能MCU,也可以减少运算降低功耗。

下面以低成本的STC12C5201AD单片机为例,给出具体的车速测量模块的设计。

电路原理图如下图4-1:

P2连接器输入的是开关或磁敏三极管输出的脉冲信号,经过滤波后送入MCU的PCA模块输入端进行测速。

图4-1

关键程序流程如下:

程序启动后初始化T0和PCA模块后按设定的时间间隔测量P3.7/CCP0输入的脉冲频率,并通过串口发送测量结果到上位机做进一步的处理和使用。测量过程中程序根据上次测量的速度(频率)自适应选择合适的基准时钟作为测量车速的基准。

由于STC12C5201AD ROM限制,参考时钟分频系数保存在EEPROM中,EEPROM存储的分频系数修正值见表1-1。注意STC12C520xAD系列单片机内部的EEPROM只能按页面写入数据,操作上没有AT24C02器件方便。也可使用内部Flash较大的STC12C5202AD,分频系数修正值可以直接保存在Flash ROM中。

参考文献:

[1] 邵祥兵 赵建峰,基于AT89C2051的智能频率计设计,南京工程学院学报(自然科学版),2004

联系方式:songwenliao@126.com

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

songwen_liao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值