基于MCU的差分升级实现方案解析

随着物联网设备智能化的发展,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升级 。
差分升级的实现方案
差分升级大多是通过在升级程序(Bootloader为主)中增加差分升级算法来实现,算法需要占用一些本地Flash和RAM资源 。
差分升级又叫增量升级,顾名思义就是通过差分算法将源版本与目标版本之间差异的部分提取出来制作成差分包,然后在设备通过还原算法将差异部分在源版本上进行还原从而升级成目标版本的过程 。差分升级方案不仅可以节省MCU内部的资源空间、还可以节省下载流程及下载和升级过程中的功耗 。从另一个角度说,通过将差分部分下发到设备保证了版本的安全性 。
在过去几年,艾拉比一直致力于将差分升级赋能给更多行业客户,比较主流的差分算法集成的方式是通过SDK的形式提供差分升级能力,客户需要将差分升级SDK集成到设备Bootloader中,有一定的集成开发量 。这种方式的好处是客户可以自己根据API进行定制开发一些功能,但是MCU的碎片化导致这种集成开发方式成本较高,客户集成使用也相对有些要求,适配和测试周期也比较长,因此艾拉比基于大量MCU系统的认识、以及对OTA的理解推出一种更简便,更易用的,相对标准化的优化方案 。
MCU差分升级的优化实现方案UB产品
UB(Upgrade Bootloader)产品是艾拉比基于MCU推出的独立标准化bootloader产品,内部集成了艾拉比最新的差分升级算法,烧录即可以使用,无需开发即可实现差分升级 。
UB通过将差分升级算法在编译bootloader阶段集成进去,而这个编译和开发bootloader的过程,艾拉比直接提供一种图形化、零开发的云端制作工具来完成,从而使得MCU的产品可以用最简单的方式实现差分升级能力 。

基于MCU的差分升级实现方案解析
文章插图
相较于整包升级大大节省了Flash资源,甚至可以省去外挂Flash或者更换更大资源MCU的物料成本 。作为一款标准化的产品,艾拉比提供的在线制作工具可根据用户产品的硬件配置一键生成UB,省去了繁琐且碎片化的OTA适配成本,助力产品快速上市 。此外,UB在确保OTA的安全性上还有很多考量 。比如采用一芯一码技术,根据MCU内出厂不可更改的唯一ID,生成唯一安全激活码,确保设备差分功能的唯一性和升级过程的安全性 。UB中集成的异常保护支持了防掉电/误操作等防变砖机制,确保升级万无一失 。
【基于MCU的差分升级实现方案解析】
基于MCU的差分升级实现方案解析
文章插图
UB的生成过程十分简便,用户根据选定的MCU型号和基本信息,通过界面化工具按步骤操作直接生成 。操作流程如下:配置mcu的硬件信息->配置mcu的分区信息->一键生成UB 。
目前艾拉比已经适配了ST主流的MCU型号 。
UB的使用场景1)作为Bootloader的使用场景 该场景用户无需再额外开发一个Bootloader,直接使用UB来引导启动程序,当有版本需要升级时跳转至升级流程,由UB 来控制跳转 。2)作为独立子系统的使用场景 该场景用户已经根据需求制作出一个Bootloader,那么可以将UB作为一个独立的升级子系统或者是二级Bootloader,当MCU需要升级时由Bootloader跳转至UB来进行升级 。
UB的成功案例—NB IOT燃气表
我们结合表计行业的成功案例看一下UB如何在整表产品中使用:案例中需要升级的是MCU上的主控程序 。

基于MCU的差分升级实现方案解析
文章插图
STM32 MCU烧录艾拉比OTA UB ,一方面可以作为Bootloader来引导系统启动,另一方面可以实现差分升级 。差分升级包的获取方式有两种情况,一种通过NB模块从平台获取;一种通过近场的红外模块将差分升级包传输至设备 。
1)通过NB模块从平台获取
此种方式需要在应用层集成平台连接组件,其中对网络调用通过NB-IOT模块的AT指令完成,NB-IOT模块只进行数据透传实现网络连接 。NB-IOT表计包含应用和历史数据、配置数据等区域,升级过程只升级应用区域,数据区不做任何改变 。
2)通过近场模块传输
在艾拉比在线差分平台制作完差分包后下载至本地 。然后通过手持红外设备将差分包传输至表记中来实现升级,避免拆表等工作 。
UB产品,是艾拉比产品和研发团队基于OTA的深刻洞见后的创新成果,从物联网终端客户的实际使用场景出发,不断为客户提高OTA使用率,降低OTA开发成本及资源成本,让OTA能够在物联网中发挥关键价值 。艾拉比始终坚持深耕OTA领域,通过持续的技术变革与服务水平,为客户提供更稳定、更安全、更简单的OTA服务 。
责任编辑人:CC

    推荐阅读