一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种设备固件升级方法、装置及系统与流程

2022-04-02 02:05:25 来源:中国专利 TAG:


1.本技术涉及固件升级技术领域,特别涉及一种设备固件升级方法、装置及系统。


背景技术:

2.随着科技的发展,电器设备也在不断更新。然而在实际开发过程中,很难一次就把设备功能做全。为了解决设备出厂后还能对电器设备软件的系统更新、功能迭代,发展了ota(over-the-air technology空中下载)相关技术。ota是通过移动通信的空中接口对设备的数据和固件程序进行远程管理的技术。
3.目前采用ota升级固件时,通常会将旧固件存储在电器设备rom(read onlymemory,只读存储器)的一个区域,将下载的新固件存储在电器设备rom的另一个区域。这样在利用新固件升级失败时,就可以利用固件进行恢复。然而,这种方式对电器设备的rom容量要求非常高,容易在添加新功能时导致固件升级失败,从而一直停留在原始版本。
4.因此,业内亟需一种可以解决上述技术问题的技术方案。


技术实现要素:

5.本说明书实施例提供了一种设备固件升级方法、装置及系统,可以在添加新功能时降低固件升级失败率,提高用户体验。
6.本说明书提供的一种设备固件升级方法、装置及系统是包括以下方式实现的。
7.一种设备固件升级方法,包括:基于无线模块向服务器发送固件数据下载请求;接收所述服务器发送的固件更新数据;其中,所述固件更新数据存储于所述无线模块的存储器中;所述无线模块的存储器中还存储有固件备用数据;利用所述固件更新数据进行固件升级;当利用所述固件更新数据进行固件升级失败的情况下,利用所述固件备用数据进行固件恢复。
8.一种设备固件升级方法,包括:接收目标设备基于无线模块发送的固件数据下载请求;向所述目标设备发送固件更新数据,以使所述目标设备利用所述固件更新数据进行固件升级;当利用所述固件更新数据进行固件升级失败的情况下,以使所述目标设备利用固件备用数据进行固件恢复;其中,所述固件更新数据存储于所述无线模块的存储器中;所述无线模块的存储器中还存储有固件备用数据。
9.一种设备固件升级装置,包括:第一发送模块,用于基于无线模块向服务器发送固件数据下载请求;第一接收模块,用于接收所述服务器发送的固件更新数据;其中,所述固件更新数据存储于所述无线模块的存储器中;所述无线模块的存储器中还存储有固件备用数据;第一升级模块,用于利用所述固件更新数据进行固件升级;第一恢复模块,用于当利用所述固件更新数据进行固件升级失败的情况下,利用所述固件备用数据进行固件恢复。
10.一种设备固件升级装置,包括:第二接收模块,用于接收目标设备基于无线模块发送的固件数据下载请求;第二发送模块,用于向所述目标设备发送固件更新数据,以使所述目标设备利用所述固件更新数据进行固件升级;当利用所述固件更新数据进行固件升级失
败的情况下,以使所述目标设备利用固件备用数据进行固件恢复;其中,所述固件更新数据存储于所述无线模块的存储器中;所述无线模块的存储器中还存储有固件备用数据。
11.一种设备固件升级系统,包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现本说明书实施例中任意一个方法实施例的步骤。
12.本说明书提供的一种设备固件升级方法、装置及系统。一些实施例中,在设备需要进行固件升级时,通过将固件对应的更新数据、备用数据存储在无线模块的存储器中,不仅可以在升级失败时进行固件恢复,而且可以降低对设备的rom容量要求,从而在添加新功能时降低升级失败率,提高用户体验。目标设备在将固件数据存储在无线模块的存储器前,通过对固件数据进行校验,可以保证数据传输的安全,从而可以为后续固件升级成功提供保证。目标设备在从无线模块的存储器中获取固件更新数据进行固件升级前,通过再次校验,可以提高固件升级成功率。采用本说明书提供的实施方案,可以在添加新功能时降低固件升级失败率,提高用户体验。
附图说明
13.此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,并不构成对本说明书的限定。在附图中:
14.图1是本说明书提供的一种设备固件升级实施例的场景示意图;
15.图2是本说明书提供的一种适用于目标设备一侧的设备固件升级方法实施例的流程示意图;
16.图3是本说明书提供的一种适用于服务器一侧的设备固件升级方法实施例的流程示意图;
17.图4是本说明书提供的一种flash空间分布示意图;
18.图5是本说明书提供的一种设备固件升级方法具体实施例的流程示意图;
19.图6是本说明书提供的一种设备固件升级装置的一个实施例的模块结构示意图;
20.图7是本说明书提供的一种设备固件升级装置的一个实施例的模块结构示意图;
21.图8是本说明书提供的一种设备固件升级服务器的一个实施例的硬件结构框图。
具体实施方式
22.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书中的一部分实施例,而不是全部的实施例。基于本说明书中的一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书实施例保护的范围。
23.本说明书提供的一种实施方案可以应用到目标设备/服务器的系统构架中。所述目标设备可以是需要进行固件升级的设备,如冰箱、微波炉或者手机等。所述目标设备可以基于无线模块与远程的服务器进行通信连接,实现与所述服务器的数据传输。其中,目标设备中可以包括控制固件升级或恢复的组件,该组件可以控制固件在指定区域进行固件升级或恢复。指定区域可以是rom领域。无线模块可以是wi-fi模组等。无线模块可以置于目标设备中,也可以置于目标设备外侧。所述服务器可以包括单台计算机设备,也可以包括多个服
务器组成的服务器集群,或者分布式系统的服务器结构,如ca(certificate authority,证书颁发机构)服务器、ota服务器等。本说明书中服务器、目标设备包括从逻辑上划分的不同信息处理方。无线模块也可以进行数据的逻辑处理。
24.如图1所示,图1是本说明书提供的一种设备固件升级实施例的场景示意图。其中,服务器中可以预先存储有设备对应的固件信息,所述固件信息中可以包括固件版本信息和固件数据。固件版本信息可以包括固件版本号、固件版本号对应的信息等。固件数据也可以称为ota数据。固件数据可以包括固件更新数据、固件备用数据、固件包大小、固件包对应的预设校验值等。固件更新数据可以包括固件更新rom文件,固件备用数据可以包括固件备用rom文件。固件更新rom文件也可以称为更新固件包,固件备用rom文件也可以称为备用固件包。不同设备可以通过设备的标识进行识别,可以预先将设备的标识与对应的固件信息进行关联绑定。其中,目标设备的标识可以由字符、数字、字母等一个或多个组成。其中,固件是指设备内部保存的设备驱动程序,通过固件,操作系统可以按照标准的设备驱动实现特定机器的运行动作,比如光驱、刻录机等都有内部固件。在硬件设备中,固件可以决定硬件设备的功能及性能。rom文件可以理解为是固件包。固件包可以用于更新、恢复设备的基本功能。
25.一些实施场景中,所述服务器可以包括ca服务器和ota服务器,其中,ca服务器可以用于存储固件版本信息、固件包大小、固件包对应的预设校验值等,还可以用于与无线模块进行数据传输、交互,以及基于无线模块与目标设备进行数据传输、交互等。ota服务器可以用于存储固件更新数据、固件备用数据等。无线模块的存储器可以包括用于存储固件更新数据的存储区和用于存储固件备用数据的存储区。
26.本说明书一些实施例中,在进行固件升级前,可以先进行版本检测,然后基于版本检测结果确定是否进行固件升级。
27.一些实施场景中,进行版本检测可以是移动终端向服务器发起版本检测请求,也可以是目标设备基于无线模块向服务器发起版本检测请求。其中,移动终端和/或目标设备可以是基于人为操作发起版本检测请求,也可以是基于预设扫描机制自动发起版本检测请求,本说明书对此不作限定。预设扫描机制可以是预先设定的向服务器发送版本检测请求的时间,例如,可以设定每星期六晚上8点向服务器发送版本检测请求,或者可以设定每月20号晚上8点向服务器发送版本检测请求等。其中,移动终端可以包括用于控制目标设备实现某些功能的应用程序。移动终端可以是手机、电脑、遥控器等。例如,目标设备为空调,移动终端可以为空调遥控器,也可以是在手机,其中,手机上安装有空调app(application,应用程序)。
28.一些实施场景中,服务器收到版本检测请求后,可以将目标设备的当前固件版本信息与目标固件版本信息进行比较,然后将版本检测结果返回给移动终端和/或目标设备。移动终端和/或目标设备可以将版本检测结果展示给用户,以便用户确定是否进行固件升级。其中,目标固件版本信息可以为最新固件版本信息或其他固件版本信息。
29.一些实施场景中,如果移动终端展示的版本检测结果为当前固件版本不是最新固件版本或者不是目标固件版本,则用户可以通过操作移动终端向服务器发送固件更新请求,然后服务器将固件更新请求通过无线模块发送给目标设备,目标设备收到后,可以基于无线模块向服务器发送固件数据下载请求。
30.一些实施场景中,如果目标设备展示的版本检测结果为当前固件版本是最新固件版本或者是目标固件版本,则目标设备可以不进行下一步操作。如果目标设备展示的版本检测结果为当前固件版本不是最新固件版本或者不是目标固件版本,则目标设备可以基于无线模块向服务器发送固件数据下载请求。其中,固件数据下载请求可以表示请求下载固件数据,以便后续进行固件升级。固件数据下载请求中可以附带有目标设备的标识,这样,服务器接收到固件数据下载请求后,可以基于目标设备的标识获得与设备对应的固件信息,然后反馈给目标设备,目标设备收到固件数据后,可以将固件更新数据、固件备用数据存储在无线模块的存储器中。
31.一些实施场景中,目标设备在将固件更新数据、固件备用数据存储在无线模块的存储器中后,可以利用固件更新数据进行固件升级。当利用固件更新数据更新失败时,可以利用固件备用数据进行固件恢复。
32.一些实施场景中,目标设备在将固件更新数据、固件备用数据存储在无线模块的存储器前,可以利用预设校验算法对固件更新数据、固件备用数据进行校验。一些实施场景中,目标设备在从无线模块的存储器中获取固件更新数据进行固件升级前,可以对固件更新数据再次进行校验,从而提高固件升级成功率。
33.需要说明的是,目标设备利用固件更新数据进行固件升级时,可以利用固件更新数据覆盖rom领域中原有固件进行升级。目标设备利用固件备用数据进行固件恢复时,需要利用固件备用数据覆盖rom领域中原有固件进行恢复。目标设备的ram (random access memory)领域是随机存储内存,用于临时存放设备运行时产生的各种数据,其在断电时将丢失其存储内容。rom领域是只读内存,其是一种只能读出事先所存数据的固态半导体存储器,其只能读取,不能随意修改和删除。
34.本说明书实施例中,在设备需要进行固件升级时,通过检测固件版本信息,可以确定是否需要进行固件升级,从而提高后续固件升级成功率。通过将固件对应的更新数据和备用数据存储在无线模块的存储器中,不仅可以在升级失败时进行固件恢复,而且可以降低对设备的rom容量要求,从而在添加新功能时降低固件升级失败率,提高用户体验。
35.上述实施例从目标设备/服务器交互的角度描述的设备固件升级方法的实施方案。基于上述实施例描述,本说明书还提供一种可以适用于目标设备一侧的设备固件升级方法。图2是本说明书提供的一种适用于目标设备一侧的设备固件升级方法实施例的流程示意图。虽然本说明书提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者部分合并后更少的操作步骤或模块单元。
36.需要说明的是,下述实施例描述并不对基于本说明书的其他可扩展到的应用场景中的技术方案构成限制。具体的一种实施例如图2所示,本说明书提供的一种设备固件升级方法的一种实施例中,所述方法可以包括以下步骤。
37.s10:基于无线模块向服务器发送固件数据下载请求。
38.本说明书实施例中,目标设备可以基于无线模块向服务器发送固件数据下载请求。其中,目标设备可以包括需要进行固件更新或添加功能的设备,如冰箱、洗衣机、微波炉、手机、电脑等。目标设备中可以包括控制固件升级或恢复的组件,该组件可以控制固件在指定区域进行固件升级或恢复。指定区域可以是rom领域。无线模块可以是wi-fi模组。
39.本说明书一些实施例中,所述无线模块的存储器可以包括用于存储固件更新数据的存储区和用于存储固件备用数据的存储区。一些实施场景中,所述无线模块的存储器可以包括两面flash,一面flash用于存储固件更新数据,如固件更新rom文件,另一面flash用于存储固件备用数据,如固件备用rom文件。其中,flash属于存储器中的一种。flash闪存则是一种非易失性内存,在没有电流供应的条件下也可以长久地保持数据,其存储特性相当于硬盘。一些实施场景中,无线模块可以置于目标设备中,也可以置于目标设备外侧。目标设备可以基于无线模块与服务器进行通信、数据传输等。需要说明的是,无线模块的存储器还可以包括更多面flash。
40.一些实施场景中,服务器中可以预先存储有不同设备对应的固件信息。这样,目标设备基于无线模块向服务器发送的固件数据下载请求中可以附带有目标设备的标识,以便服务器在接收到该请求后,可以基于请求中包括的标识找到目标设备对应的固件信息。其中,目标设备的标识可以由字符、数字、字母等一个或多个组成。所述固件信息中可以包括固件版本信息和固件数据。固件版本信息可以包括固件版本号、固件版本号对应的信息等。固件数据也可以称为ota数据。固件数据可以包括固件更新数据、固件备用数据、固件包大小、固件包对应的预设校验值等。固件更新数据可以包括固件更新rom文件,固件备用数据可以包括固件备用rom文件。固件更新rom文件也可以称为更新固件包,固件备用rom文件也可以称为备用固件包。一些实施场景中,不同设备可以通过设备的标识进行识别,可以预先将设备的标识与对应的固件信息进行关联绑定。
41.一些实施场景中,服务器中可以预先存储有同一设备对应的固件信息。这样,目标设备基于无线模块向服务器发送的固件数据下载请求中可以不用附带目标设备的标识。
42.一些实施场景中,服务器可以预先将固件数据中设备对应的固件包进行划分,获得切片数据,然后对切片数据进行加密,获得加密切片数据,最后将加密切片数据作为固件更新数据或固件备用数据进行存储。
43.本说明书一些实施例中,目标设备基于无线模块向服务器发送固件数据下载请求前,可以包括:基于所述无线模块向所述服务器发送版本检测请求;接收所述服务器反馈的版本检测结果;根据所述版本检测结果,确定是否向所述服务器发送固件数据下载请求。其中,所述版本检测结果可以用于表示目标设备的当前固件版本信息是否为目标固件版本信息。所述目标固件版本信息可以为最新固件版本信息或其他固件版本信息。版本检测结果可以包括当前固件版本是目标固件版本、当前固件版本不是目标固件版本。
44.例如一些实施场景中,目标设备在进行固件升级前,可以先基于无线模块向服务器发送版本检测请求,服务器收到版本检测请求后,可以检测当前固件版本信息与服务器中预先存储的固件版本信息中最新版本号对应的信息是否一致,并将版本检测结果基于无线模块发送至目标设备。目标设备收到版本检测结果后,可以基于版本检测结果确定是否基于无线模块向服务器发送固件数据下载请求。一些实施场景中,目标设备收到版本检测结果后可以显示版本检测结果。
45.一些实施场景中,目标设备收到版本检测结果为当前固件版本是最新固件版本时,说明目标设备不需要进行固件升级,此时目标设备可以不向服务器发送固件数据下载请求。一些实施场景中,目标设备收到版本检测结果为当前固件版本不是最新固件版本时,目标设备可以基于无线模块向服务器发送固件数据下载请求。
46.一些实施场景中,服务器收到目标设备发送的版本检测请求,检测目标设备当前固件版本信息与服务器中预先存储的固件版本信息中最新版本号对应的信息是否一致后,可以将版本检测结果发送至移动终端,以便移动终端将版本检测结果进行显示。如果移动终端显示的版本检测结果为当前固件版本不是最新版本,则可以通过操作移动终端向服务器发送固件更新请求,然后服务器将固件更新请求通过无线模块发送给目标设备,目标设备收到后,可以向服务器发送固件数据下载请求。其中,移动终端可以包括用于控制目标设备实现某些功能的应用程序。移动终端可以是手机、电脑、遥控器等。例如,目标设备为空调,移动终端可以为空调遥控器,也可以是在手机,其中,手机上安装有空调app。
47.需要说明的是,服务器收到的版本检测请求还可以是移动终端发送的。相应的,版本检测结果可以发送至移动终端进行显示,也可以发送至目标设备进行显示。上述只是进行示例性说明,对本说明书其它实施方案并不构成限定。
48.一些实施场景中,目标设备和/或移动终端可以基于预设扫描机制向服务器发送版本检测请求。其中,预设扫描机制可以是预先设定的向服务器发送版本检测请求的时间,例如,可以设定每星期六晚上8点向服务器发送版本检测请求,或者可以设定每月20号晚上8点向服务器发送版本检测请求等。
49.s12:接收所述服务器发送的固件更新数据;其中,所述固件更新数据存储于所述无线模块的存储器中;所述无线模块的存储器中还存储有固件备用数据。
50.本说明书实施例中,目标设备基于无线模块向服务器发送固件数据下载请求后,服务器可以响应固件数据下载请求,发送固件更新数据。
51.一些实施场景中,由于服务器中可以预先存储有设备对应的固件信息,所以服务器在收到固件数据下载请求后,可以将固件数据反馈给目标设备。
52.本说明书一些实施例中,无线模块的存储器中可以预先存储有固件备用数据,也可以在接收服务器发送的固件更新数据过程中,接收服务器发送的固件备用数据,然后将固件备用数据存储在无线模块的存储器中。这样,服务器在收到固件数据下载请求后,可以将固件数据中包括的部分信息或者全部信息反馈给目标设备。其中,所述固件备用数据可以为固件升级前,目标设备使用的固件包;或者,所述固件备用数据可以为所述目标设备出厂时的默认固件包;其中,所述固件包可以用于维持目标设备的基本功能。
53.一些实施场景中,无线模块的存储器中预先存储有固件备用数据。这样,服务器可以将固件数据中包括的固件更新数据反馈给目标设备,或者可以将固件更新数据、固件包对应的预设校验值反馈给目标设备等。目标设备收到后,可以将固件更新数据存储于无线模块的存储器中。例如一些实施场景中,目标设备在发送本次固件数据下载请求前,已经进行过固件升级,则无线模块的存储器中可以预先存储有上次固件升级时的固件更新数据,此时可以将上次的固件更新数据作为本次的固件备用数据预先存储在无线模块的存储器中,这样,本次接收固件更新数据时,就无需接收固件备用数据。
54.一些实施场景中,目标设备在接收服务器发送的固件更新数据过程中,接收服务器发送的固件备用数据,然后将固件备用数据存储在无线模块的存储器中。这样,服务器可以将固件数据中包括的固件更新数据、固件备用数据、固件包对应的预设校验值反馈给目标设备。目标设备收到后,可以将固件更新数据和固件备用数据存储于无线模块的存储器中。例如一些实施场景中,如果目标设备基于无线模块向服务器发送固件数据下载请求前,
没有进行过固件升级,如刚出厂的设备,则服务器可以反馈给目标设备固件更新数据、固件备用数据、固件包对应的预设校验值,以便目标设备将固件更新数据和固件备用数据存储于无线模块的存储器中。
55.本说明书实施例中,目标设备基于无线模块接收服务器发送的固件更新数据和/ 或固件备用数据后,通过将固件更新数据和/或固件备用数据存储于无线模块的存储器中,可以在不改变目标设备硬件设施的基础上,有效降低对目标设备rom容量的要求。
56.本说明书一些实施例中,目标设备将固件更新数据和/或固件备用数据存储于无线模块的存储器前,可以对固件数据中包括的固件更新数据和/或固件备用数据进行校验。其中,对固件数据中包括的固件更新数据和/或固件备用数据进行校验的主体可以是无线模块,也可以是目标设备。无线模块可以进行数据的逻辑处理。
57.一些实施场景中,目标设备在基于无线模块接收服务器发送的固件数据后,目标设备可以对固件数据中包括的固件更新数据和/或固件备用数据进行校验,校验通过后,将固件更新数据和/或固件备用数据存储于无线模块的存储器中。
58.一些实施场景中,目标设备可以利用预设校验算法计算固件更新数据和/或固件备用数据对应的校验值,然后将计算获得的校验值分别与接收的对应预设校验值进行比较,在比较结果一致时,再将固件更新数据和/或固件备用数据进行存储。可以理解的是,当比较结果一致时,可以说明目标设备接收到的固件更新数据和/或固件备用数据是服务器发送的相应的固件更新数据和/或固件备用数据,从而可以保证数据安全。其中,预设校验算法可以包括checksum算法等。需要说明的是,校验算法包括但不限于上述描述算法。checksum算法在数据处理和数据通信领域中,可以用于校验目的数据项的和,这些数据项可以是数字或在计算检验总和过程中看作数字的其它字符串。
59.一些实施场景中,服务器将固件数据反馈给目标设备时,可以将固件数据中固件更新数据和/或固件备用数据划分为多个分包进行发送,目标设备在收到每个分包时,可以利用循环冗余校验进行校验,在对每个分包校验完成后,可以利用checksum算法对整体固件更新数据和/或固件备用数据进行校验,校验通过时,再将固件更新数据和/或固件备用数据进行存储。这样通过双重验证,可以保证数据安全,从而提高后续固件升级成功率。其中,循环冗余校验(cyclic redundancy check,crc)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。需要说明的是,目标设备可以接收一个分包验证一个,验证通过后再对接收的另一个分包进行验证,直接全部验证通过,再对整体进行验证。如果目标设备在确定某个分包没有通过校验后,可以向服务器发送固件数据下载失败的信息。
60.一些实施场景中,由于固件更新数据和/或固件备用数据可以是由一个或多个加密切片数据构成的固件包,所以,服务器将固件数据反馈给目标设备时,目标设备可以先对固件数据中固件更新数据和/或固件备用数据包括的加密切片数据进行解密,获得解密固件更新数据和/或解密固件备用数据,然后再利用预设校验算法计算解密固件更新数据和/或解密固件备用数据对应的校验值,将计算获得的校验值与对应的预设校验值进行比较,在比较结果一致时,将解密固件更新数据和/或解密固件备用数据进行存储。需要说明的是,如果服务器发送的固件更新数据和/或固件备用数据是由一个或多个加密切片数据构成的固件包,也可以直接将加密的固件更新数据和/或加密的固件备用数据存储在无线模
块的存储器中。
61.一些实施场景中,目标设备在基于无线模块接收服务器发送的固件数据过程中,可以先基于无线模块对固件数据中包括的固件更新数据和/或固件备用数据进行校验,在校验通过后,无线模块再将固件数据发送至目标设备,目标设备再进行校验,目标设备校验通过后,将固件更新数据和/或固件备用数据存储于无线模块的存储器中。具体校验方式可以参照上述实施例描述,对此不作赘述。
62.可以理解的是,上述只是进行示例性说明,进行校验的方式不限于上述举例,所属领域技术人员在本技术技术精髓的启示下,还可能做出其它变更,但只要其实现的功能和效果与本技术相同或相似,均应涵盖于本技术保护范围内。
63.一些实施场景中,目标设备基于无线模块接收服务器发送的固件数据过程中,可以为不同接收状态建立不同受信标记。不同接收状态可以包括未接收、开始接收、接收中、接收完成等。未接收对应的受信标记可以为“未开始”,开始接收对应的受信标记可以为“开始”,接收过程中对应的受信标记可以为“接收中”,接收完成后对应的受信标记可以为“接收完成”。这样,可以方便下次启动时对接收状态进行判断,从而提高处理效率。例如,如果接收过程中断电,则标记为“接收中”,下次启动后就知道接收未完成,从而可以继续接收。
64.s14:利用所述固件更新数据进行固件升级。
65.本说明书实施例中,目标设备在将固件更新数据和/或固件备用数据存储于无线模块的存储器中后,可以利用固件更新数据进行固件升级。
66.本说明书一些实施例中,所述利用所述固件更新数据进行固件升级前,可以包括:利用预设校验算法计算所述固件更新数据的第一校验值;判断所述第一校验值与预设校验值是否一致;确定一致时,利用所述固件更新数据进行固件升级。一些实施场景中,所述判断所述第一校验值与预设校验值是否一致,还可以包括:确定不一致时,利用所述固件备用数据进行固件恢复。
67.例如一些实施场景中,在进行固件升级前,可以从无线模块的存储器中获取固件更新数据,利用checksum算法计算固件更新数据的校验值,然后判断计算出的校验值与预设校验值是否一致,确定一致时,利用固件更新数据进行固件升级。一些实施场景中,确定不一致时,可以从无线模块的存储器中获取固件备用数据,利用固件备用数据进行固件恢复。
68.一些实施场景中,如果无线模块的存储器中存储的是加密的固件更新数据和/或加密的固件备用数据,即目标设备接收服务器发送的固件更新数据为加密切片数据,此时,利用固件更新数据进行固件升级前,可以包括:对所述固件更新数据进行解密;利用预设校验算法计算解密后固件更新数据的第二校验值;判断所述第二校验值与预设校验值是否一致;确定一致时,利用所述解密后固件更新数据进行固件升级。其中,所述预设校验值为所述服务器响应所述固件数据下载请求发送至目标设备;或者,所述预设校验值为所述无线模块利用预设校验算法对所述固件更新数据计算获得。加密切片数据基于对固件包划分为切片数据后加密生成。其中,具体校验方式可以参照上述实施例描述,对此不作赘述。
69.一些实施场景中,目标设备在进行固件升级前,可以从无线模块的存储器中以分包形式获取固件更新数据,在获取到每个分包时,可以先利用循环冗余校验进行校验,在对每个分包校验完成后,可以利用checksum算法对整体固件更新数据进行校验,校验通过时,
利用固件更新数据进行固件升级。
70.本实施例中,在利用固件更新数据进行固件升级时,通过进一步校验,可以为后续提高固件升级成功率提供保证。
71.s16:当利用所述固件更新数据进行固件升级失败的情况下,利用所述固件备用数据进行固件恢复。
72.本说明书实施例中,在利用固件更新数据进行固件升级失败的情况下,可以利用固件备用数据进行固件恢复。
73.一些实施场景中,如果目标设备以分包形式从无线模块的存储器中获取固件更新数据,在目标设备对获取的分包进行校验过程中出现校验错误,此时,目标设备可以直接从无线模块的存储器中获取固件备用数据,以便利用固件备用数据进行固件恢复。
74.一些实施场景中,在利用固件更新数据进行固件升级失败的情况下,可以从无线模块的存储器中获取固件备用数据,然后利用固件备用数据进行固件恢复。其中,从无线模块的存储器中获取固件备用数据的方式可以是整体获取,也可以是以分包的形式获取。目标设备根据获取固件备用数据方式的不同,也可以进行相应的验证,具体可以参照上述实施例中验证方式,对此不作赘述。
75.一些实施场景中,如果目标设备以分包形式从无线模块的存储器中获取固件备用数据,目标设备在对收到每个分包进行校验过程中出现校验错误,此时,目标设备可以通过无线模块向服务器发送固件恢复失败信息,以便服务器重新发送固件恢复数据。
76.本说明书一些实施例中,目标设备进行固件升级或固件恢复后,还可以包括:基于所述无线模块将固件升级结果和/或固件恢复结果发送至移动终端,以使所述移动终端展示所述固件升级结果和/或所述固件恢复结果。
77.一些实施场景中,目标设备可以包括显示器,这样,目标设备进行固件升级或固件恢复后,可以将固件升级结果和/或固件恢复结果在目标设备上展示。
78.一些实施场景中,还可以包括:目标设备进行固件升级或固件恢复后,可以基于无线模块接收移动终端发送的固件状态查询请求,然后返回固件升级结果和/或固件恢复结果。其中,固件状态查询请求可以表示要查询固件处理结果的指示。固件处理结果可以包括固件升级结果、固件恢复结果。固件升级结果可以包括升级成功和升级失败,固件恢复结果可以包括恢复成功和恢复失败。
79.基于上述实施例描述,本说明书还提供一种可以适用于服务器一侧的设备固件升级方法。如图3所示,图3是本说明书提供的一种适用于服务器一侧的设备固件升级方法实施例的流程示意图。所述方法可以包括以下步骤。
80.s30:接收目标设备基于无线模块发送的固件数据下载请求;
81.s32:向所述目标设备发送固件更新数据,以使所述目标设备利用所述固件更新数据进行固件升级;当利用所述固件更新数据进行固件升级失败的情况下,以使所述目标设备利用固件备用数据进行固件恢复;其中,所述固件更新数据存储于所述无线模块的存储器中;所述无线模块的存储器中还存储有固件备用数据。
82.一些实施场景中,所述服务器可以包括ca服务器和ota服务器,其中,ca服务器可以用于存储固件版本信息、固件包大小、固件包对应的预设校验值等,还可以用于与无线模块进行数据传输、交互,以及基于无线模块与目标设备进行数据传输、交互等。ota服务器可
以用于存储固件更新数据、固件备用数据等。所述无线模块的存储器可以包括用于存储固件更新数据的存储区和用于存储固件备用数据的存储区。具体的,无线模块的存储器可以包括两面flash,一面flash用于存储固件更新数据,另一面flash用于存储固件备用数据。需要说明的是,无线模块的存储器还可以包括更多面flash。
83.一些实施场景中,无线模块可以是8710bn 2mb flash模组。8710bn表示型号。其中,服务器反馈的固件数据可以存放在外置flash上,固件数据在flash上空间分布如图4所示。其中,flash上可以包括boot、sytem data、app1、app2、user data、 rdp分区。其中,boot分区中的数据无法修改,大约占36kb(0x08009000-0x08000000 =36kb);sytem data分区可以用来存放boot启动时的一些配置参数,大约占 8k(0x0800b000-0x08009000=8k);app1和app2为应用程序的分区(烧写程序中名称为ota1和ota2),其仅运行系统和模组驱动的最小公板固件,大约为400kb; user data(用户数据)和rdp(远程桌面协议)分区的大小可根据应用需要来设定。一些实施场景中,可以不使用user data和rdp分区,将全部分区留给应用程序的分区使用。其中,0x08009000、0x08000000、0x0800b000、0x08009000表示在flash中存储的物理地址。
84.需要说明的是,一般flash模组产品可以做双备份方式的ota网络升级,所以需要预留和应用固件大小相同的空间作为缓存区,以保存下载的网络数据。如:当前应用固件为:600kb,那么ota2也必须分配为600kb,以作ota升级使用。如果 wi-fi模组没有网络升级需求,那么1.9m空间全部可用作应用固件空间。
85.一些实施场景中,服务器接收目标设备基于无线模块发送的固件数据下载请求前,还可以包括:接收目标设备基于无线模块发送的版本检测请求;将所述目标设备的当前固件版本信息与目标固件版本信息进行比较,获得版本检测结果;反馈所述版本检测结果。所述目标固件版本信息可以为最新固件版本信息或其他固件版本信息。
86.一些实施场景中,服务器向所述目标设备发送固件更新数据前,还可以包括:对固件包进行划分,获得切片数据;对所述切片数据进行加密,获得加密切片数据;将所述加密切片数据作为固件更新数据。具体的,一些实施场景中,服务器向目标设备发送固件更新数据前,可以将固件包划分为多个切片,然后对每个切片进行加密,获得固件包对应的多个加密切片,最后将固件包对应的多个加密切片作为固件更新数据。一些实施场景中,对每个切片进行加密,获得固件包对应的多个加密切片,可以包括:为每个切片分配编号,为每个切片加入密文,基于编号、切片、密文生成加密切片。其中,为每个切片加入的密文可以根据切片参数生成。不同切片对应的密文长度可以相同,也可以不同。
87.本说明书中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。
88.如图5所示,图5是本说明书提供的一种设备固件升级方法具体实施例的流程示意图。其中,ca服务器可以用于存储固件版本信息、固件包大小、固件包对应的预设校验值等,还可以用于与无线模块进行数据传输、交互,以及基于无线模块与目标设备进行数据传输、交互等。ota服务器可以用于存储固件对应的rom文件等。无线模块可以包括两面flash,一面flash用于存储固件更新rom文件,另一面flash用于存储固件备用rom文件。所述方法可以包括以下步骤。
89.s40:智能app向ca服务器发送版本检测请求;其中,版本检测请求中包括与智能app对应的本体的当前固件版本信息;
90.其中,智能app可以用于控制本体实现一些功能。本体可以是冰箱、微波炉等。
91.s41:ca服务器将当前固件版本信息与预先存储的固件版本信息进行比较,并返回版本检测结果给智能app;
92.s42:智能app显示版本检测结果;
93.s43:智能app基于版本检测结果向ca服务器发送固件更新请求;
94.s44:ca服务器将固件更新请求发送至无线模块;
95.s45:无线模块基于固件更新请求向ca服务器和ota服务器发送下载ota数据的请求;
96.s46:ca服务器将固件版本信息、固件包大小、固件包对应的预设校验值发送至无线模块,ota服务器将rom文件发送至无线模块;
97.s47:无线模块利用checksum算法计算rom文件的校验值,并将其与预设校验值进行比较;
98.s48:当比较结果一致时,无线模块存储ota数据,并向本体发送固件更新指示;
99.s49:本体收到固件更新指示后,向无线模块发送ota数据下载请求;
100.s50:无线模块收到ota数据下载请求后,向本体发送对应的固件更新rom文件以及对应的预设校验值;
101.s51:本体收到固件更新rom文件以及对应的预设校验值后,利用checksum算法计算固件更新rom文件的校验值,并将其与预设校验值进行比较,比较结果一致时,本体利用固件更新rom文件进行固件更新。
102.其中,本体利用固件更新rom文件进行固件更新失败时,本体可以向无线模块发送固件升级失败信息,无线模块收到后,可以将对应的固件备用rom文件发送给目标设备,以便目标设备利用固件备用rom文件进行固件恢复。
103.一些实施场景中,向ca服务器发送版本检测请求的还可以是本体基于无线模块发起的。
104.一些实施场景中,本体进行固件升级或固件恢复后,可以基于无线模块将固件升级结果和/或固件恢复结果发送至智能app,以使智能app展示固件升级结果和/或固件恢复结果。
105.一些实施场景中,本体也可以包括显示器,这样,本体进行固件升级或固件恢复后,可以将固件升级结果和/或固件恢复结果在本体上展示。
106.一些实施场景中,本体进行固件升级或固件恢复后,可以基于无线模块接收智能 app发送的固件状态查询请求,然后给智能app返回固件升级结果和/或固件恢复结果。
107.本说明书中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参加即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。
108.从以上的描述中,可以看出,本技术实施例可以实现如下技术效果:在设备需要进行固件升级时,通过将固件对应的更新数据、备用数据存储在无线模块的存储器中,不仅可以在升级失败时进行固件恢复,而且可以降低对设备的rom容量要求,从而在添加新功能时
降低升级失败率,提高用户体验。目标设备在将固件数据存储在无线模块的存储器前,通过对固件数据进行校验,可以保证数据传输的安全,为后续固件升级成功提供保证。目标设备在从无线模块的存储器中获取固件更新数据进行固件升级前,通过再次校验,可以提高固件升级成功率。
109.基于上述所述一种设备固件升级方法,本说明书一个或多个实施例还提供一种设备固件升级装置。所述的装置可以包括使用了本说明书实施例所述方法的系统(包括分布式系统)、软件(应用)、模块、组件、服务器、客户端等并结合必要的实施硬件的装置。基于同一创新构思,本说明书实施例提供的一个或多个实施例中的装置如下面的实施例所述。由于装置解决问题的实现方案与方法相似,因此本说明书实施例具体的装置的实施可以参见前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
110.具体地,图6是本说明书提供的一种设备固件升级装置的一个实施例的模块结构示意图,如图6所示,本说明书提供的一种设备固件升级装置可以包括:第一发送模块120,第一接收模块122,第一升级模块124,第一恢复模块126。
111.第一发送模块120,可以用于基于无线模块向服务器发送固件数据下载请求;
112.第一接收模块122,可以用于接收所述服务器发送的固件更新数据;其中,所述固件更新数据存储于所述无线模块的存储器中;所述无线模块的存储器中还存储有固件备用数据;
113.第一升级模块124,可以用于利用所述固件更新数据进行固件升级;
114.第一恢复模块126,可以用于当利用所述固件更新数据进行固件升级失败的情况下,利用所述固件备用数据进行固件恢复。
115.图7是本说明书提供的一种设备固件升级装置的一个实施例的模块结构示意图,如图7所示,本说明书提供的一种设备固件升级装置可以包括:第二接收模块210,第二发送模块212。
116.第二接收模块210,可以用于接收目标设备基于无线模块发送的固件数据下载请求;
117.第二发送模块212,可以用于向所述目标设备发送固件更新数据,以使所述目标设备利用所述固件更新数据进行固件升级;当利用所述固件更新数据进行固件升级失败的情况下,以使所述目标设备利用固件备用数据进行固件恢复;其中,所述固件更新数据存储于所述无线模块的存储器中;所述无线模块的存储器中还存储有固件备用数据。
118.需要说明的,上述所述的装置根据方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
119.本说明书还提供一种设备固件升级系统的实施例,包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现上述任意一个或者多个实施例中所述方法的步骤,例如包括:基于无线模块向服务器发送固件数据下载请求;接收所述服务器发送的固件更新数据;其中,所述固件更新数据存储于所述无线模块的存储器中;所述无线模块的存储器中还存储有固件备用数据;利用所述固件更新数据进行固件升级;当利用所述固件更新数据进行固件升级失败的情况下,利用所述固件备用数据进行固件恢
复。所述的系统可以为单独的服务器,也可以包括使用了本说明书的一个或多个所述方法或一个或多个实施例装置的服务器集群、系统(包括分布式系统)、软件(应用)、实际操作装置、逻辑门电路装置、量子计算机等并结合必要的实施硬件的终端装置。
120.本说明书所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图8是本说明书提供的一种设备固件升级服务器的一个实施例的硬件结构框图,该服务器可以是上述实施例中的设备固件升级装置或设备固件升级系统。如图8所示,服务器10可以包括一个或多个(图中仅示出一个)处理器100(处理器100可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器200、以及用于通信功能的传输模块300。本领域普通技术人员可以理解,图8所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器10还可包括比图8中所示更多或者更少的组件,例如还可以包括其他的处理硬件,如数据库或多级缓存、gpu,或者具有与图8 所示不同的配置。
121.存储器200可用于存储应用软件的软件程序以及模块,如本说明书实施例中的设备固件升级方法对应的程序指令/模块,处理器100通过运行存储在存储器200内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器200可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器200可进一步包括相对于处理器100 远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
122.传输模块300用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输模块300包括一个网络适配器(network interface controller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块300可以为射频(radio frequency, rf)模块,其用于通过无线方式与互联网进行通讯。
123.本说明书提供的上述实施例所述的方法或装置可以通过计算机程序实现业务逻辑并记录在存储介质上,所述的存储介质可以计算机读取并执行,实现本说明书实施例所描述方案的效果。所述存储介质可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。所述存储介质可以包括:利用电能方式存储信息的装置如,各式存储器,如ram、rom等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、u盘;利用光学方式存储信息的装置如,cd或dvd。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。
124.本说明书提供的上述设备固件升级方法或装置实施例可以在计算机中由处理器执行相应的程序指令来实现,如使用windows操作系统的c 语言在pc端实现、linux 系统实现,或其他例如使用android、ios系统程序设计语言在智能终端实现,以及基于量子计算机的处理逻辑实现等。
125.需要说明的是说明书上述所述的装置、系统根据相关方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照对应方法实施例的描述,在此不作一一赘述。
126.本技术中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件 程
序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
127.为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把部分模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。
128.本发明是参照根据本发明实施例的方法、装置、系统的流程图和/或方框图来描述的。应理解可由计算机程序指令实现,可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
129.本领域技术人员应明白,在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
130.本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。
131.以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献