PIC与触摸屏MODBUS协议

上传人:s****a 文档编号:174118498 上传时间:2022-12-14 格式:DOCX 页数:3 大小:63.33KB
返回 下载 相关 举报
PIC与触摸屏MODBUS协议_第1页
第1页 / 共3页
PIC与触摸屏MODBUS协议_第2页
第2页 / 共3页
PIC与触摸屏MODBUS协议_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述
PIC单片机与触摸屏串行通信MODBUS协议信息来源:电子技术应用摘要:介绍一种在PIC单片机与触摸屏之间采用Modbus协议实现异步串行通信的方法。简单介绍 了 Modbus通信协议,给出了硬件电路连接图、程序流程图以及用PIC单片机C语言编写的部分通 信程序。实际使用证明该方法数据传输稳定可靠,并提供了良好的人机交互环境。关键词:触摸屏 PIC 单片机 Modbus 协议 通信 工控中经常需要观察系统的运行状态或者修改运行参数。触摸屏能够直观、生动地显示运行参数和运 行状态,而且通过触摸屏画面可以直接修改系统运行参数,人机交互性好。单片机广泛应用于工控领 域中,与触摸屏配合,可组成良好的人机交互环境。触摸屏和单片机通信,需要根据触摸屏采用的通 信协议为单片机编写相应的通信程序。Modbus协议是美国Modicon公司推出的一种有效支持控制 器之间以及控制器经由网络(例如以太网)和其它设备之间进行通信的协议。本文以PIC16F877单 片机和人机电子有限公司的eView MT510T型触摸屏为例,介绍其通信程序的开发过程。1 系统结构实现触摸屏与单片机的通讯,主要是解决通讯协议的问题。本文使用开放的Modbus通讯协议,以触 摸屏作主站,单片机作从站。eView触摸屏本身支持Modbus通讯协议,如果单片机也支持Modbus 协议,就可以进行通信了。触摸屏与单片机之间采用的RS-232C兼容接口直接连接,传输速率设置 为 9600kb/s 。图 1 为该系统的电路图。将PIC16F877单片机RC6、RC7 口设置为异步串行通信模式,经过MAX232芯片将TTL电平转换 为RS232电平,再与eView触摸屏PLCRS-232接口相连,即完成了硬件连接。eView触摸屏 PLCRS-232接口的管脚2为TXD,管脚3为RXD。2 Modbus 通信协议介绍Modbus通信协议是一种串行的主从通信协议,网络里仅有一台设置可作为主机(称Maste r),其 它设备作为从机(称Slave r),主机不需编号,从机必须编号。协议定义了主机查询及从机应答的信 息帧格式。通信时,主机首先向从机发出请求信息,符合相应地址码的从机接收通讯命令,并除去地 址码,读取信息,如果没有出错,则执行相应的任务,然后把执行结果返给主机。若从机接收到的校 验码与本机计算的不同,则说明数据在通信过程中出现错误,从机把这次请求视为无效,功能代码将 被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。当主机收到这一信 息时,会重新发送请求信息。校验方式分为LCR (传送数据为ACSII时)校验或CRC (传送数据为 二进制时)校验,这里采用CRC校验方式。信息传输为异步方式,并以字节为单位。主从站之间通讯的字格式如表1 所示。表 1 通讯的字格式字格式(串行数据) 10 位二进制起始位 1 位数据位 8 位奇偶校验位 无 停止位 1 位Modbus协议可支持ASCII码或二进制格式的数据传输。ACSII码方式下每一个字节数据分两个字 节传送,二进制方式下用一个字节传送,为了减少数据传输量,一般选二进制数据方式。各个区允许 发送的字节均为16进制的09, AF。二进制信息帧标准结构为: 初始结构4字节的时间 地址码 1 字节 功能码 1 字节 数据区 N 字节 错误校验16位CRC码 结束结构 4字节的时间 二进制模式中,信息开始至少需要3.5个字符的静止时间,依据使用的波特率,很容易计算这个静止 时间。发送完最后一个字符后,也有一个至少3.5个字符的静止时间,然后才能发送一个新的信息。网络上的设备连续监测网络上的信息,包括静止时间。3 单片机与触摸屏地址的对应关系eView触摸屏只支持Bit和Word地址类型,而实际的单片机或其它控制器还有Byte、Double Word 等表示方法,因此在进行通信时,需要把单片机和触摸屏的数据进行变换。触摸屏画面元件读取地址 的设备类型有LW、Ox、1x、3x、4x、RWI、RW等选项。其中,LW表示该元件读取的是触摸屏 内部的地址,如其它元件的地址;Ox表示读取的是控制器的输出信号;1x表示读取的控制器的输入 信号;3x和4x指控制器的寄存器地址类型,其中4x是可读可写的,3x是只读的;RWI、RW都是触 摸屏的内部地址,起辅助作用。使用这些读取地址的设备类型,触摸屏即可显示或设定控制器寄存器 或I/O 口的数值。以数值输入元件为例,通过小键盘输入数据即可设置单片机寄存器或I/O 口的 数值。如果启动了“触发地址”,那么当被触控时,输入的数据就被存放到了指定的单片机地址中。4 通信程序的开发触摸屏与单片机的通信程序采用pic单片机C语言编写。编译工具选择Hitech公司的PICC编译器。 程序共分三大模块,即初始化模块、数据接收模块以及数据处理及发送模块。主程序流程图如图2 所示。PIC16F877单片机USART功能模块带有一个八位的波特率发生器BRG,BRG支持USART的同步 和异步工作方式。用 SPBRG 寄存器控制一个独立的八位定时器的周期。在异步方式下,发送状态/ 控制寄存器TXSTA的BRGH位(即D2)被用来控制波特率。对串行口进行的初始化如下: GIE=1; %全局中断允许;SPBRG=25; %设置波特率为 96OO;TXSTA=OxO4; %选择异步高速方式;RCSTA=Ox8O; %允许同步串行口工作;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来控制。数据处理及发送模块执行Modbus协议功能码对应的运用。eView触摸屏与单片机以Modbus协议 通信,用到的Modbus功能码如表2所示。表 2 通信程序用到的功能码功能码eView地址名称含义作用1 Ox 读开关量输出 读取一路或多路开关量输出状态3 4x 读保持寄存器 读取一个或多个保持寄存器的数据5 0x 写开关量输出 强置一路继电器的“ 分/ 合 ”输出1x以 Modbus 功能码 03 为例来说明触摸屏及单片机的实际通信数据格式。如单片机地址编号为 01H 触摸屏需要查看单片机中地址为0031H的寄存器的值,发送命令格式如表3所示。表3 触摸屏发送数据结构数据段名称 数据值地址 1功能码 3读取地址高位 0 读取地址低位 31 读取数据个数高位 0 读取数据个数低位 1CRC 校验码高位 D5CRC 校验码低位 C5假设单片机中地址为0031H的寄存器中断为05H,则单片机的回复命令如表4所示。表 4 单片机应答数据结构 数据段名称 数据值地址 1功能码 3 读取字节数 2寄存器数据高位 0 寄存器数据低位 5CRC 校验码高位 78CRC 校验码低位 47当波特率达到38400kb/s时,通信仍然稳定可靠。本系统具有连接电路简单、组态灵活、通信可靠性 高等特点,并已成功应用于物料筛选控制系统项目中。由于Modbus通信协议的开放性的特点,国外进 口控制器串行通信大者支持该协议,因此本文所实现的采用Modbus协议的串行通信具有广泛的应用价 值。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!