智能家电中嵌入式设备及其在线升级方法、升级服务器与流程

文档序号:20346251发布日期:2020-04-10 22:38阅读:184来源:国知局
智能家电中嵌入式设备及其在线升级方法、升级服务器与流程

本发明涉及智能家电领域,尤其涉及一种智能家电中嵌入式设备及其在线升级方法、升级服务器。



背景技术:

随着智能技术的发展,智能家电中广泛应用嵌入式设备(如片上计算机类系统)。

智能家电中嵌入式设备运行一段时间常需要在线升级。相关的在线升级方法为,从互联网升级服务器下载全部升级文件到嵌入式设备外存(如flash)存储,根据下载的全部升级文件进行升级操作。

这种在线升级方法,下载全部升级文件,嵌入式设备需预留足够大的可读写存储空间存储全部升级文件,由于全部升级文件较大,故需预留的存储空间也较大。对大部分嵌入式设备而言,为满足在线升级的需求预留较大的存储空间,易造成存储资源浪费。



技术实现要素:

本发明实施例提供一种智能家电中嵌入式设备及其在线升级方法、升级服务器,能够减少占用升级过程中嵌入式设备的存储空间。

本发明实施例采用如下技术方案:

一种智能家电中嵌入式设备在线升级方法,包括:

智能家电中嵌入式设备向升级服务器发送升级请求,所述升级请求携带所述嵌入式设备的当前版本号及数据包占用空间值;

所述嵌入式设备接收所述升级服务器根据所述当前版本号确定所述嵌入式设备需要升级后确定升级数据并返回升级消息,所述升级消息携带所述升级数据拆分的数据包个数,所述数据包个数根据所述升级数据总占用空间值及所述数据包占用空间值确定,所述升级数据为所述当前版本号升级到所述升级服务器存储的最新版本号所需的数据,所述升级数据由所述升级服务器比对所述当前版本号与所述升级服务器存储的最新版本号后确定;

所述嵌入式设备按照所述数据包个数逐个向所述升级服务器获取数据包,将所述获取的数据包逐个烧写到本地,所述数据包由所述升级数据按照所述数据包占用空间值按照次序划分所述升级数据得到。

可选的,所述嵌入式设备按照所述数据包个数逐个向所述升级服务器获取数据包包括:

所述嵌入式设备向所述升级服务器获取当前数据包及当所述当前数据包对应的校验码;所述当前数据包由所述升级服务器拆分所述升级数据得到,所述当前数据包对应的校验码由所所述述升级服务器计算得到,所述当前数据包对应的校验码唯一;

所述嵌入式设备将所述当前数据包存入本地内存覆盖本地内存中所述当前数据的上一数据包。

可选的,所述将所述获取的数据包逐个烧写到本地包括:

所述嵌入式设备应用所述当前数据包对应的校验码验证所述当前数据包;

所述嵌入式设备在所述当前数据包通过验证后,将所述当前数据包烧写到本地外存。

可选的,所述嵌入式设备应用所述当前数据包对应的校验码验证所述当前数据包包括:

所述嵌入式设备应用hash计算得到本地校验码;

比对所述本地校验码与所述当前数据包对应的校验码,如所述本地校验码与所述当前数据包对应的校验码相同,则通过验证。

可选的,所述嵌入式设备向所述服务器获取当前数据包及当前数据包对应的校验码包括:

所述嵌入式设备向所述服务器发送当前数据包编号,触发所述服务器根据当前数据包编号获取当前数据包根据hash计算生成所述当前数据包对应的校验码;

所述嵌入式设备接收所述服务器发送的当前数据包及当前数据包对应的校验码。

可选的,所述本地外存划分出升级分区,所述升级分区存储所述当前数据的上一数据包,所述将所述当前数据包烧写到本地外存包括:

根据所述当前数据包的编号,将所述当前数据包烧写到所述升级分区并与所述升级分区中已存的所述上一数据包接续。

可选的,所述嵌入式设备在所述当前数据包未通过验证,则所述嵌入式设备重新向所述升级服务器发送所述根据所述当前数据包的编号,获取所述当前数据包。

一种智能家电中的嵌入式设备,所述嵌入式设备包括内存及外存,所述外存划分出boot分区模块和升级分区模块;

所述boot分区模块向升级服务器发送升级请求,所述升级请求携带所述嵌入式设备的当前版本号及数据包占用空间值;

所述boot分区模块接收所述升级服务器根据所述当前版本号确定所述嵌入式设备需要升级后返回的升级消息,所述升级消息携带升级数据拆分的数据包个数,所述数据包个数根据所述升级数据总占用空间值及所述数据包占用空间值确定,所述升级数据为所述当前版本号升级到所述升级服务器存储的最新版本号所需的数据,所述升级数据由所述升级服务器比对所述当前版本号与所述升级服务器存储的最新版本号后确定;

所述boot分区模块按照所述数据包个数逐个向所述升级服务器获取数据包,将所述获取的数据包逐个烧写到所述升级分区模块,所述数据包由所述升级数据按照所述数据包占用空间值按照次序划分所述升级数据得到。

可选的,所述boot分区模块按照所述数据包个数逐个向所述升级服务器获取数据包,将所述获取的数据包逐个烧写到本地包括:

所述boot分区模块向所述升级服务器获取当前数据包及当所述当前数据包对应的校验码,所述校验码由所述升级服务器对所述当前数据包的数据进行hash计算得到,所述当前数据包由所述升级服务器拆分所述升级数据得到,所述当前数据包对应的校验码由所所述述升级服务器计算得到,所述当前数据包对应的校验码唯一;

所述boot分区模块将所述当前数据包存入本地内存覆盖本地内存中所述当前数据的上一数据包,应用所述当前数据包对应的校验码验证所述当前数据包;

所述boot分区模块在所述当前数据包通过验证后,将所述当前数据包烧写到所述升级分区模块。

一种升级服务器,包括:

接收智能家电中嵌入式设备发送的升级请求,所述升级请求携带所述嵌入式设备的当前版本号及数据包占用空间值;

根据所述当前版本号确定所述嵌入式设备需要升级后,获取升级数据,按照所述数据包占用空间值按照次序拆分所述升级数据,得到拆分的数据包及数据包个数;

向所述嵌入式设备发送升级消息,所述升级消息携带升级数据所述数据包个数;使得所述嵌入式设备按照所述数据包个数逐个向所述升级服务器获取数据包,将所述获取的数据包逐个烧写到所述嵌入式设备。

基于上述技术方案的智能家电中嵌入式设备及其在线升级方法、升级服务器,智能家电中嵌入式设备向升级服务器发送携带嵌入式设备的当前版本号及数据包占用空间值的升级请求,接收升级服务器根据当前版本号确定嵌入式设备需要升级后返回的携带升级数据拆分的数据包个数,按照数据包个数逐个向升级服务器获取数据包,将获取的数据包逐个烧写到本地。从而实现根据嵌入式设备确定数据包占用空间值,并按照数据包占用空间值将升级数据拆分成多个数据包,逐个获取数据包烧写到本地,与将升级数据全部下载占用较多存储空间的升级方式相比,能够减少占用升级过程中嵌入式设备的存储空间。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1为本发明实施例提供的一种智能家电中嵌入式设备在线升级方法的流程图;

图2为本发明实施例提供的另一种智能家电中嵌入式设备在线升级方法的流程图;

图3为本发明实施例提供的一种智能家电中嵌入式设备在线升级包下载示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

本发明实施例的智能家电中嵌入式设备及其在线升级方法、升级服务器,升级过程中减少使用嵌入式设备的外部存储器的剩余存储空间,减少升级时对嵌入式设备的剩余外部存储空间要求,提高资源利用率,降低设备成本。

实施例1

如图1所示,本实施例提供一种智能家电中嵌入式设备在线升级方法,该方法包括:

11、智能家电中嵌入式设备向升级服务器发送升级请求,所述升级请求携带所述嵌入式设备的当前版本号及数据包占用空间值。

具体的,数据包占用空间值可以根据内存大小确定数据包占用空间值。

12、所述嵌入式设备接收所述升级服务器根据所述当前版本号确定所述嵌入式设备需要升级后确定升级数据并返回升级消息,所述升级消息携带所述升级数据拆分的数据包个数,所述数据包个数根据所述升级数据总占用空间值及所述数据包占用空间值确定,所述升级数据为所述当前版本号升级到所述升级服务器存储的最新版本号所需的数据,所述升级数据由所述升级服务器比对所述当前版本号与所述升级服务器存储的最新版本号后确定。

13、所述嵌入式设备按照所述数据包个数逐个向所述升级服务器获取数据包,将所述获取的数据包逐个烧写到本地,所述数据包由所述升级数据按照所述数据包占用空间值按照次序划分所述升级数据得到。

具体的,将所述获取的数据包逐个烧写到本地的外部存储(如flash),该外部存储相对于内存而言的存储区域,例如存储升级数据的区域。

上述智能家电中嵌入式设备及其在线升级方法、升级服务器,智能家电中嵌入式设备向升级服务器发送携带嵌入式设备的当前版本号及数据包占用空间值的升级请求,接收升级服务器根据当前版本号确定嵌入式设备需要升级后返回的携带升级数据拆分的数据包个数,按照数据包个数逐个向升级服务器获取数据包,将获取的数据包逐个烧写到本地。从而实现根据嵌入式设备确定数据包占用空间值,并按照数据包占用空间值将升级数据拆分成多个数据包,逐个获取数据包烧写到本地,与将升级数据全部下载占用较多存储空间的升级方式相比,能够减少占用升级过程中嵌入式设备的存储空间。

在一个实施例中,所述嵌入式设备按照所述数据包个数逐个向所述升级服务器获取数据包包括:

所述嵌入式设备向所述升级服务器获取当前数据包及当所述当前数据包对应的校验码。所述当前数据包由所述升级服务器拆分所述升级数据得到,所述当前数据包对应的校验码由所所述述升级服务器计算得到,所述当前数据包对应的校验码唯一。

所述嵌入式设备将所述当前数据包存入本地内存覆盖本地内存中所述当前数据的上一数据包。

这样,实现将升级数据划分为逐个数据包烧写,从而减少升级数据占用空间。

在一个实施例中,所述将所述获取的数据包逐个烧写到本地包括:

所述嵌入式设备应用所述当前数据包对应的校验码验证所述当前数据包;

所述嵌入式设备在所述当前数据包通过验证后,将所述当前数据包烧写到本地外存。该外存为本地的外部存储,该外部存储相对于内存而言的存储区域,例如存储升级数据的区域。

在一个实施例中,所述嵌入式设备应用所述当前数据包对应的校验码验证所述当前数据包包括:

所述嵌入式设备应用hash计算得到本地校验码;

比对所述本地校验码与所述当前数据包对应的校验码,如所述本地校验码与所述当前数据包对应的校验码相同,则通过验证。所述校验码由所述升级服务器对所述当前数据包的数据进行hash计算得到。

在一个实施例中,所述嵌入式设备向所述服务器获取当前数据包及当前数据包对应的校验码包括:

所述嵌入式设备向所述服务器发送当前数据包编号,触发所述服务器根据当前数据包编号获取当前数据包根据hash计算生成所述当前数据包对应的校验码;

所述嵌入式设备接收所述服务器发送的当前数据包及当前数据包对应的校验码。

在一个实施例中,所述本地外存划分出升级分区,所述升级分区存储所述当前数据的上一数据包,所述将所述当前数据包烧写到本地外存包括:

根据所述当前数据包的编号,将所述当前数据包烧写到所述升级分区并与所述升级分区中已存的所述上一数据包接续。

在一个实施例中,所述嵌入式设备在所述当前数据包未通过验证,则所述嵌入式设备重新向所述升级服务器发送所述根据所述当前数据包的编号,获取所述当前数据包。

本实施例的智能家电中嵌入式设备及其在线升级方法,智能家电中嵌入式设备向升级服务器发送携带嵌入式设备的当前版本号及数据包占用空间值的升级请求,接收升级服务器根据当前版本号确定嵌入式设备需要升级后返回的携带升级数据拆分的数据包个数,按照数据包个数逐个向升级服务器获取数据包,将获取的数据包逐个烧写到本地。从而实现根据嵌入式设备确定数据包占用空间值,并按照数据包占用空间值将升级数据拆分成多个数据包,逐个获取数据包烧写到本地,与将升级数据全部下载占用较多存储空间的升级方式相比,能够减少占用升级过程中嵌入式设备的存储空间。

实施例2

本实施例提供一种智能家电中的嵌入式设备,该智能家电中的嵌入式设备可以用于实现上述实施例1的智能家电中嵌入式设备在线升级方法,所述嵌入式设备包括内存及外存,所述外存划分出boot分区模块和升级分区模块。该外存为本地的外部存储,该外部存储相对于内存而言的存储区域,例如存储升级数据的区域。

所述boot分区模块向升级服务器发送升级请求,所述升级请求携带所述嵌入式设备的当前版本号及数据包占用空间值。

所述boot分区模块接收所述升级服务器根据所述当前版本号确定所述嵌入式设备需要升级后返回的升级消息,所述升级消息携带升级数据拆分的数据包个数,所述数据包个数根据所述升级数据总占用空间值及所述数据包占用空间值确定,所述升级数据为所述当前版本号升级到所述升级服务器存储的最新版本号所需的数据,所述升级数据由所述升级服务器比对所述当前版本号与所述升级服务器存储的最新版本号后确定。

所述boot分区模块按照所述数据包个数逐个向所述升级服务器获取数据包,将所述获取的数据包逐个烧写到所述升级分区模块,所述数据包由所述升级数据按照所述数据包占用空间值按照次序划分所述升级数据得到。

在一个实施例中,所述boot分区模块按照所述数据包个数逐个向所述升级服务器获取数据包,将所述获取的数据包逐个烧写到本地包括:

所述boot分区模块向所述升级服务器获取当前数据包及当所述当前数据包对应的校验码,所述校验码由所述升级服务器对所述当前数据包的数据进行hash计算得到,所述当前数据包由所述升级服务器拆分所述升级数据得到,所述当前数据包对应的校验码由所所述述升级服务器计算得到,所述当前数据包对应的校验码唯一;

所述boot分区模块将所述当前数据包存入本地内存覆盖本地内存中所述当前数据的上一数据包,应用所述当前数据包对应的校验码验证所述当前数据包;

所述boot分区模块在所述当前数据包通过验证后,将所述当前数据包烧写到所述升级分区模块。

上述智能家电中的嵌入式设备在线升级方法的详细实现方案,参照上述实施例,本实施例不再赘述。

与上述智能家电中的嵌入式设备对应,本实施例提供一种升级服务器,包括:

接收智能家电中嵌入式设备发送的升级请求,所述升级请求携带所述嵌入式设备的当前版本号及数据包占用空间值;

根据所述当前版本号确定所述嵌入式设备需要升级后,比对所述当前版本号与所述升级服务器存储的最新版本号后确定升级数据,按照所述数据包占用空间值按照次序拆分所述升级数据,得到拆分的数据包及数据包个数;

向所述嵌入式设备发送升级消息,所述升级消息携带升级数据所述数据包个数;使得所述嵌入式设备按照所述数据包个数逐个向所述升级服务器获取数据包,将所述获取的数据包逐个烧写到所述嵌入式设备。

本实施例的智能家电中嵌入式设备及升级服务器,智能家电中嵌入式设备向升级服务器发送携带嵌入式设备的当前版本号及数据包占用空间值的升级请求,接收升级服务器根据当前版本号确定嵌入式设备需要升级后返回的携带升级数据拆分的数据包个数,按照数据包个数逐个向升级服务器获取数据包,将获取的数据包逐个烧写到本地。从而实现根据嵌入式设备确定数据包占用空间值,并按照数据包占用空间值将升级数据拆分成多个数据包,逐个获取数据包烧写到本地,与将升级数据全部下载占用较多存储空间的升级方式相比,能够减少占用升级过程中嵌入式设备的存储空间。

实施例3

本实施例提供一种智能家电中嵌入式设备在线升级方法,本实施例中的智能家电中的嵌入式设备200、升级服务器100可以为上述实施例提供的智能家电中的嵌入式设备、升级服务器。上述实施例的详细实现步骤也可以参照本实施例实现。

本实施例中,升级服务器200存放需要升级的文件,接收智能家电中嵌入式设备的升级文件下载请求,并根据请求的参数发送升级数据包及校验码。

智能家电中嵌入式设备100将外部存储空间分为boot分区模块、升级分区模块。boot分区模块用于引导系统,从升级服务器下载升级数据包,校验,烧写升级包,boot分区模块空间不可以在线升级;升级分区模块用于烧写的分区空间。

本实施例的智能家电中嵌入式设备在线升级方法,以智能家电中嵌入式设备与升级服务器间采用http协议通信为例。

如图2所示,该智能家电中嵌入式设备200在线升级方法包括:

31、智能家电中嵌入式设备200向升级服务器发送升级请求,该请求携带数据包占用空间值k及嵌入式设备当前版本号信息。

其中,数据包占用空间值k即分包大小k,可以根据本地运行情况确定但升级分包大小应小于剩余可用内存,具体实现时为防止内存不足,分包大小k可以为剩余内存的80%或者70%。

具体的,智能家电中嵌入式设备发送http请求,将请求内容智能家电中嵌入式设备当前软件版本号及分包大小k写入httpbody内容中,向升级服务器发送。

32、该升级服务器根据该嵌入式设备当前版本号信息确定嵌入式设备需要升级后,根据该数据包占用空间值k将升级数据划分为m个数据包。

具体的,该升级服务器将该嵌入式设备当前版本号信息与本地存储的升级数据对应的版本号比对,如本地存储的升级数据对应的版本号更新,则该嵌入式设备需要升级。反之,嵌入式设备不需要升级。

模块接收分包大小k,当前版本号信息,对比版本号,回复是否允许升级,当前升级文件版本号,当前升级文件分包数量。

33、该升级服务器向该嵌入式设备返回同意升级的消息,携带升级数据拆分的数据包总数n。

本实施例中,该升级数据拆分的数据包总数n可以携带在httpbody部分向该嵌入式设备发送,其他实施例中,该升级服务器还可以将升级文件版本号写入httpbody部分向该嵌入式设备发送。

本实施例中,如该嵌入式设备不需要升级,则向该嵌入式设备返回不同意升级的消息。

该升级服务器将本次升级数据总大小除以升级分包大小k,结果向上取整得到升级数据分包总数n。划分完成的n数据包,每个数据包具有校验码。

34、该嵌入式设备收到该升级服务器返回的同意升级的消息进入升级模式,向该升级服务器发送数据包编号m。

35、该升级服务器向该嵌入式设备返回数据包m及数据包m对应的校验码。

该升级数据服务器根据包编号m,分包大小,计算出据包编号m的开始地址,返相应位置的数据构成的数据包m,数据包m校验码。最后一个数据包包可小于k,以实际剩余数据大小为准。其中,数据包m对应的校验码为对数据包m的数据进行hash计算得出的值,计算方法包括但不限于md5算法。

具体的,该升级数据服务器将数据包m包含数据放入httpbody部分,计算校验码,放入自定义head部分返回到该嵌入式设备。

36、该嵌入式设备将数据包m存入本地内存覆盖本地内存中上一数据包,计算数据包m的校验码,与计算的数据包m的校验码与该升级服务器发送的数据包m对应的校验码相同,则将数据包m烧写到升级分区模块。

若校验码不同,则重新请求数据包m覆盖内存中的上一数据分包,可重复烧入数据包m,直到校验正确。

数据包m烧入后,向后移动烧写地址(k大小),其中,第一个数据包的烧写首地址由可以由升级分区模块确定。

参照本步骤,如图3所示,请求数据包m相邻的下一个数据包,覆盖内存中的数据包m,验证后将相邻的下一个数据包烧写到升级分区模块,这样逐个完成数据包烧写。

具体的,所述校验码为对升级分包的数据进行hash计算得出的值,包括但不限于md5算法。

37、该嵌入式设备将n个数据包均烧写到升级分区模块后,本次升级完成,结束升级模式。

本实施例的智能家电中嵌入式设备在线升级方法,智能家电中嵌入式设备向升级服务器发送携带嵌入式设备的当前版本号及数据包占用空间值的升级请求,接收升级服务器根据当前版本号确定嵌入式设备需要升级后返回的携带升级数据拆分的数据包个数,按照数据包个数逐个向升级服务器获取数据包,将获取的数据包逐个烧写到本地。从而实现根据嵌入式设备确定数据包占用空间值,并按照数据包占用空间值将升级数据拆分成多个数据包,逐个获取数据包烧写到本地,与将升级数据全部下载占用较多存储空间的升级方式相比,能够减少占用升级过程中嵌入式设备的存储空间。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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