RS485通信详解

1.RS485介绍

RS485是串行通信标准,使用差分信号传输,抗干扰能力强,常用于工业控制系统领域。

RS485具有强大的组网功能,在串口基础协议之上还制定MODBUS协议。

串口基础协议:仅指封装了基本数据包格式的协议(基于数据位)

MODBUS协议:使用基本数据包组合成通讯帧格式的高层应用协议(基于数据包或字节)

RS485 的特点包括:

  • 接口电平低,不易损坏芯片。RS485 的电气特性:逻辑“1”以两线间的电压差为+(2~6)V 表示;逻辑“0”以两线间的电压差为-(2~6)V 表示。接口信号电平比 RS232 降低了,不易损坏接口电路的芯片,且该电平与 TTL 电平兼容,可方便与 TTL 电路连接。
  • 传输速率高。10 米时,RS485 的数据最高传输速率可达 35Mbps,在 1200m 时,传输速度可达 100Kbps。
  • 抗干扰能力强。RS485 接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。
  • 传输距离远,支持节点多。RS485 总线最长可以传输 1200m 左右,更远的距离则需要中继传输设备支持但这时(速率≤100Kbps)才能稳定传输,一般最大支持 32 个节点,如果使用特制的 485 芯片,可以达到 128 个或者 256 个节点,最大的可以支持到 400 个节点。

2.RS485总线连接

RS485总线连接图

电平转换芯片:SP3485、TP8485E、MAX485。

匹配电阻:确保RS485总线的稳定性,抑制噪声。

3.RS485通信电路

正点原子探索者 STM32F407 板载的 RS485 接口电路图:

RS485通信电路

RO: 接收器输出端                                       RE: 接收器输出使能(低电平有效)
DE: 驱动器输出使能(高电平有效)           DI: 驱动器输入端
B : 接收器的输入端 / 驱动器的输出端          A : 接收器的输入端 / 驱动器的输出端

注意:R19和R22是两个偏置电阻,用来保证总线空闲时,A、B 之间的电压差都会大于 200mV(逻辑 1)。从而避免因总线空闲时因 A、B 压差不稳定,可能出现的乱码。

                      DI驱动器输入端:                                                 RO接收器输出端:
          DI为低电平,A为低电平,B为高电平                  如果 A - B ≥ +0.2V,RO则为高电平  
          DI为高电平,A为高电平,B为低电平                  如果 A - B ≤ -0.2  V,RO则为低电平 

4.RS485通信波形

485通信波形图
发送端 接收端
如果发送1,即A为高电平,B为低电平 如果 A - B ≥ +0.2V,RO则为高电平
如果发送0,即A为低电平,B为高电平 如果 A - B ≤ -0.2V,RO则为低电平