本节摘要:Modbus 串口九成的问题出在物理层:接线、端接、共地、布线。本节从 RS-485 的电气原理出发,讲清 A/B 线、终端电阻、菊花链、屏蔽与接地的工程规范,以及一张"物理层排障对照表"。位置:协议各层已通,本节处理最"硬"的一层——铜线上的信号质量。
RS-485 用两根线(A 与 B)传输差分信号:电平差决定 0/1(A-B > +200mV 为逻辑 1,< -200mV 为逻辑 0)。差分的好处是抗共模干扰——干扰同时叠加在两根线上,差值不受影响。三条底线必须守住:
1. 极性:A 接 A、B 接 B,反接则通信完全不通或数据全反 2. 共地:所有设备必须共参考地,浮地会造成共模电压超限 3. 负载:标准收发器每台约 1/8~1 负载单位,总线最多约 32 台标准设备
信号在线的末端会反射,反射叠加在信号上造成误码。终端电阻(120Ω,与电缆特性阻抗匹配)接在总线最远两端,吸收信号防止反射。现场最常见的错误有三种:不接(短线短距可能没事,长线高速率就误码);接太多(每台设备都并 120Ω,等效阻抗过低,驱动拉不动,信号幅度塌陷);接在中间(没接到末端,反射照样发生)。
正确拓扑:主站 ──120Ω──┤ 设备1 设备2 … 设备N ├──120Ω──(总线末端) (终端电阻只在物理两端各一个,中间设备高阻挂接)
判断终端电阻是否需要:**短距离(<50m)、低波特率(9600)**经常不接也能跑;长距离、高速率、多设备必须接。加装终端电阻后数据变差(反而误码),多半是阻值不对或加了多余电阻。
走线:A/B 双绞(双绞抗干扰),远离动力线(至少 30cm,交叉走直角),不与其他电缆长距离并行。屏蔽:屏蔽层单端接地(通常在主站侧),两端都接地会形成地环路,屏蔽层变成天线。共地:距离长时建议额外拉一根公共地线或在网关处共地,A/B 之间不共地是"偶发误码"的常见根源——雷击、电机启停时地电位跳变会把差分信号打到无效区。
| 现象 | 优先怀疑 | 验证 |
|---|---|---|
| 完全不通 | 极性反、断线 | 万用表量 A-B 通断 |
| 偶发误码 | 终端电阻、干扰 | 降波特率看是否改善 |
| 加设备后全乱 | 负载超限、阻抗失配 | 断开新设备观察 |
| 电机启停时乱 | 共地、干扰 | 查屏蔽接地、共地线 |
| 雷雨后异常 | 浪涌损坏收发器 | 查收发器芯片 |
要点回顾:差分信号靠电平差判 0/1;终端电阻只在两端各一;屏蔽单端接地、A/B 双绞、长距共地;排障按极性、终端、负载、共地、干扰的顺序查。铜线物理层稳了,下一节看以太网一侧——Modbus TCP 的组网与网关。
RS-485 的物理防护不止布线与端接,设备侧的电气设计同样关键:隔离——收发器与 MCU 之间用隔离器件(光耦或数字隔离),把总线侧的共模干扰隔离在设备内部电路之外;浪涌保护——总线上加 TVS 管或气体放电管,吸收雷击感应与电机启停的浪涌;偏置电阻——部分电路在主站侧加 390Ω-680Ω 上下拉偏置,保证总线空闲(无设备发送)时 A-B 电平稳定在确定状态,避免"空闲时收到随机乱码"。
空闲态问题:无设备发送时总线浮空,接收端可能收到随机字节 解法:主站侧 A 上拉到 VCC、B 下拉到 GND(各约 390-680Ω), 空闲时 A-B 恒为正 → 稳定空闲态,不产生乱码
RS-485 的 1200 米与 32 台设备是"典型值",真实上限受三件事约束:速率(越高越短,115200 通常只能 100 米内可靠);线缆质量(双绞屏蔽线的特性阻抗 120Ω 是终端电阻匹配的前提);负载数量(高阻抗收发器能把设备数扩到 256 台以上)。超距场景的解法:分段加中继(RS-485 中继器信号整形再放大)或改光纤转 485 的转换器——光纤无干扰、无距离问题,是长距离总线的终极方案。
把现场经验浓缩成十条军规:1 主干用屏蔽双绞;2 终端电阻只在两端;3 每台设备就近 T 接不入主干中间;4 A/B 极性全链路统一色标;5 屏蔽层单端接地;6 远离动力线与变频器;7 交叉动力线走直角;8 长距离加中继或光转;9 所有设备共地;10 施工后逐段测量 A-B 通断与绝缘。十条都做到,物理层故障率会降一个数量级。
问:总线上设备超过 32 台怎么办? 用高阻抗收发器(1/4、1/8 负载)可扩到上百台;或加 RS-485 中继器分段,每段重新偏置与端接。
问:为什么加一台设备后整条线乱套? 负载超限或阻抗失配是两大嫌疑:先断开新设备看是否恢复,再查新设备的收发器负载与接入位置。
问:485 布线能用普通线吗? 能用但别长期用:普通线无双绞无特性阻抗,干扰与反射都更严重。主干请用屏蔽双绞(特性阻抗 120Ω 匹配终端电阻)。
