【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(客户端/服务端)模型。待升级设备作为客户端,协调器(通常是Zigbee网关)作为服务端。服务端为客户端提供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

原因:

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


本系列贴包含内容:

  1. Zigbee 科普 - 1 开篇介绍
  2. Zigbee 科普 - 2 网络模型
  3. Zigbee 科普 - 3 入网流程
  4. Zigbee 科普 - 4 数据模型
  5. Zigbee 科普 - 5 安全模型
  6. Zigbee 科普 - 6 OTA 流程
  7. Zigbee 科普 - 7 路由介绍

我的栈溢不出。

youngpe
Posts: 51

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

tuya os中具体是哪个接口调用ota升级,如果子设备是通过接口OPERATE_RET tuya_zigbee_custom_dev_mgr_init(TY_Z3_DEVLIST_S *devlist, TY_Z3_DEV_CBS_S *cbs);注册的白名单devlist添加的,网关需要自己管理子设备,这个情况网关这边如果给子设备升级

Post Reply