ZigBee协议栈由一组子层构成。每层为其上层提供一组特定的服务:一个数据实体提供数据传输服务,一个管理实体提供其他服务。每个服务实体通过一个服务接入点(SAP)为其上层提供服务接口,并且每个SAP提供了一系列的基本服务指令来完成相应的功能。图5-2所示为ZigBee协议栈的软件层次结构。
图5-2 ZigBee协议栈软件层次
ZigBee协议栈对那些涉及ZigBee的层予以定义。IEEE 802.15.4—2003标准定义了最下面的两层:物理层(PHY)和介质接入控制子层(MAC)。ZigBee联盟提供了网络层和应用层(APL)框架的设计。其中应用层的框架包括了应用支持子层(APS)、ZigBee设备对象(ZDO)和由制造商制订的应用对象。
相比于常见的无线通信标准,ZigBee协议套件紧凑而简单,具体实现的要求很低。以下是ZigBee协议套件的需求估计:硬件需要8位处理器,如80C51;软件需要32 KB的ROM,最小软件需要4 KB的ROM,如CC2430芯片(具有8051内核的ZigBee无线单片机)的内存为32~128 KB;网络主节点需要更多的RAM以容纳网络内所有节点的设备信息、数据包转发表、设备关联表、与安全有关的密钥存储等。
ZigBee联盟希望建立一种可连接每个电子设备的无线网。它预言ZigBee将很快成为全球高端的无线技术,到2007年ZigBee节点将达到30亿个。具有几十亿个节点的网络将很快耗尽IPv4的地址空间。因此,IPv6与IEEE 802.15.4的结合是传感器网络的发展趋势。IPv6采用128位地址长度,几乎可以不受限制地提供地址。按保守方法估算,IPv6实际可为全球每平方米的面积分配1000多个IP地址。IPv6在设计过程中,除了一劳永逸地解决了地址短缺问题以外,还考虑了在IPv4中难以解决的其他问题,如端到端IP连接、服务质量(QoS)、安全性、多播、移动性、即插即用等。
每个ZigBee设备都与一个特定模板有关,可能是公共模板或私有模板。这些模板定义了设备的应用环境、设备类型,以及用于设备间通信的串(也称簇,cluster)。公共模板可以确保不同供应商的设备在相同应用领域中的互操作性。
设备是由模板定义的,并以应用对象(Application Objects)的形式实现。每个应用对象通过一个端点连接到ZigBee堆栈的余下部分,它们都是器件中可寻址的组件。
从应用角度看,通信的本质就是端点到端点的连接(例如,一个带开关组件的设备与带一个或多个灯组件的远端设备进行通信,目的是将这些灯点亮)。端点之间的通信是通过称之为串的数据结构实现的。这些串是应用对象之间共享信息所需的全部属性的容器,在特殊应用中使用的串在模板中有定义。
每个接口都能接收(用于输入)或发送(用于输出)串格式的数据。一共有二个特殊的端点,即端点0和端点255。端点0用于整个ZigBee设备的配置和管理。应用程序可以通过端点0与ZigBee堆栈的其他层通信,从而实现对这些层的初始化和配置。附属在端点0的对象被称为ZigBee设备对象(ZDO)。端点255用于向所有端点的广播。端点241~254是保留端点。
所有端点都使用应用支持子层(APS)提供的服务。APS通过网络层和安全服务提供层与端点相接,并为数据传送、安全和绑定提供服务,因此能够适配不同但兼容的设备,如带灯的开关。
APS使用网络层(NWK)提供的服务。NWK负责设备到设备的通信,并负责网络中设备初始化所包含的活动、消息路由和网络发现。应用层可以通过ZigBee设备对象(ZDO)对网络层参数进行配置和访问。
根据ZigBee堆栈规定的所有功能,我们很容易推测实现ZigBee堆栈需要用到设备中的大量存储器资源。
然而需要特别注意的是,网络的特定架构会戏剧性地影响设备所需的资源。NWK支持的网络拓扑有星形、树(串)形和网格形。在这几种网络拓扑中,星形网络对资源的要求最低。
ZigBee网络层的主要功能就是提供一些必要的函数,确保ZigBee的MAC层正常工作,并且为应用层提供合适的服务接口。为了向应用层提供接口,网络层提供了两个必须的功能服务实体,分别是数据实体和管理实体,如图5-3所示。
图5-3 网络层参考模型
网络层数据实体通过网络层数据实体服务接入点(NLDE-SAP)提供数据传输服务,网络层管理实体通过网络层管理实体服务接入点(NLME-SAP)提供网络管理服务。网络层管理实体利用网络层数据实体完成一些网络的管理工作,并且完成对网络信息库(NIB)的维护和管理。
网络层通过MCPS-SAP和MLME-SAP接口为MAC层提供接口。通过NLDE-SAP与NLME-SAP接口为应用层提供接口服务。(www.xing528.com)
网络层管理实体提供网络管理服务,允许应用与堆栈相互作用。网络层管理实体提供如下服务:① 配置一个新的设备;② 初始化一个网络;③ 连接、复位和断开网络;④ 路由发现;⑤ 邻居设备发现;⑥接收控制。
网络层数据实体为数据提供服务,在两个或多个设备之间传送数据时,将按照应用协议数据单元(APDU)的格式进行传送,这些设备必须在同一个网络中,即在同一个内部个域网中。网络层数据实体提供如下服务:① 生成网络层协议数据单元(NPDU);② 指定拓扑传输路由;③ 确保通信的真实性和机密性。
ZigBee栈体系包含一系列的层元件,如IEEE 802.15.4—2003标准MAC层和PHY层,当然也包括ZigBee的NWK层。每个层的元件提供相关的服务功能。
首先我们来了解ZigBee栈的APL/应用层(Application Layer Specification)。
APS提供了这样的接口:在NWK层和APL层之间,从ZDO到供应商的应用对象的通用服务集。这种服务由两个实体实现:APS数据实体(APSDE)和APS管理实体(APSME)。APSDE通过APSDE服务接入点(APSDE-SAP)提供数据传输服务;APSME通过APSME服务接入点(APSME-SAP)提供网络管理服务。
APSDE提供在同一网络中的两个或者更多的应用实体之间的数据通信。
APSME提供多种服务给应用对象,这些服务包含安全服务和绑定设备,并维护管理对象的数据库,也就是我们常说的AIB。
ZigBee中的应用框架是为驻扎在ZigBee设备中的应用对象提供活动的环境。
最多可以定义240个相对独立的应用程序对象,任何一个对象的端点编号为1~240。还有两个附加的终端节点供APSDE-SAP使用:端点号0固定用于ZDO数据接口;另外一个端点255固定用于所有应用对象广播数据的数据接口功能。端点241~254保留(供扩展使用)。
应用模式(也称剖面,profiles)是一组统一的消息,消息格式和处理方法允许开发者建立一个可以共同使用的、分布式应用程序,这些应用是使用驻扎在独立设备中的应用实体。这些应用profiles允许应用程序发送命令、请求数据、处理命令和请求。
ZigBee设备对象(ZDO),描述了一个基本的功能函数,这个功能在应用对象、设备模式(也称剖面,profiles)和APS之间的提供了一个接口。ZDO位于应用框架和应用支持子层之间。它满足所有在ZigBee协议栈中应用操作的一般需要。ZDO还有以下作用:① 初始化应用支持子层(APS)、网络层(NWK)、安全服务规范(SSS);② 从终端应用中集合配置信息来确定和执行发现、安全管理、网络管理,以及绑定管理。
ZDO描述了应用框架层的应用对象的公用接口以控制设备和应用对象的网络功能。在终端节点0,ZDO提供了与协议栈中低一层相接的接口。(数据通过APSDE-SAP,控制信息通过APSME-SAP)。在ZigBee协议栈的应用框架中,ZDO公用接口提供设备发现、绑定及安全等功能的地址管理。
设备发现是ZigBee设备发现其他设备的过程。有两种形式的设备发现请求:IEEE地址请求和网络地址请求。IEEE地址请求单播到一个特殊的设备且假定网络地址已知。网络地址请求是广播且携带一个已知的IEEE地址作为负载。
服务发现是一个已有设备被其他设备发现的过程。服务发现有两种方式:通过在一个已有设备的每一个端点发送询问或通过使用一个匹配服务(广播或者单播)。服务发现通过定义和使用各种描述来概述一个设备的能力。
服务发现信息在网络中也许被隐藏,在这种情况下,在发现操作发生的时候设备提供的特殊服务可能不好到达。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。