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 米,我建议还是上屏蔽双绞线,而且屏蔽层单端接地。
咱们用一张图来理解差分信号的传输过程:
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 驱动时,会在发送完成后加一个 3~5 字节的延时,再切换为接收模式。为什么?因为 RS485 芯片的发送器关闭后,总线需要一点时间恢复到空闲状态(高阻或偏置电压)。如果切换太快,可能会把发送器关闭瞬间的毛刺当成数据接收进来。这个坑我踩过,后来加了延时就稳了。
1.4 本章小结
咱们这一章把 RS485 的底子打好了:
- 差分信号是 RS485 抗干扰的根本,A/B 线看差值,不看绝对值。
- RS485 vs RS232,一个适合组网长距,一个适合点对点短距,别用错。
- 半双工模型决定了总线上的通信规则:一次只让一个人说话。