CN113590161B - 内存可控的nb-iot模组差分升级方法及系统 - Google Patents
内存可控的nb-iot模组差分升级方法及系统 Download PDFInfo
- Publication number
- CN113590161B CN113590161B CN202110960023.7A CN202110960023A CN113590161B CN 113590161 B CN113590161 B CN 113590161B CN 202110960023 A CN202110960023 A CN 202110960023A CN 113590161 B CN113590161 B CN 113590161B
- Authority
- CN
- China
- Prior art keywords
- block
- file
- binary file
- differential
- module
- 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 45
- 238000007906 compression Methods 0.000 claims description 13
- 230000006835 compression Effects 0.000 claims description 13
- 238000004519 manufacturing process Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 7
- 238000000638 solvent extraction Methods 0.000 claims description 7
- 230000002159 abnormal effect Effects 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 4
- 230000009467 reduction Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 3
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007907 direct compression Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
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
本发明实施例提供一种内存可控的NB‑IOT模组差分升级方法及系统,属于物联网通信技术领域。所述方法包括:S1)响应于升级触发指令,收集所有模组的模组信息,并获取待升级文件的新版本二进制文件和旧版本二进制文件,其中新版本二进制文件为本次升级需要的二进制文件,旧版本二进制文件为上一次升级的二进制文件;S2)根据所述模组信息、所述新版本二进制文件和所述旧版本二进制文件,生成差分升级包;S3)将差分升级包发送到对应的待升级模组;S4)根据所述差分升级包对待升级模组进行升级,并反馈升级结果。本发明方案有效解决了进行NB‑IOT模组厂商大批量、多型号升级时效率低下的问题。
Description
技术领域
本发明涉及物联网通信技术领域,具体地涉及一种内存可控的NB-IOT模组差分升级方法及一种内存可控的NB-IOT模组差分升级系统。
背景技术
因为NB-IoT具有的低功耗、低成本、强链接和高覆盖等优点,使得NB-IoT在现有的通信网络中使用越来越广泛,其使用的NB-IOT模组数量也越来越多,这些模组在使用过程中,避免不了需要根据实际需求和技术发展进行系统更新。通过NB-IOT网络下载差分升级包进行远程升级是NB-IOT模组一种低功耗版本维护手段。模组厂商对已部署的模组进行大批量升级时,会存在多种模组型号的场景,这些模组的运行内存和存储空间可能存在差异,因此不同型号模组之间升级方法难以兼容。
针对特定型号模组设计独特的升级方案和以最小存储资源模组制定统一的升级方案是目前大批量模组升级所用到的主要方法,前者需要对大量的模组进行人工分类后,根据分类结果对应为每一种类型的模组制定使用的升级方案;后者则根据所有模组中最小存储资源模组制定对应的升级计划,然后所有的模组均根据该升级计划进行升级。前者会造成大量的前期工作量,而后者又会极大浪费其他大存储资源模组的性能。所以两种方法均会造成批量模组升级效率低下的问题,针对存在的该问题,需要创造一种新的NB-IOT模组升级方法。
发明内容
本发明实施方式的目的是提供一种内存可控的NB-IOT模组差分升级方法及系统,以至少解决现有模组批量升级效率低下的问题。
为了实现上述目的,本发明第一方面提供一种内存可控的NB-IOT模组差分升级方法,在服务器端执行,所述方法包括:S1)响应于升级触发指令,收集所有模组的模组信息,并获取待升级文件的新版本二进制文件和旧版本二进制文件,其中所述新版本二进制文件为本次升级需要的二进制文件,旧版本二进制文件为上一次升级的二进制文件;S2)根据所述模组信息、新版本二进制文件和旧版本二进制文件,生成差分升级包;S3)将差分升级包发送到对应的待升级模组;S4)接收升级结果,所述升级结果由模组根据所述差分升级包升级后反馈。
可选的,所述模组信息包括:可用RAM空间、可用ROM空间和固件MD5值。
可选的,步骤S2)中,根据所述模组信息、新版本二进制文件和所述旧版本二进制文件,生成差分升级包,包括:计算旧版本二进制文件的MD5值;将具有相同MD5值的旧版本二进制文件和模组划分为一组;在同一组内,根据块大小对新版本二进制文件和旧版本二进制文件进行分块,并根据分块顺序制作差分升级包;其中,所述块大小的计算公式为:
x=mRAM-nRAM
其中,a为块大小值;mRAM为模组RAM空间值;nRAM为新版本二进制文件和旧版本二进制文件的RAM固定值。
可选的,所述根据分块顺序制作差分升级包,包括:根据分块顺序逐一对比新版本块和旧版本块,直到所有新版本块对比完毕,其中:若新版本块和旧版本块均存在且内容相同,则保留该块信息并跳过该新版本块,在块文件头部增加不需要进行升级的第一标识;若新版本块和旧版本块均存在但内容不同,则根据开源算法bsdiff+lzma对新版本块进行差分压缩,获得差分压缩数据包,并在块文件头部增加部分需要升级的第二标识;若新版本块存在,而旧版本块不存在,则使用开源算法lzma对新版本块进行压缩,获得压缩数据包,并在块文件头部增加全部为新增的第三标识;若新版本块不存在,则表示完成数据差分;整合所有块文件头部的标识信息、所述差分压缩数据包、所述压缩数据包和旧版本二进制文件MD5值,组成所述差分升级包,并在差分升级包前端添加升级版本号。
可选的,步骤S3)中,所述将差分升级包发送到对应的待升级模组,供所述待升级模组升级,包括:将所述具有相同MD5值的旧版本二进制文件和模组划分的一组内的所有模组确定为待升级模组;将所述差分升级包发送到所有待升级模组,供所有待升级模组升级。
本发明第二方面提供一种内存可控的NB-IOT模组差分升级方法,由NB-IOT模组执行,所述方法包括:根据接收自服务器的差分升级包,对差分升级文件中头部标识进行文件还原:若文件标识为第一标识,则跳过新版本块;若文件标识为第二标识,则备份旧版本块,使用开源算法bspatch+lzma进行解差分,解差分数据写入块ROM偏移地址;若文件标识为第三标识,则使用开源算法lzma对压缩数据解压,解压数据写入块ROM偏移地址;文件还原完成后,写入升级后版本号,完成模组升级;通过NB-IOT网络反馈升级结果。
可选的,在根据差分升级文件中头部标识进行文件还原之前,还包括:
通过检查所述差分升级包的完整性和对比待升级模组MD5值与旧版本二进制文件MD5值,判定接收文件是否为待升级模组适用的文件;根据差分升级文件中头部标识进行文件还原。
可选的,所述方法还包括:在升级过程中,若发生异常断电,先恢复备份的旧版本块,然后在恢复的旧版本块基础上,继续进行升级。
本发明第三方面提供一种内存可控的NB-IOT模组差分升级系统,所述系统包括:服务器单元,用于:响应于升级触发指令,收集所有模组的模组信息;获取待升级文件的新版本二进制文件和旧版本二进制文件,并根据所述模组信息、新版本二进制文件和旧版本二进制文件生成差分升级包;其中新版本二进制文件为本次升级需要的二进制文件,旧版本二进制文件为上一次升级的二进制文件;将差分升级包发送到对应的待升级模组,供所待升级模组升级;所述服务器后端连接的多个NB-IOT模组,用于根据所述差分升级包进行升级,并反馈升级结果。
另一方面,本发明提供一种计算机可读储存介质,该计算机可读存储介质上储存有指令,其在计算机上运行时使得计算机执行上述的内存可控的NB-IOT模组差分升级方法。
通过上述技术方案,根据各模组特性和待升级二进制文件信息,针对不同类型模组生成对应的差分升级包,然后制定对应的升级任务,进行不同类型模组的针对性升级。本发明方案能够充分发挥不同型号模组本身存储资源,进行针对性升级,有效解决了进行NB-IOT模组厂商大批量、多型号升级时效率低下的问题。
本发明实施方式的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施方式的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施方式,但并不构成对本发明实施方式的限制。在附图中:
图1是本发明一种实施方式提供的内存可控的NB-IOT模组差分升级方法的步骤流程图;
图2是本发明一种实施方式提供的内存可控的NB-IOT模组差分升级系统的系统结构图。
附图标记说明
10-差分单元;20-服务器单元;30-模组。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
NB-IoT(Narrow Band-Internet of Things,窄带物联网技术)聚焦于低功耗广覆盖物联网市场,是一种可在全球范围内广泛应用的新兴技术。NB-IOT使用License频段,可采取带内、保护带或独立载波三种部署方式,与现有网络共存,具有低功耗、低成本、强链接和高覆盖几大优点,使得其在低速物联网领域,在成本、覆盖、功耗、连接数等技术上做到极致。该技术被广泛应用于公共事业、医疗健康、智慧城市、消费者、农业环境、物流仓储、智能楼宇、制造行业等行业。随着NB-IoT的发展,其覆盖面和应用领域都在不断扩大,导致其中正在使用的NB-IOT模组30数量越来越多,类型也越来越丰富。在NB-IOT模组30使用过程中,免不了需要持续进行系统升级,现有的升级方法中,主要存在针对特定型号模组30设计独特的升级方案和以最小存储资源模组30制定统一的升级方案这两种,但这两种方法在应对日益增多的NB-IOT模组30数量和类型时,均无法实现最高效率的升级,无法兼具快捷和高效的升级效果。
本发明提出的内存可控的NB-IOT模组30差分升级方法及方法,便是针对NB-IOT模组30无法远程智能且高效升级问题而设计的。
图2是本发明一种实施方式提供的内存可控的NB-IOT模组30差分升级系统的网络结构图。如图2所示,本发明实施方式提供一种内存可控的NB-IOT模组30差分升级系统,包括:服务器单元20,用于响应于升级触发指令,收集所有模组30的模组30信息;差分单元10,用于获取待升级文件的新版本二进制文件和旧版本二进制文件,并根据所述模组30信息、所述新版本二进制文件和所述旧版本二进制文件,生成差分升级包;其中,新版本二进制文件为本次升级的二进制文件,旧版本二进制文件为上一次升级的二进制文件;所述服务器单元20还用于根据所述差分升级包获取升级任务,并根据所述升级任务确定对应的待升级模组30所述模组30,在所述服务器后端连接有多个,用于根据所述差分升级包对待升级模组30进行升级,并反馈升级结果。
图1是本发明一种实施方式提供的内存可控的NB-IOT模组30差分升级方法的方法流程图。如图1所示,本发明实施方式提供一种内存可控的NB-IOT模组30差分升级方法的方法,所述方法包括:
步骤S10:响应于升级触发指令,收集所有模组30的模组30信息,并获取待升级文件的新版本二进制文件和旧版本二进制文件。
具体的,当存在系统升级任务时,传统的NB-IOT模组30升级主要存在两种方式,第一种是根据特定型号模组30设计独特的升级方案,这种方式下,进行升级前必须人为对所有模组30进行分组,即将相同型号的模组30归为同一类模组30。当数量大且模组30类型多时,前期的分组任务将变得异常繁琐,不仅影响升级效率,还极易因为工作疏忽导致模组30分组错误,使得模组30出误升级。第二种方式是以最小存储资源模组30制定统一的升级方案,即在所用模组30中,筛选出最小存储资源模组30,然后将该类型模组30的升级方案作为所有模组30的升级方。这会减小前期的工作体量,但是这种方法会使得运行内存和存储空间较大的模组30依旧根据最小存储资源模组30升级任务进行升级,难以充分发挥模组30本身的资源,使得出现升级效率低、时间长还有电量损耗高的问题。
所以,为了避免出现上述的情况,需要结合两种方式的优点,并避免对应会出现的问题。本发明提供了一种内存可控的NB-IOT模组30差分升级方法,通过对比新旧版本两种二进制文件,匹配对应的模组30进行针对性升级,一方面实现了同类型模组30对应方案升级,另一方面减小了升级数据体量,极大提高了升级效率。首先,当存在升级需求是,服务器单元20被触发升级指令,然后服务器端将升级指令分发到所有连接的模组30中,模组30响应于升级触发指令,将自身具有的模组30信息传输到服务器单元20。这些模组30信息为模组30本身的存储资源信息,包括可用RAM(random access memory,随机存取存储器)空间、可用ROM(Read-Only Memory,只读存储器)空间和固件MD5(MD5 Message-DigestAlgorithm,MD5信息摘要算法)值。其中,RAM空间和ROM空间决定着对应模组30的运行和存储能力,值越大,表示升级工程中同时处理的数据体量越大。而MD5值可以作为模组30的身份标识,同一类模组30具有相同的MD5值。服务器单元20收集到所有模组30上传的模组30信息后,自动将MD5值相同的模组30归为一组,并进行列表归类。另一方面,相关人员主动上传新旧两个版本的二进制文件,差分单元10接收该上传的文件。优选的,旧版本文件为上一次更新的文件,在系统中设置缓存器,用于缓存每一次升级时的二进制文件。当出现新的缓存文件时,自动删除上一次缓存的文件,则缓存器中永远存储着最近一次升级的二进制文件。在后续的升级任务中,缓存的二进制文件直接作为旧版本二进制文件使用,相关人员仅需要上传新版本二进制文件。避免因为文件管理缺失导致旧版本文件丢失使得无法升级的问题,也减小了相关人员的工作量。
步骤S20:根据所述模组30信息、所述新版本二进制文件和所述旧版本二进制文件,生成差分升级包。
具体的,进行系统升级时,都是在已有的二进制文件基础上,进行部分修改升级或增加升级。且在一些小升级中,存在大部分相同的文件,仅有小部分需要修改或增加的文件。为了提高升级效率,最理想的方式便是直接跳过相同的部分,针对修改部分进行升级。基于此,差分单元10接收到新旧版本两种二进制文件后,进行新旧版本两种二进制文件MD5值计算,然后将计算值与服务器生成的模组30MD5值列表进行对比,筛选出MD5值相同的模组30。形成该类型模组30与新旧版本二进制文件之间的对应关系。因为新、旧版本二进制文件体量较大,若直接用以升级,需要升级过程中实时分辨升级区域,会极大影响升级效率,造成模组30耗电量增大。所以,在模组30前端优选进行文件分块,即区分出相同文件、修改文件和增加文件,后续针对修改文件和增加文件升级。减少模组30端的工作量,从而提高升级效率,减少耗电量。将新、旧版本两个文件分割为多个固定大小的块,每一个块的大小值计算公式为:
x=mRAM-nRAM
其中,a为块大小值;mRAM为模组30RAM空间值;nRAM为新版本二进制文件和旧版本二进制文件的RAM固定值。然后根据分块顺序罗列新、旧版本两种块。根据罗列顺序,进行逐一对比,提取第一个新版本块,然后对比是否存在相同的旧版本块,若存在内容完全相同的旧版本块,则表示该部分内容不存在升级任务,后续进行升级时,可直接跳过该块。则在该块的文件头部记录表示块相等的第一表示。
若存在与新版本块内容不相等的旧版本块,则表示该部分内容存在修改升级,后续的升级过程中,需要针对该部分内容进行修改升级。在该不相等的块中,可能存在部分相同内容、部分修改内容和部分增加内容,为了进一步在该块中进行内容区分,优选的利用bsdiff+lzma进行块差分压缩。其中,bsdiff算法为差量更新算法,具体思想为尽可能多的利用旧版本文件中已有的内容,尽可能少的加入新的内容来构建新版本文件。通常的做法是对旧版本文件和新版本文件做子字符串匹配或使用hash(散列函数)技术,提取公共部分,将新版本文件中剩余的部分打包成patch(文件补丁)包,在Patch阶段中,用复制和插入两个基本操作即可将旧版本文件和patch包合成新版本文件。该方法可以有效的利用块中部分相同内容,针对部分修改内容产生对应的补丁文件,提高压缩效率。而针对于部分增加内容,则直接利用压缩算法lzma进行压缩。这两部分算法获得的块文件统一增加第二标识,第二标识表达的是存在差分的压缩数据包。
若完全不存在与新版本块关联的旧版本块,则表示该新版本块为完全新增的升级内容,需要在原有的技术上进行增加升级。则直接利用lzma进行压缩,获得压缩数据包。该数据包增加第三标识,第三标识则表示直接压缩的数据包,即完全新增的数据包。
当不存在新版本块时,则表示所有块对比完毕,完成了前期的差分工作,则整合所有增加标识的块,并在文件头部增加升级的版本号、MD5值和、CRC(Cyclic RedundancyCheck,循环冗余校验)检验值。其中,CRC检验值用于检测或校验后续数据传输或者保存后可能出现的错误。最后,将生成的这些头部标识、差分压缩数据、直接压缩数据组合形成差分升级包。
步骤S30:将差分升级包发送到对应的待升级模组30。
具体的,生成差分升级包后,其头部添加有MD5值,则根据该MD5值对应生成向相同MD5值的模组30进行系统升级的任务,并将差分数据包对应发送到这些模组30中。这些模组30根据升级任务对应进行差分数据包下载,为了避免出现收到错误升级指令的模组30,下载了并不适配的差分数据包,也为了避免数据传输过程中造成的数据缺失。优选的,下载完成后,各模组30还需要进行数据验证。一方面,对差分升级包进行完整性判断,判断是否存在数据缺失,若数据缺失,则反馈升级失败信号,并发起重新下载请求。另一方面,判断下载的数据包是否与自身MD5值相同,若数值不同,则表示该差分升级包并不适用本模组30升级,则反馈升级失败信号。若两种判断验证通过,则表示差分数据包可以用于升级,则准备开始进行模组30升级。
步骤S40:根据所述差分升级包对待升级模组30进行升级,并反馈升级结果。
具体的,判定差分升级包审核通过后,根据各块头部的标识信息进行升级数据还原。若对应块的头部标识为第一标识,则便是该部分文件与旧版本完全相同,不需要进行升级,则直接跳过该块。若对应块的头部表示为第二标识,则表示该部分文数据相较于旧版本数据存在部分修改或增加,则根据该部分数据的生成方式,即bspatch算法和lzma算法,对应使用这两种算法对该块进行解差分和解压缩,获得原始数据,然后将该原始数据写入对应模组30的ROM偏移地址,完成该部分数据升级。若对应块的头部标识为第三标识,则表示该部分文件是完全新增的,则根据lzma算法直接对该块数据进行解压缩,获得原始数据,并将获得的数据写入对应模组30的ROM偏移地址,完成该部分数据升级。当所有文件均已完成升级后,将文件头部的升级版本号写入模块,完成整个模块的升级。升级完成后,对应模组30通过NB-IOT网络反馈升级完成信号到服务器单元20,服务器单元20最终输出升级完成信号供相关人员审查。
优选的,在升级过程中,可能会发生异常断电的问题,若断电前,正在进行第二标识文件升级,对旧版本文件进行部分修改后,系统断电,当系统电力恢复时,很难从部分修改状态前提下,重新开始升级。所以,需要从该块的初始状态进行升级,但是该块的旧版本文件已经被部分修改,所以无法根据预设升级任务重新开始升级。为了解决这种问题,在进行第二表示文件解差分压缩前,首先对该部分文件对应的旧版本文件进行自动备份,然后在进行升级。若发生异常断电,首选对备份的旧版本文件恢复,然后在恢复的旧版本文件基础上重新进行该部分文件升级,实现了升级方法应对异常断电的问题,提高了模组30升级成功率。
本发明提供的内存可控的NB-IOT模组30差分升级方法能够有效解决NB-IOT模组30厂商大批量、多型号升级时带来复杂的升级包管理工作,版本维护人员只需向差分工具传入新旧版本文件,便可进行升级。且本方案能够防止模组30误升级,避免模组30下载错误的升级包从而损耗额外电量。服务器必须先进行MD5值检验通过后,才触发模组30升级命令。本方案能够充分发挥不同型号模组30本身存储资源,使得存储资源小的模组30能够完成升级,存储资源丰富的模组30能够高效率升级。大量测试数据表明,RAM空间越大的模组30,所产生的升级包越小,从而传输升级包数据越小、升级速度越快、电量损耗越小。
本发明实施方式还提供一种计算机可读储存介质,该计算机可读存储介质上储存有指令,其在计算机上运行时使得计算机执行上述的内存可控的NB-IOT模组30差分升级方法。
本领域技术人员可以理解实现上述实施方式的方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上结合附图详细描述了本发明的可选实施方式,但是,本发明实施方式并不限于上述实施方式中的具体细节,在本发明实施方式的技术构思范围内,可以对本发明实施方式的技术方案进行多种简单变型,这些简单变型均属于本发明实施方式的保护范围。另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施方式对各种可能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施方式的思想,其同样应当视为本发明实施方式所公开的内容。
Claims (5)
1.一种内存可控的NB-IOT模组差分升级方法,在服务器端执行,其特征在于,所述方法包括:
S1)响应于升级触发指令,收集所有模组的模组信息,并获取待升级文件的新版本二进制文件和旧版本二进制文件,其中所述新版本二进制文件为本次升级需要的二进制文件,旧版本二进制文件为上一次升级的二进制文件;其中,
所述模组信息包括:可用RAM空间、可用ROM空间和固件MD5值;
S2)根据所述模组信息、新版本二进制文件和旧版本二进制文件,生成差分升级包;包括:
计算旧版本二进制文件的MD5值;
将具有相同MD5值的旧版本二进制文件和模组划分为一组;
在同一组内,根据块大小对新版本二进制文件和旧版本二进制文件进行分块,并根据分块顺序制作差分升级包;其中,
所述块大小的计算公式为:
其中,为模组的RAM空间值;
为新版本二进制文件和旧版本二进制文件的RAM固定值;其中,
所述根据分块顺序制作差分升级包,包括:
根据分块顺序逐一对比新版本块和旧版本块,直到所有新版本块对比完毕,其中:
若新版本块和旧版本块均存在且内容相同,则保留该块信息并跳过该新版本块,在块文件头部增加不需要进行升级的第一标识;
若新版本块和旧版本块均存在但内容不同,则根据开源算法bsdiff+lzma对新版本块进行差分压缩,获得差分压缩数据包,并在块文件头部增加部分需要升级的第二标识;
若新版本块存在,而旧版本块不存在,则使用开源算法lzma对新版本块进行压缩,获得压缩数据包,并在块文件头部增加全部为新增的第三标识;
若新版本块不存在,则表示完成数据差分;
整合所有块文件头部的标识信息、所述差分压缩数据包、所述压缩数据包和旧版本二进制文件MD5值,组成所述差分升级包,并在差分升级包前端添加升级版本号;
S3)将差分升级包发送到对应的待升级模组;包括:
将所述具有相同MD5值的旧版本二进制文件和模组划分的一组内的所有模组确定为待升级模组;
将所述差分升级包发送到所有待升级模组,供所有待升级模组升级;
S4)接收升级结果,所述升级结果由模组根据所述差分升级包升级后反馈。
2.一种内存可控的NB-IOT模组差分升级方法,由NB-IOT模组执行,其特征在于,所述方法包括:
通过检查差分升级包的完整性和对比待升级模组MD5值与旧版本二进制文件MD5值,判定接收文件是否为待升级模组适用的文件;
根据差分升级文件中头部标识进行文件还原;
根据接收自服务器的差分升级包,对差分升级文件中头部标识进行文件还原:
若文件标识为第一标识,则跳过新版本块;
若文件标识为第二标识,则备份旧版本块,使用开源算法bspatch+lzma进行解差分,解差分数据写入块ROM偏移地址;
若文件标识为第三标识,则使用开源算法lzma对压缩数据解压,解压数据写入块ROM偏移地址;
文件还原完成后,写入升级后版本号,完成模组升级;
通过NB-IOT网络反馈升级结果。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在升级过程中,若发生异常断电,先恢复备份的旧版本块,然后在恢复的旧版本块的基础上继续进行升级。
4.一种内存可控的NB-IOT模组差分升级系统,其特征在于,所述系统包括:
服务器单元,用于:
响应于升级触发指令,收集所有模组的模组信息;其中,
所述模组信息包括:可用RAM空间、可用ROM空间和固件MD5值;
获取待升级文件的新版本二进制文件和旧版本二进制文件,并根据所述模组信息、新版本二进制文件和旧版本二进制文件生成差分升级包;其中新版本二进制文件为本次升级需要的二进制文件,旧版本二进制文件为上一次升级的二进制文件;
获取待升级文件的新版本二进制文件和旧版本二进制文件,并根据所述模组信息、新版本二进制文件和旧版本二进制文件生成差分升级包,包括:
计算旧版本二进制文件的MD5值;
将具有相同MD5值的旧版本二进制文件和模组划分为一组;
在同一组内,根据块大小对新版本二进制文件和旧版本二进制文件进行分块,并根据分块顺序制作差分升级包;其中,
所述块大小的计算公式为:
其中,为模组的RAM空间值;
为新版本二进制文件和旧版本二进制文件的RAM固定值;其中,
所述根据分块顺序制作差分升级包,包括:
根据分块顺序逐一对比新版本块和旧版本块,直到所有新版本块对比完毕,其中:
若新版本块和旧版本块均存在且内容相同,则保留该块信息并跳过该新版本块,在块文件头部增加不需要进行升级的第一标识;
若新版本块和旧版本块均存在但内容不同,则根据开源算法bsdiff+lzma对新版本块进行差分压缩,获得差分压缩数据包,并在块文件头部增加部分需要升级的第二标识;
若新版本块存在,而旧版本块不存在,则使用开源算法lzma对新版本块进行压缩,获得压缩数据包,并在块文件头部增加全部为新增的第三标识;
若新版本块不存在,则表示完成数据差分;
整合所有块文件头部的标识信息、所述差分压缩数据包、所述压缩数据包和旧版本二进制文件MD5值,组成所述差分升级包,并在差分升级包前端添加升级版本号;
将差分升级包发送到对应的待升级模组;包括:
将所述具有相同MD5值的旧版本二进制文件和模组划分的一组内的所有模组确定为待升级模组;
将所述差分升级包发送到所有待升级模组,供所有待升级模组升级;
所述服务器后端连接的多个NB-IOT模组,用于根据所述差分升级包进行升级,并反馈升级结果。
5.一种计算机可读存储介质,该计算机可读存储介质上储存有指令,其在计算机上运行时使得计算机执行权利要求1至3中任一项权利要求所述的内存可控的NB-IOT模组差分升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110960023.7A CN113590161B (zh) | 2021-08-20 | 2021-08-20 | 内存可控的nb-iot模组差分升级方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110960023.7A CN113590161B (zh) | 2021-08-20 | 2021-08-20 | 内存可控的nb-iot模组差分升级方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113590161A CN113590161A (zh) | 2021-11-02 |
CN113590161B true CN113590161B (zh) | 2024-04-19 |
Family
ID=78238863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110960023.7A Active CN113590161B (zh) | 2021-08-20 | 2021-08-20 | 内存可控的nb-iot模组差分升级方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113590161B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114500508B (zh) * | 2022-01-25 | 2024-10-01 | 深圳友讯达科技股份有限公司 | 一种燃气表升级方法、装置及电子设备 |
CN114915551A (zh) * | 2022-03-24 | 2022-08-16 | 深圳市广和通无线股份有限公司 | 一种移动通信模组配置方法及相关装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8554748B1 (en) * | 2005-11-30 | 2013-10-08 | Netapp, Inc. | Method and apparatus for differential file based update for embedded systems |
CN105138347A (zh) * | 2015-07-17 | 2015-12-09 | 广东欧珀移动通信有限公司 | 一种差分升级包生成方法、软件升级方法及相应装置 |
CN109656612A (zh) * | 2019-01-24 | 2019-04-19 | 广东九联科技股份有限公司 | 基于云服务的嵌入式设备启动及在线无感升级系统及方法 |
CN111212121A (zh) * | 2019-12-24 | 2020-05-29 | 浙江大学 | 一种用于物联网设备的空中固件升级方法及系统 |
CN111552502A (zh) * | 2020-04-21 | 2020-08-18 | 海尔优家智能科技(北京)有限公司 | 智能设备的nb模组升级方法及装置 |
CN111857790A (zh) * | 2020-07-23 | 2020-10-30 | 北京自如信息科技有限公司 | 一种固件升级方法、装置及计算机设备 |
CN112000355A (zh) * | 2020-08-21 | 2020-11-27 | 青岛海尔科技有限公司 | 用于固件升级的方法及装置、家电设备 |
CN112527370A (zh) * | 2020-12-04 | 2021-03-19 | 成都中科慧源科技有限公司 | 一种对物联网设备进行远程差分升级的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10838705B2 (en) * | 2018-02-12 | 2020-11-17 | Afero, Inc. | System and method for service-initiated internet of things (IoT) device updates |
-
2021
- 2021-08-20 CN CN202110960023.7A patent/CN113590161B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8554748B1 (en) * | 2005-11-30 | 2013-10-08 | Netapp, Inc. | Method and apparatus for differential file based update for embedded systems |
CN105138347A (zh) * | 2015-07-17 | 2015-12-09 | 广东欧珀移动通信有限公司 | 一种差分升级包生成方法、软件升级方法及相应装置 |
CN109656612A (zh) * | 2019-01-24 | 2019-04-19 | 广东九联科技股份有限公司 | 基于云服务的嵌入式设备启动及在线无感升级系统及方法 |
CN111212121A (zh) * | 2019-12-24 | 2020-05-29 | 浙江大学 | 一种用于物联网设备的空中固件升级方法及系统 |
CN111552502A (zh) * | 2020-04-21 | 2020-08-18 | 海尔优家智能科技(北京)有限公司 | 智能设备的nb模组升级方法及装置 |
CN111857790A (zh) * | 2020-07-23 | 2020-10-30 | 北京自如信息科技有限公司 | 一种固件升级方法、装置及计算机设备 |
CN112000355A (zh) * | 2020-08-21 | 2020-11-27 | 青岛海尔科技有限公司 | 用于固件升级的方法及装置、家电设备 |
CN112527370A (zh) * | 2020-12-04 | 2021-03-19 | 成都中科慧源科技有限公司 | 一种对物联网设备进行远程差分升级的方法 |
Non-Patent Citations (2)
Title |
---|
Data Compression for software Updating to Consumer Devices;Kazuki Someya;《2021 IEEE International Conference on Consumer Electronics》;1-4 * |
物联网设备空中固件升级技术研究与系统实现;刘波;《中国优秀硕士学位论文全文数据库 信息科技辑》(第2021年02期);I136-418 * |
Also Published As
Publication number | Publication date |
---|---|
CN113590161A (zh) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113590161B (zh) | 内存可控的nb-iot模组差分升级方法及系统 | |
CN106843957B (zh) | 系统固件升级方法及装置 | |
US20070294685A1 (en) | Program upgrade system and method for ota-capable portable device | |
CN101377744B (zh) | 一种终端设备软件升级恢复方法及装置 | |
CN104007996A (zh) | 一种分布式控制系统的可靠固件升级实现方法 | |
CN105373410A (zh) | 基站软件差分升级方法及其装置 | |
CN110032377B (zh) | 通信模块软件升级方法、系统及通信模块 | |
CN101183979B (zh) | 一种配置备份的方法和装置 | |
CN103677869A (zh) | 无线传感器网络节点远程代码更新系统及方法 | |
CN112286565B (zh) | 一种基于存储容器的嵌入式系统差分升级方法 | |
CN111857790A (zh) | 一种固件升级方法、装置及计算机设备 | |
CN105740017A (zh) | 云电视系统的升级方法及装置 | |
CN106897166A (zh) | 一种移动终端及其修复方法 | |
CN111158751A (zh) | 一种Windows环境部署方法、电子设备及存储介质 | |
CN108664255B (zh) | 一种软件升级方法及装置 | |
US8413132B2 (en) | Techniques for resolving read-after-write (RAW) conflicts using backup area | |
CN115543429A (zh) | 项目环境的搭建方法、电子设备及计算机可读存储介质 | |
CN106293621B (zh) | 一种固件升级方法及装置 | |
CN110620800B (zh) | 电力二次系统跨安全区的配置数据同步处理方法和装置 | |
KR20080083512A (ko) | Fota 시스템 | |
CN113535214A (zh) | 算法文件升级方法、装置、电子装置和存储介质 | |
CN112527381A (zh) | 多平台软件版本管理及更新系统 | |
CN113992739A (zh) | 一种局域网ota固件升级装置、方法及系统 | |
CN110995494A (zh) | 热部署包制作及利用热部署包对服务器进行升级的方法 | |
CN110795113A (zh) | 一种Redis集群服务的安装方法、服务器和介质 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20231220 Address after: 516000, No. 5 Huitai Road, Huinan High tech Industrial Park, Hui'ao Avenue, Huizhou City, Guangdong Province Applicant after: Unionman Technology Co.,Ltd. Applicant after: Guangdong Jiulian Kaihong Technology Development Co.,Ltd. Address before: 516007 No.5, huitai Road, Huinan hi tech Industrial Park, huiao Avenue, Huizhou City, Guangdong Province Applicant before: Unionman Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |