0%

ZigBee协议简介(一)

ZigBee协议简介

注意:在没有确切把握的情况下,不要试图去改变这些网络参数

[TOC]

今天来讲讲久违的ZigBee

ZigBee的名字源自蜜蜂八字舞,蜜蜂(Bee)依靠嗡嗡(Zip)和同伴传递方位信息,依靠同伴接力形成通信网络。ZigBee的网络层可以说就是通过这个来定义的。

从上图我们可以看见,其实IEEE只确定了ZigBee的物理层和MAC层,就是只定义了物理通信上要用到的通信协议和通信频段。剩下的都是由ZigBee联盟来确定的。我们由下图来详解一下

物理层(PHY)

规定了什么

  1. 频段:868MHz(欧洲),915MHz(美国),2495MHz(Global)使用直接序列扩频(DSSS)
  2. 信道:27个,分别分为:868MHz(k=0),915MHz(k=1-10),2495MHz(k=11-26)
  3. 速度:868MHz(20kb),915MHz(40kb),2495MHz(250kb+)
  4. 物理层协议数据单元(PHY Protocol Data Unit ,PPDU ) 分为同步头,物理帧头和物理帧负载(PSDU)

    能用来干嘛

  5. 激活和休眠射频收发器
  6. 信道能量检测
  7. 检测接收数据包的链路质量指示(Link Quality Indication ,LQI)
  8. 空闲信道评估(Clear Channel Assessment ,CCA)
  9. 收发数据

在概念上,物理层的收发数据还包括了数据服务和管理(维护)服务,和MAC层分别的接口叫做物理层数据服务接入点(PHY Data - Service Access Point , PD-SAP)和物理层管理实体服务接入点(PHY Data - Service Access Point , PD-SAP)和物理层管理实体服务接入点(Physical Layer Management Entity Service Access Point , PLME-SAP)

MAC层(媒体接入控制层)

规定了什么

  1. 规定了4种帧结构:信标帧

    数据帧

    确认帧

    和MAC命令帧

详见MAC协议层详解

  1. 使用CSMA-CA机制访问物理信道
  2. 如果设备是协调器,需要产生网络信标
  3. 支持时槽保障(Guaranteed Time Slot ,GTS)机制

    能用来干嘛

  4. 协调器产生并发送信标,普通设备根据协调器的信标帧与协调器同步
  5. 保证信道的通信安全
  6. 支持PAN(个域网络)的关联和取消关联

概念上,MAC层也像物理层一样具有MAC层管理实体(MLME),他和网络层之间的数据交换便是(MLME-SAP),当然在MLME中,交换的是管理MAC层信息。在MAC层还有一个MAC公共部分子层(MCPS)来与网络层进行数据交换(MCPS-SAP)

网络层

网络层负责拓扑结构的建立和维护,命名和绑定服务,从而协同地完成寻址,路由,传送数据以及安全等不可或缺的任务,所以网络层是ZigBee的核心部分。

组网拓扑结构

在ZigBee中有三种角色-协调器,路由器和末端节点,分别对应着蜂群的蜂后,雄峰和工蜂。协调器在MAC层就已经提及过了,用来提供整个网络的同步问题(不进行数据交换,和蜂群一般)。而路由器则负责联系自己周围的末端节点,并协调他们进行通信。

ZigBee中支持星状,树状和网状的拓扑结构,这个可以在硬件中直接设置。
ZigBee网络架构详解

网络层规范

正如物理层和MAC层,我们可以看到整个ZigBee的协议中在每一层都存在数据实体和管理实体,在网络层也不例外。ZigBee协议的网络层划分为网络层数据实体(Network Layer Data Entity , NLDE)和网络层管理实体(Network Layer Manage Entity ,NLME)都还有相关的数据交换(管理)的SAP服务。

正如其名,他们相关的功能如下:
NLDE:

  1. 产生网络层协议数据单元(NPDU)
  2. 提供基于拓扑结构的路由策略

NLME:

  1. 配置新设备
  2. 建立网络
  3. 加入和离开网络
  4. 寻址
  5. 邻居发现
  6. 路由发现
  7. 接受控制

对应地,他们也对应着网络层的两种帧结构:数据帧和命令帧。因为这是课堂上做的,找图不太方便,还请大家自己找图了解。

能用来干嘛

  1. 通过添加不同的协议头能够从应用层生产网络层的PDU,即NPDU
  2. 确定网络的拓扑结构
  3. 配置一个新的设备,可以是拓扑结构中的各个角色
  4. 建立并启动网络
  5. 加入或离开网络
  6. ZigBee的协调器和路由器能为加入网络的设备分配空间
  7. 发现并记录邻居表,路由表
  8. 信息的接受控制,同步MAC子层或直接接收信息

应用层

ZigBee应用层有三个组成部分:应用支持子层(Application Support Sub-Layer,APS),应用框架(Application Framework ,AF)和ZigBee设备对象(ZigBee Device Object ,ZDO)

应用支持子层APS

跟之前提的一样,APS子层包含,APS数据实体(APSDE)和相应的服务接入点(APSDE-SAP)还有APS管理实体(APSME)和相应的服务接入点(APSME-SAP)。APS主要是用来应用层和网络层的接口用的,APSDE提供在同一网络应用实体之间的数据传输机制,APSME提供多种服务给应用对象。

应用框架AF

在ZigBee应用中,AF提供了两种标准服务类型。一种是键值对(Key Valve Pair ,KVP)和报文(mesage,MSG)。相应地里面还涉及到较多的属性,我们在Z-stack中再继续介绍

ZigBee设备对象ZDO

其实就是高度抽象的网络端点,主要功能集中在网络管理和维护上,里面包含了整个端点,网络的全部信息可供查询。

硬件平台TI-CC2530

  1. 劳烦自查百度及datasheet,不背书
  2. 硬件资源可见下图

Z-Stack

显然,Z-stack是TI公司开放的ZigBee协议栈,那么现在问题来了,这么好的协议栈,要怎么来使用呢?
这里先放一张好图,详情且听下回分解

总结

写得不是很深入,后面会写代码的时候我们再来,在刀锋上认识ZigBee

如果你觉得有丶收获的话