1.概念介绍
OTA
全称为Over-The-Air
,翻译为“空中下载”,它是指设备可以在不连接电脑的情况下通过网络进行系统更新、软件下载、配置文件更新等操作的技术。
这种技术最初用于移动设备,例如智能手机和平板电脑等,但现在已经逐渐被广泛应用于诸如汽车、智能音箱、家电等物联网设备中。其作用是让设备更加智能、更加便捷、更加安全。
通过OTA
,设备制造商可以将更新、新功能和其他重要信息推送到设备上,使得设备上的软件和设置能够得到及时更新,保持设备的运行稳定性和安全性。
2.Zigbee OTA技术
2.1. cluster 定义
《Cluster Library Specification Document 07-5123 Revision 8》的chapter 11章节中,定义了Over-The-Air Upgrade
cluster.
2.2. 通信模型
Zigbee定义的标准OTA流程基于典型的C/S(客户端/服务端)模型。待升级设备作为客户端,协调器(通常是Zigbee网关)作为服务端。服务端为客户端提供OTA升级服务,客户端向服务端请求升级,完成镜像文件下载,经过本地校验通过后运行新的固件。
2.3. 升级交互流程
基于TuyaOS SDK开发的zigbee设备OTA一般流程为:
Image Notify:
server->client
包含厂商信息,设备侧需校验。
Query Next Image Request:
client->server
设备主动发起新固件请求,报文包含厂商信息,设备当前固件版本信息等。
Query Next Image Response:
server->client
服务端校验固件版本号信息,并回复response。如果校验通过则下发新固件的基本信息,包括:厂商信息、新固件版本号、固件大小等。
Image Block Request:
client->server
设备端校验固件版本号、固件大小等信息。如果校验通过主动开始请求固件分片包流程。
Image Block Response:
server->client
服务端回复固件分片包信息。
Upgrade End Request:
client->server
设备端请求到完整固件包并存储、校验成功后发送
Upgrade End Request
报文通知服务端。Upgrade End Response:
server->client
服务端校验信息后回复升级结果通知,报文包含:固件版本信息、指定升级时间戳等。
设备端根据升级时间戳计算实际升级时间,完成新固件的安装。
2.4. 固件OTA头介绍
zigbee 定义的标准OTA头包含56字节固定字段和x字节可变字段。各位域定义如下:
3. 常见升级失败原因(continue to update… )
3.1. Insufficient Space
现象:
升级超时
OTA Upgrade:Default Response:status code=0x89
原因:
升级固件包大小超过最大限制。