Page 1 of 2

【技术干货】一文搞懂IoT设备在线OTA

Posted: 2022年 Sep 21日 18:06
by chenyisong

一、概述
OTA的全称是Over-The-Air,泛指对某个嵌入式系统的软件在线升级。

OTA功能可以让我们的产品完成基本功能后快速上市,并在产品上市后通过功能迭代,问题修复等方式优化产品功能和体验,增强产品竞争力,已经成为IoT产品一个必不可少的功能。

接入涂鸦云的产品均可实现在线OTA:
1、通过TuyaOS接入涂鸦云的产品全部默认支持OTA;
2、通过MCU-SDK接入涂鸦云的产品,在模组端默认支持OTA,更新模组端固件无须MCU参与;
3、通过MCU-SDK接入涂鸦云的产品,在MCU端也支持OTA更新MCU固件,但会对MCU的RAM和Flash有一定的要求;

本文将对比不同OTA实现方式,详细介绍不同OTA方式的优缺点。

二、OTA实现方式对比

目前在嵌入式IoT产品上应用较多的OTA方式有:乒乓升级、搬移升级、压缩升级等,下面依次介绍这几种不同OTA方式的异同。

1、乒乓升级:在APP1和APP2这2个固件区域中来回切换运行

乒乓OTA.png

如当前运行在APP1区,将需要更新的固件下载至APP2区;反正当前运行在APP2区,则将更新的固件下载至APP1区;下载完成并经过完整性校验通过后,写固件更新标记至Flash,重启即可完成MCU固件OTA。
优点:
1)固件下载完成后,只需要完成完整性校验即可快速切换至新固件运行,OTA时间较其他方式更短。
2)MCU和BootLoader逻辑处理简单,可靠性及升级体验更佳
3)Bootloader中功能简单,代码空间小

不足:
1)由于存在APP1和APP2两个不同的程序,对于某些无法进行中断向量动态设置的芯片,需要同时生成APP1和APP2新版本固件,并进行文件合并后上传,并在MCU接收升级固件时做出判断,增加逻辑复杂度。支持中断向量动态设置芯片则不存在此问题。
2)APP1和APP2存储空间大小一样,会要求芯片的Flash空间至少为APP区域大小的2倍以上。
3)需要1个额外的Flash存储区域,保存当前Flash运行在哪个区,在下载OTA升级文件完成后更新该数据。

2、搬移升级:将新的固件下载到固件的OTA存储区,下载完成后在BootLoader中将OTA Storage中的文件复制至APP区,成功后跳转至APP区域运行新固件。

搬移OTA.png

优点:
1)可优化乒乓升级方案中的不足点1,无论是否支持中断向量动态设置,搬移方案生成/上传的固件均可只只生产一份。
2)可优化乒乓升级方案中的不足点3,无须额外存储区域。搬移升级方案Copy升级文件成功后可擦除OTA存储区,并切换APP正常运行。

不足:
1)由于需要在BootLoader中做1次数据copy,OTA时间较乒乓升级方案变长。
2)对MCU的Flash空间要求与乒乓一样,为APP区大小的2倍以上。

3、压缩升级:该方案与搬移方案类似,但较搬移升级方案可缩小对MCU的Flash空间的要求。
将新的固件在编译成功后进行压缩生产OTA升级文件并上传至涂鸦云,在升级过程中下载到固件的OTA存储区,下载完成后在BootLoader中将OTA Storage中的文件解压至APP区,解压成功后跳转至APP区域运行新固件。

压缩OTA.png

优点:
1)集成了搬移方案优点
2)升级文件为压缩后的文件,文件大小较搬移方案的升级文件有一定幅度减小。减少比率根据不同的压缩算法不同,可在25%40%左右。这样在MCU同等Flash空间的情况下,可对应提升APP区空间大小。

不足:
1)需要在BootLoader中做对升级文件做解压缩,OTA时间较搬移升级方案变长。
2)需要在BootLoader中集成解压缩算法,对MCU的Flash、RAM、运算速度提出了更高的要求。


Re: 一文搞懂IoT设备在线OTA

Posted: 2022年 Sep 21日 18:16
by always on the road

墙裂点赞,膜拜围观


Re: 一文搞懂IoT设备在线OTA

Posted: 2022年 Sep 21日 18:24
by 心_远

░░░░░░░░░ ▄▄
░░░░░░░░░ █░░█
░░░░░░░░░ █░░░█
░░░░░░░░░ █░░ █
░░░░░░░░░█░░█
█████▄▄█░░░░████▄
▓▓▓█░░░░░░░░░░░░░█
▓▓▓█░░░░░░░░░░░░░█
▓▓▓█░░░░░░░░░░░░░█
▓▓▓█░░░░░░░░░░░░░█
▓▓▓█░░░░░░░░░░░░░█
▓▓▓█████░░░░░░░░░█
████▀░░░▀▀█████▀


Re: 一文搞懂IoT设备在线OTA

Posted: 2022年 Sep 21日 19:27
by taoyuanxiaoqi

░░░░░░░░░ ▄▄
░░░░░░░░░ █░░█
░░░░░░░░░ █░░░█
░░░░░░░░░ █░░ █
░░░░░░░░░█░░█
█████▄▄█░░░░████▄
▓▓▓█░░░░░░░░░░░░░█
▓▓▓█░░░░░░░░░░░░░█
▓▓▓█░░░░░░░░░░░░░█
▓▓▓█░░░░░░░░░░░░░█
▓▓▓█░░░░░░░░░░░░░█
▓▓▓█████░░░░░░░░░█
████▀░░░▀▀█████▀


Re: 一文搞懂IoT设备在线OTA

Posted: 2022年 Sep 21日 19:49
by pippin-bobo

░░░░░░░░░ ▄▄
░░░░░░░░░ █░░█
░░░░░░░░░ █░░░█
░░░░░░░░░ █░░ █
░░░░░░░░░█░░█
█████▄▄█░░░░████▄
▓▓▓█░░░░░░░░░░░░░█
▓▓▓█░░░░░░░░░░░░░█
▓▓▓█░░░░░░░░░░░░░█
▓▓▓█░░░░░░░░░░░░░█
▓▓▓█░░░░░░░░░░░░░█
▓▓▓█████░░░░░░░░░█
████▀░░░▀▀█████▀


Re: 一文搞懂IoT设备在线OTA

Posted: 2022年 Sep 21日 19:59
by wch

大佬厉害,佩服!


Re: 一文搞懂IoT设备在线OTA

Posted: 2022年 Sep 22日 10:19
by 逻辑的院子

点赞!


Re: 【技术干货】一文搞懂IoT设备在线OTA

Posted: 2022年 Sep 22日 17:13
by 一线长天

干货满满


Re: 【技术干货】一文搞懂IoT设备在线OTA

Posted: 2022年 Sep 23日 09:59
by freedom195

这个必须点赞


Re: 【技术干货】一文搞懂IoT设备在线OTA

Posted: 2022年 Sep 23日 14:03
by TheThingX

先点赞,再学习