收藏 分享(赏)

嵌入式系统中MODBUS通信的教学研究与实践.pdf

上传人:高**** 文档编号:1002573 上传时间:2024-06-03 格式:PDF 页数:4 大小:121.04KB
下载 相关 举报
嵌入式系统中MODBUS通信的教学研究与实践.pdf_第1页
第1页 / 共4页
嵌入式系统中MODBUS通信的教学研究与实践.pdf_第2页
第2页 / 共4页
嵌入式系统中MODBUS通信的教学研究与实践.pdf_第3页
第3页 / 共4页
嵌入式系统中MODBUS通信的教学研究与实践.pdf_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、嵌入式系统中 MODBUS 通信的教学研究与实践打开文本图片集摘要:文章针对 MODBUS 通信协议进行了实践和教学研究。首先,指出了MODBUS 协议的重要性以及地位作用;其次,分析了 MODBUS 帧的结构和通信原理,再利用一个通信项目分析了 MODBUS 通信的详细过程和开发代码;最后,指出 MODBUS 通信过程中需要注意的问题,并进行了总结,这对于 MODBUS 项目的研究与开发有重要的参考价值。关键词:MODBUS 通信协议;STC 单片机;485 通信;工业物联网1网络通信概述随着计算机通信技术的发展,越来越多的计算机系统连接到网络当中,网络通信成为当前信息科学最为热点的问题之一

2、,尤其在工业控制与物联网领域,如何安全、快速、便捷地传送数据,成为衡量工业发展水平的重要标志之一。与传统 PC 机相比,工业领域的信息通信的特点1在于:通信主机结构类型不尽相同;通信环境有可能会受到辐射干扰;通信设备成本限制;通信组网信息安全;网络拓扑结构各异。在这种背景下,选择什么样的通信方式和通信协议,就显得异常关键。2MODBUS 通信协议MODBUS2是由施耐德电气(现在的 Modicon 公司)于 1979 年为 PLC 之间的通信而研发的一种串行通信协议,它为连接至不同类型总线或网络的设备之间提供了 C/S 通信,目前已经成为工业领域通信协议的业界标准。自 1979 年以来,使成千

3、上万的自动化设备能够通信,很好地解决工业领域面临的通信难题,成为目前主流的工业物联网通信协议。MODBUS 协议定义了一个与基础通信层无关的简单协议数据单元(ProtocolData Unit,PDU)。特定总线或网络上的 MODBUS 协议映射能够在应用数据单元(Application Data Unit,ADU)上引入一些附加域。启动 MODBUS 事务处理的客户机创建 MODBUS 应用数据单元。功能码向服务器指示将执行哪种操作。MODBUS 协议建立了客户机启动的请求格式。MODBUS 事务处理流程如图 1 所示。3MODBUS 通信实践与教学3.1总体结构采用单片机与 PC 上位机的

4、串口通信方式,并采用 RS485 总线进行信号传输,以保证信号的总体质量。单片机一端作为服务器端,不主动发送数据,只是等待应答客户端请求的数据。PC 机作为客户端,负责启动请求与接收响应。与 RS232 相比,采用 RS485 总线的好处在于:(1)传输方式不同。RS-232 采取不平衡传输方式,即所谓单端通信。而 RS485 则采用平衡传输,即差分传输方式。在稳定性和抗干扰性方面都有明显优势。(2)传输距离不同。RS-232适合本地设备之间的通信,传输距离一般不超过 20 m。而 RS-485 的传输距离为几十米到上千米。(3)主机数量不同。RS-232 只允許一对一通信,而 RS-485

5、接口在总线上是允许连接收发器多达 128 个。3.2MODBUS 软件设计MODBUS 公共功能码是 MODBUS 协议通用的功能码,这个功能码是预先被定义好的,并且需要保证是唯一的、公开证明的。对应于每个操作访问,相关程序代码如下:void readCoil(void);/读线圈void readRegisters(void);/读寄存器void forceSingleCoil(void);/强制单个线圈void presetSingleRegister(void);/设置单个寄存器void presetMultipleRegisters(void);/设置多个寄存器void forceMu

6、ltipleCoils(void);/强制多个线圈3.3MODBUS 通信从机软件设计MOBUS 通信的主要过程包括:(1)进行系统初始化设置,主要包括定时器初始化,串口初始化,中断服务函数的编写和变量定义。(2)定时处理,不是指定时器与计数器的初始化,而是指判断一个完整的 MODBUS 帧是否结束的时间。关于区分两个帧的间隔时间,有许多衡量方法,一般采用延时几十微秒的方法。(3)循环监听 MODBUS 状态,一旦收到完整的数据帧,便开始处理,利用前面讲到的 MODBUS 库函数进行处理。在完成读写任务后,按照 MODBUS 帧规则,应答数据通过 MODBUS 总线传回客户端。部分初始化代码如

7、下。/串口初始化代码void UartInit(ULONG baud,UCHAR mode)IE=0 x90;TMOD=(TMOD&0X0F)|0X20;TH1=-22118400L/12/32/9600;TL1=-22118400L/12/32/9600;TR1=1;SCON=0X50;PCON|=0X80;/串口中断服务函数代码void commIntProc(void)interrupt 4 if(!RI)return;RI=0;receTimeOut=20;receBufreceCount=SBUF;receCount+;receCount&=0 x0f;4开发过程需要注意的问题4.1

8、单片机型号的选择单片机最常用的主要包括 89C51 和 89C52 系列,许多型号的单片机均可采用这種型号的工程。然而,单片机开发时最好要用自己的工程型号以及头文件。如本例用到的 STC15 系列单片机,需要在建立工程时便选定型号,并且加入其特有的头文件:#include“stc15.h”。这样,才能保证工程能够编译通过并正确下载到芯片中。4.2波特率的控制在传输过程中,客户机与服务器的波特率设置必须完全一致,否则将接收不到正确的数据。受到传输距离和单片机性能的约束,在速度选择上要适中,具体情况要通过实验得以验证,一般不宜过高或过低。4.3传输距离MODBUS 通信物理层多采用的是串行通信,在

9、通信过程中不同类型的串行通信差别很大,如 RS232 和 RS485 在通信原理和通信性能上都存在很大差异,在开发过程中,应该根据需要合理选择,避免造成信号不稳定。4.4CRC 校验码循环冗余校验码(Cyclic Redundancy Check,CRC)可以有效地检测到传输问题导致的数据错误,它的原理是利用 CRC 算法将数据帧转换成一个 CRC 检验码,接收方在接收到数据以后,再重新计算校验码并与发送时的检验码相比对,以检验数据的准确性。在实践过程中,CRC 校验码的生成和检测一般直接利用库函数完成,不是 MODBUS 研究的重点,在开发和教学过程中应当注意区分。4.5节点数量有的项目可能

10、需要几百甚至上千个节点进行 485 通信,从理论上讲,无论是MODBUS 还是 485 总线都是有数量限制的,MODBUS 的数量最多 240 个。485 总线根据芯片的不同,差异也很大,在几十到几百之间。同时,还受到线路长度的影响。如果想让更多的设备连接在一起,需要采用中继器或者多串口服务器一类的设备进行网络拓扑。5结语通过对 MODBUS 的系统研究与实验论证,证明 MODBUS 协议在单片机平台上,利用 RS485 通信是十分可靠并可以实现的,可以应用到嵌入式系统等相关课程的教学当中。通过合理的组织教学,让学生能够熟悉并掌握工业现场的应用技术,更接近市场的人才需求,内容适合物联网相关专业的学生学习。同时,还要注意讲授内容的取舍,把重点放在 MODBUS 协议本身,以免使学生产生畏难心理。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿园

网站客服QQ:123456
免费在线备课命题出卷组卷网版权所有
经营许可证编号:京ICP备12026657号-3