光电编码器的单片机减振电路设计
研究与设计
国外电子测量技术 2005 年第 8 期(总第 126 期)
光电编码器的单片机减振电路设计
张团善1 陈朝奎2
(11 西安工程科技学院电子信息学院 陕西 710048)
(21 浙江绍兴亚太高科特宽幅印花厂 浙江 312000)
摘 要 : 分析了光电编码器的振动机理及影响 ,设计了用单片机进行控制的减振电路。并用 FPGA
模拟单片机减振电路 ,给出其仿真波形 ,从而验证了单片机减振电路的实用性。
关键词 : 光电编码器 减振电路 单片机 FPGA
Design of Shock Absorption Circuit for Optical Encoder
Using Microprocessor
Zhang Tuanshan1 Chen Chaokui 2
(1. Telecommunication , College, XA U ES T , Xi`an 710048 , China)
(2. Zhejiang shaoxing yatai hi gh2tech special breadth printing mill S haoxing 312000 , China)
Abstract : The paper analyzes the shock mechanism and affect of optical encoder. The shock absorp2
tion circuit for optical encoder using microprocessor is designed. The simulation circuit for micro2
processor and simulation wave using FPGA is also given. The reliability and practicability of micro2
processor shock absorption circuit are validated accordingly.
Keywords : optical encoder ,shock absorption circuit ,microprocessor ,FPGA.
0 引 言
由于光电编码器具有分辨率高 ,响应速度快 ,体
积小 ,重量轻 ,耐恶劣环境等特点 ,故常被用作高精
度位置检测传感器。它的精度或分辨率主要决定于
每转输出的脉冲数(对增量式编码器而言) 。根据控
制需要 ,还可以利用倍频技术来提高位置检测精度。
光电编码器有较好的抗电磁干扰能力 ,但其抗振动
能力有限。由于振动的存在 ,破坏了原系统的稳定 ,
使得在输出的信号中有额外的高频振动成分 ,经过
计数器累加后 ,其精度也就由于累加效应而变得越
来越差 ,甚至使系统失稳。目前有关光电编码器减
振设计有数字滤波法、硬件延时法、异步电路状态
法[1 ] 等。使用单片机参与的减振电路设计 ,既巧妙
地利用了单片机执行程序的延时进行滤波 ,又可对
单个脉冲进行处理控制 ,增加了系统的实时性。并
在用变频器进行位置速度控制的系统中得到验证 :
没有累计误差 ,低速硬度好 ,克服了变频器低频低力
矩的缺点。下面所描述的电路就是此系统的编码器
接口部分 ,单片机根据编码器脉冲控制变频器实现
往返位置 ,速度控制。如平网印花机单元控制系统
等。
1 光电编码器的振动机理
光电编码器的典型输出为两相差为 90Ο的方波
信号(A 和 B) ,A ,B 两相信号的脉冲数标志编码器
所转过的角度 ,A ,B 之间的相位关系标志编码器的
转向 ,即当 A 相超前 B 相 90Ο时 ,编码器正转 ,反之 ,
编码器反转。
影响光电编码器计数精度的一个重要原因在于
构成光电编码器的主码盘被激起而附加了瞬间的高
频振动 ,振动的响应频率与主码盘本身及其激振力
的频率有关。振动导致编码器的主码盘和鉴相盘的
光缝之间不再保持原有严格的相差 1/ 4 节距关系 ,
因此 ,A ,B 两相输出信号在发生瞬间高频振动的时
间不再保持 90Ο 的相差 ,光电编码器的输出也不再
是原有规范的方波信号 ,在瞬间高频振动的时刻 ,原
一个方波周期内可能包含有几个高频方波脉冲 (如
图 1 所示) ,影响后续的计数结果。外界的冲击产生
的不连续机械振动是导致光电编码器的主码盘产生
93
研究与设计
www. cfemt. com FEM T
高频振动的主要原因 ,激起高频振动次数越多 ,定位
精度由于累加效应而越差 ,控制系统也将失稳 ,在位
置控制系统中表现为位置漂移。有关振动引起高频
干扰的数学模型可参考有关文献[2 ] 。
图 1 有无高频振动时 A ,B 输出信号比较
2 单片机减振电路设计
图 2 为编码器信号到单片机的接口电路 ,图中
只画出用到的 89S52 单片机的管脚。
图 2 编码器抗振接口电路
211 工作过程分析
当 A 超前 B 时 ,A 经过反相器后变成 B 超前
A ,当编码器旋转有脉冲经过上面的 D 触发器后 ,
P1. 6 变成高电平 ,触发器的 8 脚变为低电平 ,反之 ,
P1. 6 为低电平 ,触发器的 8 脚为高电平 ,因此单片
机可根据 P1. 6 判断编码器正反转。对于下面的触
发器 ,因为其时钟与上面的触发器时钟相位相差
180Ο ,则其输出逻辑刚好相反 ,因此当单片机的 P1.
7 保持高电平时 ,中断信号IN T0保持低电平。要想
发生计数中断 ,单片机应初始化 P1. 7 ,使其产生一
个负沿脉冲 ,这时由于 D 触发器被清零 ,其第 6 ,8
脚为高电平 ,IN T0变为高电平。所以一旦INT0发生
负跳 ,单片机便进入中断程序 ,同时把 P1. 7 置为低电
平 ,INT0又变成高电平 ,当单片机处理完中断程序
后 ,置 P1. 7 为高电平 ,允许再次中断。由于 D 触发器
是上升沿触发 ,因此中断发生在 A 相的下降沿。
当 A 滞后 B 时 ,当编码器旋转有脉冲来时 ,由
上面分析可知 ,P1. 6 为低电平 ,触发器的 8 脚为高
电平 ,6 脚为低电平 , IN T0为低发生中断。单片机
可根据 P1. 6 的逻辑完成规定的控制 ,对中断的处
理同上。
212 抗振动分析
由上面分析可知 ,中断发生在脉冲沿处 ,在中断
处理过程中 ,即使有编码器脉冲再次出现 ,单片机也
不会发生中断计数。这对编码器的分辨率有一定的
限制 ,但可通过提高单片机的速度来满足要求。
当振动频率小于单片机的处理频率时 ,也不会
发生误计数的情况。例如 ,当在 A 相的下降沿处发
生小于单片机处理频率的振动时 ,单片机可能发生
几次中断 ,但如在一次振动脉冲的上升沿正计数时
(P1. 6 为高电平) ,则在其下降沿负计数 ( P1. 6 为低
电平) ,不会发生误差计数。读者可自行分析 ,或用
下面提供 FPGA 电路进行仿真验证。
另外 ,编码器在实际使用过程中可能还存在累
计误差的问题 ,特别是当编码器用作往返运动控制
系统位置检测时 ,会发生位置漂移计数而与实际位
置不符合。究其原因是编码器正反转时 ,计数发生
的时刻不一样。在上面的电路中 ,每次计数中断都
发生在固定的一相固定的沿 ,所以不会发生累计误
差现象。例如当正转时中断发生在 A 相的下降沿 ,
反转时中断虽然发生在 A 相的上升沿 ,但对同一相
脉冲来看 ,反转 A 相的上升沿实际上是正转 A 相的
下降沿。所以在设计编码器计数电路中要注意这个
原则。
3 用 FPGA 实现单片机减振电路
随着大规模现场可编程逻辑阵列 ( FPGA) 的发
展 ,一些单片机能完成的系统 ,用 FPGA 来实现 ,性
能大大提高。下面用 FPGA 设计的编码器减振电
路(见图 3) 就是模仿上面单片机减振电路设计 ,不
仅功能完全一样 ,而且对编码器的分辨率没有要求 ,
系统性能提高很多。通过用 FPGA 来实现单片机
系统功能不仅验证了单片机电路功能 ,而且能直接
移植到其它类似系统中 ,为系统设计提供了另一种
思路。
图 3 中 ,ea ,eb 是编码器 A ,B 两相输入 ,clk 是
04
研究与设计
国外电子测量技术 2005 年第 8 期(总第 126 期)
图 3 用 FPGA 设计编码器抗振电路
系统时钟 ,/ ldn 是系统使能端 ,高电平时 ,系统工
作。mass 是时钟分离电路 ,其目的是产生有一定相
位差的时钟送给脉冲分离电路模块 masa ,其仿真波
形如图 4。图中 pluse 标志相当单片机电路中的IN T0
端 ,在这里观察到的是脉冲。eppluse 是正转脉冲标
志 ,enpluse 是反转脉冲标志 ,pout 是经过同步分离的
正转脉冲 ,dro 是经过同步分离的反转脉冲。
当 pout 或 dro 有负脉冲时 ,在系统采样时钟的
作用下 ,clr 输出低电平 ,复位 D 触发器 ,再经过一
个系统时钟 ,clr 输出为高 ,允许编码器脉冲工作 ,这
个过程非常短 ,系统时钟越高 ,处理时间越短。
图 4 同步分离 mass 模块仿真波形
图 5 是 FPGA 减振电路仿真波形 ,图中的 dir
接在 7474 的 1Q 端表明编码器的仿真波形。
由仿真波形可以看出 ,小于采样周期 clk 的振
动干扰(图中 96. 8us 附近) 对系统没有影响 ,大于采
样周期 clk 的振动干扰 (图中 97. 3us 附近) 对正向
pout 和反向 dro 都产生一个脉冲 ,不影响最终计数
结果。
4 结论
利用单片机设计的编码器抗振电路可靠 ,可控 ,
易实现对单个的脉冲控制 ,如在位置控制系统中 ,可
图 5 FPGA 减振电路仿真波形
选取脉冲周期作为采样周期 ,且采样周期随着速度
的变化而变化 ,刚好符合 M/ T 测速法系统要求 ,而
不用定时中断作为采样周期 ,大大减轻了单片机的
负担。文中最后用 FPGA 设计的电路对系统做了
进一步的验证。
参考文献
[ 1 ] 涂一新. 光电编码器的减振电路设计[J ]. 机械加工与
自动化 , 2001 ,5
[ 2 ] 王 玲 ,樊可清. 编码器测量角速度信号的抗混滤波方
法[J ]. 测控技术 ,2003 ,1
[ 3 ] 边计年 ,薛宏熙 等. 用 V HDL 设计电子线路[ M ]. 北
京 :清华大学出版社 ,2001
[ 4 ] 刘绍汉 ,林灶生 ,刘新民 等. V HDL 芯片设计[ M ]. 北
京 :清华大学出版社 ,2001
作者简介 :
张团善 (1971 - ) ,男 ,硕士 ,讲师 ,西安工程科技学院
电子信息学院。研究方向 :计算机控制与图象工程。
14
光电编码器的单片机减振电路设计.pdf