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总线连接
电平转换芯片:SP3485、TP8485E、MAX485。
匹配电阻:确保RS485总线的稳定性,抑制噪声。
3.RS485通信电路
正点原子探索者 STM32F407 板载的 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通信波形
发送端 | 接收端 | |
如果发送1,即A为高电平,B为低电平 | 如果 A - B ≥ +0.2V,RO则为高电平 | |
如果发送0,即A为低电平,B为高电平 | 如果 A - B ≤ -0.2V,RO则为低电平 |