一种数据采集传输仪终端的远程在线升级方法及系统与流程

文档序号:16428391发布日期:2018-12-28 19:57阅读:321来源:国知局
一种数据采集传输仪终端的远程在线升级方法及系统与流程

本发明属于软件升级技术领域,尤其涉及一种数据采集传输仪终端的远程在线升级方法及系统。

背景技术

环保监测无线数据采集传输系统是针对各类污染源在线监测而设计的,而无线数据采集仪作为终端主要是为了获取现场各个监测仪器的数据、上传并保存原始数据的,因此设备往往安装于偏远的烟气厂,发电厂及污水处理厂。在实际工作过程中会遇到两种现实的困难,一是用户在使用过程中有些功能需要修改,二是程序本身有问题无法正常工作,要解决这样的问题传统方式可以选择工作人员到现场重新下载程序或者客户将设备寄回厂家升级后再返回重新安装。对于大量,地域分散使用的现场终端,要完成这样的更新任务既造成了时间上的浪费又产生了人工费等额外的支出。基于这个原因,本发明提供一种基于数据采集传输仪的远程在线升级系统,这是采用无线通讯技术以实现远程更新工业现场终端内部程序的新方案,能有效解决上述技术问题。



技术实现要素:

本发明提供一种数据采集传输仪终端的远程在线升级方法及系统,旨在解决数据采集传输仪终端无法远程在线升级的问题。

本发明是这样实现的,一种数据采集传输仪终端的远程在线升级方法,所述方法包括:

服务器向数据采集传输仪终端发送升级命令;

数据采集传输仪终端根据服务器的升级命令判断是否进入升级状态:

若是,则进行远程在线升级:服务器与数据采集传输仪终端之间传输升级代码文件数据,数据采集传输仪终端利用接收到的升级代码文件数据覆盖低版本的代码文件数据;

否则,数据采集传输仪终端直接运行当前用户应用程序。

更进一步地,所述升级命令内容包含:服务器的ip地址、端口号、升级代码文件名称、版本信息及总发送数据包数。

更进一步地,所述远程在线升级之前,还包括:

服务器将升级代码文件数据拆分成若干个固定长度的数据单元,分别以每个数据单元为核心组成数据包。

更进一步地,每个所述数据包内容包含:数据包头标志、命令头、包序列、数据单元、crc校验码、数据包尾标志和总包数。

更进一步地,所述远程在线升级,具体包括:

数据采集传输仪终端每接收到一个数据包,都返回确认信息给服务器;

数据采集传输仪终端对每个数据包进行校验:

若当前传输的数据包校验无误,则进行该数据包的复制,然后继续向服务器索取下一个数据包;

若当前传输的数据包校验失败,则不进行存储而再次索取当前数据包;

直至数据采集传输仪终端接收完所有数据包,并进行完全部数据包的复制。

更进一步地,所述数据采集传输仪终端对每个数据包进行crc和异或双重校验。

更进一步地,所述数据采集传输仪终端通过执行引导程序bootloader,来实现根据服务器的升级命令判断是否进入升级状态。

更进一步地,所述远程在线升级过程中,数据采集传输仪终端每接收到一个数据包都进行存储,当远程在线升级过程中出现异常中断情况,异常中断故障排除后从上次异常中断的数据包开始重新接收。

本发明还提供一种数据采集传输仪终端的远程在线升级系统,包括:

服务器,向数据采集传输仪终端发送升级命令,与升级状态的数据采集传输仪终端之间传输升级代码文件数据;

数据采集传输仪终端,根据服务器的升级命令判断是否进入升级状态:

若是,则进行远程在线升级:与服务器之间传输升级代码文件数据,利用接收到的升级代码文件数据覆盖低版本的代码文件数据;

否则,直接运行当前用户应用程序。

更进一步地,所述数据采集传输仪终端,包括:

内嵌f1ash的控制芯片,用于接收服务器的升级命令,并根据服务器的升级命令判断是否进入升级状态:若是,则进行远程在线升级:服务器与控制芯片之间传输升级代码文件数据,利用接收到的升级代码文件数据覆盖低版本的代码文件数据;否则,控制芯片直接运行当前用户应用程序;控制芯片的flash区域划分为引导程序区域、用户应用程序区域、升级区域;所述升级区域,用于存储服务器发来的升级命令和状态标志位,升级状态下更改状态标志位为系统更新状态,此时将升级代码文件数据转存到用户应用程序区域;

外扩flash芯片,控制芯片从服务器每接收到一个数据包,都缓存在外扩flash里,校验无误后复制到控制芯片的用户应用程序区域。

本发明提供一种数据采集传输仪终端的远程在线升级方法及及系统,解决了数据采集传输仪终端无法远程在线升级的问题,数据采集传输仪终端虽然处于升级模式,但并不影响数据采集传输仪终端的正常工作,当升级过程中,数据采集传输仪终端每接收一帧数据后,都有存储相应的信息,当升级过程中出现异常情况,如通讯中断,突然停电等问题,能记录下上次接收正确的帧的序号,当故障排除后终端重新工作,能从上次接收中断的地方重新接收程序,解决现场各种异常情况对升级的影响,保证了远程升级的可靠性。为了使数据采集传输仪终端可以响应远程在线升级,采用引导程序bootloader来软启动系统,并且装载用户程序执行,保证升级模式与正常工作模式互不影响。

附图说明

图1是本发明实施例一提供的一种数据采集传输仪终端的远程在线升级方法流程图;

图2是本发明实施例二提供的一种数据采集传输仪终端的远程在线升级方法流程图;

图3是本发明实施例五提供的一种数据采集传输仪终端的远程在线升级方法流程图;

图4是本发明实施例八至九提供的一种数据采集传输仪终端的远程在线升级系统框图;

图5是本发明实施例十提供的一种数据采集传输仪终端的远程在线升级系统框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

实施例一

本实施例提供了一种数据采集传输仪终端的远程在线升级方法,如图1所示,该方法包括如下步骤:

s101、服务器向数据采集传输仪终端发送升级命令;

s102、若数据采集传输仪终端判定升级命令中包含新的版本信息,则应答服务器,数据采集传输仪终端下载升级代码文件数据,并置升级标志位;

s103、若数据采集传输仪终端判定升级命令中未包含新的版本信息,向服务器发送无需升级的通知消息;

s104、下载完升级代码文件数据的数据采集传输仪终端软启动,运行引导程序bootloader,读取标志位;

s105、若读取到升级标志位,则将升级代码文件数据覆盖低版本的代码文件数据;

s106、若未读取到升级标志位,则执行原用户应用程序。

在正常运行状态下,数据采集传输仪终端运行用户应用程序,完成数据的采集,并将数据传输到服务器。服务器收到终端的连接请求后向终端发送包含有升级程序的总帧数及升级软件的版本信息。终端收到升级指令首先判断是新版本,则准备接收升级数据帧,并将升级标志跟下载成功标志设为无效,然后开始向服务器索要升级程序数据包,服务器收到终端的索取指令后按协议中的包号开始回复相应的新用户程序数据(1帧为1k)。每次发送一帧升级程序,终端收到后根据crc和异或双重校验判断是否正确,如果正确终端则将数据写入到外扩flash分配的对应的flash地址中。否则重新跟服务器要这一帧数据,服务器便再次发送这个包号的帧数据。终端是按顺序从第一帧数据索要到最后一帧数据,两者交互直至将全部新用户程序数据接收完全。完毕后,终端设定升级成功标志,并执行软启动,当单片机上电复位后判断到成功升级标志,会将新用户程序数据复制到执行用户程序区域空间里,开始正常工作,这样就完成了程序的升级。为了使数据采集传输仪终端可以响应远程在线升级,因此采用预设引导程序bootloader的方法。bootloader是一段引导程序,它位于控制芯片内核flash的起始处,主要是用来启动系统,并且装载用户应用程序执行,如果没有bootloader,硬件启动成功后,将直接运行用户应用程序。当数据采集传输仪终端硬件上电/复位后,开启软启动,bootloader的启动代码将先被执行,进行一系列的初始化操作后,判断当前是否需要进入升级状态。如果不需要升级,就直接运行用户应用程序,否则,根据读取控制芯片内核flash里的标志位,将从服务器获取的新代码数据(升级代码文件数据)复制到控制芯片内核的iap区域,从而覆盖了原来的旧代码执行升级程序,达到数据采集传输仪终端在线升级目的。

该实施例中,整个判断过程在数据采集传输仪终端完成,无需离线加载升级程序,不影响当前用户应用程序的正常运行。在正常运行状态下,数据采集传输仪终端运行用户应用程序,完成数据的采集,并将数据传输到服务器。数据采集传输仪终端与服务器通过gprs网络建立连接后进行双向通讯,数据采集传输仪终端可以根据at指令获取在线或者是离线状态,如果处于在线状态,则通过服务器向数据采集传输仪终端发送升级命令通知现场设备准备升级,如果是离线状态,升级人员可以通过终端的手机号码发送升级短信。

该实施例中,

实施例二

本实施例提供了一种数据采集传输仪终端的远程在线升级方法,如图2所示,在实施例一的基础上,该方法还包括如下步骤:

s100、服务器将升级代码文件数据拆分成若干个固定长度的数据单元,分别以每个数据单元为核心组成数据包。

该实施例中,服务器将升级代码文件数据拆分成固定长度的多个数据单元,以每个数据单元为核心组成数据包,服务器得到数据采集传输仪终端响应后会将升级代码文件数据一帧帧以上述数据包的形式传输给升级代码文件数据,同时对总包数和当前包进行实时显示,当前包为数据采集传输仪终端当前索要的数据包号,此信息用于查看升级进度。维护人员可判断当前包和总包数相等时,即认为升级成功。升级过程中,为保证接收到的数据是正确的,避免将错误的程序写入到数据采集传输仪终端中,采取了固定的数据格式进行传输。

实施例三

本实施例提供了一种数据采集传输仪终端的远程在线升级方法,在实施例一的基础上,升级命令内容包含:服务器的ip地址、端口号、升级代码文件名称、版本信息及总发送数据包数。

该实施例中,数据采集传输仪终端可以根据升级命令内容中的版本信息判断是否进入升级状态,当该版本与当前运行的用户应用程序版本相同或低于当前运行的用户应用程序,则判定无需升级,则数据采集传输仪终端继续运行当前用户应用程序。

实施例四

本实施例提供了一种数据采集传输仪终端的远程在线升级方法,在实施例二的基础上,每个数据包内容包含:数据包头标志、命令头、包序列、数据单元、crc校验码、数据包尾标志和总包数。

该实施例中,crc校验码用于后续的数据采集传输仪终端对每个数据包进行校验,总包数用于根据当前包进行比对,查看升级进度。

实施例五

本实施例提供了一种数据采集传输仪终端的远程在线升级方法,如图3所示,在实施例三的基础上,步骤102中数据采集传输仪终端下载升级代码文件数据,具体包括如下步骤:

步骤301、数据采集传输仪终端每接收到一个数据包,都返回确认信息给服务器;

步骤302、数据采集传输仪终端对每个数据包进行校验:

步骤303、若当前传输的数据包校验无误,则进行该数据包的存储,然后继续向服务器索取下一个数据包;

步骤304、若当前传输的数据包校验失败,则不进行存储而再次索取当前数据包;

步骤305、直至数据采集传输仪终端接收完所有数据包,并进行完全部数据包的存储。

作为升级任务主动发起者的服务器向数据采集传输仪终端发送升级命令(升级命令内容包含:服务器的ip地址、端口号、升级代码文件名称、版本信息及总发送数据包数),数据采集传输仪终端42接收到升级指令后立即对服务器做出确认响应并开始索取升级代码文件数据。在发送升级代码文件数据前,服务器会将这些代码拆分成固定长度的多个数据单元,以每个数据单元为核心组成数据包(数据包内容包含数据包头标志、命令头、包序列、数据单元、crc校验码、数据包尾标志、总包数等)。数据采集传输仪终端每接收到一个数据包,都将返回确认信息,若数据包校验无误,则在外扩flash规定的区域里进行新程序本包的复制,然后继续向服务器索取下一个数据包;若校验失败则不进行存储而再次索取当前数据包,直至数据采集传输仪终端全部接收完全复制完全。

实施例六

本实施例提供了一种数据采集传输仪终端的远程在线升级方法,在实施例五的基础上,数据采集传输仪终端对每个数据包进行crc和异或双重校验。

实施例七

本实施例提供了一种数据采集传输仪终端的远程在线升级方法,在实施例五的基础上,所述数据采集传输仪终端下载升级代码文件数据过程中,若出现异常中断情况,异常中断故障排除后从上次异常中断的数据包开始重新接收。

实施例八

本实施例提供了一种数据采集传输仪终端的远程在线升级系统,如图4所示,包括:

服务器41,向数据采集传输仪终端42发送升级命令、传输升级代码文件数据;

数据采集传输仪终端42,判定升级命令中是否包含新的版本信息:若包含,则应答服务器41,数据采集传输仪终端42下载升级代码文件数据,并置升级标志位;否则向服务器41发送无需升级的通知消息;下载完升级代码文件数据的数据采集传输仪终端42软启动,运行引导程序bootloader,读取标志位,若读取到升级标志位,则将升级代码文件数据覆盖低版本的代码文件数据,否则执行原用户应用程序。

该实施例中,数据采集传输仪终端42的运行主要分为工作模式和升级模式,其中工作模式为默认模式,工作模式指设备正常工作状态,采集传输仪按预定的用户应用程序完成相应的测控任务,并且通过internet、gprs无线等无线方式向监控管理中心上报监测参数;升级模式是指设备处于升级状态,包括接收服务器41发送的升级代码文件数据,以及在外扩flash芯片中固化程序代码等。

服务器41选择升级代码文件(后缀如.bin),将升级代码文件拆分成固定长度的多个数据单元,以每个数据单元为核心组成数据包,得到应答后将升级代码文件一帧帧传输给数据采集传输仪终端42,同时显示出总包数和当前包,当前包数为数据采集传输仪终端42索要数据的包号,此信息用于查看升级进度。维护人员可判断当前包和总包数相等时,即认为升级成功。升级过程中,为保证接收到的数据是正确的,避免将错误的程序写入到芯片中,数据采集传输仪终端42采取了固定的数据格式,并且采取了crc和异或双重校验反复确认的方法以确定万无一失。

服务器能够通过软件方式实现如下功能:

a.本地ip和端口,默认为当前服务器的ip和端口,可以由用户修改端口;

b.显示所有在线的可升级终端站点(数据采集传输仪终端42);

c.在对应的站点(数据采集传输仪有唯一的mn编号/sim卡号)上点击升级,并且选择升级文件(后缀如.bin),确定后通过udp/tcp通讯方式发送”升级指令”;

d.升级过程中软件显示当前包数和总包数,当前包数为终端要数据的包号,此信息用于查看升级进度。用户可认为当前包和总包数相等时,即认为升级成功;

e.在对应的站点(数据采集传输仪有唯一的mn编号/sim卡号)上点击”连接/断开”按钮,用于建立和断开连接,连接成功按钮变为绿色,断开成功按钮变为红色。

服务器软件升级协议格式如下:

升级指令0x91:服务器-->终端发送升级指令

格式:帧头指令类型包长度服务器ip地址服务器端口总包数文件名称(0补齐)结束标志

获取升级程序指令0x94:终端-->服务器索取升级文件数据(包号从1顺序增至总包数)

格式:帧头指令类型包长度11位手机号(终端唯一识别号)文件名称总包数包号异或标志(前面所有字节的异或)结束标志

应答指令0x93:服务器-->终端发送升级文件数据(升级文件被划分1024bytes/包,升级文件最后一包的传输数据长度为实际数据量的长度,不足1024字节再以0补齐的方式)

格式:帧头指令类型包长度包号数据区crc校验(数据区的crc16)异或标志(前面所有字节的异或)结束标志

升级结束指令0x92:终端-->服务器告知升级文件接收完毕

格式:帧头指令类型包长度11位手机号终端ip终端端口异或标志(前面所有字节的异或)结束标志

本发明提供的系统,升级过程不影响设备的正常工作。当升级过程中出现异常情况,如通讯中断,突然停电等问题,如果没有相应的机制,以往的升级方法可能造成系统崩溃。由于记录了上次接收正确的帧的序号和升级成功标志,并存入掉电保持的存储器中。当故障排除后数据采集传输仪终端重新工作,能从上次接收中断的地方重新接收程序,解决现场各种异常情况对升级的影响。再则数据采集传输仪终端每次上电复位当判断升级标志位无效则直接运行用户应用程序,当判断升级标志位有效则会将新用户程序(升级程序)数据复制到执行用户程序区域空间里,既始终运行的都是用户应用程序,而不会造成系统的崩溃。

数据采集传输仪终端可配置升级通道服务器的ip跟端口,所以服务器可以在任何有网络的地方,服务器灵活,客户只要安装升级软件,就可以执行。

通过实验表明,本发明提出的系统在利用tcp/udp通信协议进行软件的远程升级时,具有较高的升级成功率,较快的升级速度,且代码容量的大小基本符合flash存储器的要求。

实施例九

本实施例提供了一种数据采集传输仪终端的远程在线升级系统,如图4所示,数据采集传输仪终端42,包括:

内嵌flash的控制芯片421,其中:

控制芯片内嵌的flash划分为引导程序区域、用户应用程序区域、升级区域;所述引导程序区域用于存储引导程序bootloader;所述升级区域用于存储服务器发来的升级命令和标志位,将升级代码文件数据转存到用户应用程序区域,覆盖低版本的代码文件数据;所述用户应用程序区域用于存储用户应用程序;

控制芯片,用于判定升级命令中是否包含新的版本信息:若包含,则应答服务器,下载升级代码文件数据,并置升级标志位;否则向服务器发送无需升级的通知消息;下载完升级代码文件数据的数据采集传输仪终端软启动,运行引导程序bootloader,读取标志位,若读取到升级标志位,则将升级代码文件数据覆盖低版本的代码文件数据,否则执行原用户应用程序;

外扩flash芯片422,控制芯片从服务器每接收到一个数据包,都缓存在外扩flash里,校验无误后复制到控制芯片的用户应用程序区域。

该实施例中,控制芯片421选用意法公司的32位arm微处理器stm32f103ze,是现场数据采集传输仪终端的控制核心,其内嵌了512k的闪存(flash);stm32f103ze具有在线编程功能,512k的flash即可以作为程序存储空间又可以存储数据,并且有自读写任意闪存地址的能力。将控制芯片421内嵌的flash的空间分作三部分:其中16k为引导程序;492k为正在执行的用户应用程序,即数据采集传输仪终端的监控程序相当于设备的操作系统软件;另外4k为软件升级的相关参数及标志位,当服务器发起升级任务,数据采集传输仪终端便接收了服务器的ip、端口、新代码文件名称、总包数、发起任务时间等等信息,这些数据就存储在这个区域。当新代码下载成功后,终端将更改相关标志位,设定成有新程序需要系统更新,需要将新程序转存到应用程序存储空间里。这三部分程序在cpu的存储空间里放置的位置是互相独立的。

服务器与数据采集传输仪终端通过internet进行通信,从服务器41下载的升级代码文件数据预存在外扩flash里,待数据包校验无误后复制到控制芯片421的iap区域(用户应用程序区域),系统自动重启执行新的程序代码。这样虽然数据采集传输仪终端42处于升级模式,但并不影响数据采集传输仪的正常工作。

存储新代码的外扩flash采用的华邦w25q128,通过spi接口与控制芯片相连,容量128mbit,这个存储器大部分空间用于存储现场采集污染物的实时数据、分钟数据,只有特定的1m的空间分配给新代码,因为这里只是暂存,终端从服务器全部下载完毕会将新代码复制到iap区域(用户应用程序区域)。

本实施例的系统中还采用迪文的5.6寸工业触摸屏,在无线网络页面下可看到数据采集传输仪终端与多个服务器的连接状态。如有升级任务还可以看到新程序的文件名称、版本号和升级进程以及升级状态,这个作为辅助功能,方便现场人员查看。

实施例十

本实施例提供了一种数据采集传输仪终端的远程在线升级系统,如图5所示,数据采集传输仪终端42还包括无线传输模块423,用于与服务器建立双向通信连接。

该实施例中,数据采集传输仪终端与服务器通过gprs网络建立连接后进行双向通讯,数据采集传输仪终端可以根据at指令获取在线或者是离线状态,如果处于在线状态,则通过服务器主机发送升级命令通知现场设备准备升级,如果是离线状态,升级人员可以通过终端的手机号码发送升级短信。

无线通讯模块采用移远公司的m35a模块,其功能是实现与服务器远程无线连接。无线连接是采用gprs技术与internet连网,支持tcp/udp协议,它保证了升级文件数据的传输通道。控制器在硬件上是通过串口与m35a连接,软件上通过at指令进行网络的连接注册跟数据的收发等操作,它们之间的通讯速率设定为115200b/s。

无线传输模块423可以通过呼叫服务器的ip地址跟端口自动与后台服务器41连接,服务器41收到数据采集传输仪终端42的连接请求后向数据采集传输仪终端42发送升级指令,其中包含有升级程序的总帧数及升级软件的版本信息等信息。数据采集传输仪终端42收到升级指令首先判断是新版本,则准备接收升级数据帧,并将状态标志位跟下载成功标志设为无效,然后开始向服务器41索要升级代码文件数据,服务器41收到数据采集传输仪终端42的索取指令后按协议中的包号开始回复相应的升级代码文件数据(1帧为1k)。每次发送一帧(一个数据包),数据采集传输仪终端42收到后根据crc和异或双重校验判断是否正确,如果正确数据采集传输仪终端42则将数据写入到外扩flash分配的对应的flash地址中。否则重新跟服务器41索要这一帧数据,服务器41便再次发送这个包号的帧数据。数据采集传输仪终端42是按顺序从第一帧数据索要到最后一帧数据,两者交互直至将全部升级代码文件数据接收完全。完毕后,将状态标志位置为升级标志位,并执行软启动,当控制芯片上电复位后判断到升级标志位,将升级代码文件数据复制到执行用户程序区域空间里,开始正常工作,这样就完成了程序的升级。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1