0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于MCU,如何零代码无开发实现OTA差分升级

电子设计 ? 来源:电子设计 ? 作者:电子设计 ? 2020-10-30 10:03 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

随着物联网设备智能化的发展,OTA 升级已经成为了业界公认的基础能力,而 OTA 在设计和实现过程中需要依赖于物联网设备的硬件方案。物联网设备主流的硬件方案为:

1. 直接基于通讯芯片 / 模块开发的方案,用户升级的主要目标是通讯芯片 / 模块。艾拉比在设备端有基于 UA+UC 的方式提供端云一体化的 OTA 解决方案。

2. 通过 MCU/DSP/MPU 等应用处理器 / 控制器和各类通讯模块开发的方案,用户升级的主要目标是这些应用处理器 / 控制器,通讯模块更多是透传管道。

其中,MCU 作为主控处理器在物联网领域占着非常高的份额,广泛分布在智能家居、三表、工业等各个领域。在 MCU 的 OTA 升级方式上,部分客户实现方式为整包升级,甚至很多 MCU 产品是裸跑,并且是不升级的,当然这也和产品形态、功能特性、行业等相关。而差分升级相较于传统的的整包升级方式,有资源需求低、升级功耗低、升级时间短及下载流量少等诸多优势,越来越多的成为物联网升级的优选方案。举个例子,某客户 MCU 的 Flash 配置为 64KB,自身 APP 固件为 50KB,此时如果需要实现 OTA 升级,大多客户选择的方案是:

1. 外挂一颗 64KB 或者 128KB 的 Flash


2. 选择一颗 128KB Flash 资源的 MCU

而如果通过差分 OTA 升级,则在 64KB Flash 的 MCU 上直接可以实现,再加入 5KB 左右的差分升级算法后,还能剩余 9KB 左右空间来存储几 KB 的差分升级包,不增加硬件成本就可以实现 OTA 升级。


1

差分升级的实现方案

差分升级大多是通过在升级程序(Bootloader 为主)中增加差分升级算法来实现,算法需要占用一些本地 Flash 和 RAM 资源。

差分升级又叫增量升级,顾名思义就是通过差分算法将源版本与目标版本之间差异的部分提取出来制作成差分包,然后在设备通过还原算法将差异部分在源版本上进行还原从而升级成目标版本的过程。差分升级方案不仅可以节省 MCU 内部的资源空间、还可以节省下载流程及下载和升级过程中的功耗。从另一个角度说,通过将差分部分下发到设备保证了版本的安全性。

在过去几年,艾拉比一直致力于将差分升级赋能给更多行业客户,比较主流的差分算法集成的方式是通过 SDK 的形式提供差分升级能力,客户需要将差分升级 SDK 集成到设备 Bootloader 中,有一定的集成开发量。这种方式的好处是客户可以自己根据 API 进行定制开发一些功能,但是 MCU 的碎片化导致这种集成开发方式成本较高,客户集成使用也相对有些要求,适配和测试周期也比较长,因此艾拉比基于大量 MCU 系统的认识、以及对 OTA 的理解推出一种更简便,更易用的,相对标准化的优化方案。


2

MCU 差分升级的优化实现方案 UB 产品
UB(Upgrade Bootloader)产品是艾拉比基于 MCU 推出的独立标准化 bootloader 产品,内部集成了艾拉比最新的差分升级算法,烧录即可以使用,无需开发即可实现差分升级。



UB 通过将差分升级算法在编译 bootloader 阶段集成进去,而这个编译和开发 bootloader 的过程,艾拉比直接提供一种图形化、零开发的云端制作工具来完成,从而使得 MCU 的产品可以用最简单的方式实现差分升级能力。


相较于整包升级大大节省了 Flash 资源,甚至可以省去外挂 Flash 或者更换更大资源 MCU 的物料成本。作为一款标准化的产品,艾拉比提供的在线制作工具可根据用户产品的硬件配置一键生成 UB,省去了繁琐且碎片化的 OTA 适配成本,助力产品快速上市。此外,UB 在确保 OTA 的安全性上还有很多考量。比如采用一芯一码技术,根据 MCU 内出厂不可更改的唯一 ID,生成唯一安全激活码,确保设备差分功能的唯一性和升级过程的安全性。UB 中集成的异常保护支持了防掉电 / 误操作等防变砖机制,确保升级万无一失。


UB 的生成过程十分简便,用户根据选定的 MCU 型号和基本信息,通过界面化工具按步骤操作直接生成。操作流程如下:配置 mcu 的硬件信息 ->配置 mcu 的分区信息 ->一键生成 UB。

目前艾拉比已经适配了 ST 主流的 MCU 型号。


3

UB 的使用场景
1)作为 Bootloader 的使用场景
该场景用户无需再额外开发一个 Bootloader,直接使用 UB 来引导启动程序,当有版本需要升级时跳转至升级流程,由 UB 来控制跳转。

2)作为独立子系统的使用场景
该场景用户已经根据需求制作出一个 Bootloader,那么可以将 UB 作为一个独立的升级子系统或者是二级 Bootloader,当 MCU 需要升级时由 Bootloader 跳转至 UB 来进行升级。

4

UB 的成功案例—NB IOT 燃气表

我们结合表计行业的成功案例看一下 UB 如何在整表产品中使用:案例中需要升级的是 MCU 上的主控程序。



STM32 MCU 烧录艾拉比 OTA UB ,一方面可以作为 Bootloader 来引导系统启动,另一方面可以实现差分升级。差分升级包的获取方式有两种情况,一种通过 NB 模块从平台获取;一种通过近场的红外模块将差分升级包传输至设备。

1)通过 NB 模块从平台获取
此种方式需要在应用层集成平台连接组件,其中对网络调用通过 NB-IOT 模块的 AT 指令完成,NB-IOT 模块只进行数据透传实现网络连接。NB-IOT 表计包含应用和历史数据、配置数据等区域,升级过程只升级应用区域,数据区不做任何改变。

2)通过近场模块传输
在艾拉比在线差分平台制作完差分包后下载至本地。然后通过手持红外设备将差分包传输至表记中来实现升级,避免拆表等工作。

审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    18075

    浏览量

    371000
  • OTA
    OTA
    +关注

    关注

    7

    文章

    615

    浏览量

    36833
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    STM32CubeProgrammer怎么才能在cubeprogrammer上实现分升级

    一下在STM32CubeProgrammer里怎么实现分升级,只要升级有所改变的分区就可以了,其他的分区均保持不变?
    发表于 08-11 07:49

    代码开发云平台是什么?编程成本搭建

    联网云平台作为连接物理设备与数字世界的核心枢纽,其功能设计围绕设备管理、数据流转、应用开发、业务赋能四大维度展开。 一、核心能力 低代码/代码:通过可视化拖拽组件、预置模板、图形化逻
    的头像 发表于 07-31 15:25 ?228次阅读

    技术笔记 | Ubuntu 系统 OTA 升级全流程详解

    前言:在嵌入式系统设备管理中,OTA(Over-The-Air)升级实现设备远程维护、功能迭代的核心能力。本文基于Ubuntu系统环境,详细拆解updateEngine工具的OTA
    的头像 发表于 07-31 08:32 ?218次阅读
    技术笔记 | Ubuntu 系统 <b class='flag-5'>OTA</b> <b class='flag-5'>升级</b>全流程详解

    蓝牙空中升级(OTA)原理

    1. 概述 所谓DFU(Device Firmware Update),就是设备固件升级的意思,而OTA(Over The Air)是实现DFU的一种方式而已,准确说,OTA的全称应该
    发表于 07-21 14:50

    什么是代码平台?

    代码平台是一种无需编写传统代码,通过可视化拖拽、参数配置、逻辑连线即可快速搭建业务流程与应用系统的工具平台。它将复杂的软件开发过程转化为 “搭积木” 式的操作,让非技术人员(如业务人
    发表于 07-12 20:28

    瑞萨电子MCUOTA升级功能介绍

    感知”的升级体验。本文以RX26T为例,拆解OTA实现思路、代码框架与实测情况,帮助
    的头像 发表于 05-15 14:36 ?924次阅读
    瑞萨电子<b class='flag-5'>MCU</b><b class='flag-5'>无</b>感<b class='flag-5'>OTA</b><b class='flag-5'>升级</b>功能介绍

    有没有大神使用cubeMX生成初始代码开发实现通过USB(HID)进行OTA升级功能的?

    求助,有没有大神使用cubeMX生成初始代码开发实现通过USB(HID)进行OTA升级功能的
    发表于 04-22 13:35

    RK3568开发OTA升级

    包下载到SD卡或U盘后,再对设备进行本地升级。 本文将基于飞凌嵌入式RK3568开发板,详细介绍OTA升级的流程,特别是本地升级程序reco
    的头像 发表于 04-21 14:32 ?862次阅读
    RK3568<b class='flag-5'>开发</b>板<b class='flag-5'>OTA</b><b class='flag-5'>升级</b>

    知开源平台重磅升级!嵌入式开发进入“涡轮增压”时代

    亲爱的开发者们,我们带来革命性的开发工具升级知开源平台全新编译引擎正式发布,让代码编译效率实现
    的头像 发表于 03-11 11:25 ?418次阅读
    <b class='flag-5'>零</b>知开源平台重磅<b class='flag-5'>升级</b>!嵌入式<b class='flag-5'>开发</b>进入“涡轮增压”时代

    知开源平台重磅升级!嵌入式开发进入“涡轮增压”时代

    本帖最后由 PCB56242069 于 2025-3-11 13:44 编辑 ?亲爱的开发者们,我们带来革命性的开发工具升级知开源平台全新编译引擎正式发布,让
    发表于 03-11 11:22

    浅谈车规MCU (MGEQ1C064) OTA升级

    OTA升级OTA升级方式 为了实现OTA升级
    发表于 03-04 12:52

    OTA软件升级管理系统

    OTA(Over-the-Air Technology,空中下载技术)是通过空中下载的方式对车辆中的软件进行远程升级。经纬恒润OTA软件升级管理系统基于软件架构、应用架构、业务架构和技
    的头像 发表于 01-13 09:39 ?966次阅读
    <b class='flag-5'>OTA</b>软件<b class='flag-5'>升级</b>管理系统

    OTA升级】无需数据线,一条命令即可完成固件升级

    OTA无线升级过程视频演示:OTA介绍OTA(Over-The-Air,空中升级)是一种通过无线通信技术
    的头像 发表于 12-11 01:00 ?4224次阅读
    【<b class='flag-5'>OTA</b><b class='flag-5'>升级</b>】无需数据线,一条命令即可完成固件<b class='flag-5'>升级</b>!

    基于图遍历的Flink任务画布模式下代码开发实现方案

    的过程。以下是利用Flink的 StreamGraph 通过低代码的方式,来实现StreamGraph的生成,并最终实现 Flink 程序代码
    的头像 发表于 11-05 10:35 ?1158次阅读
    基于图遍历的Flink任务画布模式下<b class='flag-5'>零</b><b class='flag-5'>代码</b><b class='flag-5'>开发</b><b class='flag-5'>实现</b>方案

    2024英飞凌生态创新论坛分享:基于英飞凌安全MCU和Trust M构筑安全OTA业务

    拉比基于英飞凌安全MCU和Trust M构筑的安全OTA业务,副总裁赵毅在下午场论坛发表主题演讲《智能家电软件OTA分升级技术》。 英飞凌
    的头像 发表于 09-23 10:44 ?865次阅读
    2024英飞凌生态创新论坛分享:基于英飞凌安全<b class='flag-5'>MCU</b>和Trust M构筑安全<b class='flag-5'>OTA</b>业务