单片机实现RS485的通信.doc

上传人:文****钱 文档编号:54818 上传时间:2018-05-29 格式:DOC 页数:26 大小:30.47MB
下载 相关 举报
单片机实现RS485的通信.doc_第1页
第1页 / 共26页
单片机实现RS485的通信.doc_第2页
第2页 / 共26页
单片机实现RS485的通信.doc_第3页
第3页 / 共26页
单片机实现RS485的通信.doc_第4页
第4页 / 共26页
单片机实现RS485的通信.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、 本科毕业论文 题 目: 单片机实现 RS485 的通信 学生姓名: 学号: 院(系): 专业: 入学时间: 年 月 导师姓 名: 职称 /学位: 副教授 /博士 导师所在单位: 完成时间: 年 月 单片机实现 RS485 的通信 摘 要 在工业控制自动化领域,智能装置之间的通信占有重要的地位, RS485 这种串行通信方式在工控自动化领域应用非常广泛,这种远距离通信可以采集远程信息和远程数据,实现远程控制和远程调节。本文首先介绍了 RS485 通信标准,然后在此基础上设计了通信协议,并且提出了具体的通信实现方案。系统使用 STC89C52RC 为主控芯片,以 MAX485 芯片实现 RS48

2、5 收发功能,并且加上键盘输入和 LCD 显示功能,最终完成主站和子站的一套小型远程控制方案。 关键词: RS485;工控自动化 ;总线 ;协议 A Kind of Implementation Method of RS485 Communication With MCU Abstract In the field of industrial control automation,communication between smart devices is very important. The serial communication interface RS485 is widely ap

3、plied in the field of industrial control automation.Remote command and remote data can be transported by a established connection.So we can realize remote control and remote monitoring by communication. This article first introduces the RS485 communication standard, and then introduces the design of

4、 communication protocol,finally puts forward a specific implementation scheme of communication. This system uses STC89C52RC as main control chip,MAX485 as RS485 transceiver, and combined with keyboard input module and LCD module.This system is a small remote control solution between main and sub sta

5、tions. Keywords: RS485; industrial control automation; bus; protocol 目 录 1. 绪论 . 1 1.1. RS485 简介 . 1 1.2. 单片机的选型 . 1 1.3. 通信协议简介 . 2 1.4. 研究内容和意义 . 2 2. 通信协议设计 . 2 2.1. Modbus 协议 . 2 2.1.1. Modbus 介绍 . 2 2.1.2. Modbus 帧格式 . 3 2.2. 基于 Modbus 的协议设计 . 4 2.2.1. 传输规则设 计 . 4 2.2.2. 设置单点命令 . 5 2.2.3. 设置数据命

6、令 . 6 2.2.4. 召唤状态信息 . 6 2.2.5. 召唤数据信息 . 7 3. 系统设计 . 7 3.1. 系统功能 . 7 3.2. 系统硬件设计 . 8 3.2.1. RS485 收发模块 . 8 3.2.2. LCD 液晶模块 . 9 3.2.3. 键盘输入模块 . 10 3.2.4. 子站的 LED 灯模块 . 11 3.2.5. 实际电路图 . 11 3.3. 系统软件设计 . 12 3.3.1. 主站程序设计 . 12 3.3.2. 子站程序设计 . 15 3.4. 编译和调试 . 17 4. 论文总结 . 19 主要参考文献 . 19 附录 A 主站协议实现 . 错误

7、!未定义书签。 附录 B 子站协议实现 . 错误 !未定义书签。 致 谢 . 21 1 1. 绪论 1.1. RS485 简介 RS485,又叫 EIA-485,是美国电子工业协会 EIA 制定的一种串行物理接口标准。一般采用两线制传输,利用两线间的电压差进行数据传输。 RS485 可以满足通信距离远,抗干扰能力大,传输速率高的要求。通过 RS485总线连接的智能设备可以形成网络拓扑,满足了网络信息化的需要。一台主机可以同时控制多台从机,这种一对多的主从通信方式极大的提高了通信的效率,也节省了通信成本。 RS485 通信的特点如下: ( 1) 逻辑 “ 1”以两线间的电压差 为 +(26)V

8、表示;逻辑 “ 0” 以两线间的电压差为 -(26)V 表示,接口信号电平与 TTL 电平兼容。 2 ( 2) RS485 最大的通信距离约为 1200m,最大传输速率为 10Mbps,如果需传输更长的距离,需要加 485 通信 中继器。 2 ( 3) RS485 接口抗干扰性能好,由于采用平衡驱动器和差分接收器的组合,使得它的抗共模干扰能力增强。 ( 4) RS485 仅仅规定了接受端和发送端的电气特性,它对数据协议未做规定,因此在通信方案中的协议要另行设计,但必须满足 RS485 的物理传输要求。 ( 5) 可以采用两线制,半双 工通信方式,信息可以双向传输,但不能同时进行数据的收发。也可

9、以采用四线制,全双工通信方式,这样就可以实现同时收发数据。 RS485 一般采用两线制,主从半双工通信,手拉手串联接线方式。连接图如下所示: 从 站A B从 站A B从 站A B主 站A BR图 1: RS485 连接图 如图 1 所示,采用手拉手接线方式,可以在总线上挂接一个主站和多个从站,实现一站对多站的通信方式。 在实际应用中,实现 RS485 电平转换的有多种芯片 ,最为典型的为 MAX485芯片,本设计也将采用 MAX485 芯片实现 RS485 的发送与接收过程,具体实现见本文第 3 章节。 1.2. 单片机的选型 单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理

10、2 能力的 CPU、 RAM、 ROM、多种 I/O、定时计数器和终端系统等功能集成到一块硅片上所构成的小型计算机系统。单片机具有多种通信接口,可以方便的实现通信。 本设计中采用 STC89C52RC 型号单片机, STC89C52RC 单片机是由宏晶科技设计的 8 位增强 型 51 单片机,拥有 8KB 的 FLASH 程序存储区, 512 byte 的RAM, 1 个 UART 接口, 3 个定时 /计数器, 4 个 8bit 双向 I/O 口。对于本次设计,此型号单片机可以满足要求。 1.3. 通信协议简介 通信协议是指通信双方完成数据通信传输所必须遵循的规则和约定。协议定义了数据单元的

11、格式、信息发送和接收的时序等,从而确保网络中数据顺利地传送到正确的地方。 通信协议相当于是通信双方共同的语言,是通信过程中不可或缺的一部分。由于 RS485 属于物理层的接口标准, 它没有规定任何数据协议,本次设计的通信协议在物理层上要符合 RS485 的传输要求,遵从半双工、主从通信的规则。 Modbus 作为一个问答式通信协议,是全球第一个真正用于工业现场的总线协议,它具有如下特点 1: ( 1) 作为一项标准、开放的协议,用户可以免费地使用,不会侵犯知识产权。 ( 2) 支持多种电气接口(如 RS485),并且还能在各种介质上传送(如双绞线、光纤、无线等)。 ( 3) 帧格式简单、紧凑,

12、协议内容通俗易懂,用户可以很容易的使用。 通过以上特点可以看出, Modbus 能够适应 RS485 的传输要求,所以本 次设计的通信协议是在 Modbus 的基础上,进行了适当的改变所完成 的。 1.4. 研究内容和意义 本文将依次介绍 RS485 和基于 Modbus 所设计的通信协议,然后提出具体系统设计方案,包括系统电路图和程序设计流程图,最终实现一套小型主从式的一点对多点远程智能控制方案。 2. 通信协议设计 2.1. Modbus 协议 2.1.1. Modbus 介绍 Modbus 是一种串行通信协议,它是由 Modicon 在 1979 年发明的,是全球第一个真正用于工业现场的

13、总线协议, Modbus 协议如今交由分布式自动化接口组织进行管理,为 Modbus 今后的发展奠定了基础。 Modbus 是应用于电子控制器上的一种通用协议。通过此协议,网络上的控3 制器和其它各种智能设备之间就可以实现通信,它逐渐成为了一种通用工业标准。通过该协议,不同厂商生产的控制设备可以连成一个网络,进行集中监控。 Modbus 支持多种传输网络,它所支持的网络包括串行 链路和标准以太网等。Modbus 协议的标准连接方式为串行链路连接方式,多数 Modbus 设备通过串口RS485 两线制接口进行通信。 Modbus 串行链路协议是一个主 /从协议,可以实现由一个主站和多个子站进行通

14、信的功能。它是 OSI 模型第二层上的链路层传输协议,串行链路上的客户机由主节点提供,服务器由从节点提供。在同一时刻,只有一个主节点连接于总线,一个或多个子节点 (最大编号为 247)连接于同一个串行总线。 Modbus 通信总是由主节点发起,子节点在没有收到来自主节点的请求时,从不会发送数据,子节点之间从不会互相通 信。主节点在同一时刻只会发起一个 Modbus 事务处理。 请求 /应答过程如图 1 所示: 图 2: Modbus 请求 /应答过程图 1 2.1.2. Modbus 帧格式 对于 Modbus 串行链路存在两种传输模式, Modbus RTU 模式和 Modbus ASCII

15、 模式。 Modbus RTU 模式是一种采用二进制表示数据的方式, Modbus ASCII模式是一种人类可读的、采用 ASCII 码值表示数据的方式。 RTU 格式采用循环冗余校验的校验方式,而 ASCII 格式采用纵向冗 余校验的校验方式。配置为 RTU模式的节点和配置为 ASCII 模式的节点不可以互相通信。 ( 1) Modbus RTU 模式 表 1: Modbus RTU 模式 子节点地址 功能码 数据 CRC(循环冗余)校验 1 字节 1 字节 0 到 252 字节 2 字节( CRC 低 | CRC 高) 4 注:报文帧由时长至少为 3.5 个字节时间的空闲间隔区分, RTU

16、 模式帧最大尺寸为 256 字节。 CRC 的计算:初始对一个 16 位寄存器预装全 1,每个 8 位字节与寄存器中的值相异或,然后结果向最低有效位 (LSB)方向移动 1 位,而在最高有效位 (MSB)上 填充零。然后提取并检查 LSB:如果 LSB 为 1,则寄存器中的值与一个固定的预设值相异或;如果 LSB 为 0,则不进行任何操作,这个过程将重复直到执行完 8 次移位。完成每个字节的最后一次移位及相关操作后,下一个 8 位字节与寄存器的当前值相异或,然后又同上面描述过的一样重复 8 次。当所有报文中的字节都运算之后得到的最终值,就是 CRC 的值。 ( 2) Modbus ASCII

17、模式 表 2: Modbus ASCII 模式 起始 地址 功能码 数据 LRC(纵向冗余) 结束 : 字符 2 字符 2 字符 0 到 2*252 字符 2 字符 CR, LF 注 : Modbus ASCII 帧的最大尺寸为 513 个字符。 LRC 的计算:对一帧报文中的所有的连续 8 位字节相加,忽略任何进位,然后求出其二进制补码。 计算过程不包括起始 “冒号 ”和结尾 CR, LF 字符。在ASCII 模式, LRC 的结果被 ASCII 编码为两个字节并 放置于 ASCII 模式报文帧的结尾, CR 和 LF 之前。 2.2. 基于 Modbus 的协议设计 2.2.1. 传输规则

18、设 计 根据本课题的要求,通信协议设 计在 Modbus 的基础上做了如下的延伸和改变: ( 1) 取消了广播功能。 ( 2) 功能码做了适当改变,采用自定义的功能码。 ( 3) 校验方式采用简单加校验。 ( 4) 对于命令帧,加校验从地址码开始算起。 ( 5) 对于数据帧,加校验从数据起始字节开始算起。 ( 6) 帧起始和结束由空闲 3.5 个字节来区分。 ( 7) 对于数据传输时,为了便于屏幕显示,直接发送 ASCII 格式的字符。 ( 8) 子站收到异常命令,将不做响应,主站会以超时处理。 ( 9) 字节发送是从 LSB 开始发送, 8 位数据位, 1 位停止位,无校验位。 主站 状态图

19、如下所示: 5 空 闲应 答 处 理等 待 应 答 出 错 处 理请 求 发 送 到 子 节 点 / 启 动 响应 超 时应 答 超 时接 收 响 应 / 停 止 超 时 计 时接 收 响 应 非 期 望 子 节 点 出 错 处 理 结 束应 答 处 理 结 束帧 错 误图 3: 主站状态图 如上图 3 所示,主站是主动发起通信的一方,开机启动初始化后进入空闲状态,只有当按下功能键后才会进行相应的动作或者启动通信;当主站主动发起通信请求后,将启动响应超时计时,并进入等待应答状态;在等待应答状态下,只有接收到期望子节点应答后才会进入应答处理,否则将以超时出错处理;当应答处理结束或者超时出错处理结束后,主站又将恢复到空闲状态。 子站 状态图如下所示: 空 闲检 查 请 求格 式 化 正 常 应 答处 理 请 求 动 作格 式 化 错 误从 主 节 点 接 收 一 个 请 求检 查 O K检 查 错 误不 作 响 应结 束 处 理 , 发 送 应 答正 常 应 答 发 送图 4: 子站状态图 如上图 4 所示,子站开机启动初始化后进入空闲状态,子站从不主动发送数据,只有在收到主节点的通信请求后,才对请求进行检查,对检查正确的数据帧才会进行处理和应答,否则将以格式化错误进行处理,不做任何响应,并且返回至空闲状态。 2.2.2. 设置单点命令

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。