专利名称:增量型旋转编码器精确计数的算法及其实现装置的制作方法
技术领域:
本发明涉及一种增量型旋转编码器的去毛刺算法的改进及其实现装置。
背景技术:
使用旋转编码器是对其输出脉冲进行计数,因此需要去除毛刺的影响,目前大多数去毛 刺算法都是采用软件或硬件滤波的方式。但是使用滤波方式时转动的频率会受到限制,转速 太快则产生的有效脉冲信号会和毛刺脉冲一起被滤除,导致转动不被响应。
发明内容
为了克服上述技术的不足,本发明的目的在于提供一种增量型旋转编码器的去毛刺算法 的改进及其实现装置。
本发明的技术方案是
增量型旋转编码器精确计数的算法,在编码器的相位超前输出端的下降沿和上升沿都判 断一次相位滞后输出端的输出电平,只有当超前输出端一次波形的下降沿时滞后输出端为高 电平而上升沿时滞后输出端为低电平,这样的超前端波形才为有效波形,其余为毛刺波形, 据此来区分有效旋转波形和毛刺波形,进而可以进行准确有效的编码。
在判断有效波形和毛刺波形的过程中有如下步骤,
1) 在编码器的相位超前输出端的下降沿到达时判断一下相位滞后输出端的状态,若滞 后输出端为低电平则视此超前输出段的下降沿为毛刺波形,否则进入2);
2) 若滞后输出端为高电平,则等待这次下降沿波形后的第一个上升沿再判断相位滞后 段的状态,若滞后输出端仍为高电平,那么这次下降沿波形也是毛刺波形,否则进入3);
3) 若滞后输出端的状态是低电平,则此下降沿波形为有效波形,才进行有效波形的计
数;
在此过程中,滞后输出端的毛刺波形不必被考虑。
实现上述增量型旋转编码器精确计数的算法的装置,包括有一逻辑电路,由此逻辑电路 来实现去毛刺并且有效分离旋转编码器的正反转。
进一步,所述逻辑电路包括有两个输入端和两个输出端,两个输入端用于与旋转编码器 的两个输出端连接,两个输出端分别是正反转两个方向的有效脉冲。进一步,该逻辑电路包括两个双边沿触发器和将两个脉冲分离的后续电路,双边沿触发 器的输入端分别连接旋转编码器的输出端,双边沿触发器后面输出的是去了毛刺的脉冲波形 ,后续电路用于分离编码器的正旋转和逆旋转。
进一步,每个双边沿触发器是由两个在时钟输入端的上升沿和下降沿到达时都将输入端 的状态送到输出端的D触发器构成。
进一步,所述的后续电路包括有一个D触发器和一个与运算电路,连接在两个双边沿触 发器的输出端上,该D触发器和与运算电路的作用是对正反转两个方向的脉冲进行分离输出
本发明的有益效果是采用本发明所述的算法及其实现装置,既能去除毛刺,实现精确 计数,又能响应快速转动。
下面结合附图和实施例对本发明进一步说明。 图l是机械式旋转编码器的组成部分; 图2为编码器内部原理示意图3为实际使用中编码器输出的带有毛刺的波形,图3(a)、 (c)为转动编码器时产生毛 刺时的波形,图3(b)、 (d)为晃动编码器的转动手柄时产生毛刺的波形;
图4为算法的软件实现流程,其中相位超前输出端下降沿引起的外部中断l,相位滞后 端下降沿引起外部中断2;
图5为一个双边沿触发器的结构示意图6为算法的硬件实现电路图7为编码器的输入输出关系。
具体实施例方式
本发明所应用的旋转编码器,如图1所示,包括固定片(a)和旋转片(b),参照图2, 编码器不转动时,固定片和旋转片处于如图所示的常态,旋转片的三个接触脚一个与固定片 的C部分接触,另外两个分别位于固定片的A、 B的不导电区域。使用旋转编码器时将C端接地 ,A、 B端接上拉电阻,则常态时编码器两个输出端A、 B均为高电平,转动过程中,原本处于 A、 B不导电区域的接触脚会与导电区域相接触,从而使A、 B的输出出现低电平状态。
理论基础
分析图3的输出波形中毛刺与有效旋转波形的区别,有效旋转波形的特点为在相位超 前输出端的下降沿到达时,相位滞后端为高电平;在相位超前端的上升沿到达时,相位滞后段是低电平。
转动时产生的毛刺的波形特点为在相位超前端的有效旋转波形的下降沿附近的毛刺发 生时,相位滞后端一直处于高电平状态;在相位超前端的有效旋转波形的上升沿附近的毛刺 发生时,相位滞后端一直处于低电平状态。
晃动编码器手柄时产生的毛刺的波形特点为只有一个输出端有电平的升降,此时可以 将有电平升降的输出端看成相位超前输出端,则超前端的毛刺发生时,滞后端一直处于高电 平状态。
本发明采用的算法是在相位超前输出端的下降沿和上升沿都判断一次相位滞后端的输出 状态,判断条件为
在相位超前端的下降沿到达时,滞后端输出为高电平。 在相位超前端的上升沿到达时,滞后端输出为低电平。 只有两个条件都满足时才认为是有效旋转波形。 实现流程
如图4所示为算法的实现流程,其中相位超前输出端的下降沿引发事件中断l,相位滞后 输出端引发事件中断2。具体实现流程如下
相位超前端的下降沿到达引发事件中断l的发生;
事件中断1首先关闭事件中断2,以避免在此过程中滞后端的下降沿触发中断2对判断过 程的干扰,但是在离开事件中断1后必须要重新打开中断2;
关闭中断2后,开始判断滞后端的电平高低,若此时滞后端为低电平,则这个下降沿脉 冲为毛刺脉冲,退出中断l,打开中断2,继续判断下一个超前输出端的下降沿;
若此时滞后端为高电平,则等待此脉冲的上升沿到达时再判断滞后端的状态;
此脉冲的上升沿到达时,若滞后端的电平仍是高电平,则可以判断此脉冲为毛刺脉冲, 退出中断l,打开中断2,继续判断下一个超前输出端的下降沿;
若此时的滞后端为低电平,则这次脉冲为有效脉冲,有效的旋转次数加l。在此过程中 的正反转的判别是根据两个输出端的相位先后;
判断好有效旋转后,打开中断2,离开中断l。
硬件实现
双边沿触发器的构成如图5所示,图5中,A、 B为编码器的两路输出,A0为以A为输 入端,B为时钟脉冲的双边沿脉冲的输出端。由图5我们可以看出, 一个双边沿触发器由两 个D触发器构成,其作用就是在时钟输入端的上升沿和下降沿到达时都将输入端的状态送到
6输出端,即AO的状态依赖于B的上升沿和下降沿时A的状态。这样,就把毛刺去掉,A0的输出 即为去掉毛刺后的理想脉冲,且其有效脉冲数不变,即编码器的有效旋转次数不变。
图6为算法的硬件实现电路,由逻辑图我们可以知道,硬件电路的输入端A、 B分别为 编码器的两路输出,最后的输出分别为逆时针脉冲和顺时针脉冲,我们可以在最后的两个输 出端直接测定顺时针和逆时针的脉冲数,进而判断编码器的顺时针和逆时针的旋转数。图6 的电路图中,我们可以看到在两个双边沿触发器的输出端AO和BO中,我们并没有区分相位超 前端和相位滞后端,因此两路双边沿触发器的输出脉冲里面既有逆时针旋转的脉冲也有顺时 针旋转的脉冲,后续电路是为了将两路脉冲分离开。
在后续电路中,加入一个D触发器和一个AOl IB0电路,其作用就是分离编码器的正旋转 和逆旋转。若编码器输出为图7中A、 B所示,则两个双边沿触发器的输出电平为图7中的 A0、 B0所示。由图可以看出,通过双边沿触发器能够将毛刺去掉,使输出的波形规范化。然 后再计算AOllBO,如图7中的AOllBO所示。再以BO的逆为CLK端,AO为输入端通过一个D触 发器,图7中第六条线即为D触发器的输出线,然后将此输出线和此输出线取反后的线分别 与AllB取或,最后即得正反转的脉冲图分别为图7的最后两条曲线所示。
当然,本发明创造并不局限于上述
具体实施方式
,其它等同方案也应当在本发明的保护 范围之内。
权利要求
1.增量型旋转编码器精确计数的算法,其特征在于在编码器的相位超前输出端的下降沿和上升沿都判断一次相位滞后输出端的输出电平,只有当超前输出端一次波形的下降沿时滞后输出端为高电平而上升沿时滞后输出端为低电平,这样的超前端波形才为有效波形,其余为毛刺波形,据此来区分有效旋转波形和毛刺波形,进而可以进行准确有效的编码。
2.根据权利要求l所述的增量型旋转编码器精确计数的算法,其特征在于在判断有效波 形和毛刺波形的过程中有如下步骤,1) 在编码器的相位超前输出端的下降沿到达时判断一下相位滞后输出端的状态,若滞 后输出端为低电平则视此超前输出段的下降沿为毛刺波形,否则进入2);2) 若滞后输出端为高电平,则等待这次下降沿波形后的第一个上升沿再判断相位滞后 段的状态,若滞后输出端仍为高电平,那么这次下降沿波形也是毛刺波形,否则进入3);3) 若滞后输出端的状态是低电平,则此下降沿波形为有效波形,才进行有效波形的计数;在此过程中,滞后输出端的毛刺波形不必被考虑。
3.实现权利要求1或者2中增量型旋转编码器精确计数的算法的装置,其特征在于包括 有一逻辑电路,由此逻辑电路来实现去毛刺并且有效分离旋转编码器的正反转。
4.根据权利要求3所述实现增量型旋转编码器精确计数的算法的装置,其特征在于所述逻辑电路包括有两个输入端和两个输出端,两个输入端用于与旋转编码器的两个输出端连接 ,两个输出端分别是正反转两个方向的有效脉冲。
5.根据权利要求4所述实现增量型旋转编码器精确计数的算法的装置,其特征在于该逻 辑电路包括两个双边沿触发器和将两个脉冲分离的后续电路,双边沿触发器的输入端分别连 接旋转编码器的输出端,双边沿触发器后面输出的是去了毛刺的脉冲波形,后续电路用于分 离编码器的正旋转和逆旋转。
6 根据权利要求5所述实现增量型旋转编码器精确计数的算法的装置,其特征在于每个 双边沿触发器是由两个在时钟输入端的上升沿和下降沿到达时都将输入端的状态送到输出端 的D触发器构成。
7 根据权利要求5所述实现增量型旋转编码器精确计数的算法的装置,其特征在于所述 的后续电路包括有一个D触发器和一个与运算电路,连接在两个双边沿触发器的输出端上, 该D触发器和与运算电路的作用是对正反转两个方向的脉冲进行分离输出。
全文摘要
本发明公开了一种增量型旋转编码器精确计数的算法,在编码器的相位超前输出端的下降沿和上升沿都判断一次相位滞后输出端的输出电平,只有当超前输出端一次波形的下降沿时滞后输出端为高电平而上升沿时滞后输出端为低电平,这样的超前端波形才为有效波形,其余为毛刺波形,据此来区分有效旋转波形和毛刺波形,进而可以进行准确有效的编码。
文档编号G01D5/12GK101539437SQ20091030183
公开日2009年9月23日 申请日期2009年4月25日 优先权日2009年4月25日
发明者吕盼稂, 吴健新 申请人:恩平市西特尔数码科技有限公司