引言
空中下载技术(Over-the-Air Technology, OTA)
是通过移动通信的空中接口实现对移动终端设备进行远程管理的技术。
该技术在IOT
行业非常的重要,当随着市场上的产品越来越多,保有量也越来越多,随着时间的推移,很多设备的功能比较老旧,逐渐落伍。为了能远程帮助用户升级设备功能,降低产品的维护成本,OTA
技术就起到了很重要的作用。
特别在智能汽车行业,OTA
升级都成为厂商必吹的功能;前段时间理想的L7
就推出了MAX
版本,该版本就提供了一个非常高级的硬件设备,之后如果提出更高阶的自动驾驶程序,就可以通过OTA
的方式,更新设备的自动驾驶能力。
既然OTA
这么重要,那OTA
升级的一个架构是怎样的呢?接下来结合自己的行业,来简单讲解下OTA
升级的流程。
OTA升级架构
谈到对设备进行OTA
升级,需要注意以下几点:
- 什么时候升级,触发的来源
- 规则判断,升级并不是对所有的设备
- 设备升级中状态判断,升级超时判断
- 升级日志记录
如图所示,是OTA
升级的示意图,有两种OTA
升级的触发方式,分别为Kafka
设备上线事件、App
主动查询;收到触发来源后,进行规则判断,判断该设备是否在本次的升级任务中,如果没有就直接结束,否则进入下一步进行模组判断,判断该模组和规则中是否一致,且版本低于规则中的版本,如果符合就将设备放入MQ
中缓存起来,启动线程去对设备推送升级固件,推送后再将设备信息放入另一MQ
中,然后在MQ
中查询设备升级过程中的状态,当状态还在升级中,就将设备信息放入MQ
中的重试队列中,直到重试2
次后,返回升级状态,包括升级成功和升级失败两种状态,并把两种日志放入ES
中进行记录。
结尾
以上就是OTA
简要的升级方式,涉及的中间件较多,但整个流程比较好理解。
对于MQ
的使用,可以参考我之前的文档。