一种远程在线监控系统中设备自升级方法

文档序号:6434829阅读:213来源:国知局
专利名称:一种远程在线监控系统中设备自升级方法
技术领域
本发明属于电子无线通信领域,具体涉及一种远程在线监控系统中设备自升级方法。
背景技术
随着电子技术、计算机技术和通信技术的迅猛发展,嵌入式系统已经广泛应用于工业、军事、通信、信息家电等领域,但是面对新技术的不断涌现和对系统功能、性能以及规模要求的不断提高,开发者必须能够针对客户的需求及时对系统进行升级或维护,以延长系统使用周期,改善系统性能,增强系统适应性。 传统的嵌入式系统升级方式通常由维护人员到达设备现场,开箱重写或者更换FLASH存储部件,当设备数目庞大并且分布范围广泛时,这种升级维护方式的工作量将非常大,而且耗费的时间长、成本高,甚至会影响到用户的正常使用。近年来通过以太网的方法,能较好地解决批量升级的问题,但对于野外偏远地区或海上等有线网络无法到达的地方,此方法也难以实现。

发明内容
针对现有技术中存在的上述问题,本发明的目的在于设计提供一种远程在线监控系统中设备自升级方法的技术方案,数据传输准确、可靠、连续、稳定,很好地解决了数量庞大且分布较广的终端设备的升级和维护问题。所述的一种远程在线监控系统中设备自升级方法,其特征在于是基于GPRS无线通信网络,由终端表具、数据采集器及后台服务器组成的远程在线监控系统,终端表具、数据采集器自主执行程序远程在线升级、维护,包括以下步骤
(A)上传待升级的程序和版本信息;
(B)数据采集器查询后台服务器中自身和终端表具的新版本程序信息;
(Bi)当数据采集器查询到自身新版本程序时,数据采集器进入自升级程序流程; (B2)当数据采集器查询到终端表具新版本程序时,数据采集器进入升级终端表具程序流程;
(B3)当数据采集器没有查询到自身和终端表具的新版本程序信息,结束更新程序操作,进入正常工作模式。所述的一种远程在线监控系统中设备自升级方法,其特征在于所述步骤(A)上传待升级的程序和版本信息当远程在线监控系统需要升级终端表具、数据采集器内的程序时,管理人员把待升级的程序和版本信息上传到后台服务器中;
后台服务器把待升级程序转成下载文件,当读到存储地址连续的程序块时,将此程序块数据打包成256个字节以内的数据包;若程序块数据超过256个字节或读到下一个存储地址连续的程序块时,则另起一个新的数据包。所述的一种远程在线监控系统中设备自升级方法,其特征在于所述步骤(B)数据采集器查询后台服务器中自身和终端表具的新版本程序信息数据采集器定时通过GPRS在线服务,采用FTP传输协议登陆后台服务器,查询是否有终端表具、数据采集器的新版本程序发布、待更新;
后台服务器管理终端表具和数据采集器的新程序文件及版本信息文件,当有数据采集器主动获取新程序文件或版本信息文件时,后台服务器自动应答;
在终端表具、数据采集器新版本程序需要升级时,也包括先向后台服务器发送升级请求命令,在获得后台服务器的确认应答后才可执行升级操作的情况。所述的一种远程在线监控系统中设备自升级方法,其特征在于所述步骤(Bi)当数据采集器查询到自身新版本程序时,数据采集器进入自升级程序流程下载数据采集器新版本程序且校验正确后,写入新开存储区,旧版本程序不破坏;待数据采集器新版本程序完整地下载、编程后,更新数据采集器程序跳转标志,并自动复位重启;当数据采集器重启后, 引导程序读取程序跳转标志,若为新版本标识,跳转到新版本程序区开始运行,否则,运行旧版本程序;
数据采集器从后台服务器获取设备升级文件时,采用断点续传的方式,即后台服务器先对原始的升级文件进行分包、打包成下载文件,数据包采用“记录号+起始地址+长度+ 数据+校验码”的帧格式;
记录号一个完整的数据包为一个记录号,下一个数据包的记录号自动加1 ;
起始地址数据包数据编程的FLASH首地址;
长度数据和校验码的字节数;
数据存储地址连续的程序数据,数据内容长度可变,但包总长不超过256个字节;
检验吗CRC循环冗余校验码;
当数据采集器在一定的时间内没有收到后台服务器的应答数据,则重发;若三次重发失败,则将成功接收的数据包记录号保存到EEPROM中,进入断点续传流程。所述的一种远程在线监控系统中设备自升级方法,其特征在于所述步骤(B2)当数据采集器查询到终端表具新版本程序时,数据采集器进入升级终端表具程序流程数据采集器下载完整终端表具程序文件且校验正确后,存入数据采集器临时存储区;数据采集器给终端表具发送升级命令,终端表具收到命令后进入自升级流程;终端表具接收新版本程序且校验正确后,写入新开存储区,旧版本程序不破坏;待终端表具新版本程序完整地下载、编程后,给数据采集器应答且更新自己的程序跳转标志,并自动复位重启;终端表具重启后,引导程序读取程序跳转标志,若为新版本标识,跳转到新版本程序区开始运行,否则, 运行旧版本程序;待数据采集器收到当前终端表具程序成功升级的应答后,按存储的终端表具地址列表,更换表具地址,直到所有的终端表具升级完成;
数据采集器与终端表具是一对多关系,且工作在主从模式下,即数据采集器是主设备, 各个终端表具是从设备;终端表具通过数据包中的表具地址,判断当前收到数据包是否有效;
终端表具程序升级采用文件分包、组包机制、传输应答机制,数据传输链路层采用“帧起始符+控制代码+数据长度+表具地址+功能代码+数据域+校验码+帧结束符”的通信协议包帧格式;
帧起始符表明一包有效的数据开始接收处理,帧结束符表明一包有效的数据包结束接收处理;控制码表明数据包含有以下信息主动包还是应答包,校验功能是否启用,数据体加密功能是否启用,数据传输结果成功还是失败,多包时的帧号; 数据长度表明表具地址到帧结束符的字节数;
表具地址表明当前数据包是发给哪个终端表具,或当前数据包是哪个终端表具发给数据采集器设备;
功能码表明数据包含有以下信息是否有多包标志,该数据包实现的命令功能; 数据域表明数据包承载的有效数据,数据内容长度可变,但包总长不超过256个字节; 校验码是计算“帧起始符”到“校验码”前所有数据的CRC校验值或MD5校验值,校验值错误,丢弃此包数据。所述的一种远程在线监控系统中设备自升级方法,其特征在于所述步骤(B3)当数据采集器没有查询到自身和终端表具的新版本程序信息,结束更新程序操作,进入正常工作模式数据采集器在后台服务器中没有查询到自身和终端表具的新版本程序,数据采集器立即结束当前程序更新操作,恢复正常工作的运行环境,启动工作模式下的各项任务,等待升级事件的再次发生。所述的一种远程在线监控系统中设备自升级方法,其特征在于所述步骤(A) (B) (Bi) (B2) (B3)中,出现异常情况,数据采集器、终端表具经定时器超时判断,结束升级操作,恢复正常工作,等待升级事件的再次发生;
在数据采集器、终端表具新版本程序升级过程中,出现异常错误,也可通过后台服务器给数据采集器发送相应的命令,让数据采集器、终端表具恢复运行旧版本的程序。所述的一种远程在线监控系统中设备自升级方法,其特征在于数据采集器、终端表具都采用双备份工作应用程序,即一个设备内有新旧两套程序,一套程序正常工作,另一套程序冗余备用,程序存储空间划分方法如下
把数据采集器、终端表具内控制器的FLASH区域分成三个区块,分别是引导程序BOOT 区,应用程序APPl区,应用程序APP2区;三个存储空间地址的划分是从低地址到高地址,或是从高地址到地址。所述的一种远程在线监控系统中设备自升级方法,其特征在于BOOT区为工作程序引导区,仅用于存放系统初始化和工作程序引导代码;终端设备上电启动或复位时,将控制器固化在FLASH最高地址处的中断向量表中各中断跳转地址固定到唯一分配使用的 SRAM最低地址处,工作程序引导代码读取、判断存储在EEPROM中程序跳转标志,将APPl区或APP2区的应用程序中断向量表映射到SRAM最低地址处,完成系统初始化,跳转运行APPl 区或APP2区的应用程序。所述的一种远程在线监控系统中设备自升级方法,其特征在于APPl区和APP2区是应用程序存储区,大小相同,作为工作程序和备份程序交替使用;若当前运行的应用程序在APPl区,则程序升级时把升级程序保存到APP2区,否则保存到APPl区;当设备接收到整数页的程序数据后,通过IAP的方式对FLASH进行编程;每次新版应用程序升级完成后,必须修改、保存程序跳转标志与新版本应用程序所处区间一致。本发明所述的一种远程在线监控系统中设备自升级方法,能利用GPRS无线通信网络无需现场布线,快捷登录,实时在线和高速传输的特点,在移动公网覆盖的范围内,数据传输准确、可靠、连续、稳定,很好地解决了数量庞大且分布较广的终端设备的升级和维护问题,推进了工业自动化的发展方向。


图1为本发明的结构示意图2为终端设备引导程序(Bootloader)工作流程图; 图3为数据采集器从后台服务器上查询新程序版本流程图; 图4为数据采集器从后台服务器上获取升级程序流程图; 图5为断点续传流程图; 图6为终端表具程序更新流程图。
具体实施例方式现结合说明书附图,详细说明本发明的
具体实施例方式
如图1所示,该远程在线监控系统中设备自升级方法,是基于GPRS无线通信网络,由终端表具1、数据采集器2及后台服务器3组成的远程在线监控系统,终端表具1、数据采集器 2自主执行程序远程在线升级、维护,包括以下步骤
1)当远程在线监控系统需要升级终端表具1、数据采集器2内的程序时,管理人员把待升级的程序和版本信息上传到后台服务器3中;
2)数据采集器2定时通过GPRS在线服务,采用FTP传输协议登陆后台服务器3,查询是否有终端表具1、数据采集器2的新版本程序发布、待更新;
3)当数据采集器2在后台服务器3中查询到自身新版本程序,数据采集器2进入自升级流程下载数据采集器2新版本程序且校验正确后,写入新开存储区,旧版本程序不破坏;待数据采集器2新版本程序完整地下载、编程后,更新数据采集器2程序跳转标志,并自动复位重启;当数据采集器2重启后,引导程序读取程序跳转标志,若为新版本标识,跳转到新版本程序区开始运行,否则,运行旧版本程序;
4)当数据采集器2在后台服务器3中查询到终端表具1新版本程序,数据采集器2进入升级终端表具1程序流程当数据采集器2下载完整终端表具1程序文件且校验正确后,存入数据采集器2临时存储区;数据采集器2给终端表具1发送升级命令,终端表具1 收到命令后进入自升级流程;终端表具1接收新版本程序且校验正确后,写入新开存储区, 旧版本程序不破坏;待终端表具1新版本程序完整地下载、编程后,给数据采集器2应答且更新自己的程序跳转标志,并自动复位重启;终端表具1重启后,引导程序读取程序跳转标志,若为新版本标识,跳转到新版本程序区开始运行,否则,运行旧版本程序;待数据采集器 2收到当前终端表具1程序成功升级的应答后,按存储的终端表具1地址列表,更换表具地址,直到所有的终端表具1升级完成;
5)当数据采集器2在后台服务器3中没有查询到数据采集器2、终端表具1新版本程序,数据采集器2立即结束当前程序更新操作,进入正常工作模式;
6)在上述过程中,出现异常情况,数据采集器2、终端表具1经定时器超时判断,结束升级操作,恢复正常工作,等待升级事件的再次发生;也可通过后台服务器3给数据采集器2 发送相应的命令,让数据采集器2、终端表具1恢复运行旧版本的程序。上面简要介绍了本发明实现终端设备自升级的方法,下面将详细介绍应用程序的升级原理及过程。为避免终端表具1和数据采集器2在程序升级过程中发生意外,出现系统崩溃的情况,系统采用程序双备份工作原理,即一个设备内有新旧两套程序,一套程序正常工作, 另一套程序冗余备用;这样就保证了新程序升级失败时,能够自动切换回老版本程序,继续正常工作。其原理是把控制器(包括单片机,ARM处理器)的FLASH区域依次分成三块,分别是引导程序BOOT区,应用程序APPl区,应用程序APP2区;三个存储空间地址的划分可以是从低地址到高地址,也可以是从高地址到地址。BOOT区为工作程序引导区,仅用于存放系统初始化和工作程序引导代码。终端设备上电启动或复位时,必先启动引导程序,图2是终端设备引导程序(Bootloader)工作流程图,如图2所示。首先进入步骤201,将控制器内固化在FLASH最高地址处32个字节的中断向量表 (Vector Table)中各中断跳转地址固定到唯一分配使用的SRAM最低地址32个字节处,该 32字节SRAM空间作为应用程序APPl (或APP2)中断向量表的映射,不允许再次被控制器分配使用;完成初始化设备后,从EEPROM存储器中读取程序跳转标志,进入步骤202。在步骤202中,判断程序跳转标志值,若值是0x55,进入步骤203 ;若值是OxAA,进入步骤206 ;若是其他值,进入步骤209。在步骤203中,将APPl区间程序中断向量表映射至SRAM最低地址处后,进入步骤 204。在步骤204中,获取APPl区间程序入口地址,进入步骤205。在步骤205中,跳转执行APPl区间程序。在步骤206中,将APP2区间程序中断向量表映射至SRAM最低地址处后,进入步骤 207。在步骤207中,获取APP2区间程序入口地址,进入步骤208。在步骤208中,跳转执行APP2区间代码。在步骤209中,由于APPl区间和APP2区间都没有可执行程序,执行等待串口下载程序,并进入步骤210中,判断程序是否下载完成。在步骤210中,若程序下载完成,更新程序跳转标志后结束;若程序没有下载完成,返回步骤209中继续执行等待串口下载程序;若有下载异常情况,直接结束。APPl区和APP2区是应用程序存储区,大小相同,作为工作程序和备份程序交替使用;应用程序的编程是通过IAP方式实现,设备FLASH数据编程的最小单位是页(512个字节/页),当设备接收到的升级数据达到整数页后进行编程;例如,若当前终端运行的程序工作在APPl区间,则将新版本的程序下载、校验正确的条件下写入APP2区间,待新程序完整下载、成功编程后,更新程序跳转标志为APP2区中程序有效,最后设备重启跳转到APP2 区间程序运行。此时,APP2区间程序成为工作程序,APPl区间程序作为备用程序,作为下次升级程序的存放区。每次新版应用程序升级完成后,都必须修改、保存程序跳转标志与新版本应用程序所处区间一致,确保新版本应用程序正常启用;图3、图4、图5、图6将详细描述终端表具1和数据采集器2中的应用程序升级过程。首先,当有终端表具1、数据采集器2的新程序需升级时,管理人员将新程序拷贝到后台服务器3,并按“记录号+起始地址+长度+数据+校验码”的断点续传数据包帧格式生成下载文件;
记录号一个完整的数据包为一个记录号,下一个数据包的记录号自动加1 ; 起始地址数据包数据编程的FLASH首地址; 长度数据和校验码的字节数;
数据存储地址连续的程序数据,数据内容长度可变,但包总长不超过256个字节; 检验码CRC循环冗余校验码。后台服务器3生成下载文件时,当读到存储地址连续的程序块时,将此程序块数据打包成256个字节以内的数据包;若程序块数据超过256个字节或读到下一个存储地址连续的程序块时,则另起一个新的数据包。其次,在版本信息日志(VER_L0G. TXT)增加新版本程序文件名和对应的版本信息, 供数据采集器2下载,搜索。最后,后台服务器3管理终端表具1和数据采集器2的新程序文件及版本信息文件,当有数据采集器2主动获取新程序文件或版本信息文件时,后台服务器3自动应答;数据采集器2按照固定的周期,利用GPRS无线上网服务功能,执行终端表具1、数据采集器2 新程序版本的搜索、比对、下载、升级,该过程也包括先向后台服务器3发送升级请求命令, 在获得后台服务器3的确认应答后才可执行升级操作的情况。其工作流如图3所示。在步骤301中,数据采集器2定时开启FTP服务,进入步骤302。在步骤302中,数据采集器2按照指定地址(事先配置好的存储在数据采集器2中的IP地址、PORT端口号)登录后台服务器3,下载版本信息日志文件,进入步骤303。在步骤303中,在版本信息日志文件中,查询是否有新程序版本发布、需更新;若有,进入步骤304 ;否则,进入步骤307。在步骤304中,数据采集器2下载新版本程序后,进入步骤305。在步骤305中,数据采集器2执行设备程序升级后,进入步骤306。在步骤306中,终端设备自动复位,系统重启,结束。在步骤307中,数据采集器2退出登录,关闭FTP服务,进入308。在步骤308中,数据采集器2执行应用程序,恢复正常工作,结束。在上述步骤305中,执行程序升级的设备分数据采集器2和终端表具1两种情况, 所以需要分开来具体描述,下面就数据采集器2和终端表具1各自的升级特点详细说明。在执行数据采集器2自升级操作时,先从片内的EEPROM中读取升级配置,包括程序跳转标志、程序数据包记录号等。若程序跳转标志值等于0x55,表明当前应用程序APPl 运行,应升级APP2区间程序;若程序跳转标志值等于OxAA,表明当前应用程序APP2运行, 应升级APPl区间程序;其他值时,异常报警。若当前是初次升级,则程序数据包记录号是默认值0 ;若当前是续传升级,则程序数据包记录号是上次升级已获取到的最后一个数据包记录号,由此生成升级命令包。工作流程如图4所示。在步骤401中,数据采集器2发送APPl (APP2)区间程序升级命令,该命令中包含升级程序文件名称及程序数据包记录号,开启接收应答超时定时器,进入步骤402。在步骤402中,数据采集器2等待后台服务器3应答超时,进入步骤403,否则,进入步骤406。在步骤403中,数据采集器2重发命令包,进入步骤404。
在步骤404中,若命令包重发次数没有超过3次,数据采集器2开启接收应答超时定时器,继续等待后台服务器3应答,进入步骤402 ;否则,进入步骤405。在步骤405中,数据采集器2进入断点续传流程。在步骤406中,数据采集器2接收到APPl (APP2)区间程序升级数据包,且校验正确后,进入步骤407。在步骤407中,判断数据包记录号是否是期望接收记录号包,若是,进入步骤408 ; 否则,进入步骤413。在步骤408中,数据采集器2保存APPl (APP2)区升级程序数据包,且更新EEPROM 中程序数据包记录号,进入步骤409。在步骤409中,数据采集器2判断是否升级数据接受结束,程序文件已经完整下载、编程,若是,进入步骤410 ;否则,进入步骤412。在步骤410中,数据采集器2更新程序跳转标志值,升级数据包记录号清零存储到 EEI3ROM中,进入步骤411。在步骤411中,数据采集器2自动复位重启,结束。在步骤412中,期望接收数据包记录号自动加1后,进入步骤413。在步骤413中,获取期望接收数据包记录号,再次进入步骤401。在上述步骤405中,当数据采集器2在一定时间内没有收到后台服务器3的应答数据,则重发获取数据包命令;若数据采集器2连续3次没有成功接收到后台服务器3的应答包,则将成功接收的数据包记录号保存到EEPROM中;数据采集器2停止继续升级操作,而进入断点续传流程,等待网络链路恢复或升级事件再次发生。其工作流程如图5所示。在步骤501中,数据采集器2关闭超时判断定时器,进入步骤502。在步骤502中,数据采集器2获取升级程序存储区地址,若获取成功,进入步骤 503 ;否则,进入步骤504。在步骤503中,数据采集器2获取上次升级数据包失败记录号,若获取成功,进入步骤505 ;否则,进入步骤504。在步骤504中,数据采集器2初始化升级配置信息,重新开始升级。在步骤505中,数据采集器2发送获取该记录号数据包命令,并开启超时定时器。在执行终端表具1的升级操作时,采用类似数据采集器2自升级的方式,数据采集器2先将终端表具1的升级文件(APP1和APP2)从后台服务器3完整下载并存储在数据采集器2的临时缓存中。数据采集器2上挂有多个终端表具1,工作在主从模式下,即数据采集器2是主设备,各个终端表具1是从设备。任何数据的交互,都必须由数据采集器2发起, 终端表具1成功接收后应答。终端表具1通过数据包中的表具地址,确认当前数据包是否有效,无效数据包立即丢弃,不做任何处理。只有表具地址唯一对应的终端表具1才做升级操作。数据采集器2根据终端表具1地址列表,逐个更新终端表具1的程序。由于各个终端表具1升级的次数记录不同,故在逐个更新设备程序时,必须先判断设备的升级程序区间。 在升级各终端表具1时,采用文件分包、组包机制、传输应答机制,数据传输链路层采用“帧起始符+控制代码+数据长度+表具地址+功能代码+数据域+校验码+帧结束符”的通信协议包帧格式,一应一答。帧起始符表明一包有效的数据开始接收处理,帧结束符表明一包有效的数据包结束接收处理;
控制码表明数据包含有以下信息主动包还是应答包,校验功能是否启用,数据体加密功能是否启用,数据传输结果成功还是失败,多包时的帧号; 数据长度表明表具地址到帧结束符的字节数;
表具地址表明当前数据包是发给哪个终端表具1,或当前数据包是哪个终端表具1发给数据采集器2设备;
功能码表明数据包含有以下信息是否有多包标志,该数据包实现的命令功能; 数据域表明数据包承载的有效数据,数据内容长度可变,但包总长不超过256个字节; 校验码是计算“帧起始符”到“校验码”前所有数据的CRC校验值或MD5校验值,校验值错误,丢弃此包数据。升级流程如图6所示。在步骤601中,数据采集器2查询终端表具1程序版本信息,需要升级时进入步骤 602。在步骤602中,终端表具1接收到数据采集器2的升级命令,进入步骤603,否则, 终端表具1照常工作。在步骤603中,终端表具1判断当前程序跳转标志值,若值等于0x55,进入步骤 604 ;若值等于OxAA,进入步骤605 ;其他值时,异常报警结束。在步骤604中,终端表具1生成升级终端表具1APP2区间程序文件名后,进入步骤 606。在步骤605中,终端表具1生成升级终端表具IAPPl区间程序文件名后,进入步骤 606。在步骤606中,终端表具1给数据采集器2发送APPl (或APP2)区间程序升级确认应答,进入步骤607。在步骤607中,终端表具1执行APPl (或APP2)区间程序升级操作,若升级完成进入步骤609 ;若升级异常,结束;并超时检测进入步骤608。在步骤608中,终端表具1执行超时检测,判断程序升级是否超时,若是,立刻结束;否则,返回步骤607继续等待升级数据。在步骤609中,终端表具1校验APPl (或APP2)区新程序是否正确,若校验失败, 立即结束;校验正确,进入步骤610。在步骤610中,终端表具1更新程序跳转标志值,进入步骤611。在步骤611中,终端表具1自动复位重启,结束。虽然通过参照本发明的某些优选实施例,对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
权利要求
1.一种远程在线监控系统中设备自升级方法,其特征在于是基于GPRS无线通信网络, 由终端表具(1)、数据采集器(2)及后台服务器(3)组成的远程在线监控系统,终端表具 (1)、数据采集器(2)自主执行程序远程在线升级、维护,包括以下步骤(A)上传待升级的程序和版本信息;(B)数据采集器(2)查询后台服务器(3)中自身和终端表具(1)的新版本程序信息; (Bi)当数据采集器(2)查询到自身新版本程序时,数据采集器(2)进入自升级程序流程;(B2)当数据采集器(2)查询到终端表具(1)新版本程序时,数据采集器(2)进入升级终端表具(1)程序流程;(B3)当数据采集器(2)没有查询到自身和终端表具(1)的新版本程序信息,结束更新程序操作,进入正常工作模式。
2.根据权利要求1所述的一种远程在线监控系统中设备自升级方法,其特征在于所述步骤(A)上传待升级的程序和版本信息当远程在线监控系统需要升级终端表具(1)、数据采集器(2)内的程序时,管理人员把待升级的程序和版本信息上传到后台服务器(3)中;后台服务器(3)把待升级程序转成下载文件,当读到存储地址连续的程序块时,将此程序块数据打包成256个字节以内的数据包;若程序块数据超过256个字节或读到下一个存储地址连续的程序块时,则另起一个新的数据包。
3.根据权利要求1所述的一种远程在线监控系统中设备自升级方法,其特征在于所述步骤(B)数据采集器(2)查询后台服务器(3)中自身和终端表具(1)的新版本程序信息数据采集器(2)定时通过GPRS在线服务,采用FTP传输协议登陆后台服务器(3),查询是否有终端表具(1)、数据采集器(2)的新版本程序发布、待更新;后台服务器(3)管理终端表具(1)和数据采集器(2)的新程序文件及版本信息文件,当有数据采集器(2)主动获取新程序文件或版本信息文件时,后台服务器(3)自动应答;在终端表具(1)、数据采集器(2)新版本程序需要升级时,也包括先向后台服务器(3) 发送升级请求命令,在获得后台服务器(3)的确认应答后才可执行升级操作的情况。
4.根据权利要求1所述的一种远程在线监控系统中设备自升级方法,其特征在于所述步骤(Bi)当数据采集器(2)查询到自身新版本程序时,数据采集器(2)进入自升级程序流程下载数据采集器(2)新版本程序且校验正确后,写入新开存储区,旧版本程序不破坏; 待数据采集器(2 )新版本程序完整地下载、编程后,更新数据采集器(2 )程序跳转标志,并自动复位重启;当数据采集器(2)重启后,引导程序读取程序跳转标志,若为新版本标识, 跳转到新版本程序区开始运行,否则,运行旧版本程序;数据采集器(2)从后台服务器(3)获取设备升级文件时,采用断点续传的方式,即后台服务器(3)先对原始的升级文件进行分包、打包成下载文件,数据包采用“记录号+起始地址+长度+数据+校验码”的帧格式;记录号一个完整的数据包为一个记录号,下一个数据包的记录号自动加1 ; 起始地址数据包数据编程的FLASH首地址; 长度数据和校验码的字节数;数据存储地址连续的程序数据,数据内容长度可变,但包总长不超过256个字节; 检验码CRC循环冗余校验码;当数据采集器(2)在一定的时间内没有收到后台服务器(3)的应答数据,则重发;若三次重发失败,则将成功接收的数据包记录号保存到EEPROM中,进入断点续传流程。
5.根据权利要求1所述的一种远程在线监控系统中设备自升级方法,其特征在于所述步骤(B2)当数据采集器(2)查询到终端表具(1)新版本程序时,数据采集器(2)进入升级终端表具(1)程序流程数据采集器(2 )下载完整终端表具(1)程序文件且校验正确后,存入数据采集器(2 )临时存储区;数据采集器(2 )给终端表具(1)发送升级命令,终端表具(1) 收到命令后进入自升级流程;终端表具(1)接收新版本程序且校验正确后,写入新开存储区,旧版本程序不破坏;待终端表具(1)新版本程序完整地下载、编程后,给数据采集器(2) 应答且更新自己的程序跳转标志,并自动复位重启;终端表具(1)重启后,引导程序读取程序跳转标志,若为新版本标识,跳转到新版本程序区开始运行,否则,运行旧版本程序;待数据采集器(2 )收到当前终端表具(1)程序成功升级的应答后,按存储的终端表具(1)地址列表,更换表具地址,直到所有的终端表具(1)升级完成;数据采集器(2)与终端表具(1)是一对多关系,且工作在主从模式下,即数据采集器 (2 )是主设备,各个终端表具(1)是从设备;终端表具(1)通过数据包中的表具地址,判断当前收到数据包是否有效;终端表具(1)程序升级采用文件分包、组包机制、传输应答机制,数据传输链路层采用 “帧起始符+控制代码+数据长度+表具地址+功能代码+数据域+校验码+帧结束符”的通信协议包帧格式;帧起始符表明一包有效的数据开始接收处理,帧结束符表明一包有效的数据包结束接收处理;控制码表明数据包含有以下信息主动包还是应答包,校验功能是否启用,数据体加密功能是否启用,数据传输结果成功还是失败,多包时的帧号;数据长度表明表具地址到帧结束符的字节数;表具地址表明当前数据包是发给哪个终端表具(1),或当前数据包是哪个终端表具 (1)发给数据采集器(2)设备;功能码表明数据包含有以下信息是否有多包标志,该数据包实现的命令功能;数据域表明数据包承载的有效数据,数据内容长度可变,但包总长不超过256个字节;校验码是计算“帧起始符”到“校验码”前所有数据的CRC校验值或MD5校验值,校验值错误,丢弃此包数据。
6.根据权利要求1所述的一种远程在线监控系统中设备自升级方法,其特征在于所述步骤(B3)当数据采集器(2)没有查询到自身和终端表具(1)的新版本程序信息,结束更新程序操作,进入正常工作模式数据采集器(2)在后台服务器(3)中没有查询到自身和终端表具(1)的新版本程序,数据采集器(2)立即结束当前程序更新操作,恢复正常工作的运行环境,启动工作模式下的各项任务,等待升级事件的再次发生。
7.根据权利要求1所述的一种远程在线监控系统中设备自升级方法,其特征在于所述步骤(A) (B) (Bi) (B2) (B3)中,出现异常情况,数据采集器(2)、终端表具(1)经定时器超时判断,结束升级操作,恢复正常工作,等待升级事件的再次发生;在数据采集器(2)、终端表具(1)新版本程序升级过程中,出现异常错误,也可通过后台服务器(3 )给数据采集器(2 )发送相应的命令,让数据采集器(2 )、终端表具(1)恢复运行旧版本的程序。
8.根据权利要求1所述的一种远程在线监控系统中设备自升级方法,其特征在于数据采集器(2)、终端表具(1)都采用双备份工作应用程序,即一个设备内有新旧两套程序,一套程序正常工作,另一套程序冗余备用,程序存储空间划分方法如下把数据采集器(2)、终端表具(1)内控制器的FLASH区域分成三个区块,分别是引导程序BOOT区,应用程序APPl区,应用程序APP2区;三个存储空间地址的划分是从低地址到高地址,或是从高地址到地址。
9.根据权利要求8所述的一种远程在线监控系统中设备自升级方法,其特征在于BOOT 区为工作程序引导区,仅用于存放系统初始化和工作程序引导代码;终端设备上电启动或复位时,将控制器固化在FLASH最高地址处的中断向量表中各中断跳转地址固定到唯一分配使用的SRAM最低地址处,工作程序引导代码读取、判断存储在EEPROM中程序跳转标志, 将APPl区或APP2区的应用程序中断向量表映射到SRAM最低地址处,完成系统初始化,跳转运行APPl区或APP2区的应用程序。
10.根据权利要求8所述的一种远程在线监控系统中设备自升级方法,其特征在于 APPl区和APP2区是应用程序存储区,大小相同,作为工作程序和备份程序交替使用;若当前运行的应用程序在APPl区,则程序升级时把升级程序保存到APP2区,否则保存到APPl 区;当设备接收到整数页的程序数据后,通过IAP的方式对FLASH进行编程;每次新版应用程序升级完成后,必须修改、保存程序跳转标志与新版本应用程序所处区间一致。
全文摘要
本发明属于电子无线通信领域,具体涉及一种远程在线监控系统中设备自升级方法。其特征在于基于GPRS服务,由终端表具、数据采集器及后台服务器组成的远程在线监控系统,各终端设备执行自升级、自维护,主要步骤后台服务器对应用程序及版本信息管理;数据采集器定期查询版本日志并下载新版本程序;数据采集器实现自升级及对终端表具升级;新版本程序更新成功后跳转执行,但仍保留旧版本程序备用。本发明结合GPRS服务、存储空间管理、文件分包机制、传输应答机制、断点续传方式及IAP程序烧写方式,确保数据传输的准确性和可靠性;在不影响用户正常使用的情况下,快速高效地解决了数量庞大且分布较广的设备升级和维护问题。
文档编号G06F9/445GK102314369SQ201110301049
公开日2012年1月11日 申请日期2011年10月9日 优先权日2011年10月9日
发明者康惠海, 石爱国, 陈江南 申请人:杭州先锋电子技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1