嵌入式固件差分升级的文件生成和合成的方法和系统的制作方法

文档序号:6624633阅读:1519来源:国知局
嵌入式固件差分升级的文件生成和合成的方法和系统的制作方法
【专利摘要】本发明公开了嵌入式固件差分升级的文件生成和合成的方法和系统,包括以下步骤:A、差分升级文件的生成:根据终端已有固件和需要更新的固件比较出二者不同的数据字节,以数据字节为单位取得删除包和增添包,将删除包与增添包合成为升级包;B、下载所述升级包;C、差分升级文件的合成:将所述升级包解析为删除包和增添包,将删除包、增添包以及终端已有固件合成需要更新的固件。本发明通过区分两个文件的中同与不同的数据字节,来打包数据进行差分升级的升级包,压缩升级文件大小,缩短升级时间和减少资源消耗,实现固件的快速升级。
【专利说明】嵌入式固件差分升级的文件生成和合成的方法和系统

【技术领域】
[0001]本发明涉及通过空中接口技术,对嵌入式固件进行更新升级,具体是一种嵌入式固件差分升级文件的生成方法,以及通过差分升级文件合成相应嵌入式固件的合成方法和系统。

【背景技术】
[0002]随着物联网产业的兴起,低功耗无线通信技术蓝牙和Zigbee的发展,需求日新月异,需要能快速有效的对嵌入式产品进行升级。传统的一对一式的固件升级技术,升级过程占用太多资源,耗费数据流量巨大,升级过程缓慢,已经越来越不能满足客户的需求。
[0003]因此出现了一种通过差分包升级的方式,已经被越来越多的人采用。但是原有的差分包升级方式,针对手机等大型嵌入式软件产品,不能适合基于低速率低功耗的蓝牙和zigbee等无线通信技术空中接口升级的产品。如申请号为201210209785.4的发明专利《升级包生成方法和系统、动态文件差分升级的方法和终端》,这种升级方式是针对大型嵌入式系统固件,这种固件带文件系统的,升级可控制区分的是每一个文件。
[0004]如图1所示,该专利打包升级包的思想是,如果终端(手机)上已经拥有这个文件,打包升级包的时候,就不用打包进去,如果没有这个文件,他就把它打包到升级包里面去。这样,因为大多数文件是相同的,没有改变的,不同的文件就比较少,所以打包的升级包也是比较小的,能在一定程度上缩短升级时间和减少资源消耗。
[0005]这个升级思想比较宏观。就好像一个书柜,我们要更新书柜上面的书籍,就会看着书籍的名字和封面,就可以把需要撤下来的书籍就拿下来,需要更新上去的书籍就放上去。
[0006]这种升级思想虽然在一定程度上在一定程度上缩短升级时间和减少资源消耗,但仍未找到最为有效的方案,因为单个文件不是最小的数据单位,单个文件它包含大量的字节数据,当升级过程中需要更新的只是某些字节数据时,更新整个文件也是极其缓慢和浪费资源的,尤其是在低速率低功耗的蓝牙和zigbee等无线通信技术空中接口升级的产品O


【发明内容】

[0007]为解决上述技术问题,本发明的目的是提供一种可实现快速升级的嵌入式固件差分升级文件生成和合成的方法和系统。
[0008]本发明采用的技术方案是:
嵌入式固件差分升级的文件生成和合成的方法,包括以下步骤:
A、差分升级文件的生成:根据终端已有固件和需要更新的固件比较出二者不同的数据字节,以数据字节为单位取得删除包和增添包,将删除包与增添包合成为升级包;
B、下载所述升级包;
C、差分升级文件的合成:将所述升级包解析为删除包和增添包,将删除包、增添包以及终端已有固件合成需要更新的固件。
[0009]进一步的,所述步骤A中删除包包含的内容为终端已有固件有而需要更新的固件没有的,增添包包含的内容为终端已有固件没有而需要更新的固件有的。
[0010]进一步的,所述步骤C中终端已有固件参与合成的内容为终端已有固件和需要更新的固件二者相同的部分。
[0011]其中,所述升级包还包括升级包长度、升级包类型、删除包长度、增添包长度、升级固件校验值、文件校验。
[0012]进一步的,所述步骤B下载完成之后、所述步骤C解析升级包之前设置有一校验程序,当校验成功则进入步骤C。
[0013]本发明还包括与上述方法基于同一个发明构思的一种嵌入式固件差分升级的文件生成和合成的系统,包括至少一服务器和/或主机设备端、以及与服务器和/或主机设备端交互的至少一终端;
该服务器和/或主机设备端用于差分升级文件的生成:根据终端已有固件和需要更新的固件比较出二者不同的数据字节,以数据字节为单位取得删除包和增添包,将删除包与增添包合成为升级包;
该终端包括一协议栈模块、一升级包解析模块、一固件组装模块、一固件升级模块,其中,协议栈模块与服务器和/或主机设备端交互以下载所述升级包,升级包解析模块将所述升级包解析为删除包和增添包,固件组装模块将删除包、增添包以及终端已有固件合成需要更新的固件,固件升级模块将终端已有固件升级为需要更新的固件。
[0014]进一步的,所述删除包包含的内容为终端已有固件有而需要更新的固件没有的,增添包包含的内容为终端已有固件没有而需要更新的固件有的。
[0015]进一步的,所述终端已有固件参与合成的内容为终端已有固件和需要更新的固件二者相同的部分。
[0016]其中,所述升级包还包括升级包长度、升级包类型、删除包长度、增添包长度、升级固件校验值、文件校验。
[0017]进一步的,下载升级包完成之后、解析升级包之前设置有一校验程序,当校验成功则进入解析环节。
[0018]本发明的有益效果:
本发明提出一种嵌入式固件差分升级文件生成和合成的方法和系统,通过区分两个文件的中同与不同的数据字节,来打包数据进行差分升级的升级包,压缩升级文件大小,缩短升级时间和减少资源消耗,实现固件的快速升级。

【专利附图】

【附图说明】
[0019]下面结合附图对本发明的【具体实施方式】做进一步的说明。
[0020]图1是现有固件升级方案流程图;
图2是本发明DBOTA升级系统结构图;
图3是固件升级包结构图;
图4是本发明实施例固件升级包生成装置框图;
图5是本发明实施例固件升级包合成装置框图;
图6是本发明实施例所述固件升级方案流程图。
[0021]

【具体实施方式】
首选,需要说明的是,在文件系统中,静态文件是指在终端中版本发布时就已经确定,且不会由于用户使用/修改配置等因素改变的文件,这种文件用户不能通过菜单等方式修改,对于同一个版本的不同终端来说,是相同的,本实施例中所述的固件即静态文件。
[0022]参考图2所示,为本发明的一种嵌入式固件差分升级的文件生成和合成的系统,包括一服务器和/或主机设备端、以及与服务器和/或主机设备端交互的一终端,该终端为客户端或终端设备端;
该服务器和/或主机设备端用于差分升级文件的生成:根据终端已有固件和需要更新的固件比较出二者不同的数据字节,以数据字节为单位取得删除包和增添包(二者称为差分包),将删除包与增添包合成为升级包;
该终端包括一协议栈模块、一升级包解析模块、一固件组装模块、一固件升级模块,其中,协议栈模块与服务器和/或主机设备端交互以下载所述升级包,升级包解析模块将所述升级包解析为删除包和增添包,固件组装模块将删除包、增添包以及终端已有固件合成需要更新的固件,并通知协议栈模块固件的组装结果;固件升级模块将终端已有固件升级为需要更新的固件,并通知协议栈模块固件的升级结果。
[0023]在取差分包的过程中,其工作原理是通过对原始固件进行操作,删除不同的部分,添加没有的部分,保持相同的部分,从而获得了我们需要进行升级的固件。故所述删除包包含的内容为终端已有固件有而需要更新的固件没有的,增添包包含的内容为终端已有固件没有而需要更新的固件有的,而所述终端已有固件参与合成的内容为终端已有固件和需要更新的固件二者相同的部分。
[0024]其中,如图3所示,所述升级包包括升级包长度、升级包类型、删除包、增添包、删除包长度、增添包长度、升级固件校验值、文件校验。
[0025]本发明还包括与上述系统基于同一个发明构思的嵌入式固件差分升级的文件生成和合成的方法,包括以下步骤:
A、差分升级文件的生成:如图4,根据终端已有固件和需要更新的固件比较出二者不同的数据字节,以数据字节为单位取得删除包和增添包(二者称为差分包),将删除包与增添包合成为升级包;
B、下载所述升级包;
C、差分升级文件的合成:如图5,将所述升级包解析为删除包和增添包,将删除包、增添包以及终端已有固件合成需要更新的固件。
[0026]在上述取差分包的过程中,其工作原理是通过对原始固件进行操作,删除不同的部分,添加没有的部分,保持相同的部分,从而获得了我们需要进行升级的固件。故所述步骤A中删除包包含的内容为终端已有固件有而需要更新的固件没有的,增添包包含的内容为终端已有固件没有而需要更新的固件有的;所述步骤C中终端已有固件参与合成的内容为终端已有固件和需要更新的固件二者相同的部分。
[0027]其中,如图3,所述升级包还包括升级包长度、升级包类型、删除包、增添包、删除包长度、增添包长度、升级固件校验值、文件校验。
[0028]如图6所示,本发明实施例所述固件升级方案流程,包括具体步骤:
Ql、开始升级流程; Q2、终端接收到主机或服务器升级固件的通知;
Q3、协议栈模块与服务器交互通信,下载升级包;
Q4,检验是否下载完成,若完成则进入下一步,否则返回Q3 ;
Q5、通过升级包的文件校验进行校验,校验通过进入下一步,否则跳至Q13 ;
Q6、解析模块对升级包进行解析;
Q7、判断是否解析成功,若解析成功则进入下一步,否则跳至Q13 ;
Q8、固件组装模块对解析的数据和原有固件数据进行组装;
Q9、检验是否组装成功,若组装成功则进入下一步,否则跳至Q13 ;
Q10、固件升级模块使用组装后的固件进行升级;
Q11、检验是否升级成功,若升级成功则进入Q13,否则进入Q12;
Q12、终端或客户端重启,回滚到升级前的系统;
Q13、上报服务器升级结果;
如上所述,本发明提出一种嵌入式固件差分升级文件生成和合成的方法和系统,通过区分两个文件的中同与不同的数据字节,来打包数据进行差分升级的升级包,压缩升级文件大小,相比传统技术以文件为最小单位差分升级,本发明可以更好的缩短升级时间和减少资源消耗,实现固件的快速升级,尤其是适用于中小型嵌入式系统固件,当然大型嵌入式系统也是可以实现的,升级小型的嵌入式产品一般只需要一个文件就可以了。当然,我们升级的方法,升级两个,三个,多个的文件也是没有问题的。
[0029]以上所述仅为本发明的优先实施方式,本发明并不限定于上述实施方式,只要以基本相同手段实现本发明目的的技术方案都属于本发明的保护范围之内。
【权利要求】
1.嵌入式固件差分升级的文件生成和合成的方法,其特征在于包括以下步骤: A、差分升级文件的生成:根据终端已有固件和需要更新的固件比较出二者不同的数据字节,以数据字节为单位取得删除包和增添包,将删除包与增添包合成为升级包; B、下载所述升级包; C、差分升级文件的合成:将所述升级包解析为删除包和增添包,将删除包、增添包以及终端已有固件合成需要更新的固件。
2.根据权利要求1所述的嵌入式固件差分升级的文件生成和合成的方法,其特征在于:所述步骤A中删除包包含的内容为终端已有固件有而需要更新的固件没有的,增添包包含的内容为终端已有固件没有而需要更新的固件有的。
3.根据权利要求2所述的嵌入式固件差分升级的文件生成和合成的方法,其特征在于:所述步骤C中终端已有固件参与合成的内容为终端已有固件和需要更新的固件二者相同的部分。
4.根据权利要求1所述的嵌入式固件差分升级的文件生成和合成的方法,其特征在于:所述升级包还包括升级包长度、升级包类型、删除包长度、增添包长度、升级固件校验值、文件校验。
5.根据权利要求4所述的嵌入式固件差分升级的文件生成和合成的方法,其特征在于:所述步骤B下载完成之后、所述步骤C解析升级包之前设置有一校验程序,当校验成功则进入步骤C。
6.嵌入式固件差分升级的文件生成和合成的系统,其特征在于: 包括至少一服务器和/或主机设备端、以及与服务器和/或主机设备端交互的至少一终端; 该服务器和/或主机设备端用于差分升级文件的生成:根据终端已有固件和需要更新的固件比较出二者不同的数据字节,以数据字节为单位取得删除包和增添包,将删除包与增添包合成为升级包; 该终端包括一协议栈模块、一升级包解析模块、一固件组装模块、一固件升级模块,其中,协议栈模块与服务器和/或主机设备端交互以下载所述升级包,升级包解析模块将所述升级包解析为删除包和增添包,固件组装模块将删除包、增添包以及终端已有固件合成需要更新的固件,固件升级模块将终端已有固件升级为需要更新的固件。
7.根据权利要求6所述的嵌入式固件差分升级的文件生成和合成的系统,其特征在于:所述删除包包含的内容为终端已有固件有而需要更新的固件没有的,增添包包含的内容为终端已有固件没有而需要更新的固件有的。
8.根据权利要求7所述的嵌入式固件差分升级的文件生成和合成的系统,其特征在于:所述终端已有固件参与合成的内容为终端已有固件和需要更新的固件二者相同的部分。
9.根据权利要求6所述的嵌入式固件差分升级的文件生成和合成的系统,其特征在于:所述升级包还包括升级包长度、升级包类型、删除包长度、增添包长度、升级固件校验值、文件校验。
10.根据权利要求9所述的嵌入式固件差分升级的文件生成和合成的系统,其特征在于:下载升级包完成之后、解析升级包之前设置有一校验程序,当校验成功则进入解析环 节。
【文档编号】G06F9/445GK104184814SQ201410422666
【公开日】2014年12月3日 申请日期:2014年8月25日 优先权日:2014年8月25日
【发明者】卢军营, 沈阜山 申请人:中山市永衡日用制品有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1