1.网络层参考模型及实现
网络层主要实现节点加入、离开、路由查找和传送数据等功能。目前 ZigBee 网络层主要支持两种路由算法,即树路由(Cluster-Tree)和网状网路由。支持星状(Star)、树状(Cluster-Tree)、网格(Mesh)等多种拓扑结构,如图 所示。
在这些拓扑结构中一般包括三种设备:协调器、路由器和末端节点。
协调器也称为全功能设备(Full-Function Device,FFD),相当于蜂群结构中的蜂后,是唯一的,是 ZigBee 网络启动或建立网络的设备。一旦网络建立,该协调器就如同一个路由器,在网络中提供数据交换,建立安全机制,建立网络中绑定等路由功能。
网络中的其他操作并不依赖该协调器,因为 ZigBee 网络是分布式网络。路由器相当于雄蜂,数目不多,需要一直处于工作状态,需要主干线供电。但在树状拓扑网络模式中,允许路由器周期地运行操作,所以可以采用电池供电。路由器的功能主要包括作为普通设备加入网络,实现多跳路由,辅助其他的子节点完成通信。
末端节点则相当于数量最多的工蜂,也称为精简功能设备(Reduced-Function Device,RFD),只能传送数据给 FFD 或从 FFD 接收数据,该设备需要的内存较少(特别是内部 RAM)。
为了维持网络最基本的运行,末端节点没有指定的责任,没有必不可缺少性,可以根据自己的功能需要休眠或唤醒,一般可由电池供电。树路由把整个网络看作是以协调器为根的一棵树,树状路由不需要路由表,节省存储资源,缺点是不灵活,浪费了大量的地址空间,路由效率低。网状网的路由算法是无线自组网按需平面距离矢量路由算法(Ad Hoc On-Demand Distance Vector Routing,AODV)的
一个简化版本。在 AODV 中,一个网络节点要建立连接时才广播一个连接建立的请求,其他的 AODV 节点转发这个请求消息,并记录源节点和回到源节点的临时路由。当接收连接请求的节点知道到达目的节点的路由时,就把这个路由信息按照先前记录的回到源节点的临时路由发回源节点。
源节点和目的节点之间使用这个经由其他节点并且有最短跳数的路由进行数据传输。当链路断掉,路由错误回送源节点,源节点就重新发起路由查找的过程。它可以用于较大规模的网络,需要节点维护一个路由表,耗费一定的存储资源,但往往能达到最优的路由效率,而且使用灵活。
除了这几种路由方法,ZigBee 还可以进行邻居表路由,其实邻居表可以看作是特殊的路由表,只不过只需要一跳就可以发送到目的节点。
2.网络层规范概述
ZigBee 协议栈的核心部分在网络层。网络层负责拓扑结构的建立和维护、命名和绑定服务,它们协同完成寻址、路由、传送数据及安全这些不可或缺的任务,支持星状(Star)、树状(Cluster-Tree)、网格(Mesh)等多种拓扑结构。
为了满足应用层的要求,ZigBee 协议的网络层划分为网络层数据实体(NLDE)和网络层管理实体(NLME),NLDE 提供相关的 SAP 的数据传输服务,而 NLME 则提供经由相关的 SAP 的管理服务。
网络层必须从功能上为 MAC 子层提供支持,并为应用层提供合适的服务接口。为了
实现与应用层的接口,网络层从逻辑上分为两个具有不同功能的服务实体,即数据实体(NLDE)和管理实体(NLME)。数据实体通过和它相连的 NLDE-SAP 服务存取点提供数据管理服务;而网络层管理实体(NLME)则通过和它相连的 NLME-SAP 服务存取点提供管理服务。NLME 使用 NLDE 完成一些管理任务,并维护一个被称作网络信息中心(NIB)的数据库对象。
NLDE 提供如下服务:
(1)产生网络层协议数据单元(NPDU)。
(2)提供基于拓扑结构的路由策略。
NLME 提供如下服务:
(1)配置新设备。
(2)建立网络。
(3)加入和离开网络。
(4)寻址。
(5)邻居发现。
(6)路由发现。
(7)接收控制。
3.网络层服务规范
网络层提供了两种服务,可以通过两个服务存取点(SAP)分别进行访问。这两个服
务是网络层数据服务和网络层管理服务。前者可以通过网络层数据实体服务存取点
(NLDE-SAP)进行访问,后者则可以通过网络层管理服务实体服务存取点(NLME-SAP)进行访问。这两个服务与 MCPS-SAP 和 MLME-SAP 一起组成了应用层和 MAC 子层间的接口。除了这些外部接口,在网络层内部,NLME 和 NLDE 之间也存在一个接口,NLME可以通过它访问网络层的数据服务。
4.网络层帧结构
网络层的帧是由网络层帧头和网络负载组成的。帧头部分域的顺序是固定的,但是根
据具体情况,其他所有域不一定必须包含。如图所示。
5.网络层功能
网络层负责拓扑结构的建立和维护网络连接,主要功能包括设备连接和断开网络时所
采用的机制,以及在帧信息传输过程中所采用的安全性机制。此外,还包括设备的路由发现和路由维护及转交。并且,网络层完成对一跳(one-hop)邻居设备的发现和相关节点信息的存储。一个 ZigBee 协议器创建一个新网络,为新加入的设备分配短地址等。并且,网络层还提供一些必要的函数,确保 ZigBee 的 MAC 层正常工作,并且为应用层提供合适的服务接口。
网络层的主要功能包括以下 8 个方面:
(1)通过添加恰当的协议头能够从应用层生成网络层的 PDU,即 NPDU。
(2)确定网络的拓扑结构。
(3)配置一个新的设备,可以是网络协调器,也可以向存在的网络中加入设备。
(4)建立并启动无线网络。
(5)加入或离开网络。
(6)ZigBee 的协调器和路由能为加入网络的设备分配地址。
(7)发现并记录邻居表、路由表。
(8)信息的接收控制,同步 MAC 子层或直接接收信息。
ZigBee 应用层规范
ZigBee 协议栈的层结构包括 IEEE 802.15.4 媒体接入控制层(MAC)和物理层(PHY),以及 ZigBee 网络层。每一层通过提供特定的服务完成相应的功能。其中,ZigBee 应用层包
APS 子层、ZDO(包括 ZDO 管理层)以及用户自定义的应用对象。APS 子层的任务包括维护绑定表和绑定设备间的消息传输。所谓的绑定指的是根据两个设备所提供的服务和它们的需求而将两个设备关联起来。
ZDO 的任务包括界定设备在网络中的作用,发现网络中的设备并检查它们能够提供哪些应用服务,产生或者回应绑定请求,并在网络设备间建立安全的通信。
ZigBee 应用层有三个组成部分,包括应用支持子层(Application Support Sub-Layer,APS)、应用框架(Application Framework,AF)、ZigBee 设备对象(ZigBee Device Object,ZDO)。它们共同为各应用开发者提供统一的接口,规定了与应用相关的功能,如端点(Endpoint)的规定,绑定(Binding)、服务发现和设备发现等。
1.应用支持子层
APS 主要作用包括:协议数据单元 APDU 的处理,APSDE 提供在同一个网络中的应用实体之间的数据传输机制,APSME 提供多种服务给应用对象,并维护管理对象的数据库。APS 是网络层(NWK)和应用层(APL)之间的接口。
该接口包括一系列可以被 ZDO和用户自定义应用对象调用的服务。这些服务由两个实体提供:APS 数据实体(APSDE)通过 APSDE 服务接入点(APSDE-SAP),APS 管理实体(APSME)通过 APSME 服务接入点(APSME-SAP)。APSDE 在同一个网络中的两个和多个设备提供传输应用 PDU 的数据传输服务。APSME 提供设备发现和设备绑定服务,并维护一个管理对象的数据库,也就是 APS 信息库(AIB)。
2.应用框架
在 ZigBee 应用中,应用框架提供了两种标准服务类型。一种是键值对(Key Value Pair,KVP)服务类型,另一种是报文(message,MSG)服务类型。KVP 服务用于传输规范所定义的特殊数据。它定义了属性(attribute)、属性值(value)以及用于 KVP 操作的命令:Set、Get、Event。其中,Set 用于设置一个属性值;
Get 用于获取一个属性值;Event 用于通知一个属性已经发生改变。KVP 消息主要用于传输一些较为简单的变量格式。由于ZigBee 的很多应用领域中的消息较为复杂,并不适用于 KVP 格式,因此 ZigBee 协议规范定义了 MSG 服务类型。MSG 服务对数据格式不作要求,适合任何格式的数据传输。因此可以用于传送数据量大的消息。
应用框架AF为每个应用对象提供了键值对(KVP)服务和报文(MSG)服务。KVP
命令帧的格式如图3.6所示。MSG命令帧格式如图所示。
3.ZigBee设备对象
ZDO 实际上是介于应用层端点和应用支持子层中间的端点,其主要功能集中在网络
管理和维护上。应用层的端点可以通过 ZDO 提供的功能来获取网络或者是其他节点的信息,包括网络的拓扑结构、其他节点的网络地址和状态以及其他节点的类型和提供的服务等信息。
端点是应用对象存在的地方,ZigBee 允许多个应用同时位于一个节点上,ZigBee 定义了几种描述符,对设备以及提供的服务进行描述,可以通过这些描述符来寻找合适的服务或者设备。
此外,ZigBee 协议栈还提供了安全组件,如采用了 AES128 的算法对网络层和应用层的数据进行加密保护;设立信任中心的角色,用于管理密钥和管理设备,可以执行设置的安全策略。
从以上分析可知,ZigBee 协议套件简单紧凑,因而与之兼容的硬件要求也比较简单,8 位微处理器 80C51 就可以满足要求,全功能协议软件需要 32KB 的 ROM,最小功能协议软件需求大约 4KB 的 ROM。
目前,飞思卡尔、得州仪器 TI 等国际巨头已推出了比较成熟的 ZigBee 开发平台,如 TI 推出基于 CC2420 收发器和 TI MSP430 超低功耗单片机的平台,CC2430 的 SOC 平台 C51RF-3-PK 等。
ZigBee 设备配置层提供标准的 ZigBee 配置服务,它定义和处理描述符请求。在
ZigBee 设备配置层中定义了称为 ZigBee 设备对象的特殊软件对象,在其他服务中提供绑定服务。远程设备可以通过 ZDO 接口请求任何标准的描述符信息。当接收到这些请求时,ZDO 会调用配置对象以获取相应的描述符值。在目前的 ZigBee 协议版本中,还没有完全实现设备配置层。ZDO 是特殊的应用对象,它在端点(end-point)0 上实现。
ZigBee 安全服务规范
ZigBee 设备之间的通信使用 IEEE 802.15.4 无线标准,该标准指定物理层(PHY)和媒介存取控制层(MAC)两层规范。而 ZigBee 规范了网络层(NWK)和应用层(APL)标准,各层规范功能分别如下。
PHY:提供基本的物理无线通信能力。
MAC:提供设备间的可靠性授权和一跳通信连接服务。
NWK:提供用于构建不同网络拓扑结构的路由和多跳功能。
APL:包括一个应用支持子层、ZigBee 设备对象和应用。
在安全服务规范方面,协议栈分别在 MAC、NWK 和 APS 三层具有安全机制,保证各层数据帧的安全传输。同时,APS 提供建立和保持安全关系的服务。ZDO 管理安全性策略和设备的安全性结构。
-END-
-
ZigBee
+关注
关注
158文章
2269浏览量
242516 -
拓扑结构
+关注
关注
6文章
323浏览量
39159 -
路由
+关注
关注
0文章
276浏览量
41769
发布评论请先 登录
相关推荐
评论