APP下载

基于单片机控制的智能车测速算法研究

2011-09-19毕恩兴

电子设计工程 2011年15期
关键词:计数器信号处理计数

毕恩兴

(西安铁路职业技术学院 陕西 西安 710014)

“飞思卡尔”智能车一般由:前瞻(路径传感器)、核心控制器、驱动器、测速模块等部分组成[1]。为提高模型车的控制精度,引入车速闭环控制对于模型车在运行过程中的状态控制是十分重要的。

文献[1]与文献[2]仅对速度测量传感器的工作原理及如何安装速度传感器进行了说明,没有考虑在实际的使用过程中如何从测速算法角度减小测速误差,以及对不同数字测速算法的优缺点进行比较分析。笔者主要针对速度传感器的信号输出特点,设计了速度信号处理电路,针对数字测速的特点分别对M法、T法、M/T法这3种测速算法进行了分析、比较,最终选择了测速范围广、测速误差在一定范围内较小的适合模型车测速的M/T法作为模型车测速算法并加以实现。通过实验对测速算法进行了比较、分析,证明了理论分析的正确性,并为智能车测速提供了程序设计范例。

1 测速电路硬件组成

测速电路主要是由测速传感器与信号处理电路组成。测速传感器的功能是将速度信号转换为电信号。信号处理电路的功能是将传感器输出的信号转换为单片机可以识别的信号。

1.1 测速传感器

智能车竞赛中,测速传感器一般由发光二极管、光敏三极管与光栅组成,其工作原理是利用光栅遮挡发光二极管,使光敏三极管输出频率与转速成线性关系的电压信号,其结构如图1所示[3]。

图1 测速传感器结构图Fig.1 Speed sensor structure

1.2 信号处理电路

针对速度传感器的特点,在模型车车轮转动时,通过光栅遮挡发光管,从而使光敏三极管产生频率与速度成线性关系的电压信号。对于单片机而言,由于是数字芯片,对于频率与速度成线性关系的模拟电压信号是不能直接识别的,故在此采用信号处理电路对速度信号进行调整,使其变为可以被单片机识别的数字脉冲信号。具体的信号处理流程如图2所示,信号处理电路图如图3所示[4]。

图2 速度信号处理流程Fig.2 Speed signal processing flow

由图2可知,该信号处理电路首先对速度电压信号进行削波处理,其次经过低通滤波器对高频干扰进行滤除,通过迟滞比较电路将信号整形为正负电压的方波信号,由于单片机只能识别逻辑正电平,故采用施密特触发器与二极管D75将负电平去除从而得到可以被单片机识别的数字信号。

图3 速度信号处理电路Fig.3 Speed signal processing circuit

2 测速算法

测速模块硬件的主要功能是:将频率随转速变化的模拟信号送入信号处理电路,最终转换成数字脉冲信号。单片机通过对脉冲计数就可以得到转速的具体数值,该测量方法属于数字测速的范畴。常用数字测速方法有:M法、T法和M/T法。

2.1 M法测速

在一定的时间Tc内测取测速电路输出的脉冲个数M1,用以计算这段时间内的平均转速,称为M法测速。如图4所示。把M1除以Tc就可得到测速电路输出脉冲的频率f1=M1/Tc,所以又称频率法。电动机每转一圈共产生Z个脉冲,把f1除以Z就得到电动机的转速。在习惯上,时间Tc以秒为单位,而转速是以每分钟的转数r/min为单位,则电动机的转速为

上式中,Z和Tc均为常值,因此转速n正比于脉冲数M1高速时M1大,量化误差较小,随着转速的降低误差增大,转速过低时M1小于1,测速装置便不能正常工作。所以M法测速只适用于高速段[5]。

图4 M法测速原理Fig.4 M speed measurement algorithm

2.2 T法测速

在测速电路两个相邻输出脉冲的间隔时间内,用一个计数器对已知频率为f0的高频时钟脉冲进行计数,并由此来计算转速,称作T法测速,如图5所示。在这,测速时间源于编码器输出脉冲的周期,所以又称周期法。在T法测速中,准确的测速时间Tt是用所得的高频时钟脉冲个数M2计算出来的,即Tt=M2/f0,则电动机转速为

高速时M2小,量化误差大,随着转速的降低误差减小,所以T法测速适合用于低速段与M法恰好相反[5]。

图5 T法测速原理Fig.5 T speed measurement algorithm

2.3 M/T法测速

在M法和T法结合起来,即检测Tc时间内测速电路输出的脉冲个数M1,又检测同一时间间隔的高频时钟脉冲个数M2,用来计算转速,称作M/T法测速。设高频时钟脉冲的频率为f0,则准确的测速时间Tt=M2/f0,而电动机转速为:

采用M/T法测速时,应保证高频时钟脉冲计数器与测速电路输出脉冲计数器同时开启与关闭,以减小误差,如图6所示。只有等到测速电路输出脉冲前沿到达时,两个计数器才同时允许开始或停止计数[5]。

图6 M/T法测速原理Fig.6 M/T speed measurement algorithm

综上所述,3种方法中M法在高速时误差较小,低速时误差较大。T法在低速时误差较小,高速时误差较大。M/T法测速范围较广,在高速时相当于M法,低速时相当于T法。对于智能车而言从启动、加速到高速运行,速度范围较广,为了能够在各种情况下对车速进行精确测量,采用M/T法较为适合。

3 测速算法实现

M/T法的原理如图6所示。该算法需要两个脉冲计数器、一个允许计数定时器。并且要求两个脉冲计数器根据脉冲边沿同时开启与关闭,故需要对脉冲信号的边沿进行捕捉。Freescale MC9S12DG128单片机的ECT模块可以实现定时功能,并且可以实现对脉冲边沿捕捉的功能。

3.1 ECT相关功能模块说明

1)脉冲输入捕捉、定时模块

脉冲输入捕捉、定时模块的功能是:脉冲输入捕捉中断、定时器计数。与该模块相关的控制寄存器有:TSCR1、TSCR2、ICSYS、TIOS、TCTL4、TIE。其分别可以完成:定时器使能、定时器分频、输入捕捉缓冲使能、触发模式设定、边沿触发类型设定、中断使能等功能[6-8]。

2)脉冲累加计数模块

该模块的功能是:实现对外部输入脉冲进行累加计数。与该模块功能相关的控制寄存器有:PACN01、PBCTL。分别可以实现:脉冲累加结果存储、脉冲累加计数器级联、脉冲累加计数器使能功能[6-8]。

3)模数向下计数定时模块

该模块的功能是:实现长度可控的定时,采用16位减法计数的方法。可以实现对允许计数时间的定时。与该模块相关的控制寄存器有:MCCTL、MCCNT。分别可以实现:计数器工作模式设定、中断使能、计数器使能、分频系数设定、定时器初值设定等功能[6-8]。

3.2 M/T测速算法程序流程设计

速度测量算法主要通过3个模块来实现:脉冲输入捕捉定时模块、脉冲累加计数模块、模数向下计数定时模块。测速程序主流程图如图7所示。

图7 M/T法测速算法流程图Fig.7 Flow chart of M/T method

由图7可知,测速算法的实现,主要通过两个中断程序:脉冲输入捕捉中断程序、模数向下计数中断程序,的嵌套实现。在中断嵌套的同时,采用脉冲累加功能对测速电路输出脉冲进行计数得到M1值,采用主定时器脉冲计数功能得到M2值,已知高频脉冲计数频率,通过公式3即可得到转速。接下来就详细介绍两个模块的实现流程。

1)脉冲输入捕捉定时模块

该模块主要完成:输入脉冲的边沿捕捉、高频定时脉冲的计数、脉冲累加计数功能。具体的程序流程图如图8所示。其中,实线方框内,箭头所指的是相关寄存器设置所产生的功能说明,图8左侧流程图为寄存器初始化等待中断流程说明,右侧流程图为脉冲上升沿捕捉中断响应程序,通过中断程序设置固有长度定时器启动,并且计算定时长度内的固有高频脉冲数目M2。

图8 脉冲捕捉定时模块流程图Fig.8 Flow chart of capture pulse timing module

2)模数向下定时计数模块

图9 模数向下定时计数模块流程Fig.9 Flow chart of MCCNT module

该模块主要实现:允许计数时间Tc的定时。具体的程序流程图如图9所示。其中,图9左侧流程图为模数向下计数器控制寄存器初始化等待流程,右侧流程图为模数向下计数定时器中断响应程序。在中断响应程序中对测速电路输出数字脉冲进行计数可以得出M1值,已知Z值,由通过公式3可求出具体的转速 n(r/min)。

3.3 M/T测速算法代码实现

M/T算法实现主要包含:脉冲输入捕捉初始化、脉冲捕捉中断响应函数、模数先下计数定时中断3部分。

4 测试与分析

4.1 算法测试

为了对测速算法的准确性进行比较与分析,采用信号发生器模拟测速传感器输出信号,将标准信号发生器产生信号频率值与测速算法所得频率值进行比较。具体的实验测试结果如表1所示。

表1 实验测试结果Tab.1 Experimental results

4.2 算法分析

根据表 1所测数据,令 δ为误差率,根据 δ=(误差/被测量)×100%,通过给定频率的变化可以得出不同算法的误差率变化曲线如图10所示。

图10 误差率曲线Fig.10 Error rate curve

由图10可以看出,采用不同的测速算法后实际的测试效果是不同的:M法适用于测量高速段;T法适用于测量低速段;M/T法测速范围较广,低速相当于T法测速,高速相当于M法。

5 结 论

通过对“飞思卡尔”智能模型车的测速模块进行研究,根据速度传感器的信号特点设计了测速信号处理电路。依据数字测速原理,对不同的速度测量方法进行了分析与比较,确定了M/T测速算法的适应性最广,准确度最高。并以MC9S12DG128单片机为硬件开发环境实现了该算法,并通过实验证明了其可靠性。

[1]韩毅,秦绪鑫,赵轩.基于反射式黑白码盘的模型车测速装置[J].计算机工程与设计.2009,30(24):5793-5795.

HAN Yi,QIN Xu-xin,ZHAO Xuan.Speed device of model car based on black and white stripe[J].Computer Engineering and Design.2009,30(24):5793-5795.

[2]雷贞永,谢光骥.飞思卡尔智能车舵机和测速的控制设计与实现[J].电子设计工程.2010,18(2):91-92.

LEI Zhen-yong,XIE Guang-ji.Design and implementation of Freescale smart car steering gear and gun control[J].Electronic Design Engineering.2010,18(2):91-92.

[3]彭军.传感器与检测技术[M].西安:西安电子科技大学出版社,2003.

[4]林涛.模拟电子技术基础[M].重庆:重庆大学出版社,2003

[5]陈伯时.电力拖动自动控制系统[M].北京:机械工业出版社,2003.

[6]邵贝贝.单片机嵌入式应用的在线开发方法[M].北京:清华大学出版社,2007.

[7]刘晓生,王宜怀.嵌入式系统使用HCS12微控制器的设计与应用[M].北京:航空航天大学,2008.

[8]孙同景,陈桂友.Freescale 9S12十六位单片机原理及嵌入式开发技术[M].北京:机械工业出版社,2008.

猜你喜欢

计数器信号处理计数
采用虚拟计数器的电子式膜式燃气表
古人计数
递归计数的六种方式
古代的计数方法
《信号处理》征稿简则
《信号处理》第九届编委会
《信号处理》征稿简则
《信号处理》第九届编委会
这样“计数”不恼人
计数器竞争冒险及其处理的仿真分析