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 知识体系总览
下面这张图,把编码器的基础知识串起来了。你对照着看,心里就有谱了。
这张图把增量式、绝对式、接口类型、分辨率精度、选型要点都串起来了。你以后做编码器选型或FPGA接口设计时,对着这张图捋一遍,基本不会漏东西。
个人经验:我建议初学者先从增量式ABZ接口入手,用FPGA做脉冲计数和方向判断。这个练熟了,再上绝对式SSI/BiSS。一步一个脚印,基础打牢了,后面换相逻辑建模才稳。