RS-485通信和ModBus详解

RS-485通信和ModBus详解

  博主在做一些项目的时候,用到一些模块,经常会是485的接口,而且485也是工业上常用的通信方式,在工业应用中建立连向PC机的分布式设备网络、其他数据收集控制器、HMI或者其他操作时,串行连接会选择RS-485。所以博主感觉有必要介绍一下485通信。

  
  我们知道串口通信的数据传输都是0和1,但是在单总线、I2C、UART中都是通过一根线的高低电平来判断逻辑1或者逻辑0,但这种信号线的GND再与其他设备形成供地模式的通信,这种共地模式传输容易产生干扰,并且抗干扰性能也比较弱。所以差分通信支持多机通信抗干扰强的RS485就被广泛的使用了。
  


  
理论篇
  

在485之前工业上有种常用的通信方式就是RS232,其特征如下:
1)RS-232串口通信最远距离是50英尺;
2)RS232可做到双向传输,全双工通讯,最高传输速率20kbps
3)RS-232C上传送的数字量采用负逻辑,且与地对称 逻辑1:-3 ~-15V 逻辑0:+3~+15V
但是由于其抗干扰能力差、电压较高,与其他电路连接不方便、通信距离短、不支持多机通信,随之而来485就慢慢应用来了

RS232原理部分,这里就不展开介绍了,参考以下链接
http://www.21ic.com/jichuzhishi/datasheet/RS232/jiekou/184659.html
232和485区别
http://m.elecfans.com/article/567680.html

  
  

1 差分通信:我们知道如果在一根线上像传输数据就是高低电平代表0和1进行传输,差分通信就是用两个线的正负压差来代表0和1进行数据传输。以两线之间的压差为+(0.2-6)V来表示逻辑1,以两线之间的压差为-(0.2-6)V来表示逻辑0,其设计可以有效的抑制共模干扰,在工业上干扰较强的复杂环境中又较广泛的用途。所以,485通信肯定时半双工的了。

2 RS485通信最大的传输速度可以达到10Mb/s以上,传输距离可以达到1200米左右。(但是速度和距离是成反比的,10 米时, RS485 的数据最高传输速率可达 35Mbps,在 1200m 时,传输速度可达 100Kbps。)

      在这里插入图片描述
  &e  msp;    MAX485典型应用电路原理图

  MAX485 是美信(Maxim)推出的一款常用 RS485 转换器。这里1、4、5、6、7、8接线就不赘述了,主要介绍一下方向引脚2、3引脚。2 脚和 3 脚是方向引脚,其中 2 脚是低电平使能接收器,3 脚是高电平使能输出驱动器,我们把这两个引脚连到一起,平时不发送数据的时候,保持这两个引脚是低电平,让 MAX485 处于接收状态,当需要发送数据的时候,把这个引脚拉高,发送数据,发送完毕后再拉低这个引脚就可以了。为了提高 RS485 的抗干扰能力,需要在靠近 MAX485 的 A 和 B 引脚之间并接一个电阻,这个电阻阻值从 100欧到 1K 都是可以。
  
  但是,我们实际使用收发时要专门用一个IO口来控制方向2、3引脚,这样就会很不方便有没有!!!所以一般电路中我们都是使用自收发电路

(自动收发电路,就是不用单片机引脚CTRL,当数据进来的时候,数据会自动通过RXD到单片机,当需要发送数据时,自动通过TXD发送出去。也就是只需要连接单片机的RXD和TXD引脚就可以,无需用单片机引脚连接485芯片的DE RE引脚。)

        在这里插入图片描述
      典型的自收发的485通信电路
接收:默认没有数据时,TX为高电平,三极管导通,RE为低电平使能,RO收数据有效,MAX485为接收态。
发送:发送数据时,TX会先有一个下拉的电平(起始位-由高向低),表示开始发送数据,此时三极管截止,DE为高电平发送使能。当发送数据“0”时,由于DI接口相当于接地,此时数据“0”就会传输到AB扣,A-B<0,则传输“0”,完成低电平传输,当发送“1”时,此时三极管导通,按理说RO会使能,此时由于还处于发送数据中,这种状态下MAX485处于高阻太,此时的状态通过A上来,B下拉电阻决定,此时A-B>0传输“1”,完成高电平的传输。(解释部分摘自https://blog.csdn.net/zhejfl/article/details/78638833)

  好了,到这我们就像普通的UART一样了,使用就是一样的了。

  
  485原理讲解部分
   http://m.elecfans.com/article/714259.html
  典型应用电路部分
  https://blog.csdn.net/zhejfl/article/details/78638833

  


  

实战篇

  

  实战部分博主想补充一下工业中485通信经常采用Modbus协议。这里简单的介绍一下。

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

Modbus协议特点:Modbus协议是应用于电子控制器上的一种通用协议。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其他设备之间可以通信,已经成为一种工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。这种协议定义了一种控制器能够认识使用的数据结构,而不管它们是经过何种网络进行通信的。它描述了控制器请求访问其他设备的过程,如何回应来自其他设备的请求,以及怎样侦测错误记录,它制定了通信数据的格局和内容的公共格式。

  在进行多机通信的时候,Modbus协议规定每个控制器必须要知道他们的设备地址,识别按照地址发送过来的数据,决定是否要产生动作,产生何种动作,如果要回应,控制器将生成的反馈信息用Modbus协议发出。

在这里插入图片描述
图片来自水印

Modbus有下列三种通信方式

  1. 以太网,对应的通信模式是MODBUS TCP
  2. 异步串行传输(各种介质如有线RS-232-/422/485/;光纤、无线等),对应的通信模式是MODBUS RTUMODBUS ASCII
  3. 高速令牌传递网络,对应的通信模式是Modbus PLUS

  深入学习Modbus协议可以参考大神文章,博主强烈推荐
   https://blog.csdn.net/byxdaz/article/details/77892778

  自己整理的,巩固了之前的知识,也学到了很多知识,皮一下在这里插入图片描述

  • 26
    点赞
  • 160
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值