Modbus协议下单片机与eView触摸屏的通信方法

2015-01-20 20:22:26来源: 互联网
Modbus协议由于其具有开放性、透明性、成本低、易于开发等特点,已成为当今工业领域通信协议的首选。

本文介绍了一种基于Modbus通信协议的eView触摸屏与常用的51单片机的通信方法。该方法通过C51编程实现Modbus通信,在51系列单片机上具有通用性,有一定的借鉴作用。

工业控制中经常需要观察系统的运行状态或者修改运行参数。触摸屏能够直观、生动地显示运行参数和运行状态,而且通过触摸屏画面可以直接修改系统运行参数,人机交互性好。单片机广泛应用于工控领域中,与触摸屏配合,可组成良好的人机交互环境。

触摸屏与单片机通信,需要根据触摸屏采用的通信协议为单片机编写相应的通信程序。Modbus协议是美国Modicon公司推出的,一种有效支持控制器之间以及控制器经由网络(如以太网)与其他设备之间进行通信的协议。本文以STC89C51单片机和人机电子有限公司的eView触摸屏为例,介绍其通信程序的开发过程。

1 系统结构

实现触摸屏与单片机的通信,主要是解决通信协议的问题。本文使用开放的Modbus通信协议,以触摸屏作主站,单片机作从站。eView触摸屏本身支持Modbus通信协议,如果单片机也支持Modbus协议,就可以进行通信了。eview触摸屏支持RS-232和RS-485两种通信接口。在工业控制领域,由于RS-485具有可靠性高、传输距离远、抗干扰能力强等优点,所以在本系统中触摸屏与单片机通信采用RS-485连接,传输速率设置为9600 kbps。RS-485信号传输是一种半双工的传输方式,单片机通过一个RS-232/RS-485无源转换器把232信号转换成485信号,连接到eView触摸屏上。图l为该系统的原理图。

 

 

单片机控制系统采用STC89C51系列单片机,其内部集成MAX810/STC810专用复位电路(原有外部复位可继续保留,与Intel 8051引脚兼容),具有抗干扰能力强、加密性强、高抗静电(ESD)、超低功耗等特点,而且价格低廉。在本系统中,触摸屏是上位机,单片机是下位机。

2 Modbus协议

2.1 Modbus协议简介

Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(如以太网)与其他设备之间可以通信。它已经成为一种通用工业标准。不同厂商生产的控制设备可以通过它连成工业网络,集中监控。

Modbus协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其他设备的过程.如何回应来自其他设备的请求,以及怎样侦测错误并记录;制定了消息域格局和内容的公共格式。

当在某一Modbus网络上通信时,此协议决定了每个控制器需要知道它们的设备地址,识别按地址发来的消息,以及决定要产生何种行动。如果需要回应,则控制器将生成反馈信息并用Modbus协议发出。在其他网络上,包含了M0dhus协议的消息转换为在此网络上使用的帧或包结构。

2.2 Modbus RTU通信数据传输模式

当控制器设备基于Modbus协议以RTU模式通信时,消息中的每个字节包含2个4位的十六进制字符。这种方式的主要优点是:在同样的波特率下,可比ASCII方式传送更多的数据。

编码采用8位二进制,十六进制数0~9和A~F;消息中每个8位域都是由2个十六进制字符组成。组织结构如下:

 

 

2.3 Modbus RTU消息帧结构

Modbus RTU消息帧结构如下:

 

 

(1)地址码

地址码为通信传送的第一个字节。这个宁节表明,由用户设定地址码的从机将接收由主机发送来的信息。每个从机都有具有唯一的地址码,只有符合地址码的从机才能响应回送,且响应回送均以各自的地址码开始。主机发送的地址码则表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。地址0用作广播地址,以使所有的从设备都能认识。

(2)功能代码

功能代码为通信传送的第二个字节。Modbus通信规约定义可能的代码范围是十进制的1~255。当然,有些代码适用于所有控制器,有些仅适用于某种控制器,还有些保留以备后用。主机发送请求,通过功能码告诉从机执行什么动作;从机响应请求,从机发送的功能码与从主机发送来的功能码一样,表明从机已响应主机进行操作。如果从机发送的功能码的最高位为1,则表明从机没有响应操作或发送出错,主设备应用程序得到异议的回应后,典型的处理是重发消息。表l列出了常用Modbus支持的部分功能码。

 

 

以读取线圈状态为例说明。主站发送命令:[设备地址][命令号01][起始寄存器地址高8位][低8位][读取的寄存器数高8位][低8位][CRC校验的低8位][高8位]。从站响应:[设备地址][命令号01][返回的字节个数][数据1][数据2]…[数据n][CRC校验的低8位][高8位]。

(3)数据区

数据区根据功能码的不同而不同。数据区包含需要从机执行什么动作,或由从机采集的返送信息。这些信息可以是实际数值、设置点、主机发送给从机或从机发送给主机的地址等。例如,功能码告诉从机读取寄存器的值,则数据区必须包含要读取寄存器的起始地址及读取长度。对于不同的从机,地址和数据信息都不相同。

(4)错误校验码

主机或从机可用校验码判别接收信息是否出错。错误检测域包含一个16位的值(用2个8位的字符来实现)。错误检测域的内容是通过对消息内容进行“循环冗余检测”得出的。CRC域附加在消息的最后,添加时先是低字节然后是高字节,故CRC的高位字节是发送消息的最后一个宁节。错误校验采用CRC-16校验方法。

3 软件编程

下面是采用C5l编写的软件,主要包括CRC校验和终端接收及波特率设置等。由于篇幅有限,其他程序略。

 

 

 

 

 

 

4 总 结

由于Modhus协议具有开放性和透明性等特点,而51系列单片机技术成熟、开发成本低,二者的结合将继续成为各类通信系统设计的首选。本设计方法已经应用于触摸屏与单片机通信设计,并取得了较好效果。这种方法对于编制类似的通信软件有一定的借鉴作用,部分程序可以直接移植。

关键字:触摸屏  单片机  方法

编辑:探路者 引用地址:http://www.eeworld.com.cn/dygl/2015/0120/article_25367.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
触摸屏
单片机
方法

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved