CN112445507B - 一种设备的升级方法和装置 - Google Patents
一种设备的升级方法和装置 Download PDFInfo
- Publication number
- CN112445507B CN112445507B CN201910839320.9A CN201910839320A CN112445507B CN 112445507 B CN112445507 B CN 112445507B CN 201910839320 A CN201910839320 A CN 201910839320A CN 112445507 B CN112445507 B CN 112445507B
- Authority
- CN
- China
- Prior art keywords
- firmware
- upgrade
- upgrading
- module
- upgrade package
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 74
- 230000006855 networking Effects 0.000 claims abstract description 134
- 238000005192 partition Methods 0.000 claims description 67
- 230000004044 response Effects 0.000 claims description 45
- 238000012544 monitoring process Methods 0.000 claims description 29
- 230000011218 segmentation Effects 0.000 claims description 5
- 238000004891 communication Methods 0.000 abstract description 14
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 9
- 230000005856 abnormality Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000012795 verification Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供了一种设备的升级方法及装置,应用于与服务器进行通信连接的设备,所述设备包括联网模组与MCU模组,通过所述联网模组获取所述服务器发送的升级信息,当所述升级信息为针对所述MCU模组的固件升级信息时,则所述联网模组获取与所述固件升级信息对应的固件升级包,并对所述固件升级包进行储存,然后所述MCU模组根据存储后的固件升级包,进行固件升级,从而通过采用本地存储MCU模组的升级固件,然后再启动本地MCU模组的固件升级,实现设备固件的分阶段升级,平衡了固件下载和本地升级两部分所需要的时间,提高了升级效率,并且存储于本地的升级固件可以随时响应MCU模组的升级指令,适应MCU模组的不同升级时机,适应性好。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种设备的升级方法和一种设备的升级装置。
背景技术
随着互联网技术的飞速发展,越来越多的设备向着智能化的方向发展。则对于智能化的设备而言,OTA(over the air,空中下载)的升级必不可少,且OTA的升级也越来越频繁。在设备中,通常由单片机作为微控制单元(Microcontroller Unit,MCU)完成对设备的数据处理与运算等功能的实现,而对于单片机(微控制单元)的而言,其不具备联网能力,因此需要外接具有联网能力的模组。则在这种场景下的OTA升级,固件数据需要通过具备联网能力的模组进行中转,然后转发至MCU,从而实现MCU的固件升级。
然而,这种固件升级方式存在以下缺点:1、实时通信链路太长:从云端到联网模组,再到MCU,若其中任何一个环节出现问题,则容易导致升级失败,OTA升级失败率较高;2、占用云端资源时间长:云端推送固件很快,但终端的串行总线速度有限,容易出现下载的时间由串行总线发送数据的时间决定,进而导致云端资源被占用的时间增长;3、终端容易出现异常:在OTA升级过程中,MCU需要实时响应升级请求,若终端处于不可打断的工作状态时,则容易造成终端出现异常。
发明内容
本申请实施例所要解决的技术问题是提供一种设备的升级方法,以解决当前设备的MCU模组升级过程中,耗时较长、失败率高以及长时间占用云端服务器资源,且设备容易出现升级异常等问题。
相应的,本申请实施例还提供了一种设备的升级装置,用以保证上述方法的实现及应用。
为了解决上述问题,本申请公开了一种设备的升级方法,所述设备包括联网模组与MCU模组,所述设备与服务器进行通信连接,所述方法包括:
所述联网模组获取所述服务器发送的升级信息;
当所述升级信息为针对所述MCU模组的固件升级信息时,则所述联网模组获取与所述固件升级信息对应的固件升级包,并对所述固件升级包进行储存;
所述MCU模组根据存储后的固件升级包,进行固件升级。
可选地,所述联网模组具有存储分区,所述联网模组获取与所述固件升级信息对应的固件升级包,并对所述固件升级包进行储存,包括:
所述联网模组确定与所述固件升级信息对应的URL标识,并初始化所述存储分区;
所述联网模组获取与所述URL标识对应的固件升级包;
当所述固件升级包校验成功后,所述联网模组将所述固件升级包存储于所述存储分区中。
可选地,所述固件升级包包括若干个子升级包,所述联网模组获取与所述URL标识对应的固件升级包,包括:
所述联网模组确定与所述固件升级信息对应的固件信息,所述固件信息包括固件大小;
当所述固件大小大于或等于预设阈值时,则所述联网模组分段获取与所述URL标识对应的子升级包;
当所述固件大小小于预设阈值时,则所述联网模组获取与所述URL标识对应的所述子升级包。
可选地,当所述固件升级包校验成功后,所述联网模组将所述固件升级包存储于所述存储分区中,包括:
当所述子升级包检验成功后,所述联网模组分段将所述子升级包存储于所述存储分区中,或,所述联网模组将各个所述子升级包存储于所述存储分区中。
可选地,所述MCU模组具有第一版本号,所述固件升级包对应第二版本号,所述MCU模组根据存储后的固件升级包,进行固件升级,包括:
当所述第一版本号与所述第二版本号匹配成功时,所述MCU模组生成针对所述固件升级包的响应指令;
当所述响应指令为升级指令时,则所述MCU模组根据所述升级指令,进行固件升级。
可选地,所述MCU模组包括原始固件,所述原始固件对应第一哈希值,所述固件升级包包括目标固件,所述目标固件对应第二哈希值,所述MCU模组根据所述升级指令,进行固件升级,包括:
当所述第一哈希值与所述第二哈希值一致时,则所述MCU模组采用所述联网模组发送的目标固件,进行固件升级。
可选地,所述MCU模组根据存储后的固件升级包,进行固件升级,还包括:
当所述响应指令为监听指令时,则所述MCU模组进入监听所述MCU模组是否满足固件升级条件的状态;
当所述MCU模组监听到自身满足固件升级条件时,则采用所述联网模组发送的目标固件,进行固件升级。
可选地,所述采用所述目标固件,进行固件升级,包括:
所述MCU模组采用所述子升级包中的固件,分段进行固件升级;
或,
所述MCU模组采用所述子升级包中的固件,进行固件升级。
可选地,还包括:
当所述MCU模组升级成功后,所述联网模组保存所述第二版本号。
本申请实施例还公开了一种设备的升级方法,应用于与服务器通信连接的设备,所述方法包括:
获取所述服务器发送的升级信息;
当所述升级信息为针对所述设备的固件升级信息时,则获取与所述固件升级信息对应的固件升级包,并对所述固件升级包进行储存;
根据存储后的固件升级包,进行固件升级。
可选地,所述设备具有存储分区,所述获取与所述固件升级信息对应的固件升级包,并对所述固件升级包进行储存,包括:
确定与所述固件升级信息对应的URL标识,并初始化所述存储分区;
获取与所述URL标识对应的固件升级包;
当所述固件升级包校验成功后,将所述固件升级包存储于所述存储分区中。
可选地,所述固件升级包包括若干个子升级包,所述获取与所述URL标识对应的固件升级包,包括:
确定与所述固件升级信息对应的固件信息,所述固件信息包括固件大小;
当所述固件大小大于或等于预设阈值时,则分段获取与所述URL标识对应的子升级包;
当所述固件大小小于预设阈值时,则获取与所述URL标识对应的所述子升级包。
可选地,所述当所述固件升级包校验成功后,将所述固件升级包存储于所述存储分区中,包括:
当所述子升级包检验成功后,分段将所述子升级包存储于所述存储分区中,或,将各个所述子升级包存储于所述存储分区中。
可选地,所述设备具有第一版本号,所述根据存储后的固件升级包,进行固件升级,包括:
获取与所述固件升级包对应的第二版本号;
当所述第一版本号与所述第二版本号匹配成功时,则生成针对所述固件升级包的响应指令;
当所述响应指令为升级指令时,则根据所述升级指令,进行固件升级。
可选地,所述设备包括原始固件,所述原始固件对应第一哈希值,所述固件升级包包括目标固件,所述目标固件对应第二哈希值,所述根据所述升级指令,进行固件升级,包括:
当所述第一哈希值与所述第二哈希值一致时,则采用所述目标固件,进行固件升级。
可选地,所述根据存储后的固件升级包,进行固件升级,还包括:
当所述响应指令为监听指令时,则进入监听所述设备是否满足固件升级条件的状态;
当监听到自身满足固件升级条件时,则采用所述目标固件,进行固件升级。
可选地,所述采用所述目标固件,进行固件升级,包括:
采用所述子升级包中的固件,分段进行固件升级;
或,
采用所述子升级包中的固件,进行固件升级。
可选地,还包括:
当固件升级成功后,保存所述第二版本号。
本申请还公开了一种设备的升级装置,所述设备包括联网模组与MCU模组,所述设备与服务器进行通信连接,所述装置包括:
升级信息获取模块,用于所述联网模组获取所述服务器发送的升级信息;
固件升级包存储模块,用于当所述升级信息为针对所述MCU模组的固件升级信息时,则所述联网模组获取与所述固件升级信息对应的固件升级包,并对所述固件升级包进行储存;
固件升级模块,用于所述MCU模组根据存储后的固件升级包,进行固件升级。
可选地,所述联网模组具有存储分区,所述固件升级包存储模块包括:
分区初始化子模块,用于所述联网模组确定与所述固件升级信息对应的URL标识,并初始化所述存储分区;
固件升级包获取子模块,用于所述联网模组获取与所述URL标识对应的固件升级包;
固件升级包存储子模块,用于当所述固件升级包校验成功后,所述联网模组将所述固件升级包存储于所述存储分区中。
可选地,所述固件升级包包括若干个子升级包,所述固件升级包获取子模块包括:
固件信息获取单元,用于所述联网模组确定与所述固件升级信息对应的固件信息,所述固件信息包括固件大小;
第一子升级包获取单元,用于当所述固件大小大于或等于预设阈值时,则所述联网模组分段获取与所述URL标识对应的子升级包;
第二子升级包获取单元,用于当所述固件大小小于预设阈值时,则所述联网模组获取与所述URL标识对应的所述子升级包。
可选地,所述固件升级包存储子模块具体用于:
当所述子升级包检验成功后,所述联网模组分段将所述子升级包存储于所述存储分区中,或,所述联网模组将各个所述子升级包存储于所述存储分区中。
可选地,所述MCU模组具有第一版本号,所述固件升级包对应第二版本号,所述固件升级模块包括:
响应指令生成子模块,用于当所述第一版本号与所述第二版本号匹配成功时,所述MCU模组生成针对所述固件升级包的响应指令;
第一固件升级子模块,用于当所述响应指令为升级指令时,则所述MCU模组根据所述升级指令,进行固件升级。
可选地,所述MCU模组包括原始固件,所述原始固件对应第一哈希值,所述固件升级包包括目标固件,所述目标固件对应第二哈希值,所述固件升级子模块具体用于:
当所述第一哈希值与所述第二哈希值一致时,则所述MCU模组采用所述联网模组发送的目标固件,进行固件升级。
可选地,所述固件升级模块还包括:
监听子模块,用于当所述响应指令为监听指令时,则所述MCU模组进入监听所述MCU模组是否满足固件升级条件的状态;
第二固件升级子模块,用于当所述MCU模组监听到自身满足固件升级条件时,则采用所述联网模组发送的目标固件,进行固件升级。
可选地,所述固件升级子模块具体用于:
所述MCU模组采用所述子升级包中的固件,分段进行固件升级;
或,
所述MCU模组采用所述子升级包中的固件,进行固件升级。
可选地,还包括:
版本号存储模块,用于当所述MCU模组升级成功后,所述联网模组保存所述第二版本号。
本申请还公开了一种设备的升级装置,应用于与服务器通信连接的设备,所述装置包括:
升级信息获取模块,用于获取所述服务器发送的升级信息;
固件升级包存储模块,用于当所述升级信息为针对所述MCU模组的固件升级信息时,则获取与所述固件升级信息对应的固件升级包,并对所述固件升级包进行储存;
固件升级模块,用于根据存储后的固件升级包,进行固件升级。
可选地,所述设备具有存储分区,所述固件升级包存储模块包括:
分区初始化子模块,用于确定与所述固件升级信息对应的URL标识,并初始化所述存储分区;
固件升级包获取子模块,用于获取与所述URL标识对应的固件升级包;
固件升级包存储子模块,用于当所述固件升级包校验成功后,将所述固件升级包存储于所述存储分区中。
可选地,所述固件升级包包括若干个子升级包,所述固件升级包获取子模块包括:
固件信息获取单元,用于确定与所述固件升级信息对应的固件信息,所述固件信息包括固件大小;
第一子升级包获取单元,用于当所述固件大小大于或等于预设阈值时,则分段获取与所述URL标识对应的子升级包;
第二子升级包获取单元,用于当所述固件大小小于预设阈值时,则获取与所述URL标识对应的所述子升级包。
可选地,所述固件升级包存储子模块具体用于:
当所述子升级包检验成功后,分段将所述子升级包存储于所述存储分区中,或,将各个所述子升级包存储于所述存储分区中。
可选地,所述设备具有第一版本号,所述固件升级模块包括:
响应指令生成子模块,用于获取与所述固件升级包对应的第二版本号;
第一固件升级子模块,用于当所述第一版本号与所述第二版本号匹配成功时,则生成针对所述固件升级包的响应指令;
当所述响应指令为升级指令时,则根据所述升级指令,进行固件升级。
可选地,所述设备包括原始固件,所述原始固件对应第一哈希值,所述固件升级包包括目标固件,所述目标固件对应第二哈希值,所述固件升级子模块具体用于:
当所述第一哈希值与所述第二哈希值一致时,则采用所述目标固件,进行固件升级。
可选地,所述根据存储后的固件升级包,进行固件升级,还包括:
监听子模块,用于当所述响应指令为监听指令时,则进入监听所述设备是否满足固件升级条件的状态;
第二固件升级子模块,用于当监听到自身满足固件升级条件时,则采用所述目标固件,进行固件升级。
可选地,所述固件升级子模块具体用于:
采用所述子升级包中的固件,分段进行固件升级;
或,
采用所述子升级包中的固件,进行固件升级。
可选地,还包括:
版本号存储模块,用于当固件升级成功后,保存所述第二版本号。
与现有技术相比,本申请实施例包括以下优点:
在本申请实施例中,应用于与服务器进行通信连接的设备,所述设备包括联网模组与MCU模组,通过所述联网模组获取所述服务器发送的升级信息,当所述升级信息为针对所述MCU模组的固件升级信息时,则所述联网模组获取与所述固件升级信息对应的固件升级包,并对所述固件升级包进行储存,然后所述MCU模组根据存储后的固件升级包,进行固件升级,从而通过采用本地存储MCU模组的升级固件,然后再启动本地MCU模组的固件升级,实现设备固件的分阶段升级,平衡了固件下载和本地升级两部分所需要的时间,提高了升级效率,并且存储于本地的升级固件可以随时响应MCU模组的升级指令,适应MCU模组的不同升级时机,适应性好。
附图说明
图1是本申请的一种设备的升级方法实施例一的步骤流程图;
图2是本申请的一种设备的升级方法实施例一中通信连接示意图;
图3是本申请的一种设备的升级方法实施例一中MCU模组升级的示意图;
图4是本申请的一种设备的升级方法实施例一中固件升级的流程示意图;
图5是本申请的一种设备的升级方法实施例二的步骤流程图;
图6是本申请的一种设备的升级装置实施例一的结构框图;
图7是本申请的一种设备的升级装置实施例二的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请的一种设备的升级方法实施例一的步骤流程图,所述设备包括联网模组与MCU模组,所述设备与云端服务器进行通信连接,具体可以包括如下步骤:
步骤101,所述联网模组获取所述服务器发送的升级信息;
许多嵌入式系统部署在人类操作员很难或无法访问的地方。对于物联网应用程序而言更是如此,物联网应用程序通常数量较大,电池寿命有限。如监视人或机器健康状况的嵌入式系统等。这些挑战,再加上快速的软件生命周期,导致许多系统需要对OTA更新提供支持。
作为一种示例,设备可以为部署在物联网中的嵌入式系统(下述说明中,以设备为嵌入式系统进行说明),这些嵌入式系统可以包括具有连接网络的联网模组,以及没有联网能力、负责对嵌入式系统进行数据处理与运算的单片机等,则在OTA升级过程中,嵌入式系统可以通过联网模组获取对应的固件升级包,然后将固件升级包传输至单片机,实现单片机的OTA固件升级,以新的软件替换单片机在先的软件,完成嵌入式系统的OTA更新。
并且,对于海量的物联网设备,可以将待升级的固件版本以P2P(peer-to-peer,点对点)方式进行传输。具体的,物联网中的边缘设备可以组成局域网的方式,或其他近场通信的方式,实现设备之间的资源共享,则对于相同类型设备的固件升级,云服务器可以通过向其中一台设备下发固件版本,由该设备对固件版本进行共享,即可以实现多台设备同时进行固件升级,大大简化了设备固件升级的流程,提高了设备升级的效率。
此外,当边缘设备组成局域网时,还可以在局域网中设置缓存设备,用于对该局域网中其他设备的升级固件等文件或其他文件进行存储。当工作人员将新版本的升级固件上传至服务器后,服务器可以将该升级固件下发至缓存设备,由缓存设备进行缓存,当其他设备需要进行固件升级时,可以从该缓存设备中获取固件升级包,实现本地局域网的固件升级,从而设备可以实现本地固件升级,避免升级过程网络不稳定或中断,造成设备宕机,保证了升级的安全性,以及提高了设备升级的成功率。以下实施例以设备从云端服务器获取固件升级包为例进行示例性说明,可以理解的是,本申请不局限于此。
在本申请实施例中,当嵌入式系统有新的固件需要更新时,工作人员可以登录云端服务器,将固件升级包上传云端服务器,触发云端服务器向嵌入式系统发送OTA的升级信息,从而嵌入式系统可以通过联网模组接收到云端服务器发送的升级信息。
在具体实现中,联网模组可以包括2G/3G/4G/5G/WIFI等芯片模组,其可以通过不同的网络与服务器进行通信连接,从而获取对应的数据。MCU模组可以为没有联网能力的微控制器芯片模组,其可以为单片机或微处理器等,负责嵌入式系统中的数据处理与运算等功能的实现。如图2所示,示出了本申请的一种设备的升级方法实施例一中通信连接示意图,嵌入式系统可以通过网络与云端服务器进行通信连接,联网模组与MCU模组之间可以通过串行总线进行通信连接,从而实现两者之间的数据传输。
具体的,嵌入式系统往往部署于工作人员无法访问的地方,则当嵌入式系统需要进行固件升级时,工作人员可以在云端服务器上传固件升级包,并触发固件升级,由云端服务器向嵌入式系统发送升级信息,从而联网模组可以接收到云端服务器发送的升级信息。并且,云端在触发固件升级时,可以自动向嵌入式系统发送升级信息,也可以先向嵌入式系统发送询问信息,待嵌入式系统回应后,再发送升级信息,从而避免云端在嵌入式系统处于工作状态时,打断嵌入式系统的工作,造成设备宕机,保证了设备的安全性,提高了升级的成功率。
步骤102,当所述升级信息为针对所述MCU模组的固件升级信息时,则所述联网模组获取与所述固件升级信息对应的固件升级包,并对所述固件升级包进行储存;
在本申请实施例中,云端服务器发送的升级信息可以包括针对嵌入式系统的固件升级信息,还可以为针对联网模组的固件升级信息等。则当升级信息为针对MCU模组的固件升级信息时,联网模组可以获取与固件升级信息对应的固件升级包,并将固件升级包保存与嵌入式系统的本地中,实现升级固件的本地缓存。
在具体实现中,嵌入式系统可以由多个不同的模组组成,则对于不同的模组,可以通过不同的固件升级包进行固件升级。其中,对于嵌入式系统的MCU模组的固件升级,由于MCU模组负责嵌入式系统的数据处理与运算等功能的实现,当嵌入式系统处于工作状态时,并不能实现MCU模组的固件升级。则当联网模组接收到云端服务器发送的升级信息,并对升级信息进行解析后,确定该升级信息为针对MCU模组的固件升级信息时,可以获取与该固件升级信息对应的固件升级包,并将该固件升级包存储于嵌入式系统的本地中,从而当MCU模组处于可以进行固件升级的状态时,则可以直接根据本地的固件升级包进行固件升级,避免了长时间占用云端资源,提高了云端资源的利用率。
在本申请实施例的一种可选实施例中,联网模组具有存储分区,则步骤102可以包括如下子步骤:
子步骤S11,所述联网模组确定与所述固件升级信息对应的URL标识,并初始化所述存储分区;
子步骤S12,所述联网模组获取与所述URL标识对应的固件升级包;
子步骤S13,当所述固件升级包校验成功后,所述联网模组将所述固件升级包存储于所述存储分区中。
在本申请实施例中,当嵌入式系统的联网模组确定了升级信息为针对MCU模组的固件升级信息后,可以对联网模组的Flash分区进行初始化,并从固件升级信息中获取用于下载固件升级包的URL标识,接着可以获取与该URL标识对应的固件升级包,并对固件升级包进行校验,当校验成功后,则将该固件升级包存储于Flash分区中,然后等待MCU模组的响应指令。
在具体实现中,嵌入式系统接收到云端服务器发送的固件升级信息后,联网模组可以对该固件升级信息进行解析,得到用于获取固件升级包的URL标识、固件信息等,其中,固件信息可以包括升级固件的固件大小,固件标识等。接着联网模组可以采用该URL标识向云端服务器请求获取对应的固件升级包,云端服务器接收到请求后,则向嵌入式系统推送该固件升级包。当嵌入式系统接收到固件升级包后,联网模组可以对采用固件标识对固件升级包进行校验,以验证固件升级包是否包含对应的升级固件,当固件升级包校验成功后,则将该固件升级包存储于Flash分区中,并向云端服务器发送下载成功信息;当固件升级包下载失败或校验失败后,联网模组可以向云端服务器发送下载失败或校验失败指令,以重新获取固件升级包。
在具体实现中,MCU模组固件的升级可以分为阶段性升级以及日常升级,其中,阶段性升级可以为由当前版本升级到下一版本的升级,阶段性升级对应的升级固件往往比较大,而日常升级则可以为MCU模组的日常维护,或小型漏洞的修补,日常升级所对应的升级固件则往往比较小。
其中,对于大型升级固件和小型升级固件的固件升级包,均可以由若干个子升级包组成,并且,一些小型升级固件的固件升级包可以仅由一个子升级包组成。当联网模组对服务器发送的固件升级信息进行解析,得到固件升级包的固件大小时,可以对固件大小进行检测,从而可以根据升级固件的固件大小,采用不同的缓存以及升级方式。
具体的,当固件大小大于或等于预设阈值时,则联网模组可以分段获取与URL标识对应的子升级包,并分段将子升级包存储于存储分区中;当固件大小小于预设阈值时,则联网模组可以采用一次性获取的方式,获取与URL标识对应的所有子升级包,并将各个子升级包存储于存储分区中。其中,设备可以在联动模组中设置一个阈值,用于对升级固件的大小进行判断,从而对不同固件大小的升级固件进行区别处理,当升级固件的固件大小较小时,可以采用一次性缓存的方式,将整个固件缓存至联网模组的Flash分区中;当升级固件大小较大时,则采用分段缓存的方式,将一个完整的升级固件,分成若干个子升级固件,并进行分段存储,从而可以实现根据MCU模组升级固件的固件大小,进行单次固件缓存,或分阶段、多次固件缓存,提高了升级固件缓存的灵活性,且保证了设备升级的成功率。
步骤103,所述MCU模组根据存储后的固件升级包,进行固件升级。
在本申请实施例中,当联网模组将固件升级包存储于Flash分区后,可以将固件升级包通过串行总线传输至MCU模组,从而MCU模组可以根据自身状态,采用该固件升级包进行固件升级,进而将嵌入式系统的升级流程分为固件下载和本地升级两个阶段,平衡了固件下载时间与本地升级时间,优化了升级流程,并且存储于本地的固件升级包可以随时响应MCU模组的升级,适应MCU模组的不同升级时机,适应性好。
在具体实现中,固件升级包可以对应一版本号,则当联网模组将固件升级包存储于Flash分区后,可以将该版本号发送至MCU模组,然后MCU模组可以根据自身的工作状态,决定是否进行固件升级。
在本申请实施例的一种可选实施例中,步骤103可以包括如下子步骤:
步骤S21,当所述第一版本号与所述第二版本号匹配成功时,所述MCU模组生成针对所述固件升级包的响应指令;
步骤S22,当所述响应指令为升级指令时,则所述MCU模组根据所述升级指令,进行固件升级。
在本申请实施例中,MCU模组中的原始固件可以对应第一版本号,固件升级包中的目标固件可以对应第二版本号,则MCU模组可以获取联网模组发送的固件升级包中目标固件对应的第二版本号,并将该第二版本号与第一版本号进行匹配,当第二版本号新于第一版本号时,即表示固件升级包中的目标固件为新的固件,MCU模组可以根据该目标固件对原始固件进行升级。
当第一版本号与第二版本号匹配成功时,MCU模组可以根据自身的工作状态,生成针对固件升级包的响应指令,以进行固件升级,从而嵌入式系统可以根据自身的工作状态进行固件升级,避免了当MCU模组处于不可升级的状态下,进行强制升级导致的系统异常,有效地避免了系统升级异常,提高了升级的成功率。
在具体实现中,响应指令可以包括升级指令,则当响应指令为升级指令时,表示此时MCU模组处于可进行固件升级的状态,如待机状态。则联网模组可以获取原始固件的第一哈希值,以及固件升级包中目标固件的第二哈希值,并将第一哈希值与第二哈希值进行匹配,以检查目标固件的有效性,当第一哈希值与第二哈希值一致时,表示目标固件有效,则将目标固件发送至MCU模组进行固件升级,完成嵌入式系统的软件升级。当第一哈希值与第二哈希值不一致时,表示目标固件不是针对MCU模组的固件,目标固件无效,则联网模组可以向外接模组发送固件无效指令,以重新获取有效的升级固件,如可以向云端发送固件获取请求,重新获取升级固件。当MCU模组固件升级成功后,联网模组可以保存第二版本号,以便在下一次固件升级的过程中,对固件进行校验。
步骤S23,当所述响应指令为监听指令时,则所述MCU模组进入监听所述MCU模组是否满足固件升级条件的状态;
步骤S24,当所述MCU模组监听到自身满足固件升级条件时,则采用所述联网模组发送的目标固件,进行固件升级。
在具体实现中,响应指令还可以包括监听指令,则当响应指令为监听指令时,表示此时MCU处于不可进行固件升级的状态,如工作状态,若强制进行固件升级,则容易导致系统出现异常,进而导致设备宕机等情况。当响应指令为监听指令时,则MCU模组进行监听自身是否满足固件升级条件的状态,若监听到自身满足固件升级条件时,则可以采用联网模组发送的目标固件,进行固件升级,完成嵌入式系统的软件升级,从而一方面MCU模组可以根据自身的工作状态进行固件升级,避免了系统的升级异常,提高了升级成功率,另一方面,存储于本地的固件升级包可以随时响应MCU模组的升级指令,适应MCU模组的不同升级时机,适应性好。
在具体实现中,由于联网模组可以采用分段式缓存的方式对固件升级包进行缓存,也可以采用一次性缓存的方式对固件升级包进行缓存,则当联网模组采用分段式缓存的方式对子升级包进行缓存时,则MCU模组可以采用子升级包中的升级固件,分段进行固件升级;当联网模组采用一次性缓存的方式对固件升级包进行缓存时,则MCU模组可以采用子升级包中的升级固件,一次性进行固件升级,从而设备可以实现根据MCU模组升级固件的固件大小,进行单次固件缓存,或分阶段、多次固件缓存,提高了设备升级的灵活性,且保证了设备升级的成功率。
在本申请实施例的一种示例中,如当MCU模组的升级版本较大(升级固件大小大于预设阈值)时,则服务器可以将固件升级包按照升级状态的不同,将固件升级包分为固件大小不同的多个子升级包。则当设备的联动模组检测到升级固件的固件大小大于或等于预设阈值时,则分段从服务器中获取子升级包,并进行分段升级。如固件升级包可以包括5个子升级包,固件大小可以为:子升级包1>子升级包2>子升级包3>子升级包4>子升级包5,则联网模组可以先获取子升级包5,并进行缓存,当MCU模组依据子升级包5进行固件升级完毕后,则联网模组可以获取子升级包4,并进行缓存,然后MCU模组依据子升级包4进行固件升级,并以此类推,直至MCU模组完成当次的固件版本升级,从而设备可以实现根据MCU模组升级固件的固件大小,采用分阶段式缓存和升级,提高了设备升级的灵活性,且保证了设备升级的成功率。
在本申请实施例的一种示例中,如图3所示,示出了本申请的一种设备的升级方法实施例一中MCU模组升级的示意图,当联网模组下载了固件升级包,并存储于本地的Flash分区后,可以随时响应MCU模组进行固件升级。具体的,联网模组可以先向MCU模组发送固件升级包中的目标固件的第二版本号,当MCU模组接收到第二版本号后,可以将该第二版本号与自身中原始固件对应的第一版本号进行匹配,当第二版本号新于第一版本号时,即表示固件升级包中的目标固件为新的固件,MCU模组可以根据该目标固件对原始固件进行升级。当第一版本号与第二版本号匹配成功时,MCU模组可以根据自身的工作状态,生成针对固件升级包的响应指令,并将该响应指令发送至联网模组。当响应指令为升级指令时,则联网模组可以根据固件对应的哈希值,对目标固件的有效性进行验证,当验证结果为目标固件合法时,则将该目标固件发送至MCU模组进行固件升级;当验证结果为目标固件不合法时,则联网模组可以向MCU模组发送固件无效指令。当响应指令为监听指令时,则联网模组进入等待升级指令的状态,并且MCU模组进行监听自身是否满足固件升级条件的状态,从而一方面MCU模组可以根据自身的工作状态进行固件升级,避免了系统的升级异常,提高了升级成功率,另一方面,存储于本地的固件升级包可以随时响应MCU模组的升级指令,适应MCU模组的不同升级时机,适应性好。
在本申请实施例的另一种示例中,如图4所示,示出了本申请的一种设备的升级方法实施例一中固件升级的流程示意图,当有新的MCU模组固件需要更新,用户登录云端服务器上传用于升级的目标固件,触发OTA升级,云端服务器可以向设备端发送升级信息。当设备端接收到云端服务器下发的升级信息后,可以进行解析,若检测到升级信息为针对MCU模组的固件升级信息时,设备端可以初始化用于存储MCU模组固件的Flash分区,并获取下载固件的URL等信息然后将相关信息保存。接着设备可以向云端请求目标固件,云端服务器接收到请求后,开始推送目标固件到设备端。设备端完成目标固件的下载后,对目标固件进行校验,若目标固件校验成功,设备端会向云端服务器上报MCU模组固件下载成功指令,接着通过联网模组向MCU模组发送目标固件的版本号;若下载失败或固件校验失败,设备端向云端上报下载失败指令。当设备端的MCU模组接收到连接类模组发送的固件的版本号,会根据自身情况,决定是否升级,如果需要升级,发送升级指令给联网模组,如果当前状态不允许升级,发送监听指令。当联网模组收到MCU模组的升级指令后,读取MCU模组中原始固件对应的第一哈希值,并计算已经下载的目标固件的第二哈希值,然后将第一哈希值与第二哈希值进行校验对比,检查目标固件的有效性;若目标固件有效,发送目标固件给MCU模组,否则发生固件无效指令给MCU模组。当MCU模组升级成功后,MCU模组可以发送目标固件的版本号给联网模组,联网模组会将升级保存,从而通过采用本地存储MCU模组的升级固件,然后再启动本地MCU模组的固件升级,实现设备固件的分阶段升级,平衡了固件下载和本地升级两部分所需要的时间,提高了升级效率,并且存储于本地的升级固件可以随时响应MCU模组的升级指令,适应MCU模组的不同升级时机,适应性好。
在本申请实施例中,应用于与服务器进行通信连接的设备,所述设备包括联网模组与MCU模组,通过所述联网模组获取所述服务器发送的升级信息,当所述升级信息为针对所述MCU模组的固件升级信息时,则所述联网模组获取与所述固件升级信息对应的固件升级包,并对所述固件升级包进行储存,然后所述MCU模组根据存储后的固件升级包,进行固件升级,从而通过采用本地存储MCU模组的升级固件,然后再启动本地MCU模组的固件升级,实现设备固件的分阶段升级,平衡了固件下载和本地升级两部分所需要的时间,提高了升级效率,并且存储于本地的升级固件可以随时响应MCU模组的升级指令,适应MCU模组的不同升级时机,适应性好。
参照图5,示出了本申请的一种设备的升级方法实施例二的步骤流程图,应用于与服务器通信连接的设备,具体可以包括如下步骤:
步骤501,获取所述服务器发送的升级信息;
步骤502,当所述升级信息为针对所述MCU模组的固件升级信息时,则获取与所述固件升级信息对应的固件升级包,并对所述固件升级包进行储存;
步骤503,根据存储后的固件升级包,进行固件升级。
在本申请实施例的一种可选实施例中,所述设备具有存储分区,所述获取与所述固件升级信息对应的固件升级包,并对所述固件升级包进行储存,包括:
确定与所述固件升级信息对应的URL标识,并初始化所述存储分区;
获取与所述URL标识对应的固件升级包;
当所述固件升级包校验成功后,将所述固件升级包存储于所述存储分区中。
在本申请实施例的一种可选实施例中,所述固件升级包包括若干个子升级包,所述获取与所述URL标识对应的固件升级包,包括:
确定与所述固件升级信息对应的固件信息,所述固件信息包括固件大小;
当所述固件大小大于或等于预设阈值时,则分段获取与所述URL标识对应的子升级包;
当所述固件大小小于预设阈值时,则获取与所述URL标识对应的所述子升级包。
在本申请实施例的一种可选实施例中,所述当所述固件升级包校验成功后,将所述固件升级包存储于所述存储分区中,包括:
当所述子升级包检验成功后,分段将所述子升级包存储于所述存储分区中,或,将各个所述子升级包存储于所述存储分区中。
在本申请实施例的一种可选实施例中,所述设备具有第一版本号,所述根据存储后的固件升级包,进行固件升级,包括:
获取与所述固件升级包对应的第二版本号;
当所述第一版本号与所述第二版本号匹配成功时,则生成针对所述固件升级包的响应指令;
当所述响应指令为升级指令时,则根据所述升级指令,进行固件升级。
在本申请实施例的一种可选实施例中,所述设备包括原始固件,所述原始固件对应第一哈希值,所述固件升级包包括目标固件,所述目标固件对应第二哈希值,所述根据所述升级指令,进行固件升级,包括:
当所述第一哈希值与所述第二哈希值一致时,则采用所述目标固件,进行固件升级。
在本申请实施例的一种可选实施例中,所述根据存储后的固件升级包,进行固件升级,还包括:
当所述响应指令为监听指令时,则进入监听所述设备是否满足固件升级条件的状态;
当监听到自身满足固件升级条件时,则采用所述目标固件,进行固件升级。
在本申请实施例的一种可选实施例中,所述采用所述目标固件,进行固件升级,包括:
采用所述子升级包中的固件,分段进行固件升级;
或,
采用所述子升级包中的固件,进行固件升级。
在本申请实施例的一种可选实施例中,还包括:
当固件升级成功后,保存所述第二版本号。
在本申请实施例中,应用于与服务器进行通信连接的设备,通过获取所述服务器发送的升级信息,当所述升级信息为针对所述MCU模组的固件升级信息时,则获取与所述固件升级信息对应的固件升级包,并对所述固件升级包进行储存,根据存储后的固件升级包,进行固件升级,从而通过采用本地存储MCU模组的升级固件,然后再启动本地MCU模组的固件升级,实现设备固件的分阶段升级,平衡了固件下载和本地升级两部分所需要的时间,提高了升级效率,并且存储于本地的升级固件可以随时响应MCU模组的升级指令,适应MCU模组的不同升级时机,适应性好。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图6,示出了本申请一种设备的升级装置实施例的结构框图,所述设备包括联网模组与MCU模组,所述设备与服务器进行通信连接,具体可以包括如下模块:
升级信息获取模块601,用于所述联网模组获取所述服务器发送的升级信息;
固件升级包存储模块603,用于当所述升级信息为针对所述MCU模组的固件升级信息时,则所述联网模组获取与所述固件升级信息对应的固件升级包,并对所述固件升级包进行储存;
固件升级包存储模块603,用于所述MCU模组根据存储后的固件升级包,进行固件升级。
在本申请实施例的一种可选实施例中,所述联网模组具有存储分区,所述固件升级包存储模块602包括:
分区初始化子模块,用于所述联网模组确定与所述固件升级信息对应的URL标识,并初始化所述存储分区;
固件升级包获取子模块,用于所述联网模组获取与所述URL标识对应的固件升级包;
固件升级包存储子模块,用于当所述固件升级包校验成功后,所述联网模组将所述固件升级包存储于所述存储分区中。
在本申请实施例的一种可选实施例中,所述固件升级包包括若干个子升级包,所述固件升级包获取子模块包括:
固件信息获取单元,用于所述联网模组确定与所述固件升级信息对应的固件信息,所述固件信息包括固件大小;
第一子升级包获取单元,用于当所述固件大小大于或等于预设阈值时,则所述联网模组分段获取与所述URL标识对应的子升级包;
第二子升级包获取单元,用于当所述固件大小小于预设阈值时,则所述联网模组获取与所述URL标识对应的所述子升级包。
在本申请实施例的一种可选实施例中,所述固件升级包存储子模块具体用于:
当所述子升级包检验成功后,所述联网模组分段将所述子升级包存储于所述存储分区中,或,所述联网模组将各个所述子升级包存储于所述存储分区中。
在本申请实施例的一种可选实施例中,所述MCU模组具有第一版本号,所述固件升级包对应第二版本号,所述固件升级模块603包括:
响应指令生成子模块,用于当所述第一版本号与所述第二版本号匹配成功时,所述MCU模组生成针对所述固件升级包的响应指令;
第一固件升级子模块,用于当所述响应指令为升级指令时,则所述MCU模组根据所述升级指令,进行固件升级。
在本申请实施例的一种可选实施例中,所述MCU模组包括原始固件,所述原始固件对应第一哈希值,所述固件升级包包括目标固件,所述目标固件对应第二哈希值,所述固件升级子模块具体用于:
当所述第一哈希值与所述第二哈希值一致时,则所述MCU模组采用所述联网模组发送的目标固件,进行固件升级。
在本申请实施例的一种可选实施例中,所述固件升级模块603还包括:
监听子模块,用于当所述响应指令为监听指令时,则所述MCU模组进入监听所述MCU模组是否满足固件升级条件的状态;
第二固件升级子模块,用于当所述MCU模组监听到自身满足固件升级条件时,则采用所述联网模组发送的目标固件,进行固件升级。
在本申请实施例的一种可选实施例中,所述固件升级子模块具体用于:
所述MCU模组采用所述子升级包中的固件,分段进行固件升级;
或,
所述MCU模组采用所述子升级包中的固件,进行固件升级。
在本申请实施例的一种可选实施例中,还包括:
版本号存储模块,用于当所述MCU模组升级成功后,所述联网模组保存所述第二版本号。
参照图7,示出了本申请一种设备的升级装置实施例的结构框图,应用于与服务器通信连接的设备,具体可以包括如下模块:
升级信息获取模块701,用于获取所述服务器发送的升级信息;
固件升级包存储模块702,用于当所述升级信息为针对所述MCU模组的固件升级信息时,则获取与所述固件升级信息对应的固件升级包,并对所述固件升级包进行储存;
固件升级模块703,用于根据存储后的固件升级包,进行固件升级。
在本申请实施例的一种可选实施例中,所述设备具有存储分区,所述固件升级包存储模块702包括:
分区初始化子模块,用于确定与所述固件升级信息对应的URL标识,并初始化所述存储分区;
固件升级包获取子模块,用于获取与所述URL标识对应的固件升级包;
固件升级包存储子模块,用于当所述固件升级包校验成功后,将所述固件升级包存储于所述存储分区中。
在本申请实施例的一种可选实施例中,所述固件升级包包括若干个子升级包,所述固件升级包获取子模块包括:
固件信息获取单元,用于确定与所述固件升级信息对应的固件信息,所述固件信息包括固件大小;
第一子升级包获取单元,用于当所述固件大小大于或等于预设阈值时,则分段获取与所述URL标识对应的子升级包;
第二子升级包获取单元,用于当所述固件大小小于预设阈值时,则获取与所述URL标识对应的所述子升级包。
在本申请实施例的一种可选实施例中,所述固件升级包存储子模块具体用于:
当所述子升级包检验成功后,分段将所述子升级包存储于所述存储分区中,或,将各个所述子升级包存储于所述存储分区中。
在本申请实施例的一种可选实施例中,所述设备具有第一版本号,所述固件升级模块703包括:
响应指令生成子模块,用于获取与所述固件升级包对应的第二版本号;
第一固件升级子模块,用于当所述第一版本号与所述第二版本号匹配成功时,则生成针对所述固件升级包的响应指令;
当所述响应指令为升级指令时,则根据所述升级指令,进行固件升级。
在本申请实施例的一种可选实施例中,所述设备包括原始固件,所述原始固件对应第一哈希值,所述固件升级包包括目标固件,所述目标固件对应第二哈希值,所述固件升级子模块具体用于:
当所述第一哈希值与所述第二哈希值一致时,则采用所述目标固件,进行固件升级。
在本申请实施例的一种可选实施例中,所述根据存储后的固件升级包,进行固件升级,还包括:
监听子模块,用于当所述响应指令为监听指令时,则进入监听所述设备是否满足固件升级条件的状态;
第二固件升级子模块,用于当监听到自身满足固件升级条件时,则采用所述目标固件,进行固件升级。
在本申请实施例的一种可选实施例中,所述固件升级子模块具体用于:
采用所述子升级包中的固件,分段进行固件升级;
或,
采用所述子升级包中的固件,进行固件升级。
在本申请实施例的一种可选实施例中,还包括:
版本号存储模块,用于当固件升级成功后,保存所述第二版本号。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种设备的升级方法和一种设备的升级装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (20)
1.一种设备的升级方法,其特征在于,所述设备包括联网模组与MCU模组,所述设备与服务器进行通信连接,所述方法包括:
所述联网模组获取所述服务器发送的升级信息;
当所述升级信息为针对所述MCU模组的固件升级信息时,则所述联网模组获取与所述固件升级信息对应的固件升级包,并对所述固件升级包进行储存;
所述MCU模组根据存储后的固件升级包,进行固件升级;
其中,所述固件升级包包括若干个子升级包,所述MCU模组根据存储后的固件升级包,进行固件升级,包括:
所述MCU模组获取各子升级包中固件的固件大小,并按照所述固件的固件大小,采用子升级包中的固件,分段进行固件升级。
2.根据权利要求1所述的方法,其特征在于,所述联网模组具有存储分区,所述联网模组获取与所述固件升级信息对应的固件升级包,并对所述固件升级包进行储存,包括:
所述联网模组确定与所述固件升级信息对应的URL标识,并初始化所述存储分区;
所述联网模组获取与所述URL标识对应的固件升级包;
当所述固件升级包校验成功后,所述联网模组将所述固件升级包存储于所述存储分区中。
3.根据权利要求2所述的方法,其特征在于,所述联网模组获取与所述URL标识对应的固件升级包,包括:
所述联网模组确定与所述固件升级信息对应的固件信息,所述固件信息包括固件大小;
当所述固件大小大于或等于预设阈值时,则所述联网模组分段获取与所述URL标识对应的子升级包;
当所述固件大小小于预设阈值时,则所述联网模组获取与所述URL标识对应的所述子升级包。
4.根据权利要求3所述的方法,其特征在于,所述当所述固件升级包校验成功后,所述联网模组将所述固件升级包存储于所述存储分区中,包括:
当所述子升级包检验成功后,所述联网模组分段将所述子升级包存储于所述存储分区中,或,所述联网模组将各个所述子升级包存储于所述存储分区中。
5.根据权利要求3所述的方法,其特征在于,所述MCU模组具有第一版本号,所述固件升级包对应第二版本号,所述MCU模组根据存储后的固件升级包,进行固件升级,包括:
当所述第一版本号与所述第二版本号匹配成功时,所述MCU模组生成针对所述固件升级包的响应指令;
当所述响应指令为升级指令时,则所述MCU模组根据所述升级指令,进行固件升级。
6.根据权利要求5所述的方法,其特征在于,所述MCU模组包括原始固件,所述原始固件对应第一哈希值,所述固件升级包包括目标固件,所述目标固件对应第二哈希值,所述MCU模组根据所述升级指令,进行固件升级,包括:
当所述第一哈希值与所述第二哈希值一致时,则所述MCU模组采用所述联网模组发送的目标固件,进行固件升级。
7.根据权利要求5所述的方法,其特征在于,所述MCU模组根据存储后的固件升级包,进行固件升级,还包括:
当所述响应指令为监听指令时,则所述MCU模组进入监听所述MCU模组是否满足固件升级条件的状态;
当所述MCU模组监听到自身满足固件升级条件时,则采用所述联网模组发送的目标固件,进行固件升级。
8.根据权利要求6或7所述的方法,其特征在于,所述采用所述目标固件,进行固件升级,包括:
所述MCU模组采用所述子升级包中的固件,进行固件升级。
9.根据权利要求3所述的方法,其特征在于,还包括:
当所述MCU模组升级成功后,所述联网模组保存第二版本号。
10.一种设备的升级方法,其特征在于,应用于与服务器通信连接的设备,所述方法包括:
获取所述服务器发送的升级信息;
当所述升级信息为针对所述设备的固件升级信息时,则获取与所述固件升级信息对应的固件升级包,并对所述固件升级包进行储存;
根据存储后的固件升级包,进行固件升级;
其中,所述固件升级包包括若干个子升级包,所述根据存储后的固件升级包,进行固件升级,包括:
获取各子升级包中固件的固件大小;
按照所述固件的固件大小,采用子升级包中的固件,分段进行固件升级。
11.根据权利要求10所述的方法,其特征在于,所述设备具有存储分区,所述获取与所述固件升级信息对应的固件升级包,并对所述固件升级包进行储存,包括:
确定与所述固件升级信息对应的URL标识,并初始化所述存储分区;
获取与所述URL标识对应的固件升级包;
当所述固件升级包校验成功后,将所述固件升级包存储于所述存储分区中。
12.根据权利要求11所述的方法,其特征在于,所述固件升级包包括若干个子升级包,所述获取与所述URL标识对应的固件升级包,包括:
确定与所述固件升级信息对应的固件信息,所述固件信息包括固件大小;
当所述固件大小大于或等于预设阈值时,则分段获取与所述URL标识对应的子升级包;
当所述固件大小小于预设阈值时,则获取与所述URL标识对应的所述子升级包。
13.根据权利要求12所述的方法,其特征在于,所述当所述固件升级包校验成功后,将所述固件升级包存储于所述存储分区中,包括:
当所述子升级包检验成功后,分段将所述子升级包存储于所述存储分区中,或,将各个所述子升级包存储于所述存储分区中。
14.根据权利要求12所述的方法,其特征在于,所述设备具有第一版本号,所述根据存储后的固件升级包,进行固件升级,包括:
获取与所述固件升级包对应的第二版本号;
当所述第一版本号与所述第二版本号匹配成功时,则生成针对所述固件升级包的响应指令;
当所述响应指令为升级指令时,则根据所述升级指令,进行固件升级。
15.根据权利要求14所述的方法,其特征在于,所述设备包括原始固件,所述原始固件对应第一哈希值,所述固件升级包包括目标固件,所述目标固件对应第二哈希值,所述根据所述升级指令,进行固件升级,包括:
当所述第一哈希值与所述第二哈希值一致时,则采用所述目标固件,进行固件升级。
16.根据权利要求14所述的方法,其特征在于,所述根据存储后的固件升级包,进行固件升级,还包括:
当所述响应指令为监听指令时,则进入监听所述设备是否满足固件升级条件的状态;
当监听到自身满足固件升级条件时,则采用目标固件,进行固件升级。
17.根据权利要求15或16所述的方法,其特征在于,所述采用所述目标固件,进行固件升级,包括:
采用所述子升级包中的固件,进行固件升级。
18.根据权利要求13所述的方法,其特征在于,还包括:
当固件升级成功后,保存第二版本号。
19.一种设备的升级装置,其特征在于,所述设备包括联网模组与MCU模组,所述设备与服务器进行通信连接,所述装置包括:
升级信息获取模块,用于所述联网模组获取所述服务器发送的升级信息;
固件升级包存储模块,用于当所述升级信息为针对所述MCU模组的固件升级信息时,则所述联网模组获取与所述固件升级信息对应的固件升级包,并对所述固件升级包进行储存;
固件升级模块,用于所述MCU模组根据存储后的固件升级包,进行固件升级;
其中,所述固件升级包包括若干个子升级包,所述固件升级模块具体用于:
所述MCU模组获取各子升级包中固件的固件大小,并按照所述固件的固件大小,采用子升级包中的固件,分段进行固件升级。
20.一种设备的升级装置,其特征在于,应用于与服务器通信连接的设备,所述装置包括:
升级信息获取模块,用于获取所述服务器发送的升级信息;
固件升级包存储模块,用于当所述升级信息为针对MCU模组的固件升级信息时,则获取与所述固件升级信息对应的固件升级包,并对所述固件升级包进行储存;
固件升级模块,用于根据存储后的固件升级包,进行固件升级;
其中,所述固件升级包包括若干个子升级包,所述固件升级模块具体用于:
所述MCU模组获取各子升级包中固件的固件大小,并按照所述固件的固件大小,采用子升级包中的固件,分段进行固件升级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910839320.9A CN112445507B (zh) | 2019-09-05 | 2019-09-05 | 一种设备的升级方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910839320.9A CN112445507B (zh) | 2019-09-05 | 2019-09-05 | 一种设备的升级方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112445507A CN112445507A (zh) | 2021-03-05 |
CN112445507B true CN112445507B (zh) | 2024-06-11 |
Family
ID=74733595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910839320.9A Active CN112445507B (zh) | 2019-09-05 | 2019-09-05 | 一种设备的升级方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112445507B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138300A (zh) * | 2021-11-19 | 2022-03-04 | 深圳渊联技术有限公司 | 一种固件升级方法及固件升级系统 |
CN114245319B (zh) * | 2021-12-03 | 2023-06-23 | 南京矽力微电子技术有限公司 | 基于蓝牙Mesh的增强广播并发式OTA固件升级方法 |
CN114416161A (zh) * | 2021-12-14 | 2022-04-29 | 杭州微慕科技有限公司 | 一种适用于锂电池远程升级的方法、系统和可读存储介质 |
CN114867046B (zh) * | 2022-07-06 | 2022-09-13 | 深圳市乙辰科技股份有限公司 | 无线网络设备固件更新方法和无线网络设备 |
CN117951706A (zh) * | 2022-10-21 | 2024-04-30 | 京东方科技集团股份有限公司 | 一种固件升级方法、装置、服务器、终端设备及存储介质 |
CN118689514A (zh) * | 2024-08-23 | 2024-09-24 | 天翼物联科技有限公司 | 基于通信模组的终端固件升级方法、系统、设备及介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105262627A (zh) * | 2015-10-30 | 2016-01-20 | Tcl集团股份有限公司 | 一种固件升级方法、装置及系统 |
CN105591824A (zh) * | 2016-01-14 | 2016-05-18 | 杭州赫智电子科技有限公司 | 一种固件升级的方法、系统 |
CN105808292A (zh) * | 2016-03-07 | 2016-07-27 | 西安诺瓦电子科技有限公司 | 嵌入式终端设备的固件升级方法 |
CN106464519A (zh) * | 2015-09-24 | 2017-02-22 | 广东欧珀移动通信有限公司 | 适配器和适配器升级的方法 |
CN106506671A (zh) * | 2016-11-22 | 2017-03-15 | 北京奇虎科技有限公司 | Ota升级处理方法、装置及服务器 |
CN106802818A (zh) * | 2016-12-31 | 2017-06-06 | 智车优行科技(北京)有限公司 | 车载设备的升级方法、业务处理装置和系统、车辆 |
CN106843942A (zh) * | 2016-12-31 | 2017-06-13 | 歌尔科技有限公司 | 穿戴式设备的固件升级方法及穿戴式设备 |
WO2018045700A1 (zh) * | 2016-09-07 | 2018-03-15 | 中兴通讯股份有限公司 | 一种车载自动诊断系统设备及其升级方法 |
CN107992312A (zh) * | 2016-10-25 | 2018-05-04 | 中兴通讯股份有限公司 | 一种升级包下发方法及装置 |
CN108650287A (zh) * | 2018-03-15 | 2018-10-12 | 百度在线网络技术(北京)有限公司 | 物联网中的终端设备的升级方法、设备及计算机可读介质 |
CN109416629A (zh) * | 2017-11-01 | 2019-03-01 | 深圳市大疆创新科技有限公司 | 固件升级方法、电子设备、相机系统和无人飞行器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786405B (zh) * | 2016-02-25 | 2018-11-13 | 华为技术有限公司 | 一种在线升级方法、装置及系统 |
-
2019
- 2019-09-05 CN CN201910839320.9A patent/CN112445507B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106464519A (zh) * | 2015-09-24 | 2017-02-22 | 广东欧珀移动通信有限公司 | 适配器和适配器升级的方法 |
CN105262627A (zh) * | 2015-10-30 | 2016-01-20 | Tcl集团股份有限公司 | 一种固件升级方法、装置及系统 |
CN105591824A (zh) * | 2016-01-14 | 2016-05-18 | 杭州赫智电子科技有限公司 | 一种固件升级的方法、系统 |
CN105808292A (zh) * | 2016-03-07 | 2016-07-27 | 西安诺瓦电子科技有限公司 | 嵌入式终端设备的固件升级方法 |
WO2018045700A1 (zh) * | 2016-09-07 | 2018-03-15 | 中兴通讯股份有限公司 | 一种车载自动诊断系统设备及其升级方法 |
CN107809324A (zh) * | 2016-09-07 | 2018-03-16 | 中兴通讯股份有限公司 | 一种车载自动诊断系统设备及其升级方法 |
CN107992312A (zh) * | 2016-10-25 | 2018-05-04 | 中兴通讯股份有限公司 | 一种升级包下发方法及装置 |
CN106506671A (zh) * | 2016-11-22 | 2017-03-15 | 北京奇虎科技有限公司 | Ota升级处理方法、装置及服务器 |
CN106802818A (zh) * | 2016-12-31 | 2017-06-06 | 智车优行科技(北京)有限公司 | 车载设备的升级方法、业务处理装置和系统、车辆 |
CN106843942A (zh) * | 2016-12-31 | 2017-06-13 | 歌尔科技有限公司 | 穿戴式设备的固件升级方法及穿戴式设备 |
CN109416629A (zh) * | 2017-11-01 | 2019-03-01 | 深圳市大疆创新科技有限公司 | 固件升级方法、电子设备、相机系统和无人飞行器 |
CN108650287A (zh) * | 2018-03-15 | 2018-10-12 | 百度在线网络技术(北京)有限公司 | 物联网中的终端设备的升级方法、设备及计算机可读介质 |
Non-Patent Citations (1)
Title |
---|
基于STM32处理器的WSN节点固件在线系统升级方法;蒋存波;焦阳;;计算机应用与软件;20160515(05);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112445507A (zh) | 2021-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112445507B (zh) | 一种设备的升级方法和装置 | |
US8825752B1 (en) | Systems and methods for providing intelligent automated support capable of self rejuvenation with respect to storage systems | |
AU2014235793B2 (en) | Automatic tuning of virtual data center resource utilization policies | |
JP6441404B2 (ja) | クライアントをアップデートするための方法およびデバイス | |
CN109995866B (zh) | 分布式文件校验方法、装置、计算机装置及存储介质 | |
RU2613531C2 (ru) | Способ совместного доступа к файлам, терминал и сервер ретрансляции | |
US8762931B2 (en) | Generating an encoded package profile | |
CN109391673B (zh) | 一种管理更新文件的方法、系统及终端设备 | |
CN107332908B (zh) | 一种数据传输方法及其系统 | |
US20140359066A1 (en) | System, method and device for offline downloading resource and computer storage medium | |
JP6852148B2 (ja) | ソフトウェアアップデートシステム、ファームウェアオーバーザエアーアップデートシステム、及び、クライアントデバイスをアップデートする方法 | |
CN105052076B (zh) | 一种基于云计算的网元管理系统及网元管理方法 | |
US10938957B1 (en) | System and method for bridging gaps between traditional resource management solutions with cloud-based management solutions | |
US11163499B2 (en) | Method, apparatus and system for controlling mounting of file system | |
WO2019206100A1 (zh) | 一种特征工程编排方法及装置 | |
CN106339273A (zh) | 一种应用程序修复方法、终端及服务器 | |
CN111641563B (zh) | 基于分布式场景的流量自适应方法与系统 | |
US20200319954A1 (en) | Webpage loading method, webpage loading system and server | |
CN112783541B (zh) | 设备升级方法、装置及服务器 | |
US20150220438A1 (en) | Dynamic hot volume caching | |
CN110661673B (zh) | 一种心跳检测的方法及装置 | |
CN113300875B (zh) | 回源数据校验方法、服务器、系统及存储介质 | |
CN116708563A (zh) | 档案数据的处理方法、装置、服务器及可读存储介质 | |
CN115757505A (zh) | 一种信息查询方法和机柜管理节点 | |
JP7429792B2 (ja) | データ伝送方法、端末及びコンピュータ読み取り可能な記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40046331 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |