
实用光电编码器技术 编著 陈先锋 第 1 章 光电编码器基础 1.1 概述 光电编码器是一种集光、机、电为一体的数字化检测装置,它具有分辨率高、精度高、 结构简单、体积小、使用可靠、易于维护、性价比高等优点。近 10 几年来,发展为一种成 熟的多规格、高性能的系列工业化产品,在数控机床、机器人、雷达、光电经纬仪、地面指 挥仪、高精度闭环调速系统、伺服系统等诸多领域中得到了广泛的应用。光电编码器可以定 义为:一种通过光电转换,将输至轴上的机械、几何位移量转换成脉冲或数字量的传感器, 它主要用于速度或位置(角度)的检测。典型的光电编码器由码盘(Disk)、检测光栅(Mask)、 光电转换电路(包括光源、光敏器件、信号转换电路)、机械部件等组成。 一般来说,根据光电编码器产生脉冲的方式不同,可以分为增量式、绝对式以及复合式 三大类。按编码器运动部件的运动方式来分,可以分为旋转式和直线式两种。由于直线式运 动可以借助机械连接转变为旋转式运动,反之亦然。因此,只有在那些结构形式和运动方式 都有利于使用直线式光电编码器的场合才予使用。旋转式光电编码器容易做成全封闭型式, 易于实现小型化,传感长度较长,具有较长的环境适用能力,因而在实际工业生产中得到广 泛的应用,在本书中主要针对旋转式光电编码器,如不特别说明,所提到的光电编码器则指 旋转式光电编码器。 1.2 增量式光电编码器 1.2.1 原理及其结构 增量式光电编码器的特点是每产生一个输出脉冲信号就对应于一个增量位移,但是不能 通过输出脉冲区别出在哪个位置上的增量。它能够产生与位移增量等值的脉冲信号,其作用 是提供一种对连续位移量离散化或增量化以及位移变化(速度)的传感方法,它是相对于某 个基准点的相对位置增量,不能够直接检测出轴的绝对位置信息。一般来说,增量式光电编 码器输出 A、B 两相互差90° 电度角的脉冲信号(即所谓的两组正交输出信号),从而可方 便地判断出旋转方向。同时还有用作参考零位的 Z 相标志(指示)脉冲信号,码盘每旋转 一周,只发出一个标志信号。标志脉冲通常用来指示机械位置或对积累量清零。 增量式光电编码器主要由光源、码盘、检测光栅、光电检测器件和转换电路组成,如图 1-1 所示。码盘上刻有节距相等的辐射状透光缝隙,相邻两个透光缝隙之间代表一个增量周 期;检测光栅上刻有 A、B 两组与码盘相对应的透光缝隙,用以通过或阻挡光源和光电检测 器件之间的光线。它们的节距和码盘上的节距相等,并且两组透光缝隙错开 1/4 节距,使得 光电检测器件输出的信号在相位上相差90° 电度角。当码盘随着被测转轴转动时,检测光栅 不动,光线透过码盘和检测光栅上的透过缝隙照射到光电检测器件上,光电检测器件就输出 两组相位相差90° 电度角的近似于正弦波的电信号,电信号经过转换电路的信号处理,可以 得到被测轴的转角或速度信息。增量式光电编码器输出信号波形如图 1-2 所示。 增量式光电编码器的优点是:原理构造简单、易于实现;机械平均寿命长,可达到几万 小时以上;分辨率高;抗干扰能力较强,信号传输距离较长,可靠性较高。其缺点是它无法 直接读出转动轴的绝对位置信息

图 1-1 增量式光电编码器的组成 图 1-2 增量式光电编码器的输出信号波形 1.2.2 基本技术规格 在增量式光电编码器的使用过程中,对于其技术规格通常会提出不同的要求,其中最关 键的就是它的分辨率、精度、输出信号的稳定性、响应频率、信号输出形式。 (1)分辨率 光电编码器的分辨率是以编码器轴转动一周所产生的输出信号基本周期数来表示的,即 脉冲数/转(PPR)。码盘上的透光缝隙的数目就等于编码器的分辨率,码盘上刻的缝隙越多, 编码器的分辨率就越高。在工业电气传动中,根据不同的应用对象,可选择分辨率通常在 500~6000PPR 的增量式光电编码器,最高可以达到几万 PPR。交流伺服电机控制系统中通 常选用分辨率为 2500PPR 的编码器。此外对光电转换信号进行逻辑处理,可以得到 2 倍频 或 4 倍频的脉冲信号,从而进一步提高分辨率。 (2)精度 增量式光电编码器的精度与分辨率完全无关,这是两个不同的概念。精度是一种度量在 所选定的分辨率范围内,确定任一脉冲相对另一脉冲位置的能力。精度通常用角度、角分或 角秒来表示。编码器的精度与码盘透光缝隙的加工质量、码盘的机械旋转情况的制造精度因 素有关,也与安装技术有关。 (3)输出信号的稳定性 编码器输出信号的稳定性是指在实际运行条件下,保持规定精度的能力。影响编码器输 出信号稳定性的主要因素是温度对电子器件造成的漂移、外界加于编码器的变形力以及光源 特性的变化。由于受到温度和电源变化的影响,编码器的电子电路不能保持规定的输出特性, 在设计和使用中都要给予充分考虑。 (4)响应频率 编码器输出的响应频率取决于光电检测器件、电子处理线路的响应速度。当编码器高速 旋转时,如果其分辨率很高,那么编码器输出的信号频率将会很高。如果光电检测器件和电 子线路元器件的工作速度与之不能相适应,就有可能使输出波形严重畸变,甚至产生丢失脉 冲的现象。这样输出信号就不能准确反映轴的位置信息。所以,每一种编码器在其分辨率一 定的情况下,它的最高转速也是一定的,即它的响应频率是受限制的。编码器的最大响应频 率、分辨率和最高转速之间的关系如公式(1-1)所示。 60 R N f max max × = (1-1) 其中, max f 为最大响应频率、 R max 为最高转速、N 为分辨率。 (5)信号输出形式 在大多数情况下,直接从编码器的光电检测器件获取的信号电平较低,波形也不规则

还不能适应于控制、信号处理和远距离传输的要求。所以,在编码器内还必须将此信号放大、 整形。经过处理的输出信号一般近似于正弦波或矩形波。由于矩形波输出信号容易进行数字 处理,所以这种输出信号在定位控制中得到广泛的应用。采用正弦波输出信号时基本消除了 定位停止时的振荡现象,并且容易通过电子内插方法,以较低的成本得到较高的分辨率。 增量式光电编码器的信号输出形式有:集电极开路输出(Open Collector)、电压输出 (Voltage Output)、线驱动输出(Line Driver)、互补型输出(Complemental Output)和推挽 式输出(Totem Pole)。 集电极开路输出 这种输出方式通过使用编码器输出侧的 NPN 晶体管,将晶体管的发 射极引出端子连接至 0V,断开集电极与+Vcc 的端子并把集电极作为输出端。在编码器供电 电压和信号接受装置的电压不一致的情况下,建议使用这种类型的输出电路。输出电路如图 1-3 所示。主要应用领域有电梯、纺织机械、注油机、自动化设备、切割机械、印刷机械、 包装机械和针织机械等。 图 1-3 集电极开路输出电路 电压输出 这种输出方式通过使用编码器输出侧的 NPN 晶体管,将晶体管的发射极引 出端子连接至 0V,集电极端子与+Vcc 和负载电阻相连,并作为输出端。在编码器供电电压 和信号接受装置的电压一致的情况下,建议使用这种类型的输出电路。输出电路如图 1-4 所 示。主要应用领域有电梯、纺织机械、注油机、自动化设备、切割机械、印刷机械、包装机 械和针织机械等。 图 1-4 电压输出电路 线驱动输出 这种输出方式将线驱动专用 IC 芯片(26LS31)用于编码器输出电路,由 于它具有高速响应和良好的抗噪声性能,使得线驱动输出适宜长距离传输。输出电路如图 1-5 所示。主要应用领域有伺服电机、机器人、数控加工机械等。 图 1-5 线驱动输出电路

互补型输出 这种输出方式由上下两个分别为 PNP 型和 NPN 型的三极管组成,当其中 一个三极管导通时,另外一个三极管则关断。这种输出形式具有高输入阻抗和低输出阻抗, 因此在低阻抗情况下它也可以提供大范围的电源。由于输入、输出信号相位相同且频率范围 宽,因此它适合长距离传输。输出电路如图 1-6 所示。主要应用于电梯领域或专用领域。 图 1-6 互补型输出电路 推挽式输出 这种输出方式由上下两个 NPN 型的三极管组成,当其中一个三极管导通 时,另外一个三极管则关断。电流通过输出侧的两个晶体管向两个方向流入,并始终输出电 流。因此它阻抗低,而且不太受噪声和变形波的影响。输出电路如图 1-7 所示。主要应用领 域有电梯、纺织机械、注油机、自动化设备、切割机械、印刷机械、包装机械和针织机械等。 图 1-7 推挽式输出电路 1.3 绝对式光电编码器 1.3.1 基本构造及特点 用增量式光电编码器有可能由于外界的干扰产生计数错误,并且在停电或故障停车后无 法找到事故前执行部件的正确位置。采用绝对式光电编码器可以避免上述缺点。绝对式光电 编码器的基本原理及组成部件与增量式光电编码器基本相同,也是由光源、码盘、检测光栅、 光电检测器件和转换电路组成。与增量式光电编码器不同的是,绝对式光电编码器用不同的 数码来分别指示每个不同的增量位置,它是一种直接输出数字量的传感器。在它的圆形码盘 上沿径向有若干同心码道,每条上由透光和不透光的扇形区相间组成,相邻码道的扇区数目 是双倍关系,码盘上的码道数就是它的二进制数码的位数,在码盘的一侧是光源,另一侧对 应每一码道有一光敏元件;当码盘处于不同位置时,各光敏元件根据受光照与否转换出相应 的电平信号,形成二进制数。这种编码器的特点是不要计数器,在转轴的任意位置都可读出 一个固定的与位置相对应的数字码。显然,码道越多,分辨率就越高,对于一个具有 N 位 二进制分辨率的编码器,其码盘必须有 N 条码道。绝对式光电编码器原理如图 1-8 所示。 绝对式光电编码器是利用自然二进制、循环二进制(格雷码)、二-十进制等方式进行光 电转换的。绝对式光电编码器与增量式光电编码器不同之处在于圆盘上透光、不透光的线条 图形,绝对光电编码器可有若干编码,根据读出码盘上的编码,检测绝对位置。它的特点是: 可以直接读出角度坐标的绝对值;没有累积误差;电源切除后位置信息不会丢失;编码器的 精度取决于位数;最高运转速度比增量式光电编码器高

图 1-8 绝对式光电编码器原理 1.3.2 码制与码盘 绝对式光电编码器的码盘按照其所用的码制可以分为:二进制码、循环码(格雷码)、 十进制码、六十进制码(度、分、秒进制)码盘等。四位二元码盘(二进制、格雷码)如图 1-9 所示。图中黑、白色分别表示透光、不透光区域。 图 1-9 四位二元码盘 图 1-9(a)是一个四位二进制码盘,它的最里圈码道为第一码道,半圈透光半圈不透光, 对应于最高位 C1,最外圈为第 n 码道,共分成 2n 个亮暗间隔,对应于最低位 Cn,n 位二元 码盘最小分辨率为: n 1 θ = 360°/2 (1-2) 码盘转角α 与转换出的二进制数码 C1C2.Cn 及十进制数 N 的对应关系为: ∑= − = ° ⋅ = n i 1 1 i α 360 Ci 2 Nθ (1-3) 二进制马盘的缺点是:每个码道的黑白分界线总有一半与相邻内圈码道的黑白分界线是 对齐的,这样就会因黑白分界线刻画不精确造成粗误差。采用其他的有权编码时也存在类似 的问题。图 1-10 是一个四位二进制码盘展开图,图中 aa 为最高位码道黑白分界线的理想位 置,它与其他三位码道的黑白分界线正好对齐,当码盘转动,光束扫过这一区域时,输出数 码从 0111 变为 1000 不会出现错误。如果 C1 道黑白分界线刻偏到 a’a’,当码盘转动时,输 出数码就会从 0111 变为 1111 再变到 1000,中途出现了错误数码 1111。反之 C1 道黑白分界 线刻偏到 a’’a’’,当码盘转动时,输出数码就会从 0111 变为 0000 再变到 1000,中途出现了 错误数码 0000。为了消除这种粗误差,可以采用循环码盘(格雷码盘)

图 1-10 四位二进制码盘展开图 图 1-9(b)是一个四位循环码盘,它与二进制码盘相同的是,码道数也等于数码位数, 因此最小分辨率也是式(1-2)求得,最内圈也是半圈透光半圈不透光,对应 R1 位,最外圈 是第 n 码道对于 Rn 位。与二进制码盘不同的是:第二码道也是一半透光一半不透光,第 i 码道分为 2i-1个黑白间隔,第 i 码道的黑白分界线与第 i-1 码道的黑白分界线错开 i 360°/ 2 。 循环码盘转到相邻区域时,编码中只有一位发生变化。只要适当限制各码道的制作误差和安 装误差,就不会产生粗误差。由于这一原理,使得循环码盘获得广泛的应用。 1.3.3 二进制码与循环码的转换 绝对式光电编码器是利用自然二进制或循环二进制(格雷码)方式进行光电转换的,编 码的设计一般是采用自然二进制码、循环二进制码、二进制补码等。特点是不要计数器,在 转轴的任意位置都可读出一个固定的与位置相对应的数字码;抗干扰能力强,没用累积误差; 电源切断后位置信息不会丢失,但分辨率是由二进制的位数决定的,根据不同的精度要求, 可以选择不同的分辨率即位数。目前有 10 位、11 位、12 位、13 位、14 位或更高位等多种。 其中采用循环二进制编码的绝对式编码器,其输出信号是一种数字排序,不是权重码, 每一位没有确定的大小,不能直接进行比较大小和算术运算,也不能直接转换成其他信号, 要经过一次码变换,变成自然二进制码,再由上位机读取以实现相应的控制。而在码制变换 中有不同的处理方式,本文着重介绍二进制格雷码与自然二进制码的互换。 (1)格雷码(又叫循环二进制码或反射二进制码)介绍 在数字系统中只能识别 0 和 1,各种数据要转换为二进制代码才能进行处理,格雷码是 一种无权码,采用绝对编码方式,典型格雷码是一种具有反射特性和循环特性的单步自补码, 它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求反 非常方便。格雷码属于可靠性编码,是一种错误最小化的编码方式,因为,自然二进制码可 以直接由数/模转换器转换成模拟信号,但某些情况,例如从十进制的 3 转换成 4 时二进制 码的每一位都要变,使数字电路产生很大的尖峰电流脉冲。而格雷码则没有这一缺点,它是 一种数字排序系统,其中的所有相邻整数在它们的数字表示中只有一个数字不同。它在任意 两个相邻的数之间转换时,只有一个数位发生变化。它大大地减少了由一个状态到下一个状 态时逻辑的混淆。另外由于最大数与最小数之间也仅一个数不同,故通常又叫葛莱反射码或 循环码。表 1-1 为几种自然二进制码与格雷码的对照表: 表 1-1 几种自然二进制码与格雷码的对照表 十进制数 自然二进制数 格雷码 十进制数 自然二进制数 格雷码 0 0000 0000 8 1000 1100 1 0001 0001 9 1001 1101 2 0010 0011 10 1010 1111 3 0011 0010 11 1011 1110 4 0100 0110 12 1100 1010 5 0101 0111 13 1101 1011

6 0110 0101 14 1110 1001 7 0111 0100 15 1111 1000 从表 1-1 种可以得出,十进制数 N 与 n 位二进制码满足以下关系: ∑ ∑ = = − = ⋅ = ⋅ n i 1 n-i i n i 1 i i n N 2 C 2 C 2 (1-4) 可见,二进制码由于是有权码,满足(1-4)的关系,而格雷码是无权码,不满足(1-4) 的关系。它与所对应的角度不存在类似(1-3)的关系,因此必须找出循环码和二进制码之 间的对应关系和相互转换规则。 (2)二进制码转换成制格雷码 二进制码转换成制格雷码,其法则是保留二进制码的最高位作为格雷码的最高位,而次 高位格雷码为二进制码的高位与次高位相异或,而格雷码其余各位与次高位的求法相类似。 图 1-11 所示为二进制码转换成格雷码。 图 1-11 自然二进制码转换成二进制格雷码 图 1-12 为将二进制码转换为格雷码的电路图,其中图(a)为并行转换电路,图(b) 为串行转换电路。当采用串行电路时,工作之前先将 D 触发器 D1置 0,Q=0,在 Ci端送入 C1,异或门 D2 输出 R1=C1○+ 0=C1,随后加 CP 脉冲,使 Q=C1;在 Ci端加入 C2,D 输出 R2=C2○+ C1,以后重复上述过程,可以依次获得 R1,R2,.,Rn。 图 1-12 二进制码转换为格雷码的电路图 (3)格雷码转换为二进制码 格雷码转换成二进制码,则是保留格雷码的最高位作为二进制码的最高位,而次高位二 进制码为高位二进制码与次高位格雷码相异或,而二进制码的其余各位与次高位二进制码的 求法相类似。图 1-13 为将格雷码转换为二进制码的电路,其中图(a)为并行转换电路,图 (b)为串行转换电路。当采用串行电路时,工作之前先将 JK 触发器 D 置 0,Q=0,将 R1 同时加到 J、K 端,再加入 CP 脉冲后,Q=C1= R1。以后若 Q 端为 Ci-1在 J、K 端加入 Ri。 根据 JK 触发器的特性,若 J、K 为“1”则加入 CP 脉冲后,Q = Ci−1;若 J、K 为“0”则 加入 CP 脉冲后保持 Q=Ci-1。这一逻辑关系可以写成:

Q Ci Ri Ci 1 Ri Ci 1 = Ci 1 ⊕ Ri = = ⋅ + ⋅ − − − 重复上述过程,可依次获得 C1,C2,.,Cn。 图 1-13 格雷码转换为二进制码的电路 格雷码是无权码,采用格雷码盘获得的格雷码 R1,R2,.,Rn 必须按图 1-11 转换为 对应的二进制码 C1,C2,.,Cn后,才能代入(1-3)式确定与之对应的角度。 (4)格雷码与二进制码互换的软件实现方法 (a)二进制码转换成格雷码的软件实现法 根据自然二进制转换成格雷码的法则,可以得到以下的代码: static unsigned int DecimaltoGray(unsigned int x) { return x^(x>>1); } //以上代码实现了 unsigned int 型数据到格雷码的转换,最高可转换 32 位自然二进 制码,超出 32 位将溢出。 static int DecimaltoGray( int x) { return x^(x>>1); } //以上代码实现了 int 型数据到格雷码的转换,最高可转换 31 位自然二进制码,超 出 31 位将溢出。 上述代码即可用于 VC 控制程序中,也可以用于单片机控制程序中。在单片机程序设计 时,若采用汇编语言编程,可以按相同的原理设计程序;若采用 C 语言编程,则可以直接 利用上述代码,但建议用 unsigned int 函数。 (b)软件实现法(参见示例工程中的 Gray to Binary ) 根据二进制格雷码转换成自然二进制码的法则,可以得到以下的三种代码方式: static unsigned int GraytoDecimal(unsigned int x) { unsigned int y = x; while(x>>=1) y ^= x; return y; } static unsigned int GraytoDecimal(unsigned int x)

{ x^=x>>16; x^=x>>8; x^=x>>4; x^=X>>2; x^=x^1; return x; } static unsigned int GraytoDecimal(unsigned int x) { int i; for(i=0;(1>(1<<i); } return x; } //以上代码实现了 unsigned int 型数据到自然二进制码的转换,最高可转换 32 位格雷码, 超出 32 位将溢出。将数据类型改为 int 型即可实现 31 位格雷码转换。 上述代码即可用于 VC 控制程序中,也可以用于单片机控制程序中。在单片机程序设计 时,若采用汇编语言编程,可以按相同的原理设计程序;若采用 C 语言编程,则可以直接 利用上述代码,但建议用 unsigned int 函数。 1.4 混合式光电编码器 混合式光电编码器,就是在增量式光电编码器的基础上,增加了一组用于检测永磁伺服 电机磁极位置的码道。它输出两组信息:一组信息用于检测磁极位置,带有绝对信息功能另 一组则完全同增量式编码器的输出信息。一般来说,在码盘的最外圈刻有高密度的增量式透 光缝隙(发 2000,2500,3000PPR),中间分布在四圈圆环上有四个二进制四位循环码,每 一个四位二进制码对应圆盘 1/4 圆角度,即每 1/4 圆由四位二进制循环码分割成 16 个等分 位置。码盘最里圈仍有发一转信号的线条。混合式光电编码器输出的绝对值信息在一定的精 度上与磁极的位置具有对应关系。通常它给出相位相差 120 度的三相信号,用于控制永磁伺 服电机定子三相电流的相位。图 1-14 给出了这种混合式光电编码器的输出波形信号。U(/U)、 V(/V)和 W(/W)三相脉冲信号彼此相差 120 度,每转的脉冲个数与电机的极对数相一 致。根据 U、V、W 三相脉冲的高低电平关系可以判断电机磁极的当前位置。其过程是:电 机启动前,通过 U、V、W 三相脉冲的状态估算出电机磁极位置,即当前的角度,一旦电机 旋转起来,光电编码器的增量式部分可以精确地检测出位置值。使用 U、V、W 信号来判断 磁极位置是有误差的。 从旋转码盘读出的光电信号经光电放大器和模拟信号多路转换器,送至 A/D 转换器后 者实际上是一种细分插值电路,用以获得高分辨率的测量脉冲。服冲数由一大容量的绝对值 二进制可逆计数器计数。该计数器由备用电源供电,确保在断电时,也不丢失数据。在第一 次安装机床时,对绝对零点进行调整以后,计数器永远不会被清零,所以它的计数代表了机 床的绝对位置。内循环码读出的 4×16 个位置/转,代表了一周的粗计角度检测.它和永磁 伺服电机四对磁极的结构相对应,可实现对永磁伺服电机的磁场位置的控制

图 1-14 混合式光电编码器的输出波形信号 1.5 光电编码盘的制造技术 光电编码器的关键技术和主要技术难点都集中在码盘的制造上,因为码盘直接影响到检 测的精度和检测信号的可靠性以及抗冲击性。光电编码器的码盘一般有金属和玻璃两种。如 是金属制造的,开有通光槽(孔)。如是玻璃制造的,则是在玻璃表面涂一层遮光膜,再加 工形成透明线条。在槽数少的场合下(一般小于 1000 脉冲/圈),可以在金属圆盘使用冲压 或腐蚀的方法开槽。当槽数较多时,腐蚀加工也是很困难的,光刻技术几乎成了唯一的手段, 这代表着使用光学处理的玻璃码盘较金属码盘不耐冲击。码盘形式也是多种多样的,单相旋 转编码器码盘仅仅是由 1 圈光栅缝组成。正交AB相旋转编码器光栅是由两圈光栅缝相互交 错组成。绝对值旋转编码器光栅则是由各个形状均不同的光栅缝组成的多层光栅圈,根据每 个角度各层信号的排列不同检读当前角度,所以高线数光栅每圈线数一般都是 2n次幂,如: 1024 线、4096 线等。如果是多圈,需要配有转轴转数的代码输出,这样,机械结构会非常 复杂。显而易见,绝对值旋转编码器体积、重量都较大,并且造价昂贵。另外检读器、信号 转换电路对最大响应频率是有影响的,机械传动部分则对抗震性有影响。图 1-15 所示为德 国海德汉公司的各种编码器类型。 (a) (b)