4. 绝对式编码器与串行协议概览

绝对式编码器与增量式编码器最大的区别在于:上电后无需寻找 Z 相或回零,编码器内部已经保存了唯一的位置信息。C2000 要读取这个位置,必须通过一根或几根串行数据线,按照编码器厂商规定的时序和帧格式进行通信。本节聚焦四种在伺服与运动控制中最常见的绝对式串行协议:SSI、BiSS、EnDat 和 Tamagawa,说明它们在 C2000 上的接入方式、信号链结构以及选型判断依据。

一、四种协议的信号链与帧结构差异

SSI(Synchronous Serial Interface)是最基础的一种。它使用一对差分时钟线和一对差分数据线,主机发出时钟脉冲,编码器在时钟下降沿或上升沿逐位输出数据。典型帧为 24 位或 25 位位置数据,外加若干状态位。SSI 只支持单向读取,没有寄存器访问,也没有 CRC 校验,协议简单、延迟低,但功能也最少。

BiSS(Bidirectional Synchronous Serial)在 SSI 的物理层基础上扩展了双向能力。BiSS-C 是常见版本,帧内包含位置数据、状态位和 CRC,主机还可以通过寄存器读写访问编码器内部参数,例如分辨率、偏移量、温度等。BiSS 的时钟频率可以做到较高,适合对刷新率和诊断能力都有要求的场合。

EnDat 2.2 是海德汉主推的协议,采用差分时钟与差分数据,支持位置读取和参数读写。它的帧结构比 SSI 复杂,包含模式命令、地址、数据和 CRC。EnDat 的优势在于功能完整、诊断信息丰富,并且支持纯串行和带增量信号两种模式。在 C2000 上接入 EnDat 时,通常需要外部协议芯片或 FPGA 做物理层与帧解析,MCU 侧通过 SPI 或并行接口读取结果。

Tamagawa(多摩川)协议在亚洲伺服市场非常普遍,采用半双工差分总线,主机发送请求帧,编码器返回包含绝对位置、多圈数据和 CRC 的响应帧。它的电气层类似 RS-485,需要方向控制。Tamagawa 的帧长和时序固定,协议实现相对成熟,很多 C2000 伺服方案会直接用 CLB 或 SPI 加外部收发器完成。

四种绝对式编码器协议在 C2000 系统中的信号链对比 SSI 时钟 + 数据(单向) 帧:24/25 位位置 + 状态 无 CRC,无寄存器访问 C2000:SPI + 差分收发 或 CLB 产生时钟 延迟最低,功能最少 BiSS-C 时钟 + 双向数据 帧:位置 + 状态 + CRC 支持寄存器读写 C2000:SPI 从机 + 外部 差分收发器,或 CLB 解码 刷新率与诊断兼顾 EnDat 2.2 时钟 + 双向数据 帧:模式 + 地址 + 数据 + CRC 支持参数读写与诊断 C2000:外部协议芯片/FPGA MCU 侧 SPI 读结果 功能最全,成本最高 Tamagawa 半双工差分总线 请求帧 → 响应帧 含绝对位置 + 多圈 + CRC C2000:SCI/SPI + RS-485 方向控制 + 帧解析 亚洲伺服常见,生态成熟 C2000 接入方式与选型关键维度 协议 物理层 C2000 典型接口 是否需要外部芯片 适用场景 SSI RS-422 差分 SPI + 差分收发器 通常不需要 低成本、单圈绝对 BiSS-C RS-422 差分 SPI 从机 + CLB 视速率而定 高刷新率 + 诊断 EnDat 2.2 RS-485 差分 SPI/EMIF 读协议芯片 需要 高端伺服、功能安全 Tamagawa RS-485 半双工 SCI/SPI + 方向控制 通常不需要 亚洲伺服、多圈绝对

二、C2000 上的接入方式与关键配置

在 C2000 上接入绝对式编码器,核心问题是:谁来产生时钟、谁来解析帧、谁来校验 CRC。对于 SSI,最简单的方式是用 SPI 外设工作在主机模式,SCLK 经过差分收发器送到编码器,编码器数据回到 SPI 的 MISO 引脚。以 TMS320F28379D 为例,SPI 时钟可以配置为 1 MHz 到 10 MHz,CPOL=0、CPHA=0 或 CPOL=1、CPHA=1 取决于编码器在时钟的哪个边沿输出数据。接收到的 24 位数据需要屏蔽状态位,再乘以分辨率得到机械角度。

BiSS-C 的接入稍微复杂一些。由于 BiSS 的时钟是连续脉冲串,且数据线在帧间隙需要切换方向,直接用 SPI 从机模式并不总是可行。常见做法是用 C2000 的 CLB(可配置逻辑块)产生 BiSS 时钟,并用 SPI 或 GPIO 采样数据线,再在软件中做 CRC 校验。如果编码器支持标准 SPI 兼容模式,也可以把 BiSS 当作 SPI 从机来读,但需要确认帧长和 CRC 位置。

EnDat 2.2 通常不直接在 C2000 的 SPI 上实现,因为它的命令帧和响应帧之间有严格的时序要求,且需要处理模式切换。工程上更常见的方案是使用专用的 EnDat 协议芯片(如 iC-Haus 或海德汉的接口芯片),C2000 通过 SPI 或并行总线读取已经解析好的位置值。这样做的代价是增加一颗芯片和若干引脚,但换来了确定性的时序和完整的诊断信息。

Tamagawa 协议在 C2000 上可以用 SCI 或 SPI 加 RS-485 收发器实现。主机先拉低方向控制引脚发送请求帧,然后释放总线并切换为接收,等待编码器返回响应帧。响应帧中包含绝对位置、多圈计数和 CRC。由于 Tamagawa 的帧长固定,可以在 SCI 接收中断中按字节解析,也可以用 DMA 搬运整帧后统一处理。方向控制引脚的切换时机非常关键,过早会截断编码器响应,过晚会影响下一帧的请求间隔。

实践提示:无论使用哪种协议,都建议在 C2000 中保留一个“原始帧缓冲区”,把每次接收到的完整帧按时间戳保存。当位置出现跳变或 CRC 错误时,可以直接回看原始帧,判断是编码器输出异常、线缆干扰还是解析逻辑错误。这个缓冲区不需要很大,例如 16 帧 × 8 字节即可覆盖大多数调试场景。

三、选型对比与判断依据

选型时不要只看协议名称,而要从四个维度判断:刷新率、分辨率、诊断需求和系统成本。SSI 的刷新率最高可以做到 10 MHz 时钟,但只有位置数据,没有 CRC,适合对成本敏感、干扰较小的场合。BiSS-C 在相近的时钟频率下增加了 CRC 和寄存器访问,适合需要在线诊断和参数调整的伺服系统。EnDat 2.2 的功能最完整,支持位置、参数、诊断和功能安全,但需要外部协议芯片,BOM 成本和 PCB 面积都会增加。Tamagawa 在亚洲伺服市场生态成熟,多圈绝对位置和 CRC 都有,接口实现难度适中,是很多国产伺服驱动器的默认选择。

另一个容易被忽略的因素是编码器与 C2000 之间的线缆长度和电磁环境。RS-422 和 RS-485 差分信号在几米到几十米范围内都能可靠工作,但如果线缆超过 20 米,建议降低时钟频率并增加共模扼流圈。对于 EnDat 和 BiSS,时钟频率越高,对线缆和收发器的要求也越高。在样机阶段,可以先用较低频率(例如 1 MHz)验证协议解析是否正确,再逐步提高频率观察 CRC 错误率。

维度 SSI BiSS-C EnDat 2.2 Tamagawa
位置数据 单圈/多圈 单圈/多圈 单圈/多圈 单圈/多圈
CRC 校验 无 有 有 有
寄存器访问 不支持 支持 支持 有限支持
C2000 接口复杂度 低 中 高(需外部芯片) 中
典型时钟频率 1–10 MHz 1–10 MHz 1–8 MHz 2.5–10 MHz
适用场景 低成本单圈 高刷新率伺服 高端功能安全 亚洲伺服多圈

四、一个可复用的接入检查清单

在把编码器接到 C2000 之前,建议按以下顺序逐项确认,避免在调试阶段反复排查:

  1. 确认编码器协议版本和帧长,例如 SSI 是 24 位还是 25 位,BiSS-C 的 CRC 多项式是哪个。
  2. 确认电气接口:RS-422 全双工还是 RS-485 半双工,是否需要方向控制引脚。
  3. 确认 C2000 侧使用的外设:SPI、SCI 还是 CLB,引脚分配是否与收发器匹配。
  4. 确认时钟极性和相位,用示波器同时观察时钟和数据线,确保采样点落在数据稳定区。
  5. 确认 CRC 或校验和的计算方式,并在代码中单独实现一个校验函数,先用已知帧验证。
  6. 确认多圈数据的拼接方式,避免单圈回绕时多圈计数错误。
  7. 确认故障处理策略:CRC 错误时是保持上一次位置、报警还是切换到安全状态。

完成以上检查后,可以先用低速时钟读取位置,手动转动编码器轴,观察位置值是否单调变化。如果出现跳变,优先检查 CRC 错误计数和原始帧缓冲区,而不是直接怀疑编码器损坏。大多数接入问题都出在时钟相位、方向控制时机或 CRC 解析上,而不是编码器本身。