PIC单片机与触摸屏串行通信的MODBUS协议实现
发布时间:2008/5/27 0:00:00 访问次数:569
摘要:介绍一种在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触摸屏plc[rs-232]接口相连,即完成了硬件连接。eview触摸屏plc[rs-232]接口的管脚2为txd,管脚3为rxd。
2 modbus通信协议介绍
modbus通信协议是一种串行的主从通信协议,网络里仅有一台设置可作为主机(称master),其它设备作为从机(称slaver),主机不需编号,从机必须编号。协议定义了主机查询及从机应答的信息帧格式。通信时,主机首先向从机发出请求信息,符合相应地址码的从机接收通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务,然后把执行结果返给主机。若从机接收到的校验码与本机计算的不同,则说明数据在通信过程中出现错误,从机把这次请求视为无效,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。当主机收到这一信息时,会重新发送请求信息。校验方式分为lcr(传送数据为acsii时)校验或crc(传送数据为二进制时)校验,这里采用crc校验方式。
信息传输为异步方式,并以字节为单位。主从站之间通讯的字格式如表1所示。
表1 通讯的字格式
字格式(串行数据) | 10位二进制 |
起始位 | 1位 |
数据位 | 8位 |
奇偶校验位 | 无 |
停止位 | 1位 |
modbus协议可支持ascii码或二进制格式的数据传输。acsii码方式下每一个字节数据分两个字节传送,二进制方式下用一个字节传送,为了减少数据传输量,一般选二进制数据方式。各个区允许发送的字节均为16进制的0~9,a~f。二进制信息帧标准结构为:
初始结构 ≥4字节的时间
地址码 1字节
功能码 1字节
数据区 n字节
错误校验 16位crc码
结束结构 ≥4字节的时间
二进制模式中,信息开始至少需要3.5个字符的静止时间,依据使用的波特率,很容易计算这个静止时间。发送完最后一个字符后,也有一个至少3.5个字符的静止时间,然后才能发送一个新的信息。网络上的设备连续监测网络上的信息,包括静止时间。
图1
3 单片机与触摸屏地址的对应关系
eview触摸屏只支
摘要:介绍一种在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触摸屏plc[rs-232]接口相连,即完成了硬件连接。eview触摸屏plc[rs-232]接口的管脚2为txd,管脚3为rxd。
2 modbus通信协议介绍
modbus通信协议是一种串行的主从通信协议,网络里仅有一台设置可作为主机(称master),其它设备作为从机(称slaver),主机不需编号,从机必须编号。协议定义了主机查询及从机应答的信息帧格式。通信时,主机首先向从机发出请求信息,符合相应地址码的从机接收通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务,然后把执行结果返给主机。若从机接收到的校验码与本机计算的不同,则说明数据在通信过程中出现错误,从机把这次请求视为无效,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。当主机收到这一信息时,会重新发送请求信息。校验方式分为lcr(传送数据为acsii时)校验或crc(传送数据为二进制时)校验,这里采用crc校验方式。
信息传输为异步方式,并以字节为单位。主从站之间通讯的字格式如表1所示。
表1 通讯的字格式
字格式(串行数据) | 10位二进制 |
起始位 | 1位 |
数据位 | 8位 |
奇偶校验位 | 无 |
停止位 | 1位 |
modbus协议可支持ascii码或二进制格式的数据传输。acsii码方式下每一个字节数据分两个字节传送,二进制方式下用一个字节传送,为了减少数据传输量,一般选二进制数据方式。各个区允许发送的字节均为16进制的0~9,a~f。二进制信息帧标准结构为:
初始结构 ≥4字节的时间
地址码 1字节
功能码 1字节
数据区 n字节
错误校验 16位crc码
结束结构 ≥4字节的时间
二进制模式中,信息开始至少需要3.5个字符的静止时间,依据使用的波特率,很容易计算这个静止时间。发送完最后一个字符后,也有一个至少3.5个字符的静止时间,然后才能发送一个新的信息。网络上的设备连续监测网络上的信息,包括静止时间。
图1
3 单片机与触摸屏地址的对应关系
eview触摸屏只支