3、RS-485/422物理层:差分信号原理、总线拓扑结构、终端匹配电阻、共模电压与隔离
3.1 差分信号:为什么工业现场都选它?
做运动控制这么多年,我见过太多新手在通讯上栽跟头。尤其是长距离传输,单端信号(比如TTL电平)根本扛不住。你想想看,电机一启动,变频器一开,整个现场的电磁环境就跟打仗似的。
RS-485/422的核心武器就是差分信号。说白了,就是不用一根线传信号,而是用两根线(A和B)传一对相反的信号。发送端让A线比B线高,代表逻辑1;A线比B线低,代表逻辑0。
接收端只看A和B的差值,不看它们对地的绝对电压。这就厉害了——外部干扰同时耦合到两根线上,差值基本不变。我在一个伺服驱动器项目里实测过,在50米长的电缆旁放一个电焊机,单端信号直接乱码,差分信号纹丝不动。
- 差分电压范围:典型值±1.5V ~ ±6V(标准RS-485要求≥±1.5V)
- 共模输入范围:-7V ~ +12V(这是芯片能承受的底线)
- 接收器阈值:±200mV(超过这个范围才认为是有效信号)
3.2 总线拓扑:别乱接,有讲究
RS-485支持多点通讯,但拓扑结构有严格限制。我见过有人把485线接成星形,结果怎么调都不通。嗯,这里要注意:RS-485必须是手拉手的菊花链拓扑。
为什么?因为差分信号要求阻抗连续。星形或T型分叉会产生信号反射,导致数据错乱。我有个同事曾经在一条总线上接了8个驱动器,中间分叉了3次,结果通讯距离超过30米就开始丢包。改成菊花链后,200米稳如老狗。
RS-422和RS-485的区别在于:
- RS-422:全双工,一对发送线,一对接收线。一主多从,从机不能主动发。
- RS-485:半双工,一对线分时收发。所有节点都能发,但同一时刻只能一个发。
我个人习惯,在运动控制总线中优先用RS-485。因为线少,成本低,而且半双工对大多数轮询协议来说完全够用。
3.3 终端匹配电阻:为什么必须加?
信号在电缆里传输,遇到阻抗不连续的地方就会反射。反射回来的信号叠加在原信号上,轻则波形畸变,重则数据错误。
终端匹配电阻的作用,就是吸收信号能量,不让它反射回来。电阻值必须等于电缆的特性阻抗。常用的双绞线特性阻抗是120Ω,所以终端电阻一般用120Ω。
怎么加?很简单:在总线的两端各加一个120Ω电阻。中间节点不需要加。我见过有人每个节点都加,结果信号幅度被拉低,通讯距离直接减半。
| 电缆类型 | 特性阻抗 | 终端电阻 |
|---|---|---|
| 普通双绞线(CAT5) | 100Ω | 100Ω |
| RS-485专用电缆 | 120Ω | 120Ω |
| 低电容电缆 | 150Ω | 150Ω |
3.4 共模电压与隔离:保护你的设备
差分信号虽然抗干扰强,但它对共模电压很敏感。共模电压就是A线和B线对地的平均电压。理想情况下,这个电压应该在0V附近。但实际中,由于地电位差、电机漏电流等原因,共模电压可能漂到几十伏甚至上百伏。
RS-485芯片的共模输入范围一般是-7V到+12V。一旦超出这个范围,芯片就可能烧毁。我在一个工厂里遇到过,两个设备相距200米,地电位差达到15V,结果烧了3个485芯片。
解决方案就是隔离。用隔离电源和隔离收发器(比如ADM2483、ISO3082),把总线侧和逻辑侧完全隔开。隔离电压一般要求2500Vrms以上。
我个人建议,只要设备之间距离超过50米,或者存在大功率设备(变频器、伺服驱动器),就一定要用隔离。别省这个钱,烧一个芯片的功夫,够买10个隔离模块了。
- 光耦隔离:成本低,但速度受限(一般不超过1Mbps)
- 磁耦隔离:速度快(可达几十Mbps),但抗共模干扰能力稍弱
- 容耦隔离:速度快,抗干扰强,但成本高
3.5 知识体系总览
下面这张图,是我自己总结的RS-485/422物理层核心逻辑。你把它记牢了,现场调试至少能少走一半弯路。
这张图把四个核心知识点串起来了。你从中心出发,沿着分支走一遍,就能建立起完整的物理层知识框架。我个人习惯,每次去现场调试前,都会在脑子里过一遍这张图,确保没有遗漏。
公众号:蓝海资料掘金营,微信deep3321