7月18-22日,STM32 线上技术周正式开讲。作为ST在OTA领域的战略合作伙伴,艾拉比亮相线上技术周,为观众展示如何零代码实现ST MCU的差分升级,并现场基于ST MCU为大家带来OpenFOTA的DEMO场景演示。
今天我们就来聊聊基于MCU,如何零代码实现OTA差分升级。
物联网设备的OTA 在设计和实现过程中需要依赖于物联网设备的硬件方案。 其中,MCU 作为主控处理器在物联网领域占着非常高的份额,广泛分布在智能家居、三表、工业等各个领域。
在 MCU 的 OTA 升级方式上,目前很大部分客户实现方式依旧为整包升级,举个例子,某客户 MCU 的 Flash 配置为 64KB,自身 APP 固件为 50KB,此时如果需要实现 OTA 升级,大多客户选择的方案是:
1. 外挂一颗 64KB 或者 128KB 的 Flash
2. 选择一颗 128KB Flash 资源的 MCU
这种情况下的升级方案通常会增加额外的研发、物料以及管理成本,这又是一笔不小的费用支出。
在这里我们不得不提的是差分升级。差分升级相较于传统的的整包升级方式,有资源需求低、升级功耗低、升级时间短及下载流量少等诸多优势,越来越多的成为物联网升级的优选方案。
上述案例,如果通过差分 OTA 升级,则在 64KB Flash 的 MCU 上直接可以实现,再加入 5KB 左右的差分升级算法后,还能剩余 9KB 左右空间来存储几 KB 的差分升级包,不增加硬件成本就可以实现 OTA 升级。
核心技术:差分升级
差分升级又叫增量升级,顾名思义就是通过差分算法将源版本与目标版本之间差异的部分提取出来制作成差分包,然后在设备通过还原算法将差异部分在源版本上进行还原从而升级成目标版本的过程。
差分升级大多是通过在升级程序(Bootloader 为主)中增加差分升级算法来实现,算法需要占用一些本地 Flash 和 RAM 资源。
在过去几年,比较主流的差分算法集成的方式是通过 SDK 的形式提供差分升级能力,客户需要将差分升级 SDK 集成到设备 Bootloader 中,有一定的集成开发量。这种方式的好处是客户可以自己根据 API 进行定制开发一些功能。
但是在整机OTA实施过程中还是会有很多问题,比如:
1、MCU 的碎片化导致这种集成开发方式成本较高,适配和测试周期长
2、主控升级一旦失败,整机就会变砖
3、模块无法感知主控的升级状态
4、芯片资源利用率不高,近场、远场的等多场景需求不能融合
艾拉比基于大量 MCU系统集成的经验和认识以及对 OTA 的理解推出一种更简便,更易用的,相对标准化的优化方案。发现就模组侧而言,其优秀的升级能力和相对富余的硬件资源,相较于MCU端都更具优势。因此艾拉比推出标准化的OTA差分升级方案——OpenFOTA,旨在通过硬件资源较丰富芯片的FOTA能力完成其他节点的差分升级,该方案设计了完善的异常保护机制。
艾拉比OpenFOTA整机级解决方案
在OpenFOTA方案之前,模组只支持升级模组的应用 APP(FOTA),使用OpenFOTA之后的模组,则可以升级MCU 的应用 APP(FOTA),站在整机终端的角度可以分别称之为整机固件升级(FOTA)与整机应用升级(SOTA),所以OpenFOTA方案相当于同时赋能了物联网整机设备的FOTA升级能力与SOTA升级能力。
主控处理器MCU烧录艾拉比ELB固件,该固件是图形化配置生成,其中包含与模组进行OTA业务交互的UP程序以及 MCU的轻量级Bootloader引导程序和相关保护机制;
通信模组中已经预先集成了艾拉比的UA差分算法、UP程序、交互逻辑接口等;
OpenFOTA差分升级方案的关键能力和优势
1、更符合整机终端的使用场景
OpenFOTA在广和通模组内构建了完整的端、云交互业务场景,也同时支持近场本地升级刷写。
2、支持用户自定义模组Flash区域
用户可自定义该区域的使用,相当于增加了一个外挂Flash的资源供使用。
3、全面完善的升级保护机制和高可靠性
OpenFOTA自带的断电续升,安全鉴权等机制,更多维度,更省资源的情况下,保障了升级的可靠性和可用性,更是支持不消耗MCU资源的回滚升级。
4、MCU的差分OTA实现更强劲的差分升级能力
广和通模组侧集成了艾拉比最先进的差分升级算法,比MCU上的算法相对更高效,做出的差分包更小。
5、无需开发的整机OTA融合升级
既可以升级ST MCU 的应用 APP(整机SOTA),又可以升级广和通模组的固件APP(整机FOTA)
目前艾拉比已经适配了 ST 主流的 MCU 型号。
方案应用:以ST MCU+广和通通讯模块为例
OpenFOTA 方案设备端构成如上图所示,主控处理器ST MCU烧录艾拉比ELB 固件,该固件是图形化配置生成,其中包含与模组进行OTA业务交互的 UP 程序以及STMCU的轻量级Bootloader引导程序和相关保护机制,而在广和通模组中已经预先集成了艾拉比的 UA差分算法、UP 程序、交互逻辑接口等。
终端客户在使用的时候只需要为选型的ST MCU烧录ELB固件,然后搭配对应的广和通模块即可,几乎不需要再为如何实现FOTA而烦恼,只管验证和使用。