第2章 物理层基础:RS-232/RS-422/RS-485标准详解
各位工程师朋友,咱们今天聊聊现场总线的物理层。说实话,我干了十几年现场调试,见过太多因为物理层没搞明白导致的奇葩故障。有的项目折腾了三天,最后发现就是一根线没接对。所以这一章,咱们把底子打扎实。
2.1 RS-232:老当益壮的点对点通信
RS-232是串口通信的老祖宗。它的信号是单端传输的,什么意思呢?就是一根信号线对地线,电压差决定逻辑电平。
- 逻辑1(Mark):-3V ~ -15V
- 逻辑0(Space):+3V ~ +15V
我记得刚入行那会儿,调试一台老式PLC,RS-232线缆长了点,大概15米,结果数据全是乱码。后来一查手册,RS-232的传输距离也就15米左右,再长就不靠谱了。所以它的典型应用场景就是:编程口、短距离调试、Modbus RTU(短距)。
2.2 RS-422:四线制的全双工方案
RS-422用了差分信号传输,抗干扰能力比RS-232强了一大截。它有两对线:一对发送(T+ / T-),一对接收(R+ / R-),所以能同时收发,也就是全双工。
我有个项目,在工厂里走线大概100米,环境里变频器、电机一大堆。用RS-232根本没法用,换成RS-422后,数据稳得很。它的典型参数:
| 参数 | RS-422 |
|---|---|
| 传输方式 | 差分 |
| 最大节点数 | 1发10收(典型) |
| 最大距离 | 1200米(@100kbps) |
| 工作模式 | 全双工 |
不过现在RS-422用得少了,因为RS-485更灵活。但如果你需要全双工,又不想上以太网,RS-422还是个不错的选择。
2.3 RS-485:工业现场的总线之王
RS-485是目前工业现场最常用的串行总线。它也是差分信号,但只用一对线(A / B),通过半双工方式通信。最大的优势是:可以挂多个节点,最多32个(标准),用中继器还能扩展。
它的电气特性:
- 逻辑1(A-B > +200mV)
- 逻辑0(A-B < -200mV)
- 共模电压范围:-7V ~ +12V
说白了,RS-485就是靠两根线之间的电压差来传数据。抗干扰能力比RS-232强太多。我调试过一个水泥厂的料位计网络,现场粉尘大、干扰强,用RS-485跑了300米,一点问题没有。
2.4 终端电阻与偏置电阻
这两个电阻,是现场调试最容易踩坑的地方。我见过太多人,要么不接,要么乱接。
2.4.1 终端电阻
终端电阻的作用是消除信号反射。当信号在长线上传输时,遇到阻抗不匹配的地方就会反射,造成波形畸变。终端电阻就接在总线的最远端,阻值等于电缆的特性阻抗,通常是120Ω。
怎么判断要不要接?
- 总线长度 < 50米:一般可以不接,但接了也没坏处
- 总线长度 > 50米:必须接,否则数据会丢包
- 波特率 > 115200bps:即使距离短,也建议接
我曾经在一个项目里,总线长度大概80米,没接终端电阻,结果每隔几分钟就丢一帧数据。查了两天才发现是反射问题。接上120Ω电阻后,稳如老狗。
2.4.2 偏置电阻
偏置电阻的作用是给总线提供一个确定的空闲电平。当总线上没有设备发送时,A、B线之间是悬空的,容易受干扰。偏置电阻把A线拉高、B线拉低,确保空闲时总线处于逻辑1状态。
偏置电阻的接法:
- 在主机端,A线接上拉电阻到5V,B线下拉电阻到GND
- 阻值通常取470Ω ~ 1kΩ
- 如果总线上设备多,偏置电阻只需要加一处
2.5 线缆选型与布线规范
线缆选型这事,很多人不重视。觉得只要是两根线就能跑RS-485。其实不然。
| 场景 | 推荐线缆 | 说明 |
|---|---|---|
| 短距离(< 50m) | 普通双绞线 | 如CAT5网线中的一对 |
| 中距离(50-500m) | 屏蔽双绞线 | 如Belden 9841 |
| 长距离(> 500m) | 专用RS-485电缆 | 阻抗120Ω,低电容 |
| 强干扰环境 | 双屏蔽双绞线 | 如铠装电缆 |
布线规范方面,我总结了几条铁律:
- 远离强电:信号线和动力线至少保持30cm距离
- 避免平行走线:如果必须交叉,尽量垂直交叉
- 使用双绞线:双绞能有效抑制共模干扰
- 总线拓扑:必须是直线型,不能有星型或环形分支
- 分支长度:分支线越短越好,最好不超过1米
你想想看,如果布线不规范,再好的设备也白搭。我见过一个项目,为了省事,把RS-485线和220V电源线绑在一起走,结果通信时好时坏,最后全部重铺线才解决。
2.6 接地与屏蔽技术
接地是门大学问。接不好,反而引入干扰。
2.6.1 屏蔽层接地
屏蔽电缆的屏蔽层,应该单端接地还是双端接地?这个问题争论很多。我的经验是:
- 低频信号(< 100kHz):单端接地,通常在主机端接地
- 高频信号(> 100kHz):双端接地,但要注意地环路
RS-485通常工作在低频,所以我习惯单端接地。屏蔽层在主机端接大地,从站端悬空。这样能避免地环路电流。
2.6.2 信号地(GND)连接
很多人只接A、B两根线,不接GND。这在短距离时可能没问题,但长距离时容易出问题。因为设备之间的地电位可能不同,导致共模电压超出RS-485芯片的承受范围(-7V ~ +12V)。
我的建议:
- 距离 < 100米:可以不接GND,但建议接
- 距离 > 100米:必须接GND,或者使用隔离器
- 如果设备之间有电位差:使用隔离型RS-485模块
2.7 本章知识体系
下面这张图,是我自己总结的物理层调试思路,你照着这个流程走,基本不会出大问题。
这张图把物理层调试的五个关键环节串起来了。从选择标准开始,到电阻配置、线缆选型、布线规范,最后是接地屏蔽。每一步都不能马虎。
好了,物理层的基础就讲到这里。下一章咱们聊聊数据链路层,看看数据是怎么在总线上跑起来的。记住,物理层是地基,地基不牢,上面再好的协议也白搭。