旋转编码器的抗抖动计数电路
发布时间:2008/5/27 0:00:00 访问次数:678
     田国璋
    
     来源:《电子技术应用》
     摘要:旋转编码器应用于角度定位或测量时,由于旋转轴的晃动可能引起编码器输出波形的,从而引发误计数现象。介绍了一个抗抖动计数电路,滤除了旋转编码器因抖动而造成的误计数。
    
    
     关键词:旋转编码器
     抗抖动电路 数字电路
     旋转编码器应用于角度定位或测量时,通常有a、b、z三相输出。旋转编码器的输出波形见图1。a相和b相输出占空比为50%的方波。编码器每转一周,a相和b相输出固定数目的脉冲(如100个脉冲)。当编码器正向旋转时,a相比b相超前四分之一个周期;当编码器反向旋转时,b相比a相超前四分之一个周期。a相和b相输出方波的相位差为90°。编码器每转一周,z相输出一个脉冲。由于编码器每转一周,a相和b相输出固定数目的脉冲,则a相或b相每输出一个脉冲,表示编码器旋转了一个固定的角度。当z相输出一个脉冲时,表示编码器旋转了一周。因此旋转编码器可以测量角位移及位移方向。
     问题出在伺服系统停止工作时,若无锁定,则旋转轴受外力(如风力影响)可能自由晃动,因而引起编码器输出波形抖动,如图2所示,从而引起误计数。在这种情况下,就不能对波形进行正确计数。虽然可以通过软件设置标志状态,用记录历史状态的变化来滤除误计数,但是程序耗费颇大。因此,本人设计了一个抗抖动计数电路。它能够自动消除抖动造成的误计数。
     1 抗抖动计数电路原理图
     图3是抗抖动计数电路原理图。此电路滤除了旋转编码器输出波形的抖动现象。该电路分为四个部分:译码电路u4a;互锁电路u5a、u5b;正旋计数链j1、j3、j5和反旋计数链j2、j4、j6。u4a为二四译码器,u5a、u5b为与门,j1~j6为d触发器。正旋计数链负责对编码器正向旋转的计数,反旋计数链负责对编码器反向旋转的计数。
     2 抗抖动计数电路工作分析
     图4为二四译码器输出的波形。译码器产生d、a、b、c四种不同的状态。在图3中当b=0、a=0时,译码器q0输出为d状态,d状态为高电平。当b=0、a=1时,译码器q1输入为a状态,a状态为高电平。当b=1、a=1时,译码器q2输出为b状态,b状态为高电平。b状态不影响计数和方向确定,在图3电路中没有使用。当b=1、a=0时,译码器q3输出为c状态,c状态为高电平。
     当旋转编码器正向旋转时,译码器输出的状态顺序为d、a、b、c、d、a、b、c……。如图4所示。当b=0、a=0时,进入d状态,与门u5a的pin2=a=0(pin是管脚的意思),于是u5a的输出pin3=0。d触发器j1的r=d=1、s=0,因此j1被清0.与门u5b的pin5=c=0,于是u5b的输出pin4=0。d触发器j2的r=d=1、s=0,因此j2也被清0。这时j1、j2的q端都为1,与门u5的pin1=pin6=1,u5a和u5b都处于等待开门状态。当进入状态a时,q1=a=1,u5a的pin2=a=1。由于c=0,所以j2的q端仍为1,u5a的pin1=1,u5a的输出pin3=1.j1的r=d=0、s=1,因此j1被置1。j1的q=1,q=0。j1的q=1,正旋标志送到了j3的d端。时j1的q端关闭了u5b。在下一个d出现之前,所有的c脉冲都不会改变j2的状态。这就说,j1、j3、j5组成的正旋计数链被打开,j2、j4、j6组成的反旋计数链被阻断。u5a、u5b、j1、j2完成互锁的功能。在进入状态a时,j3的r=a=1、s=0,j3被清0,j5的r=a=1、s=0,j5被清0.在进入状态c前,j3的r=a=0、s=0、d=1,j3处于待触发状态。j3的clk=c,当c脉冲上升沿过后,d=1被打入j3的q端,正旋标志送到了j5的d端。在进入状态d前,j5的r=a=0、s=0,j5处于待触发状态。j5的clk=d,当d脉冲上升沿过后,d=1被打入j5的q端,正旋标志送到了正旋计数输出端。正旋计数输出端由低电平变为高电平。到此为止,完成了一次正旋计数。当由状态d进入状态a时,j5的r=a=1、s=0,j5被清0,正旋计数输出端由高电平变为低电平。由此可知,当旋转编码器正向旋转时,对应a相
     b相的每一个完整周期,正旋计数输出端都会产生相应的一个脉冲。
     a的出现抢到了正旋计数权。只有在d
     田国璋
    
     来源:《电子技术应用》
     摘要:旋转编码器应用于角度定位或测量时,由于旋转轴的晃动可能引起编码器输出波形的,从而引发误计数现象。介绍了一个抗抖动计数电路,滤除了旋转编码器因抖动而造成的误计数。
    
    
     关键词:旋转编码器
     抗抖动电路 数字电路
     旋转编码器应用于角度定位或测量时,通常有a、b、z三相输出。旋转编码器的输出波形见图1。a相和b相输出占空比为50%的方波。编码器每转一周,a相和b相输出固定数目的脉冲(如100个脉冲)。当编码器正向旋转时,a相比b相超前四分之一个周期;当编码器反向旋转时,b相比a相超前四分之一个周期。a相和b相输出方波的相位差为90°。编码器每转一周,z相输出一个脉冲。由于编码器每转一周,a相和b相输出固定数目的脉冲,则a相或b相每输出一个脉冲,表示编码器旋转了一个固定的角度。当z相输出一个脉冲时,表示编码器旋转了一周。因此旋转编码器可以测量角位移及位移方向。
     问题出在伺服系统停止工作时,若无锁定,则旋转轴受外力(如风力影响)可能自由晃动,因而引起编码器输出波形抖动,如图2所示,从而引起误计数。在这种情况下,就不能对波形进行正确计数。虽然可以通过软件设置标志状态,用记录历史状态的变化来滤除误计数,但是程序耗费颇大。因此,本人设计了一个抗抖动计数电路。它能够自动消除抖动造成的误计数。
     1 抗抖动计数电路原理图
     图3是抗抖动计数电路原理图。此电路滤除了旋转编码器输出波形的抖动现象。该电路分为四个部分:译码电路u4a;互锁电路u5a、u5b;正旋计数链j1、j3、j5和反旋计数链j2、j4、j6。u4a为二四译码器,u5a、u5b为与门,j1~j6为d触发器。正旋计数链负责对编码器正向旋转的计数,反旋计数链负责对编码器反向旋转的计数。
     2 抗抖动计数电路工作分析
     图4为二四译码器输出的波形。译码器产生d、a、b、c四种不同的状态。在图3中当b=0、a=0时,译码器q0输出为d状态,d状态为高电平。当b=0、a=1时,译码器q1输入为a状态,a状态为高电平。当b=1、a=1时,译码器q2输出为b状态,b状态为高电平。b状态不影响计数和方向确定,在图3电路中没有使用。当b=1、a=0时,译码器q3输出为c状态,c状态为高电平。
     当旋转编码器正向旋转时,译码器输出的状态顺序为d、a、b、c、d、a、b、c……。如图4所示。当b=0、a=0时,进入d状态,与门u5a的pin2=a=0(pin是管脚的意思),于是u5a的输出pin3=0。d触发器j1的r=d=1、s=0,因此j1被清0.与门u5b的pin5=c=0,于是u5b的输出pin4=0。d触发器j2的r=d=1、s=0,因此j2也被清0。这时j1、j2的q端都为1,与门u5的pin1=pin6=1,u5a和u5b都处于等待开门状态。当进入状态a时,q1=a=1,u5a的pin2=a=1。由于c=0,所以j2的q端仍为1,u5a的pin1=1,u5a的输出pin3=1.j1的r=d=0、s=1,因此j1被置1。j1的q=1,q=0。j1的q=1,正旋标志送到了j3的d端。时j1的q端关闭了u5b。在下一个d出现之前,所有的c脉冲都不会改变j2的状态。这就说,j1、j3、j5组成的正旋计数链被打开,j2、j4、j6组成的反旋计数链被阻断。u5a、u5b、j1、j2完成互锁的功能。在进入状态a时,j3的r=a=1、s=0,j3被清0,j5的r=a=1、s=0,j5被清0.在进入状态c前,j3的r=a=0、s=0、d=1,j3处于待触发状态。j3的clk=c,当c脉冲上升沿过后,d=1被打入j3的q端,正旋标志送到了j5的d端。在进入状态d前,j5的r=a=0、s=0,j5处于待触发状态。j5的clk=d,当d脉冲上升沿过后,d=1被打入j5的q端,正旋标志送到了正旋计数输出端。正旋计数输出端由低电平变为高电平。到此为止,完成了一次正旋计数。当由状态d进入状态a时,j5的r=a=1、s=0,j5被清0,正旋计数输出端由高电平变为低电平。由此可知,当旋转编码器正向旋转时,对应a相
     b相的每一个完整周期,正旋计数输出端都会产生相应的一个脉冲。
     a的出现抢到了正旋计数权。只有在d