3. RS-485基础

RS-485 是工业现场总线中最常见的物理层标准之一,它并不规定应用层协议,而是规定了差分信号的电气特性、驱动能力、共模范围和总线拓扑约束。理解 RS-485 的五个核心要素——差分信号、双工方式、终端电阻、共模电压范围、总线负载与节点数——是后续设计隔离接口、选择收发器、排查通信故障的基础。

一、差分信号原理:为什么 RS-485 抗干扰强

RS-485 使用一对双绞线传输信号,分别称为 A(非反相)和 B(反相)。发送端驱动器在 A、B 之间产生一个极性相反的电压差:当 A 比 B 高约 2V 以上时表示逻辑 1,当 B 比 A 高约 2V 以上时表示逻辑 0。接收端只关心 A 与 B 之间的差值 VAB = VA − VB,而不关心每根线对地的绝对电压。

这种差分传输的关键优势在于共模抑制。当总线经过电机、变频器、继电器等强干扰环境时,A、B 两根线往往同时被耦合进相同的干扰电压,这个同时叠加的电压就是共模电压。由于接收器检测的是差值,共模成分在相减时被抵消,因此 RS-485 能在恶劣电磁环境中保持可靠通信。标准要求接收器在 −7V 至 +12V 的共模电压范围内仍能正确识别 200mV 以上的差分信号。

差分接收判据:VAB ≥ +200mV 判为逻辑 1;VAB ≤ −200mV 判为逻辑 0;−200mV 至 +200mV 之间为不确定区,应避免长时间停留。

二、半双工与全双工:两线制与四线制

RS-485 最常见的组网方式是两线制半双工:所有节点共享同一对差分线,同一时刻只能有一个节点发送,其余节点接收。发送与接收分时复用,因此需要方向控制引脚 DE/RE 来切换收发状态。半双工节省线缆、布线简单,是 Modbus RTU 等现场总线的默认方式。

四线制全双工则使用两对差分线:一对用于主站发送、从站接收,另一对用于从站发送、主站接收。全双工允许收发同时进行,但线缆数量翻倍,且通常只支持一主多从的点对点或主从结构,不能像半双工那样任意多主竞争。工程中应根据协议和实时性需求选择:Modbus RTU 用半双工,某些 PLC 与远程 IO 的专用链路可能用全双工。

RS-485 半双工与全双工拓扑对比 两线制半双工 节点1 节点2 节点N A B GND R R 同一时刻仅一个节点发送,DE/RE 切换方向 四线制全双工 主站 从站 TX+ / TX− RX+ / RX− R R 收发可同时进行,线缆数量翻倍

三、终端电阻:抑制反射的关键

RS-485 总线在高速或长距离传输时,信号到达线缆末端会发生反射,反射波与入射波叠加会造成波形畸变、误码率上升。为抑制反射,需要在总线物理两端各并联一个终端电阻,阻值通常等于双绞线的特性阻抗,约 120Ω。两个 120Ω 并联后总线等效负载为 60Ω,这也是 RS-485 驱动器必须能驱动的最小负载。

终端电阻的安装位置有严格要求:必须接在总线最远的两端,而不是每个节点都接。中间节点接终端电阻会形成多个阻抗不连续点,反而加重反射。短距离、低速率(如 9600bps、几十米)时,反射影响较小,可以不加终端电阻;但速率超过 115200bps 或距离超过 100m 时,应规范安装。此外,终端电阻还提供一定的直流偏置通路,配合偏置电阻可确保总线空闲时处于确定电平。

常见错误:每个节点都焊上 120Ω 终端电阻。若总线上有 10 个节点,等效负载仅 12Ω,驱动器可能过流保护或输出幅度不足,通信距离和抗扰度都会明显下降。

四、共模电压范围与总线负载、节点数限制

RS-485 标准规定接收器共模输入范围为 −7V 至 +12V。实际工程中,如果两个节点之间存在较大的地电位差,这个地差会直接叠加到共模电压上。当共模电压超出范围时,接收器可能误判甚至损坏。解决办法包括:使用隔离收发器切断地环路、增加共模扼流圈、在总线与地之间加共模旁路电容,以及确保单点接地。隔离 RS-485 正是为应对这种地电位差和共模干扰而设计的。

总线负载以“单位负载 UL”衡量,标准规定一个驱动器至少能驱动 32 个单位负载。现代收发器多为 1/8 UL 甚至 1/16 UL,因此一条总线上可挂接 256 个甚至更多节点。但节点数并非唯一限制,还受以下因素约束:

  • 驱动器能力:标准 32 UL,低负载收发器可扩展至 256 节点。
  • 线缆电容与长度:节点越多、分支越长,总线电容越大,边沿变缓,速率受限。
  • 终端电阻:两端 120Ω 并联后为 60Ω,驱动器必须提供足够差分输出。
  • 协议地址空间:Modbus RTU 地址 1~247,实际可寻址节点受协议限制。
  • 供电与隔离:每个隔离节点都消耗电源,需核算总功耗。
参数 典型值 / 要求 工程影响
差分输出电压 ≥ 1.5V(带 60Ω 负载) 决定接收端识别余量
接收灵敏度 ±200mV 低于此值进入不确定区
共模电压范围 −7V ~ +12V 超出需隔离或加共模抑制
终端电阻 120Ω × 2,接总线两端 抑制反射,等效负载 60Ω
单位负载 1 UL = 32 节点标准 1/8 UL 可扩展至 256 节点
最大速率与距离 10Mbps@12m,100kbps@1200m 速率与距离成反比

五、案例与复盘:一条 Modbus RTU 总线为何时通时断

某水处理现场使用 RS-485 半双工总线连接 18 台仪表,速率 19200bps,线长约 300m。调试时发现白天通信正常,夜间水泵启动后频繁丢包。排查过程如下:

  1. 用示波器观察 A、B 差分波形,发现水泵启动瞬间共模电压跳变超过 +12V,接收器进入不确定区。
  2. 检查终端电阻:两端各有一个 120Ω,但中间 5 个节点也焊了 120Ω,等效负载过低,差分幅度仅 0.9V。
  3. 测量地电位差:两端接地铜排之间存在约 4V 交流地差,叠加后共模电压进一步恶化。

整改措施:拆除中间节点终端电阻,仅保留两端 120Ω;将非隔离收发器更换为隔离型 RS-485 模块,切断地环路;在总线入口增加共模扼流圈。整改后连续运行一周无丢包。这个案例说明,RS-485 的五个基础要素不是孤立参数,而是相互耦合的系统约束:终端电阻影响负载,负载影响差分幅度,共模电压影响接收判据,双工方式决定方向控制逻辑。

设计检查清单:① 总线是否只有两端接 120Ω?② 共模电压是否在 −7V~+12V 内?③ 节点总数是否超过收发器 UL 能力?④ 半双工方向切换是否留有足够死区?⑤ 长线高速时是否核算了速率与距离乘积?