第1章:物理层与电气特性 — RS-232/RS-485/RS-422接口详解

各位同学,咱们今天聊聊Modbus RTU的物理层。说实话,很多搞了几年工控的老手,一提到RS-485的终端电阻该加多少、偏置电阻怎么算,照样会翻车。我当年刚入行时也吃过这个亏,所以这一章咱们把底层的电气特性彻底讲透。

1.1 三种接口标准:RS-232、RS-485、RS-422

Modbus RTU跑在串行通信上,而串行通信的物理层无非就是这三种。你想想看,为什么同一个Modbus协议,有的设备用DB9头,有的用螺丝端子?就是因为底层电气标准不一样。

RS-232:点对点,距离短

RS-232是最老的标准,PC机上的COM口就是它。它的信号是单端传输,说白了就是一根信号线对地线,电压差来代表逻辑0和1。

  • 逻辑1:-3V ~ -15V
  • 逻辑0:+3V ~ +15V
  • 最大距离:约15米(实际我见过有人拉到30米也能用,但不推荐)
  • 最大节点数:1对1,只能接一个设备
⚠ 注意:RS-232的共模抑制能力很差。我在一个变频器项目里遇到过,线缆一靠近动力电缆,通信就乱码。后来换成RS-485才解决。

RS-485:差分传输,抗干扰强

RS-485是目前工业现场最常用的标准。它用两根线(A和B)传输差分信号,两根线的电压差来决定逻辑状态。为什么抗干扰?因为干扰信号会同时作用在两根线上,差值不变,这就是共模抑制的原理。

  • 逻辑1:A比B高+200mV以上
  • 逻辑0:A比B低-200mV以上
  • 最大距离:1200米(加中继可以更远)
  • 最大节点数:32个(标准负载,使用高阻抗芯片可达256个)

我个人习惯,凡是距离超过10米或者现场有电机、变频器的场合,一律用RS-485。别省那几块钱的转换器钱,不然后面调试能让你崩溃。

RS-422:全双工,但用得少

RS-422和RS-485很像,也是差分传输。区别在于RS-422是全双工,有独立的发送和接收线对。而RS-485是半双工,收发共用一对线。

特性 RS-232 RS-485 RS-422
传输方式 单端 差分 差分
最大节点 1对1 32~256 1发10收
最大距离 15米 1200米 1200米
双工模式 全双工 半双工 全双工
典型应用 短距调试 工业总线 高速采集

嗯,这里要注意:RS-422虽然支持全双工,但Modbus RTU协议本身是半双工的——主机发完才能收。所以RS-422的优势在Modbus场景下其实发挥不出来。我一般只在PLC和高速数据采集卡之间用RS-422。

1.2 终端电阻与偏置电阻

这两个电阻是RS-485网络里最容易搞错的地方。我曾经在一个污水处理厂的项目里,就因为终端电阻没加,导致最远端的仪表经常掉线。后来用示波器一看,信号反射得一塌糊涂。

终端电阻:消除信号反射

为什么需要终端电阻?信号在电缆里传输,到了末端如果阻抗不匹配,就会反射回来,和后面的信号叠加,造成波形畸变。终端电阻的作用就是吸收信号能量,不让它反射。

  • 阻值:等于电缆的特性阻抗,通常为120Ω
  • 位置:只在总线的最远两端各加一个
  • 注意:中间节点绝对不要加!
✅ 正确做法:总线两端各并联一个120Ω电阻。如果只有两个设备,就在两个设备端各加一个。

偏置电阻:保证空闲状态

当总线上没有设备发送数据时,所有收发器都处于高阻态。这时候A和B线之间没有电压差,接收器可能读到随机电平。偏置电阻的作用就是在空闲时把总线拉到确定的逻辑1状态

偏置电阻的计算方法:

假设供电电压Vcc = 5V,终端电阻Rt = 120Ω
要求空闲时A-B电压差 > 200mV

偏置电阻Rb的计算:
Rb = (Vcc × Rt) / (2 × Vab) - Rt/2
   = (5 × 120) / (2 × 0.2) - 60
   = 1500 - 60
   = 1440Ω

实际取标称值:1.5kΩ
💡 我的经验:偏置电阻一般加在主机端。如果从机数量多、线缆长,可以在两端都加。但注意不要加太多,否则会加重收发器的驱动负担。

1.3 总线拓扑与布线规范

Modbus RTU的总线拓扑,说白了就是手拉手的菊花链结构。每个设备从总线上并接出来,而不是星形或树形。为什么?因为分支线会产生阻抗不连续点,造成信号反射。

正确的拓扑结构

  • 菊花链:从主机到从机1,再到从机2,依次串联
  • 分支线长度:不超过1米(我见过有人拉了5米分支线,结果通信时好时坏)
  • 总线长度:不超过1200米(9600bps时)

布线规范

我在现场总结了几条铁律,照着做基本不会出问题:

  1. 用双绞屏蔽线:至少2芯双绞,屏蔽层单端接地
  2. 屏蔽层接地:只在主机端接地,不要两端都接,否则形成地环路
  3. 远离干扰源:和动力电缆保持20cm以上距离,交叉时垂直走
  4. 统一参考地:所有设备的信号地(GND)要连在一起
  5. 避免T型分支:实在无法避免时,分支线越短越好
⚠ 避坑指南:我曾经在一个光伏电站项目里,施工队把RS-485线和220V电源线绑在一起走管。结果一开逆变器,通信全断。后来重新布线,单独走金属管,问题才解决。记住:信号线和动力线必须分开走管

常见错误汇总

错误做法 后果 正确做法
不加终端电阻 信号反射,长距离通信失败 两端各加120Ω
中间节点加终端电阻 信号衰减,驱动能力不足 只在两端加
星形拓扑 阻抗不匹配,通信不稳定 菊花链拓扑
屏蔽层两端接地 地环路干扰,严重时烧毁接口 单端接地
不连信号地 共模电压过高,通信异常 所有设备GND相连

好了,这一章的内容就这些。物理层是Modbus通信的基石,搞不懂这些,后面写再多代码也是白搭。下一章咱们开始讲Modbus RTU的报文格式,到时候你会明白,为什么物理层这么重要。

📌 课后建议:拿个示波器,看看你手头设备的RS-485波形。空闲时A-B电压差应该在200mV以上,发送时峰峰值应该在1.5V~5V之间。如果波形不对,先检查终端电阻和偏置电阻。