1. 编码器基础:增量式与绝对式编码器原理、分辨率与精度概念、常用接口类型

编码器这东西,说白了就是电机控制系统的「眼睛」。没有它,你的控制器就是个瞎子,连转子转到哪了都不知道。我刚开始做电机驱动那会儿,总觉得编码器就是个简单的角度传感器,后来踩了不少坑才明白——选错编码器类型,整个项目都得重来。

这一节,咱们把编码器的基础掰开揉碎讲清楚。你搞懂了这些,后面换相逻辑建模才能顺风顺水。

1.1 增量式编码器:简单但有个致命缺点

增量式编码器,我习惯叫它「脉冲计数器」。它不告诉你绝对位置,只告诉你「动了多少」。就像你走路时数步数,但不知道起点在哪。

工作原理

码盘上刻着一圈均匀的透光/遮光条纹。光通过码盘照到接收器上,每转过一条纹,就输出一个脉冲。控制器数脉冲个数,就知道转了多少角度。

关键点:增量式编码器断电后位置丢失。上电必须回零(找Home位置),否则位置全乱套。

A、B、Z 三路信号

  • A相和B相:相位差90°,用来判断旋转方向。A超前B是正转,B超前A是反转。
  • Z相(零位信号):每转一圈输出一个脉冲,用于校准绝对位置。

我记得有一次做伺服驱动器,客户反馈电机上电后乱跑。查了半天,发现是Z相没接,控制器不知道零点在哪。嗯,这种低级错误,犯过一次就记住了。

避坑指南:我曾经在高速电机项目里用过增量式编码器,转速一高,脉冲频率超过计数器上限,直接丢步。后来换了更高分辨率的编码器,同时做了脉冲倍频处理才解决。

1.2 绝对式编码器:位置永不失忆

绝对式编码器就聪明多了。每个位置都有唯一的二进制码,断电再上电,位置还在。你想想看,这多省心。

单圈 vs 多圈

类型 特点 典型应用
单圈绝对式 一圈内位置唯一,超过一圈重复 机器人关节、数控机床主轴
多圈绝对式 记录总圈数+圈内位置,断电不丢 多圈旋转设备、AGV转向轮

多圈绝对式编码器内部有机械齿轮或电子计数器,能记录4096圈甚至更多。我个人习惯在需要长期断电保持位置的场合,直接上多圈绝对式,省去回零的麻烦。

1.3 分辨率与精度:别搞混了

这两个概念,我面试新人时必问。十个人里有八个答不对。

分辨率:编码器能分辨的最小角度变化。说白了就是「细不细」。

  • 增量式:每圈脉冲数(PPR)。比如1024 PPR,分辨率 = 360°/1024 ≈ 0.35°
  • 绝对式:位数。比如17位,分辨率 = 360°/2^17 ≈ 0.0027°

精度:实际位置与真实位置的偏差。说白了就是「准不准」。

举个例子:一个17位绝对式编码器,分辨率0.0027°,但精度可能只有±0.1°。为什么?码盘刻划误差、安装偏心、温度漂移都会影响精度。分辨率高不代表精度高,这个坑我踩过。

我曾经在一个精密定位项目里,选了20位编码器,以为精度无敌。结果实测重复定位误差0.05°,根本达不到要求。后来换了更高精度等级的编码器,问题才解决。分辨率是理论值,精度是实际值,两者差着十万八千里。

1.4 常用接口类型:ABZ、SSI、BiSS

接口决定了你怎么读数据,也决定了传输速度和抗干扰能力。

接口 类型 传输方式 最大速率 典型应用
ABZ 增量式 并行脉冲 ~10 MHz 通用伺服、步进电机
SSI 绝对式 同步串行 ~10 Mbps 工业自动化、机器人
BiSS 绝对式 全双工串行 ~100 Mbps 高速高精度伺服

ABZ接口:最传统,三根线(A、B、Z)加电源。简单可靠,但线多了容易受干扰。我建议长距离传输时加差分驱动(RS-422)。

SSI接口:时钟+数据两根线,控制器发时钟,编码器回数据。协议简单,FPGA实现起来很轻松。但速度上不去,10 Mbps左右就到头了。

BiSS接口:这是目前高速伺服的主流。全双工,时钟和数据同时双向传输,速率能到100 Mbps。而且支持CRC校验,抗干扰能力强。我个人在FPGA验证项目里最喜欢用BiSS,时序好约束,数据可靠性高。

选型建议:如果只是做低速位置检测,ABZ够用还便宜。如果做高速高精度伺服,直接上BiSS,别犹豫。SSI现在有点尴尬,不上不下,除非客户指定,否则我一般不推荐。

1.5 知识体系总览

下面这张图,把编码器的基础知识串起来了。你对照着看,心里就有谱了。

编码器基础知识体系 编码器 增量式编码器 绝对式编码器 常用接口 A/B/Z信号 脉冲计数 单圈/多圈 二进制码 ABZ SSI BiSS 分辨率 vs 精度 选型与避坑 核心要点 • 增量式:结构简单、成本低,但断电丢位置,需回零 • 绝对式:位置永不失忆,单圈/多圈按需选择 • 分辨率≠精度,高速场合优先选BiSS接口

这张图把增量式、绝对式、接口类型、分辨率精度、选型要点都串起来了。你以后做编码器选型或FPGA接口设计时,对着这张图捋一遍,基本不会漏东西。

个人经验:我建议初学者先从增量式ABZ接口入手,用FPGA做脉冲计数和方向判断。这个练熟了,再上绝对式SSI/BiSS。一步一个脚印,基础打牢了,后面换相逻辑建模才稳。