纯干货!RS-485原理与设计进阶之路
从大二开始接触电子,毕业工作又有六年多,前后有近十年时间了。当中遇到挺多学习上的困惑,我觉得是时候做个总结,一方面帮自己梳理知识体系,另一方面可以帮到有需要的人。当然专辑是付费,并不多,十年的经验,一顿饭的买卖。
1、电路设计-接口设计(主讲电路接口设计的主讲各类通讯接口电路,如CAN,RS-485,SPI、IIC、CSI、DSI、LVDS等共计30篇)主要讲电子元器件选型使用的(主讲RLC、磁珠,防护器件TVS,PPTC、晶体管、运放等)好了废话不多说,开始今天的正题:之前写了RS-485入门的基础总结,点击查看。今天继续RS-485进阶之路。今天主要讲RS-485电路常用的几种电路结构、原理分析、优缺点对比、每种电路的问题点、RS-485电路的防护设计。此为RS-485电路的第二篇,下一次我们会做RS-485电路部分的收尾,届时大家如果想要更系统的学习RS-485部分的内容,可以多了一个选择,当然,其中有问题也可以一起探谈。4.1 基本电路结构
4.1.1电路结构
传统的485应用电路如下图 1 所示,RS#、DE分别控制接收和发送,具体说来:RS#、DE是相反的逻辑,因此,我们一般将ED和RE接在一起,单片机MCU向外发送数据时,将这两个引脚置位1,单片机MCU接收外界送数据时,将这两个引脚置位0。如下图所示,电路采用3线控制,UART_RXD、UART_TXD和收发控制端UART_CON。4.1.2原理分析
UART_CON为低电平,485处于接收状态,UART_CON为高电平,485处于发送状态。通过切换UART_CON的电平来达到485收发状态的切换。市面上大部分的内置RS-485的产品基本都是采用此类的方案,如上图中的UART_CON引脚。具体的 实现方式是:在空闲器件,UART_CON为低电平,MCU处于接收状态,在准备发送数据之前,MCU会拉高UART_CON,RS-485处于发送状态,发送完毕之后,UART_CON重新处于低电平,RS-485处于接收状态。此类方案的关键是软件需要掌握好485EN引脚的高低电平的时机,假设发送完数据后,没有及时切换到接收状态,而此时从机又回复数据,此时就会引起丢包,特别是在运行操作系统(Linux、WIndows等)以后,想要十分准确控制方向引脚的高低电平已经十分困难。4.1.3优缺点
优势:无需增加任何的硬件成本,且RS485的驱动能力不受影响。劣势:依赖于软件控制方向引脚,如果运行复杂的操作系统,控制引脚的优先级不够高,或者软件的优化的不够好,都会导致方向引脚的切换不及时,到时数据的丢包。并且,是否丢包还取决于从机的回复时间,测试过程不一定能够测试出来。4.2 硬件自收发的RS485电路
4.2.1电路结构
4.2.2原理分析
当UART_TXD为低电平时,DE和RE#为高电平,RS-485收发器处于发送状态,此时DI引脚是接UART_TXD的,所以AB处于低电平,即向其他节点发送低电平信号;当UART_TXD由低电平变为高电平时,DE和RE#变为低电平,RS-485收发器处于接收状态,此时AB引脚处于高阻状态,R6将B引脚拉至GND,R4将A引脚拉至VCC,此时AB为高电平,即向其他节点发送高电平信号。由于UART_TXD为高电平时,RE#=0,RS-485收发器处于接收状态,因此只需将TXD保持为高电平即可接收数据,即自动收发电路发送高电平时同时也是接收状态。4.2.3优缺点
优点:自动收发RS-485收发器可以节省MCU的 IO口,降低编写程序的工作量;缺点:自动收发电路具有通信速度慢,发送高电平信号时RXD会接收到一段低电平信号等问题,不适用于高速率应用场景;4.2.4自收发电路的问题点
RS-485自动收发通信速度较慢的原因主要有两个。 著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-06-06
最近编辑:1年前