1

初学 Zigbee,已经被大量的缩写整崩溃了……一边看书一边记录 Zigbee 协议栈中的缩写列表以及它们出现的位置吧。我看的书是《ZigBee技术开发——Z-Stack协议栈原理及应用》。

本文地址:https://segmentfault.com/a/1190000006751638

1.2 Zigbee 网络结构

1.2.3 Zigbee 协议架构

SAP:服务接入点,Service Access Point

具体的分层架构:

  1. PHY:物理层
  2. MAC:媒体访问控制层
  3. NWK:网络层
  4. 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 层和物理层一样,也包含一个管理实体,称为MLMEMAC Layer Management Entity)。负责维护和 MAC 子层相关的管理目标数据库。,也就是 MAC 子层的PANPersonal Area Network)信息数据库。

这里又涉及好几个缩写,这个章节里面没有说清楚其作用:

  • MCPSMAC 公共部分子层
  • MCPS-SAPMAC 公共部分子层服务接口
  • MLME-SAP
  • MAC PIBMAC 层个域信息库

1.3.3 MAC 帧结构

MAC 帧一般由三部分组成:MAC 帧头(MHR, MAC Header)、MAC 静载荷和MAC 帧尾(MFR, MAC Footer

1.3.4 MAC 帧类型

MAC 数据桢有四种类型:

  1. 信标帧
  2. 数据桢
  3. 应答帧
  4. 命令帧

其中信标帧中,有一个可变域叫做同步时隙分配域GTS)。

1.4 网络层

1.4.1 功能概述

ZigBee 网络层称为NWK Layer,主要功能有:

  1. 网络的建立以及网络地址分配
  2. 网络拓扑结构管理:星型、树型、网状
  3. 网络路由管理:ZigBee 使用AODVAd hoc On-demand Distance Vector Routing)路由算法来实现网络路由。当网络规模比较大时,ZigBee 节点需要维护一个路由表。

1.4.2 服务规范

ZigBee 的网络层提供两个服务实体:

  1. 数据服务实体:(NLDE, NWK Layer Data Entity
  2. 管理服务实体:(MLME, NWK Layer Management Entity

也就分别提供两个 SAP:NLDE-SAPMLME-SAP

NLDE 提供的服务有:

  1. 生成网络数据单元:也就是对上层的数据进行分段、封装
  2. 指定路由拓扑
  3. 安全支持

MLME 提供的服务有:

  1. 配置新设备:配置一台设备,从而可以加入一个新网络
  2. 建立新网络:配置协调器,从而可以组建一个新网络
  3. 允许设备加入或离开网络:协调器功能
  4. 邻居寻址
  5. 路由发现:发现并记录网络传输的路径功能,保证信息可以有效传送

1.5 应用层

如前文所述,应用层包含三个部分:应用支持子层应用程序框架ZDO

1.5.1 应用支持子层

英文名:Application Support Sub Layer,简称APS

提供以下两个服务实体:

  1. 应用支持子层数据实体APSDEApplication Support Sub Layer Data Entity
  2. 应用支持子层管理实体APSME, Application Support Sub Layer Management Entity

相应的,也就有APSDE-SAPAPSME-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 管的事情实际上纵跨几个层:

  1. 网络角色定义:设备是 coordinator、router 还是 end-point
  2. 设备发现
  3. 服务发现
  4. 绑定——原文:“绑定在 ZigBee 中是一个应用级别的概念,它是在不同节点的独立端点或组地址中使用 Cluster 标识符建立逻辑链接。绑定是在一个已经建立好的通信连接之上执行的,绑定的具体实现通过绑定表来实现”。不过在这里还没搞清楚绑定表是在三种设备中的哪一种去实现……

后续

还有后续?最近几个星期(2016.8.30)应该暂时不会有后续,因为现阶段我们还不需要用到 ZigBee 开发。下一步的学习计划是 ZStack 了。有后续笔记再说吧。


amc
927 声望228 粉丝

电子和互联网深耕多年,拥有丰富的嵌入式和服务器开发经验。现负责腾讯心悦俱乐部后台开发