第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-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Ω
- 位置:只在总线的最远两端各加一个
- 注意:中间节点绝对不要加!
偏置电阻:保证空闲状态
当总线上没有设备发送数据时,所有收发器都处于高阻态。这时候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时)
布线规范
我在现场总结了几条铁律,照着做基本不会出问题:
- 用双绞屏蔽线:至少2芯双绞,屏蔽层单端接地
- 屏蔽层接地:只在主机端接地,不要两端都接,否则形成地环路
- 远离干扰源:和动力电缆保持20cm以上距离,交叉时垂直走
- 统一参考地:所有设备的信号地(GND)要连在一起
- 避免T型分支:实在无法避免时,分支线越短越好
常见错误汇总
| 错误做法 | 后果 | 正确做法 |
|---|---|---|
| 不加终端电阻 | 信号反射,长距离通信失败 | 两端各加120Ω |
| 中间节点加终端电阻 | 信号衰减,驱动能力不足 | 只在两端加 |
| 星形拓扑 | 阻抗不匹配,通信不稳定 | 菊花链拓扑 |
| 屏蔽层两端接地 | 地环路干扰,严重时烧毁接口 | 单端接地 |
| 不连信号地 | 共模电压过高,通信异常 | 所有设备GND相连 |
好了,这一章的内容就这些。物理层是Modbus通信的基石,搞不懂这些,后面写再多代码也是白搭。下一章咱们开始讲Modbus RTU的报文格式,到时候你会明白,为什么物理层这么重要。