无线设备、固件升级方法、固件服务器及可读存储介质
文献发布时间:2023-06-19 12:10:19
技术领域
本申请涉及固件升级技术领域,具体而言,涉及一种无线设备、固件升级方法、固件服务器及可读存储介质。
背景技术
随着物联网技术的发展,LPWA(Low power wide area,低功耗广域技术)在越来越多的设备上得以更广泛的应用,由于LPWA设备的应用位置分布广、数量大,人工本地升级成本高,使得FOTA(Firmware-over-the-air,固件空中升级)的应用越来越广泛。如在各种共享单车、水表、电表等设备上的应用。
在传统的FOTA升级框架中,无线设备会包括LPWA无线通信芯片和设备单独应用的MCU(Microcontroller Unit,微控制单元)芯片。然而基于目前的FOTA升级框架,在无线设备的固件存在升级需求时,需要对所有设备的进行FOTA升级,且对于LPWA芯片和MCU芯片均要进行FOTA升级。这就导致在许多无需进行全部设备的固件升级的场景下(如希望在部分设备中升级固件的测试版本等场景下),现有的FOTA升级方案仍旧会对所有设备的进行FOTA升级,导致相关场景的需求无法被满足。
此外,在实际应用过程中,固件更新可能会与设备的元件版本相关,在元件版本更新后,相关固件需要进行升级。然而在目前的FOTA升级框架下,没有进行元件版本更新的那部分设备也会收到更新的固件(但是由于元件版本与固件不匹配,这部分设备通常会出现固件升级失败的情况),从而造成不必要的资源浪费。
发明内容
本申请实施例的目的在于提供一种无线设备、固件升级方法、固件服务器及可读存储介质,用以解决现有FOTA升级框架中,只能对所有的设备进行升级,适用场景受限,且会造成不必要的资源浪费的问题。
本申请实施例提供了一种无线设备,包括:设备硬件信息携带电路,用于输出与无线设备中,当前各元件的硬件信息的集合相对应的电信号;所述电信号随着所述无线设备中的元件的更新而更新;LPWA芯片,与所述设备硬件信息携带电路的信号输出端连接,用于接收所述电信号,并将所述电信号上报给固件服务器。
在上述实现结构中,无线设备由于设置了设备硬件信息携带电路,从而可以实现对于表征无线设备中当前各元件的硬件信息的集合的电信号的上报。从而使得固件服务器可以知晓无线设备中的各元件的硬件信息,进而即可以根据不同无线设备的实际元件情况,实现不同的固件升级控制。比如,可以选定某一种硬件信息集合或某几种硬件信息集合对应的无线设备作为目标升级对象,从而实现对于无线设备的固件分批升级,或者固件测试版本升级测试等。又比如,可以根据无线设备的硬件信息集合,和该无线设备之前上报的硬件信息集合进行比对,从而确定无线设备中发生变化的元件,进而仅向无线设备下发该变化的元件所会影响的芯片的相应版本的固件,从而实现针对性地固件下发。因此,采用本申请实施例所提供的无线设备,可以使得固件服务器具有不再只能对所有的无线设备都进行升级的能力,使得固件服务器具有了可以根据各无线设备的实际元件情况,实现不同固件升级策略的能力,从而具有了适用于更多场景的可能性,并且具有了能够减少非必要的固件升级情况的能力,减少资源浪费。
进一步地,所述设备硬件信息携带电路为:串联电阻电路;所述电信号为:所述串联电阻电路中,部分电阻的总电压;或,所述设备硬件信息携带电路为:并联电阻电路;所述电信号为:所述并联电阻电路中,部分分支电路的总电流。
在上述实现过程中,通过简单的串联电阻电路或者并联电阻电路,即实现了对于设备硬件信息携带电路,不但实现结构简单,成本低廉,而且对于电信号的读取可靠性也高,利于在工业应用中推广普及。
进一步地,所述无线设备还包括:备份器;MCU芯片,分别与所述LPWA芯片和所述备份器通信连接,所述MCU芯片用于在所述LPWA芯片接收到新LPWA固件时,接收所述LPWA芯片的原有LPWA固件,并发送至所述备份器存储,并在所述LPWA芯片根据所述新LPWA固件升级失败时,从所述备份器中获取所述原有LPWA固件以恢复所述LPWA芯片。
在上述实现过程中,通过采用备份器来进行LPWA芯片的原有LPWA固件的备份,这就使得当出现新的LPWA固件升级失败时,可以快速将LPWA芯片恢复到原有状态,从而保证无线设备的正常使用。
进一步地,所述备份器为nandflash芯片。
应理解,在某些无线设备中,会设置nandflash芯片,并采用nandflash芯片来存储无线设备相关大容量信息,比如一些运行log(日志)等。在本申请实施例中,通过配置其作为备份器来实现对于LPWA芯片的原有LPWA固件的备份,这就使得在无需进行无线设备硬件电路改动的前提下,就可以实现本申请中的方案,从而节约了成本,减少了对于无线设备硬件电路的改动需求,利于在工业应用中推广普及。
本申请实施例还提供了一种固件升级方法,应用于固件服务器,包括:接收各无线设备上报的设备信息;所述设备信息包括对应各无线设备的硬件信息集合的电信号;根据所述电信号确定各所述无线设备中,各元件的硬件信息集合;根据各所述无线设备的硬件信息集合,从各所述无线设备中确定出符合固件升级条件的各目标无线设备;向各所述目标无线设备下发待升级固件,以供各所述目标无线设备进行固件升级。
在上述实现过程中,固件服务器通过各无线设备的硬件信息集合,确定出符合固件升级条件的各目标无线设备,进而仅向目标无线设备下发待升级固件,以供各目标无线设备进行固件升级,这就使得固件服务器实现了仅向全部无线设备的特定部分无线设备下发待升级固件,从而固件服务器具备了不再只能对所有的无线设备都进行升级的能力。固件服务器可以根据实际需要,设定不同的固件升级条件,并通过各无线设备的硬件信息集合来进行评判,从而具有了适用于更多场景的可能性,也具有了能够针对性下发固件的能力,减少资源浪费。
进一步地,根据各所述无线设备的硬件信息集合,从各所述无线设备中确定出符合固件升级条件的各目标无线设备,包括:将各所述无线设备的硬件信息集合,分别与预设的标准硬件信息集合进行比对,确定出存在区别硬件信息的各所述目标无线设备;其中,所述区别硬件信息为所述硬件信息集合中,与所述标准硬件信息集合存在区别的硬件信息;对应的,向各所述目标无线设备下发待升级固件包括:根据各所述目标无线设备的区别硬件信息,确定各所述目标无线设备的目标待升级固件;向各所述目标无线设备分别下发各所述目标无线设备的目标待升级固件。
在上述实现过程中,根据更新的元件实现对应的目标待升级固件的确定,从而使得下发至无线设备的固件得以与无线设备的实际元件相匹配,从而降低了固件升级失败的风险,也减少了不必要的资源浪费。
进一步地,根据各所述无线设备的硬件信息集合,从各所述无线设备中确定出符合固件升级条件的各目标无线设备,包括:根据各所述无线设备的硬件信息集合,以及预设的目标硬件信息集合,从各所述无线设备中确定出硬件信息集合与所述目标硬件信息集合一致的目标无线设备。
在上述实现过程中,可以实现对于特定硬件信息集合的特定无线设备的固件升级,从而可以满足仅需对于特定的某一批或某几批设备的升级需求。
进一步地,所述方法还包括:接收各所述无线设备上报的状态信息;所述状态信息表征所述无线设备的当前状态;对应的,所述向各所述目标无线设备下发待升级固件,包括:在所述目标无线设备的状态信息满足预设状态要求时,向所述目标无线设备下发待升级固件。
在上述实现过程中,通过获取各无线设备上报的状态信息,从而在目标无线设备的状态信息满足预设状态要求时,才向目标无线设备下发待升级固件,这就降低无线设备在进行固件升级时,因为自身状态(比如网络不好等情况)导致升级失败的风险,提高了升级成功率。
本申请实施例还提供了一种固件升级方法,应用于无线设备,包括:向固件服务器上报设备信息;所述设备信息包括与所述无线设备中,当前各元件的硬件信息集合相对应的电信号;接收所述固件服务器下发的待升级固件,并采用待升级固件进行固件升级。
在上述实现过程中,无线设备实现了对于表征无线设备中当前各元件的硬件信息的集合的电信号的上报,从而使得固件服务器可以知晓无线设备中的各元件的硬件信息,进而即可以根据不同无线设备的实际元件情况,实现不同的固件升级控制。比如,可以选定某一种硬件信息集合或某几种硬件信息集合对应的无线设备作为目标升级对象,从而实现对于无线设备的固件分批升级,或者固件测试版本升级测试等。又比如,可以根据无线设备的硬件信息集合,和该无线设备之前上报的硬件信息集合进行比对,从而确定无线设备中发生变化的元件,进而仅向无线设备下发该变化的元件所会影响的芯片的相应版本的固件,从而实现针对性地固件下发。因此,采用本申请实施例所提供的无线设备,可以使得固件服务器具有不再只能对所有的无线设备都进行升级的能力,使得固件服务器具有了可以根据各无线设备的实际元件情况,实现不同固件升级策略的能力,从而具有了适用于更多场景的可能性,并且具有了能够减少非必要的固件升级情况的能力,减少资源浪费。
进一步地,在所述待升级固件包括LPWA固件时,所述方法还包括:将所述无线设备的LPWA芯片中当前安装的原有LPWA固件保存至预设的备份器中;对应的,采用待升级固件进行固件升级包括:采用所述LPWA固件对所述LPWA芯片进行固件升级;对应的,所述方法还包括:在所述LPWA固件升级失败时,读取所述备份器中的所述原有LPWA固件,并采用所述原有LPWA固件恢复所述LPWA芯片。
在上述实现过程中,无线设备通过采用备份器来进行LPWA芯片的原有LPWA固件的备份,这就使得当出现新的LPWA固件升级失败时,可以快速将LPWA芯片恢复到原有状态,从而保证无线设备的正常使用。
进一步地,在所述待升级固件包括MCU固件时,所述方法还包括:将所述无线设备的MCU芯片中当前安装的原有MCU固件备份至所述无线设备的LPWA芯片的备份区;对应的,采用待升级固件进行固件升级包括:采用所述MCU固件对所述MCU芯片进行固件升级;对应的,所述方法还包括:在所述MCU固件升级失败时,采用所述原有MCU固件恢复所述MCU芯片。
在上述实现过程中,无线设备通过LPWA芯片的备份区进行MCU芯片的原有MCU固件的备份,这就使得当出现新的MCU固件升级失败时,可以快速将MCU芯片恢复到原有状态,从而保证无线设备的正常使用。
本申请实施例还提供了一种固件服务器,包括处理器、存储器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;所述处理器用于执行存储器中存储的一个或者多个程序,以实现上述任一种应用于固件服务器中的固件升级方法。
本申请实施例中还提供了一种可读存储介质,所述可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一种的固件升级方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种无线设备的结构示意图;
图2为本申请实施例提供的一种串联电阻电路实现的设备硬件信息携带电路;
图3为本申请实施例提供的一种并联电阻电路实现的设备硬件信息携带电路;
图4为本申请实施例提供的一种较具体的无线设备的结构示意图;
图5为本申请实施例提供的一种具有备份器的无线设备的结构示意图;
图6为本申请实施例提供的一种固件升级系统的结构示意图;
图7为本申请实施例提供的一种固件升级方法的流程示意图;
图8为本申请实施例提供的一种较具体的固件升级系统的结构示意图;
图9为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
实施例一:
本申请实施例中提供了一种无线设备。可以参见图1所示,图1为本申请实施例中提供的无线设备的结构示意图,包括:
设备硬件信息携带电路和LPWA芯片。其中,设备硬件信息携带电路,用于输出与无线设备中,当前各元件的硬件信息的集合相对应的电信号;而LPWA芯片则与设备硬件信息携带电路的信号输出端连接,用于接收电信号,并将该电信号上报给固件服务器。
需要理解的是,在本申请实施例中,各元件的硬件信息可以包括但不限于元件的设计批次,加工生产批量、版本号等信息。
还需要理解的是,在本申请实施例中,设备硬件信息携带电路输出的电信号是对应的无线设备的当前各元件的硬件信息的集合,不同的电信号值应当对应不同的硬件信息集合。比如,电信号A对应于硬件信息集合A1,电信号B对应于硬件信息集合B1等。
当无线设备的任一元件发生改变,导致其对应的硬件信息也发生改变时,对应的设备硬件信息携带电路输出的电信号也应当发生改变。比如上例中,当无线设备中的元件发生改变,导致其具有的硬件信息集合由A1变为了B1,那么此时需要改变设备硬件信息携带电路输出的电信号,将设备硬件信息携带电路输出的电信号由A变为B。
需要说明的是,在本申请实施例中,参见图2和图3所示,设备硬件信息携带电路可以为串联电阻电路,也可以为并联电阻电路。当设备硬件信息携带电路为串联电阻电路时,可以取串联电阻电路中,部分电阻的总电压作为设备硬件信息携带电路输出的电信号。当设备硬件信息携带电路为并联电阻电路时,可以取并联电阻电路中,部分分支电路的总电流作为设备硬件信息携带电路输出的电信号。
在无线设备的任一元件发生改变,导致其对应的硬件信息也发生改变时,对于图2所示的串联电阻电路,只需改变对应的电压采集点,或者增加或减少电路中某一位置处的电阻值,即可控制设备硬件信息携带电路输出的电压值为与改变后的硬件信息集合对应的目标值。而对于图3所示的串联电阻电路,则只需改变对应的采集电流的分支电路的数量,或者增加或减少电路中某一分支电路的电阻值,或者增加或减少分支电路,即可控制设备硬件信息携带电路输出的电流值为与改变后的硬件信息集合对应的目标值。
应理解,对于设备硬件信息携带电路的改动可以是在改动无线设备的元件时,一并由工程师或外部设备按照需要的电信号值进行设备硬件信息携带电路的改动。
当然,除此之外,也可以在上述串联电阻电路或并联电阻电路中,设置一可控的可变电阻电路(比如在上述串联电阻电路或并联电阻电路中采用一个或多个数字可变电阻),从而可以通过调整串联电阻电路或并联电阻电路中,可变电阻电路的阻值的方式,实现对于输出的电信号值的控制。
还需要注意的是,在本申请实施例中,设备硬件信息携带电路除了可以通过如图2和图3所示的串联电阻电路或并联电阻电路实现外,还可以采用其他电路结构实现,比如可以输出固定电压值的芯片来实现等。事实上,只要能够输出固定值的电信号,且可以通过结构调整实现对于输出的电信号值的调整的电路结构,均可作为设备硬件信息携带电路而被本申请实施例所采用。
应当理解的是,在本申请实施例中,LPWA芯片上报的是设备硬件信息携带电路输出的电信号,并非是具体的硬件信息集合。而固件服务器需要根据电信号确定出上报该电信号的无线设备实际对应的硬件信息集合的具体内容。为此,在本申请实施例中,在固件服务器中可以预先存储各电信号对应的具体的硬件信息集合,从而可以通过内部查找的方式,实现对于电信号对应的硬件信息集合的确定。
需要注意的是,在实际应用中,无线设备内除了包括图1中示出的设备硬件信息携带电路和LPWA芯片外,通常还会具有MCU芯片,且MCU芯片会与LPWA芯片连接,如图4所示。
应理解,在传统的固件升级方案中,一旦LPWA芯片固件升级失败,此时由于LPWA芯片原有的固件已被覆盖,此时LPWA芯片无法继续自动升级,也无法远程下载其它固件,只能等待技术人员进行现场升级或者恢复,从而具有维护复杂的问题。
而在本申请实施例的一种可行实施方式中,还可以在无线设备内设置备份器,例如参见图5所示,MCU芯片分别与LPWA芯片和备份器通信连接。此时,可以配置控制程序,从而在LPWA芯片接收到新LPWA固件时,使得MCU芯片接收LPWA芯片内的原有LPWA固件,并发送至备份器中存储。这样,当LPWA芯片根据新LPWA固件升级失败时,MCU芯片即可从备份器中获取原有LPWA固件以恢复LPWA芯片,从而不再只能等待技术人员进行现场升级或者恢复,从而降低了维护复杂度,提高了用户体验。
需要注意的是,在实际应用过程中,某些无线设备内会存在用于存储无线设备相关大容量信息,比如一些运行log等的nandflash芯片。
在本申请实施例中,可以将nandflash芯片作为备份器,从而可以在不需要额外增加设备,改动无线设备硬件电路的前提下,就可以实现本申请中的方案,从而节约了成本,且利于在工业应用中推广普及。
当然,在本申请实施例中也可以采用专门的具有存储功能的设备来作为备份器。此时,备份器可以设置在无线设备的内部,但也可以是无线设备的外设。
此外,在本申请实施例中还提供了一种固件升级方法。为便于理解本申请实施例中所提供的方法,首先请参见图6所示,图6为本申请实施例中提供的一种固件升级系统,其包括固件服务器(在某些文献或相关技术中也可能被称之为远程管理平台、FOTA服务器、DFOTA(Differential FOTA,差分固件空中升级)服务器等)和至少一个本申请实施例所提供的无线设备。无线设备与固件服务器之间通过LPWAN(Low-Power Wide-Area Network,采用LPWA的低功耗广域网络)实现通信连接。
为便于理解本申请实施例所提供的固件升级方法,下面在上述固件升级系统的基础上,对该固件升级方法进行描述。
参见图7所示,固件升级方法包括:
S701:无线设备向固件服务器上报设备信息。
在本申请实施例中,设备信息包括与无线设备中当前各元件的硬件信息集合相对应的电信号。
需要注意的是,在实际应用过程中,可以是固件服务器先向各无线设备发出信息获取请求,从而各无线设备再上报各自的设备信息。当然,也可以是各无线设备主动上报设备信息。具体方式可以根据实际需要进行设置。
S702:固件服务器根据各无线设备上报的设备信息中包含的电信号,确定各无线设备中各元件的硬件信息集合。
在本申请实施例中,固件服务器内可以预先存储各电信号对应的具体的硬件信息集合,从而在接收到各无线设备上报的电信号后,即可根据电信号查找出对应的硬件信息集合。
需要注意的是,为了便于固件服务器区分不同的硬件信息集合对应的无线设备,在本申请实施例中,无线设备上报的设备信息中还可以包括各无线设备的唯一标识信息(比如设备唯一编号等),从而通过无线设备的唯一标识信息,实现对于各无线设备的区分。
此外,在本申请实施例中,无线设备上报的设备信息中还可以包括各无线设备的软件版本号,从而固件服务器可以依据各无线设备的软件版本号,来确定其是否满足相应的固件升级条件。
S703:固件服务器根据各无线设备的硬件信息集合,从各无线设备中确定出符合固件升级条件的各目标无线设备。
在本申请实施例中,固件升级条件可以由工程师根据实际应用场景,或者实际需求进行预先设定。
示例性的,可以预先设定本次需要升级的无线设备所需具有的目标硬件信息集合,从而设定固件升级条件为无线设备当前的硬件信息集合与目标硬件信息集合一致。这样,固件服务器在确定出各无线设备的硬件信息集合后,只需将各无线设备的硬件信息集合分别与目标硬件信息集合进行比对,即可确定出目标无线设备。
需要理解的是,上述示例中的方式,可以应用于固件测试版本的发布场景中,即可以从所有无线设备中选取部分设备来升级固件测试版本。此外,还可以应用于针对特定元件开发的固件升级场景中。例如,对于工厂生产的多批无线设备,分别记录各批无线设备的硬件信息集合。当后续发现其中某一批无线设备存在维护需求时,即可以将该批无线设备的硬件信息集作为目标硬件信息集合,从而精确地实现对于该批无线设备的固件升级。
此外,示例性的,固件升级条件还可以是无线设备当前的硬件信息集合,与预设的标准硬件信息集合相比,存在区别的硬件信息。
在本示例中,固件服务器可以将各无线设备的硬件信息集合,分别与预设的标准硬件信息集合进行比对,确定出存在区别硬件信息的各目标无线设备。
在本示例中,标准硬件信息集合可以由工程师预先设定,其表征无线设备正常运行时的硬件信息集合。
此外,示例性的,固件升级条件还可以是无线设备当前的硬件信息集合,与该无线设备上一次上报的电信号对应的硬件信息集合(后文称上一硬件信息集合)相比,存在区别的硬件信息。
此时,在本示例中,固件服务器可以将各无线设备的硬件信息集合,分别与各无线设备的上一硬件信息集合进行比对,确定出存在区别硬件信息的各目标无线设备。
在前述第二种和第三种示例中,在确定出各目标无线设备后,还可以基于各目标无线设备所对应的区别硬件信息(即本次上报的电信号对应的硬件信息集合中,与上一硬件信息集合相比存在区别的硬件信息),确定其对应的目标待升级固件,从而在步骤S704时,向各目标无线设备下发各自对应的目标待升级固件。
需要注意的是,在本申请实施例中,固件服务器内可以预先配置好各元件的变更所影响的芯片(后文称目标芯片),以及各元件在不同硬件信息下(比如不同设计批次下),对应的最优版本的固件。进而可以仅下发对应于目标芯片的最优版本的固件(即目标待升级固件)。
S704:向各目标无线设备下发待升级固件。
需要注意的是,为了降低目标无线设备升级失败的风险。在本申请实施例的一种可行实施方式中,可以设置无线设备在上报设备信息的同时,也上报自身的状态信息,从而固件服务器在向各目标无线设备下发待升级固件之前,可以先根据各目标无线设备的状态信息,判断各目标无线设备是否满足预设状态要求。在满足时,才向目标设备下发待升级固件。
在本可行实施方式中,若某一目标无线设备的状态信息不满足预设状态要求,则一种可选的处理方式是:可以按照预设的时间间隔,向该目标无线设备发送状态信息获取请求,从而使得该目标无线设备重新上报最新的状态信息,从而在该目标无线设备的状态信息满足预设状态要求,向目标设备下发待升级固件。
需要注意的是,在本申请实施例中,所谓状态信息是指能够表征无线设备的当前状态的信息,比如可以是无线设备的网络通信状态信息、工作状态信息等中的一种或几种。
S705:目标无线设备采用待升级固件进行固件升级。
在本申请实施例中,待升级固件可以是LPWA固件,也可以是MCU固件,也可以是LPWA固件和MCU固件。
在本申请实施例中,当待升级固件包括LPWA固件时,如果目标无线设备具有备份器,那么目标无线设备内的LPWA芯片在接收到固件服务器下发的LPWA固件后,即可将LPWA芯片中当前安装的原有LPWA固件通过MCU芯片保存至备份器。在保存好原有LPWA固件后,LPWA芯片即按照固件服务器下发的LPWA固件进行固件升级。
此时,一旦出现LPWA固件升级失败的情况,MCU芯片即可读取备份器中的原有LPWA固件,并采用原有LPWA固件恢复LPWA芯片,从而保证LPWA芯片能够正常运行。
需要注意的是,当备份器采用nandflash芯片实现时,在将原有LPWA固件保存至nandflash芯片中之前,可以先对nandflash芯片内的Log等信息进行删除,或者将nandflash芯片内的Log等信息传输至预先设置的管理平台中,从而为原有LPWA固件的保存腾出存储区域。
需要注意的是,在实际应用过程中,LPWA芯片内通常包括引导程序加载的bootloader区、多个内核kernelA~N区、应用程序区Application、以及备份区Backup。
在本申请实施例中,当待升级固件包括MCU固件时,可以将无线设备的MCU芯片中当前安装的原有MCU固件备份至无线设备的LPWA芯片的备份区Backup,然后再采用MCU固件对MCU芯片进行固件升级。
此时,当MCU固件升级失败时,LPWA芯片即可采用原有MCU固件恢复MCU芯片。
需要说明的是,本申请实施例的方案适用于FOTA升级场景中,也适用于DFOTA升级场景中,在本申请实施例中并不做限制。
本申请实施例所提供的无线设备和固件升级方法,无线设备实现了对于表征无线设备中当前各元件的硬件信息的集合的电信号的上报,从而使得固件服务器可以知晓无线设备中的各元件的硬件信息,进而即可以根据不同无线设备的实际元件情况,实现不同的固件升级控制。比如,可以选定某一种硬件信息集合或某几种硬件信息集合对应的无线设备作为目标升级对象,从而实现对于无线设备的固件分批升级,或者固件测试版本升级测试等。又比如,可以根据无线设备的硬件信息集合,和该无线设备之前上报的硬件信息集合进行比对,从而确定无线设备中发生变化的元件,进而仅向无线设备下发该变化的元件所会影响的芯片的相应版本的固件,从而实现针对性地固件下发。因此,采用本申请实施例所提供的无线设备,可以使得固件服务器具有不再只能对所有的无线设备都进行升级的能力,使得固件服务器具有了可以根据各无线设备的实际元件情况,实现不同固件升级策略的能力,从而具有了适用于更多场景的可能性,并且具有了能够减少非必要的固件升级情况的能力,减少资源浪费。
实施例二:
本实施例在实施例一的基础上,以一种具体的固件升级系统为例,为本申请做进一步示例说明。
参见图8所示的固件升级系统,无线设备包括设备硬件信息携带电路、LPWA芯片、MCU芯片和nandflash芯片。
设备硬件信息携带电路为由电阻R1、R2和R3串联构成的串联电阻电路,电路的信号输出端为电阻R2的两端(即图中A、B两点),LPWA芯片采集A、B两点的电压(即设备硬件信息携带电路输出的电信号)。
在本申请实施例中,当无线设备中的元件被更新,导致元件的硬件信息出现变化时,设备硬件信息携带电路也需要进行相应的调整。比如可以增加R3阻值,或者减少R1的阻值等。
在本申请实施例中,LPWA芯片采集到的不同的电压值,对应不同的硬件信息集合,即无线设备中各元件的硬件信息的集合。
在本申请实施例中,各元件的硬件信息包括但不限于设计批次,加工生产批量、硬件版本号等中的一种或几种。
LPWA芯片内部包括引导程序加载的bootloader区、多个内核kernelA~N区、应用程序区Application、以及备份区Backup。
MCU芯片和LPWA芯片之间采用UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输)方式传输,且MCU芯片可以对LPWA芯片进行boot操作。
MCU芯片为无线设备系统的主要组成部分,负责无线设备自身除无线通信外的相关功能,比如共享单车的MCU芯片负责控制电机控制器、电子锁等功能。应理解,在部分无线设备中可能有多个MCU芯片共同连接至LPWA进行数据传输,此时各MCU芯片的固件升级方式与仅有一个MCU芯片时的固件升级方式是一致的。
nandflash芯片,与MCU芯片通过SPI(Serial Peripheral Interface,串行外设接口)连接,在平时用于存储无线设备运行过程中产生的相关大容量信息,如运行log等信息。在进行LPWA固件升级时,则用于进行LPWA芯片内的原有LPWA固件的保存。
在上述固件升级系统的基础上,下面以固件测试场景为例,对本申请做示例说明。
固件服务器向各无线设备发送信息获取请求。各无线设备在接收到信息获取请求后,上报设备信息。设备信息中包括LPWA芯片采集到的电信号、无线设备的设备唯一编号、以及无线设备的软件版本号。
固件服务器根据各无线设备上报的设备信息中包含的电信号,确定各无线设备中各元件的硬件信息集合。
然后,先根据各设备的设备唯一编号,判断各无线设备是否属于本次待测试的固件对应的设备。若是,根据各无线设备的软件版本号判断各无线设备是否具有本次待测试的固件对应的软件运行条件。若是,判断无线设备当前的硬件信息集合与目标硬件信息集合一致。
以上三次判断都通过的无线设备即确定为目标无线设备,向这些目标无线设备下发待测试的固件。
假设待测试的固件既包括LPWA固件,又包括MCU固件。
首先,LPWA芯片判断是否已将新的LPWA固件下载至备份区Backup,若是,通知MCU芯片删除nandflash芯片内的信息,然后LPWA芯片将内部的原有LPWA固件传输至nandflash芯片保存。然后LPWA芯片即采用新的LPWA固件对自身进行固件升级。
此时,一旦出现升级失败的情况,则由MCU芯片读取nandflash芯片内的原有LPWA固件对LPWA芯片进行强制恢复。
在LPWA芯片升级完毕或者恢复完毕后,LPWA芯片可以将MCU芯片内的原有MCU固件备份至无线设备的LPWA芯片的备份区Backup,然后再采用新的MCU固件对MCU芯片进行固件升级。
此时,一旦出现升级失败的情况,LPWA芯片即可采用原有MCU固件恢复MCU芯片。
应理解,上述过程中描述的是先进行LPWA芯片的升级,再进行的MCU芯片的升级。在实际应用过程中,也可以先进行MCU芯片的升级,再进行LPWA芯片的升级。
在升级过程中,记录下升级的相关信息(比如升级成功、升级失败等信息)并上报给固件服务器。
固件服务器在收到相关信息后,即可向目标无线设备下发恢复指令,此时目标无线设备即可利用nandflash芯片内的原有LPWA固件对LPWA芯片进行恢复,利用备份区Backup内的原有MCU固件恢复MCU芯片(对于升级失败的芯片由于在失败后就已经进行了恢复操作,故而可以不再进行重复的恢复操作)。
通过上述方案,实现了对于硬件信息的检测功能,实现了对于无线设备进行精细化管理的能力。且通过nandflash芯片保存原有的LPWA固件,实现了LPWA芯片在自升级失败情况下的恢复,以及测试完后的版本恢复。
实施例三:
本实施例提供了一种固件服务器,参见图9所示,其包括处理器901、存储器902以及通信总线903。其中:
通信总线903用于实现处理器901和存储器902之间的连接通信。
处理器901用于执行存储器902中存储的一个或多个程序,以实现上述实施例一和/或实施例二中固件服务器所执行的固件升级方法。
可以理解,图9所示的结构仅为示意,固件服务器还可包括比图9中所示更多或者更少的组件,或者具有与图9所示不同的配置。例如,固件服务器还包括有通信模块,从而实现与各无线设备之间的通信。
本实施例还提供了一种可读存储介质,如软盘、光盘、硬盘、闪存、U盘、SD(SecureDigital Memory Card,安全数码卡)卡、MMC(Multimedia Card,多媒体卡)卡等,在该可读存储介质中存储有实现上述各个步骤的一个或者多个程序,这一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例一和/或实施例二中固件服务器所执行的固件升级方法的,或实现上述实施例一和/或实施例二中无线设备所执行的固件升级方法。在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
在本文中,多个是指两个或两个以上。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
- 无线设备、固件升级方法、固件服务器及可读存储介质
- 路由器固件升级方法、服务器及计算机可读存储介质