1、- 1 -,第2章,Zigbee技术原理,- 2 -,本章目标,理解Zigbee网络结构 掌握IEEE802.15.4通信层 掌握MAC层和网络层帧结构 掌握Zigbee网络层服务规范 掌握Zigbee应用层规范,- 3 -,本章目标,理解Zigbee网络结构 掌握IEEE802.15.4通信层 掌握MAC层和网络层帧结构 掌握Zigbee网络层服务规范 掌握Zigbee应用层规范,- 4 -,2.1 概述,- 5 -,2.1 概述,- 6 -,2.2 Zigbee网络结构,协调器,路由器,- 7 -,2.2.1 Zigbee网络结构,- 8 -,2.2.2 拓扑结构,星型,树型,在星型拓扑结
2、构中,所有的终端设备只和协调器之间进行通信,协调器作为发起设备,协调器一旦被激活,它就建立一个自己的网络,并作为PAN协调器。路由设备和终端设备可以选择PAN标识符加入网络。,树型网络由一个协调器和多个星型结构连接而成,设备除了能与自己的父节点或子节点互相通信外,其他只能通过网络中的树型路由完成通信;在树型网络中,由协调器发起网络,路由器和终端设备加入网络。,- 9 -,2.2.2 拓扑结构,网状型,网状型网络是在树型网络的基础上实现的。与树状网络不同的是,它允许网络中所有具有路由功能的节点互相通信,由路由器中的路由表完成路由查寻过程 。在网状型网络中,每个设备都可以与在无线通信范围内的其他任
3、何设备进行通信。,- 10 -,2.2.3 协议架构,- 11 -,2.2.3 协议架构,IEEE802.15.4 通信层(MAC层和物理层),- 12 -,2.3 IEEE802.15.4通信层,IEEE802.15.4规范满足国际标准组织(ISO)开放系统互联(OSI)参考模式,它定义了Zigbee的物理层和MAC层。,- 13 -,2.3.1 物理层,物理层所负责的功能:,工作频段的分配,信道的分配,为MAC层提供数据服务,为MAC层提供管理服务,- 14 -,2.3.1 物理层,工作频段的分配,2.4GHZ,868/915MHZ,IEEE802.15.4,直接序列扩频,全球统一的无须申
4、请的ISM频段,此频段的物理层通过采用高阶调制技术能够提供250kbit/s的传输速率 ,提供16个数据速率为250kbps的信道。,868MHz是欧洲的ISM频段,915MHz是美国的ISM频段,868MHz的传输速率为20kbit/s,915MHz是40kbit/s。 868MHz支持1个数据速率为20kbps的信道,915MHz支持10个数据速率为40kbps的信道。,- 15 -,2.3.1 物理层,信道的分配,IEEE802.15.4物理层在三个频段上划分了27个信道,信道编号k为026。2.4GHz频段上划分了16个信道,915MHz频段上有10个信道,868MHz频段只有1个信道
5、。,- 16 -,2.3.1 物理层,物理层服务规范,物理层的主要功能是在一条物理传输媒体上,实现数据链路实体之间透明地传输各种数据比特流。它提供的主要服务包括:物理层连接的建立、维持与释放、物理服务数据单元的传输、物理层管理、数据编码。物理层功能涉及“服务原语”和“服务访问接口”两个概念,服务原语:Zigbee协议栈是一种分层结构,从下至上第N层向N+1层或者N+1层向第N层提供一组操作(也叫服务),这种“操作”叫做服务原语。它一般通过一段不可分割的或不可中断的程序实现其功能。服务原语用以实现层和层之间的信息交流。,服务访问接口:服务访问接口(Service Access Point,SAP
6、),是某一特定层提供的服务与上层之间的接口。这里所说的“接口”是指不同功能层的“通信规则”。例如,物理层服务访问接口是通过射频固件和硬件提供给MAC层与无线信道之间的通信规则。服务访问接口是通过服务原语实现的,其功能是为其他层提供具体服务。,- 17 -,2.3.1 物理层,物理层功能,数据的发送与接收 物理信道的能量检测 射频收发器的激活与关闭 空闲信道评估 链路质量指示 物理层属性参数的获取与设置,通过物理层服务 访问接口来实现,- 18 -,2.3.1 物理层,物理层访问接口,物理层数据服务访问接口,简称PD-SAP,PD-SAP负责物理层和MAC层之间提供数据服务。,物理层管理服务访问
7、接口,简称PLME-SAP,PLME-SAP除了负责在物理层和MAC层之间传输管理服务之外,还负责维护物理层PAN信息库;,- 19 -,2.3.1 物理层,数据的发送和接收,数据的发送和接收是通过PD-SAP提供的PD-DATA原语完成的,它可以实现两个MAC子层的MAC协议数据单元(MAC Protocol Data Unit,MPDU)传输。IEEE802.15.4标准专门定义了三个与数据相关的原语:数据请求原语(PD-DATA.Request),数据确认原语(PD-DATA.comfirm)和数据指示原语(PD-DATA.Indication)。,数据请求PD-DATA.request
8、 (psduLength,psdu),数据确认PD-DATA.confirm (status),数据指示PD-DATA.indication (psduLength,psdu,ppduLinkQuality),- 20 -,2.3.1 物理层,物理能量信道的检测,协调器在构建一个新的网络时,需要扫描所有信道(在MAC层这种扫描称做ED_SCAN),然后为网络选择一个空闲的信道,这个过程在底层是借助物理信道能量检测来完成的。如果一个信道被别的网络占用,体现在信道能量上的值是不一样的。IEEE802.15.4标准定义了与之相关的两个原语:能量检测请求原语(PLME_ED.request)和能量检测
9、确认原语(PLED-ED.confirm)。,能量检测请求PLME-ED.request (),能量检测确认PLME-ED.confirm (status,Energy Level),- 21 -,2.3.1 物理层,射频收发器的激活与关闭,为了满足低功耗要求,在不需要无线数据收发时,可以选择关闭底层射频收发器。802.15.4标准定义了两个相关的原语:收发器状态设置请求原语(PLME-SET-TRX-STATE.request)和收发器状态设置确认原语(PLME-SET-TRX-STATE.confirm)。,收发状态设置请求PLME-SET-TRX-STATE.request ( stat
10、us ),收发状态设置确认PLME-SET-TRX-STATE. confirm (status ),- 22 -,2.3.1 物理层,空闲信道评估,由于802.15.4标准的MAC子层采用的是CSMA/CA机制访问信道,需要探测当前的物理信道是否空闲,物理层提供的CCA检测功能就是专门为此而定义的。此功能定义的两个与之相关的原语为:CCA请求原语(PLME-CCA.request)与CCA确认原语(PLME-CCA.confirm)。,CCA请求PLME-CCA.request (),CCA确认PLME-CCA.confirm (status ),- 23 -,2.3.1 物理层,链路质量指
11、示,高层的协议往往需要依据底层的链路质量来选择路由,物理层在接收一个报文的时候,可以顺带返回当前的LQI值,物理层主要通过底层的射频硬件支持来获取LQI。MAC软件产生的LQI值可以用信号接收强度指示器(RSSI)来表示。,- 24 -,2.3.1 物理层,物理层属性参数的获取与设置,在Zigbee协议栈里面,每一层协议都维护着一个信息库(PAN information base,PIB)用于管理该层,里面具体存放着与该层相关的一些属性参数,如最大报文长度等。在高层可以通过原语获取或者修改下一层的信息库里面属性参数。IEEE802.15.4物理层也同样维护着这样一个信息库,并提供4个相关原语:
12、,- 25 -,2.3.2 MAC层,MAC层负责无线信道的使用方式,它们是构建Zigbee协议底层的基础,CSMA/CA 访问 信道,PAN的 建立和 维护,支持 PAN 网络的 关联 和解除 关联,协调器 产生网 络信标帧 普通设备 根据信标帧 与协调 器同步,处理 和 维护 保证 GTS,在 两个 对等 MAC实体间 提供 可靠 链路,其功能如下:,- 26 -,2.3.2 MAC层,MAC子层具体功能,采用CSMA/CA机制来访问信道,PAN的建立和维护 支持PAN网络的关联和解除关联,协调器产生网络信标帧,普通设备根据信标帧与协调器同步,处理和维护保证GTS 在两个对等MAC实体间提
13、供可靠链路,- 27 -,2.3.2 MAC层,MAC层服务规范,MAC管理服务可以提供调用MAC层管理功能的服务接口,同时还负责维护MAC PAN信息库,MAC数据服务可以提供调用MAC公共部分子层(MCPS)提供的的数据服务接口,为网络层数据添加协议头,从而实现MAC层帧数据,- 28 -,2.3.2 MAC层,CSMA/CA工作原理,CSMA/CA机制实际是在发送数据帧之前对信道进行预约,以免造成信道碰撞问题。CSMA/CA提供两种方式来对无线信道共享访问,其工作流程如下:,送出数据前,监听信道的使用情况,维持一段时间后,再等待一段随机的时间后信道依然空闲,送出数据,送出数据前,先送一段
14、小小的请求传送RTS报文给目标端,等待目标端回应CTS报文后才开始传送,- 29 -,2.3.2 MAC层,PAN建立和维护,在一个新设备上电的时候,如果设备不是协调器,它将通过扫描发现已有的网络,然后选择一个网络进行关联。如果是一个协调器设备,则扫描已有网络,选择空余的信道与合法的PANID,然后构建一个新网络。当一个设备在通信过程中,与其关联的协调器失去同步,也需要通过扫描通知其协调器。为了实现这些功能,802.15.4标准专门定义了4种扫描:,- 30 -,2.3.2 MAC层,关联和解除关联,“关联”即设备加入一个网络,“解除关联”即设备从这个网络中退出。对于一般的设备(路由器或者终端
15、节点),在启动完成扫描后,已经得到附近各个网络的参数,下一步就是选择一个合适的网络与协调器进行关联。在关联前,上层需要设置好相关的PIB参数(调用PIB参数设置原语),如:物理信道的选择,PANID、协调器地址等。,- 31 -,2.3.2 MAC层,信标帧,在信标帧使能的网络中,一般设备通过协调器信标帧的同步来得知协调器里是否有发送给自己的数据;另一方面,为了减少设备的功耗,设备需要知道信道何时进入不活跃时段,这样设备可以在不活跃时段关闭射频,而在协调器广播信标帧时打开射频。所有这些操作都需要通过信标帧实现精确同步。,- 32 -,2.3.3 MAC帧结构,MAC帧,即MAC协议数据单元(M
16、PDU),是由一系列字段按照特定的顺序排列而成的。设计目标是在保持低复杂度的前提下实现在噪声信道上的可靠数据传输。MAC层帧结构分为一般格式和特定格式。,- 33 -,2.4 Zigbee网络层,Zigbee网络层的主要作用:,负责网络的建立 允许设备加入或离开网络 路由的发现和维护,- 34 -,2.4.1 功能概述,Zigbee网络层主要实现网络的建立、路由的实现以及网络地址的分配。Zigbee网络层不同功能由不同的设备完成。其中Zigbee网络中的设备有三种类型:协调器、路由器和终端节点,分别实现不同的功能 :,- 35 -,2.4.2 服务规范,网络层内部由两部分组成,分别是网络层数据
17、实体(NLDE)和网络层管理实体(NLME),网络层数据实体通过访问服务接口NLDE-SAP为上层提供数据服务,- 36 -,2.4.3 帧结构,网络层协议数据单元(NPDU)即网络层帧的结构 ,在Zigbee网络协议中定义了两种类型的帧结构,即网络层数据帧和网络层命令帧,其格式如下:,- 37 -,2.4.3 帧结构,帧控制子域,- 38 -,2.4.3 帧结构,帧控制子域,- 39 -,2.4.3 帧结构,目的地址,目的地址长度域为2个字节。如果帧控制域的广播标志子域值为0,那么目的地址域值为16位的目的设备网络地址或者广播地址。如果广播标志子域值为1,目的地址域为16位目的组播的Grou
18、p ID。,- 40 -,2.4.3 帧结构,源地址,在网络层帧中必须有源地址,其长度是2个字节,其值是源设备的网络地址,- 41 -,2.4.3 帧结构,半径域,半径域总是存在的,它的长度为1字节。当设备每接收一次帧数据时,广播半径即减1,广播半径限定了传输半径的范围。,- 42 -,2.4.3 帧结构,广播序列号域,每个帧中都包含序列号域,其长度是1字节。每发送一个新的帧,序列号值即加1。帧的源地址和序列号子域是1对,在限定了序列号1字节的长度内是唯一的标识符,- 43 -,2.4.3 帧结构,IEEE目的地址,如果存在IEEE目的地址域,它将包含在网络层地址头中的目的地址域的16位网络地
19、址相对应的64位IEEE地址中。如果该16位网络地址是广播或者组播地址,那么IEEE目的地址不存在,- 44 -,2.4.3 帧结构,IEEE源地址,如果存在IEEE源地址域,则它将包含在网络层地址头中的源地址域的16为网络地址相对应的64位IEEE地址中,- 45 -,2.4.3 帧结构,多点传送控制,多点控制域是1字节长度,且只有广播标志子域值是1(即,组播)时才存在,- 46 -,2.4.3 帧结构,源路由帧,源路由帧只有在帧控制域的源路由子域的值是1时,才存在源路由帧子域。它分为3个子域:应答计数器(1个字节)、应答索引(1个字节)以及应答列表(可变长),- 47 -,2.5 Zigb
20、ee应用层,Zigbee的应用层由应用支持子层(APS)、Zigbee设备对象、Zigbee应用框架(AF)、Zigbee设备模板和制造商定义的应用对象等组成。,- 48 -,2.5.1 几个概念,节点地址端点号,- 49 -,2.5.1 几个概念,间接通信和直接通信,- 50 -,2.5.1 几个概念,簇,簇(cluster)可以由用户自定义,用于代表消息的类型。当一个任务接收到消息后,会对消息进行处理,但不同的应用有不同的消息,簇是为了将这些消息区分开而定义的,- 51 -,2.5.1 几个概念,设备发现,在Zigbee网络中,一个设备通过发送广播或者带有特定单播地址的查询,从而发现另一设
21、备的过程称为设备发现。设备发现有两种类型:第一种是根据IEEE地址;第二种是短地址已知的单播发现和短地址未知的广播发现。接收到查询广播或单播发现信息的设备,根据Zigbee设备类型的不同作出不同方式的响应,- 52 -,2.5.1 几个概念,服务发现,在Zigbee网络中,某设备为发现另一终端设备提供服务的过程称为服务发现。服务发现可以通过对某一给定设备的所有端点发送服务查询来实现,也可以通过服务特性匹配来实现。 服务发现过程是Zigbee协议栈中设备实现服务接口的关键。通过对特定端点的描述符的查询请求和对某种要求的广播查询请求等,可以使应用程序获得可用的服务,- 53 -,2.5.1 几个概
22、念,绑定,绑定是一种两个(或多个)应用设备之间信息流的控制机制,在Zstack协议栈中被称为源绑定。所有需要绑定的设备都必须执行绑定机制。绑定允许应用程序发送一个数据包而不需要知道目标地址。应用支持子层从它的绑定表中确定目标地址,然后将数据继续向目标应用或者目标组发送,- 54 -,2.5.2 应用支持子层,应用支持子层(APS)负责应用支持子层协议数据单元APDU的处理、数据传输管理和维护绑定列表。APS通过一组通用的服务为网络层和应用层之间提供接口,这一组服务可以被Zigbee设备对象和制造商定义的应用对象使用,包括应用支持子层数据服务和应用支持子层管理服务。,- 55 -,2.5.2 应
23、用支持子层,APSDE通过“应用支持子层数据服务访问接口”提供应用层数据单元的处理服务,并为应用层PDU加入合适的协议头生成APSDU,APSME通过“应用支持子层管理服务访问接口”提供设备发现、设备绑定和应用层数据库的管理等服务,- 56 -,2.5.3 应用框架,Zigbee设备中应用对象驻留的环境称为应用框架(Application Framework,英文简称AF)。在应用框架中,应用程序可以通过APSDE-SAP发送、接收数据,通过“设备对象公共接口”实现应用对象的控制与管理。应用支持子层数据服务接口(APSDE-SAP)提供的数据服务包括数据传输请求、确认、指示等原语 。,- 57
24、 -,2.5.3 应用框架,协议模板,每个Zigbee设备都与一个特定的模板有关,这些模板定义了设备的应用环境、设备类型以及用于设备间通信的簇,比如应用环境为智能家居,那么就可以建立一个智能家居的模板。不过Zigbee模板不是随意定义的,它们的定义,由Zigbee联盟负责。Zigbee联盟定义了三种模板分别为Zigbee协议栈模板、ZigbeePRO模板以及特定网络模板,在Zstack协议栈中使用了这三种模板,- 58 -,2.5.3 应用框架,协议模板,协议模板 Zigbee有三种类型的模板可以按使用限制分为:私有、公开和共用。每个模板都有一个模板标识符,此标识符必须是唯一的 单个的Zigb
25、ee设备可以支持多个模板,提供定义的簇标识符和设备描述符。这些簇标识符和端点标识符通过设备地址和端点地址来实现实现:,- 59 -,2.5.4 设备对象,功能描述,Zigbee应用框架的功能可以简单概括为组合事务、接收和拒绝,组合事务:应用框架帧结构允许将若干个单独的事务组合在一个帧内,这一组事务称为组合事务 接收和拒绝 :应用框架首先从APS接收的帧进行过滤处理,然后,检查该帧的目的端点是否处于活动状态。如果目的端点处于非活动状态,则将该帧丢弃;如果目的端点处于活动状态,则应用框架将检查帧中的模板标识符是否与端点的模板标识符匹配。如果匹配,将帧的载荷传送给该端点,否则丢弃该帧。,- 60 -
26、,2.5.3 应用框架,设备对象描述,Zigbee设备对象(ZDO)使用应用支持子层(APS)和网络层提供的服务实现Zigbee协调器、路由器和终端设备的功能。ZDO的功能包括:初始化应用支持子层、网络层和其他Zigbee设备层;汇聚来自端点应用的信息,以实现设备和服务发现、网络管理、绑定管理、安全管理、节点管理等功能,- 61 -,2.5.3 应用框架,设备对象行为,Zigbee网络中的设备类型有三种:协调器、路由器和终端节点,每一种的设备的设备对象行为都不同,- 62 -,2.5.3 应用框架,设备对象行为,- 63 -,小结,Zigbee协议分为物理层、MAC层、网络层和应用层,其中物理层和MAC层由IEEE802.15.4定义 Zigbee有三种网络拓扑结构,分别是星型、树型和网状型 物理层定义了物理无线信道和与MAC层之间的接口,提供物理层数据服务和物理层管理服务 MAC层提供MAC层数据服务和MAC层管理服务,并负责数据成帧 网络层负责拓扑结构的建立和维护网络连接 Zigbee的应用层由应用支持子层(APS)、Zigbee设备对象、Zigbee应用框架(AF)、Zigbee设备模板和制造商定义的应用对象等组成,- 64 -,谢谢!,