2. 编码器基础

在运动控制与角度测量系统中,编码器是把机械位移转换为电信号的“感知前端”。FPGA 要正确读取编码器,必须先理解三类编码器的物理原理与输出信号形态:增量式只输出相对变化,绝对式直接输出位置编码,混合式则兼顾两者的优点。本节从信号层面梳理它们的差异,为后续接口设计打基础。

一、增量式编码器:以脉冲计数表达位移

增量式编码器内部通常由码盘、光源和光电接收管组成。码盘上刻有等间距的透光/遮光狭缝,旋转时接收管输出近似方波的 A、B 两路信号。A、B 相位差 90°(正交),通过判断 A 超前 B 还是 B 超前 A 即可得到旋转方向;对脉冲计数则得到相对位移。每转还会输出一路 Z 信号(零位脉冲),用于每圈一次的基准校正。

增量式的关键参数是每转脉冲数(PPR)与倍频方式。FPGA 常用四倍频计数:对 A、B 的上升沿和下降沿都计数,分辨率提升为 PPR×4。其输出信号类型主要有:

  • 单端 TTL/CMOS:A、B、Z 三路,接线简单,适合短距离、低噪声环境。
  • 差分 RS-422/HTL:A+/A−、B+/B−、Z+/Z−,抗共模干扰强,适合长线传输与工业现场。
  • 集电极开路:需外接上拉电阻,电平由外部电源决定。
增量式编码器上电后不知道绝对位置,必须通过 Z 信号或外部限位开关回零,这是它与绝对式最本质的区别。

二、绝对式编码器:每个位置都有唯一编码

绝对式编码器码盘上有多圈同心码道,每个角度位置对应一组唯一的二进制码。按输出接口可分为并行输出与串行输出。并行输出直接给出 N 位格雷码或二进制码,FPGA 可一次读取;串行输出则通过 SSI、BiSS、EnDat、多摩川等协议逐位传输。

绝对式又分单圈与多圈:单圈只记录 0°~360° 内的位置,多圈额外用齿轮或电池计数记录圈数。其核心优势是断电后位置不丢失,上电即可获得绝对角度,无需回零。常见输出信号类型如下表:

类型典型信号特点FPGA 接口
并行二进制D0~Dn速度快、线多GPIO 直读
SSICLK、DATA同步串行、简单时钟生成+采样
BiSS-CCLK、DATA双向、带 CRC收发状态机
EnDat 2.2CLK、DATA可读参数与诊断协议栈
多摩川SD、REQ伺服常用串行解析

三、混合式编码器:增量与绝对的折中

混合式(又称准绝对式)编码器在增量码道之外,增加一组用于粗定位的绝对码道。上电时先读取绝对码道获得一个较粗的绝对位置,再结合增量脉冲细分,从而在无需回零的情况下得到较高分辨率。它兼顾了绝对式“上电知位置”和增量式“高分辨率、低成本”的优点,常见于中高端伺服与机器人关节。

其输出往往同时包含增量 A/B/Z 与绝对串行数据,FPGA 需要并行处理两路信息:增量通道做高频计数,绝对通道做低速协议解析,最后在逻辑中融合成统一位置值。

四、信号链与 FPGA 采集要点

从编码器到 FPGA,信号经历“物理量→电信号→电平转换→采样/解码→位置值”的链路。下图给出三类编码器在 FPGA 侧的典型连接与信号关系:

三类编码器输出信号与 FPGA 采集关系 增量式编码器 A / B 正交脉冲(90°) Z 零位脉冲(每圈1次) 差分:A± B± Z± 输出:相对位移 绝对式编码器 并行:D0~Dn 格雷码 串行:CLK / DATA 协议:SSI / BiSS / EnDat 输出:绝对位置 混合式编码器 增量:A / B / Z 绝对:粗定位码道 上电免回零 输出:融合位置 FPGA 采集与解码 正交解码 + 四倍频 方向判别 / 计数 串行协议状态机 CRC 校验 / 帧解析 位置融合与滤波 输出统一位置值

在 FPGA 中,增量信号通常先做同步化与去抖,再用状态机实现四倍频计数;绝对串行信号则需生成时钟、按位采样并校验 CRC。下面是一段简化的正交解码计数逻辑示意:

// 正交解码四倍频计数(简化)
always @(posedge clk) begin
    a_d <= a;  b_d <= b;
    case ({a_d, b_d, a, b})
        4'b00_01, 4'b01_11, 4'b11_10, 4'b10_00: pos <= pos + 1;
        4'b00_10, 4'b10_11, 4'b11_01, 4'b01_00: pos <= pos - 1;
        default: ;
    endcase
end

五、常见误区与复盘

  • 把增量式当绝对式用:上电位置随机,若不做回零就闭环,极易飞车。
  • 忽略差分与单端混接:RS-422 差分对若只接单端,抗干扰能力大幅下降,长线易丢脉冲。
  • 忘记格雷码转换:绝对式并行输出多为格雷码,直接当二进制用会产生跳变错误。
  • 采样时钟不同步:异步信号未做两级同步,亚稳态会导致计数偶发错误。
  • 混合式只读增量:忽略绝对码道,等于浪费了免回零能力。
选型建议:成本敏感、短距离、可回零的场合选增量式;需要断电记忆、高可靠定位的场合选绝对式;既要免回零又要高分辨率且控制成本时,混合式是折中方案。理解输出信号类型,是 FPGA 接口设计的第一步。