小伙伴儿们,如果觉得文章干货满满,欢迎加入公众号【编程识堂】,更多干货等你们来哦!
前言
在迅速变化和发展的物联网市场,新的产品需求不断涌现,因此对于智能硬件设备的更新需求就变得空前高涨,设备不再像传统设备一样一经出售就不再变更。为了快速响应市场需求,一个技术变得极为重要,即OTA空中下载技术。
物联网平台支持通过OTA方式进行设备固件升级,是智能设备修复系统漏洞、实现系统升级的手段,通过固件升级用户提供更好的服务。OTA固件升级功能不仅能够更新固件,而且还能重新配置片上硬件资源。同时,设备固件可通过OTA固件升级流程获得更新的补丁和更多安全算法防范病毒攻击。
什么是OTA升级
OTA升级:通过OTA方式实现固件或软件的升级;
只要是通过无线通信方式实现升级的,都可以叫OTA升级,比如网络/蓝牙。
那什么是有线升级呢,也叫做本地升级,比如我们平时为电脑装系统,就是提前将系统下载到U盘上,再通过USB连接连接到电脑上进行电脑系统升级,也就是说通过UART,USB或者SPI通信接口来升级设备固件就叫做有线升级;
OTA升级优势
市场端的快速上线需求
天下武功唯快不破,市场需要持续不断的创新,不断的增加用户需求,一般设备都会预留一些后加载技术,前期可以实现一部分功能即开始上线,后面通过敏捷开发,不断迭代新功能,通过OTA升级更新设备实现更多功能,实现渐进式部署;
运维成本低
通过OTA方式,可以对分布在各地的设备进行软件升级,而不必让运维人员各地奔波。
设备安全性及完善性
有了OTA固件升级的备案,那么产品不一定等到完全没有缺陷再上市,只要在不存在较为致命的缺陷下,就可以提前上市,解决问题后在远程完成升级修补缺陷。同时基于日益严峻的安全形势威胁,备固件可通过OTA固件升级流程获得最新补丁和更多安全算法,做到不断加固的。
OTA升级流程
小堂为大家列举两种方式OTA升级,MQTT升级与蓝牙升级
MQTT升级
流程图
升级步骤
● 设备唤醒后上报固件当前版本,服务端进行存储;
● 在控制台上传新固件,并配置升级计划及升级策略,比如全量升级、容灾升级 、指定设备升级等等;
● 根据升级计划对设备发送固件升级请求,下发固件URL给设备;
● 设备拿到固件URL后,进行固件升级,并上报升级进度至服务端
● 服务端接收到升级进度后返回至控制台展示,直至升级成功。
协议
设备上报固件版本
数据上行Topic
#设备通过这个Topic上报当前的固件版本信息。
iot/v1/s/[devId]/ota/uploadVerInfo
JSON数据格式
{
"id": "123556",
"params": {
"version": "1.0.1",
"deviceId":"3234234234242"
}
}
参数说明
参数 类型 说明
id Long 消息ID号。每个消息ID在当前设备中具有唯一性
version String OTA模块版本。
deviceId String 当前设备id
OTA云端下发固件升级包信息至设备
数据下行Topic
#通过这个Topic推送升级包信息, 设备订阅该Topic可以获得升级包信息。
iot/v1/c/[deviceId]/ota/execOtaReq
JSON数据格式
{
"code": "1000",
"data": {
"size": 432945,
"version": "2.0.0",
"url": "https://iotx-ota-pre.oss-cn-shanghai.aliyuncs.com/ota/2.0.0/test.bin"
},
"id": 1626969597470,
"message": "success"
}
参数说明
参数 类型 说明
id Long 消息ID号。每个消息ID在当前设备中具有唯一性。
message String 结果信息。
code String 状态码。
version String 设备升级包的版本信息。
size Long 升级包大小,单位:字节。
url String 升级包在对象存储(OSS)上的存储地址。
设备上报升级进度
数据上行Topic
#OTA升级过程中,设备可以通过这个Topic上报OTA升级的进度百分比。
iot/v1/s/[deviceId]/ota/progressReq
JSON数据格式
{
"id": "123",
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数嵌入式工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**



**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**


**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!! (备注:嵌入式)**
<img src="https://img-community.csdnimg.cn/images/73bb5de17851459088c6af944156ee24.jpg" alt="img" style="zoom: 67%;" />
# 最后
**资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~**
**你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!**
sdnimg.cn/images/73bb5de17851459088c6af944156ee24.jpg" alt="img" style="zoom: 67%;" />
# 最后
**资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~**
**你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!**
**[更多资料点击此处获qu!!](https://bbs.csdn.net/topics/618376385)**