2. 安全编码基础

在功能安全系统中,编码器不再只是“测速”或“定位”的传感器,而是安全相关信号链的起点。它的输出一旦被污染、丢失或错误解释,后续的安全逻辑、驱动限制乃至整机安全功能都会建立在错误前提上。因此,理解编码器的物理与电气原理、常见编码类型,以及安全编码的核心原则和威胁模型,是设计双通道反馈系统的第一步。

一、编码器原理:从物理位移到可判读信号

编码器的本质是把机械运动转换为可计数的电信号。以增量式编码器为例,码盘上刻有明暗相间的栅格,光电或磁敏元件将栅格变化转换为 A、B 两路方波。A、B 相位差 90° 电角度,通过判断哪一路超前,即可得到旋转方向;通过计数脉冲边沿,即可得到相对位移。每转还会输出一个 Z 相或零位脉冲,用于建立绝对参考点。

绝对式编码器则不同,它在每个位置输出唯一编码字,常见有并行输出、SSI、BiSS、EnDat 等串行协议。绝对式编码器上电即知位置,不需要回零,但协议帧一旦被干扰或截断,位置值可能整体偏移。安全编码器通常会在增量或绝对原理之上,增加内部自检、信号质量评估、冗余码道或校验字段,使输出不仅“有值”,而且“可信”。

安全编码器信号链与威胁模型 物理感知层 码盘 / 磁栅 光电 / 磁敏元件 A/B/Z 或绝对码字 信号调理层 差分驱动 / 滤波 电平转换 / 隔离 信号质量监测 安全处理层 双通道采集 / 比较 CRC / 序列号校验 位置 / 速度合理性检查 安全输出层 安全位置 / 速度 状态字 / 诊断 安全停止请求 威胁模型:编码器信号链上的典型攻击与故障 信号篡改 注入虚假脉冲 重放旧位置帧 信号丢失 断线 / 短路 屏蔽失效 共因失效 同一电源跌落 同一时钟漂移 协议攻击 帧截断 / 位翻转 非法命令注入 防护措施:差分传输 + 屏蔽接地 + CRC 校验 + 双通道比较 + 序列号防重放 + 安全协议 目标:将残余错误率降至安全完整性等级允许的范围 诊断反馈

二、常见编码类型与安全特性对比

不同编码类型在安全系统中的适用性差异很大。增量式编码器成本低、响应快,但上电位置未知,且脉冲计数对干扰敏感;绝对式编码器上电即知位置,但协议复杂,帧错误可能导致位置跳变;正余弦编码器输出模拟差分信号,可通过插值获得高分辨率,但需要额外的信号质量诊断。安全编码器通常采用“增量+绝对”或“双绝对”冗余结构,并内置自检电路。

编码类型 输出信号 上电位置 主要安全风险 典型安全增强
增量式 A/B/Z 方波 未知,需回零 脉冲丢失、方向误判 双通道计数、边沿校验
绝对式(SSI/BiSS) 串行数字帧 已知 帧截断、位翻转、重放 CRC、序列号、超时监测
正余弦 差分模拟正弦 需细分计数 幅值漂移、相位偏移 幅值/相位诊断、插值校验
安全绝对式 数字帧+安全字 已知 共因失效、内部故障 双码道、内部自检、安全协议

三、安全编码的核心原则

安全编码不是简单地把普通编码器“加个校验”,而是从系统层面建立可验证的信任链。核心原则可以归纳为以下四条:

  • 冗余与多样性:关键信号至少有两路独立来源,且尽量采用不同物理原理或不同芯片,避免共因失效。例如一路光电、一路磁电,或一路增量、一路绝对。
  • 可检测性:任何单点故障都应在规定时间内被检测到。检测手段包括 CRC、序列号、超时、幅值窗口、相位关系、双通道比较等。
  • 失效安全:一旦检测到不可信状态,系统应进入安全状态,如安全停止、限制速度或切换到冗余通道,而不是继续使用可疑数据。
  • 可追溯与可验证:编码器输出应携带状态字、诊断计数和校验信息,使安全逻辑能够判断数据的新鲜度、完整性和来源合法性。

安全编码检查清单:

  1. 是否定义了编码器信号链上的所有单点故障?
  2. 是否对位置、速度、方向分别设置了合理性窗口?
  3. 是否使用 CRC 或等效校验保护串行帧?
  4. 是否使用序列号或时间戳防止重放?
  5. 双通道数据是否在独立电源、独立时钟下采集?
  6. 检测到故障后,系统是否能在安全时间内进入安全状态?

四、案例与场景:从故障到防护

某伺服驱动系统在运行中偶发位置跳变,导致电机短暂反转。排查发现,编码器电缆与电机动力线捆扎在一起,绝对式编码器的串行帧在 PWM 开关时刻受到共模干扰,CRC 校验偶尔失败,但驱动器仅丢弃错误帧而未触发安全停止,下一帧位置值已发生偏移。改进措施包括:将编码器电缆与动力线分开走线并采用双绞屏蔽;在协议层增加序列号,检测帧丢失和重放;在安全逻辑中增加位置变化率限制,一旦单周期位置跳变超过阈值,立即触发安全停止。改进后,系统未再出现非预期反转。

常见误区:认为“编码器有 CRC 就安全了”。CRC 只能检测传输错误,不能防止重放、不能检测传感器内部漂移,也不能解决共因失效。安全编码必须与双通道比较、合理性检查和安全状态机配合使用,才能构成完整的安全论证。

五、威胁模型与防护映射

建立威胁模型时,可以从“攻击面”和“故障面”两个维度展开。攻击面包括物理接入、协议注入、重放和旁路;故障面包括断线、短路、电源跌落、时钟漂移、码盘污染和元件老化。针对每一类威胁,都需要明确对应的检测机制和响应策略。

威胁模型示例(简化):
威胁 T1:编码器电缆被恶意切断
  → 检测:差分信号丢失、超时
  → 响应:安全停止,状态字置位

威胁 T2:攻击者重放旧的位置帧
  → 检测:序列号不连续、时间戳过期
  → 响应:拒绝该帧,触发诊断

威胁 T3:电源共因跌落导致双通道同时失效
  → 检测:电源监测、双通道数据同时异常
  → 响应:进入安全状态,切断驱动使能

威胁 T4:码盘局部污染导致周期性位置误差
  → 检测:位置合理性检查、多圈一致性
  → 响应:降级运行或安全停止

安全编码基础的核心,是把编码器从“传感器”提升为“安全相关子系统”。只有同时理解其物理原理、编码类型、安全原则和威胁模型,才能在后续的双通道反馈设计中,正确选择冗余结构、诊断手段和安全响应策略,使整个信号链满足目标安全完整性等级的要求。