这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
zigbee:protocol_overview [2019/10/24 16:52] lijie 创建 |
zigbee:protocol_overview [2021/06/22 23:14] (当前版本) |
||
---|---|---|---|
行 1: | 行 1: | ||
- | zigbee protocol overview | + | < |
- | 摘要:zigbee 协议是异常庞大的知识体系,入门到精通是一个需要注重方法的过程。重心需要放在协议的学习,很多初学者,包括我都早期都是把zigbee当成了单片机学习使用,本末倒置。剥茧抽丝,这里直接开始协议概述。 | + | |
+ | # | ||
+ | |||
+ | > **摘要**:zigbee 协议是异常庞大的知识体系,入门到精通是一个需要注重方法的过程。重心需要放在协议的学习,很多初学者,包括我都早期都是把zigbee当成了单片机学习使用,本末倒置。剥茧抽丝,这里直接开始协议概述。 | ||
对于复杂协议的深入学习,我们都建议一个通用的学习方法,从规范-> | 对于复杂协议的深入学习,我们都建议一个通用的学习方法,从规范-> | ||
- | zigbee 协议架构 | + | 一些公共接口和实现其回调函数同协议栈交互。相对新手入门相对容易,但是可能出现不可控。 | 需要一提的是不同厂商的zigbee 实现协议栈有不同策略,ti是半开源,aps以上应用层是开放源码的,包含完整的af、zdo、zcl、bdb,所以对于新手入门来说并不能急于求成,必须打好基本功,对于nordic实现协议栈采用zboos3.1,几乎是一个全闭源的sdk,厂商应用只需要基于应用层(bdb、zcl)一些公共接口和实现其回调函数同协议栈交互。相对新手入门相对容易,但是可能出现不可控。 | ||
如下列出各个分层协议规范,并且详细阐述其功能。 | 如下列出各个分层协议规范,并且详细阐述其功能。 | ||
- | ieee 802.15.4 | + | * ieee 802.15.4 |
- | 由ieee组织定义,最新版本。802.15.4-2011.pdf | + | |
- | ZigBee Specification, | + | 由ieee组织定义,最新版本。802.15.4-2011.pdf |
- | Zigbee PRO 2015 Spec | + | * ZigBee Specification, |
- | 提示:zigbee 联盟公开了zigbee pro 2015 revision 21版本版本,zigbee3.0是基于基于zigbee | + | [Zigbee PRO 2015 Spec](https:// |
- | ZigBee Cluster Library Specification, | + | |
- | Zigbee Cluster Library | + | > **提示**:zigbee 联盟公开了zigbee pro 2015 revision 21版本版本,zigbee3.0是基于基于zigbee 2017 pro revision22版本,需要加入zigbee 联盟会员。 |
- | 提示:zigbee 联盟公开revision 6版本,zigbee3.0是基于基于revision7版本,需要加入zigbee 联盟会员。 | + | * ZigBee Cluster Library Specification, |
- | Zigbee 3.0 Base Device Behavior Specification | + | |
- | Base Device Behavior Specification | + | [Zigbee Cluster Library](https:// |
+ | |||
+ | > **提示**:zigbee 联盟公开revision 6版本,zigbee3.0是基于基于revision7版本,需要加入zigbee 联盟会员。 | ||
+ | |||
+ | * | ||
+ | |||
+ | [Base Device Behavior Specification](https:// | ||
+ | |||
+ | ## mac 802.15.4 | ||
- | I. mac 802.15.4 | ||
mac层数据服务: | mac层数据服务: | ||
- | 数据传输; | + | * 数据传输; |
- | 信道选择; | + | * 信道选择; |
- | CSMA-CA (载波监听,多路访问冲突避免)机制; | + | * CSMA-CA (载波监听,多路访问冲突避免)机制; |
- | 帧过滤筛选(filtration); | + | * 帧过滤筛选(filtration); |
- | 自动应答; | + | * 自动应答; |
mac层管理服务: | mac层管理服务: | ||
- | 建立并维护个域网(PAN); | + | * 建立并维护个域网(PAN); |
- | 关联请求/ | + | * 关联请求/ |
- | Beacon 帧构造和请求; | + | * Beacon 帧构造和请求; |
- | II. network layer | + | |
+ | ## network layer | ||
网络层数据服务 | 网络层数据服务 | ||
- | 单播/ | + | * 单播/ |
网络管理服务和维护 | 网络管理服务和维护 | ||
- | 建立一个新的网络; | + | * 建立一个新的网络; |
- | 运行设备加入网络; | + | * 运行设备加入网络; |
- | 邻居表支持实现; | + | * 邻居表支持实现; |
- | 网络发现; | + | * 网络发现; |
- | 加入网络; | + | * 加入网络; |
- | 离开网络; | + | * 离开网络; |
- | 解决并解决地址冲突; | + | * 解决并解决地址冲突; |
- | 管理PANID冲突; | + | * 管理PANID冲突; |
- | 路由中继; | + | * 路由中继; |
- | 网络配置; | + | * 网络配置; |
- | Frequency agility | + | * Frequency agility |
- | 终端设备(End Device)超时协议,老化机制; | + | * 终端设备(End Device)超时协议,老化机制; |
- | III. application layer | + | |
+ | ## application layer | ||
需要明白的是,mac和nwk已经完成zigbee协议规范的所有功能集合,apl之内的zdo、aps、af、zdp都是为应用和交互nwk层服务的,其不再需要继续实现zigbee相关功能。 | 需要明白的是,mac和nwk已经完成zigbee协议规范的所有功能集合,apl之内的zdo、aps、af、zdp都是为应用和交互nwk层服务的,其不再需要继续实现zigbee相关功能。 | ||
- | zdo | + | ### zdo |
zdo属于apl, | zdo属于apl, | ||
- | 实现除af应用端点之外的,包含nwk、aps、ssp初始化; | + | * 实现除af应用端点之外的,包含nwk、aps、ssp初始化; |
- | 解析用户应用的不同配置实现包含,Primary Discovery Cache Device Operation、Device and Service Discovery 、安全管理、网络管理、绑定管理、Node Manager 、Group Manager 服务。 | + | * 解析用户应用的不同配置实现包含,Primary Discovery Cache Device Operation、Device and Service Discovery 、安全管理、网络管理、绑定管理、Node Manager 、Group |
- | zcl | + | |
+ | ### zcl | ||
zcl 是zigbee 应用框架层上用以约定抽象描述物联网设备的协议规范,zigbee 将不同的物联网设备按照功能分类分解成单个cluster 元素,而zcl就是所有cluster的集合,也就是对于不同厂商需要的物联网产品,都可以基于zcl 的中cluster描述,通过这样的标准设备描述语言,实现真正意义的万物互联。 | zcl 是zigbee 应用框架层上用以约定抽象描述物联网设备的协议规范,zigbee 将不同的物联网设备按照功能分类分解成单个cluster 元素,而zcl就是所有cluster的集合,也就是对于不同厂商需要的物联网产品,都可以基于zcl 的中cluster描述,通过这样的标准设备描述语言,实现真正意义的万物互联。 | ||
如下是物联网设备中典型设备开关/ | 如下是物联网设备中典型设备开关/ | ||
- | zcl 框图 | + | ![zcl 框图](images/ |
+ | |||
+ | > **提示**:详细zcl协议概述参考 http:// | ||
+ | |||
+ | ### bdb | ||
- | 提示:详细zcl协议概述参考 http:// | ||
- | bdb | ||
bdb 是zigbee 应用层上面的纯接口层,提供了设备操作网络相关的交互行为,也就是bdb已经概况总结了可能的人机操作网络的行为(例如,建立网络/ | bdb 是zigbee 应用层上面的纯接口层,提供了设备操作网络相关的交互行为,也就是bdb已经概况总结了可能的人机操作网络的行为(例如,建立网络/ | ||
- | 提示:详细信息参考http:// | + | > **提示**:详细信息参考http:// |
- | IV. zigbee frame construct | + | |
+ | ## zigbee frame construct | ||
有了如上描述分层结构认识和功能概况,也可以对应zigbee 空中包加深认识,如下数据结构,从mac从开始每层包含一个协议头和数据负载,依次向上,上层的帧构造是基于下一层的数据负载。 | 有了如上描述分层结构认识和功能概况,也可以对应zigbee 空中包加深认识,如下数据结构,从mac从开始每层包含一个协议头和数据负载,依次向上,上层的帧构造是基于下一层的数据负载。 | ||
对应mac层,这里展开了协议头,由一些列的标志位来表示mac层的协议实现。 | 对应mac层,这里展开了协议头,由一些列的标志位来表示mac层的协议实现。 | ||
- | zigbee 帧构造 | + | ![zigbee 帧构造](images/ |
有了上面的帧构造认识,我们就可以清晰解析如下空包,但是具体的协议头和数据负载解析还需要按照ieee组织和zigbbee 联盟协议规范对应章节的帧构造查询。 | 有了上面的帧构造认识,我们就可以清晰解析如下空包,但是具体的协议头和数据负载解析还需要按照ieee组织和zigbbee 联盟协议规范对应章节的帧构造查询。 | ||
- | zigbee 一完整数据帧 | + | ![zigbee 一完整数据帧](images/ |
这里总结了所有分层实现的帧构造对应章节,方便直接查询。 | 这里总结了所有分层实现的帧构造对应章节,方便直接查询。 | ||
- | 层 帧构造 | + | | 层 | 帧构造 |
- | zcl zigbee | + | | ---- | ------------------------------------------------------------ | |
- | aps zigbee specification.pdf -> | + | | zcl |
- | nwk zigbee sepecification.pdf -> | + | | aps |
- | mac 802.15.4-2011.pdf-> | + | | nwk |
+ | | mac | ||
+ | |||
+ | </ |