欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > zigbee ZCL帧实例分析

zigbee ZCL帧实例分析

2025/4/4 11:34:29 来源:https://blog.csdn.net/qq_32966261/article/details/146976861  浏览:    关键词:zigbee ZCL帧实例分析

写在前面

如果有时间的话可以查看官方的文档说明更加详细准确,本文只是整理一部分协议。
07-5123-08-Zigbee-Cluster-Library.pdf 的“2.4 Command Frame Formats”章节。

ZCL命令帧结构

ZCL帧包含两个部分包头和负载。

包头:

  • 控制字节(frame control),必选
  • 制造商ID(manufacturer code),可选
  • 序列号(Transaction sequence number),必选
  • 命令ID(command identifier),必选

负载:

  • 负载(payload)
    在这里插入图片描述
    实例:
    在这里插入图片描述

ZCL包头

控制字节(frame control)

在这里插入图片描述
帧类型(Frame Type) :

  • 00:全局命令,与特定属性无关,比如读写属性命令
  • 01:特定集群命令,针对某个特定功能或集群定义的命令。例如,灯光控制、温度测量等集群会有自己专用的命令。
  • 10-11:预留
    全局命令示例:属性读取
    在这里插入图片描述
    特定集群命令示例:开关命令
    在这里插入图片描述

制造商特定字段(Manufacturer Specific):

  • 0:标准ZCL命令
  • 1:制造商自定义ZCL命令,ZCL帧需要填写制造商ID(manufacturer code)字段

标准ZCL命令示例:基础属性读取
在这里插入图片描述
制造商自定义ZCL命令示例:自定义属性读取
在这里插入图片描述
方向(Direction):

  • 0:cluster的客户端向服务端,如网关读取设备属性
  • 1:cluster的服务端向客户端,如设备上报属性

禁用默认响应(Disable Default Response):
0:开启默认响应。只有设备数据主动上报时才为 0,此时网关会主动回一个 Response 报文,作为上报成功的标记。
1:禁用默认响应。默认为该值。

制造商ID(manufacturer code)

制造商ID:控制字节(frame control)中的制造商特定字段(Manufacturer Specific)为1时需要赋值。

序列号(Transaction sequence number)

通讯序号,累加,请求和响应序号相同

命令ID(command identifier)

常规全局命令
全局命令是针对 Zigbee 协议栈中所有集群的基本控制命令。它们用于协调设备的基本操作。

Command Identifier Field ValueDescription
0x00Read Attributes
0x01Read Attributes Response
0x02Write Attributes
0x03Write Attributes Undivided
0x04Write Attributes Response
0x05Write Attributes No Response
0x06Configure Reporting
0x07Configure Reporting Response
0x08Read Reporting Configuration
0x09Read Reporting Configuration Response
0x0aReport attributes
0x0bDefault Response
0x0cDiscover Attributes
0x0dDiscover Attributes Response
0x0eRead Attributes Structured
0x0fWrite Attributes Structured
0x10Write Attributes Structured response
0x11Discover Commands Received
0x12Discover Commands Received Response
0x13Discover Commands Generated
0x14Discover Commands Generated Response
0x15Discover Attributes Extended
0x16Discover Attributes Extended Response

特定集群命令
特定集群命令是针对某个特定功能或集群定义的命令。例如,灯光控制、温度测量等集群会有自己专用的命令。

例如,对于开关控制集群(0x0006):

  • 0x00: Off
    关闭设备(例如关闭灯光)。
  • 0x01: On
    打开设备(例如打开灯光)。
  • 0x02: Toggle
    切换设备的当前状态(例如,开关灯光的开/关状态)。
  • 0x03: Move
    启动设备的持续动作(例如,调节灯光的亮度或调节窗帘的位置)。
  • 0x04: Move to Level
    将设备移动到指定的水平值(例如,调节灯光到设定的亮度级别)。

例如,对于门锁集群(0x0101):

  • 0x00: Lock Door
    锁住门。
  • 0x01: Unlock Door
    解锁门。
  • 0x02: Toggle Door Lock
    切换门的锁定状态。

负载(payload)

根据命令类型决定格式,具体说明见官方文档“2.5 General Command Frames”,其中说明了各个命令ID对应的作用与负载的格式。
数据类型说明:“2.6.2.2 Data Type Table”章节

参考

07-5123-08-Zigbee-Cluster-Library.pdf

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词