1. RS485 基础认知:差分信号原理、RS485 与 RS232 对比、半双工通信模型

各位工程师朋友,咱们今天正式开讲 RS485。说实话,我入行那会儿,第一个接触的工业总线就是它。那时候在工厂调试一台变频器,死活连不上,折腾了一整天,最后发现是 A/B 线接反了。嗯,这种低级错误,我相信不少人都犯过。

RS485 看起来简单,但坑不少。咱们先把基础打牢,后面几章再深入组网和调试技巧。

1.1 差分信号:RS485 的物理层灵魂

RS485 为什么能在工业现场跑几百米、抗干扰还那么强?核心就两个字:差分。

说白了,差分信号就是用两根线(A 和 B)的电压差来表示逻辑 0 和逻辑 1。不是像单端信号那样,一根线对地量电压。

差分信号逻辑定义(RS485 标准):

  • 逻辑 1(Mark): A 线电压比 B 线高 ≥ 200 mV(通常 A-B > +200 mV)
  • 逻辑 0(Space): A 线电压比 B 线低 ≥ 200 mV(通常 A-B < -200 mV)

为什么差分能抗干扰?我举个例子。假设现场有一台大电机启动,产生强电磁干扰。这个干扰会同时耦合到 A 线和 B 线上,幅度几乎一样。接收器只看 A 和 B 的差值,共模干扰就被抵消掉了。你想想看,单端信号能这样吗?不能。地线一抖,信号就跟着抖。

个人经验: 我在项目里见过有人用双绞线代替屏蔽线跑 RS485,距离 50 米以内,效果其实还行。双绞线本身就能抑制共模干扰,每英寸绞合一次,效果最佳。但超过 100 米,我建议还是上屏蔽双绞线,而且屏蔽层单端接地。

咱们用一张图来理解差分信号的传输过程:

差分信号传输原理示意图 发送器 接收器 A 线 B 线 Vdiff = VA - VB 共模干扰同时耦合到 A/B 关键点: • 接收器只关心 VA - VB 的差值,不关心绝对电压 • 共模电压范围:-7V ~ +12V(RS485 标准) • 干扰同时出现在 A/B 线上,差值不变 → 抗干扰能力强

1.2 RS485 vs RS232:一场降维打击

很多初学者搞不清 RS232 和 RS485 的区别。我直接说结论:RS232 是点对点的短距通信,RS485 是总线式的长距组网。

咱们用一张表来对比:

对比项 RS232 RS485
传输方式 单端(对地) 差分(A/B 线)
最大距离 约 15 米(@9600bps) 约 1200 米(@9600bps)
最大节点数 1 对 1 最多 256 个(标准负载)
通信模式 全双工 半双工(主流)
电压摆幅 ±5V ~ ±15V ±1.5V ~ ±6V
抗干扰能力 弱 强
典型应用 调试串口、短距设备 工业总线、楼宇自控

避坑指南: 我曾经在一个项目里,把 RS232 的 TX 和 RX 直接接到 RS485 的 A/B 线上,结果烧了一片接口芯片。RS232 的电压摆幅高达 ±15V,而 RS485 芯片的共模耐压只有 -7V ~ +12V。千万别混接!

RS232 为什么距离短?因为它用的是单端信号,地线压降会直接吃掉信号余量。你想想看,15 米线缆上,地线电阻加上接触电阻,压降可能超过 1V。RS232 的接收阈值是 ±3V,余量本来就不大。

RS485 就不一样了。差分信号不依赖地线参考,A/B 线之间的压差在几百米外仍然能保持 200mV 以上。而且 RS485 的接收器灵敏度可以做到 ±50mV,余量非常充裕。

1.3 半双工通信模型:一根线上怎么说话?

RS485 最常用的模式是半双工。什么意思?就是同一时刻,总线上只能有一个设备在发送,其他设备都在听。就像对讲机,你说的时候我听,我说的时候你听,不能同时说。

半双工 RS485 的典型结构是这样的:

RS485 半双工总线拓扑 主机 (Master) 从机 1 从机 2 从机 3 从机 4 A/B 总线 120Ω 120Ω • 主机轮询从机,从机收到自己的地址后才回复 • 总线两端各接一个 120Ω 终端电阻,防止信号反射

半双工通信的流程其实很简单:

  1. 主机发送: 主机使能发送器,向总线上发送数据帧(包含目标地址)。
  2. 所有从机接收: 每个从机都在监听总线,解析地址是否匹配自己。
  3. 目标从机回复: 匹配的从机使能自己的发送器,向总线回复数据。
  4. 主机接收: 主机收到回复后,继续下一轮轮询。

个人习惯: 我在写 RS485 驱动时,会在发送完成后加一个 3~5 字节的延时,再切换为接收模式。为什么?因为 RS485 芯片的发送器关闭后,总线需要一点时间恢复到空闲状态(高阻或偏置电压)。如果切换太快,可能会把发送器关闭瞬间的毛刺当成数据接收进来。这个坑我踩过,后来加了延时就稳了。

1.4 本章小结

咱们这一章把 RS485 的底子打好了:

  • 差分信号是 RS485 抗干扰的根本,A/B 线看差值,不看绝对值。
  • RS485 vs RS232,一个适合组网长距,一个适合点对点短距,别用错。
  • 半双工模型决定了总线上的通信规则:一次只让一个人说话。