ZigBee协议简介
注意:在没有确切把握的情况下,不要试图去改变这些网络参数
[TOC]
今天来讲讲久违的ZigBee
ZigBee的名字源自蜜蜂八字舞,蜜蜂(Bee)依靠嗡嗡(Zip)和同伴传递方位信息,依靠同伴接力形成通信网络。ZigBee的网络层可以说就是通过这个来定义的。
从上图我们可以看见,其实IEEE只确定了ZigBee的物理层和MAC层,就是只定义了物理通信上要用到的通信协议和通信频段。剩下的都是由ZigBee联盟来确定的。我们由下图来详解一下
物理层(PHY)
规定了什么
- 频段:868MHz(欧洲),915MHz(美国),2495MHz(Global)使用直接序列扩频(DSSS)
- 信道:27个,分别分为:868MHz(k=0),915MHz(k=1-10),2495MHz(k=11-26)
- 速度:868MHz(20kb),915MHz(40kb),2495MHz(250kb+)
- 物理层协议数据单元(PHY Protocol Data Unit ,PPDU ) 分为同步头,物理帧头和物理帧负载(PSDU)
能用来干嘛
- 激活和休眠射频收发器
- 信道能量检测
- 检测接收数据包的链路质量指示(Link Quality Indication ,LQI)
- 空闲信道评估(Clear Channel Assessment ,CCA)
- 收发数据
在概念上,物理层的收发数据还包括了数据服务和管理(维护)服务,和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层(媒体接入控制层)
规定了什么
- 规定了4种帧结构:信标帧
数据帧
确认帧
和MAC命令帧
详见MAC协议层详解
- 使用CSMA-CA机制访问物理信道
- 如果设备是协调器,需要产生网络信标
- 支持时槽保障(Guaranteed Time Slot ,GTS)机制
能用来干嘛
- 协调器产生并发送信标,普通设备根据协调器的信标帧与协调器同步
- 保证信道的通信安全
- 支持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:
- 产生网络层协议数据单元(NPDU)
- 提供基于拓扑结构的路由策略
NLME:
- 配置新设备
- 建立网络
- 加入和离开网络
- 寻址
- 邻居发现
- 路由发现
- 接受控制
对应地,他们也对应着网络层的两种帧结构:数据帧和命令帧。因为这是课堂上做的,找图不太方便,还请大家自己找图了解。
能用来干嘛
- 通过添加不同的协议头能够从应用层生产网络层的PDU,即NPDU
- 确定网络的拓扑结构
- 配置一个新的设备,可以是拓扑结构中的各个角色
- 建立并启动网络
- 加入或离开网络
- ZigBee的协调器和路由器能为加入网络的设备分配空间
- 发现并记录邻居表,路由表
- 信息的接受控制,同步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
- 劳烦自查百度及datasheet,不背书
- 硬件资源可见下图
Z-Stack
显然,Z-stack是TI公司开放的ZigBee协议栈,那么现在问题来了,这么好的协议栈,要怎么来使用呢?
这里先放一张好图,详情且听下回分解
总结
写得不是很深入,后面会写代码的时候我们再来,在刀锋上认识ZigBee