ZigBee协议栈体系结构由应用层。应用汇聚层。 网络层。数据链路层和物理层组成,如下图所示:
 
图1 ZigBee 协议栈体系的层次结构
 
   应用层定义了各种类型的应用业务,是协议栈的最上层用户。应用汇聚层负责把不同的应用映射到ZigBee网络层上,包括安全与时鉴权、多个业务数据流的汇聚、设备发现和业务发现。网线层的功能包括拓扑管理、MAC管理、路由管理和安全管理。
1. 数据链路层
   数据链路层以可分为逻辑链路控制子层(LLC Logic Link Control)和介质访问控制子层(Medium Access Control,  MAC)。IEEE802.15.4的LLC子层功能包括传输可靠性保障、数据包的分段与重组、数据包的顺序传输。IEEE802.15.4MAC子层功能包括设备间无线链路的建立、和拆除,确认的帧传送与接收,信道接入控制、帧校验、预留时隙管理和广播信息管理。
2.     物理层和MAC层
   ZigBee直接使用了IEEE802.15.4标准的物理层和MAC层。ZigBee工作 在三种不同的频带上,欧洲的868MHz频带,美国的915MHz频带和全球通用的2.4GHz频带。968MHz频带上、915MHz频带和2.4GHz频带的物理层并不相同,它们各自的信道带宽分别是0.6MHz,2MHz和5MHz,分别有1个、10个和16处信道。不同频带的扩频和调制方式也有所区别,虽然都是使用了直接序列扩频(DSSS)的方式。但是比特到码片的变换方式有比较大的差别;调制方面都使用了调相技术,但868MHz和915MHz频段采用的是BPSK,而2.4GHz频段采用的是OQPSK。
   ZigBee网络组网可以灵活地采用多种拓扑结构,可以采用星形,可以采用网状和树簇状拓扑等。如下图所示:
 

图2 星形拓扑结构

 
图3 树状拓扑结构
 

图4  网状拓扑结构

    星形拓扑具有组网简单、成本低;但网络覆盖范围小,一旦中心节点发生故障,所有与中心节点连接的传感器节点与网络中心的通信都将中断,星形拓扑组网时,电池使用寿命较长,网状拓扑组网可靠性高、覆盖范围大的优点,但电波使用寿命短、管理复杂。树簇形拓扑综合了以上两种拓扑的特点,相对讲会使ZigBee网络灵活、高效。
        ZigBee/IEEE802.15.4网络中所有节点都工作在同一个信道上,当讨论某个节点要向另一个节点传输数据时,如果网络内其他节点音下在通信并发送数据,就有可以发生冲突。为此,在MAC层采用了CSMA/CA的媒质访问控制技术,简单来说,就是节点在发送数据之前先监听信道,如果信道空闲,则可以发送数据,否则,就要进行随机的退避,即延迟一段随机时间,然后再进行监听,这个退避的时间是指数增长的,但有一个最大值,即如果上一次退避之后再次监听信道忙,则退避时间要增倍,这们做的原因是如果多次监听信道都忙,有可能表明信道上的数据量大,因此让节点等待更多的时间,避免繁忙的监听,通过这种信道接入技术,所有节点竞争共享同一个信道。在MAC层当中还规定了“超帧”的格式,在超帧的开始发送信标帧,里面含有一些时序以及网络的信息,紧接着是竞争接入时期,在这段时间内各节点以竞争方式接入信道,再后面是非竞争接入时期,节点采用时分复用的方式接入信道,然后是非活跃时期,节点进入休眠状态,等待下一个超帧周期的开始以发送信标帧。而非信标模式则比较灵活,节点均以竞争方式接入信道,不需要周期性的发送信标帧。显然,在信标模式当中由于有了周期性的信标,整个网络的所有节点都能进行同步,但这咱同步的规模不会很大。实际上,在ZigBee当中用的更多的可能是非信标模式。
1.    网络层
(1)       网络拓扑结构。ZigBee网络组网可以灵活地采用多种拓扑结构,可以采用星形,可以采用网状和树簇状拓扑等。在星形拓扑结构组网时,整个网络有一个ZigBee 协调器设备来进行整个网络的控制,ZigBee协调器能启动和维持网络的正常工作,使网络内的终端设备实现通信,如果采用网状和树形拓扑结构组网,ZigBee协调器则负责启动网络以及选择关键的网络参数。在树形网络中,路由器采用分级路由策略来传送数据和控制信息。网状网络中,设备之间使用完全对等的通信方式。ZigBee路由器不发送通信信标。
(2)       网络层及路由算法。ZigBee网络层的功能包括拓扑管理 、MAC管理、路由管理和安全管理。网络层的主要功能是路由管理,路由算法是它的核心 。网络层主要支持两种路由算法-----树状路由和网状路由。
(3)       网络层中各部分的数据接口和网络层服务功能
1)  网络层中各部分的数据接口。ZigBee网络层的各个组成部分和彼此间的接口关系如下图

 
   
                图5 ZigBee 网络层的各个组成部分和彼此间接口关系
 
    图中的NLDE-SAP是网络层数据实体的服务接入点,MLME-SAP是网络层管理实体的服务接入占,MCPS-SAP是媒体接入控制公共部分子层的服务接入点,MALME-SAP是MAC子层管理实体的服务接入点。
    网络层通过两种服务接入点提供网络层数据服务和网络层管理服务,层数据服务通过层数据实体服务接入点接入,网络层管理服务通过网络层管理实体服务接入点接入、这两种服务通过媒体接入控制公共部分子层的服务接入点和MAC子层管理实体的服务接入点为MAC层提供接口;通过网络层数据实体的服务接入点和MAC子层管理实体的服务接入点为应用层实体提供接口服务。
2)  网络层服务功能。网络层要为IEEE802.15.4的MAC子层提供支持,确保ZigBee的MAC层正常工作,并为应用层提供合适的服务接口。为了向应用层提供其接口,层提供了两个必需的功能服务实体,它们分别为数据服务实体和管理服务实体。网络层数据实体(NLDE)通过网络层数据实体服务接入点(NLDE-SAP)提供数据传输服务。网络层管理实体(NLME)通过网络层管理实体服务接入点(NLME-SAP)提供网络管理服务。
①     网络层数据实体提供的服务
l         产生网络层协议数据单元(NPDU),网络层数据实体通过增加一个适当的协议头,从应用支持层协议数据单元中生成网络层的协议数据单元。
l         指定拓扑传输路由,网络层数据实体能够发送一个网络层的协议数据协议数据单元到一个数据传输的目标终端设备,目标终端设备也可以是通信链路中的一个中间通信设备。
②     网络层管理实体提供的服务
  • 配置一个新的设备。为保证设备正常工作的需要,设备应具有足够的堆栈,以满足配置的需要。配置选项包括对一个ZigBee协调器和连接一个现有网络设备的初始化操作。
  • 加入或离开网络。具有连接或者断开一个网络的能力,以及建立一个ZigBee协调器或者ZigBee路由器,具有要求设备同网络断开的能力。
  • 寻址。ZigBee协调器和ZigBee路由器具有为新加入网络的设备分配地址的能力。
  • 邻居发现。具有发现。记录和汇报相关的一跳邻居设备信息的能力
  • 接收控制。具有控制设备接收机接收状态的能力,即控制接收机什么时间接收。接收时间长短,以保证MAC层的同步或者正常接收等
(4)       原语 在分层的通信协议中,层之间通过服务访问点SAP相连,每一屋都可以通过本层和下层的SAP调用下层为其提供相应的服务,同时通过与上层的SAP为上层提供相应的服务。访问点SAP有通信协议中层与层之间的为通信接口,但具体的服务是以通信原语的形式供上层调用的。在调用下层服务时,只需要遵循统一的原语规范,而不必了解下层是怎样处理原语的,通过这咱方式实现了数据层与层之间的透明传输。层与层之间的原语分成请求原语,确认原语,指示原语和响应原语
(5)       网络层管理服务。网络层管理实体服务接入点为其上层和网络层管理实体之间传送管理命令提供通信接口,网络层管理实体支持NLME-SAP接口原语,这些原语包括网络发现、网络的形成、允许设备连路由器初始化、设备同网络的连接等原语。
(6)       网络层帧格式。ZigBee网络帧由下列基本部分组成:网络层帧报头,包含帧控制、地址和序列信息;第二个部分是,网络层帧的可变长有效栽荷,包含帧类型所指定的信息。
 
 
图 6 通用的网络层帧格式
 
1)  通用网络层帧的结构与格式,网络层帧的格式由一个网络层报头和一个网络层网负载组成。帧头部分域的顺序是固定的,但根据不同的具体应用情况,不是必须包括所有域。通用网络层帧格式所示:
2)  不同域的说明:
  • 帧控制域。由16位组成,内容包括帧类型、地址、序列域以及其他的控制标记。
  • 目地地址域。在网络层帧中,必须要有目的地址域,该域长度两个字节,用来存放目标设备的网络地址或广播地址(0xffff).
  • 源地址域。在网络层帧中,该域也是必备的,长度为两个字节,其值是16位的源设备网络地址
  • 广播半径域。广播半径域在帧的目的地址为广播地址时才存在,长度一个字节。该域用来设定传输半径。
  • 序列号域。在网络层帧中,该域是必备的,长度一个字节,每次发送帧时改为加1.
  • 帧负载域。该域长度可变,包含了各种帧的具体信息。
4. 应用层规范
 ZigBee协议栈的层级有IEEE802.15.4的MAC、物理层(PHY)以及ZigBee网络层,网络层上面是应用层。
 网络层的頉是应用层,包括APS(Application Support Layer:应用支持子层)和ZDO(ZigBee设备对象:ZigBee Device Object)等部分,主要规定了一些和应用相关的功能,包括端点(Endpoint)的规定,还有绑定(Binding)、服务发现和设备发现等。
APS子层的任务包括维护绑定表和绑定设备间消息传输;绑定指的是根据两个设备所提供的服务和它们的需求将两个设备关联起来。
(1)       ZigBee应用支持子层。应用支持子层(APS)是网络层和应用层之间接口。通过此接口可以调用一系列被ZDO和用户自定义应用对象的服务
(2)       ZigBee设备协定。ZigBee应用层规范描述了ZigBee设备的绑定、设备发现和服务发现在ZigBee设备对象(ZDO)中的实现方式,ZigBee设备协定(devic profile)支持以下几种设备间通信功能:
1)  设备和服务发现
2)  终端设备绑定请求过程
3)  绑定和接触绑定过程
4)  网络管理
(3)       ZigBee设备对象。ZigBee设备对象(ZDO)是一种通过调用网络和应用支持子层原语来实现ZigBee规范中规定的ZigBee终端设备。ZigBee路由器能及ZigBee协调器的应用。ZigBee设备对象ZDO主要功能:
1)  对APS子层、网络层、安全服务模块(SSP)以及除了应用层中端点1~~240以外的ZigBee设备层和初始化
2)  集成终端应用的配置信息,实现设备服务发现、网络管理、网络安全、绑定管理和节点管理等功能。
  上面主要是简单的描述了ZigBee中各层之间的相互关系和作用,希望对以后的学习有帮助。

ZigBee 协议规范的更多相关文章

  1. 【转】ZigBee终端入网方式深入分析

    前述 继之前对终端Direct Join的分析,发现很多东西还很模糊,存在很多问题.终于找到时间继续深入挖下去,这次应该比较完整地搞清了终端的入网机制,并纠正之前的几个认识偏差. 由于Z-Stack网 ...

  2. Zigbee系列(概览)

    Zigbee技术特点 低速率: 数据传输速率只有20~250kb/s, 2.4GHZ提供250kb/s, 915MHz对应40kb/s, 868Mhz对应20kb/s 低功耗:睡眠模式设备使用电池供电 ...

  3. ZigBee物理层协议规范

    在不同的国家和地区,ZigBee技术所允许使用的工作频率是不同的,而对于不同的应用频率范围,其调制方式.传输速率均不同,众所周知,蓝牙技术在世界多数国家都采用统一的频率范围,其范围为2.4GHz的IS ...

  4. 物联网常见通信协议RFID、NFC、Bluetooth、ZigBee等梳理

    1  概述 在上一篇文章<物联网常见通信协议与通讯协议梳理[上]-通讯协议>中,对物联网常用通信协议和通讯协议作了区分,并对通讯协议进行了分享:本文将对常用的通信协议进行剖析,重点面向市场 ...

  5. 【转】zigbee终端无法重连的问题解决

    zigbee终端无法重连的问题解决 1.zigbee重连的原因 (1)zigbee由于各种原因的干扰导致信号太差而掉线. (2)协调器重启. 2.zigbee终端重连的处理 (1)zigbee掉线后会 ...

  6. 【转译】加入ZigBee联盟,共画物联网的未来

    Zigbee联盟是物联网全球革命的领导者,创造了随心控制的时代.Zigbee简化了无线产品的整合.加快了市场化,同时让那些希望引入高能效的无线控制的厂商,降低了成本和风险.我们的联盟成员在开放的全球环 ...

  7. [ZigBee] 16、Zigbee协议栈应用(二)——基于OSAL的无线控制LED闪烁分析(下)

    说在前面:上一篇介绍了无线LED闪烁实现的OSAL部分,本篇介绍如何实现无线数据收发及数据处理: 上一篇是用SI跟着流程查看源码,我个人认为以架构的思维去了解代码能让人更清晰 ::ZMain.c程序入 ...

  8. 【转】ZigBee是如何组网的?

    组网方案设计:组建一个完整的zigbee网状网络包括两个步骤:网络初始化.节点(路由器或终端)加入网络,其中节点加入网络又包括两个步骤:通过与协调器连接入网和通过已有父节点入网. 一.网络初始化:  ...

  9. 关于zigbee 网络拓扑节点数量的一点说明

    理论上,一个zigbee网络可以存在65535个节点,即一个协调器下挂这么多个节点(ZR & ZE),但是实际应用中几乎是不可能达到的,达到100~200已经是很不错了,达到300几乎也是凤毛 ...

随机推荐

  1. Delphi线程同步(临界区、互斥、信号量,包括详细代码)

    当有多个线程的时候,经常需要去同步这些线程以访问同一个数据或资源. 例如,假设有一个程序,其中一个线程用于把文件读到内存,而另一个线程用于统计文件的字符数.当然,在整个文件调入内存之前,统计它的计数是 ...

  2. 开源欣赏wordpress之post.php

    switch($action) { case 'postajaxpost': case 'post': case 'post-quickpress-publish': case 'post-quick ...

  3. Implement Hash Map Using Primitive Types

    A small coding test that I encountered today. Question Using only primitive types, implement a fixed ...

  4. Cuckoo hash算法分析

    一 基本思想: cuckoo hash是一种解决hash冲突的方法,其目的是使用简单的hash 函数来提高hash table的利用率,同时保证O(1)的查询时间 基本思想是使用2个hash函数来处理 ...

  5. HDOJ2553-N皇后问题(DFS)

      N皇后问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  6. [Leetcode][Python]56: Merge Intervals

    # -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 56: Merge Intervalshttps://oj.leetcode. ...

  7. ubuntu下集群设置静态ip

    hadoop集群时,需要固定集群内计算机相互通信之间的ip地址,但是每次进行网络连接后,ip地址都是变换的,我们希望设置一个用于集群内通信的静态ip,即使重启电脑也不会变化,同样希望能够正常的访问互联 ...

  8. PHP MySQL Delete From 之 Delete

    删除数据库中的数据 DELETE FROM 语句用于从数据库表中删除记录. 语法 DELETE FROM table_name WHERE column_name = some_value 注释:SQ ...

  9. android笔试题集2

    1.请谈一下Android系统的架构.答:Android系统采用了分层架构,从高层到低层分别是应用程序层.应用程序框架层.系统运行库层和linux核心层. 2.谈谈android大众常用的五种布局.答 ...

  10. iOS安全攻防(二十三):Objective-C代码混淆

    iOS安全攻防(二十三):Objective-C代码混淆 class-dump能够非常方便的导出程序头文件,不仅让攻击者了解了程序结构方便逆向,还让着急赶进度时写出的欠完好的程序给同行留下笑柄. 所以 ...