2. 增量式编码器原理:A/B/Z信号解析、分辨率与线数、倍频技术(1x/2x/4x)

增量式编码器,说白了就是电机控制里的「眼睛」。它不告诉你绝对位置,只告诉你「动了多少」和「往哪动」。我刚开始做伺服驱动时,总觉得这东西简单,不就是两个方波嘛。直到有一次在振动台上调试,信号抖得跟心电图似的,我才意识到——增量编码器的门道,全在细节里。

这一节,咱们就把A/B/Z信号、分辨率、线数、倍频这些概念彻底讲透。你想想看,搞懂这些,换相逻辑才能落地。

2.1 A/B/Z信号解析

增量编码器输出三路信号:A相、B相、Z相。A和B是正交方波,相位差90°。Z相是零位脉冲,每转一圈输出一个。

核心要点: A/B信号的相位关系决定了旋转方向。A超前B是正转,B超前A是反转。Z信号用于归零校准,是绝对位置的参考点。

我在项目中遇到过一个问题:电机上电后第一次找零,Z信号没抓到,结果位置直接跑偏。后来我养成了一个习惯——每次上电后强制让电机转一圈,确保Z信号被捕获。嗯,这个坑踩过就记住了。

A/B信号:正交解码的基础

A和B是两路相位差90°的方波。为什么是90°?因为这样可以用边沿判断方向。你想想看,如果只有一路信号,你只能知道转速,不知道正反转。有了两路,一切就清晰了。

  • A超前B 90°:正转(顺时针)
  • B超前A 90°:反转(逆时针)
  • 边沿触发:每个上升沿或下降沿都可以计数

个人经验: 我建议在硬件设计时,给A/B信号加上施密特触发器。编码器线缆长的时候,信号容易有毛刺,施密特能有效去抖。我曾经因为省了这个,在EMC测试时吃了大亏。

Z信号:零位校准的关键

Z信号每圈只输出一个脉冲,宽度通常为1个A/B周期。它的作用有两个:

  1. 归零:每次捕获Z信号,将位置计数器清零
  2. 校准:消除累积误差,确保长期精度

我记得有一次调试龙门同步,两个电机各有一个编码器。Z信号没对齐,结果两个轴的位置基准差了半个脉冲。后来我加了Z信号同步逻辑,问题才解决。所以,Z信号不是摆设,它是精度最后的保险。

2.2 分辨率与线数

线数(PPR,Pulses Per Revolution)是编码器的核心参数。它决定了你能分辨的最小角度。线数越高,精度越高,但成本也越高。

线数(PPR) 每圈脉冲数 最小角度(1x) 典型应用
100 100 3.6° 简单速度检测
1000 1000 0.36° 通用伺服
2500 2500 0.144° 高精度伺服
5000 5000 0.072° 机器人关节

你可能会问:线数是不是越高越好?其实不是。线数高了,信号频率也高,对控制器的主频和输入捕获能力要求更高。我见过有人用5000线的编码器配一个低端MCU,结果脉冲根本数不过来,位置直接飞了。

避坑指南: 我曾经在选型时只看线数,忽略了编码器的最大响应频率。结果电机高速运行时,脉冲频率超过了编码器的电气极限,信号直接丢失。记住:线数 × 最高转速 ≤ 编码器最大响应频率。

2.3 倍频技术:1x / 2x / 4x

倍频技术,说白了就是用更少的线数,获得更高的分辨率。怎么做到的?利用A/B信号的边沿。

  • 1x倍频:只检测A相的上升沿。每周期计1个数。
  • 2x倍频:检测A相的上升沿和下降沿。每周期计2个数。
  • 4x倍频:检测A相和B相的上升沿和下降沿。每周期计4个数。

你想想看,一个周期内,A和B各有1个上升沿和1个下降沿,总共4个边沿。每个边沿都计数,分辨率就提高了4倍。

关键公式: 实际分辨率 = 线数 × 倍频数。例如,1000线编码器用4x倍频,每圈就有4000个计数脉冲,最小角度0.09°。

三种倍频方式的对比

倍频方式 每周期计数 分辨率提升 适用场景
1x 1 1倍 低速、简单计数
2x 2 2倍 中速、通用控制
4x 4 4倍 高速、高精度控制

我个人习惯在伺服驱动中默认用4x倍频。为什么?因为4x倍频不仅提高了分辨率,还能在低速时获得更平滑的速度反馈。你想想看,电机在1rpm时,1000线编码器用1x倍频,每秒只有16.7个脉冲,速度环根本没法算。但用4x倍频,每秒有66.7个脉冲,控制效果就好多了。

实现技巧: 在STM32等MCU上,可以用定时器的编码器模式直接实现4x倍频。硬件自动计数,不占CPU。我曾经手写过软件解码,结果CPU占用率飙到30%,后来换成硬件模式,瞬间降到1%。

2.4 知识体系总览

下面这张图把增量编码器的核心逻辑串起来了。从A/B/Z信号到倍频技术,再到分辨率计算,一目了然。

增量式编码器知识体系 增量式编码器核心知识体系 A/B/Z 信号 正交方波 + 零位脉冲 相位差 90° A超前B正转 / B超前A反转 Z信号归零 每圈一次,消除累积误差 线数(PPR) 每圈脉冲数,决定基础分辨率 分辨率计算 最小角度 = 360° / (PPR × 倍频数) 倍频技术:1x / 2x / 4x 1x: 仅A上升沿 | 2x: A上升+下降沿 | 4x: A+B全部边沿 输出:位置 / 速度 / 方向 注意:线数越高 信号频率越高

这张图把增量编码器的知识体系串起来了。从A/B/Z信号出发,到线数和分辨率,再到倍频技术,最后输出位置、速度和方向。你想想看,每一步都是环环相扣的。

2.5 实战中的常见问题

讲完了理论,咱们聊聊实战中容易踩的坑。我总结了几个,你对照看看有没有遇到过。

  • 信号抖动:编码器线缆长或环境干扰大时,A/B信号会有毛刺。解决方案:加施密特触发器或软件滤波。
  • Z信号丢失:电机高速旋转时,Z信号脉冲太窄,控制器没捕获到。解决方案:用Z信号中断,优先级设高。
  • 倍频方向错误:4x倍频时,如果A/B接反,计数值会反向。解决方案:上电后先校验方向,不对就交换A/B。
  • 累积误差:长时间运行后,位置会漂移。解决方案:定期用Z信号归零,或者用绝对编码器。

我曾经踩过的坑: 有一次在高速冲压机上用增量编码器,电机转速3000rpm,1000线编码器用4x倍频,脉冲频率高达200kHz。结果MCU的输入捕获模块扛不住,丢了不少脉冲。后来我换成了硬件解码的编码器接口,问题才解决。所以,选型时一定要算脉冲频率,别光看线数。