485通信自动收发数据实现

       485通信是工业控制中很常用的一种通信方式,但是编写通信程序的时候需要在代码中手动控制接收和发送,如果接收和发送逻辑没处理好往往会造成通信故障,实现起来比较麻烦。那能不能让485通信是接收和发送数据可以自动切换,不用程序去控制。就像使用串口一样,直接读数据或者写数据就行,不用关心当前总线的状态。

       网上查找资料后发现485的自动收发硬件电路有很多,通过外部搭建的模拟电路就可以实现接收和发送数据的自动切换,这种电路的器件参数和稳定性可靠性都要根据使用环境去测试,使用起来比较麻烦。查找资料后发现MAX13487E这个芯片自带了接收和发送自动切换功能。现在看一下这个芯片的使用方法。

    先看看芯片介绍

485通信自动收发数据实现

内部结构如下

485通信自动收发数据实现

下来看看各个引脚的功能

485通信自动收发数据实现

通过引脚功能可以看到,2脚为低电平时为接收功能,2脚为高电平时为自动方向控制功能。3脚为高电平时为正常操作模式,3脚为低电平时为关断模式。将2脚和3脚都接高电平时,就能实现自动收发数据自动切换了。

应用电路如下

485通信自动收发数据实现

将2、3脚都接VCC,这样485通信时就可以像操作串口那样,直接去读数据或者写数据了,代码中就不用关心接收和发送引脚的电平了。

如果通信需要隔离的话,可以参考官方推荐的光耦隔离电路:

485通信自动收发数据实现

RXD和TXD直接接单片机串口的接收和发送端就行了。

这个芯片实现485通信时收发数据自动切换电路最简单,不用增加额外的器件,通信的稳定性和可靠性都有保证。