产品设备远程固件升级方法及系统与流程

文档序号:11154417阅读:347来源:国知局
产品设备远程固件升级方法及系统与制造工艺

本发明涉及固件升级技术领域,尤其涉及一种产品设备远程固件升级方法及系统。



背景技术:

固件升级,指的是对硬件设备的内嵌固件进行升级。固件升级可以完善机器功能、增强机器稳定性、修补机器漏洞。由于高版本常常修复低版本的部分BUG(漏洞),所以经历了固件升级的升级版本,一般都会比原版本的性能更好,得到优化的效果,用户也能有更好的体验。

由于固件升级中升级的硬件设备往往是不够智能的硬件设备,尤其是产品设备,难以像软件升级的控制方式一般,在发布新版本之后,通过智能终端自动检测版本信息,接收用户输入的更新指令,然后再进行更新。产品设备为实现具体业务的硬件设备,如可以为电视机、洗衣机、冰箱、电饭锅、空调等家用硬件产品设备,也可以为在工业上进行业务操作的工业硬件产品设备。因此,对于产品设备无法自动检测版本信息的情况下,需要通过人工的方式逐一到现场进行每个产品设备的升级控制,该方式人力成本高。



技术实现要素:

基于此,有必要提供一种节约人力成本的产品设备远程固件升级方法及系统。

一种产品设备远程固件升级方法,包括:

接收通信设备发送的升级数据包;所述通信设备发送的升级数据包,包括升级固件的固件代码标识、版本号及第一校验码;

根据接收的升级数据包通过所述通信设备从所述服务平台获取所述固件代码标识及所述版本号对应的固件,并对获取的固件进行校验得到第二校验码;

若所述第一校验码与所述第二校验码一致,则进行固件升级。

一种产品设备远程固件升级系统,包括产品设备;所述产品设备包括:

数据包接收模块,用于接收通信设备发送的升级数据包;所述通信设备发送的升级数据包,包括升级固件的固件代码标识、版本号及第一校验码;

校验码获取模块,用于根据接收的升级数据包通过所述通信设备从所述服务平台获取所述固件代码标识及所述版本号对应的固件,并对获取的固件进行校验得到第二校验码;

固件升级模块,用于若所述第一校验码与所述第二校验码一致,则进行固件升级。

上述产品设备远程固件升级方法及装置,接收通信设备发送的升级数据包,根据接收的升级数据包获取固件代码标识及版本号对应的固件,并在获取的固件通过检验时,进行固件升级。如此,实现产品设备的远程固件升级,无需通过人工的方式逐一到现场进行每个产品设备的固件升级。因此,该产品设备远程固件升级方法及装置省去了专人亲临现场升级的麻烦,可以节约人力成本、提高升级效率。

附图说明

图1为一实施例的产品设备远程固件升级方法的流程图;

图2为图1的产品设备远程固件升级方法的一个步骤的具体流程图;

图3为另一实施例的产品设备远程固件升级方法的流程图;

图4为一实施例的产品设备远程固件升级系统的结构图;

图5为图4的产品设备远程固件升级系统的一个模块的单元结构图;

图6为另一实施例的产品设备远程固件升级系统的结构图。

具体实施方式

为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳的实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“或/及”包括一个或多个相关的所列项目的任意的和所有的组合。

为方便说明,首先介绍本发明的运行环境,包括服务平台、通信设备及产品设备。其中,服务平台为存储有升级固件及升级固件的固件信息、升级对象信息的服务器,优选为云服务器,具体可以为GDCS(Gizwits Device Connection System,机智云设备接入系统)服务器;升级对象信息为产品设备的设备信息,设备信息包括产品设备对应的通信设备的地址信息,优选为MAC地址(Media Access Control或者Medium Access Control地址,媒体访问控制,或称为物理地址、硬件地址,用来定义网络设备的位置)。通信设备是可以与交互平台及服务平台进行通信的设备。通信设备可以为WiFi(WIreless-FIdelity,无线保真)模块,WiFi模块存储有实现具体通信功能的固件。产品设备包括设备MCU(Microcontroller Unit,微控制单元),设备MCU存储有实现具体作业功能的固件。具体的作业功能可以为电视机、洗衣机、冰箱、电饭锅、空调或者工业上的业务操作的对应功能。

如图1所示,本发明一实施例的产品设备远程固件升级方法,运行于产品设备上,包括:

S110:接收通信设备发送的升级数据包。通信设备发送的升级数据包,包括升级固件的固件代码标识、版本号及第一校验码。

服务平台根据升级对象信息以及升级固件的固件代码标识、版本号及第一校验码,发送升级数据包至通信设备。其中,第一校验码为服务平台对升级固件进行校验得到的校验码。服务平台将第一校验码及固件代码标识、版本号封装形成升级数据包,发送至升级对象信息对应的通信设备。通信设备接收该升级数据包,之后将接收的升级数据包广播至与通信设备连接的产品设备。可以理解地,在本实施例中,与同一个通信设备连接的产品设备可以为同一类产品设备,固件升级的过程对与该通信设备连接的产品设备均进行固件升级。如此,方便统一管理。

具体地,服务平台对升级固件进行校验得到第一校验码;将升级数据信息,即第一校验码、升级固件的固件代码标识及版本号,形成升级数据包,发送至MAC地址对应的通信设备。

S130:根据接收的升级数据包通过通信设备从服务平台获取固件代码标识及版本号对应的固件,并对获取的固件进行校验得到第二校验码。

产品设备根据接收的升级数据包通过通信设备从服务平台获取固件代码标识及版本号对应的固件,并对获取的固件进行校验得到第二校验码。

S150:若第一校验码与第二校验码一致,则进行固件升级。

如此,确定产品设备接收到的升级数据包中包含的服务平台对升级固件进行校验得到的第一校验码与产品设备接收到的升级固件并对其进行校验得到的第二校验码一致,从而,确定接收到的升级数据包及升级固件无误,产品设备便进行固件升级。

上述产品设备远程固件升级方法,接收通信设备发送的升级数据包,根据接收的升级数据包获取固件代码标识及版本号对应的固件,并在获取的固件通过检验时,进行固件升级。如此,实现产品设备的远程固件升级,无需通过人工的方式逐一到现场进行每个产品设备的固件升级。因此,该产品设备远程固件升级方法省去了专人亲临现场升级的麻烦,可以节约人力成本、提高升级效率。

请参阅图2,在其中一个实施例中,若第一校验码与第二校验码一致,则产品设备进行固件升级的步骤,包括:

S251:若第一校验码与第二校验码一致,将接收的升级数据包存储至临时存放区,并运行初运行区中的固件。

S253:当获取的固件是对自身进行升级的固件时,将获取的固件存储至升级后运行区。

S255:对升级后运行区中存储的固件进行校验得到第三校验码。

S257:当第三校验码与第一校验码一致时,将临时存储区的升级数据包存储至升级后运行区,并切换至升级后运行区运行。

可以理解地,在本实施例中,产品设备包括初运行区、临时存放区及升级后运行区。其中,初运行区为出厂时烧录产品设备对应的固件的运行区域;升级后运行区为后续对产品备进行升级之后,产品设备的运行区域;临时存放区用于存储一些临时文件或数据。进一步地,当第一校验码与第二校验码一致,将接收的升级数据包存储至产品设备的临时存放区,并运行产品设备的初运行区中的固件,然后确定根据接收的升级数据包从服务平台获取固件代码标识及版本号对应的固件是否为升级自身。在确定为升级自身时,产品设备进行固件升级。具体地,产品设备进行固件升级的步骤包括:产品设备将获取的固件存储至产品设备中的升级后运行区;产品设备将产品设备中临时存储区的升级数据包存储至升级后运行区,并切换至升级后运行区运行。更具体地,产品设备将获取的固件存储至产品设备中的升级后运行区之后,对升级后运行区中存储的固件进行校验得到第三校验码;当第三校验码与第一校验码一致时,产品设备将产品设备中临时存储区的升级数据包存储至升级后运行区,并切换至升级后运行区运行。如此,确保升级后运行区中存储的固件的校验码与服务平台发送至产品设备的升级数据包中的校验码一致,从而确保升级后运行区中的升级数据包及固件无误,也即,保证传输的准确性和成功率,才运行升级后运行区,实现产品设备的远程固件升级。

开始升级但未升级完成之前产品设备中运行的是初运行区的固件,当升级数据包及获取的固件存储至升级后运行区后,才切换至升级后运行区运行,如果升级数据包或/及获取的固件未成功存储至升级后运行区,则保持运行初运行区的固件。如此,保证产品设备在因断电或数据传输错误/失败情况下产品设备仍能正常运行,提高了产品设备的鲁棒性。

在其中一个具体实施例中,步骤S257,包括:

当第三校验码与存储在临时存放区的第一校验码一致时,将临时存储区的升级数据包存储至升级后运行区;

当存储至升级后运行区中的第一校验码与第三校验码一致时,切换至升级后运行区运行。

如此,保证升级后运行区中的第一校验码与升级后运行区中的固件的第三校验码一致,从而确保产品设备升级后运行区中的升级数据包及固件无误。

优选地,上述实施例中的校验码可以为MD5校验码。

产品设备可以通过固件代码标识确定是否为升级自身。具体地,可以通过比对产品设备中当前运行固件的固件代码标识是否与接收的升级数据包中的固件代码标识一致来确定是否为升级自身。若一致,则为升级自身,否则不为升级自身。当确定为升级自身时,进行固件升级。可以理解地,产品设备也可以通过设备标识确定是否为升级自身,即通过比对产品设备的设备标识与接收的升级数据包中的设备标识是否一致来确定是否为升级自身,或产品设备的设备标识是否属于接收的升级数据包中的设备标识来确定是否为升级自身。

可以理解地,产品设备的临时存放区和升级后运行区可以合并为一个f l ash(闪存)区域,该flash区域可以命名为升级后运行区。此时,步骤S251和S253可合并为:

若所述第一校验码与所述第二校验码一致,所述产品设备将接收的升级数据包存储至所述产品设备的升级后运行区,并运行所述产品设备的初运行区中的固件。

请参阅图3,在其中一个实施例中,接收通信设备发送的升级数据包的步骤之前,还包括:

S304:服务平台获取升级数据信息;升级数据信息包括升级固件的固件代码标识、版本号及第一校验码。

升级数据信息可以时用户输入至服务平台,或者传输至服务平台的,还可以是保存在服务平台中的预设存储位置的。

S306:服务平台根据获取的升级数据信息中的固件代码标识、版本号,获取升级对象信息。

可以理解地,服务平台是存储有升级固件的固件信息、升级对象信息的服务器。其中,固件信息包括固件代码标识、版本号、固件大小;具体地,固件代码标识可以为固件代码名称、固件代码编号等。升级对象信息包括需要升级的产品设备的设备信息,设备信息包括该产品设备对应的通信设备的MAC地址。进一步地,设备信息还可以包括设备标识或/及产品设备对应的固件的固件代码标识。

S307:服务平台根据升级对象信息及升级数据信息,发送升级数据包至通信设备。

可以理解地,升级数据包包括升级数据信息。具体地,根据升级数据信息形成升级数据包;根据升级对象信息将升级数据包发送至升级对象信息所对应的通信设备。

S309:通信设备将接收的升级数据包发送至升级对象信息所对应的产品设备。

可以理解地,升级对象信息对应的产品设备可以为与升级对象信息所对应的通信设备连接的所有产品设备;也可以为升级对象信息中具体包括的设备标识或/及产品设备对应的固件的固件代码标识所对应的产品设备。

请继续参阅图3,在其中一个实施例中,为了使用户可以通过交互平台查看到升级结果,还包括:

S370:产品设备升级完成后,通过通信设备发送升级反馈信息至服务平台。升级反馈信息包括升级完成后通信设备中当前运行固件的固件代码标识及版本号。

S390:服务平台接收到升级反馈信息后,根据当前运行固件的固件代码标识及版本号与升级固件的固件代码标识及版本号是否一致,确定升级结果。

具体地,当当前运行固件的固件代码标识及版本号与升级固件的固件代码标识及版本号一致时,升级结果为升级成功;当当前运行固件的固件代码标识或版本号与升级固件的固件代码标识或版本号不一致时,升级结果为升级失败。

请继续参阅图3,在其中一个实施例中,为方便用户在控制通信设备进行远程固件升级时,方便地确定升级对象,服务平台获取升级数据信息的步骤之前,还包括:

S301:服务平台接收升级对象查询指令,并根据升级对象查询指令确定升级对象集合信息。

升级对象查询指令是用户输入至服务平台、针对升级对象的查询指令。具体地,升级对象查询指令包括目标升级对象的固件代码标识、版本号、条形码、产品类型。如此,用户无需记住每一个目标升级对象的具体MAC地址,便可以通过目标升级对象的固件代码标识、版本号、条形码及产品类型设置筛选条件,进而通过服务平台查找到符合筛选条件的升级对象信息的集合,即升级对象集合信息。可以理解地,在其中一个具体实施例中,升级对象查询指令可以包括该筛选条件。

S303:服务平台在确定升级对象集合信息的基础上,接收升级数据指令。

用户可以通过确定的升级对象集合信息,输入升级数据指令至服务平台。服务平台在升级对象集合信息的基础上,接收升级数据指令。可以理解地,升级数据指令中包括升级对象信息。如此,用户无需查找或记忆各个升级对象的具体信息,从而方便用户使用,提高升级速度。

此时,步骤S304为:服务平台根据升级数据指令获取升级数据信息。

请参阅图4,一种产品设备远程固件升级系统,包括产品设备;产品设备包括:

数据包接收模块410,用于接收通信设备发送的升级数据包;通信设备发送的升级数据包,包括升级固件的固件代码标识、版本号及第一校验码;

校验码获取模块430,用于根据接收的升级数据包通过通信设备从服务平台获取固件代码标识及版本号对应的固件,并对获取的固件进行校验得到第二校验码;

固件升级模块450,用于若第一校验码与第二校验码一致,则进行固件升级。

上述通信设备远程固件升级系统,可以实现产品设备的远程固件升级,无需通过人工的方式逐一到现场进行每个硬件设备的升级控制,因此,该产品设备远程固件升级系统省去了专人亲临现场升级的麻烦,可以节约人力成本、提高升级效率。

请参阅图5,在其中一个实施例中,固件升级模块450,包括:

数据包临时存储单元451,用于若第一校验码与第二校验码一致,将接收的升级数据包存储至临时存放区,并运行初运行区中的固件;

固件升级存储单元453,用于当获取的固件是对自身进行升级的固件时,将获取的固件存储至升级后运行区;

检验码升级确定单元455,用于对升级后运行区中存储的固件进行校验得到第三校验码;

数据包升级存储单元457,用于当第三校验码与第一校验码一致时,将临时存储区的升级数据包存储至升级后运行区,并切换至升级后运行区运行。

请参阅图6,在其中一个实施例中,通信设备远程固件升级系统,包括:服务平台200、通信设备300及产品设备400;服务平台200包括升级信息接收模块240、对象信息获取模块260、升级数据包发送模块270;

升级信息获取模块240,用于获取升级数据信息;升级数据信息包括升级固件的固件代码标识、版本号及第一校验码;

对象信息获取模块260,用于根据接收的升级数据信息中的固件代码标识、版本号,获取升级对象信息;

升级数据包发送模块270,用于根据升级对象信息及升级数据信息,发送升级数据包至通信设备;

通信设备300,用于通信设备将接收的升级数据包发送至升级对象信息所对应的产品设备400。

进一步地,升级数据包发送模块270,包括:

第一子单元(图未示),用于当第三校验码与存储在临时存放区的第一校验码一致时,将临时存储区的升级数据包存储至升级后运行区;

第二子单元(图未示),用于当存储至升级后运行区中的第一校验码与第三校验码一致时,切换至升级后运行区运行。

在其中一个实施例中,产品设备400还包括反馈信息发送模块470;服务平台还包括升级结果反馈模块290;

反馈信息发送模块470,用于在通信设备400升级完成后,通过通信设备300发送升级反馈信息至服务平台200;升级反馈信息包括升级完成后通信设备400中当前运行固件的固件代码标识及版本号;

升级结果反馈模块290,用于在接收到升级反馈信息后,根据当前运行固件的固件代码标识及版本号与升级固件的固件代码标识及版本号是否一致,确定升级结果,并将升级结果。

在其中一个实施例中,服务平台200还包括对象集合确定模块201及对象指令接收模块203;

对象集合确定模块201,用于接收升级对象查询指令,并根据升级对象查询指令确定升级对象集合信息;

对象指令接收模块203,用于在确定升级对象集合信息的基础上,接收升级数据指令;

升级信息获取模块240,用于根据升级数据指令获取升级数据信息。

由于上述系统与上述方法对应,因此,对于系统的细节技术特征不再一一赘述。

以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出多个变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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