良许Linux教程网 干货合集 RS-485自动收发几种常见异常

RS-485自动收发几种常见异常

RS-485总线拥有结构简单、通信距离远、通信速度高、成本低,在工业通讯、电力监控以及仪器仪表等行业得到广泛应用。

当RS-485收发器需要以自动收发状态工作时,通常会使用两个引脚来控制数据的收发方向。然而,如果添加外围电路将其设计成自动收发状态,可能会遇到一些常见问题。

RS-485自动收发的工作原理

RS-485总线是一种常见的通信方式,以其简单的接口和便捷的网络配置而受到推崇。它在工业控制、仪器仪表、多媒体网络、机电一体化产品等领域广泛应用。

在MCU通信中,通常使用TTL电平。如果外部设备使用的是485电平,则无法直接进行通信,需要通过485收发器进行电平转换。由于485通信是半双工通信,也就是说,数据无法同时进行发送和接收,因此485收发器通常具有用于控制数据方向的引脚。

下面我们来看看关于如何实现自动收发的RS-485收发器的外围电路设计。

image-20231026205633040
image-20231026205633040

从原理图中可以看出,自动收发主要是通过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级别,会导致收发电路发送低电平的延时时间较长。

其次高电平的发送是通过外部上下拉电阻驱动的,电阻越大,上升沿越缓慢。

image-20231026205639722
image-20231026205639722
image-20231026205642229
image-20231026205642229
image-20231026205644717
image-20231026205644717

2. 高波特率通信时存在通讯风险

假设TX引脚上一个发送的bit为0,即将发送的bit为1,由于高电平的发送是通过外部上下拉电阻驱动的,收发器会切换到接收状态。此时AB线从低电平切换到高电平需要几百ns,RX引脚在这段时间内会接收到0。如果波特率太高,RX引脚接收到的低电平会被误认为是接收的起始位,导致通讯异常。

image-20231026205648615
image-20231026205648615

3. 外围电路接结电容影响收发器通讯稳定性

高电平的发送是通过外部上下拉电阻驱动,高电平输出缓慢,如果外部保护电路的结电容又较高,会导致AB差分电压幅值较低,当幅值低于门限电平时,会导致通讯异常。

image-20231026205651761
image-20231026205651761

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部