1.1 协议层次结构
学习提示
本节课会讲解多个 ZigBee 网络概念,如果读者感到晦涩难度,没有关系!随着后续学习,相信读者会逐渐理解 ZigBee 协议!
先打个比方:一栋楼的"分工"
要把一个 ZigBee 网络讲清楚,最省力的办法是把它看成一栋分工明确的大楼。每一层只管自己那摊事,把活干好再交给上一层或下一层,谁也不用操心别人的工作:
- 底层负责"怎么把信号发出去"(物理世界的事);
- 中间层负责"发给谁、走哪条路"(网络世界的事);
- 顶层负责"你要的功能到底是什么"(业务世界的事)。
这就是协议层次结构——每一层解决一类问题,层与层之间只通过固定的"接口"交接。下面这张图就是 ZigBee 协议栈的完整"楼层图"。
协议层次结构
ZigBee 协议栈从下到上共分四层,其中应用层内部又拆成了几个小模块,逐层看一遍:
图注:数据发送时从上层往下层逐层"打包"(加各自的信息),接收时从下层往上层逐层"拆包"。每一层只处理自己那层的信息,这就是"分层"的意义。
每层都在忙什么
① 物理层 PHY:只管"发出去、收进来"
它不关心数据内容是什么,只负责把字节流变成电磁波发到空中,再把空中的电磁波变回字节流。就像打电话,电话线(无线电波)那头是谁不重要,先把声音传过去再说。
② MAC 层:管好"谁先说话"
无线电是共享的,同一时刻如果多台设备同时发射,信号就会互相干扰。MAC 层就是交通警察:规定谁可以发、发多久、发完谁接着发,保证大家排队使用电磁波。
③ 网络层 NWK:负责"找到对方"
- 设备怎么加入网络;
- 数据从 A 到 Z,中间经过哪些设备转发;
- 网络的安全管理。
可以理解成快递调度中心:知道每个包裹该往哪个中转站送,最终送到收件人手里。
④ 应用支持子层 APS:翻译和门卫
APS 是网络层与应用框架层之间的"过渡走廊":
- 数据收发:把上层的数据安全地交给网络层;
- 安全加密:给数据加锁,防止被窃听;
- 地址管理:维护设备与应用端点的地址对应关系。
⑤ 应用框架层:端点就是"功能插口"
应用框架层由一个或多个应用端点 EndPoint 组成。可以这样理解:端点 = 这台设备对外提供的功能插口,每个插口负责一类功能。
例如,ZigBee 智能灯中有一个端点 1,用来描述灯的开关和亮度,如图所示。

例如,ZigBee 智能插座中有一个端点 1,用来描述插座的开关功能,如图所示。

ZigBee 设备进行网络通信时,最终是应用端点间的通信。例如,ZigBee 协调器的端点 1 向智能插座的端点 1 发送了打开插座命令。
类比理解
如果读者了解过远程服务器的端口号,那么会发现这里所说的端点和远程服务器的端口号的含义其实是类似的。例如网址 http://baidu.com:80 中的 80 就是端口号,表示 HTTP 服务。在浏览器中输入 http://baidu.com:80,表示浏览器将会和 baidu.com 网址中的 HTTP 服务通信。端点 = 设备上的"端口号",用来指明"我要和这台设备的哪个功能通信"。
端点采用无符号 8 位整型类型进行表示,取值范围是 0~255,每个 ZigBee 设备最多支持 240 个应用端点(1~240),其中的端点 0 为特殊端点,端点 255 用于向其他端点的广播,端点 241~254 是保留端点。
三个"幕后大佬":ZCL、ZDO、BDB
除了上面的层次,应用层还藏着三个重要的"幕后角色",它们保证不同厂商的设备能互相听懂、协同工作:
ZCL:让设备说同一种语言
ZigBee Cluster Library(ZCL),由 ZigBee 联盟定义,是 ZigBee 3.0 的基础,也是不同厂商设备能够互联互通的基础。有了它,A 厂商的开关和 B 厂商的灯泡才能"一见面就懂对方"。
ZDO:设备的总管家
ZigBee Device Objects(ZDO),也就是应用端点 0,它是应用层其他端点与应用子层管理实体交互的中间件,主要提供的功能如下:
- 管理 ZigBee 设备;
- 创建、扫描及加入网络;
- 应用端点绑定、解绑;
- 安全管理。
BDB:设备的"行为准则"
Base Device Behavior(BDB),定义设备的行为规范,以确保不同厂商设备间的互操作性,基础设备行为规范的范围定义如下:
- 基础设备所需的环境;
- 基础设备的初始化(initialization)过程;
- 基础设备的 Commissioning 过程;
- 基础设备的重置(reset)过程;
- 基础设备的安全(security)过程。
一张图看懂:数据是怎么"旅行"的
把上面的分层串起来,一次 ZigBee 通信就是一次"接力旅行":
一句话总结
ZigBee 通信 = 应用端点之间互发消息;消息从发送方"逐层打包"上路,经过空中,再到接收方"逐层拆包"送到指定端点。分层让每一层只关心自己的事,这也是它能稳定、安全工作的根本原因。
内容来源:紫甲 IoT《ZigBee 3.0 开发指南》第四部分·1.1 协议层次结构,原站链接
本章自测
一、单项选择题(每题 4 分,共 40 分)
ZigBee 协议栈从下到上的最底层是哪一层?(A. MAC 层 B. 物理层 PHY C. 网络层 NWK D. 应用支持子层 APS) 答案:B
在协议层次中,负责"把数据变成电磁波发射出去、再把电磁波还原成数据"的是哪一层?(A. 物理层 PHY B. MAC 层 C. 网络层 NWK D. 应用框架层) 答案:A
页面用"交通警察"来比喻哪一层,负责安排设备"谁先谁后"地使用无线电?(A. 物理层 PHY B. MAC 层 C. 网络层 NWK D. APS 层) 答案:B
网络层 NWK 被比喻为"快递调度中心",下列哪一项不是它的职责?(A. 设备加入网络 B. 数据选路与转发 C. 数据↔电磁波转换 D. 网络安全管理) 答案:C
应用支持子层 APS 承担的"过渡层"职责不包括下列哪一项?(A. 数据收发 B. 安全加密 C. 设备与端点的地址管理 D. 信道能量检测) 答案:D
ZigBee 设备间最终通信发生在哪里?(A. 物理层之间 B. MAC 层之间 C. 应用端点之间 D. 路由器之间) 答案:C
应用端点(EndPoint)采用无符号整型表示,其位宽是多少?(A. 4 位 B. 8 位 C. 16 位 D. 64 位) 答案:B
每个 ZigBee 设备最多支持多少个应用端点(取值区间 1~240)?(A. 16 个 B. 32 个 C. 240 个 D. 256 个) 答案:C
关于特殊端点,下列说法正确的是?(A. 端点 0 是普通应用端点 B. 端点 255 用于向其他端点广播 C. 端点 241~254 可随便使用 D. 端点 0 用于广播) 答案:B
ZigBee Device Object(ZDO)对应哪个端点,充当"设备管家"?(A. 端点 0 B. 端点 1 C. 端点 240 D. 端点 255) 答案:A
二、问答题(每题 20 分,共 60 分)
- 请简述 ZigBee 协议栈自下而上各层(PHY、MAC、NWK、APS、应用框架层)的主要职责。参考答案要点:
- 物理层 PHY:负责数据与电磁波之间的相互转换,完成无线电收发;
- MAC 层:安排多台设备有序使用共享无线电资源,解决"谁先谁后";
- 网络层 NWK:负责组网、选路/转发投递与网络安全管理;
- APS 子层:作为网络层与应用之间的过渡,负责数据收发、安全加密与地址管理;
- 应用框架层:由若干应用端点组成,定义设备对外提供的具体业务功能。
- 什么是应用端点 EndPoint?端点 0、端点 255 以及 241~254 各有什么含义?参考答案要点:
- 端点是设备对外提供功能的"插口/出入口",类似服务器端口号,指明与设备的哪个功能通信;
- 端点用无符号 8 位整数表示,范围 0~255,每个设备最多支持 240 个应用端点(1~240);
- 端点 0 是特殊端点,对应 ZDO(ZigBee 设备对象),充当设备管家;
- 端点 255 用于向其他端点的广播;
- 端点 241~254 为保留端点。
- 请用"逐层打包、逐层拆包"描述一次 ZigBee 通信的数据旅程。参考答案要点:
- 发送方向上:应用端点把业务数据交给 APS(附加发给哪个端点的信息)→ NWK 加上目标设备地址与路由信息 → MAC 按规则排队占用信道 → PHY 把数据变成电磁波发射出去;
- 接收方向上:PHY 收波还原数据 → MAC 校验 → NWK 按地址选路 → APS 解包 → 送到指定端点取出业务数据;
- 每一层只处理自己那层的信息,层与层之间通过固定接口交接,这就是分层的意义。