pic单片机与触摸屏串行通信modbus协议Word文档下载推荐.docx

上传人:b****5 文档编号:21098794 上传时间:2023-01-27 格式:DOCX 页数:5 大小:19.13KB
下载 相关 举报
pic单片机与触摸屏串行通信modbus协议Word文档下载推荐.docx_第1页
第1页 / 共5页
pic单片机与触摸屏串行通信modbus协议Word文档下载推荐.docx_第2页
第2页 / 共5页
pic单片机与触摸屏串行通信modbus协议Word文档下载推荐.docx_第3页
第3页 / 共5页
pic单片机与触摸屏串行通信modbus协议Word文档下载推荐.docx_第4页
第4页 / 共5页
pic单片机与触摸屏串行通信modbus协议Word文档下载推荐.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

pic单片机与触摸屏串行通信modbus协议Word文档下载推荐.docx

《pic单片机与触摸屏串行通信modbus协议Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《pic单片机与触摸屏串行通信modbus协议Word文档下载推荐.docx(5页珍藏版)》请在冰豆网上搜索。

pic单片机与触摸屏串行通信modbus协议Word文档下载推荐.docx

  实现触摸屏与单片机的通讯,主要是解决通讯协议的问题。

本文使用开放的modbus通讯协议,以触摸屏作主站,单片机作从站。

eView触摸屏本身支持modbus通讯协议,如果单片机也支持modbus协议,就可以进行通信了。

触摸屏与单片机之间采用的Rs-232c兼容接口直接连接,传输速率设置为9600kb/s。

图1为该系统的电路图。

  将pic16F877单片机Rc6、Rc7口设置为异步串行通信模式,经过max232芯片将ttl电平转换为Rs232电平,再与eView触摸屏plc[Rs-232]接口相连,即完成了硬件连接。

eView触摸屏plc[Rs-232]接口的管脚2为txd,管脚3为Rxd。

2modbus通信协议介绍

  modbus通信协议是一种串行的主从通信协议,网络里仅有一台设置可作为主机(称master),其它设备作为从机(称slaver),主机不需编号,从机必须编号。

协议定义了主机查询及从机应答的信息帧格式。

通信时,主机首先向从机发出请求信息,符合相应地址码的从机接收通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务,然后把执行结果返给主机。

若从机接收到的校验码与本机计算的不同,则说明数据在通信过程中出现错误,从机把这次请求视为无效,功能代码将被修改以用于指出

  触摸屏与单片机的通信程序采用pic单片机c语言编写。

编译工具选择hitech公司的picc编译器。

程序共分三大模块,即初始化模块、数据接收模块以及数据处理及发送模块。

主程序流程图如图2所示。

  pic16F877单片机usaRt功能模块带有一个八位的波特率发生器bRg,bRg支持usaRt的同步和异步工作方式。

用spbRg寄存器控制一个独立的八位定时器的周期。

在异步方式下,发送状态/控制寄存器txsta的bRgh位(即d2)被用来控制波特率。

对串行口进行的初始化如下:

gie=1;

%全局中断允许;

  spbRg=25;

%设置波特率为9600;

txsta=0x04;

%选择异步高速方式;

Rcsta=0x80;

%允许同步串行口工作;

Rtisc6=1;

  tRisc7=1;

%将c口的Rc6和Rc7设置为异步串行通信模式;

pFie=1;

%外围接口中断允许;

Rcie=1;

%usaRt接收中断允许;

txie=1;

%usaRt发送中断允许;

  数据接收模块由一个中断函数组成。

该中断函数将触摸屏发来的modbus数据帧存储在一个自定义的数组中,当一帧数据接收完时,置接收结束标志位为1,转入数据处理及发送模块。

串行通信接收器的核心是接收移位寄存器RsR,当接收到停止时,如果RcReg缓冲器为空,RsR就把接收到的数据送入RcReg。

传送完成后,接收中断标志位RciF被置1。

实际的中断是否被cpu响应,可以通过设置外围接口中断允许寄存器pie1的中断允许位Rcie来控制。

  篇二:

  经常需要观察系统的运行状态或者修改运行参数。

触摸屏能够直观、生动地显示运行参数和运行状态,而且通过触摸屏画面可以直接修改系统运行参数,人机交互性好。

单片机广泛应用于工控领域中,与触摸屏配合,可组成良好的人机交互环境。

触摸屏和单片机通,需要根据触摸屏采用的通信协议为单片机编写相应的通信程序。

本文以pic16F877单片机和人机电子有限公司的eViewmt510t型触摸屏为例,介绍其通信程序的开发过程。

  1系统结构

  实现触摸屏与单片机的通讯,主要是解决通讯协议的问题。

本文使用开放的modbus通讯协议,以触摸屏作主站,单片机作从站。

eView触摸屏本身支持modbus通讯协议,如果单片机也支持modbus协议,就可以进行通信了。

触摸屏与单片机之间采用的Rs-232c兼容接口直接连接,传输速率设置为9600kb/s。

  将pic16F877单片机Rc6、Rc7口设置为异步串行通信模式,经过max232芯片将ttl电平转换为Rs232电平,再与eView触摸屏plc[Rs-232]接口相连,即完成了硬件连接。

eView触摸屏plc[Rs-232]接口的管脚2为txd,管脚3为Rxd。

  2modbus通信协议介绍

  modbus通信协议是一种串行的主从通信协议,网络里仅有一台设置可作为主机(称master),其它设备作为从机(称slaver),主机不需编号,从机必须编号。

通信时,主机首先向从机发出请求信息,符合相应地址码的从机接收通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务,然后把执行结果返给主机。

若从机接收到的校验码与本机计算的不同,则说明数据在通信过程中出现错误,从机把这次请求视为无效,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。

当主机收到这一信息时,会重新发送请求信息。

校验方式分为lcR(传送数据为acsii时)校验或c

  Rc(传送数据为二进制时)校验,这里采用cRc校验方式。

  信息传输为异步方式,并以字节为单位。

主从站之间通讯的字格式如表1所示。

  modbus协议可支持ascii码或二进制格式的数据传输。

acsii码方式下每一个字节数据分两个字节传送,二进制方式下用一个字节传送,为了减少数据传输量,一般选二进制数据方式。

各个区允许发送的字节均为16进制的0~9,a~F。

二进制信息帧标准结构为:

  初始结构≥4字节的时间

  地址码1字节

  功能码1字节

  数据区n字节

  错误校验16位cRc码

  结束结构≥4字节的时间

  二进制模式中,信息开始至少需要3.5个字符的静止时间,依据使用的波特率,很容易计算这个静止时间。

发送完最后一个字符后,也有一个至少3.5个字符的静止时间,然后才能发送一个新的信息。

网络上的设备连续监测网络上的信息,包括静止时间。

  3单片机与触摸屏地址的对应关系

  eView触摸屏只支持bit和word地址类型,而实际的单片机或其它控制器还有byte、doubleword等表示方法,因此在进行通信时,需要把单片机和触摸屏的数据进行变换。

触摸屏画面元件读取地址的设备类型有lw、0x、1x、3x、4x、Rwi、Rw等选项。

其中,lw表示该元件读取的是触摸屏内部的地址,如其它元件的地址;

0x表示读取的是控制器的输出信号;

1x表示读取的控制器的输入信号;

3x和4x指控制器的寄存器地址类型,其中4x是可读可写的,3x是只读的;

Rwi、Rw都是触摸屏的内部地址,起辅助作用。

使用这些读取地址的设备类型,触摸屏即可显示或设定控制器寄存器或i/o口的数值。

以“数值输入”元件为例,通过“小键盘”输入数据即可设置单片机寄存器或i/o口的数值。

如果启动了“触发地址”,那么当被触控时,输入的

  数据就被存放到了指定的单片机地址中。

  4通信程序的开发

程序共分三大模块,即初始化模块、数据接收模块以及数据处理及发送模块。

  pic16F877单片机usaRt功能模块带有一个八位的波特率发生器bR(pic单片机与触摸屏串行通信modbus协议)g,bRg支持usaRt的同步和异步工作方式。

在异步方式下,发送状态/控制寄存器txsta的bRgh位(即d2)被用来控制波特率。

  篇三:

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

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

  作者:

时间:

20xx-04-03来源:

浏览评论推荐给好友我有问题

  关键词:

modbus触摸屏

  modbus协议由于其具有开放性、透明性、成本低、易于开发等特点,已成为当今工业领域通信协议的首选。

  本文介绍了一种基于modbus通信协议的eView触摸屏与常用的51单片机的通信方法。

该方法通过c51编程实现modbus通信,在51系列单片机上具有通用性,有一定的借鉴作用。

  工业控制中经常需要观察系统的运行状态或者修改运行参数。

触摸屏与单片机通信,需要根据触摸屏采用的通信协议为单片机编写相应的通信程序。

modbus协议是美国modicon公司推出的,一种有效支持控制器之间以及控制器经由网络(如以太网)与其他设备之间进行通信的协议。

本文以stc89c51单片机和人机电子有限公司的eView触摸屏为例,介绍其通信程序的开发过程。

  实现触摸屏与单片机的通信,主要是解决通信协议的问题。

本文使用开放的modbus通信协议,以触摸屏作主站,单片机作从站。

eView触摸屏本身支持modbus通信协议,如果单片机也支持modbus协议,就可以进行通信了。

eview触摸屏支持Rs-232和

  Rs-485两种通信接口。

在工业控制领域,由于Rs-485具有可靠性高、传输距离远、抗干扰能力强等优点,所以在本系统中触摸屏与单片机通信采用Rs-485连接,传输速率设置为9600kbps。

Rs-485信号传输是一种半双工的传输方式,单片机通过一个Rs-232/Rs-485无源转换器把232信号转换成485信号,连接到eView触摸屏上。

图l为该系统的原理图。

  单片机控制系统采用stc89c51系列单片机,其内部集成max810/stc810专用复位电路(原有外部复位可继续保留,与intel8051引脚兼容),具有抗干扰能力强、加密性强、高抗静电(esd)、超低功耗等特点,而且价格低廉。

在本系统中,触摸屏是上位机,单片机是下位机。

  2modbus协议

  2.1modbus协议简介

  modbus协议是应用于电子控制器上的一种通用语言。

通过此协议,控制器相互之间、控制器经由网络(如以太网)与其他设备之间可以通信。

它已经成为一种通用工业标准。

不同厂商生产的控制设备可以通过它连成工业网络,集中监控。

  modbus协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。

它描述了一控制器请求访问其他设备的过程.如何回应来自其他设备的请求,以及怎样侦测错误并记录;

制定了消息域格局和内容的公共格式。

  当在某一modbus网络上通信时,此协议决定了每个控制器需要知道它们的设备地址,识别按地址发来的消息,以及决定要产生何种行动。

如果需要回应,则控制器将生成反馈信息并用modbus协议发出。

在其他网络上,包含了m0dhus协议的消息转换为在此网络上使用的帧或包结构。

  2.2modbusRtu通信数据传输模式

  当控制器设备基于modbus协议以Rtu模式通信时,消息中的每个字节包含2个4位的十六进制字符。

这种方式的主要优点是:

在同样的波特率下,可比ascii方式传送更多的数据。

  编码采用8位二进制,十六进制数0~9和a~F;

消息中每个8位域都是由2个十六进制字符组成。

组织结构如下:

  2.3modbusRtu消息帧结构

  modbusRtu消息帧结构如下:

  

(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校验和终端接收及波特率设置等。

由于篇幅有限,其他程序略。

  

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

当前位置:首页 > 教学研究 > 教学反思汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1