手把手教你学51单片机之十八RS485通信及Modbus协议.docxVIP

手把手教你学51单片机之十八RS485通信及Modbus协议.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在工业控制、电力通讯、智能仪表等领域,通常情况下是采用串口通信的方式进行数据交换。最初采用的方式是 RS232 接口,由于工业现场比较复杂,各 种电气设备会在环境中产生比较多的电磁干扰, 会导致信号传输错误。 除此之外, RS232 接口只能实现点对点通信, 不具备联网功能, 最大传输距离也只能达到 几十米,不能满足远距离通信要求。而 RS485 则解决了这些问题,数据信号采用 差分传输方式,可以有效的解决共模干扰问题,最大距离可以到 1200 米,并且 允许多个收发设备接到同一条总线上。随着工业应用通信越来越多, 1979 年施耐 德电气制定了一个用于工业现场的总线协议 Modbus 协议,现在工业中使用 RS485 通信场合很多都采用 Modbus 协议,本节课我们要讲解一下 RS485 通信和 Modbus 协议。 单单使用一块 KST-51 开发板是不能够进行 RS485 实验的, 应很多同学的要求, 把这节课作 为扩展课程讲一下,如果要做本课相关实验,需要自行购买 USB 转 485 通信模块。 18.1 RS485 通信 实际上在 RS485 之前 RS232 就已经诞生,但是 RS232 有几处不足的地方: 1、接口的信号电平值较高,达到十几 V ,容易损坏接口电路的芯片,而且和 TTL 电平不兼 容,因此和单片机电路接起来的话必须加转换电路。 2、传输速率有局限,不可以过高,一般到几十 Kb/s 就到极限了。 3、接口使用信号线和 GND 与其他设备形成共地模式的通信,这种共地模式传输容易产生 干扰,并且抗干扰性能也比较弱。 4、传输距离有限,最多只能通信几十米。 5、通信的时候只能两点之间进行通信,不能够实现多机联网通信。 针对 RS232 接口的不足,就不断出现了一些新的接口标准, 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 类的芯片很多,这节课我们以 MAX485 为例讲解 RS485 通信,如图 18-1 所示。 图 18-1 MAX485 硬件接口 MAX485 是美信 (Maxim) 推出的一款常用 RS485 转换器。其中 5 脚和 8 脚是电源引脚, 6 和 7 脚就是 485 通信中的 A 和 B 两个引脚,而 1 脚和 4 脚分别接到我们单片机的 RXD TXD 引脚上,直接使用单片机 UART 进行数据接收和发送。 而 2 脚和 3 脚就是方向引脚了, 其中 2 脚是低电平使能接收器, 3 脚是高电平使能输出驱动器。 我们把这两个引脚连到一起,  脚 和 平时不发送数据的时候,保持这两个引脚是低电平,让  MAX485  处于接收状态,当需要发 送数据的时候,  把这个引脚拉高,发送数据,  发送完毕后再拉低这个引脚就可以了。为了提 高  RS485  的抗干扰性能,  需要在靠近  MAX485  的  A  和  B  引脚之间并接一个电阻,  这个电阻 阻值从  100 欧到  1K  都可以。 在这里我们还要介绍一

文档评论(0)

131****8546 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档