基于FPGA技术的抑制增量式光电编码器输出干扰时序脉冲的解决方案浅析

可编程逻辑

1366人已加入

描述

光电编码器是一种集光、机、电为一体的转速、位移传感器,具有精度高、响应快、性能稳定可靠等显著的优点。在数控车床中常用于检测主轴系统的转速和角位移,也经常在伺服系统中用于检测伺服电机的转速。但是,光电编码器在其安装基座的机械振动激励下,会不可避免地导致其主码盘的振动,从而引起输出波形的畸变,最终引起计数错误,使伺服驱动系统不能正常运行,影响数控机床的加工精度和定位精度。为此,可以采用数字滤波的方法来减少计数误差,但存在以下缺点:

(1) 数字滤波要占用CPU 时间,而且随着所用光电编码器数量的增加而增加,故不能适应较大系统的要求;

(2) 数控车床进行螺纹插补时,需要准确读取光电编码器的计数值,以获取主轴位置信息,但此时CPU 没有时间进行数字滤波。

基于以上原因,我们对光电编码器常用的判向和计数电路进行了改进,较好地解决了由于振动引起的计数误差,提出了基于FPGA 技术解决光电编码器误计数的问题,并给出其实现方法。

1 、消除抖动计数原理

光电编码器在测量过程中,通常有A、B、Z 三相输出。每转一周,A 相和B 相输出固定数目的脉冲,Z 相输出一个脉冲。当编码器正向旋转的时候,A 相比B 相超前90°;当编码器反向旋转的时候,A 相比B 落后90°。在正常情况下,可以根据A、B 相差来判断出光电编码器的运动方向,同时完成正反转的计数。

由于增量式光电码盘无记忆能力,并且其码盘精度很高,对光电编码器轴系引起的抖动干扰非常敏感,若其输出脉冲的计量方法缺乏有效的抗抖动干扰能力,则检测结果与实值之间将会存在很大误差,且误差值随机变化,从而使系统的检测精度大大低于其应有的固有分辨力。

通过分析可知,影响计量精度的抖动干扰是由于光电码盘转动时由于转轴转动不稳引起的,主要表现是透光窗边沿附近发生的小幅度晃动,引起干扰脉冲。图1a 给出了光码器正转时B 相脉冲信号在下降沿和上升沿发生抖动的波形。图1b 给出了A 相脉冲信号在上升沿和下降沿发生抖动输出的时序波形。由图1 可知,抖动干扰信号两个跳变沿时刻所对应的另一相脉冲信号的电平值总是一致的,因此,可以利用D 触发器将两跳变时刻所对应的另一相脉冲的逻辑电平寄存起来,并在计数时刻进行比较。若一致则为干扰信号,计数器停止计数;若不一致则为正常工作信号,计数器进行正常计数,从而消除抖动引起的重复计数现象,实现高精度计量。

FPGA

2 、基于FPGA 技术消除光电编码器输出脉冲扰动

根据上述分析,本文采用FPGA 抑制光电编码器输出脉冲,采用VHDL 语言完成。程序中aclk 代表A 相脉冲,bclk 代表B相脉冲,dclk 代表计数脉冲,dund 代表光电编码器转向输出脉冲。图2 为经过FPGA 处理抖动计数后输出的波形

FPGA

FPGA

3 、结论

本文提出了抑制增量式光电编码器输出干扰时序脉冲的一种解决方案,并同时给出了基于FPGA 的实现方法。经过现场的调试结果证明,该方案可以消除工业现场中出现的干扰和抖动现象,能够实现准确的脉冲计数。而且FPGA 实现方法十分灵活可靠,可以根据需要任意的改变参数就可以达到目的,维护非常方便。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分