嵌入式系统的数据远程升级方法

文档序号:6433443阅读:154来源:国知局
专利名称:嵌入式系统的数据远程升级方法
技术领域
本发明涉及一种嵌入式系统的数据远程升级方法,特别是一种嵌入式系统的数据的差异升级和断点续传的升级方法。
背景技术
现有嵌入式系统程序升级的方法,比如以太网远程升级、U盘本地升级都是用新程序整个取代嵌入式节点里面的现有程序。随着无线网络的发展,嵌入式无线节点的增多,如何安全可靠的升级嵌入式无线节点程序成为了一个新的课题。现有数据方法已经不适合无线网络数据通信或程序升级。嵌入式无线节点自身通信的特殊性,比如信号不稳定、通讯数据包数据量小,都要求尽量减少升级程序的大小,并且当受到干扰造成升级失败时能在原有升级的基础上继续升级,提高程序升级的效率和可靠性。

发明内容
发明目的本发明所要解决的技术问题是针对现有技术的不足,提供一种嵌入式系统的数据远程升级方法,解决目前嵌入式无线节点缺少有效的程序(数据)升级方法,不能满足实际应用的问题。为了解决上述技术问题,本发明公开了一种嵌入式系统的数据远程升级方法,在本地服务器和一个远程嵌入式系统之间采用差异升级方式进行数据升级;
所述差异升级方式指将嵌入式系统内现有数据和本地服务器的新数据按照一定大小分成多个子文件,并进行差异对比形成差异子文件和版本控制文件,根据版本控制文件对差异的子文件进行升级,相同的子文件不升级。本发明中,所述版本控制文件按照二进制编码方式映射各个差异子文件,映射方法如下
所述版本控制文件的每一个二进制bit位对应着本地服务器新数据中的一个子文件; 用二进制bit位0表示本地服务器新数据中的子文件和嵌入式系统内现有数据中的子文件相同,不需要升级;用二进制bit位1表示本地服务器的新数据中的子文件和嵌入式系统内现有数据中的子文件不同,需要升级; 或者,
用二进制bit位1表示本地服务器新数据中的子文件和嵌入式系统内现有数据中的子文件相同,不需要升级;用二进制bit位0表示本地服务器的新数据中的子文件和嵌入式系统内现有数据中的子文件不同,需要升级。本发明中,数据远程升级开始时,嵌入式系统获取新的版本控制文件并和自身的版本控制文件进行bit位扫描对比,扫描顺序可以从前往后正序扫描,也可以从后往前倒序扫描,根据该bit位的值判断是该bit位映射的子文件是否是差异子文件,如果是则进行升级,否则不升级。本发明中,根据对版本控制文件二进制扫描的结果,嵌入式系统获取本地服务器上的差异子文件,获取成功后嵌入式系统修改自身的版本控制文件,表示该差异子文件已经和本地服务器上的差异子文件相同。本发明中,在本地服务器和一个远程嵌入式系统之间采用断点续传方式进行数据升级;
所述断点续传方式指如果本次升级失败只升级了部分差异子文件,下一次升级时,已成功升级差异子文件将不再升级,仅仅升级未完成差异子文件。本发明中,如果一次升级失败,只升级了部分差异子文件,已升级的部分差异子文件对应在版本控制文件中对应的bit位已经被修改,下次升级进行bit位扫描时将跳过该 bit位,不对该bit位对应的差异子文件升级。有益效果本发明方法简单,使用方便,效率高,占用资源少等优点。提高了传统嵌入式系统程序升级方法的效率,能安全可靠的升级嵌入式无线节点程序。同时本发明同样能提高传统的以太网远程升级、U盘本地升级的升级效率和可靠性。


下面结合附图和具体实施方式
对本发明做更进一步的具体说明,本发明的上述和 /或其他方面的优点将会变得更加清楚。图1为实施例流程图。
具体实施例方式本发明公开了一种嵌入式系统的数据远程升级方法,在本地服务器和一个远程嵌入式系统之间采用差异升级方式进行数据升级;所述差异升级方式指将嵌入式系统内现有数据和本地服务器的新数据按照一定大小分成多个子文件,并进行差异对比形成差异子文件和版本控制文件,根据版本控制文件对差异的子文件进行升级,相同的子文件不升级。本发明中,所述版本控制文件按照二进制编码方式映射各个差异子文件,映射方法如下所述版本控制文件的每一个二进制bit位对应着本地服务器新数据中的一个子文件;
用二进制bit位0表示本地服务器新数据中的子文件和嵌入式系统内现有数据中的子文件相同,不需要升级;用二进制bit位1表示本地服务器的新数据中的子文件和嵌入式系统内现有数据中的子文件不同,需要升级; 或者,
用二进制bit位1表示本地服务器新数据中的子文件和嵌入式系统内现有数据中的子文件相同,不需要升级;用二进制bit位0表示本地服务器的新数据中的子文件和嵌入式系统内现有数据中的子文件不同,需要升级。本发明中,数据远程升级开始时,嵌入式系统获取新的版本控制文件并和自身的版本控制文件进行bit位扫描对比,扫描顺序可以从前往后正序扫描,也可以从后往前倒序扫描,根据该bit位的值判断是该bit位映射的子文件是否是差异子文件,如果是则进行升级,否则不升级。本发明中,根据对版本控制文件二进制扫描的结果,嵌入式系统获取本地服务器上的差异子文件,获取成功后嵌入式系统修改自身的版本控制文件,表示该差异子文件已
4经和本地服务器上的差异子文件相同。本发明中,在本地服务器和一个远程嵌入式系统之间采用断点续传方式进行数据升级;
所述断点续传方式指如果本次升级失败只升级了部分差异子文件,下一次升级时,已成功升级差异子文件将不再升级,仅仅升级未完成差异子文件。本发明中,如果一次升级失败,只升级了部分差异子文件,已升级的部分差异子文件对应在版本控制文件中对应的bit位已经被修改,下次升级进行bit位扫描时将跳过该 bit位,不对该bit位对应的差异子文件升级。
实施例如图1所示,本实施例是在本地PC服务器和远程GPRS嵌入式终端之间实现。prog为GPRS嵌入式终端上运行程序,大小为72K byte ; ver为GPRS嵌入式终端上的版本控制文件,预知文件内容为0x00,0x00, ..,0x00 (共30个,初始化的数量和升级的最大程序大小有关)。(一)差异升级的实现过程。A 如图1中步骤1,在本地服务器上将prog和progNew按照IOK大小分成多个子文件对比后,形成3个差异子文件分别是prog007,progOOS, prog009 ;同时形成版本控制文件verNew,除去固定的文件头和文件尾,0x80,0x03,0x00,,...,0x00 (共30个字节),其中的二进制bit 1和形成的差异子文件映射。B 通过短信发送远程唤醒升级帧,启动嵌入式系统升级程序,如图1中步骤2 ;嵌入式系统升级程序首先将嵌入式终端的版本控制文件ver全部bit位清0,然后嵌入式系统远程获取本地PC服务器上的版本控制文件verNew,如图1中步骤3 ;
C 嵌入式系统获取版本控制文件verNew后,将verNew和ver按bit位进行扫描比较。 本例中采用倒续扫描,因为后面的28个0x00字节相同,所以被跳过。第一个差异bit为 0x03 (00000011b)的最低位bit为1,这个bit位1表示需要获取差异子文件prog008,如图 1中步骤4 ;嵌入式系统远程获取本地PC服务器差异子文件progOOS,如图1中步骤5,如果嵌入式系统远程获取本地PC服务器差异子文件不成功,则返回步骤2;获取该文件成功后, 将文件ver的内容修改为0x00,0x01, ..,0x00 (共30个),如图1中步骤6。D 第二个差异bit为0x02 (00000010b)的第二位bitl,这个bit位1表示需要获取差异子文件prog009,获取该文件成功后,将文件ver的内容修改为OxOOx,0x03,.., 0x00(共30个)。因为尚有差异子文件需要升级,所以本过程重复图1中步骤4、步骤5和步骤6。E 第三个差异bit为0x80 (10000000b)的最高位bitl,这个bit位1表示需要获取差异子文件prog. 007,获取该文件成功后,将文件ver的内容修改为0x80,0x03,.., 0x00(共30个)。因为尚有差异子文件需要升级,所以本过程重复图1中步骤4、步骤5和步骤6。F 至此,步骤4中判断无差异子文件,即全部差异子文件升级完毕,程序升级成功,升级程序退出,如图1中步骤7。(二)断点续传的实现过程。
假定程序升级过程中受到干扰,第二个差异子文件prog009升级失败,此时版本控制文件ver的内容更新为0x00,0x01, ..,0x00 (共30个)。通过短信发送远程唤醒升级帧,启动嵌入式系统升级程序,如图1中步骤2 ; 嵌入式系统升级程序首先将嵌入式终端的版本控制文件ver全部bit位清0,然后嵌入
式系统远程获取本地PC服务器上的版本控制文件verNew,如图1中步骤3 ;
嵌入式系统获取版本控制文件verNew后,将verNew和ver按bit位进行扫描比较。第一个差异bit为0x02 (00000010b)的第2个bit为1,这个bit位1表示需要获取差异子文件prog009,如图1中步骤4 ;
升级程序从步骤4开始,循环执行图1中步骤4、步骤5、步骤6,直至步骤4中判断无差异子文件,即差异子文件全部升级完毕,升级完成程序退出,如图1中步骤7,步骤5中如果嵌入式系统远程获取本地PC服务器差异子文件不成功,则返回步骤2。升级程序启动后,升级程序重新获取PC机版本控制文件,并和嵌入式系统内部版本控制文件进行对比,已成功升级文件将不重复升级,实现了断点续传。本发明提供了一种嵌入式系统的数据远程升级的思路及方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
权利要求
1.一种嵌入式系统的数据远程升级方法,其特征在于,在本地服务器和一个远程嵌入式系统之间采用差异升级方式进行数据升级;所述差异升级方式指将嵌入式系统内现有数据和本地服务器的新数据按照一定大小分成多个子文件,并进行差异对比形成差异子文件和版本控制文件,根据版本控制文件对差异的子文件进行升级,相同的子文件不升级。
2.根据权利要求1所述的嵌入式系统的数据远程升级方法,其特征在于,所述版本控制文件按照二进制编码方式映射各个差异子文件,映射方法如下所述版本控制文件的每一个二进制bit位对应着本地服务器新数据中的一个子文件;用二进制bit位0表示本地服务器新数据中的子文件和嵌入式系统内现有数据中的子文件相同,不需要升级;用二进制bit位1表示本地服务器的新数据中的子文件和嵌入式系统内现有数据中的子文件不同,需要升级;或者,用二进制bit位1表示本地服务器新数据中的子文件和嵌入式系统内现有数据中的子文件相同,不需要升级;用二进制bit位0表示本地服务器的新数据中的子文件和嵌入式系统内现有数据中的子文件不同,需要升级。
3.根据权利要求2所述的嵌入式系统的数据远程升级方法,其特征在于,数据远程升级开始时,嵌入式系统获取新的版本控制文件并和自身的版本控制文件进行bit位扫描对比,扫描顺序为从前往后正序扫描或者从后往前倒序扫描,根据该bit位的值判断是该bit 位映射的子文件是否是差异子文件,如果是则进行升级,否则不升级。
4.根据权利要求3所述的嵌入式系统的数据远程升级方法,其特征在于,根据对版本控制文件二进制扫描的结果,嵌入式系统获取本地服务器上的差异子文件,获取成功后嵌入式系统修改自身的版本控制文件,表示该差异子文件已经和本地服务器上的差异子文件相同。
5.根据权利要求1至4中任意一项所述的嵌入式系统的数据远程升级方法,其特征在于,在本地服务器和一个远程嵌入式系统之间采用断点续传方式进行数据升级;所述断点续传方式指如果本次升级失败只升级了部分差异子文件,下一次升级时,已成功升级差异子文件将不再升级,仅仅升级未完成差异子文件。
6.根据权利要求1至5中任意一项所述的嵌入式系统的数据远程升级方法,其特征在于,如果一次升级失败,只升级了部分差异子文件,已升级的部分差异子文件对应在版本控制文件中对应的bit位已经被修改,下次升级进行bit位扫描时将跳过该bit位,不对该 bit位对应的差异子文件升级。
全文摘要
本发明公开了一种嵌入式系统的数据远程升级方法,在本地服务器和一个远程嵌入式系统之间采用差异升级方式进行数据升级;所述差异升级方式指将嵌入式系统内现有数据和本地服务器的新数据按照一定大小分成多个子文件,并进行差异对比形成差异子文件和版本控制文件,根据版本控制文件对差异的子文件进行升级,相同的子文件不升级。它解决了目前嵌入式系统远程升级过程中速度慢、数据量大、传输不可靠,不能满足实际应用需要等问题。具有方法简单,使用方便,效率高,占用通信资源少等优点。
文档编号G06F9/445GK102325189SQ201110277708
公开日2012年1月18日 申请日期2011年9月19日 优先权日2011年9月19日
发明者师晓敏, 查付政, 芮晓玲 申请人:江苏省邮电规划设计院有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1