【Zigbee 科普系列】 - 6 OTA流程

Zigbee 子设备开发


Post Reply
zeso
Posts: 132

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.

Image

2.2. 通信模型

Image

Zigbee定义的标准OTA流程基于典型的C/S(客户端/服务端)模型。待升级设备作为客户端,协调器(通常是Zibgee网关)作为服务端。服务端为客户端提供OTA升级服务,客户端向服务端请求升级,完成镜像文件下载,经过本地校验通过后运行新的固件。

2.3. 升级交互流程

Image

基于TuyaOS SDK开发的zigbee设备OTA一般流程为:

  1. Image Notify:server->client

    Image

    包含厂商信息,设备侧需校验。

  2. Query Next Image Request:client->server

    Image

    设备主动发起新固件请求,报文包含厂商信息,设备当前固件版本信息等。

  3. Query Next Image Response:server->client

    Image

    服务端校验固件版本号信息,并回复response。如果校验通过则下发新固件的基本信息,包括:厂商信息、新固件版本号、固件大小等。

  4. Image Block Request:client->server

    Image

    设备端校验固件版本号、固件大小等信息。如果校验通过主动开始请求固件分片包流程。

  5. Image Block Response:server->client

    Image

    服务端回复固件分片包信息。

  6. Upgrade End Request:client->server

    Image

    设备端请求到完整固件包并存储、校验成功后发送Upgrade End Request报文通知服务端。

  7. Upgrade End Response:server->client

    Image

    服务端校验信息后回复升级结果通知,报文包含:固件版本信息、指定升级时间戳等。

  8. 设备端根据升级时间戳计算实际升级时间,完成新固件的安装。

2.4. 固件OTA头介绍

zigbee 定义的标准OTA头包含56字节固定字段和x字节可变字段。各位域定义如下:

Image


3. 常见升级失败原因(continue to update… )

3.1. Insufficient Space

现象:

升级超时

OTA Upgrade:Default Response:status code=0x89

原因:

升级固件包大小超过最大限制。

我的栈溢不出。

Post Reply