zigbee协议栈各层的系统分析

       随着传感器网络的大肆应用;随着物联网概念的爆发;随着通信技术的迅速发展,人们提出了在自身附近几米范围内通信的要求,这样就出现了个人区域网络PAN(Personal Area Network)和无线个人区域网络WPAN(Wireless Personal Area Network)的概念。WPAN网络为近距离范围内的设备建立无线连接,把几米到几十米范围内的多个设备通过无线方式连接在一起,使他们可以相互通信甚至接入LAN或者Internet。

  2001年8月成立的zigbee联盟就是一个针对WPAN网络而成立的产业联盟。该联盟致力于近距离、低复杂度、低数据速率、低成本的无线网络技术。他们开发的技术被称为zigbee技术,该技术希望被部署到商用电子、住宅及建筑自动化、工业设备监测、PC外设、医疗传感设备、玩具以及游戏等其他无线传感和控制领域当中。

  1.1 IEEE802.15.4标准

  zigbee联盟已于2005年6月27日公布了第一份zigbee规范“zigbee Specification V1.0”。这标准定义了在IEEE 802.15.4-2003物理层和标准媒体接入控制层上的网络层及支持的应用服务。zigbee联盟的长期目标是能够建立基于互操作平台和配置文件的可伸缩、低成本嵌入式基础架构。

图1

       1.1.1 IEEE802.15.4协议框架

  IEEE802.15.4标准采用分层结构。每一层为上层提供一系列特殊的服务:数据实体提供数据传输服务,管理实体则提供所有其他的服务。所有的服务实体都通过服务接入点SAP(Service Access Point)为上层提供一个接口,每个SAP都支持一定数量的服务原语来实现所需的功能。

  IEEE 802.15.4标准堆栈架构是在OSI七层模型的基础上根据市场和应用的实际需要定义了,如图2-1。其中,IEEE 802.15.4标准定义了底层:物理层PHY(Physical Layer)和媒体访问控制子层MAC(Medium Access Control Sub-Layer)层。zigbee联盟在此基础上定义了网络层NWK(Network Layer),应用层APL(Application Layer)架构。其中应用层包括应用支持子层APS(Application Support Sub-Layer),应用框架AF(Application Framework),zigbee设备对象ZDO(zigbee Device Objects)以及用户定义应用对象(Manufacturer-Defined Application Objects )。[16]

  IEEE 802.15.4工作在工业科学医疗ISM(Industrial、Scientific and Medical)频段,定义了两个物理层PHY,分别工作在两个频段上:868/915 MHz和2.4GHz。其中低频段物理层覆盖了868MHz的欧洲频段和915MHz的美国与澳大利亚等国的频段。高频段2.4GHz则全球通用。

  IEEE 802.15.4 MAC层采用避免冲突多载波信道接入CSMA-CA(Carrier Sense Multiple Access with Collision Avoidance)方式,主要负责传输信标帧,同步以及提供可信赖的传输机制。

  1.1.2 网络节点类型

图2

在W-PAN中有三种网络角色:PAN网络协调器、协调器和设备。这三种角色在IEEE 802.15.4规范中分别对应zigbee协调器ZC(zigbee Coordinator)、zigbee路由器ZR(zigbee Router)和终端设备ZED(zigbee End Device)。

  协调器和路由器只能是全功能器件FFD。一个PAN的网络中,至少要有一个全功能器件成网络的协调器,它可以看作是一个PAN的网关节点(SINK节点),它是网络建立的起点,负责PAN网络的初始化,确定PAN的ID号和PAN操作的物理信道并统筹短地址分配,充当信任中心和储存安全密钥,与其他网络的连接等。协调器在加入网络之后获得一定的短地址空间。这个空间内,他有能力允许其他节点加入网络,并分配短地址。当然协调器还具备路由和数据转发的功能。在任何一个拓扑网络上,所有设备都有一个唯一的64位IEEE长地址,该地址可以在PAN中用于直接通信。或者当所有设备之间都已经存在连接时,可以将其转变为16位的网络短地址分配给PAN设备。因此在设备发起连接时采用的是64位的长地址,只有连接成功后,系统分配了PAN的标志符后,才能采用16位的短地址来通信。路由器可以只运行一个存放有路由协议的精简协议栈,负责网络数据的路由,实现数据中转功能。

  在网络中最基本的节点就是终端节点ZED,一个终端节点可以是全功能器件FFD或者是精简功能器件RFD。

  1.2.1 IEEE 802.15.4

  IEEE802.15.4包括用于低速无线个人域网LR-WPAN的物理层PHY和媒体接入控制层MAC两个规范。图2-4给出了IEEE 802.15.4的分层参考模型。

  1.2.1.1 IEEE 802.15.4 PHY层

  物理层的作用主要是利用物理介质为数据链路层提供物理连接,负责处理数

  据传输率并架空数据出错率,以便透明低传送比特流。zigbee协议的物理层主要负责以下任务:

  (1)启动和关闭RF收发器。

  (2)信道能量检测。

  (3)对接收到的数据报进行链路质量指示LQI(Link Quality Indication)。

  (4)为CSMA/CA算法提供空闲信道评估CCA(Clear Channel Assessment)。

  (5)对通信信道频率进行选择。

  (6)数据包的传输和接收

  IEEE 802.15.4的物理层定义了物理信道和MAC子层间的接口,提供数据服务和物理层管理服务。物理层数据服务从无线物理信道上收发数据,物理层管理服务维护一个物理层相关数据组成的数据库。

  1.2.1.2 IEEE 802.15.4 MAC层

  IEEE 802.15.4媒体介入控制层的沿用了传统无线局域网中的带冲突避免的载波多路侦听访问技术CSMA/CA方式,以提高系统的兼容性。这种设计,不但使多种拓扑结构网络的应用变得简单,还可以实现非常有效的功耗管理。

  MAC层完成的具体任务如下:

  (1)协调器产生并发送信标帧(Beacon)。

  (2)普通设备根据协调器的信标帧与协调器同步。

  (3)支持PAN网络的关联(Association)和取消关联(Disassociation)操作。

  (4)为设备的安全性提供支持。

  (5)使用CSMA-CA机制共享物理信道。

  (6)处理和维护时隙保障GTS(Guaranteed Time Slot)机制。

  (7)在两个对等的MAC实体之间提供一个可靠的数据链路。

  在IEEE 802.15.4的MAC层中引入了超帧结构和信标帧的概念。这两个概念的引入极大了方便了网络管理,我们可以选用以超帧为周期组织LR-WPAN网络内设备间的通信。每个超帧都以网络协调器发出信标帧为始,在这个信标帧中包含了超帧将持续的时间以及对这段时间的分配等信息。网络中的普通设备接收到超帧开始时的信标帧后,就可以根据其中的内容安排自己的任务,例如进入休眠状态直到这个超帧结束。

  MAC子层提供两种服务:MAC层数据服务和MAC层管理服务(MAC sub-layer management entity,MLME)。前者保证MAC协议数据单元在物理层数据服务中正确收发,后者维护一个存储MAC子层协议相关信息的数据库。

       1.3 zigbee协议分析

  1.3.1 zigbee协议

  zigbee的协议栈结构是由一系列称为层的协议块所组成的。每个层为上一层提供一系列特定的服务。数据入口提供数据传输的服务,管理入口提供其余的所有服务。每个服务接口都通过SAP(Service Access Point)接口与上一层进行数据交换,每个SAP都支持一系列的服务原语。

  zigbee协议栈是基于OSI(Open Systems Interconnection)标准的,但只定义了所需要的那些层。主要由物理层PHY,媒体接入层MAC,网络层以及应用框架层组成,框架图如图所示。其中,PHY层和MAC层采用了IEEE 802.15.4协议标准。

  zigbee网络层主要用于zigbee的无线个人区域网WPAN网的组网连接,数据管理以及网络安全等。

  zigbee应用框架层主要为zigbee技术的实际应用提供一些应用框架模型等,以便对zigbee技术的开发应用,在不同的应用场合,其开发应用框架不同,从目前来看,不同厂商提供的应用框架是有差异的。

  1.3.2 zigbee网络层

  网络层需要在功能上保证与IEEE 802.15.4标准兼容,同时也需要上层提供合适的功能接口。

  对于网络层,其完成和提供的主要功能如下:

  (1)产生网络层的数据包:当网络层接受到来自应用子层的数据包,网络层对数据包进行解析,然后加上适当的网络层包头向MAC传输。

  (2)网络拓扑的路由功能:网络层提供路由数据包的功能,如果包的目的节点是本节点的话,将该数据包向应用子层发送。如果不是,则将该数据包转发给路由表中下一结点。

  (3)配置新的器件参数:网络层能够配置合适的协议,比如建立新的协调器并发起建立网络或者加入一个已有的网络。

  (4)建立PAN网络

  (5)连入或脱离PAN网络:网络层能提供加入或脱离网络的功能,如果节点是协调器或者是路由器,还可以要求子节点脱离网络。

  (6)分配网络地址:如果本节点是协调器或者是路由器,则接入该节点的字节点的网络地址由网络层控制。

  (7)邻居节点的发现:网络层能发现维护网络邻居信息。

  (8)建立路由:网络层提供路由功能。

  (9)控制接收:网络层能控制接收器的接受时间和状态。

  zigbee网络层的结构

  为了向应用层提供接口,网络层提供了两个功能服务实体,分别为数据服务实体NLDE和管理服务实体NLME。NLDE通过NLDE-SAP为应用层提供数据传输服务,NLME通过NLME-SAP为应用层提供网络管理服务,并且,NLME还完成对网络信息库NIB的维护和管理。

  1.3.3 zigbee应用层

  zigbee应用层包括应用支持子层APS、应用框架AF、zigbee设备对象ZDO。它们共同为各应用开发者提供统一的接口。

  1.3.3.1 应用支持子层APS

  APS层主要功能:

  (1)APS层协议数据单元APDU的处理。

  (2)APSDE提供在同一个网络中的应用实体之间的数据传输机制。

  (3)APSME提供多种服务给应用对象,这些服务包括安全服务何绑定设备,并维护管理对象的数据库,也就是我们常说的AIB。

  1.3.3.2 应用框架AF

  应用框架(Application Framework)为各个用户自定义的应用对象提供了模板式的活动空间,为每个应用对象提供了键值对KVP服务和报文MSG服务两种服务供数据传输使用。

  每个节点除了64位的IEEE地址,16位的网络地址,每个节点还提供了8位的应用层入口地址,对应于用户应用对象。端点0为ZDO接口,端点1至240供用户自定义用于对象使用,端点255为广播地址,端点241 -254保留将来使用。每一个应用都对应一个配置文件(Profile)。配置文件包括:设备ID(Device ID),事务集群ID(cluster ID),属性ID(Attribute ID)等。AF可以通过这些信息来决定服务类型。

  1.3.3.3 zigbee设备对象ZDO

  ZDO是一个特殊的应用层的端点(Endpoint)。它是应用层其他端点与应用子层管理实体交互的中间件。它主要提供的功能如下:

  (1)初始化应用支持子层,网络层。

  (2)发现节点和节点功能。在无信标的网络中,加入的节点只对其父节点可见。而其他节点可以通过ZDO的功能来确定网络的整体拓扑结构已经节点所能提供的功能。

  (3)安全加密管理:主要包括安全key的建立和发送,已经安全授权。

  (4)网络的维护功能。

  (5)绑定管理:绑定的功能由应用支持子层提供,但是绑定功能的管理却是由ZDO提供,它确定了绑定表的大小,绑定的发起和绑定的解除等功能。

  (6)节点管理:对于网络协调器和路由器,ZDO提供网络监测、获取路由和绑定信息、发起脱离网络过程等一系列节点管理功能。

  ZDO实际上是介于应用层端点和应用支持子层中间的端点,其主要功能集中在网络管理和维护上。应用层的端点可以通过 ZDO提供的功能来获取网络或者是其他节点的信息,包括网络的拓扑结构、其它几点的网络地址和状态以及其他几点的类型和提供的服务等信息。

  1.4 zigbee网络拓扑结构

  zigbee网络支持多种网络拓扑结构,最典型的网络结构是星型网络的拓扑结构。对于星型网络,由一个协调器和多个终端节点组成。在星型网络中,所有的通信都是通过协调器转发。这样的网络结构有三个缺点:一是会增加协调器的负载,对协调器的性能要求很高;二是协调协作都通过协调器转发的话,会极大的增加系统的延时,使得系统的实时性受到影响;三是单一节点的破坏造成整个网络的瘫痪,降低了网络的鲁棒性。

  除了支持星型网络以外,zigbee还支持树状(Tree)和网状(Mesh)等对等网络,如图2-11。在对等网络中,也存在一个PAN协调器(Coordinator),但是它已经不是网络的主控制器,而是主要起到发起网络和组网的作用。在对等网络中,一个设备在另一设备的通信范围之内,他们就可以互相通信。因此,对等网络拓扑结构统一构成较为复杂的网络结构。对等网络拓扑结构主要在工业检测和控制,无线传感网络,供应物资跟踪,农业智能化以及安全监控方面都有广泛的应用。在网络中,各个设备之间发送消息时,使用了多跳传输,以增大网络的覆盖范围。其中,组网的路由协议是采用了无线自组网按需平面距离矢量AODV路由协议(Ad Hoc On Demand Distance Vector Routing),无论是星型拓扑还是对等拓扑,每个独立的PAN都有一个唯一的标志符PAN ID,用以同一个网络之内节点的互相识别和通信。