RS-485总线拥有结构简单、通信距离远、通信速度高、成本低,在工业通讯、电力监控以及仪器仪表等行业得到广泛应用。
当RS-485收发器需要以自动收发状态工作时,通常会使用两个引脚来控制数据的收发方向。然而,如果添加外围电路将其设计成自动收发状态,可能会遇到一些常见问题。
RS-485自动收发的工作原理
RS-485总线是一种常见的通信方式,以其简单的接口和便捷的网络配置而受到推崇。它在工业控制、仪器仪表、多媒体网络、机电一体化产品等领域广泛应用。
在MCU通信中,通常使用TTL电平。如果外部设备使用的是485电平,则无法直接进行通信,需要通过485收发器进行电平转换。由于485通信是半双工通信,也就是说,数据无法同时进行发送和接收,因此485收发器通常具有用于控制数据方向的引脚。
下面我们来看看关于如何实现自动收发的RS-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引脚上一个发送的bit为0,即将发送的bit为1,由于高电平的发送是通过外部上下拉电阻驱动的,收发器会切换到接收状态。此时AB线从低电平切换到高电平需要几百ns,RX引脚在这段时间内会接收到0。如果波特率太高,RX引脚接收到的低电平会被误认为是接收的起始位,导致通讯异常。
3. 外围电路接结电容影响收发器通讯稳定性
高电平的发送是通过外部上下拉电阻驱动,高电平输出缓慢,如果外部保护电路的结电容又较高,会导致AB差分电压幅值较低,当幅值低于门限电平时,会导致通讯异常。
以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !