光电编码器输出脉冲可逆计数方法的对比与改进

2013-09-10 08:33:46邓兆翠张凤登
自动化仪表 2013年4期
关键词:计数法高电平场合

邓兆翠 张凤登

(上海理工大学光电信息与计算机工程学院,上海 200093)

0 引言

在高精度位置控制场合,光电增量式编码器(以下简称编码器)是一种常用的位移检测传感器。当检测对象的直线位置或者角位置发生变化时,带动编码器转动,编码器便会发出A、B两路相位相差±90°的、规则的数字脉冲信号。位移量与脉冲个数成正比,而A、B两路脉冲的相位关系则表示编码器的转动方向,即位移量的变化方向。编码器正转时,A脉冲相位相对B脉冲超前90°;而编码器反转时,A脉冲相位相对B脉冲滞后90°。因此,通过对脉冲个数的可逆计数,即可实现对位移量的可逆计数,从而计算出被检测对象的精确位移。

由于实际应用场合存在物理或电路干扰,会对A、B两路脉冲输出产生抖动和毛刺,影响两路脉冲相位关系的判断和脉冲个数的计数,从而影响计数结果。因此,必须在实现可逆计数的同时,在不降低计数速度的前提下,最大限度地降低毛刺和抖动干扰,提高计数精度。

1 单中断计数法

编码器输出的脉冲波形如图1所示。由图1可知,当A相处于下降沿、B相为高电平时,表示编码器正转;当A相处于下降沿、B相为低电平时,表示编码器反转;无转动时,A、B输出皆为低电平。

图1 编码器输出脉冲波形图Fig.1 Waveforms of the output pulse of encoder

单中断计数法的原理如下[1-2]。将 A 相接到INT0,将中断0触发方式设置为下降沿触发;B相接到普通的I/O口。在中断0的中断服务程序中,读取B相电平,如果B相电平为高电平,则表示正转,反之为反转。同时在中断服务程序中计一次脉冲数,根据判断出的转动方向加1或者减1。

对应的单中断计数法C51程序如下。

通过图1所示脉冲波形可以观察到,理想状态下,位移量与A相脉冲个数和B相脉冲个数均成正比,这是因为A相脉冲与B相脉冲一一对应。但是利用单中断计数方法,即只以A相一路脉冲个数作为计数依据时,A相上的毛刺会严重影响计数结果。如在没有位移变化的情况下,A相出现毛刺;而B相正常、为低电平时,那么A相上的每一毛刺都会致使计数减1,导致检测结果比实际位移量偏小。因此,采用单中断计数方法虽然软硬件实现简单,但计数精度不可靠,只能用于计数精度较低的场合[3-4]。

2 双中断计数方法

由图1可知,当B相为高电平时,A相正跳变为反转,负跳变为正转,A、B脉冲成对出现。鉴于此,双中断计数方法仅当B相为高电平时才对A相脉冲信号进行计数,并通过A相电压的跳变方向判断编码器转动方向。相对于单中断计数法,采用双中断计数法,当B相为低电平时,A相出现的毛刺并不会引起计数误差;而仅在A相、B相同时出现毛刺的情况下才可能导致计数误差,精确度明显提高[5-6]。

双中断计数法硬件连接图如图2所示。

图2 双中断计数法硬件连接图Fig.2 Hardware connections for double interrupt counting method

图2中,INT0和INT1都分别设为以下降沿触发。当DIR由高到低跳变时,触发INT0,表示正转,相应的中断服务程序进行加1计数;当DIR由低到高跳变时,触发INT1,表示反转,相应的中断服务程序进行减1计数[7-8]。

在图2所示的硬件连接图的基础上,对应的双中断计数法的C51程序如下。

当然,双中断计数法也有它的不足之处。它占用了两个外部中断,在一个完整的控制系统中,这是十分占用资源的;同时,一次计数引发一个外部中断和计数器中断,在实时控制系统中,这将影响其他控制部分的实时性。因此,双中断计数法不适用于高速计数兼需实时控制的场合。

3 扫描计数法

为了解决双中断计数法占用过多中断资源、影响控制程序的实时性等问题,扫描计数法将编码器的A、B相分别连接到80C51的普通I/O口,采用固定时间间隔同时扫描A、B两相电平,结合A、B两相的相位次序,同时完成计数和辨向。

根据图1所示输出脉冲波形,每隔1/4周期采样一次A、B脉冲序列。由采样得到的脉冲序列可以观察到:正转时 A 路 ={1,0,0,1,1}、B 路 ={1,1,0,0,1};反转时 A 路 ={1,1,0,0,1}、B 路 ={1,0,0,1,1}。

为了分析A、B脉冲的相位关系,固定地将A相作为高位、B相作为低位,并将同时刻采样值相加,得出反转 的 数 组 为 {3,2,0,1,3}、正 转 的 数 组 为{3,1,0,2,3}。以下是基于8051、晶振频率为12 MHz、扫描间隔为1 ms的扫描计数法的C51程序。

若扫描间隔为1 ms,则最快4 ms扫描一个完整的计数数组,这样便完成一次可逆计数。以ALPS(阿尔卑斯)的EC11E型号编码器为例,编码器旋转360°发出18个脉冲,扫描计数法采用1 ms的扫描间隔,可以完成角速度5°/ms以下的位移控制场合的计数。如果该控制系统中与编码器连接的转轮的半径为0.5 m,则由V=ωr,可得V=(5 000°/180°)×π ×0.5≈43.6 m/s=157 km/h,即扫描计数法可完成线速度在157 km/h以下速度场合的计数[9-10]。

若要用于更高计数速度的场合,可以适当减小扫描周期。扫描计数法硬件设计简单,软件扫描时间固定,不影响其他控制程序的实时性。此外,该方法同时扫描两列脉冲序列作为计数和辨向依据,减小了单一相位上毛刺的干扰,提高了计数精确度。

4 结束语

本文从软硬件结合的角度,分别分析与介绍了利用一个外部中断和两个外部中断以及扫描脉冲序列对编码器进行可逆计数的方法。对比发现,使用一个外部中断时,软硬件容易实现,但是计数误差偏大,不适合精确位置控制系统;使用两个外部中断的方法时,会影响其他控制功能的实时性,因此其比较适合高速、纯位移检测的场合;而扫描方法严格依据脉冲相位关系进行同步辨向和计数,能很好地消除毛刺干扰,且该方法可根据适用的速度适当调整扫描周期,能适应一般高速计数的场合。

[1]李朝青.单片机原理及接口技术[M].北京:北京航天航空大学出版社,1999.

[2]郭光明,王秀华.光电增量编码器与微处理器的接口电路[J].电子与自动化,1997(5):42-43.

[3]潘明东.光电编码器输出脉冲的几种计数方法[J].电子工程师,2004,30(8):69 -71.

[4]张天凡.51单片机C语言开发详解[M].北京:电子工业出版社,2008.

[5]钟富昭.8051单片机典型模块设计与应用[M].北京:人民邮电出版社,2007.

[6]唐中燕,杨晓红,杨静.基于单片机的智能型光电编码器计数器[J].仪器仪表用户,2001,8(5):11 -13.

[7]高伟,李玄曾.光电编码器的信号处理电路研究[J].陕西师范大学继续教育学报,2007,24(2):116 -118.

[8]任骏原.用Multisim软件分析触发器的状态变化过程[J].实验科学与技术,2001(1):53-56.

[9]俞竹青,潘全胜.一种光电编码器用可编程计数电路的设计[J].传感器技术,2002(10):22 -24.

[10]刘江省,宋健.一种基于单片机的增量式光栅参考信号处理方法[J].工具技术,2009(7):109-111.

猜你喜欢
计数法高电平场合
显微镜手工计数法在低值血小板计数中的应用
一种基于FPGA的PWM防错输出控制电路
神奇的计数法
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
科技传播(2019年15期)2019-08-22 08:07:44
正统的场合
正统的场合
正统的场合
DM 50KW中波广播发射机欠推动故障分析
PDM 1kW中波广播发射机保护电路分析
“宇宙之大,粒子之微”尽显“科学计数法”的魅力