基于编码器的轨道里程记录系统设计
2015-03-09吴禄慎陈华伟王伟杰
吴禄慎,冯 伟,陈华伟,王伟杰
(南昌大学机电工程学院, 南昌 330031)
基于编码器的轨道里程记录系统设计
吴禄慎,冯伟,陈华伟,王伟杰
(南昌大学机电工程学院, 南昌330031)
摘要:为了获得在轨道缺陷检测过程中检测出的有缺陷图片的精确里程信息,方便确定缺陷所在位置,设计一种双单片机控制的记录轨道里程值的系统,详细论述前置增强型单片机对编码器输出的脉冲信号鉴相,四倍频细分,并根据预设图片高度输出脉冲信息,后置8052单片机根据获得的脉冲信息记录脉冲个数并计算里程值,最后通过串口将计算所得数据上传至工控机。使用C++Builder编写的上位机控制软件对数据处理调用,以显示每张图片所表示的里程值。运行结果表明,该设计在记录并显示里程过程中,速度响应迅速,精度大大提高并且准确稳定。
关键词:轨道缺陷检测;光电编码器;鉴相分频;里程计数;串口通信
记录轨道的里程信息,是轨道缺陷检测系统中不可缺少的基本功能,它可以确定轨道缺陷所在位置。针对钢轨表面以及轨道扣件、夹板的缺陷检测,需结合图像处理技术的应用,利用CCD相机拍摄轨道,对成像的图片进行数字图像处理。所以,记录每张图片所对应轨道的精确位置至关重要。
现阶段,由于轨道缺陷检测[1]仪器通常是装载在测量小车上,通过推动小车来实现检测,因此记录里程比较有效的方法是,将光电编码器这种高精度的角位移测量传感器的中空轴装载在小车车轮轴上,当小车运动时,编码器的中空轴会跟随小车车轮轴同步转动,这样通过测量编码器的旋转角度,达到间接测量行走里程的目的[2]。
根据实际要求,选定拍摄图片高度,单片机通过编码器产生的脉冲相应定距计数,然后上传里程信息至工控机,以记录每张图片所对应的轨道里程。
1总体设计
该系统的设计思路主要由两大部分组成,一是里程信号采集,单片机根据实际设置的图片高度,通过编码器产生的脉冲定距采集;二是里程计数与数据传送,单片机对输入的计数脉冲信号和正反转信号中断处理并相应向上或向下计数,根据脉冲个数计算里程值并将计算所得数据通过串口传送至工控机,以实时显示每张图片所代表的里程值。在里程信号采集部分,考虑轨道环境恶劣,且系统对精度、速度有一定的要求,可采用软件鉴相、分频的方法,选用增强型单片机对编码器输出信号进行辨向和四倍频细分。里程计数部分则是采用8052系列单片机中的内部计数器来计算脉冲个数并计算实际里程数。数据传送则是利用8052系列单片机的串口通信功能,将计算所得数据通过串口传送至工控机。系统总体结构如图1所示。
图1 系统总体结构
2里程信号采集
光电编码器通常情况下输出A、B、Z三路信号,如图2所示,其中A、B信号波形相同,相位差90°,这样可以使单片机接收到轴的旋转方向信号,实现双向的定位控制,Z信号称之为零位信号脉冲,A⊕B为异或后的信号[3]。
图2 光电编码器输出信号
2.1鉴相和细分规则
光电编码器在运行过程中,有正转与反转之分,如图3、图4所示。当光电编码器正转时,A信号超前B信号90°,A、B两信号的电平状态值顺序是10→11→01→00,当光电编码器反转时,A信号落后B信号90°,A、B两信号的电平状态值顺序相应变为11→10→00→01。虽然顺序不同,但4个状态值是相同的,所以利用这种规律,根据A、B两信号在一个周期内的4种不同状态值的有序变化,可以有效地进行鉴相[4]。通过异或芯片,将A、B两路信号进行异或处理,对异或信号A⊕B上升沿与下降沿均捕获,这样便在光电编码器输出信号的一个周期内捕获4次,也就实现对其4倍频细分[5]。
图3 光电编码器正转
图4 光电编码器反转
2.2鉴相和4倍频的实现
为了满足较高速的试验需求,系统采用增强型单片机STC12C2052AD,该款单片机是STC公司生产的1T单片机,集高速、低功耗、超强抗干扰于一体的8051单片机,但速度是传统8051的8~12倍[6]。此外该单片机增加的PCA模块[7],可以高效地捕获输入沿,增加系统的稳定性,将编码器输出的A、B信号分别接入STC12C2052AD单片机的P1.0和P1.1端口,并对A、B两信号进行异或处理,可以通过芯片74LS86实现功能,将输出的异或信号接入单片机P3.7端口,如图5所示。
图5 异或电路
单片机对异或信号A⊕B的上升沿与下降沿均捕获并触发中断,然后进入到中断程序中,通过对这两个端口读取的数据,便可以获得A、B两信号的电平状态值,在软件程序中,设定AB电平01、00、10、11分别对应顺序值为1、2、3、4,然后单片机将两次读取的端口顺序值相减,若相减结果为-3或者+1,可知光电编码器正向旋转,计数值相应加1;若相减结果为-1或者+3,可知光电编码器反向旋转,计数值相应减1,最后单片机输出正反转信号与计数脉冲信号。正反转信号程序流程如图6所示。值得注意的是,计数脉冲经振荡器12分频后,检测一次需要2个机器周期,故计数频率是振荡器频率的1/24,为了满足实际需要,系统选择12 MHz的外部晶振,最高计数频率可以达到500 kHz[8]。
图6 正反转程序流程
3里程计数及通讯
轨道缺陷检测小车的运动方向是双向的,对于记录里程装置来说,就要实现正向运动加计数,反向运动减计数。对于该轨道检测系统是以图片形式存储,因此需实现拍摄一张图片记录一次里程。
3.1计数原理
该系统是将光电编码器的中空轴与检测小车的车轮轴固定在一起,检测小车车轮直径D=59.7 mm,根据试验需求,选定光电编码器输出脉冲数为1 000 pulse/r,则每张图片的实际长度d,即沿轨道方向的距离为
(1)
式中,N为预设的图片高度。
现在以预设图片高度为512为例,针对经单片机STC12C2052AD鉴相和四倍频细分之后的电路,要求每正向或反向计数
细分后的脉冲就上传一次里程计数脉冲信号和一次正反转信号至单片机STC89C52的T2计数器中。
STC89C52单片机是一种低功耗、高性能、CMOS、8位微控制器,它与51单片机相比,除了其内部程序存储容量增大外,还多了一个T2定时器/计数器[9]。计数器2具有自动重新装载(递增或递减计数)功能,利用该功能可以直接对输入的计数脉冲信号和正反转信号进行处理计数。该功能由计数器2模式控制寄存器T2MOD设定。其中当DCEN=1时,该模式允许T2EX引脚控制计数方向。当T2EX置1时,计数器2加计数,当T2EX清零时,计数器2减计数[10]。
最后通过式(2)计算得出里程值
(2)
式中,T为T2计数器中的计数值。
3.2计数电路设计
硬件电路接口连接如图7所示。正反转信号与计数脉冲信号分别由单片机STC12C2052AD的P1.3和P1.4两个端口输出,正反转信号控制计数器2的计数方向,因此与单片机STC89C52的P1.1(T2EX)端口连接;计数脉冲信号与单片机STC89C52的P1.0(T2)端口连接,使计数器2以一为单位计数。
图7 T2计数器硬件电路
3.3串口通讯电路设计
系统采用RS232接口完成单片机STC89C52与工控机的通信任务。RS232具有很多优势:只需要通过3根线就可以在上位机与下位机之间完成全双工的数据通信[11]。由于单片机串行通信的电平是TTL电平,若要与工控机通信连接,需要电平转换,系统采用MAX232芯片进行电平转换[12]。硬件连接电路如图8所示。
图8 RS232串口电路
3.4通信协议
单片机与工控机均采用查询方式进行发送控制字符和数据、中断方式接受控制字符和数据[13]。工控机采用串行口COM1,波特率9 600 bps,起始位1位,数据位8位,停止位1位,无奇偶校验位。每次当单片机STC89C52更新计算结果时,就向工控机发送通信指令“EB90”,工控机接收到通信信号后向单片机发送应答通信指令“EBOO”,当单片机接收应答通信信号后便可以发送计算结果。
4试验
轨道缺陷检测的上位机控制界面如图9所示。该控制界面是利用Borland C++Builder V6.0编译完成。主体部分是检测轨道扣件的实时图像,右侧主要是参数设置、路径保存和显示里程等,下侧主要是采集的图像状态情况。
在500 m的试验线路上,经过反复测试,能够准确获取并实时显示当前检测位置。
图9红框中所示为某一时刻的实时显示,该图中显示记录的该张图片所处位置为当前轨道的46.5 m。
图9 上位机控制界面
5结语
系统采用双单片机结合控制,可实现缺陷检测的双向里程计数,记录每张图片所对应的轨道位置。此种设计不但使系统处理速度和精度得到极大的提高,而且使得外围电路得到有效简化,在实际轨道现场操作,试验结果准确,为后续提高缺陷检测系统实效性提供了有效保证。
参考文献:
[1]Mandriota C, Nitti M, Ancona N, et al. A Distante Filter-based Feature Selection for Rail Defect Detection[J]. Machine Vision and Applications, 2004,15(4):179-185.
[2]贺洪江,钟志贤.一种差动轮式竞赛机器人的路径跟踪方法[J].制造业自动化,2013-02(下):5-8.
[3]邓兆翠,张凤登.光电编码器输出脉冲可逆计数方法的对比与改进[J].自动化仪表,2013(4):62-65.
[4]Feillet D, Dejax P, Gendreau M. Traveling salesman problems with profits. Transportation Science[J]. 2005,39(2):188-205.
[5]陈立兵,樊瑜瑾,等.基于AVR单片机的光电编码器定长系统设计[J].机床与液压,2012(7):110-113.
[6]王兴,贾晓虎,郝春丽.基于增量式光电编码器位移传感器研究[J].电子设计工程,2012(5):155-158.
[7]耿洪兴,张乐年,等.基于STC单片机的机械手运动控制研究[J].电气技术与自动化,2010,39(5):150-152.
[8]郭天祥.新概念51单片机C语言教程:入门、提高、开发、拓展全攻略[M].北京:电子工业出版社,2009.
[9]王琼.单片机原理及应用[M].合肥:合肥工业大学出版社,2013(6).
[10]王巧芝,等.51单片机开发应用从入门到精通[M].北京:中国铁道出版社,2011.
[11]章辉,叶建芳,叶建威.基于MSComm控件串口通信的实现[J].电子测量技术,2011(8):126-129.
[12]贾志成,岳西凤,等.基于VC++的XCTD串口实时数据采集系统的实现[J].机械设计与制造,2010(10):84-86.
[13]于艳,顾恒.MCS-51单片机和PC机间的串口通信[J].科学技术与工程,2007(4):1786-1788.
Design of Encoder-based Track Mileage Recording System
WU Lu-shen, FENG Wei, CHEN Hua-wei, WANG Wei-jie
(School of Electromechanical Engineering, Nachang University, Nanchang 330031, China)
Abstract:In order to determine the location of defective tracks conveniently, defective pictures detected should have accurate mileage information. This paper designs a track mileage recording system with double single-chip microcomputer control, describes in detail single chip microcomputer performing phase demodulation and frequency division, and outputting pulse information according to the height of the default images. 8052 single-chip microcomputer records pulse information according to the number of pulse and calculates the range value, and finally the data is uploaded to the industrial computer. C++Builder is used to write PC control software to handle and call data, and display mileage value of each image. The design proves very quick in recording and displaying with high accuracy and stability.
Key words:Orbital defect detection; Photoelectric encoder; Phase and frequency division; Mileage count; Serial port communication
中图分类号:TP23
文献标识码:A
DOI:10.13238/j.issn.1004-2954.2015.04.013
文章编号:1004-2954(2015)04-0045-04
作者简介:吴禄慎(1953—),男,教授,博士生导师,E-mail:wulushen@163.com。
基金项目:国家自然科学基金(51065021,51365037)
收稿日期:2014-07-10