【ACCESS精品源码栏目提醒】:本文主要为网学会员提供“基于单片机的MODBUS协议的实现 - 科学技术”,希望对需要基于单片机的MODBUS协议的实现 - 科学技术网友有所帮助,学习一下!
毕业设计报告论文 基于单片机的 MODBUS 协议的实现 所 属 系 电子工程系 专 业 电子科学与技术 学 号 01308137 姓 名 胡鑫波 指导教师 赵宁 起讫日期 2012.4 --- 2012.5 设计地点 东南大学成贤学院 东南大学成贤学院毕业设计报告(论文) 诚 信 承 诺 本人承诺所成教的毕业设计报告(论文)及取得的成果是在导师指导下完成,引用他人成果的部分均已列出参考文献。
如论文涉及任何知识产权纠纷,本人将承担一切责任。
学生签名: 日 期: 基于单片机的 MODBUS 协议的实现 摘 要 Modbus协议是应用于电子控制器上的一种通用语言。
通过此协议,控制器相互之间、控制器经由网络例如以太网和其他设备之间可以通信。
它已经成为一通用工业标准。
有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。
它描述了一控制器请求访问其他设备的过程,如何回应来自其他设备的请求,以及怎样侦测错误并记录。
它制定了消息域格式和内容的公共格式。
当在Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。
如果需要回应,控制器将生成反馈信息并用Modbus协议发出。
Modbus是一种全开放、免费提供、非常容易理解和实施的协议,目前基于Modbus协议的串口通信是较常用的方式之一。
这次系统实现的是基于单片机的Modbus协议,具体是利用Proteus仿真软件和Keil软件的联调来实现的,Modbus协议本身就是建立在串口通讯上的协议,这次用的是51单片机自带的串口来通讯的。
串口是通过tx数据线发送数据,通过rx数据线接收数据。
通过LED灯的亮暗来实现Modbus协议的传输。
关键词:Modbus;51单片机;Proteus;Keil I The achievement of Modbus agreement based on SCM Abstract Modbus protocol is applied to the electronic controller a common language.Through this agreement between the controller the controller via the network egEthernet and other devices can communicate. It has become a common industrystandard. With it the control equipment of different manufacturers can be connectedinto the network centralized monitoring. This protocol defines a controller canrecognize the message structure regardless of whether they are to communicatethrough the network over which the. It describes a controller to request
access toother equipment how to respond to requests from other devices as well as how todetect errors and record. It developed a common format of the format and contentof the message domain. When the communication on the Modbus network the agreementdetermines each controller needs to know the device address recognize the addresssent the message and decide what action. If you need to respond the controllerwill generate feedback and issued using Modbus protocol Modbus is an agreement thatis fully open free of charge very easy to understand and to implement based onModbus protocol serial communication is one of the more commonly used. This systemis a microcontroller based Modbus protocol specifically Proteus simulationsoftware and Keil software the Modbus protocol is based on a serial communicationprotocol this time with the 51 MCU comes serial communication. The serial port isthrough the tx data lines to send data receive data through the rx data line. LEDlights bright and dark to achieve the transmission of the Modbus protocol.Keywords:Modbus;51SCM;Proteus;Keil II 目录摘 要............................................................................................................................ IAbstract......................................................................................................................... II第一章 引 言................................................................................................................... 1 1.1 项目背景............................................................................................................ 1 1.2 Modbus 协议介绍................................................................................................. 1 1.3 设计目标要求..................................................................................................... 2第二章 测试工具介绍....................................................................................................... 4 2.1 Proteus 仿真工具............................................................................................... 4 2.2 Keil 软件......................................................................................................... 4第三章 RS485 工作原理介绍.............................................................................................. 6第四章 相关程序介绍 .................................................................................................... 9第五章 程序的仿真与测试 ........................................................................................... 11 5.1 调试平台......................................................................................................... 11 5.2 调试问题......................................................................................................... 11 5.3 调试结果.......................................................................................................... 11结束语............................................................................................................................ 13致谢............................................................................................................................... 14参考文献........................................................................................................................ 15附录............................................................................................................................... 16 III 东南大学成贤学院毕业设计报告 第一章 引 言1.1 项目背景 随着计算机技术的不断发展,利用微机进行数据通讯在现代工业生产和过程控制中得到了越来越广泛的应用。
485串行通信接口使用差分信号输出,故其抗干扰性强,传输距离远。
当采用Modbus通讯协议后,可以方便快速地实现对不同生产现场的控制设备进行组网,便于集中监控。
工业控制已从单机控制走向集中监控、集散控制,如今已进入网络时代,工业控制器连网也为网络管理提供了方便。
Modbus 就是工业控制器的网络协议中的一种。
Modbus协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。
它描述了控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。
它制定了消息域格局和内容的公共格式。
当在Modbus 网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。
如果需要回应,控制器将生成反馈信息并用Modbus协议发出。
在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。
这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。
1.2 Modbus 协议介绍 Modbus 是由 Modicon(现为施耐德电气公司的一个品牌)在 1979 年发明的,是全球第一个真正用于工业现场的总线协议。
为更好地普及和推动 Modbus 在基于以太网上的分布式应用,目前施耐德公司已将 Modbus 协议的所有权移交给 IDA(Interface for DistributedAutomation,分布式自动化接口)组织,并成立了 Modbus-IDA 组织,为 Modbus 今后的发展奠定了基础。
在中国,Modbus 已经成为国家标准 GB/T19582-2008。
据不完全统计:截止到2007 年,Modbus 的节点安装数量已经超过了 1000 万个。
Modbus 协议是应用于电子控制器上的一种通用语言。
通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。
它已经成为一通用工业标准。
有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。
它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。
它制定了消息域格局和内容的公共格式。
当在一 Modbus 网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。
如果需要回应,控制器将生成反馈信息并用Modbus 协议发出。
在其它网络上,包含了 Modbus 协议的消息转换为在此网络上使用的帧或包结构。
这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法 Modbus具有以下几个特点:(1)标准、开放,用户可以免费、放心地使用 Modbus 协议,不需要交纳许可证费,也不会侵犯知识产权。
目前,支持 Modbus 的厂家超过 400 家,支持 Modbus的产品超过 600 种。
(2)Modbus 可以支持多种电气接口,如 RS-232、RS-485 等,还可以 1 东南大学成贤学院毕业设计报告在各种介质上传送,如双绞线、光纤、无线等。
(3)Modbus 的帧格式简单、紧凑,通俗易懂。
用户使用容易,厂商开发简单。
标准的 Modbus 口是使用 RS-232C 兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。
控制器能直接或经由 Modem 组网。
控制器通信使用主—从技术,即仅一设备(主设备)能初始化传输(查询)。
其它设备(从设备)根据主设备查询提供的数据作出相应反应。
典型的主设备:主机和可编程仪表。
典型的从设备:可编程控制器。
主设备可单独和从设备通信,也能以广播方式和所有从设备通信。
如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应。
Modbus 协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。
从设备回应消息也由 Modbus 协议构成,包括确认要行动的域、任何要返回的数据、和错误检测域。
如果在消息接收过程中发生错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。
在其它网络上,控制器使用对等技术通信,故任何控制都能初始和其它控制器的通信。
这样在单独的通信过程中,控制器既可作为主设备也可作为从设备。
提供的多个内部通道可允许同时发生的传输进程。
在消息位,Modbus 协议仍提供了主—从原则,尽管网络通信方法是“对等”。
如果一控制器发送一消息,它只是作为主设备,并期望从从设备得到回应。
同样,当控制器接收到一消息,它将建立一从设备回应格式并返回给发送的控制器。
1.3 设计目标要求 课题要求是利用单片来实现Modbus协议,我的想法是设计使用两片51单片机,一个为主机一个为从机,主从机之间通过串口通讯,主机向从机发送modbus指令,从机接收并解码modbus指令,然后执行modbus指令,实现LED等的亮灭控制。
也可以通过LCD显示屏显示内容来判断是否接收到符合Modbus协议的信号,但是考虑到自身的基础比较薄弱,用LED灯来实现比较方便,LCD作为拓展,有空的话可以实践一下,不过比起LED灯来通过LCD屏来反映更为直观。
由于是用仿真软件仿真所以未使用485串口而是使用的是单片机自带的串口。
这次系统实现的是基于单片机的Modbus协议,具体是利用Proteus软件来完成电路布局连线等任务,用Keil软件来完成程序代码部分,最后通过两者的联调来实现仿真。
Modbus协议本身就是建立在串口通讯上的协议,这次用的是51单片机自带的串口来通讯的。
串口是通过tx数据线发送数据,通过rx数据线接收数据。
通过LED灯的亮暗来实现Modbus协议的传输。
单片机端的程序流程图如图1.3.1。
2 东南大学成贤学院毕业设计报告 开始 Modbus 变量初始化 接受主机数据 N 与从机 ID 吻合 Y N CRC 校验正确? Y 完成功能码的相应功能 结束 图 1.3.1 单片机端的程序流程图系统结构如图 1.3.2 。
配 功能实现(Function Implementation) 置 信 息 从节点(Slave) ( Co nf 公用(Common) ig ur at ASCII 传输(ASCII) RTU 传输(RTU) io n) C51 串口(C51 Serial) 图 1.3.2 系统结构 3 东南大学成贤学院毕业设计报告 第二章 测试工具介绍2.1 Proteus 仿真工具 Proteus 软件 是英国 Labcenter electronics 公司出版的 EDA 工具软件 (该软件中国总代 理为广州风标电 子技术有限公司 )。
它不仅 具有其它 EDA 工具软件 的仿真功能,还能仿真单片 机及外围器件。
它是目前最好的仿 真单片机及外围器件的工具。
虽然目前国内推广刚 起步,但已受到单片机爱 好者、从事单片机教学的 教师、致力于单片机开发应用的科 技工作者的青睐。
Proteus 是世界上著名的 EDA 工具仿真软件,从原理图布图、代码调试到单片机 与外围电路协同仿真,一键切换到 PCB 设计,真正实现了从概念到产 品的完整设计。
是目前世界上唯一 将电路仿真软件、PCB 设计软件和 虚 拟 模 型 仿 真 软 件 三 合 一 的 设 计 平 台 , 其 处 理 器 模 型 支 持 8051 、 HC11 、 AVR、PIC10/12/16/18/24/30/DsPIC33、 ARM、8086 和 MSP430 等,2010 年又增加了 Cortex和 DSP 系列 处理器, 并持续增 加其他系 列处理 器模型。
在编译方 面,它也 支持 IAR、Keil 和 MPLAB 等多种编译器 。
Proteus 软件的功能是 :1.原理布图;2.PCB 自动或人工布线 ;3.SPICE 电路仿真。
Proteus 软件的特点:1.互动的电路仿真 ,用户甚至可以实时 采用诸如 RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分 SPI 器件 ,部分 IIC 器件 ;2.仿真处理器及其外围电路,可以仿真 51 系列、AVR、PIC、ARM、等常用主流单片机 。
还可以直接在基于原理图的虚拟原 型上编程,再配合显示及输出,能 看到运行后输入输出的效果。
配合系统配置的虚拟逻辑分析仪 、示波器等,Proteus 建立了完备的电子 设计开发环境。
2.2 Keil 软件 Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用 C 来开发,体会更加深刻。
Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows 界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为 CPU可以执行的机器码有两种方法,一种 Keil 软件图标是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。
机器汇编是通过汇编软件将源程序变为机器码,用于 MCS-51单片机的汇编软件有早期的 A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil 软件是目前最流行开发MCS-51 系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持 Keil 即可看出。
Keil提供了包括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整 4 东南大学成贤学院毕业设计报告开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。
运行 Keil 软件需要Pentium 或以上的 CPU,16MB 或更多 RAM、20M 以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP 等操作系统。
掌握这一软件的使用对于使用 51 系列单片机的爱好者来说是十分必要的,如果你使用 C 语言编程,那么 Keil 几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用 C 语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
Keil C51 开发系统基本知识 Keil C51 开发系统基本知识 1. 系统概述 Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用 C 来开发,体会更加深刻。
Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows 界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
下面详细介绍 Keil C51 开发系统各部分功能和使用。
2. Keil C51 单片机软件开发系统的整体结构 C51 工具包的整体结构,如图1所示,其中 uVision 与 Ishell 分别是 C51 for Windows和 for Dos 的集成开发环境IDE,可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用 IDE 本身或其它编辑器编辑 C 或汇编源文件。
然后分别由 C51 及 A51 编译器编译生成目标文件.OBJ。
目标文件可由 LIB51 创建生成库文件,也可以与库文件一起经 ABSL51 连接定位生成绝对目标文件.ABS。
文件由 OH51 转换成标准的 Hex 文件,以供调试器 dScope51 或 tScope51 使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如 EPROM 中。
使用独立的 Keil 仿真器时,注意事项: 仿真器标配 11.0592MHz 的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。
仿真器上的复位按钮只复位仿真芯片,不复位目标系统。
仿真芯片的 31 脚(/EA)已接至高电平,所以仿真时只能使用片内 ROM,不能使用片外 ROM;但仿真器外引插针中的 31 脚并不与仿真.