首页 理论教育 Zigbee协议栈与网络配置详解

Zigbee协议栈与网络配置详解

时间:2023-11-22 理论教育 版权反馈
【摘要】:完整的Zigbee协议栈由物理层、媒体访问控制层、网络层、安全层和应用层组成。Zigbee协议栈基于标准的OSI七层模型,但只是在相关的范围定义一些相应层来完成特定的任务。在数据传输过程中,Zigbee采用了CSMA/CA碰撞避免机制和完全确认的数据传输机制,保证了数据的可靠传输。设备配置包括开始设备作为Zigbee协调者,或者加入一个存在的网络。

Zigbee协议栈与网络配置详解

完整的Zigbee协议栈由物理层、媒体访问控制层、网络层、安全层和应用层组成。数据实体(DataEntity)提供数据的传输服务,而管理实体(Management Entity)提供所有的服务类型。每个层的服务实体通过服务接入点(Service Access Point,SAP)和上一层相接,每个SAP提供大量服务方法来完成相应的操作。

Zigbee协议栈基于标准的OSI七层模型,但只是在相关的范围定义一些相应层来完成特定的任务。IEEE802.15.4-2003标准定义了物理层(PHY层)和媒介层(MAC层)。Zigbee联盟在此基础上建立了网络层(NWK层)以及应用层(APL层)的框架(Framework)。APL层又包括应用支持子层(Application Support Sub-layer,APS)、Zigbee的设备对象(Zig-bee Device Objects,ZDO)以及制造商定义的应用对象。

1.物理层(PHY)

IEEE 802.15.4协议的物理层是协议的最底层,承担着和外界直接作用的任务。它采用扩频通信的调制方式,控制RF收发器工作,信号传输距离约为50m(室内)或150m(室外)。IEEE 802.15.4-2003有两个PHY层,提供两个独立的频率段:868/915MHz和2.4GHz。868/915MHz频段包括欧洲使用的868MHz频段以及美国和澳大利亚使用的915MHz频段,2.4GHz频段世界通用

2.媒体访问控制层(MAC)

MAC层遵循IEEE 802.15.4协议,负责设备间无线数据链路的建立、维护和结束,确认模式的数据传送和接收,可选时隙,实现低延迟传输,支持各种网络拓扑结构,网络中每个设备为16位地址寻址。它可完成对无线物理信道的接入过程管理,包括网络协调器(Co-ordinator)产生网络信标、网络中设备与网络信标同步、完成PAN的入网和脱离网络过程、网络安全控制、利用CSMA/CA机制进行信道接入控制、处理和维持GTS(Guaranteed Time Slot)机制、在两个对等的MAC实体间提供可靠的链路连接。

(1)数据传输模型

MAC规范定义了3种数据传输模型,即数据从设备到网络协调器、从网络协调器到设备、点对点对等传输模型。对于每一种传输模型,又分为信标同步模型和无信标同步模型两种情况。在数据传输过程中,Zigbee采用了CSMA/CA碰撞避免机制和完全确认的数据传输机制,保证了数据的可靠传输。同时为需要固定带宽的通信业务预留了专用时隙,避免了发送数据时的竞争和冲突。

(2)帧结构定义

MAC规范定义了信标帧、数据帧、确认帧和MAC命令帧4种帧结构。

3.网络层(NWK

网络层的作用是建立新的网络、处理节点的进入和离开网络、根据网络类型设置节点的协议堆栈、使网络协调器对节点分配地址、保证节点之间的同步、提供网络的路由。网络层确保MAC子层的正确操作,并为应用层提供合适的服务接口。为了给应用层提供合适的接口,网络层用数据服务和管理服务这两个服务实体来提供必需的功能。网络层数据实体(NLDE)通过相关的服务接入点(SAP)来提供数据传输服务,即NLDE.SAP;网络层管理实体(NLME)通过相关的SAP来提供管理服务,即NLME.SAP。NLME利用NLDE来完成一些管理任务和维护管理对象的数据库,通常称做网络信息库(Network Information Base,NIB)。

(1)网络层数据实体(NLDE)

NLDE提供数据服务,以允许一个应用在两个或多个设备之间传输应用协议数据(Ap-plication Protocol Data Units,APDU)。NLDE提供以下服务类型。

●通用的网络层协议数据单元(NPDU):NLDE可以通过一个附加的协议头从应用支持子层PDU中产生NPDU。

●特定的拓扑路由:NLDE能够传输NPDU给一个适当的设备。这个设备可以是最终的传输目的地,也可以是路由路径中通往目的地的下一个设备。

(2)网络层管理实体(NLME)

NLME提供一个管理服务来允许一个应用和栈相连接。NLME提供以下服务。

●配置一个新设备:NLME可以依据应用操作的要求配置栈。设备配置包括开始设备作为Zigbee协调者,或者加入一个存在的网络。

●开始一个网络:NLME可以建立一个新的网络。

●加入或离开一个网络:NLME可以加入或离开一个网络,使Zigbee的协调器和路由器能够让终端设备离开网络。

●分配地址:使Zigbee的协调者和路由器可以分配地址给加入网络的设备。

●邻接表(Neighbor)发现:发现、记录和报告设备的邻接表下一跳的相关信息。

●路由的发现:可以通过网络来发现及记录传输路径,而信息也可被有效地路由。

●接收控制:当接收者活跃时,NLME可以控制接收时间的长短并使MAC子层能同步或直接接收。(www.xing528.com)

(3)网络层帧结构

网络层帧结构由网络头和网络负载区构成。网络头以固定的序列出现,但地址和序列区不可能被包括在所有帧中。

4.应用层(APL层)

应用层主要根据具体应用由用户开发。它维持器件的功能属性,发现该器件工作空间中其他器件的工作,并根据服务和需求在多个器件之间进行通信。

Zigbee的应用层由应用子层(APS sub-layer)、设备对象(ZDO,包括ZDO管理平台)以及制造商定义的应用设备对象组成。APS子层的作用包括维护绑定表(绑定表的作用是基于两个设备的服务和需要把它们绑定在一起)、在绑定设备间传输信息。ZDO的作用包括在网络中定义一个设备的作用(如定义设备为协调者或为路由器或为终端设备)、发现网络中的设备并确定它们能提供何种服务、起始或回应绑定需求以及在网络设备中建立一个安全的连接。

(1)应用支持子层(APS层)

应用支持子层在网络层和应用层之间提供了一个接口,接口的提供是通过ZDO和制造商定义的应用设备共同使用的一套通用的服务机制,此服务机制是由两个实体提供,通过APS数据实体接入点(APSDE.SAP)的APS数据实体(APSDE)和通过APS管理实体接入点(APSME.SAP)的APS管理实体(APSME)。APSDE提供数据传输服务对于应用PDUs的传送在同一网络的两个或多个设备之间。APSME提供服务以发现和绑定设备并维护一个管理对象的数据库,通常称为APS信息库(AIB)。

(2)应用层框架(Application Framework)

Zigbee应用层框架是应用设备和Zigbee设备连接的环境。在应用层框架中,应用对象发送和接收数据通过APSDE.SAP,而对应用对象的控制和管理则通过ZDO公用接口来实现。APSDE.SAP提供的数据服务包括请求、确认、响应以及数据传输的指示信息。有240个不同的应用对象能够被定义,每个终端节点的接口标识从1~240,还有两个附加的终端节点为了APSDE.SAP的使用。标识0被用于ZDO的数据接口,255则用于所有应用对象的广播数据接口,而241、254予以保留。

使用APSDE.SAP提供的服务,应用层框架提供了应用对象的两种数据服务类型,即主值对服务(Key Value Pair service,KVP)和通用信息服务(Generic Message Service,MSG)。两者传输机制一样,不同的是MSG并不采用应用支持子层(APS)数据帧的内容,而是留给profile应用者自己去定义。

(3)Zigbee设备对象(ZDO)

Zigbee设备对象(ZDO)描述了一个基本的功能函数类,在应用对象、设备profile和APS之间提供了一个接口。ZDO位于应用框架和应用支持子层之间,它满足Zigbee协议栈所有应用操作的一般要求。ZDO还有以下作用。

初始化应用支持子层(APS)、网络层(NWK)和安全服务文档(SSS)。

●从终端应用中集合配置信息来确定和执行发现、安全管理、网络管理以及绑定管理。

ZDO描述了应用框架层的应用对象的公用接口,控制设备和应用对象的网络功能。在终端节点0,ZDO提供了与协议栈中下一层相接的接口。

5.Zigbee安全管理

安全层使用可选的AES.128对通信加密,保证数据的完整性。Zigbee安全体系提供的安全管理主要是依靠相称性密匙保护、应用保护机制、合适的密码机制以及相关的保密措施。安全协议的执行(如密匙的建立)要以Zigbee整个协议栈正确运行且不遗漏任何一步为前提,MAC层、NWK层和APS层都有可靠的安全传输机制用于它们自己的数据帧。APS层提供建立和维护安全联系的服务,ZDO管理设备的安全策略和安全配置。

(1)MAC层安全管理

当MAC层数据帧需要被保护时,Zigbee使用MAC层安全管理来确保MAC层命令、标识、以及确认等功能。Zigbee使用受保护的MAC数据帧来确保一个单跳网络中信息的传输,但对于多跳网络,Zigbee要依靠上层(如NWK层)的安全管理。MAC层使用高级编码标准(Advanced Encryption Standard,AES)作为主要的密码算法和描述多样的安全组,这些组能保护MAC层帧的机密性、完整性和真实性。MAC层作为安全性处理,但上一层(负责密匙的建立以及安全性使用的确定)控制着此处理。当MAC层使用安全使能来传送/接收数据帧时,它首先会查找此帧的目的地址(源地址),然后找回与地址相关的密匙,再依靠安全组来使用密匙处理此数据帧。每个密匙和一个安全组相关联,MAC层帧头中有一个位来控制帧的安全管理是否使能。

当传输一个帧时,如需保证其完整性,MAC层头和载荷数据会被计算使用,来产生信息完整码(Message Integrity Code,MIC)。MIC由4、8或16位组成,被附加在MAC层载荷中。当需保证帧机密性时,MAC层载荷也有其附加位和序列数(数据一般组成一个nonce)。当加密载荷时或保护其不受攻击时,此nonce被使用。当接收帧时,如果使用了MIC,则帧会被校验,如载荷已被编码,则帧会被解码。当每个信息发送时,发送设备会增加帧的计数,而接收设备会跟踪每个发送设备的最后一个计数。如果一个信息被探测到一个老的计数,该信息会出现安全错误而不能被传输。MAC层的安全组基于3个操作模型,即计数器模型(Counter,CTR)、密码链模型(Cipher Block Chaining,CBC-MAC)以及两者混合形成的CCM模型。MAC层的编码在计数器模型中使用AES来实现,完整性在密码链模型中使用AES来实现,而编码和完整性的联合则在CCM模型中实现。

(2)NWK层安全管理

NWK层也使用高级编码标准(AES),和MAC层不同的是,标准的安全组全部是基于CCM模型。此CCM模型是MAC层使用的CCM模型的小修改,它包括了所有MAC层CCM模型的功能,此外还提供了单独的编码及完整性的功能。这些额外的功能通过排除使用CTR及CBC.MAC模型来简化NWK的安全模型。另外,在所有的安全组中,使用CCM模型可以使一个单密匙用于不同的组中。这种情况下,应用可以更加灵活地来指定一个活跃的安全组给每个NWK的帧,而不必理会安全措施是否使能。

当NWK层使用特定的安全组来传输、接收帧时,NWK层会使用安全服务提供者(Se-curity Services Provider,SSP)来处理此帧。SSP会寻找帧的目的/源地址,取回对应于目的/源地址的密匙,然后使用安全组来保护帧。NWK层对安全管理有责任,但其上一层控制着安全管理,包括建立密匙及确定对每个帧使用相应的CCM安全组。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈