AB相编码器与正交解码,绝对值编码器:
一、增量式编码器:
欧姆龙的编码器一般为AB相增量式编码器,在输出方式上分为电压输出和集电极开路输出两种输出方式。其中集电极开路输出在采集脉冲是需要加一个上拉电阻。同时编码器还有一个Z相信号,即编码器机械零位信号,每当编码器转到机械零位,Z相输出一个脉冲,可用于矫正脉冲长时间的积分误差。
二、正交解码:
如果只是采集A相或B相的脉冲数,只能测量转速的大小,而不能判断旋转的方向。正交解码则能解决这个问题。
光电编码器:
AB相输出:
发光二极管发射的光通过光栅到达光敏管,引起电平变化。
如果正转,A相输出超前B相90度,如果反转A相滞后B相90度。
每转一周,索引相,即Z相经过发光二极管一次,输出一个脉冲,可作为编码器的机械零位。
1、 FTM正交解码
现在很多单片机都有FTM模块,FTM模块中则有正交解码功能。正交解码有两种模式。下面以飞思卡尔(现在为恩智浦)的K60芯片的FTM为例进行讲。
一种是AB相正交解码,
先介绍两个寄存器:
CNT寄存器:寄存器通过正解解码的得到的脉冲值,最后只要读取CNT的值就可以得到编码器转数(正值为正转,负值为反转)。
CNTIN寄存器:CNT计数的初始值。
AB相的电平和跳变沿决定了CNT的加数和减数。
CNT增计数时:
A上升沿,B逻辑低
B上升沿,A逻辑高
B下降沿,A逻辑低
A下降沿,B逻辑高
CNT
减计数是:
A下降沿,B逻辑低
B下降沿,A逻辑高
B上升沿,A逻辑低
A上升沿,B逻辑高
另外一种A相输出的是脉冲,B相输出方向。
当B相输出高电平,CNT寄存器加上A相输出的脉冲;
当B相输出低电平,CNT寄存器减去A相输出的脉冲;
而CNT的初始值由CNTIN决定,一般设置为0。
2、 D触发器:
如果单片机没有正交解码功能,可以通过D触发器来判断编码器的旋转方向。
将编码器的B相作为时钟输入到D触发器的1CLK(时钟),A相作为脉冲输入到D触发器的1D(数据位)。
当
B
相有上升沿时,
A
相的电平将被锁存到
Q1
引脚。这样,通过读取
Q1
引脚电平的高低,就可以判定编码器的旋转方向。当
Q
1为高电平时,
A
相超前
B
相,正转;当
Q
1为低电平时,
A
相滞后
B
相,反转;再综合单片机
PTM
的脉冲计数功能,就可以实现正交解码功能。
3、 正交解码芯片(如HCTL-2020):
也可以通过外加正交解码芯片实现正交解码功能,如何使用暂时不进行叙述。
三、绝对式编码器:
绝对式编码器的每一个位置对应一个二进制数,二进制数有每一道线的亮暗表示。例如:10位的绝对式编码器每个位置有10道线,可以表示0-1023共1024个位置。
绝对值编码器为每一个轴的位置提供一个独一无二的编码数字值。绝对编码器由机械位置决定的每个位置是唯一的,它无需记忆,无需找参考点,而且不用一直计数,什么时候需要知道位置,什么时候就去读取它的位置。这样,编码器的抗干扰特性、数据的可靠性大大提高了。