资讯分类
全部资讯
最新活动
商城公告
行业信息
新品推荐
元器件知识
资讯标签
艾迈斯欧司朗(126) 艾为awinic(118) 英伟达NVIDIA(80) iCEasy商城(76) 萤火工场(61) 飞腾派V3(40) 兆易创新(31) 罗彻斯特电子(28) Jetson Orin Nano SUPER 开发套件(21) 资料下载专区(18) 赛昉科技(14) 小华半导体(13) 赛昉科技(StarFive)(13) 芯佰微(12) 灵动微电子(11) Seeed矽递科技(11) 日清纺微电子(9) NVIDIA(8) 飞腾派(8) 上海雷卯Leiditech(8) 微源半导体 LPSemi(8) GD32VW553-IOT(7) 物奇WuQi(7) 龙芯中科(7) 庆科(5) 航顺芯片(5) 日清纺微电子Nisshinbo(5) TROQ创捷电子(4) 创捷电子(4) 开源口碑分享(4) Geehy极海半导体(4) CEM5826-M11(4) 飞腾派eMMC(3) FTHR-G0001(3) GD32VW553-IOT-V2(3) 罗彻斯特(3) MM32SPIN060G(3) 中国星坤(3) 峰岹科技(3) 杭晶(HCI)(3) 小华EVB-HC32F4A0开发板(2) 极海半导体(2) 国产开源硬件(2) 极海(2) 社区评奖活动(2) 芯佰微电子(2) NVIDIA品牌专区(2) 飞腾官网飞腾派(2) 技术问答专区(2) Mini-SPIN0230(2) 飞腾派下载专区(2) 口碑评测(2) 教育优惠申请链接(2) 华润微电子(2) EVB-L0130(2) BeagleBoard.org®(2) iCEsay商城(2) 英伟达初创加速计划(2) 启明云端(2) 弈安云(2) 英迪芯微(2) 村田(2) 野火(2) GD32VW553-IOT V2版本(1) 618大促专区(1) 欧达可(1) 飞腾派V3版本上新(1) 飞虹半导体(1) 迈巨微(1) GD32VW553-IOT V2(1) 微碧半导体(1) 8月7日竞拍竞买(1) 教育优惠(1) 萤火工场GD32VW553-IOT(1) 台容积电(1) 内存(1) VF202040-A0(1) CEM5825F(1) COMBO模组 EMC3020-PZI5(1) 松科智能(1) 乐动机器人(1) 英伟达 NVIDIA(1) 格力新元(1) 周年抽奖活动(1) 庆科信息(MXCHIP)品牌专区(1) 附件(1) B站风扇视频(1) Jetson AGX Xavier(32GB)(1) 润石(1) NVIDIA DGX™ Spark:桌面级AI超级计算机(1) 飞腾派PRO(1) 微源半导体(1) QCS6490 SOM EVB开发板(1) 附件下载地址(1) 国产自主可控(1) Mini-F5333(1) JETSON_AGX_ORIN_64GB_DEVELOPER_KIT(1) QCS8550 SOM EVB开发板(1) 申请样片:高光效红光OSCONIQ® P 3030, GR QSSPA1.23(1) 华大北斗(1) 开源社区(1) NVIDIA Jetson Orin Nano 开发套件(1) 萤火工场品牌专区(1) 商城下载专区(1) 瑞隆源产品(1) 雷克沙(1) CEM5881-M11(1) Jetson AGX Orin 64GB开发套件(1) 荣湃半导体(2Pai Semi)品牌专区(1) 下载专区(1) 飞腾派专链(1) 世野(Khadas)(1) 中科云(1) Arduino UNO Rev 4 Minima开发板(1) NVIDIA NIM(1) 微雪电子(1) 海芯微(1) NVIDIA Jetson Orin Nano 开发套件(1) Arduino品牌专区(1) 飞腾派调研问卷链接(1) 小脚丫(1) CEM5861G-M11(1) 赛昉科技9折活动券(1) Jetson AGX Orin 64GB开发套件(1) 24GHz毫米波雷达模块(1) 品牌清仓(1) QCS8550 SOM EVB(1) 天微电子商家页(1) 国产毫米波雷达模块(1) 海凌科电子(Hi-Link)(1) NVIDIA Jetson Nano 模组(1) QCS6490 SOM EVB(1) EV Board (MM32L0136C7P)(1) 迈巨微电子品牌专区(1) 样片申请(1) 龙芯教育派(1) 轮趣科技(1) CEK8902-S905D3(1) 雷卯(1) 飞腾派试用申请链接(1) BeagleBone Black快速入门指南(1) Jetson AGX Thor 开发套件/模组(1) 618大促(1) 竞买活动(1) 极海半导体(Geehy)(1) Arduino品牌页(1) 野火RK3566开发板(1) GD32无线生态专区(1) 一件免邮专区(1) TagoreTech(1) SFH 7018B(1) 一件包邮专区(1) 英伟达 NVIDIA品牌专区(1)

差分升级方案(上)——全量升级vs差分升级

发布时间:2025-06-17

1、需求源起

MCU固件升级可以通过编程器、调试器或其他设备辅助进行操作,但这种升级方式主要应用于产品研发评估及量产应用阶段。产品量产或设备部署后,若面对大规模设备升级,把产品返厂做升级将面临拆机、人工烧录等繁琐流程,费时费力。随着物联网的发展,越来越多的产品具备无线远程通信能力,产生了更多通过远程通讯接口进行固件升级的需求。


2、升级步骤

固件升级,就是当前设备运行的旧固件有系统漏洞或者要在现有设备添加新功能时,将设备中的旧固件更新为新的固件,使设备运行的程序满足新的功能需求,从MCU内部层面来看就是新固件覆盖旧固件,如图1所示。

图1 固件升级示意图


获取新固件:通过NBIoT、WIFI、Bluetooth、LoRa、ZigBee等通信协议定期查询新版本或者接收升级请求。

覆盖旧固件:将新固件数据分块写入旧固件所在Flash覆盖旧固件。


3、全量升级

通常情况下,在MCU中运行的具有升级功能的程序需要具备两个可独立运行的程序,分别为BootLoader引导程序和实现产品功能的App应用程序。一般情况下BootLoader程序烧录后不会再更新,修复漏洞或者添加功能时升级的均为App应用程序。Flash全量升级分区示意图如图2所示。固件可以通过App或者BootLoader进行接收,如图3所示。

图2 Flash分区示意图


图3 固件接收方式分类


3.1 App接收固件

设备在运行时App查询到有新版本固件或者收到升级请求时,先通过无线通信接口下载新的固件。一般有两种方式更新固件:一种运行App1时,将新的固件分包接收并下载存至App2 Flash分区,下载完成后跳转至App2 分区运行新的固件(MCU需要支持双BANK运行),升级示意图如图4所示 ;第二种跳转Bootloader程序执行固件迁移,将App2固件按块写入App1 Flash分区,待固件迁移无误后再跳转至App1 Flash分区运行。

图4 具有备份区的固件升级示意图


3.2 BootLoader接收固件

设备在运行App时查询到有新版本固件或者收到升级请求时,跳转Bootloader程序将新的固件分包接收并下载至App Flash分区。下载完成时,旧固件被新固件覆盖,然后再跳转App Flash分区运行,示意图如图5所示。

图5 单区固件升级示意图


App与BootLoader接收固件都需要完整的下载新的固件包,即便新的固件相较于旧固件改动量很小,往往MCU RAM资源有限,需要分包下载,每包数据必须正确无误,如果有错误或者遗漏则需要重新下载。升级过程中如果断电,需要再次请求网络重新下载新的固件包,所以整包升级下载时间较长,升级失败风险较高。对一些电池供电的设备,下载时间越长系统功耗越高。


4、差分升级

在服务器端基于差分算法将旧固件V1和新固件V2的差异进行提取并应用压缩算法计算出差分包,将差分包由服务器端传输给MCU客户端,再由差分解压缩算法还原出新的固件V2,这样的升级方式称为差分升级,差分升级的示意图如图6所示。

图6 差分升级示意图


一般差分算法核心思想为:对旧固件新固件文件做子字符串匹配或使用Hash技术, 提取公共部分, 再将新固件文件中剩余的部分打包成差分包;在差分还原时, 用复制和插入两个基本操作将旧固件和差分包合成新固件。对于固件代码较大而修改量较小的新固件,使用差分升级算法,差分包大小相较于新固件会明显变小,无线升级时下载流量也会相应大幅度降低。


5、差分升级vs全量升级

差分升级和全量升级各有各的优点和适合应用的领域,设计者在实际产品开发中可根据不同应用选择不同的升级方式。例如,产品是电池供电,并且数据传输速率比较低,则要求产品升级时能够尽可能减少数据量的传输,节约功耗,此时可优先采用差分升级的方式。差分升级与全量升级的主要特点比较如图7所示。

图7 差分升级与全量升级的主要特点比较




想要了解及购买小华半导体产品,请前往iCEasy商城品牌专区:

https://s.iceasy.com/IQ0sfy

iCEasy商城欢迎您的到来!