我的账户
52监测网

安全监测行业网站

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

311 0
Nino 发表于 2023-3-9 09:54:57 | 只看该作者 |阅读模式 打印 上一主题 下一主题

一分钟快速注册,登录后可查看、下载更多资源。

您需要 登录 才可以下载或查看,没有帐号?立即注册     

x
本帖最后由 Nino 于 2023-3-9 09:56 编辑

在工业控制、电力通讯、智能仪表等领域,通常情况下是采用串口通信的方式进行数据交换。最初采用的方式是RS232接口,由于工业现场比较复杂,各种电气设备会在环境中产生比较多的电磁干扰,会导致信号传输错误。除此之外,RS232接口只能实现点对点通信,不具备联网功能,最大传输距离也只能达到几十米,不能满足远距离通信要求。

而RS485则解决了这些问题,数据信号采用差分传输方式,可以有效的解决共模干扰问题,最大距离可以到1200米,并且允许多个收发设备接到同一条总线上。


在RS485之前RS232就已经诞生,但是RS232有几处不足的地方:

1、接口的信号电平值较高,达到十几V,容易损坏接口电路的芯片,而且和TTL电平不兼容,因此和单片机电路接起来的话必须加转换电路。

2、传输速率有局限,不可以过高,一般到几十Kb/s就到极限了。

3、接口使用信号线和GND与其他设备形成共地模式的通信,这种共地模式传输容易产生干扰,并且抗干扰性能也比较弱。

4、传输距离有限,最多只能通信几十米。

5、通信的时候只能两点之间进行通信,不能够实现多机联网通信。

针对RS232接口的不足,就不断出现了一些新的接口标准,例如RS485、

Modbus等一系列接口标准,然而RS485就是其中之一,他具备以下的特点:

1、我们在讲A/D的时候,讲过差分信号输入的概念,同时也介绍了差分输入的好处,最大的优势是可以抑制共模干扰。

尤其工业现场的环境比较复杂,干扰比较多,所以通信如果采用的是差分方式,就可以有效的抑制共模干扰。

而RS485就是一种差分通信方式,它的通信线路是两根,通常用A和B或者D+和D-来表示。

逻辑“1”以两线之间的电压差为+(0.2~6)V表示,逻辑“0”以两线间的电压差为-(0.2~6)V来表示,是一种典型的差分通信。

2、RS485通信速度快,最大传输速度可以达到10Mb/s以上。

3、RS485内部的物理结构,采用的是平衡驱动器和差分接收器的组合,抗干扰能力也大大增加。

4、传输距离最远可以达到1200米左右,但是他的传输速率和传输距离是成反比的,只有在100Kb/s以下的传输速度,才能达到最大的通信距离,如果需要传输更远距离可以使用中继。

5、可以在总线上进行联网实现多机通信,总线上允许挂多个收发器,从现有的RS485芯片来看,有可以挂32、64、128、256等不同个设备的驱动器。

RS485的接口非常简单,和RS232所使用的MAX232是类似的,只需要一个RS485转换器,就可以直接和我们单片机的UART串行接口连接起来,并且完全使用的是和UART一致的异步串行通信协议。但是由于RS485是差分通信,因此接收数据和发送数据是不能同时进行的,也就是说它是一种半双工通信。那我们如何判断什么时候发送,什么时候接收呢?

RS485通信介绍


RS-485:半双工、(逻辑1:+2V–+6V 逻辑0:-6V—2V)这里的电平指AB 两线间的电压差。


一、 基本电路实现

1、基础的RS485电路

需要控制RE/DE(cn)来控制485状态的切换,一般连在一起用io口控制。当cn为低时485处于接收状态;当R/D为高时485处于发送状态。

RO和TTL电平的UART_RX(或模拟串口的RX)相连,DI和TTL电平的UART_TX(或模拟串口的TX)相连。

当cn为低R0有效,处于接收模式:A>B(AB数据为1),则R0为高电平(R0为1)。


A<B(AB数据为0),则R0为低电平(R0为0)。

当cn为高RO高阻,处于发送模式:DI为高时(DI数据1),(强制使A>B)即(AB为1)。

DI为低时(DI数据0),(强制使A<B)即(AB为0)。

总结:TX发啥数据,AB接收啥数据。AB发啥数据RX接收啥数据。


二、 带隔离RS-485电路

使用DC-DC器件可以产生1组与微处理器电路完全隔离的电源输出,用于向RS485收发器提供+5V电源。电路中的光耦器件速率会影响RS485电路的通信速率。上图中选用了NEC的光耦PS2501,受其影响,该电路的通讯速率控制在19200bps下。


三、自动切换电路

上图中,TX,RX引脚均需要上拉电阻,这一点特别重要。

接收:默认没有数据时,TX为高电平,三极管导通,RE为低电平使能,RO收数据有效,MAX485为接收态。


发送:发送数据时,TX会先有一个下拉的电平(起始位-由高向低),表示开始发送数据,此时三极管截止,DE为高电平发送使能。当发送数据“0”时,由于DI接口相当于接地,此时数据“0”就会传输到AB扣,A-B<0,则传输“0”,完成低电平传输,当发送“1”时,此时三极管导通,按理说RO会使能,此时由于还处于发送数据中,这种状态下MAX485处于高阻太,此时的状态通过A上来,B下拉电阻决定,此时A-B>0传输“1”,完成高电平的传输。

注意:这里面有个疑惑,发送数据“1”,三极管RE低电平有效,应该是接收使能,为什么芯片是高阻态呢?这是因为UART发送数据是有一定格式的,TX和RX数据均以“位”为最小单位进行传输,在发送数据之前,UART之间要约定好数据传输速率,即波特率,数据传输格式(数据位,校验,停止),平时数据线处于空闲状态(1状态),当发送数据时,TX由“1”变为“0”维持1位的时间,这样接收方检测到开始位后,再等待1.5位时间就开始一位一位的进行数据传输了,也就是说,已经确定好发送状态,电路发送“1”时RE虽然有效,但是由于它处于发送阶段,芯片也不会收,即芯片处于高阻状态。

RS485通信接线

为了有效抑制干扰,一般采用屏蔽双绞线作为通信介质,例如西门子的Profibus DP电缆:


————————————————

版权声明:本文为CSDN博主「M_qsqsqsq」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:
https://blog.csdn.net/weixin_42118352/article/details/127278562

收藏
收藏0
分享
分享
分享
淘帖0
支持
支持0
反对
反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册     

本版积分规则

关注0

粉丝43

帖子1538

发布主题
最新发布
推荐阅读
一周热帖排行最近7x24小时热帖
关注我们
自动化监测技术交流

客服电话:010-62978778

客服邮箱:support@anxinjoy.com

周一至周五 8:30-17:30

地址:北京海淀区金隅嘉华大厦c座1005

Powered by Discuz! X3.2@ 2001-2013 Comsenz Inc. 京ICP备16000992号-2 京公网安备 11010802022300号