RS485 硬件自收发切换的实现

RS485抗噪音抗干扰能力强、传输距离远、支持多点通信,是工控行业首选串行接口。485规定的电气特性为2线,半双工多点通信。采用两线差分信号传输数据,具有抗共模干扰的能力。由于是半双工模式,因此通讯时需要切换收发状态。目前常用的485收发切换方案有以下几种:

1.传统RS485电路(带收发控制脚非隔离RS-485电路)
        传统的485应用电路如下图所示,采用3线控制,UART_RXD、UART_TXD和收发控制端UART_CON。

带收发控制脚非隔离RS-485电路

       控制策略如下:UART_CON为低电平,485处于接收状态;UART_CON为高电平,485处于发送状态。通过切换UART_CON的电平来达到485收发状态的切换。

2.硬件自收发切换 非隔离RS-485电路

这里写图片描述

       带收发控制脚的485在编程时需要切换控制端电平,增加了程序的复杂度。为了编程方便,常常将电路改为如上图所示的自动收发电路。这种采用分立元件搭建非隔离自动收发RS485电路的优点在于控制简单,收发控制脚不需要程序干预。

       虽然采用分立元件搭建的非隔离RS485自动收发电路解决了带收发控制脚非隔离RS485电路编程上操作复杂的问题,但受三极管切换速度、收发器内部接口阻抗等影响,分立元件搭建的自动收发切换电路降低了系统稳定运行的最大波特率。

3.收发切换隔离RS485电路

这里写图片描述

       带有隔离电路的485是最稳定的设计,需要选择隔离485芯片以及隔离电源,此方案成本相对于前两种方案会高很多。

        下面介绍一种485硬件收发切换电路实例。

485硬件切换电路

       485芯片采用MAX485芯片,电路使用NPN三极管开切换收发。控制原理是:MCU的UART的TX和RX引脚需要连上拉电阻(TX和RX在没有通信时均是高电平),防止刚上电TX和RX引脚电平不稳定引起收到扰乱数据。A上拉电阻B下拉电阻,终端并联120欧姆电阻,D10、D11、D12为三个防雷防浪涌的TVS管。

       接收: 默认没有数据时,UART_TX为高电平,三极管导通,MAX485芯片RE低电平使能,RO接收数据使能,此时从485AB口收到什么数据就会通过RO通道传到MCU,完成数据接收过程。

       发送: 当发送数据时,UART_TX会有一个下拉的电平,表示开始发送数据,此时三极管截止,DE为高电平发送使能。当发送数据‘0’时,由于DI口连接地,此时数据‘0’就会传输到AB口 A-B<0,传输‘0’,完成了低电平的传输。当发送‘1’时,此时三极管导通,按理说RO使能,此时由于还处在发送数据中,这种状态下MAX485处于高阻态,此时的状态通过A上拉B下拉电阻决定,此时A-B>0传输‘1’,完成高电平的传输。

       PS: 此时有人肯定也会有疑惑,发送数据‘1’,三极管导通RE低电平有效应该是接收使能,为什么芯片会是高阻状态?

       因为UART发送收据会有一定的格式,数据均以“位”为最小单位进行传输。在收发数据之前,UART之间要约定好数据的传输速率(即每位所占据的时间,其倒数为波特率)、数据的传输格式(有多少数据位、是否有校验位、奇校验还是偶校验、是否有停止位)。 平时数据线处于“空闲状态”(1状态)。当发送数据时,TX由‘1’变为‘0’维持1位的时间,这样收方检测开始位后,再等待1.5位时间就开始一位一位的进行数据传输。意思是说,已经确定好发送状态,电路发送‘1’此时RE有效,接收有效但有由于它处于发送阶段,此时芯片会处于高阻状态。

--------------------- 本文来自 electrocrazy 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/electrocrazy/article/details/72356631?utm_source=copy

猜你喜欢

转载自blog.csdn.net/qq_25814297/article/details/82898795