3、信号输出类型:TTL/HTL差分信号、Sin/Cos模拟信号、SSI/BiSS/CANopen等数字协议
编码器选型时,信号输出类型是绕不开的核心问题。我见过不少工程师,选型时只盯着分辨率,结果现场信号传回来全是噪声,折腾好几天才发现是输出类型没选对。说白了,编码器输出的信号就三大类:脉冲型、模拟型、数字协议型。咱们一个一个捋清楚。
3.1 TTL/HTL差分信号——最经典的脉冲输出
TTL和HTL,本质上是电平标准不同。TTL是5V逻辑,HTL是10-30V逻辑。你想想看,工业现场动不动几十米长线,TTL那点电压很容易被干扰吃掉。所以长距离传输,我建议优先选HTL。
但真正抗干扰的杀手锏,是差分信号。A+、A-、B+、B-、Z+、Z-,六根线。为什么差分抗干扰?因为干扰信号同时作用在两根线上,接收端只看差值,共模噪声就被抵消了。
关键参数速查表
| 参数 | TTL | HTL |
|---|---|---|
| 供电电压 | 5V ±5% | 10-30V |
| 输出高电平 | ≥3.5V | ≥供电电压-2V |
| 输出低电平 | ≤0.5V | ≤2V |
| 最大频率 | 可达几MHz | 通常≤200kHz |
| 传输距离 | ≤10米 | ≤100米 |
| 抗干扰能力 | 一般 | 较强 |
我的经验:曾经有个项目,电机和控制器距离15米,用了TTL单端信号,结果编码器读数跳得跟心电图似的。换成HTL差分后,问题立刻消失。记住:超过5米,老老实实用差分。
3.2 Sin/Cos模拟信号——高分辨率的秘密
TTL/HTL输出的是方波,一个周期只能分辨4个边沿(A、B各两个)。但Sin/Cos输出的是正余弦模拟信号,一个周期内可以细分出成千上万个位置点。
为什么会这样?因为方波只有高低电平两个状态,而模拟信号是连续变化的。通过ADC采样,配合插值算法,理论上可以把一个信号周期细分到2^12甚至2^16个位置。
Sin/Cos信号通常是1Vpp(峰峰值1V)差分输出,也有0.5Vpp的。注意,这里说的1Vpp是指正弦波从波谷到波峰的电压差,不是有效值。
⚠️ 避坑指南:我曾经在振动环境下用过Sin/Cos编码器,结果ADC采样值抖动很大。后来发现是模拟信号对噪声太敏感,必须用屏蔽双绞线,而且屏蔽层要单端接地。否则,你细分得再高,也是虚假精度。
3.3 数字协议——SSI、BiSS、CANopen
脉冲输出和模拟输出,本质上都是把位置信息编码成连续信号。而数字协议,是把位置数据打包成帧,通过串行总线传输。好处很明显:一根线就能传位置、速度、温度、报警等一堆信息。
3.3.1 SSI——最老牌的数字协议
SSI(同步串行接口)是西门子搞出来的,时钟+数据两根线。主机发时钟,编码器在时钟下降沿输出数据。简单可靠,但速度慢,通常不超过1MHz时钟频率。
SSI的帧格式很固定:起始位+位置数据+状态位+校验位。我建议你特别注意格雷码和二进制码的选择。格雷码每次只变一位,抗干扰能力强,但解析起来多一步转换。
3.3.2 BiSS——SSI的升级版
BiSS(双向同步串行接口)是IC-Haus公司推出的,兼容SSI的物理层,但协议更灵活。它支持双向通信,可以写参数、读诊断信息。而且BiSS的时钟频率可以跑到10MHz以上,延迟比SSI低很多。
BiSS有两种模式:BiSS-C(连续模式)和BiSS-B(突发模式)。我个人习惯用BiSS-C,因为数据连续更新,适合实时控制。
BiSS vs SSI 对比
| 特性 | SSI | BiSS |
|---|---|---|
| 时钟频率 | ≤1MHz | ≤10MHz |
| 通信方向 | 单向(编码器→控制器) | 双向 |
| 数据更新 | 请求-响应 | 连续/请求 |
| 诊断功能 | 有限 | 丰富 |
| 兼容性 | 广泛 | 逐渐普及 |
3.3.3 CANopen——工业总线之王
CANopen是基于CAN总线的应用层协议。编码器作为从站,通过PDO(过程数据对象)实时发送位置信息。CANopen最大的优势是组网能力:一条总线上可以挂几十个编码器,而且每个节点都有心跳检测。
CANopen的编码器通常支持三种操作模式:
- 轮询模式:主机问一次,编码器答一次。简单但效率低。
- 同步模式:所有编码器同时采样,然后依次发送。适合多轴同步。
- 事件触发模式:位置变化超过阈值才发送。适合低速监控。
我的建议:如果你做单轴控制,BiSS是性价比最高的选择。如果做多轴同步,CANopen的同步模式能省掉你大量硬件连线。但要注意,CANopen的实时性受总线负载影响,我曾经在一条总线上挂了32个编码器,结果同步周期只能做到2ms,再快就丢帧了。
3.4 知识体系总览
下面这张图,把三种信号类型的关系和适用场景梳理清楚了。你可以把它当作选型时的快速参考。
嗯,到这里,信号输出类型的基本框架就搭起来了。实际项目中,你可能会遇到混合使用的情况——比如编码器输出Sin/Cos,驱动器内部做细分后再转成数字协议传给控制器。但不管怎么组合,底层原理就是这三种。
一句话总结:脉冲型适合简单场景,模拟型适合高精度场景,数字协议型适合复杂系统。选型时先看传输距离,再看分辨率要求,最后看系统复杂度。别一上来就追求最高端的,够用就好。
公众号:蓝海资料掘金营,微信deep3321