初学 Zigbee,已经被大量的缩写整崩溃了……一边看书一边记录 Zigbee 协议栈中的缩写列表以及它们出现的位置吧。我看的书是《ZigBee技术开发——Z-Stack协议栈原理及应用》。
本文地址:https://segmentfault.com/a/1190000006751638
1.2 Zigbee 网络结构
1.2.3 Zigbee 协议架构
SAP
:服务接入点,Service Access Point
具体的分层架构:
-
PHY
:物理层 -
MAC
:媒体访问控制层 -
NWK
:网络层 -
API
:应用层,有三个组成:-
APS
:应用支持子层, Application Support Sub Layer -
ZDO
:设备对象, Zigbee Device Object -
AF
:应用程序框架,Application Framework
-
1.3 IEEE 802.15.4 通信层
1.3.1 物理层服务
标准规定的物理层包括一个管理实体,即物理层管理实体(Physical Layer Management Entity, PLME
),分别提供以下两个服务:
-
PD-SAP
:数据服务接入点,Physical Data SAP -
PLME-SAP
:管理服务接入点,Physical Layer Management Entity SAP
在 PLME-SAP 中,包含PHY-PIB
(物理层个域网信息数据库),整个物理层也有一个RF-SAP
(无线发送接收访问接口)的称呼。
物理层数据桢结构中,包含SFD
(帧界定符, Start of Frame Delimiter),用来表示前导码域的结束以及分组数据域的开始。这是一个一字节的固定数据。
此外,数据桢结构中的物理数据单元(或称物理层负载, PHY Service Data Unit, PSDU
)。
1.3.2 MAC 层服务
MAC 层和物理层一样,也包含一个管理实体,称为MLME
(MAC Layer Management Entity)。负责维护和 MAC 子层相关的管理目标数据库。,也就是 MAC 子层的PAN
(Personal Area Network)信息数据库。
这里又涉及好几个缩写,这个章节里面没有说清楚其作用:
-
MCPS
:MAC 公共部分子层 -
MCPS-SAP
:MAC 公共部分子层服务接口 MLME-SAP
-
MAC PIB
:MAC 层个域信息库
1.3.3 MAC 帧结构
MAC 帧一般由三部分组成:MAC 帧头(MHR
, MAC Header)、MAC 静载荷和MAC 帧尾(MFR
, MAC Footer)
1.3.4 MAC 帧类型
MAC 数据桢有四种类型:
- 信标帧
- 数据桢
- 应答帧
- 命令帧
其中信标帧中,有一个可变域叫做同步时隙分配域(GTS
)。
1.4 网络层
1.4.1 功能概述
ZigBee 网络层称为NWK Layer
,主要功能有:
- 网络的建立以及网络地址分配
- 网络拓扑结构管理:星型、树型、网状
- 网络路由管理:ZigBee 使用
AODV
(Ad hoc On-demand Distance Vector Routing)路由算法来实现网络路由。当网络规模比较大时,ZigBee 节点需要维护一个路由表。
1.4.2 服务规范
ZigBee 的网络层提供两个服务实体:
- 数据服务实体:(
NLDE
, NWK Layer Data Entity) - 管理服务实体:(
MLME
, NWK Layer Management Entity)
也就分别提供两个 SAP:NLDE-SAP
和MLME-SAP
。
NLDE 提供的服务有:
- 生成网络数据单元:也就是对上层的数据进行分段、封装
- 指定路由拓扑
- 安全支持
MLME 提供的服务有:
- 配置新设备:配置一台设备,从而可以加入一个新网络
- 建立新网络:配置协调器,从而可以组建一个新网络
- 允许设备加入或离开网络:协调器功能
- 邻居寻址
- 路由发现:发现并记录网络传输的路径功能,保证信息可以有效传送
1.5 应用层
如前文所述,应用层包含三个部分:应用支持子层、应用程序框架、ZDO。
1.5.1 应用支持子层
英文名:Application Support Sub Layer,简称APS
。
提供以下两个服务实体:
- 应用支持子层数据实体:
APSDE
,Application Support Sub Layer Data Entity - 应用支持子层管理实体:
APSME
, Application Support Sub Layer Management Entity
相应的,也就有APSDE-SAP
和APSME-SAP
。
(吐槽:这名字怎么那么像坦克炮弹的缩写,APFSDS 之类的……)
1.5.2 应用程序框架
在应用程序框架(AF
, Application Framework)内部,ZigBee 设备对象通过APSDE-SAP
来收发数据。总共定义了240个不同的应用对象(Application Object),通过端点来描述,端点接口索引号为1~240。此外还有两个特殊端点:
- 端点0:只为ZDO的数据接口服务
- 端点255:供应用对象的广播数据接口功能
1. 应用 profiles
Application profiles 是端点的另一种表现形式。比如一个功能分别分为控制器和执行器两个设备节点,那么这两个节点就形成了一组profiles
2. Clusters 簇
Clusters 是 profiles 的一个子集。在特定的 profiles 中,clusters 的标识符是唯一的。
1.5.3 ZDO
ZigBee 协议栈中的ZDO
特指端点号为0的 ZigBee 设备对象(?
)。ZDO 管的事情实际上纵跨几个层:
- 网络角色定义:设备是 coordinator、router 还是 end-point
- 设备发现
- 服务发现
- 绑定——原文:“绑定在 ZigBee 中是一个应用级别的概念,它是在不同节点的独立端点或组地址中使用 Cluster 标识符建立逻辑链接。绑定是在一个已经建立好的通信连接之上执行的,绑定的具体实现通过绑定表来实现”。不过在这里还没搞清楚绑定表是在三种设备中的哪一种去实现……
后续
还有后续?最近几个星期(2016.8.30)应该暂时不会有后续,因为现阶段我们还不需要用到 ZigBee 开发。下一步的学习计划是 ZStack 了。有后续笔记再说吧。