modbus的文章很好的资料啊 大家都来共同学习

源代码在线查看: pic单片机与触摸屏串行通信modbus协议_老古开发网文章.txt

软件大小: 15 K
上传用户: guozhongjiesg02
关键词: modbus
下载地址: 免注册下载 普通下载 VIP

相关代码

				PIC单片机与触摸屏串行通信MODBUS协议_老古开发网文章【电子系统设计】精品资料下载
				                  数字信号处理器(DSP)入门宝典PDF!
				                  【经典推荐】毕业设计大礼包
				
				                  NOKIA主流手机的原理图
				                  大功率LED电路设计实例
				                  电路设计常用参数计算工具
				
				                  【资源共享】单片机/ARM/DSP/FPGA/PCB
				                  触摸屏的组成结构及原理
				                  以太网设计FAQ
				
				
				
				             
				             
				
				             
				                  单片机解密芯片解密 PCB抄板全站文字链接广告招商  
				
				                  硬件工程师必读(PDF下载)EMI/EMC设计秘籍(PDF下载) 
				                  电子工程师必备手册(下)(PDF下载)ADC和DAC基础(PDF下载)
				                  模拟混合信号基础技术知识精采连载(PDF下载)运算放大器稳定性分析(PDF下载)
				                  电子工程师必备手册(上)LED技术全攻略 - 工程师必备手册
				
				
				
				
				            硬件工程师必读攻略
				            数字信号处理器(DSP)入门宝典PDF
				            电子工程师必备手册(二)
				            电子工程师必备手册(三)
				
				
				       导航:老古开发网首页→文章索引→索引第2407页 →文章分类→单片机→第38页→[PIC单片机与触摸屏串行通信MODBUS协议] 
				      | -文章搜索 - 最新文章 - | 
				
				      第2436篇:PIC单片机与触摸屏串行通信MODBUS协议
				      发布时间:2006年7月23日 点击次数:1322 
				      来源:   作者:
				
				              
				
				      工控中经常需要观察系统的运行状态或者修改运行参数。触摸屏能够直观、生动地显示运行参数和运行状态,而且通过触摸屏画面可以直接修改系统运行参数,人机交互性好。单片机广泛应用于工控领域中,与触摸屏配合,可组成良好的人机交互环境。触摸屏和单片机通,需要根据触摸屏采用的通信协议为单片机编写相应的通信程序。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所示。  
				
				
				             
				      Modbus协议可支持ASCII码或二进制格式的数据传输。ACSII码方式下每一个字节数据分两个字节传送,二进制方式下用一个字节传送,为了减少数据传输量,一般选二进制数据方式。各个区允许发送的字节均为16进制的0~9,A~F。二进制信息帧标准结构为:  
				
				             初始结构 ≥4字节的时间  
				
				             地址码 1字节  
				
				             功能码 1字节  
				
				             数据区 N字节  
				
				             错误校验 16位CRC码  
				
				             结束结构 ≥4字节的时间  
				
				             
				      二进制模式中,信息开始至少需要3.5个字符的静止时间,依据使用的波特率,很容易计算这个静止时间。发送完最后一个字符后,也有一个至少3.5个字符的静止时间,然后才能发送一个新的信息。网络上的设备连续监测网络上的信息,包括静止时间。 
				        
				
				             3 单片机与触摸屏地址的对应关系  
				
				             eView触摸屏只支持Bit和Word地址类型,而实际的单片机或其它控制器还有Byte、Double 
				      Word等表示方法,因此在进行通信时,需要把单片机和触摸屏的数据进行变换。触摸屏画面元件读取地址的设备类型有LW、0x、1x、3x、4x、RWI、RW等选项。其中,LW表示该元件读取的是触摸屏内部的地址,如其它元件的地址;0x表示读取的是控制器的输出信号;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)被用来控制波特率。对串行口进行的初始化如下:
				
				
				             
				      数据接收模块由一个中断函数组成。该中断函数将触摸屏发来的Modbus数据帧存储在一个自定义的数组中,当一帧数据接收完时,置接收结束标志位为1,转入数据处理及发送模块。串行通信接收器的核心是接收移位寄存器RSR,当接收到停止时,如果RCREG缓冲器为空,RSR就把接收到的数据送入RCREG。传送完成后,接收中断标志位RCIF被置1。实际的中断是否被CPU响应,可以通过设置外围接口中断允许寄存器PIE1的中断允许位RCIE来控制。 
				        
				
				             
				      数据处理及发送模块执行Modbus协议功能码对应的运用。eView触摸屏与单片机以Modbus协议通信,用到的Modbus功能码如表2所示。  
				
				
				             
				      以Modbus功能码03为例来说明触摸屏及单片机的实际通信数据格式。如单片机地址编号为01H,触摸屏需要查看单片机中地址为0031H的寄存器的值,发送命令格式如表3所示。  
				
				
				             假设单片机中地址为0031H的寄存器中断为05H,则单片机的回复命令如表4所示。  
				
				
				             
				      当波特率达到38400kb/s时,通信仍然稳定可靠。本系统具有连接电路简单、组态灵活、通信可靠性高等特点,并已成功应用于物料筛选控制系统项目中。由于Modbus通信协议的开放性的特点,国外进口控制器串行通信大者支持该协议,因此本文所实现的采用Modbus协议的串行通信具有广泛的应用价值。
				
				
				
				      欢迎进入老古论坛进行讨论 
				      [单片机] 相关文章: 
				      液晶显示模块TC1602A与单片机的接口技术
				
				      简介:
				      随着科技的发展,液晶显示模块的应用前景更加广阔,目前已广泛应用于电子表、计算器、液晶电视机、便携式电脑、掌上型电子玩具、复印机、传真机等许多方面。 
				        液晶显示( LCD )大体分为笔段型、 字符 
				      型、点阵图形型等几大类,字符型液晶显示模块是一类专门用于显示字母、数字、符号等的点阵型液晶显示模块,它是由若干个5×7或5×11等点阵字符组成。每一个点阵字符位都可以显示一个字符,点阵字符位之间的一个点距的间隔起字符间距和行距的作用。目前市面上常用的有16字×1行、16字×2行、20字×2......
				
				      [转载]嵌入式系统设计方法的演化—— 从单片机到单片系统
				      [转载]嵌入式实时操作系统的现状和未来
				      GPS术语缩写
				      电磁炉精确测温技术现状与发展方向   
				
				            下一个:[单片机]单片机控制实时时钟X1226的应用设计
				
				            简介:
				            X1226具有时钟和日历的功能,时钟依赖时、分、秒寄存器来跟踪,日历依赖日期、星期、月和年寄存器来跟踪,日历可正确通过2099年,具有自动闰年修正。 
				            拥有强大的双报警功能,能够被设置到任何时钟/日历值上,精确度可到ls。可用软件设置1 Hz,4096 
				            Hz或32768Hz中任意一个频率输出。 该器件提供一个备份电源输入脚VBACK1允许器件用......
				
				            上一个:[单片机]带温度测量的LCD显示的实时时钟
				
				
				
				
				
				
				
				
				
				      老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古,
				      页面缓存:30分钟 执行时间:16毫秒 
							

相关资源