初学 Zigbee,已经被大量的缩写整崩溃了……一边看书一边记录 Zigbee 协议栈中的缩写列表以及它们出现的位置吧。我看的书是《》。
本文地址:
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),用来表示前导码域的结束以及分组数据域的开始。这是一个一字节的固定数据。
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
。
(吐槽:这名字怎么那么像坦克炮弹的缩写, 之类的……)
1.5.2 应用程序框架
在应用程序框架(AF
, Application Framework)内部,ZigBee 设备对象通过APSDE-SAP
来收发数据。总共定义了240个不同的应用对象(Application Object),通过端点来描述,端点接口索引号为1~240。此外还有两个特殊端点:
- 端点0:只为ZDO的数据接口服务
- 端点255:供应用对象的广播数据接口功能
1. 应用 profiles
Application profiles 是端点的另一种表现形式。比如一个功能分别分为控制器和执行器两个设备节点,那么这两个节点就形成了一组profiles2. 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 了。有后续笔记再说吧。