RS-485总线具有结构简单、通信距离远、通信速度高、成本低等优点。广泛应用于工业通信、电力监控、仪器仪表等行业。一般来说,RS485收发器有两个引脚来控制数据发送和接收的方向。如果加上外围电路,设计成自动发送接收状态,会出现哪些常见问题?
RS485自动收发原理
在各种通讯方式中,RS485总线是比较常见的一种。由于其接口简单、组网方便,广泛应用于工业控制、仪器、仪表、多媒体网络、机电一体化产品等众多领域。 MCU通讯一般采用TTL电平。如果外部设备使用485电平,那么两者不能直接通信。电平转换必须通过485收发器进行。由于485通信是半双工通信,也就是说数据不能同时发送和接收,所以485收发器通常都有控制发送和接收方向的引脚。
我们来看看485收发器实现自动发送和接收的外围电路设计。
从原理图中可以看出,自动发射和接收主要是通过NPN晶体管开关电路来实现的。具体的数据发送和接收过程是怎样的?
发送数据时
发送数据时,使用MCU的TX引脚。假设我们要发送数据0x55,那么转换成二进制就是0b01010101,在TX引脚上体现为高低电平的切换。
当TX引脚为0时,晶体管不导通,DE为高电平,进入发送模式。由于DI引脚接地,此时AB之间的差分电平逻辑为0;
当TX引脚为1时,晶体管导通,RE为低电平,进入接收模式。此时收发器的A、B引脚进入高阻状态。由于上拉电阻R4和下拉电阻R3的作用,此时AB之间的差分电平逻辑为1。
因此,保证了TX引脚输出任何电平,AB之间的差分电平逻辑也一致。
接收数据时接收数据时,使用MCU 的RX 引脚。接收数据过程中,TX引脚保持高电平,三极管导通,RE为低电平,进入接收模式,RX引脚将接收AB发送的数据。
关于自发射和接收485电路的常见问题
1、通讯速度慢
晶体管的导通延迟在ns级别,关断延迟在us级别,这会导致收发电路发送低电平的延迟时间较长。
其次,高电平传输由外部上拉和下拉电阻驱动。电阻越大,上升沿越慢。
2、高波特率通信存在通信风险
假设TX引脚上发送的位为0,即将发送的位为1。由于高电平发送是由外部下拉电阻驱动的,因此收发器将切换到接收状态。此时AB线从低电平切换到高电平需要数百ns的时间,RX引脚在这段时间会收到0。如果波特率过高,RX引脚接收到的低电平会被误认为是接收起始位,导致通信异常。
3、外围电路结电容影响收发器通信稳定性
高电平传输由外部下拉电阻驱动,高电平输出缓慢。如果外部保护电路的结电容较大,会导致AB差分电压幅值较低。当幅度低于阈值水平时,将导致通信异常。
-
审稿人:刘庆