基于单片机的增量式光电编码器接口的设计_图文

基于单片机的增量式光电编码器接口的设计

许  理 ,赵英俊 (华中科技大学 ,湖北 武汉 430074)

Design of Incremental Photoelect rical Encoder Interface Based o n Single
XU Li , ZHAO Ying jun ( Huazho ng U niversity of Science and Technology ,Wuhan 430074 ,China)

chip

  摘要 :介绍了低速增量式光电编码器接口的鉴 向计数原理 ,以及实践过程中所要注意的问题 ,并通 过实验验证了接口的可行性与适用范围 。
关键词 :光电编码器 ;单片机 ;四倍频 中图分类号 : TP212 文献标识码 :A 文章编号 :1001 2257 (2006) 12 0009 03 Abstract :A met hod of designing a simple and low co st interface of t he incremental p hotoelect ri2 cal encoder which is used in low velocit y system is p rovided in t his paper. The p rinciple of detecting directio n and co untering is p resented in detail and so me questio ns t hat must be paid attentio n to in p ractice are also listed. Furt her more ,t he feasibili2 t y and t he applicatio n range of t his interface are p roved by experiment s. Key words : p hotoelect rical enco der ; single chip ;quadrant
0  引言
增量式光电编码器作为一种体积小 、精度高 、响 应速度快 、性能稳定的转速与位置传感器在测控领 域得到了广泛的应用 。在机器人系统中 ,光电编码 器一般工作在低速 、频繁变向 、停停走走状态下 ,在 此状态下光电编码器信号在光窗附近存在抖动 。通 用的高速信号采集方法电路虽然计数可靠稳定 ,但 是设计复杂 ,成本高 ,接口方式选择余地小 ;而一些 低成本的接口设计在低速方向频繁切换的应用场 合 ,对方向切换会有响应延时或计数误操作等问题 。
收稿日期 :2006 06 06 基金项目 :武汉市科技局攻关项目 (20056002055) 《机械与电子》2006 (12)

1  鉴向分频计数原理
增量式光电编码器的计数鉴向方法很多 ,可通 过软件方式 ,也可通过硬件电路实现 。其鉴向计数 原理基本一致 ,当编码器正转时 , A 相超前于 B 相 90°,当光电编码器反转时 ,B 相超前于 A 相 90 °[1] 。 根据信号的状态转化可以判别处编码器的转向 ,计 数有 3 种分频方式 :不倍频 ( ×1) 方式 、二倍频 ( ×2) 方式 、四倍频 ( ×4) 方式 , ×1 方式每个周期计数值 加 (减) 1 , ×2 模式只在某一相上的任一次状态转换 计数值加 (减) 1 , ×4 任一相的任一次状态的翻转 , 计数值加 (减) 1 。在实际低速工作状态下 ,由于编码 器在光窗边缘停滞时间长或发生方向改变 ,可能会 引起在某一相信号上的抖动[2] 。这种抖动脉冲脉宽 时间短 ,频率高 。
2  用软件实现脉冲鉴向和计数
2. 1  查询方式 这种方式外围电路简单 ,为了保证按固定的时
间间隔 、优先完成查询 ,使用单片机的一个内部定时 计数器作为查询时钟 ,并将此定时器中断优先级别 设置为最 高 , 工 作 在 方 式 2 ( 自 动 装 载 8 位 定 时 器) [3] 。电路如图 1 所示 ,AB 相信号直接接入用于 记录编码器状态 , 139 译码后信号用于方向判别 , 139 输出状态转换图如图 2 所示 ,在 ×4 模式下 ,沿
        + 箭头方向任何一次状态转化 ,计数器加 1 ;沿 - 方 向变化 ,则减 1 ;其它状态转换发生时 ,计数器保持
·9 ·

不变 。由于 139 的输出任意时刻只有一位输出为 低 ,与直接查询编码器 AB 输出信号相比 ,在状态转 换判断时 ,将字节判断转换成位判断 ,状态判断代码 由至少 3 条减少至 1 条 ,可以大大提高程序执行效 率。
OLD 字节保存原状态低两位有效 ,分别记录原 状态 AB 信号位 ,其它位为 0 。R0 暂存新读入状态 , 用于判向计数 。程序流程如图 3 所示 ,关键代码段 如下 :

……

图 3  程序流程

IN T_ TIM E0 : ……;保护现场 MOV R0 ,P0 ;查询端口 ; ;根据原状态跳转至相应判向代码段

MOV DPTR , # J MP Y

MOV A ,OLD ;

J M P @A + D P TR ;

J MP Y:

J M P COUN T Y0 ;

J M P COUN T Y1 ;

J M P COUN T Y2 ;

J M P COUN T Y3 ; COUN T Y0 : ;上一状态为 0 时状态判断 J NB R0. 3 , IN TOU T ;  状态未改变 J NB R0. 5 , ADD1 ;  新状态为 + 状态 J NB R0. 2 , SUBB1 ;  新状态为 - 状态 ·10 ·

J M P IN TOU T ;  错误状态 COU N T Y1 : ;上一状态为 1 时状态判断 …… COU N T Y2 : ;上一状态为 2 时状态判断 …… COU N T Y3 : ;上一状态为 3 时状态判断 ……

ADD1 : ……;计数值 + 1

J M P SAV ES TA TE

SUBB1 : ;计数值 - 1

SAV ES TA T E :

MOV OLDA ,R0. 0

MOV OLDB ,R0. 1

IN TOU T : ;恢复现场并中断返回 针对上述情况 ,有以下几个需要注意的问题 : a. 查询时间间隔的设置不小于最大中断程序执 行的时间 。 b. 程序上电复位时就应读取编码器信号初始化 状态保存至 OLD ,同时清零 OLD 的高 6 位 。以便 第一查询周期正常查询判向计数 。 c. 如果选择 ×1 方式 ,去掉 1 ,2 ,3 状态计数判 向代码段 ;选择 ×2 方式 ,去掉 1 ,3 状态的计数判向 代码段 ;并修改相应的状态跳转指令即可 。 d. 如果设定查询时间间隔为 t , 光电编码器的

线数为

R , 则光电编码器的最高转速

n

<

1 。以保 4Rt

证每一个状态至少采样 2 次 ,计数不丢失 。 e. 对于抖动脉冲 ,由于设置了查询时间间隔 ,因
此本身就具有一定的低通滤波作用 。在查询判向计

数中的状态判断进一步提高了计数的可靠性 。因此

对前面描述的高频抖动具有较强的去抖动能力 。

2. 2  中断方式 一般来说中断方式要比工作在查询方式下占用

的系统资源少得多 ,而且可靠性会有所提高 ,所以这 里提出一种中断计数方式 ,选取 2 4 译码器译码之

后的信号作为中断信号源 , ×1 方式选取 Y0 , ×2 方

式选取 Y0 和 Y2 , ×4 方式则译码 4 位输出信号都

做为中断信号源 。

×4 方式电路如图 4 所示 。

《机械与电子》2006 (12)

图 4  中断方式电路
光电编码器的输出信号 AB ,接入 74L S139 的 输入端 AB , Q0 , Q1 , Q2 , Q3 是 139 输出信号 Y0 , Y1 , Y2 , Y3 通过单稳电路的下降沿微分信号 , IN T1 = Q0 &Q1 &Q2 &Q3 作 为 触 发 单 片 机 中 断 信 号 。 中断信号输出脉宽可以通过调节 RC 参数设定 。
在中断方式下 ,中断请求的时序如图 5 所示 。

点是 :由于响应快 ,不可避免存在对于信号沿抖动误 响应 。抗抖动能力较查询方式差 。这可以通过软件 延时读取端口判向计数来提高可靠性 ,不管采取什 么方法判向计数 ,其计数误差可以保证在 ±1 以内 。
3  数据输出接口
上述编码器的接口方法限制于单片机的处理速 度 ,一般一个单片机只适合负责一个通道的数据采 集 ,因此在选择单片机的时候 ,可以根据具体的需要 选择具有特定输入输出接口小封装的单片机 ,以满 足数据采集的要求的同时使系统成本最小 。标准串 口 :通常的小封装 51 单片机都带有串口 ,多通道数 据采集时 ,可以挂接在 RS485 网络上 ,1~2 通道数 据采集可以应用 RS232 网络传输数据 。SPI 接口 : 选用 14 PIN 小封装的 P89L PC912 单片机 ,带有 SPI 接口 ,可以应用于 SPI 总线接口系统中 。IIC 接口 : 选用 P89L PC917 单片机则带有 IIC 接口 ,可以应用 于 IIC 总线系统数据采集中等 。用户可根据具体应 用选择扩展各种数据接口方式 。
4  结束语
原理验证实验采用 A T89S52 单片机 ,外部晶振 为 11. 059 2 M Hz 。采用查询方式 ,N Y2201 信号发 生器与 74L S74 及 74L S04 构成模拟光电编码器信 号发生器 。此 时系 统最 高 无 误 差 计 数 频 率 为 22 k Hz 左右 ,对于 500 线的光电编码器 ,最大无误差 计数转速约为 660 r/ min 。实验表明 ,在应用的低速 被动式机器人系统中 ,编码器的转速不超过 200 r/ min 的情况下 ,这种设计方法是完全可行的 。

图 5  中断时序
图 5 给出了 3 种不同计数方式下中断信号与编码器 信号及译码器信号的状态关系 ,单片机从 P0 口读 取状态信号与译码信号 ,判断转向并做计数 ,判向计 数原理同上一节查询方式 ,其处理代码与查询方式 类似 。设中断程序执行时间为 t , 则在中断方式下 , 系统最高响应转速 n 应满足如下条件 :

n

<

1 4R

t

与查询方式相比较 ,中断方式对于编码器状态

的变化响应及时 ,此外单片机大部分时间处于空闲

状态 ,可以及时的完成数据输出 ,实时性更高[3] 。缺

《机械与电子》2006 (12)

参考文献 :
[ 1 ]  Pallas Areny Ramo n ,et al. 传感器和信号调节. 2 版 [ M ] . 张  伦 ,译. 北京 :清华大学出版社 ,2003.
[ 2 ]  陈兴文 ,刘  燕. 基于 FP GA 技术消除光电编码器抖 动干扰的设计[J ] . 组合机床与自动化加工技术 ,2005 , (2) :33 - 34.
[ 3 ]  涂时亮. 单片微机 MCS 51 用户手册 [ M ]. 上海 :复旦 大学出版社 ,1992.
作者简介 :许  理  (1982 - ) ,男 ,湖南岳阳人 ,华中科技大学 机电系硕士研究生 ,研究方向为机械电子工程 ;赵英俊  (1957 - ) , 男 ,湖北武汉人 ,华中科技大学机电系教授 ,研究方向为机械电子工 程。
·11 ·


相关文档

增量式光电编码器与单片机的接口设计
自制增量式编码器及其与单片机的接口设计
增量式光电脉冲编码器的单片机计数器
基于51单片机的光电编码器接口装置设计
增量式光电编码器计数与接口电路的设计
增量式光电编码器计数与接口电路的毕业设计
增量式光电编码器计数与接口电路设计
基于单片机控制的光电旋转编码器测速仪优秀毕业设计
高可靠性增量式光电编码器接口电路设计
格雷码Gray编码器与单片机的接口设计
电脑版