深入浅出 RS-485 协议

Evek Golden Lv4

RS-485(EIA-485)是一种广泛应用于工业控制、楼宇自动化等领域的串行通信标准。与其说它是一种协议,不如说它定义了物理层的电气特性。本文将带你深入了解 RS-485 的核心原理与应用要点。

1. 核心特性:差分信号

RS-485 最显著的特点是采用差分信号(Differential Signaling)进行传输。

  • 抗干扰能力强:传统的 TTL 或 RS-232 信号是单端信号(参考地电平),容易受到共模干扰。而 RS-485 通过两根线(A 和 B)的电压差来表示逻辑状态。当外界干扰同时作用于两根线时,电压差基本保持不变,从而有效抵消了噪音。
  • 长距离传输:得益于差分传输和高灵敏度的接收器,RS-485 的传输距离可达 1200 米(在低波特率下)。

逻辑电平定义

  • **逻辑 “1” (Mark)**:A 线电压比 B 线电压高 200mV 以上 ($V_A - V_B > 200mV$)。
  • **逻辑 “0” (Space)**:B 线电压比 A 线电压高 200mV 以上 ($V_B - V_A > 200mV$)。

注意:不同芯片厂商对 A/B 线的定义可能存在混淆(有的标记为 D+/D-),接线时务必参考数据手册或测量电压。

2. 通信模式:半双工

标准的 RS-485 是2线制半双工通信。

  • 半双工(Half-Duplex):意味着数据可以在两个方向上传输,但同一时刻只能有一个方向。这就好比对讲机,按住按钮说话(发送),松开按钮听话(接收)。
  • 多点互连:RS-485 总线支持多点连接,标准规定一条总线上最多可以挂载 32 个单位负载(Unit Loads)。现代新型收发器(如 MAX485 的升级版)输入阻抗更高,可以支持 128 甚至 256 个节点。

3. 硬件设计关键点

3.1 拓扑结构

RS-485 必须采用手牵手(Daisy Chain)的拓扑结构。

  • 正确:主站 -> 节点1 -> 节点2 -> … -> 节点N。
  • 错误:星型结构(Star Topology)。星型结构会产生严重的信号反射,导致通信不稳定。如果必须使用星型布线,需要使用 RS-485 集线器(Hub)。

3.2 终端电阻

为了消除信号反射,总线的两端(且仅在两端)需要接终端电阻

  • 阻值:通常为 120Ω(匹配双绞线的特性阻抗)。
  • 作用:吸收信号能量,防止反射波叠加干扰正常信号。

3.3 偏置电阻(上下拉)

当总线上所有节点都处于接收状态(高阻态)时,总线处于空闲状态,此时 A/B 线电压不确定,可能会引入噪音误触发接收器。

  • 解决方案:在总线上加偏置电阻。通常 A 线上拉(至 VCC),B 线下拉(至 GND),将总线钳位在逻辑 “1” 的电平上,保证空闲时的稳定性。

4. 软件控制策略

由于是半双工,软件层必须严格控制收发切换。

  1. 收发控制引脚:MCU 通过一个 GPIO 控制 RS-485 收发器的 RE/DE 引脚。

    • DE (Driver Enable) 高电平有效:发送模式。
    • RE (Receiver Enable) 低电平有效:接收模式。
    • 通常将 DE 和 /RE 短接,由一个 GPIO 控制:高电平发,低电平收
  2. 切换时序

    • 发送前:拉高 GPIO -> 延时(可选,视电路电容而定) -> 开始发送 UART 数据。
    • 发送后:必须等待 UART 发送完成中断(TC 标志位) -> 拉低 GPIO 切回接收模式。
    • 常见错误:只等待数据写入寄存器就立刻切换,导致最后一字节的停止位被切断。

5. 常见问题排查

  • 只能发不能收:检查 GPIO 控制逻辑,是否一直处于发送状态?或者是 485 芯片损坏。
  • 数据乱码:检查波特率匹配、共地问题(长距离传输建议使用隔离型 485)、终端电阻是否匹配。
  • 通信偶尔中断:检查是否有星型分叉过长、未接屏蔽线或走线靠近强干扰源。

总结

RS-485 虽然古老,但凭借其简单、廉价、可靠的特性,至今仍是工业现场的霸主。掌握好差分信号原理、总线拓扑和收发时序,是嵌入式工程师的必修课。

  • Title: 深入浅出 RS-485 协议
  • Author: Evek Golden
  • Created at : 2024-01-04 20:50:00
  • Updated at : 2026-06-12 08:57:02
  • Link: https://blog.cocodemo.uno/posts/8a7d3c2e/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments