基于RS-485网络单片机远程系统升级功能设计.docVIP

基于RS-485网络单片机远程系统升级功能设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于RS-485网络单片机远程系统升级功能设计

基于RS-485网络单片机远程系统升级功能设计 【摘要】本文提出了一种单片机远程系统升级方法,通过RS-485通信网络把应用程序下载到远端的单片机中,实现对网络上连接的设备进行远程在线升级,达到不用断电,可方便快捷地对终端设备进行软件的更新和升级,已在分布式数据采集系统上应用,实践表明本设计给整个系统的维护管理带来了极大的便利。 【关键词】单片机;远程;在线RS-485 一、引言 以单片机为控制处理器件的嵌入式系统设计,有时需要在实际应用时不停的修正应用程序,或是对产品功能不断的升级,不能够一下子把程序最终确定下来,虽然很多单片机都提供了IAP和ISP功能,在现场打开产品机箱外壳就能够很方便地更新应用程序。但对于组成网络的各分布节点一一进行固件升级时会遇到相当大的麻烦;其次在某些工业应用上,一些节点可能位于维护人员无法进入的场所。因此,研究一种在主节点上通过通信网络更新各个从节点程序的在线升级技术显得很有意义。 二、远程下载原理 如图1所示分布式数据采集系统,控制处理器采用STC单片机设计。终端数据采集设备通过串口连接到RS-485通信网络,通信网再经过RS485/232转换器连接到远端计算机进行集中监控。通信采用工业制造环境通用协议MODBUS,此协议支持传统的RS-232、RS-422、RS-485和以太网设备,许多工业设备,包括PLC,DCS,智能仪表等都在使用MODBUS协议作为他们之间的通讯标准,方便系统的扩展应用。 系统设计时,已经为每一个现场数据采集设备分配好相应地址,并配置了相应的系统更新服务程序,利用它实时监视来自计算机发送的数据是否包含升级命令。系统在网络上通信时,从节点设备必须按事先约定好的地址识别计算机发来的消息,然后决定要产生何种行动。如果收到当前数据是程序下载命令,则执行相应的系统更新操作,否则执行正常的数据采集操作,生成应答并使用MODBUS协议将数据发送给计算机。 系统采用的STC单片机具有串口在线加载升级程序功能,但每次加载均需要冷复位,不利于实现远程下载功能。根据STC单片机参数手册关于ISP/IAP功能的描述,其中特殊功能寄存器IAP_CONTR为ISP/IAP控制寄存器,用户可以设置其中SWBS/SWRST两个位来实现系统的软复位,并且能转到ISP引导区启动,实现在线不掉电下载功能。IAP_CONTR寄存器和SWBS/SWRST为的定义如下表1。 SWBS:启动区域选择控制位。 0:软件选择从用户应用程序区启动; 1:软件选择从ISP程序区启动。 SWRST:0:不操作;1:产生软件复位,硬件自动清零。 在软件设计时,在MODBUS数据接收子程序中添加系统升级功能解析程序,一旦监测到数据流包含下载命令时,立即写入IAP_CONTR=0x60,使系统软复位到系统ISP监控区,从而引导下载程序进行远程系统升级。 三、远程下载端更新服务程序设计 系统通信采用MODBUS协议,为主从方式的通信,数据传输采用RTU模式,9600bps波特率,8位数据,1停止位,无奇偶校验,主机发送一帧消息的格式如下: 1.地址:消息帧的地址域包含一个字节8Bit(RTU)。可能的从设备地址是0...247(十进制)。主设备通过将要联络的从设备的地址放入消息中的地址来选通从设备。当从设备发送回应消息时,它把自己的地址放入回应的地址域中,以便主设备知道是哪一个设备作出回应。 2.功能码:消息帧中的功能代码域包含一个字节8Bits(RTU)。可能的代码范围是十进制的1...255。当然,有些代码是适用于所有控制器,有此是应用于某种控制器,还有些保留以备后用。当消息从主设备发往从设备时,功能代码域将告之从设备需要执行哪些行为。 3.数据:数据是由两个十六进制数集合构成的,范围00...FF。根据网络传输模式,这可以是由一对ASCII字符组成或由一RTU字符组成,它包含了功能码的附加信息。 4.CRC校验:即循环冗余校验,用于数据错误检测。 MODBUS协议功能码有两个用户可以定义范围,65至72和100至110。在协议设计时,指定100作为系统升级命令功能码。数据域写零,表示功能码没有附加信息,仅为系统升级命令。CRC校验码由软件生成。被升级对象的地址由计算机指定,现场节点设备的系统通信解析程序工作流程如图2所示。 现场设备系统通信解析程序,采用中断方式接收数据提高通信的实时性。当3.5个字符停顿后,开始接收第一字节数据,如果是本机地址则完整接收一帧数据,接收完毕时首先对数据的正误进行CRC校验,然后进入到功能码解析过程,如果是升级命令则执行更新。下面是系统通信解析程序执行升级命令,复位到ISP监控引导区的关键代码: void UAR

文档评论(0)

docman126 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7042123103000003

1亿VIP精品文档

相关文档