《基于FPGA技术的抑制增量式光电编码器输出干扰时序脉冲的解决方案浅析.docx》由会员分享,可在线阅读,更多相关《基于FPGA技术的抑制增量式光电编码器输出干扰时序脉冲的解决方案浅析.docx(3页珍藏版)》请在第一文库网上搜索。
1、基于FPGA技术的抑制增量式光电编码器输出干扰时序脉冲的解决方案浅析光电编码器是一种集光、机、电为一体的转速、位移传感器,具有精度高、响应快、性能稳定可靠等显著的优点。在数控车床中常用于检测主轴系统的转速和角位移,也经常在伺服系统中用于检测伺服电机的转速。但是,光电编码器在其安装基座的机械振动激励下,会不可避免地导致其主码盘的振动,从而引起输出波形的畸变,最终引起计数错误,使伺服驱动系统不能正常运行,影响数控机床的加工精度和定位精度。为此,可以采用数字滤波的方法来减少计数误差,但存在以下缺点:(1)数字滤波要占用缈时间,而且随着所用光电编码器数量的增加而增加,故不能适应较大系统的要求;(2)数
2、控车床进行螺纹插补时,需要准确读取光电编码器的计数值,以获取主轴位置信息,但此时CPU没有时间进行数字滤波。基于以上原因,我们对光电编码器常用的判向和计数电路进行了改进,较好地解决了由于振动引起的计数误差,提出了基于皿技术解决光电编码器误计数的问题,并给出其实现方法。1、消除抖动计数原理光电编码器在测量过程中,通常有A、B、Z三相输出。每转一周,A相和B相输出固定数目的脉冲,Z相输出一个脉冲。当编码器正向旋转的时候,A相比B相超前90;当编码器反向旋转的时候,A相比B落后90。在正常情况下,可以根据A、B相差来判断出光电编码器的运动方向,同时完成正反转的计数。由于增量式光电码盘无记忆能力,并且
3、其码盘精度很高,对光电编码器轴系引起的抖动干扰非常敏感,若其输出脉冲的计量方法缺乏有效的抗抖动干扰能力,则检测结果与实值之间将会存在很大误差,且误差值随机变化,从而使系统的检测精度大大低于其应有的固有分辨力。通过分析可知,影响计量精度的抖动干扰是由于光电码盘转动时由于转轴转动不稳引起的,主要表现是透光窗边沿附近发生的小幅度晃动,引起干扰脉冲。图Ia给出了光码器正转时B相脉冲信号在下降沿和上升沿发生抖动的波形。图Ib给出了A相脉冲信号在上升沿和下降沿发生抖动输出的时序波形。由图1可知,抖动干扰信号两个跳变沿时刻所对应的另一相脉冲信号的电平值总是一致的,因此,可以利用D触发器将两跳变时刻所对应的另
4、一相脉冲的逻辑电平寄存起来,并在计数时刻进行比较。若一致则为干扰信号,计数器停止计数;若不一致则为正常工作信号,计数器进行正常计数,从而消除抖动引起的重复计数现象,实现高精度计量。f-i;!r71r7r1hnnn_H_HnRri_4J9iti1III:?:“I(0)r-1ru_1inj1J-IIII-4;T1J;;r0QiAO0(W图1光电编码器抖动【为狡形分析2、基于FPGA技术消除光电编码器输出脉冲扰动根据上述分析,本文采用FPGA抑制光电编码器输出脉冲,采用VHD1语言完成。程序中些Ik代表A相脉冲,bc1k代表B相脉冲,dc1k代表计数脉冲,dund代表光电编码器转向输出脉冲。图2为经
5、过FPGA处理抖动计数后输出的波形1BRARYieee:USEieeeMd-Jogic_1164.a11;ieee.Std_IOgC_uaagneda11;ENTITYqdouISPORT(ac1k:Nstd_Ioac;bc1k:instd-1ogic:dc1k:outstd-1ogic:dwid:outstd-1ogic);END;.ARCH11tC1UREbeha,ofqdouissigna1ntb.aq1taq2.aq3:Srd_1ogic:beginnotb=notbc1k:dund=aq2;dc1k=bc1kand(aq1ndiaq2);UOPQceSS(X1Dfb)beginifnotbeetandnotb=1thenaq1=ac1k;endif:endprocess:U1:pxoce$(bc1k)beginifbc1kevertandbc1k=Ithenaq2,0rw;OIF11一图2基FFPGX技术消除抖动后输/波形3、结论本文提出了抑制增量式光电编码器输出干扰时序脉冲的一种解决方案,并同时给出了基于FPGA的实现方法。经过现场的调试结果证明,该方案可以消除工业现场中出现的干扰和抖动现象,能够实现准确的脉冲计数。而且FPGA实现方法十分灵活可靠,可以根据需要任意的改变参数就可以达到目的,维护非常方便。