RS485总线讨论
RS485 是美国电子工业协会(Electronic Industries Association,EIA)于1983年发布的串行通信接口标准,经通讯工业协会(TIA)修订后命名为 TIA/EIA-485-A。。RS485总线支持一对多数据传输,遵从主从模式,是一种2线差分、半双工、平衡传输线多点通信总线。
RS-485的主要特性有以下几点。多点采用单一5V电源供电,通信方式采用差分通信,共模电压:±6V。在通信传输数据时,RS485总线采用特性阻抗为120Ω的双绞线作为传输介质,传输距离可达1200m,其通信距离长短主要与通信线缆、驱动IC、使用场景密切相关。在传输速率方面,RS485最大理论传输速率为10Mbit/s,但也会因不同IC厂家有所变化。RS485采用一主多从的通信方式,同一时刻总线上只能有一个主机在发送数据,但可以有多个从机接收数据。
RS485总线的网络拓扑如下图1所示。网络上存在一个主设备和多个从设备,标准设计中从设备最多可达32个,当然根据不同应用IC设计,从设备数量可达64/128/256个。在信号电平方面,根据RS485标准,驱动器可以输出一个不小于1.5V 的差分信号,对应的,在负载端可以接收的最小差分电平为200mV。由于传输电平信号为差分信号,RS485可以在复杂噪声环境中稳定工作,传输距离可达1200m。对于RS485通信的传输线缆,同样也有着严格定义,工业RS-485电缆分为有保护套、无保护套、双绞线、非屏蔽双绞线,符合 22-24AWG 线规的电缆特性阻抗为120Ω。为避免信号反射,数据传输线应始终端接,并且存根应尽可能的短。正常设计中,需要在输出和负载端端接120Ω电阻进行阻抗匹配,电阻精度至少达到1%以上。
图 1
RS485应用电路如下图2所示。CPU通过串口或者其他通信协议与RS485收发器通信,该通信协议可以是串口、IIC、SPI等,主要取决于RS485收发器IC。RS485收发器将来自CPU的信号转换为RS485的差分信号后,传输给各个串行设备,进行通信。需要注意,通信电路设计时需要在RS485收发器输出端和负载端串联120Ω电阻,以形成阻抗匹配,避免信号发射导致通信异常。RS485收发器常用的IC有:MAX485、SN75176、LTC1480、SP3485、ST485等。本文以SP3485为例的电路如图3所示,SP3485具有以下引脚:
DE(Driver Enable):驱动器使能输入,用于控制发送数据时的驱动器使能。
/RE(Receiver Enable):接收器使能输入,用于控制接收数据时的接收器使能。
A(RS-485 A端):A端数据线
B(RS-485 B端):B端数据线
GND(地):接地引脚
VCC(电源):电源引脚
其中UART的TX、RX,RS485_RE引脚接CPU的GPIO进行信号传输,VCC接电源。
图 2
图 3
在使用过程中,RS485存在以下三种失效原因:开路、短路与总线空闲。当输入信号为零时,会使传统的接收器输出随机状态。现在的收发器内部都包含一个偏置电路,可以对开路、短路和总线空闲进行保护,即使信号丢失时,接收器也能强制输出一个确定的状态。但即使如此,这些失效保护设计的缺点是最坏情况下的噪声容限仅为 10mV,因此在干扰环境中,要额外增加外部失效保护电路以增加噪声容限。外部失效保护电路由一个电阻分压器组成,可以产生足够的总线差分电压,以驱动接收器产生一个确定的输出状态。其具体计算公式为:
在日常工作中,我们除了使用RS485通信协议以外,还会经常使用IIC(Inter-Integrated Circuit)、SPI(Serial Peripheral Interface)、UART(Universal Asynchronous Receiver/Transmitter)、RS232(Recommended Standard 232)等通信协议。这些协议会根据不同的应用场景进行配置使用。这些通信协议都有其独特的特点和适用范围,比如IIC通信协议适用于短距离、高速、串行数据传输,SPI通信协议适用于芯片间通信、数据传输速度快,UART通信协议适用于点对点通信等。因此,根据具体的通信要求和硬件设备的支持情况,我们会灵活地选择并配置相应的通信协议,以满足不同应用场景下的通信需求。这些通信协议的灵活应用,为我们的工作提供了便利和灵活性,使得各种设备和系统能够高效地进行数据交换和通信。