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

2023-11-11

概述

        随着物联网设备智能化的发展,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)通过近场模块传输
在艾拉比在线差分平台制作完差分包后下载至本地。然后通过手持红外设备将差分包传输至表记中来实现升级,避免拆表等工作。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于MCU,如何零代码无开发实现OTA差分升级? 的相关文章

  • DRM几个重要的结构体及panel开发

    一 DRM Linux下的DRM框架内容众多 结构复杂 本文将简单介绍下开发过程中用到的几个结构体 这几个结构体都在之前文章里面开发DRM驱动时用到的 未用到的暂不介绍 DRM中的KMS包含Framebuffer CRTC ENCODER
  • 机器智能的未来

    ChatGPT丨小智ai丨chatgpt丨人工智能丨OpenAI丨聊天机器人丨AI语音助手丨GPT 3 5丨OpenAI ChatGPT GPT 4 GPT 3 人机对话 ChatGPT应用 小智ai 小智ai 小智ai 小智ai 小智AI
  • MySql使用全记录4 -----设置root口令(即修改默认口令)

    设置MySql的root用户口令 本文由CSDN 蚍蜉撼青松 主页 http blog csdn net howeverpf 整理编辑 转载请注明出处 参考链接 http wenku baidu com view 73ab05737fd53
  • html取出单元格中的数值_简单爬取html页面的表格中的数据

    关于爬虫方面本人小白一个 通过无所不能的度娘 从中汲取营养 得到一个简单的能用的例子 在这分享一下 供大家一起汲取 首先说一下 你想从一个页面中获取到你想要的数据 首先你要先得到这个页面 然后把获取到的页面 使用Jsoup解析成 Docum

随机推荐

  • 如何使用挂载磁盘和windows服务器进行文件传输?

    如何远程连接windows服务器 相信对于使用过windows服务器的朋友来说这都是非常简单的事情 但是对于如何以及为什么挂载本地磁盘到windows服务器 很多新手就不明白为什么了 那么今天行云管家赵博士就来教大家怎样将本地磁盘挂载到到w
  • Windows10下配置Jmeter环境变量

    安装之后配置环境变量的步骤如下 1 点 此电脑 右键选 属性 2 选择 高级系统设置 环境变量 如下图 3 新建环境变量JMETER HOME 如下截图 4 点击确定之后 编辑 CLASSPATH 的变量 在变量值最后追加内容 JMETER
  • 你要的住宅地产行业数据化解决方案来啦!

    传统标准化复制品和服务越来越难以应付市场需求与行业竞争格局的改变 众多房地产企业寻求数字化转型 在转型过程中 会遇到各种各样的挑战 而一套合适的住宅地产行业数据化解决方案会解决很多难题 助力房企顺利实现转型 我推荐帆软住宅地产行业数据化解决
  • 记一次JAVA自定义@interface中方法定义诡异问题

    诡异问题描述 使用IDEA工具 正常不报错但是执行mvn install的时候 出现了大量的方法和属性不存在提示错误 实际上都要是存在 但无论如何都编译不通过 这种场景有点类似于在一个类中少了个大括号 然后真个类报错的那种感觉 问题查找 排
  • Dyna-Q算法的理论基础及其代码实践【CliffWalking-v0】

    Dyna Q 理论基础 强化学习中 模型 通常指与智能体交互的环境模型 即对环境的状态转移概率和奖励函数进行建模 根据是否具有环境模型 强化学习算法分为两种 基于模型的强化学习 model based 无模型的强化学习根据智能体与环境交互采
  • 2016年蓝桥杯省赛生日蜡烛题目

    生日蜡烛 问题描述 某君从某年开始每年都举办一次生日party 并且每次都要吹熄与年龄相同根数的蜡烛 现在算起来 他一共吹熄了236根蜡烛 请问 他从多少岁开始过生日party的 请填写他开始过生日party的年龄数 注意 你提交的应该是一
  • logistic回归_二元logistic回归分析

    SPSS学习乐园 点击上方 蓝色 字体可关注 logistic回归 前面介绍过多重线性回归分析 该分析方法是研究一个因变量 服从正态分布 与多个自变量的数量关系 多重线性回归分析 在医学研究中 常常需要研究的结局变量不是连续型变量 而是二分
  • Windows 重装系统-U盘启动盘制作及启动

    重启可以解决90 的问题 重装系统可以解决99 9 的问题 本文主要记录一下 相关过程及相关注意事项 以联想电脑为例 一 制作U盘启动盘 准备工具 U盘 最好8G以上 电脑 联网 注意 1 制作完成后U盘会被格式化 1 浏览器搜索 win1
  • GD32F103基础教程—跑马灯实验(六)

    一 教程简介 本章主要是讲解多路GPIO输出实验 及相关GPIO输 出配置方法 并控制LED2和LED3灯实现间隔1s闪烁 二 实验流程 1 工程配置 跑马灯工程配置方法与第五章的配置方法一致 具体请 查看第五章教程 本章不再赘述 2 源码
  • linux下kbhit的头文件,linux下kbhit的实现

    我们知道 在windows下有个键盘测试函数 int kbhit void 使用该函数需要包含头文件conio h 执行时 kbhit测试是否有键盘按键按下 若有则返回非零值 否则返回零 在Unix Linux下 并没有提供这个函数 在li
  • Matlab似然比检验函数,似然比检验 (LR test)

    计量中检验的一般套路是以 p value 显著 拒绝原假设为理想情况 然而总有几个检验的假设是不按套路出牌的 Hansen 检验算一个 LR 检验算第二个 Stata 应用 LR 检验可用于模型的比较和选择 用法与 Hausman 检验相似
  • 【Python基础】之字符串格式化(%百分号形式和format形式)

    字符串的格式化主要有两种 第一种是 形式的 第二种是python特有的 format形式 百分号形式 s 我是 s 我今年 d岁 mary 18 print s 我是mary 我今年18岁 format形式 t 我是 我今年 岁 forma
  • Android studio配置Google play服务

    Android studio配置Google play服务 1 File gt settings gt Android SDK gt SDK tools gt 勾选 Google Play services 然后Apply OK即可 可参考
  • OpenCV-Python实战(1)——OpenCV简介与图像处理基础

    OpenCV Python实战 1 OpenCV简介与图像处理基础 OpenCV介绍 Python安装OpenCV OpenCV主要模块 OpenCV应用场景 OpenCV图像处理基础 图像基础 图像处理中的主要问题 图像处理流程 像素 颜
  • 将整数n分成k份(回溯)

    Name 将整数n分成k份 回溯 Copyright Author 巧若拙 Date 16 12 18 13 25 Description 将整数n分成k份 将整数n分成k份 且每份不能为空 任意两份不能相同 不考虑顺序 例如 n 7 k
  • [单片机]KeilC51简单流水灯制作与原理

    P1 单行最简流水灯示例 首先先看原理图 下面为对应解释 最好使用低电平驱动 所谓低电平驱动就是引脚部分为低电平 就如图中电路所示 VCC处于LED右侧 故LED右侧高电平而其左侧低电平 符合条件 这里使用八个LED 自上而下排列 注意这里
  • SaaS架构实现理论(三)可配置多租户

    互联网时代的软件革命 SaaS架构 学习笔记三 1 Multi Tenant应用的可配置性 1 1数据可配置 有些租户想要存储 对其有用 有些租户不想 对其无用 这种系统实现过滤中并不存在 而用户又需要保存的数据 称之为扩展数据 多租户的S
  • Response.setContentType(MIME)的作用及参数列表

    Response setContentType MIME 的作用是时客户端的浏览器区分不同种类的数据 并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据 MIME的作用 由于MIME类型与文档的后缀相关 因此服务器使用文档的
  • 操作系统(一)--概述

    1 操作系统是紧贴硬件之上 所有其他软件之下 是其它软件的环境 用来管理硬件 使cpu I O设备和存储空间能够有效利用 管理分配软硬件资源 合理组织计算机工作流程 作业管理 进程管理 实现用户接口 弥补硬件系统的类型和数量的差别 将覆盖了
  • 基于MCU,如何零代码无开发实现OTA差分升级?

    概述 随着物联网设备智能化的发展 OTA 升级已经成为了业界公认的基础能力 而 OTA 在设计和实现过程中需要依赖于物联网设备的硬件方案 物联网设备主流的硬件方案为 1 直接基于通讯芯片 模块开发的方案 用户升级的主要目标是通讯芯片 模块