百思易x.25协议采用的是是什么无线协议,ZigBee协议的产品怎么样?

ZigBee技术作为物联网领域最常用的无線技术目前在智能家居、农田智能管理、节能应用等行业得到大量应用。为方便大家利用ZigBee进行项目开发今天对ZigBee协议栈及组网相关知识莋个分享。

ZigBee协议栈可以分为四层:物理层(PHY)、媒体访问控制层(MAC)、网络层(NWK)及应用层(APL)如图2所示,粉色的部分是由IEEE标准中定义的浅蓝色部分是由ZigBee聯盟规定的,黄色部分是由设备厂商自行定义

ZigBee协议栈的物理层及MAC层都是IEEE802.5.14标准中定义的。PHY层(物理层)规定了所使用的频段以及所使用的编碼、调制、扩频、调频等无线传输技术。

MAC层的主要作用规定了无线信道的访问控制机制也就是规定各个设备按照什么规矩轮流使用信道;如果没有MAC层协议,节点一多没有规矩的收发机制,就会发生信号冲突则无法正常传输数据了。

ZigBee协议栈在802.15.4协议基础上定义了网络层網络层的主要作用是负责设备的连接和断开、在帧数据传递时x.25协议采用的是安全机制、路由发现和维护。简单说就是保障设备之间的组網和网络节点间的数据传输。

标准的ZigBee网络协议包括协调器、路由器和终端节点而建立一个ZigBee网络除了必须要有的协调器之外,仅需加上路甴器或终端节点即可

在启动标准ZigBee Pro网络通讯前,如果没有建立存储跳转路径的路由表则节点无法通信,同样需要定时地发送网络报文检查节点是否异常由此可见,ZigBee Pro不仅启动速度慢而且定时发送网络报文占用大量的带宽。

若网络上的任意节点都具备对等的数据传输功能且无须协调器管理网络,那么网络中的任何节点都可以主动传输数据这样用户就无需理会具体的网络结构,显然使用会更加方便且施工人员也无需了解相关配置等。

基于此ZLG致远电子凭借对无线技术的深厚积累以及丰富实战经验,在ZigBee协议栈的基础上开发了FsatZigBee透明对等网絡协议

1、启动零延时:FastZigBee节点上电无需组网等待,可直接根据配置信息数据输出较小唤醒启动组网时间和功耗;

2、节点容量大:FastZigBee采用16bit短哋址管理方式,在轮讯机制下理论上节点容量高达65535个;

3、完全透明:FastZigBee采用透明传输,用户可随意创建私有协议格式不局限与固定第三方协议;

4、无需二次开发:FastZigBee组网协议内嵌模块中,可使用配套软件或者AT配置命令配置方便快速组网通信。

一般情况下节点数量不多时峩们可以通过配套配置工具即可快速完成配置投入使用。当节点数量到一定的程度是如果还是一个一个节点去配置,显然非常麻烦那麼可使用AT命令控制FsatZigBee模块进入自组网模式,快速实现现场动态组网

图6 主机模块自组网过程图示

图7 从机模块自组网图示

如若后期需要对现场進行更新,对于局域网内节点数量及布局进行更改亦可通过命令控制主机模块重新获取网络参数,从机模块退出之前加入的网络再次進入自组网快速完成新的网络搭建。

图8 主机重新获取网络参数

图9 从机模块退网操作

ZLG致远电子基于NXP JN516X无线微控制器开发的AW516X系列模块全线支持自組网功能AW516X系列产品大幅简化无线产品复杂的开发过程,直接提供多路用户可配置的AD、IO、PWM接口是您的产品可以更低成本快速投入市场,歡迎来电咨询!

zigbee和Z-wave都是协议联盟的名字而nRF24L01仅仅昰一种低功耗射频芯片 zigbee的优势在于zigbee协议支持大规模的无线网络,是无线网络传输极好的解决方案之一目前已有相当成熟的协议栈可以利鼡,可以进行各种无线网络应用开发 Z-wave也是一种无线网络协议但其组网规模没有zigbee协议大,且数据率稍微比zigbee低一点 nRF24L01是一种低功耗射频芯片優势在于功耗较低,数据率比前两种都高一点但由于nRF24L01仅仅是一种射频硬件,可以进行数据无线传输如果要组网,必须自己写zigbee网络协议或者对成熟的网络协议进行移植
Z-wave相对于zigbee来说,网络规模没有zigbee那么大Z-wave支持最多不超过250个节点的网络,而zigbee协议支持的节点能达到上千个洏且zigbee是动态分布式路由协议,网络动适应能比较好Z-wave是动态集中式路由协议,一旦控制节点出现问题会对网络产生很大的影响。
对于zigbee功耗方面zigbee的休眠和睡眠功耗相当低,侦听、收发数据时功耗也就20几毫安左右

ZigBee堆栈是在IEEE 802.15.4标准基础上建立的定義了协议的MAC和PHY层。ZigBee设备应该包括IEEE802.15.4(该标准定义了RF射频以及与相邻设备之间的通信)的PHY和MAC层以及ZigBee堆栈层:网络层(NWK)、应用层和安全服务提供层。圖1-1给出了这些组件的概况

每个ZigBee设备都与一个特定模板有关,可能是公共模板或私有模板这些模板定义了设备的应用环境、设备类型以忣用于设备间通信的簇。公共模板可以确保不同供应商的设备在相同应用领域中的互操作性

    设备是由模板定义的,并以应用对象(Application Objects)的形式實现(见图1-1)每个应用对象通过一个端点连接到ZigBee堆栈的余下部分,它们都是器件中可寻址的组件 图1-1 zigbe堆栈框架

从应用角度看通信的本质就是端点到端点的连接(例如,一个带开关组件的设备与带一个或多个灯组件的远端设备进行通信目的是将这些灯点亮)。

端点之间的通信是通過称之为簇的数据结构实现的这些簇是应用对象之间共享信息所需的全部属性的容器,在特殊应用中使用的簇在模板中有定义图1-1-2就是設备及其接口的一个例子:

每个接口都能接收(用于输入)或发送(用于输出)簇格式的数据。一共有二个特殊的端点即端点0和端点255。端点0用于整个ZigBee设备的配置和管理应用程序可以通过端点0与ZigBee堆栈的其它层通信,从而实现对这些层的初始化和配置附属在端点0的对象被称为ZigBee设备對象(ZD0)。端点255用于向所有端点的广播端点241到254是保留端点。

所有端点都使用应用支持子层(APS)提供的服务APS通过网络层和安全服务提供层与端点楿接,并为数据传送、安全和绑定提供服务因此能够适配不同但兼容的设备,比如带灯的开关

APS使用网络层(NWK)提供的服务。NWK负责设备到设備的通信并负责网络中设备初始化所包含的活动、消息路由和网络发现。应用层可以通过ZigBee设备对象(ZD0)对网络层参数进行配置和访问

802.15.4标准為低速率无线个人域网(LR-WPAN)定义了OSI模型开始的两层。PHY层定义了无线射频应该具备的特征它支持二种不同的射频信号,分别位于2450MHz波段和868/915MHz波段2450MHz波段射频可以提供250kbps的数据速率和16个不同的信道。868/915MHz波段中868MHz支持1个数据速率为20kbps的信道,915MHz支持10个数据速率为40kbps的信道

MAC层负责相邻设备间的单跳數据通信。它负责建立与网络的同步支持关联和去关联以及MAC层安全:它能提供二个设备之间的可靠链接。

ZigBee堆栈的不同层与802.15.4 MAC通过服务接入點(SAP)进行通信SAP是某一特定层提供的服务与上层之间的接口。

ZigBee堆栈的大多数层有两个接口:数据实体接口和管理实体接口数据实体接口的目标是向上层提供所需的常规数据服务。管理实体接口的目标是向上层提供访问内部层参数、配置和管理数据的机制

安全机制由安全服務提供层提供。然而值得注意的是系统的整体安全性是在模板级定义的,这意味着模板应该定义某一特定网络中应该实现何种类型的安铨

每一层(MAC、网络或应用层)都能被保护,为了降低存储要求它们可以分享安全钥匙。SSP是通过ZD0进行初始化和配置的要求实现高级加密标准(AES)。ZigBee规范定义了信任中心的用途信任中心是在网络中分配安全钥匙的一种令人信任的设备。

根据ZigBee堆栈规定的所有功能和支持我们很容噫推测ZigBee堆栈实现需要用到设备中的大量存储器资源。 不过ZigBee规范定义了三种类型的设备每种都有自己的功能要求:ZigBee协调器是启动和配置网絡的一种设备。协调器可以保持间接寻址用的绑定表格支持关联,同时还能设计信任中心和执行其它活动一个ZigBee网络只允许有一个ZigBee协调器。

ZigBee路由器是一种支持关联的设备能够将消息转发到其它设备。ZigBee网格或树型网络可以有多个ZigBee路由器ZigBee星型网络不支持ZigBee路由器。

ZigBee端终设备鈳以执行它的相关功能并使用ZigBee网络到达其它需要与其通信的设备。它的存储器容量要求最少然而需要特别注意的是,网络的特定架构會戏剧性地影响设备所需的资源NWK支持的网络拓扑有星型、树型和网格型。在这几种网络拓扑中星型网络对资源的要求最低。

ZigBee堆栈应该鈳以提供ZigBee规范要求的所有功能因此制造商的重点工作是开发实际的应用。为了更加容易实现如果制造商使用某种公共模板,那么可用夶多数现成的配置如果没有合适的公共模板,则可以充分利用其它模板已经做过的工作创建自己的模板

ZigBee协议栈体系包含一系列的层元件,其中有IEEE802.15.4 2003标准中的MAC层和PHY层当然也包括ZigBee组织设计的NWK层。每个层的元件有其特定的服务功能本说明描述内容涉及ZigBee协议栈的各层元件,但側重于描述最具实际和理论探讨性的APL应用层和NWK网络层图1-1为ZigBee栈结构框图。

如图2-1所示ZigBee应用层由三个部分组成,APS子层、ZDO(包含ZDO管理平台)和淛造商定义的应用对象

ZigBee中的应用框架是为驻扎在ZigBee设备中的应用对象提供活动的环境。

最多可以定义240个相对独立的应用程序对象且任何┅个对象的端点编号都是从1到240。此外还有两个附加的终端节点为了APSDE-SAP的使用:端点号0固定用于ZDO数据接口;另外一个端点255固定用于所有应用對象广播数据的数据接口功能。端点241-254保留(留给未来扩展使用)

应用profiles是一组统一的消息,消息格式和处理方法允许开发者建立一个可鉯共同使用的分布式应用程序,这些应用是利用驻扎在独立设备中的应用实体来实现的这些应用profiles允许应用程序发送命令、请求数据和处悝命令的请求。

簇标识符可用来区分不同的簇簇标识符联系着从设备流出和向设备流入的数据。在特殊的应用profiles范围内簇标识符是唯一嘚。

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

(1)初始化应用支持子层(APS),网络层(NWK)安全服务规范(SSS)。

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

ZDO描述了应用框架层中应用对象的公用接口以及控制设备和应用对象的网络功能。在终端节点0, ZDO提供了与协议栈中与低一层连接的接口如果是数据则通过APSDE-SAP,如果是控制信息则通过APSME-SAPZDO的具体描述在2.5节。

设备发现是ZigBee设备为什么能发现其他设备的过程这有两种形式的设备发现请求:IEEE地址请求和网络地址请求。IEEE地址请求昰单播到一个特殊的设备且假定网络地址已经知道网络地址请求是广播且携带一个已知的IEEE地址作为负载。

服务发现是为什么一个已知设備被其他设备发现的能力的过程服务发现通过在一个已知设备的每一个端点发送询问或通过使用一个匹配服务(广播或者单播)。服务發现方便定义和使用各种描述来概述一个设备的能力

服务发现信息在网络中也许被隐藏,在这种情况下设备提供的特殊服务便可能不茬操作发生的时候到达。

APS提供了这样的接口:在NWK层和APL层之间从ZDO到供应商的应用对象的通用服务集。这服务由两个实体实现:APS数据实体(APSDE)和APS管理实体(APSME)

(1)APSDE提供在同一个网络中的两个或者更多的应用实体之间的数据通信。通过APSDE服务接入点(APSDE-SAP);

(2)APSME提供多种服务给应用对象這些服务包含安全服务和绑定设备,并维护管理对象的数据库也就是我们常说的AIB。通过APSME服务接入点(APSME-SAP)

这一小节描述了应用层部分提供的服务规范和生产商定义的应用对象与ZigBee设备对象之间的接口。规范定义了允许应用对象传输数据的数据服务和提供绑定机制的管理服务另外,它还定义了应用支持子层的帧格式和帧类型如图2-2

这小节的目的是定义ZigBee应用支持子层的功能。该功能建立在两个基础之上一是囸确运行ZigBee网络层的驱动功能,二是制造商定义的应用对象所需要的功能

2.2.3 应用支持子层简介

应用支持子层给网络层和应用层通过ZigBee设备对象囷制造商定义的应用对象使用的一组服务提供了接口,该接口提供了ZigBee设备对象和制造商定义的应用对象使用的一组服务通过两个实体提供这些服务:数据服务和管理服务。APS数据实体(APSDE)通过与之连接的SAP即APSDE-SAP提供数据传输服务。APS管理实体(APSME)通过与之连接的SAP即APSME-SAP提供管理服务,并且維护一个管理实体数据库即APS信息库(NIB)。

APSDE向网络层提供数据服务并且为ZDO和应用对象提供服务,完成两个或多个设备之间传输应用层PDU這些设备本身必须在同一个网络。

APSDU将提供如下服务:

生成应用层的协议数据单元(APDU):APSDE将应用层协议数据单元(PDU)加上适当的协议帧头生荿应用子层的协议数据单元(PDU)

绑定:两个设备服务和需求相匹配的能力。一旦两个设备绑定了APSDE将可以把从一个绑定设备接受到的信息传送给另一个设备。

组地址过滤:提供了基于终点组成员的过滤组地址信息的能力

可靠传输:比从网络层仅仅通过端对端的传输增加叻可靠性

拒绝重复:提供传送的信息不会被重复接收

支持大批量的传输:提供两个设备间顺序传输大批量的数据的能力。

碎片:当消息的長度大于单个网络层帧时可以分割并重组消息。

流控制:APS提供避免传输消息淹没接收者的措施

阻塞控制:APS层使用“尽力”原则,提供措施避免传输消息淹没中间网络

APSME应提供管理服务支持应用程序符合堆栈。

APSME应具有基于两个设备的服务和需求向匹配的能力该服务称为綁定服务,APSME应具有能力来构建和维护绑定表来存储这些信息

另外,APSME应提供如下服务:

1 应用层信息库管理:读取与设置设备应用层信息库屬性的能力

2 安全:与其他设备通过使用安全密钥建立可信关系的能力

应用支持子层为上层实体(NHLE)与网络层提供了一个接口APS层理论上包含一个管理实体称为APS层,管理实体(APSME)这个实体通过调用子层的管理函数来提供服务接口。APSME还负责维护一个关于APS子层管理实体的数据库这是一个关于APS子层信息库(AIB)的数据库.图2-3描述了APS子层的构成和接口。

图2-3 应用支持之层参考模型

APS子层通过两个服务指针(SAPs)提供两种服务APS数据服务通过APS子层数据实体服务指针SAP(APSDE-SAP),APS管理服务通过APS则层管理实体服务指针SAP(APSME-SAP).这两个服务通过NLDE-SAP和NLME-SAP 接口 (见3.2小节)提供了NHLE和网络层之间的接ロ网络层和APS子层之间的NLME-SAP接口只支持NLME-GET 和 NLME-SET原语,其他的NLME-SAP原语只可以通过ZDO实现(见2.5小节)除了这些外部接口以外,在APSME和APSDE之间还有一个内部的接口支持APSME使用APS数据服务。

APS子层数据实体SAP(APSDE-SAP)支持在两个同等的应用实体之间传输应用协议数据单元表2-1列出了APSDE-SAP支持的原语。每一个原语將在下面的小节论述

当有一个数据PDU(ASDU)由本地NHLE向一个同等的NHLE传输时,由本地NHLE生成该原语

当APS子层实体接收到该原语时,便开始传输提供的ASDU

嘚语APSDE-DATA.confirm原语。如果找到了一个或多个绑定表入口APSDE将构建APDU,其endpoint信息从绑定表入口获得当通过网络层传输信息帧时,其destination address信息从绑定表入口获嘚如果存在多于一个绑定表入口,当接收到相应的NLDE-DATA.confirm原语按上面描述的,APSDE将构建并向下一个绑定表入口传输APDU直到没有绑定表入口剩余。如果接收到该原语设备的APSDE不支持绑定表那么APSDE将发送状态参数为NOT_SUPPORTED的APSDE-DATA.confirm原语。

如果DstAddrMode参数为0x02DstAddress参数包含16位的网络地址,并且提供参数DstEndpoint当目的網络地址用于应用响应,并且网络地址部位后面的数据传输请求保留时上层只能使用DstAddrMode为0x02.

应用程序可以通过使用参数RadiusCounter来限制在网络中传输數据帧的跳数。如果参数RadiusCounter为0x00网络层在网络中传输信息帧没有约束。如果参数RadiusCounter为非零则网络层将允许信息帧在网络中传输存在最多RadiusCounter跳。

洳果DstAddrMode参数为0x01表明为群地址,或者DstAddrMode参数为0x00并且相应的绑定表入口包含哪一个群地址,那么APSME将检查NIB(见表3.42)中的属性nwkUseMulticast值如果属性值为FALSE,那么输出帧的帧控制域中的delivery mode子域设为0b1116位的目的群地址将设置输出帧APS头中的group address域,该帧将以广播方式传输传输该帧的原语NLDE-DATA.request的DstAddr参数设置为值0xfffd,广播给所有RxOnWhenIdle=TRUE的设备如果属性nwkUseMulticast值为TRUE,那么该帧将使用网络层多点传送方式传输群地址不用放置在输出帧的APS头中。

如果传输的ASDU大于合适嘚单个帧当请求确认传输并且在TxOptions域的fragmentation permitted标志位设为1时,ASDU将按照2.2.8.3.5小节所述分裂为多个APDU如果请求传输和安全处理,那么每一个APDU都要进行处理注意不要使用分裂处理,除非相应的上层文件或者相互明确表明帧的传输允许分裂处理并且说明了块的数量和总共传输的大小。

该原語报告从本地NHLE向一个同等的NHLE传输PDU数据的结果

接收到该原语,发起设备的上层被通报请求传输的结果如果传输成功,状态参数值设置为SUCCESS否则,状态参数表明错误

该原语表明一个PDU数据向本地应用实体的APS子层传输。

该原语由APS子层产生当从本地网络层实体接收到适当地址嘚数据帧时,APS子层向上层发送该原语如果ASDU头的帧控制域表明该帧安全保护,则按照4.2.4小节的描述进行安全处理

该原语由APS子层产生,当通過NLDE-DATA.indication原语从网络层接收到适当地址的数据帧时发送给上层实体。如果APDU头的帧控制域表明该帧安全保护则按照4.2.4小节的描述进行安全处理。

接收到的帧的源地址必须通过NIB(见表2.24)中的属性nwkAddressMap映射为相应的扩展的64位IEEE地址如果能找到相应的64为IEEE地址,则APSDE发送该原语其参数SrcAddrMode设为0x02,SrcAddress参數设为相应的64位IEEE地址如果找不到相应的64位IEEE地址,APSDE将发送该原语其参数SrcAddrMode设为0x01,参数SrcAddress设为接收帧包含的16位源地址

接收到该原语,上层被通报有数据到达该设备

APS管理实体SAP(APSME-SAP)支持上层和APSME层之间传输管理命令。表2.5总结了APSME通过APSME-SAP接口支持的原语各原语的详细描述见下面小节。

这组原语定义了设备上层如何将一个绑定记录加入(提交)其本地绑定表或将绑定记录从本地绑定表中移除

只有支持绑定表或者绑定表存储器的设备支持这些原语。如果其他设备从上层接收到这些原语那么这些原语将被忽略。

该原语允许支持绑定的设备上层通过在本地绑定表中建立一个入口请求将两个设备绑定

该原语由上层产生发送给APS子层,在支持绑定表的设备上发起绑定操作

一旦被当前没有加入到网絡或不支持绑定表的设备接收到该原语,那么APSME将发送状态参数为ILLEGAL_REQUEST的APSME-BIND.confirm原语

如果支持绑定表的设备的APS子层从NHLE接收该原语,APSME将试图直接从其绑萣表中建立指定的入口如果可以建立入口,APSME将发送状态参数为SUCCESS的APSME-BIND.confirm原语如果因为其绑定表缺乏能力而无法建立入口,APSME将发送状态参数为TABLE_FULL嘚APSME-BIND.confirm原语

该原语使设备得到其上层请求绑定两个设备的结果。

接收到该原语上层就被通知其绑定请求的结果。如果绑定请求成功状态參数设置为SUCCESS。否则状态参数表明错误。

该原语允许支持绑定的设备上层通过在本地绑定表中移除一个入口请求将两个设备解除绑定

该原语有上层产生发送给APS子层,在支持绑定表的设备上发起解除绑定操作

一旦被当前没有加入到网络或不支持绑定表的设备接收到该原语,那么APSME将发送状态参数为ILLEGAL_REQUEST的APSME-UNBIND.confirm原语

该原语使设备得到其上层请求解除两个设备绑定的结果。

接收到该原语上层就被通知其解除绑定请求嘚结果。如果解除绑定请求成功状态参数设置为SUCCESS。否则状态参数表明错误。

这组原语定义了设备上层如何读取和写入AIB中的属性

该原語允许设备上层从AIB中读取属性值。

表2.10描述了该原语的参数

该原语由上层产生并发送给APSME来读取AIB中的属性。

该原语向上层报告从AIB中读取属性徝的结果

表2.11描述了该原语的参数。

接收到该原语上层得知读取AIB属性请求的结果。如果读取AIB属性请求成功状态参数设置为SUCCESS。否则状態参数表明错误。

该原语允许设备上层将属性值写入AIB

表2.12描述了该原语的参数。

该原语由上层产生并发送给APSME在AIB中写入一个属性值

该原语姠上层报告向AIB属性中写入属性值的结果。

表2.13描述了该原语的参数

接收到该原语,上层得知写入AIB属性请求的结果如果写入AIB属性请求成功,状态参数设置为SUCCESS否则,状态参数表明错误

这组原语允许上层在当前设备中通过在组表中添加和移除入口来管理每个端点的组关系。

該原语允许上层请求一个特定的组的组关系加入到特定的端点

表2.14描述了该原语的参数。

当上层要将一个特定组的关系加入一个端点时产苼该原语设置了组地址的帧将被传送给该端点。

该原语使得设备得知其将一个组添加到端点的请求结果

表2.15描述了该原语的参数。

上层接收到该原语则得知添加组请求的结果。状态参数值如上面所述

该原语允许上层请求将一个特定的组的组关系从特定的端点中移除。

表2.16描述了该原语的参数

当上层要将一个特定组的关系从一个端点中移除时产生该原语,设置了组地址的帧将不被传送给该端点

该原语使得设备得知其将一个组从端点中移除的请求结果。

表2.17描述了该原语的参数

上层接收到该原语,则得知移除组请求的结果状态参数值洳上面所述。

当上层想要将所有组中的关系从端点中移除时产生该原语因此,没有组地址的帧传送给端点

表2.18描述了该原语的参数。

当仩层想要将所有组中的关系从端点中移除时产生该原语因此,没有组地址的帧传送给端点

该原语使得设备得知其从一个端点中移除所囿组的请求结果。

表2.19描述了该原语的参数

上层接收到该原语,则得知从端点中移除所有组请求的结果状态参数值如上面所述。

这小节描述了APS层的帧格式(APDU)每一个APS帧包含如下的基本组成:

1、APS头,由帧控制和地址信息组成

2、APS有效载荷,变长包含帧类型指定的信息。

APS孓层的帧作为有序域按照指定的顺序进行描述这小节的所有帧格式都按照网络层的传输顺序进行描述,从左至右最左的位最先传输。烸个域中的长度为k位都从0(最左、最低)至k-1(最右、最高)排号域中长度小于一个字节的值都按照从最低位至最高位的顺序向网络层传輸。

APS帧格式由一个APS帧头和APS有效载荷组成APS帧头域有固定的顺序,在帧中可以不包含地址域常规的APS帧格式如表2.2所示。

帧控制域8比特长包含定义的帧类型、地址域和其它控制标志信息。帧控制域如表2.3所示的格式

帧类型子域为2比特长,可设置为表2.20所列出的值

传输模式子域2仳特长,可设置为表2.21所列出的值

如果值为0b00,帧将被发送给接收设备给定的端点

如果值为0b10,消息为广播发送在这种情况下,消息将被發送给所选择的使用的广播地址的所有设备和所有端点见3.7.5小节。

如果值为0b11将使用组地址,帧只被发送给APS头中组地址域所确定的在组中表示组成员的设备端点注意,源设备的其它端点可能是输出帧组地址的成员帧将被发送给指定组的成员,包括源设备的其它端点

安铨服务提供者(见4章)管理安全子域。

确认请求子域1比特长指定了当前的传输是否要求接收者接收到帧后发送确认帧。如果该子域设置為1确定接收的为有效帧后,接收者需要构建并向发起者发送确认帧如果该子域为0,确定接收的为有效帧后接收者不向发起者发送确認帧。

延长头存在子域为1比特长指定在帧中是否包含延长头。如果该子域设置为1那么延长头包含在帧中。否则不包含在帧中。

目的端点8比特长指定帧的最终接收端点。如果帧控制域中的传输模式子域为0b00(标准单播发送)那么帧中包含该域。

目的端点值为0x00该帧的目的地址为每个设备的ZOD。目的端点值为0x01-0xf0帧目的地址为操作的端点。目的端点值为0xff帧目的地址为除了端点0x00的所有活跃的端点。端点(0xf1-0xfe)保留

组地址域16比特长,只有当帧控制中的传输模式子域为0b11时存在该域在这种情况下,目的端点不存在如果帧中的APS头包含组地址域,幀将被发送设备中组表中由组地址域确定的所有端点

簇标识符16比特长,指定由请求中SrcAddr所指示的用于设备绑定操作的簇标识符帧控制域嘚帧类型子域指定簇标识符域是否存在。该域只用于数据帧不用于命令帧。

Profile标识符2字节长指定在传输帧的过程中,用于设备过滤消息囷帧的Profile标识符该域之用于数据帧和确认镇。

源端点域8比特长指定发起者帧的端点。源端点值为0x00表明从每个设备的ZDO发起。源端点值为0x01-0xf0表明帧从应用操作的端点发起。其它的端点(0xf1-0xfe)保留

该域8比特长,用于防止接收重复帧如2.2.8.4.2小节。每新传输一次该值加一

延长头子域包含深层子域,格式如表2.4所示

延长帧控制域长8比特,包含使用分裂的定义信息延长帧控制域的格式如表2.5所示。

分裂子域2比特长值為表2.22所列出的任意值。

块序号域为1字节长用于如下所述的分裂控制:如果分裂子域的设置表示不是分裂传输,那么子域中不包含块序号域如果分裂域设置为01,那么子域中包含块序号域并且该域表示在分裂传输中块的序号。如果分裂域设置为10那么子域中包含块序号域,并且表示当前帧传输的块序号用值0x02表示第二个分裂块,0x03表示第三个等等。

应答位域为1字节长用于2.2.8.4.3小节所描述的APS确认,表示成功传輸哪个ASDU分裂块该域只有在帧类型域表明为确认帧并且分裂子域表明是分裂传输使才出现。

帧有效载荷域为变长包含各个帧类型指定的信息。

定义了三种帧类型:数据、APS命令和确认帧每一个帧类型都在下面的小节进行讨论。

数据帧的格式如表2.6所示

数据帧中域的顺序如表2.2所示的APS帧顺序。

数据帧的APS帧头域包含帧控制、簇标识符、Profile标识符、源端点和APS计数器域数据帧是否包含目的端点和延长头域则各自按照幀控制域中的传输模式和延长头存在域的规定。

在帧控制域中帧类型应包含如表2.20所示的表示数据帧的值。源端点存在域设置为1.所有其它域根据使用数据帧的意图设置

对于输出的数据帧,数据有效载荷应包含部分或全部上层请求APS数据服务传输的字节序列对于输入数据帧,数据有效载荷域应包含APS数据服务接收到的转发给目的设备或如果协调器是其中的目的地发送给上层字节序列

APS命令帧格式如表2.7所示。

APS命囹帧中域的顺序如表2.7所示的APS帧顺序

APS命令帧的APS头域应包含帧控制和APS计数器域。如果帧控制域中的传输模式子域表明为组地址则帧中应包含组地址域。在该版本的规范中APS命令帧不能分裂,并且没有延长头域

在帧控制域中,帧类型子域应包含表明是APS命令帧的值如表2.20所示。APS命令有效载荷应根据使用APS命令帧的意图进行适当的设置

APS命令标识符域表明正在使用APS命令。

APS命令帧的APS命令有效载荷域应包含APS命令本身

確认帧格式如表2.8所示。

确认帧中域的顺序应与表2.8所示的APS帧中域顺序一致

确认帧的APS头域应包含帧控制、簇标识符、Profile标识符和APS计数器。源和目的端点都应包含在确认帧中是否包含延长头域则按照帧控制域中延长头存在子域的要求设备。

在帧控制域中帧类型子域应包含如表2020所示的表示为确认帧的值。延长头存在域应包含同样表明为确认帧的值所有其它子域则根据使用确认帧的意图进行适当的设置。

确认帧源端点的值反映了要求进行确认的帧的目的端点的值同样,确认帧目的端点的值反映了要求进行确认的帧的源端点的值

APS计数器域包含與确认的帧相一致的值。

如果延长头域存在延长的帧控制域的分裂域应包含域确认的帧一致的值。如果该帧使用分裂那么应包含块序號和请求域。如果传输的使分裂的第一个帧那么块序号应为0,否则应包含域确认的帧一致的值

这部分规范没有命令帧。APS命令帧和原语嘚相关安全问题见4.5.9小节

APS子层常量的定义与描述见表2.23.

APS信息数据库包含管理设备APS层需要的属性。AIB属性如表2.24所示AIB还包含一些管理安全服务的屬性。这些属性在4.5.10小节列出

在ZigBee网络中两个设备之间通信的关键是统一一个profile。

Profile的一个例子就是智能家居这个ZigBee profile允许一系列设备类型交换控淛消息来构造一个无线智能家居应用。这些设备被设计成很好的交换已知信息来实现这些控制如控制灯的开和关,发送一个亮度传感器測量给一个照明设备控制器或者如果已有的传感器检测到移动就发送一个警告信息

Profile另一个类型的例子是在连个ZigBee设备间定义了普通行为。為了举例说明无线网络在网络中依靠自制设备的能力来同网络连接和发现其他设备和在设备上的服务。设备和服务发现是在设备的profile中支歭的特性

ZigBee在两个分开的等级定义Profile,这两个等级是:私人的和公开的这些等级的精确定义和标准是在ZigBee联盟和在这个文件范围之外的一个管理问题。为了这个技术规范的目的对Profile标识符标准是唯一的。到最后对一个Profile标识符的应用程序,每一个Profile必须以向ZigBee联盟的一个请求开始一旦获得Profile标识符,Profile标识符允许Profile设计者有如小定义:

Profile标识符的应用的市场空间对从ZigBee联盟发行Profile标识符是一个关键的标准Profile需要覆盖一个足够寬的设备范围来允许互动性来发生在没有过度范围设备之间,且导致用来描述它们接口的一个簇标识符的不足相反的。Profile不能被定义的太狹窄导致很多被个人Profile标识符描述的设备导致Profile标识符寻址空间的浪费且在描述设备如何接口时产生互操作性。在ZigBee联盟里的政策组将就如何萣义Profile建立标准且帮助请求者制作它们的Profile标识符请求。

2.3.1.2定义设备描述和簇

Profile标识符是在ZigBee协议中主要的主要枚举量每一个唯一的Profile标识符定义叻设备描述和簇标识符的一个联合的枚举量。例如对Profile标识符“1”,存在一些被16位值描述的设备描述(就是说在每一个Profile中可能有65536个设备描述)和一些被16位值描述的簇标识符(就是说在每一个Profile中可能有65536个标识符)每一个簇标识符也支持一些被16位值描述的属性。例如每一个Profile標识符最多有65536格簇标识符且每一个这样的标识符最多又可以包含65536格属性。Profile开发者的责任就是定义和分配设备描述簇标识符和在它们已分配的Profile标识符里的属性。注意设备描述、簇标识符和属性标识符的定义必须很小心的采用以保证简单描述的有效建立和当交换消息时单一化處理

设备描述和簇标识符必须通过将被处理的已知的profile标识符来完成。在任何消息被定向到一个设备之前ZigBee协议采用已经使用服务发现确萣profile在设备和端点的支持。同样的绑定处理采用相似的服务发现,且profile发生由于作为结果的匹配提取到源地址、源端点、簇标识符、目的哋址和目的端点。

在一个单独的ZigBee设备也许包含许多的profile的维持这些profile是由在这些profile定义的各种簇标识符的子集提供的,且维持多样的设备描述在设备里使用一个分层寻址定义的能力如下:

端点:这是一个8位的域,描述了不同的应用程序这些应用都是由单个无线电来维持的。端点0x00用来寻址设备profile设备profile是每个ZigBee设备必须使用的;端点0xff用来寻址所有活动的端点(广播端点),且端点0xf1-0xfe保留结果,一个单独的物理ZigBee无线電能维持最多240个应用程序在端点0x01-0xf0.

应用程序决定关于如何造设备端点配置应用程序和哪个端点来广播(advertise)唯一的要求是每个端点都建立简單的描述符,且这些描述符对于服务发现是有效的

一旦设备被建立维护特殊的profile且同簇描述符使用一致,簇描述符使用是为在这些profile中的设備描述那么应用程序能被配置。为了达到这一点每一个应用程序被分配给个别的端点,且每一个都使用简单描述符来描述通过简单描述和在ZigBee设被profile中描述的其他服务发现机制,激活服务发现设备的绑定被维持和在补充的设备间应用程序的通知。

重要的一点是服务发现昰以profile标识符、输入簇标识符列表和输出簇标识符列表(设备描述很明显的丢失了)为基础构成的设备描述是在表示profile的类型的设备里规定必选的和可选的簇标识符维持的一个简单的协定。另外期望设备描述枚举在PDA里使用或者其他辅助的绑定设备提供设备能力的额外描述。

┅个例子ZigBee设备能被建立带有一个为了一个标准而写的单独的端点应用程序,公开的ZigBee profile标识符“XX”如果生产商想配置一个ZigBee设备支持的标准profile“XX”,且提供给卖主特殊的扩展名这些扩展名将被advertised在一个孤立的端点。维持标准的profile标识符“XX”但生产时没有卖主扩展名的设备将仅仅advertised維持单独的profile标识符“XX”,且不能使用卖主扩展名响应或者建立消息

2.3.1.6激活相反的兼容性

在先前的例子中,使用一个标准建立一个设备这個标准公布ZigBee profile标识符“XX”,它包含了标准的profile的最初版本如果ZigBee联盟将更新这个标准profile来建立新的特性和加法(additions),修订本将组合成一个新的标准profile这个新的标准profile有一个新的profile标识符(即“XY”)。有profile标识符“XX”的设备应域新设备兼容这新的设备对于profile标识符“XX”和profile标识符“XY”有新设備advertised维持。以这种方式新设备使用profile标识符“XX”与旧设备通信,然而也可以使用profile标识符“XY”与旧设备通信在相同的应用程序里。在ZigBee中的服務发现特性激活网络中的设备来确定维持级别

ZigBee设备使用描述符数据结构来描述它们自己。包含在这些描述符里的实际数据被定义在个人嘚设备描述符里有五个描述符:节点、节点电源、简单的、复杂的和使用者,如表2.25所示

包含在节点里的设备描述

节点、节点电源、简單的和使用者描述符按它们出现在各自的表中的顺序传送,也就是在表头的域第一个传送,表底的域最后传送每一个individual域按第一章规定嘚顺序传送。复杂的描述符的格式和传送如图2.15所示

图2.15复杂描述符的格式

包含在复杂标识符里的每一个域的格式如图2.16所示。

域计数器域长喥为1字节且规定包含在描述符里的域的数值,每一个格式描述如图

压缩的XML标志域长度为1字节,且规定当前域的XML标志复杂标识符的压縮XML标志如表2.37所示。

域数据域是可变长且包含当前域的信息规定如压缩XML标志域表明的。

在ZDO管理实体设备中询问标识符信息且使用ZigBee设备标識符请求原语的服务发现寻址到端点0。发现操作的详细描述见2.4.2.1节信息通过ZigBee设备profile指示(indication)原语返回。

节点、节点电源、复杂和使用者标识苻应用于完整节点简单标识符必须为了每个被定义的端点在节点里而被规定。如果一个节点包含多个子组这些将在孤立的端点上,且對于这些特殊的描述符通过在ZigBee设备profile里包含的相关的端点数来读取

一个ZigBee节点包含分开的子组的数,每一个都有它自己的简单标识符对于發现机制是在ZigBee设备profile发现部分描述。

节点描述符包含ZigBee节点能力的信息且对于每个节点都是必选的。在一个节点里仅仅有一个节点描述符

節点描述符的域如表2.26所示,是按照传送的顺序

表2.26节点描述符域

节点的逻辑类型域是3个bit长,且规定ZigBee节点的设备类型逻辑类型域设置为表2.27嘚一个非保留值。

表2.27逻辑类型域的值

节点描述符的有效复杂描述符域是1bit长且规定一个复杂描述符在这个设备上是否有效。如果这个域设置为1复杂描述符有效;如果这个域设置为0,复杂描述符无效

节点描述符的有效使用者描述符域是1bit长,且规定一个使用描述符在这个设備上是否有效如果这个域设置为1,使用者描述符有效;如果这个域设置为0使用者描述符无效。

节点描述符的APS标志域是3bit长且规定节点嘚应用支持子层的能力。

节点描述符的频率组合域是5bit长且规定节点使用的IEEE802.15.4支持的频率组合。对每一个IEEE802.15.4支持的频率组合频率组合域都有楿应位,如表2.28所示使用哪个频率组合相应位设置为1,其他位设置为0

表2.28频率组合域的值

MAC层能力标志域长度为8bit,且规定了节点的能力是IEEE802.15.4MAC孓层所要求的。MAC层能力标志域格式如图2.27所示

图2.17MAC层能力标志域格式

可选的PAN协调器子域长度是1位,且如果这个节点有成为PAN协调器的能力该域设置为1。否则设置为0

设备类型子域1位长,且如果这个节点是一个全功能设备(FFD)该域设置为1。否则设置为0表明是一个简化功能设備(RFD)。

电源源子域长度是1位且如果当前的电源源是主电源,该域设置为1否则该域设置为0。这个信息是从节点电源(power)描述符的节点當前电源源域获得的

空闲时接收机开子域长度是1位,且如果在空闲周期时设备使能它的接收机保存电源该域设置为1。否则该域设置为0(参见2.3.2.5节)

安全能力子域长度是1位且如果设备有使用【B1】规定的安全组使发送和接收帧安全的能力,该域设置为1否则该域设置为0。

分配地址子域长度是1位且总设置为1。

节点描述符生产商代码域长度是16位且规定了一个由ZigBee联盟分配的生产商代码,与设备相关

节点描述苻的最大缓冲域值长度8位,有效范围是0x00-0x7f且规定了节点的应用支持子层(ASDU)的最大值,是以字节的方式在分裂或者重新组合之前,这是偠传输到应用层或者从应用层过来的数据或者命令的最大值

这个域为了网络管理被作为高水平表示使用。

节点描述符的最大转换值长度昰16位有效值范围是0xffff,且以字节形式规定了转换到这个节点或从这个节点转换的最大值在一个单个消息转换里这个值能超过节点最大缓沖值域的值(参见2.3.2.4.8)。

节点描述符的服务Mask域长度是16位位设置表示这个节点的系统服务能力。系统里的其他节点使用这个使特殊系统服务發现便利位设置如表2.29定义。

主要绑定表高速缓冲存储器

备份绑定表高速缓冲存储器

主要发现高速缓冲存储器

备份发现高速缓冲存储器

节點电源描述符给节点的电源状态一个动态表示且对每一个节点都是必须有的。在一个节点里就只有一个节点电源描述符

节点电源描述域如表2.30所示,按照传输的顺序

表2.30节点电源描述域

节点电源描述符的当前电源模式域长4位,且规定了节点的当前休眠/省电模式当前节点模式域设置为表2.31所列的一个非保留值。

表2.31当前电源模式域的值

接收机与节点描述符的空闲时接收机开子域同步

接收机如节点电源描述符定義的那样周期性的开始

当有激励是接收机开举例来说是使用者按下按钮

节点描述符的有效电源源域长度4位,且规定了在这个节点的有效電源源对于每个节点支持的电源源,有效的电源源域的相应的位如表2.32所列设置为1,其他位设置为0

表2.32有效电源源域的值

节点描述符的當前电源源域长度4位,且规定节点使用的当前电源源对于所选择当前电源源,当前电源源域相应的位如表2.23所列设置为1.其他位设置为0

表2.23當前电源源域的值

节点描述符的当前电源源级别域长度4位,且规定了电源源负荷的级别当前电源源域设置成表2.34所列的非保留值之一。

表2.34當前电源源级别域的值

危急的(Critical)没有电?

简单描述符包含节点里的每一个端点的特定信息简单描述符在节点里存在的每一个端点是必选的。

简单描述符域如表2.35所示是按照传输的顺序。这个描述符在整个空间进行传输简单描述符的全部长度应小于等于maxCommandSize

表2.35简单描述苻域

16*i(i是应用输入簇计数器的值)

16*o(o是应用输出簇计器的值)

简单描述符的端点域长度是8位且规定在这个描述相关的节点里的端点。应鼡只用端点1-240

简单描述符的应用profile标识符域长度是16位,且规定在这个端点上支持的profileProfile标识符从ZigBee联盟处获得。

简单描述符的应用设备标识符域長度是16位且规定在这个端点上支持的设备描述符。设备描述符从ZigBee联盟处获得

简单描述符的应用设备版本域长度是4位,且规定在这个端點上支持的设备描述符的版本设备描述符的版本设置为表2.36所列的非保留值之一。

表2.36应用设备版本域的值

简单描述符的应用输入簇计数器域长度是8位且规定在这个端点上支持的输入簇数,将出现在应用输入簇列表域如果这个域的是0,应用输入列表域不被包含

简单描述苻的应用输入簇列表长度为16*i,i是应用输入簇计数器域的值且规定了在这个端点上支持的输入列表,在绑定程序期间使用

应用输入簇列表仅仅在输入簇计数器域的值大于0是才有。

简单描述符的应用输出簇计数器域长度是8位且规定在这个端点上支持的输出簇数,将出现在應用输出簇列表域如果这个域的是0,应用输出列表域不被包含

简单描述符的应用输出簇列表长度为16*o,o是应用输出簇计数器域的值且規定了在这个端点上支持的输出列表,在绑定程序期间使用

应用输出簇列表仅仅在输出簇计数器域的值大于0是才有。

复杂描述包含在节點里的每一个复杂描述符的扩展信息复杂描述的使用是可选的。

由于在这个描述符里的扩展的和复杂的特性它使用压缩的XML标志以XML格式存在。描述符的每个域如表2.37所示可以以任何顺序传输。作为这个标识符需要在整个空间传输复杂描述符的全部长度应小于等于maxCommandSize

表2.37复雜描述符域

语言和字符设置域是3字节长且规定了在复杂描述符里的字符字节串使用的语言和字符设置。语言和字符设置域的格式如图2.18所礻

图2.18语言和字符设置域格式

ISO639-1语言代码域是2字节长,且规定了为字符串使用的语言如【B5】定义。

字符设置标识符子域长度是1字节且规萣了在字符设置里的字符使用的编码。这个子域设置为表2.38所列的非保留值之一

表2.38字符设置标识符子域的值

ISO646,ASCII字符设置每一个特性都适匼一个字节的最没有意义的7 bit,带有最有意义bit设置为0(见【B6】)??

如果语言和字符设置都没有规定语言默认为英语(语言代码=“EN”)且字符設置为ISO 646。

生产商名称域是可变长且包含字符串表明设备生产商的名称。

模型名称域是可变长且包含字符串表明设备生产商模型的名称。

连续数域是可变长且包含字符串表明设备生产商连续数。

设备URL是可变长且包含字符串表明URL,通过它更多的关于设备的信息可以获得

图标域是可变长,且包含一个字节串这个字节串携带一个图标数据,能表明在计算机、网关或者PDA上的设备图标的格式是32*32像素的PNG图像。

图标URL域是可变长且包含字符串表明URL,通过它可以获得设备的图标

使用者标识符包含允许使用者使用user-friendly字符标识符来识别设备的信息,這些字符串如“Bedroom TV”或者“Stairs light”使用者标识符的使用是可选的。这个标识符包括一个单独的域使用ASCII字符设置,且包含一个16个字符的最大值

使用者标识符域如表2.39所示,按照它们传输的顺序

表2.39使用者标识符域

应用程序框架能通过APS子层的数据服务过滤到达的帧,且仅存在对在烸个活动的(active)端点上执行的应用有影响的帧

如果应用程序框架为一个不活动的端点接收一个帧,丢弃该帧否则,应用程序框架应确萣是否规定profile标识符与在规定的端点上执行的profile标识相匹配如果profile标识符不匹配,那么应用程序框架拒绝该帧反之,应用程序框架应传递接收到的帧的载荷到执行在规定端点的应用

本小节介绍在ZigBee应用支持子层和网络层顶端执行ZigBee设备对性应用需要的概念、结构和原语。

ZDO是使用網络和应用支持层原语执行ZigBee终端设备、路由器和协调器的一个应用

ZDOProfile使用簇来描述它的原语。ZigBee设备Profile簇不使用属性且同在消息传输协议里嘚消息类似。在ZigBee设备中使用簇标识符来列举在ZDO中使用的消息

ZDO也使用配置属性。这些属性不是任何簇的元素在ZDO中的配置属性是由应用或鍺是栈Profile设置的配置参数。虽然配置属性和ZigBee设备Profile都由ZDO来使用但是配置属性和ZigBee设备Profile无关。

2.5.2设备对象描述

ZDO是应用解决方案驻扎在ZigBee协议栈中的APL層和APS层之上,如图1.1所示

(1)初始化应用支持子层(APS),网络层(NWK)安全服务提供(SSP)和任何其他ZigBee设备层而不是驻扎在端点1-240的终端应用。

(2)从终端应用中集合配置信息来确定和执行下节描述的功能

最初的发现高速缓冲器设备是通过设备的配置和在节点描述符里的advertisement来指萣的。最初的发现高速缓冲器设备操作作为一个状态机这个状态机是关于客户机希望使用最初的发现高速缓冲器。如下的状态和操作洳图2.99描述的,应被最初的发现高速缓冲器设备支持:

客户使用单播发现高速缓存器请求这个请求是定向到Discovery Cache设备,这个设备白含它愿意存儲的发现高速缓存器信息的大小Discovery Cache Device将响应,参数是SUCCESS或者TABLE_FULL

当客户从Discovery Cache设备接收到SUCCESS状态,这个状态就从先前的Discovery Cache请求处到达客户现在必须使用節点描述符(NodeDescriptor)存储请求、电源描述符存储请求、活动的端点存储请求和简单描述符存储请求上载它的发现信息来激活Primary Discovery Cache设备为了它自己的利益来充分的响应。

客户(或任何其他设备)也许请求不被注册移动节点高速缓存器(Remove Node Cache)请求移动设备从Primary Discovery Cache设备。

Primary Discovery Cache设备响应设备和它支持嘚所有注册的客户的服务发现请求Find Node Cache请求被想定位设备和为了已给设备的服务发现请求的客户使用。注意如果发现信息被设备本身保持設备也必须响应来确认它自己作为发现信息的储藏。见图2.99为状态机处理Primary Discovery Cache设备的详细信息

在一个单独的PAN里,这个功能将支持设备和服务发現另外,对于ZigBee协调器、ZigBee路由器和ZigBee终端设备类型这个功能将做如下处理:

(2)对于被:Config_Node_Power,设备和服务发现指示想要休眠的ZigBee终端设备将管理被ZigBee終端设备选择的Primary Discovery Cache设备上的网络地址、IEEE地址、活动节点、简单描述符、节点描述符和电源描述符的上载和存储来允许在这些休眠设备上的设備和服务发现操作。

(3)对于被设计作为Primary Discovery Cache Device的ZigBee协调器和ZigBee路由器这个功能将代表休眠ZigBee终端设备响应发现请求,这些终端设备已经注册和上载叻它们的发现信息

(4)对于所有的ZigBee设备、设备和服务发现将支持设备和从其他设备过过来的服务发现请求,且允许从其他本地的应用对潒过来的请求的产生注意设备和服务发现服务是由Primary Discovery Cache设备代表其他ZigBee终端设备提供的。万一Primary Discovery Cache Device是请求的目标那么NWKAddrOfInterest或者Interest域的设备将被请求和/或響应填满来区分从设备来的请求的目标,这个设备是发现的目标将支持下边的发现特性:

——以ZigBee协调器或者路由器IEEE地址的一个单播询问為基础,被请求设备的IEEE地址随机的,所有联合设备的网络地址将被返回

——以ZigBee终端设备的IEEE地址的一个单播询问为基础,被请求的设备嘚IEEE地址被返回

——以ZigBee协调器或者带有一个已经提供的IEEE地址的路由器网络地址的一个多播询问(任何广播地址类型)为基础,被请求的设備的网络地址随机的,所有联合设备的网络地址将被返回

——以带有已经提供的IEEE地址的ZigBee终端设备的网络地址的广播查询(任何广播地址类型)为基础。被请求设备的网络地址被返回响应的设备将使用APS层为单播响应已知的服务来广播查询。

(2)服务发现:以如下的输入為基础相应的响应被提供:

——网络层地址加上(plus)活动的端点查询类型——指定设备将返回在那个设备里的所有应用的端点数。

——網络层地址或广播地址(任何广播地址类型)加上服务匹配这些匹配包括Profile ID和随意的,输入和输出簇——指定的设备匹配带有所有活动的端点的Profile ID来确定一个匹配如果没有输入或者输出簇被规定,匹配请求的端点被返回如果那些匹配的输入和/或输出簇在请求里被提供,且任何匹配在带有提供匹配的设备上的端点列表的响应里被提供响应的设备应该使用APS层已知的服务,这服务是为了单播响应到广播查询的万一应用profiles想列举输入簇和它们的带有相同簇标识符的响应输出簇,应用profile将仅仅在为服务发现目的的简单标识符里列出输入簇在这些情況下它将被采用,应用profile提供关于输入和响应输出的簇标识符的使用的细节

——网络层地址加上节点标识符或标识符查询类型——指定的哋址将为设备返回联合端点的简单标识符。

——随意的网络层地址加上复杂或者使用者标识符查询类型——如果支持,指定的地址将为設备返回复杂或者使用者标识符

这个功能确定是否使能安全,如果使能将做如下处理:

安全管理功能按安全服务规范执行。安全管理甴ZDO发出APSME原语来执行步骤如下:

与信托中心通信(假定是ZigBee协调器)来获得Master Key,在设备和信托中心之间(如果设备是ZigBee协调器或者信托中心的Master Key被重噺分配这一步忽略)这一步使用传输钥匙原语。

从信托中心获得网络钥匙使用安全的通信与信托中心这一步使用APSME-TRANSPORT-KEY原语。

使用APSMEDEVICE-UPDATE通知任何┅个设备的信托中心连接网络这个功能只有设备是ZigBee路由器时才执行。

允许设备使用APSMEREQUEST-KEY原语从信托中心获得钥匙

允许信托中心从网络中移動设备,使用APSME-REMOVE-DEVICE原语

这个功能将执行ZigBee协调器、ZigBee路由器或者ZigBee终端设备逻辑设备类型根据已确定的配置设置,通过程序应用或者在安装期间洳果设备类型是一个ZigBee协调器或者Zigbee终端设备,这个功能将提供选择一个存在的PAN来加入和如果网络通信断开执行允许设备重新加入的程序的能仂如果设备类型是ZigBee协调器或者是Zigbee路由器,这个功能将提供为一个新的PAN建立选择一个未用的信道注意在没有一个设备是预先指定为协调器的情况下,配置一个网络是可能的这时,第一个全功能设备(FFD)被确定为ZigBee协调器的角色网络管理做如下处理:

允许为网络信道列表嘚规定扫描程序。缺省值是规定在已选择的操作联合的所有信道的使用

管理网络扫描程序来确定邻居网络和它们协调器和路由器的一致性。

允许一个信道的选择来启动一个PAN(ZigBee协调器)或者一个存在的PAN的选择来连接(ZigBee路由器或者Zigbee终端设备)

支持孤点和扩展的程序来重新连接网络,包括支持可携带的内部PAN

也许支持直接连接。对于ZigBee协调器和ZigBee路由器直接连接的一个本地版本被支持来使能设备通过孤点或者重噺连接流程来加入网络。

绑定管理执行下列任务:

为绑定表建立一个资源值这个资源值是通过程序应用或通过一个在安装期间定义的配置参数确定的。

从APS绑定表增加或者减少实体处理绑定请求

从外部应用支持绑定和解绑定命令,如那些是主机在一个PDA上来支持协助绑定綁定和解绑定命令将通过ZigBee设备Profile(见2.4节)被支持。

对于ZigBee协调器支持终端设备绑定,这绑定允许以按钮按压或其他手动菜单为基础的绑定

對于Zigbee协调器和路由器,节点管理功能执行以下步骤:

允许遥控操作命令来执行网络发现

提供遥控操作命令来重新获得路由表

提供遥控操作命令来重新获得绑定表

提供一个遥控操作命令来使一个设备离开网络或者是命令另一个设备离开网络

提供一个遥控操作命令来重新获得LQI昰为这个遥远的设备的邻居获得的。

允许源设备向一个初始化绑定表高速缓冲寄存器登记的能力来保持他们自己绑定表

允许配置工具把一個设备换成另一个设备这个设备是在所有的绑定表入口中,这个入口涉及到他

允许初始化绑定表高速缓冲寄存器备份和恢复个人绑定叺口或者入口绑定表或者保持他们自己绑定表的源设备的表

提供一个遥控操作命令来允许或者禁止连接一个特殊的路由器;或者通常允许戓者禁止通过信托中心连接

2.5.4系统使用方法

标题在协议版本发布的图表的同一页。

2.5.5对象定义和行为

ZigBee设备对象包括五个对象:

处理网络行为洳网络发现,断开/加入网络重新设置一个网络连接和建立一个网络

处理终端设备绑定,绑定和解绑行为

处理安全服务如钥匙装载,钥匙建立钥匙传输和认证

2.5.5.2可选的和强制的对象和属性

作为强制的列出的对象将在所有ZigBee设备中存在。然而对于确定的ZigBee逻辑类型,对于所有ZigBee設备作为可选的列出的对象对于特殊的逻辑设备类型也许是强制的例如,在网络管理对象中的NLMENETWORK-FORMATION.request原语是强制对象且是可选属性尽管对于Zigbee協调器逻辑设备类型属性是必需的。每一个设备类型部分的介绍将详细说明逻辑设备类型的对象和属性支持的必要条件

2.5.5.3安全钥匙使用方法

ZigBee设备对象也许为了由ZigBee设备Profile原语建立的数据包使用安全。这些在端点使用APSDE的应用数据包将使用网络钥匙不使用个人连接钥匙。

2.5.5.4公共的和私人的方法

能够到达设备的任何端点应用的方法叫做公共方法私人方法是仅仅可以到达端点0的设备应用,且不是到达终端设备(运行在端点1到240)

在执行中应该安排供应(Provision)来提供期望网络配置参数(:Config_NWK_Mode_and_Params)的一个单独复制到ZigBee设备对象的网络对象另外,安排供应来提供配置元素来描述节点描述符电源描述符,简单描述符为每一个活动的端点和应用加上活动端点的列举。?这些配置将包括在:Config_Node_Descriptor,:Config_Power_Descriptor

应该安排供應来确保从端点0到240的终端设备的APS原语命令返回合适的错误状态值,是在ZigBee设备对象的初始化状态完成之前且转换正常的操作状态。

ZigBee协调器將响应任何的设备发现或者服务发现操作是由它自己设备请求的,且如果他被指定作为一个Primary Discovery Cache设备也将代表注册的设备响应,这些设备巳经存储了发现信息设备应用将确保绑定入口数不超过:Config_Max_Bind属性。

ZigBee协调器将支持NLME-LEAVE.request和NLMELEAVE.indication原语原语使用:Config_NWK_Leave_removeChildren属性,在这个属性里适当允许在应用控制丅的联合设备的移除导致移除的条件也许包括缺少安全信任,设备的移除是通过一个有特权的应用或者是例外的发现

ZigBee协调器应包含当湔联合的设备的清单,且方便了孤点扫描的支持并且重新连接处理使能先前的联合设备来重新连接到网络。ZigBee协调器也许为设备维持直接包含在网络中的能力是通过NLME-DIRECTJOIN.request和NLME-DIRECT-JOIN.confirm原语。这个特性应允许ZigBee IEEE 地址清单被提供给Zigbee协调器因为那些地址被包含作为先前的联合设备。对于由这些哋址的ZigBee设备通过孤点或者重新连接程序而不是联合的直接的连接到网络是可能的

ZigBee协调器将处理从其它ZigBee设备来的Device_annce信息。一旦接收到Device_annceZigBee协调器将检查所有的内部表,这些内部表是为PAN中设备维持64位IEEE地址为了与在Device_annce信息中提供的地址相匹配如果匹配存在,ZigBee协调器将根据匹配的64位IEEE地址更新它的nwkAddressMapNIB属性来反映包含在Device_annce中的更新的16位网络地址

当网络中安全使能时,ZigBee协调器将行使一个信托中心的功能

信托中心被网络中的新設备通知,是通过APSMEDEVICE-UPDATE .indication原语信托中心也能选择允许设备保持在网络中或者是强迫他离开网络,是通过APSMEREMOVE-

DEVICE.request原语这个选择是使用网络控制原则制萣的,是在这个协议范围外的

信托中心将周期性的更新网络钥匙,是根据一个原则这个原则的详细内容在本协议范围外。网络中的所囿设备将被更新新的网络钥匙是通过APSME-TRANSPORT-KEY.request原语。

request原语属性来扫描特殊的信道

描述,而且也许包含扩展的PAN ID

网络层确认原语通常都包括一个參数,这个参数记录回答请求原语的状态网络层状态参数值如表3.1所示。

从高层发出的原语无效或者超出范围

考虑到网络层目前的状态高层发送的请求原语无效或者不能执行

NLME-LEAVE.request原语失败,因为产生原语的设备地址不在邻居表中的参数列表中

设备确认从网络出发失败

因为帧计數器达到最大值所以输出帧安全处理失败

输出帧尝试安全处理且失败,因为对于处理没有有效的钥匙

输出帧尝试安全处理且失败因为咹全设计产生一个错误的输出

由于缺少路由表或者发现路由表能力,尝试发现路由失败

尝试发现路由失败由于缺少路由能力

由于没有足夠的空间在BTT,尝试发送一个广播帧或成员模式多点传送失败

一个非成员多点传送帧丢弃未决路由发现

ZigBee网络层的主要功能就是提供一些必要嘚函数确保ZIgBee的MAC层(IEEE 802.15.4-2003)正常工作,并且为应用层提供合适的服务接口为了向应用层提供其接口,网络层提供了两个必须的功能服务实体它们分别为数据服务实体和管理服务实体。网络层数据实体(NLDE)通过网络层数据服务实体服务接入点(NLDE-SAP)提供数据传输服务网络层管悝实体(NLME)通过网络层管理实体服务接入点(NLME-SAP)提供网络管理服务。网络层管理实体利用网络层数据实体完成一些网络的管理工作并且,网络层管理实体完成对网络信息库(NIB)的维护和管理下面分别对它们的功能进行介绍。

网络层数据实体为数据提供服务在连个或者哽多的设备之间传送数据时,将按照应用协议数据单元(APDU)的格式进行传送并且这些设备必须在同一个网络中,即在同一个内部个域网Φ

网络层数据实体提供如下服务:

(1) 生成网络层协议数据单元(NPDU):网络层数据实体通过增加一个适当的协议头,从应用支持层协议數据单元中生成网络层的协议数据单元

(2) 指定拓扑传输路由,网络层数据实体能够发送一个网络层的协议数据单元到一个合适的设备该设备可能是最终目的通信设备,也可能是在通信链路中的一个中间通信设备

(3) 安全:确保通信的真实性和机密性。

网络层管理实體提供网络管理服务允许应用与堆栈相互作用。网络层管理实体应该提供如下服务:

(1) 配置一个新的设备:为保证设备正常工作的需偠设备应具有足够的堆栈,以满足配置的需要配置选项包括对一个ZigBee协调器或者连接一个现有网络设备的初始化的操作。

(2) 初始化一個网络:使之具有建立一个新网络的能力

(3) 连接和断开网络。具有连接或者断开一个网络的能力以及为建立一个ZigBee协调器或者路由器,具有要求设备同网络断开的能力

(4) 寻址:ZigBee协调器和路由器具有为新加入网络的设备分配地址的能力。

(5) 邻居设备发现:具有发现、记录和汇报有关一跳邻居设备信息的能力

(6) 路由发现:具有发现和记录有效地传送信息的网络路由的能力。

(7) 接收控制:具有控淛设备接收状态的能力即控制接收机什么时间接收、接收时间的长短,以保证MAC层的同步或正正常接收等

3.3 网络层服务协议

图3.1给出了网络層各组成部分和接口。

网络层通过两种服务接入点提供响应的两种服务它们分别是网络层数据服务和网络层管理服务。网络层数据服务通过网络层数据实体服务接入点接入网络层管理服务通过网络层管理实体服务接入点接入。这两种服务通过MCPS-SAP和MLME-SPA接口为MAC层提供接口除此の外,在NLME和NLDE间还有一个接口使得NLME可以使用网络层数据服务

3.3.1网络层数据服务

网络层数据实体服务接入点支持对等应用实体之间的应用协议數据单元的传输。表3.2列出了网络层数据实体服务接入点支持的原语下面小节就是对这些原语的讨论。

该原语请求从本地应用支持层实体箌单个或者多个对等的应用支持层实体的协议数据单元传输

该服务原语的语法如下所示:

当一个NSDU要传送到一个对等的应用支持层实体时,本地应用支持层实体就会生成该原语

当一个不与网络连接的设备接收到该原语时,该设备网络层将发出一个状态参数为INVALID-REQUEST的NLDE-DATA.confirm原语

网络層数据实体在接受到该原语时,为传送NSDU包需要构造一个NPDU包。在处理过程中如果网络层数据实体在发送NSDU包之前,先发送了NLDE-DATA.cindirm原语则将发起所有的后续处理。在构造新的NPDU过程中网络层头的目的地址域设置为参数DstAddr所提供的值,源地址域设置为MAC PIB中属性macShortAddress的值网络层帧头帧控制域中的路由发现域设置为DiscoverRoute参数的值。如果提供的Radius参数不为0那么它将设置在网络层帧头的radius域,如果值为0那么网络层帧头中的radius域设置NWK IB中nwkMaxDepth属性值的二倍。网络层将会生成一个如3.7.2.1小节所描述的系列号这个序列号可以插入到网络层帧头的sequence number域。帧头的多点发送标志位将根据DstAddrMode的值设置如果DstAddrMode的参数值为0x01,网络层帧头将包含multicast

一旦构造好NSDU包如果是单播,将按照3.7.3.3小节所描述的过程为NSDU包确定传输路由;如果是广播则参见3.7.4尛节;如果是多点通信,则参见3.7.5.2小节当确定了NSDU包传输路由后,通过MCPS-DATA.request原语来发送NSDU包在该原语中参数SrcAddrMode 和 DstAddrMode都设置为0x02,表明适应16位的网络地址参数SrcPANId PIB中的macShortAddr值。DstAddr参数值为由路由程序所决定的下一跳地址当TxOptions与0x01相与时,该参数值应为非零值表示发送需要确认。在接收到MCPS-DATA.confirm原语时网絡层数据试题发送NLDE-DATA.confirm原语,该原语中的参数状态为MAC层所接收到的状态

如果在网络层信息数据库(NIB)中所确定的网络安全级别标准为一个非零值,并且SecurityEnable值为TRUE则在帧发送之前,按照4.4小节所描述对帧进行安全处理否则,网络层不对该帧进行安全处理如果安全处理已经进行了,但是由于某些原因而失败了那么,将丢弃该帧并且网络层数据实体将发送NLDE-DATA.confirm原语,该原语的状态参数为安全方案所返回的值

该原语提供了从本地应用支持层实体到一个对等应用支持成实体传送NSDU包请求原语的结果。

该原语的语法如下所示:

该原语为本地网络层数据实体對接收到NLDE-DATA.request原语而产生的响应

Status域将反映相应的请求结果,详见3.3.1.2.3小节

接收到该原语,开始设备的APS子层将被通知传输请求的结果如果传输荿功了,那么status参数为SUCCESS否则,status参数表明传输的错误

该原语表示一个NSDU包从网络层到本地应用支持层实体的传送。

当本地MAC层实体接收到一个適当地址的数据帧时就生成该原语,并发送给应用支持层

当应用支持层接收到该原语时,则被通知一个数据帧到达设备就可得到设備所接收的数据。

网络层管理实体服务接入点为其上层和网络层管理实体之间传送管理命令提供接口表3.6列出了NLME所支持的NLME-SPA原语,下面的小節详细介绍了这些原语

网络层管理实体服务接入点支持运行网络的发现。采用NLME-NETWORK-DISCOVERY原语来发现网络

该原语支持网络层上层应用该原语来发現在POS范围内正在运行的网络。

该原语由ZigBee设备网络层上层产生发送给它的网络层管理实体,请求网络层发现当前在POS正在运行的网络

网络層在接收到该原语后,将通过检查ScanChannels参数确定的信道以及ScanDuration参数所确定的扫描时间发现在POS中正在运行的网络。通过MLME-SCAN.request原语进行扫描

该原语返囙网络发现操作的结果。

表3.9给出了NetworkDescriptor参数中网络描述符所包含的具体内容

当NLME-NETWORK-DISCOVERY.request原语执行完成后,网络层管理实体生成该原语并发送给网络仩层。

其上层接收到该原语后就可得到网络的搜索结果。

本小节原语定义了一个设备的应用层如何初始化使其自身成为一个新的ZigBee网络協调器。

该原语允许高层使用该原语请求设备发起一个新的ZigBee网络并将其自身作为ZigBee协调器。

该原语由具有ZigBee协调器能力设备的应用层生成發送给它的网络层管理实体,请求初始化设备使之成为一个新网络的协调器。

如果设备被初始化为ZigBee协调器网络层管理实体请求MAC层首先執行一个能量检测扫描,然后在所指定的信道上执行主动扫描为了执行扫描任务,网络层管理实体将向MAC发送ScanType参数设置为能量检测扫描的MLME-SCAN.request原语;然后再发送ScanType为主动扫描的MLME-SCAN.request原语。在主动扫描完成以后网络层管理实体从MAC层接收到MLME-SCAN.confirm原语,并且选择一个合适的信道网络层将选擇一个个域网标识符,并且确保其不会与所选择信道的现有网络个域网标识符参数产生冲突一旦合适的信道和个域网标识符PANId确定后,网絡层管理实体将选择0x0000作为16位的短MAC地址并且告知MAC层。为了实现该目的网络层管理实体将向MAC层大宋MLME-SET.request原语来设置MAC

如果在上层的请求中只提供叻一个信道,那么网络层管理实体在开始形成网络前不需要进行能量检测扫描主动扫描仍需要进行,确保所选择的个域网标识符不与现囿网络中的标识符发生冲突

该原语返回在网络中初始化一个ZigBee协调器请求的执行结果。

接收到该原语上层就可得知初始化一个ZigBee协调器的執行结果。如果成功执行了请求原语则状态参数设置为SUCCESS。否则状态参数为错误状态。

3.3.4允许设备连接

该原语定义了ZigBee协调器或路由器的上層如何设置其设备允许其他设备同其网络连接

该原语允许ZigBee协调其或路由器上层设定其MAC层连接许可标志,在一定期间内允许其他设备同網络连接。

当ZigBee协调器或路由器上层希望其他设备加入或阻止加入其网络时将生成该原语,并传送给网络层管理实体

Confirm原语,将其状态值設置为从MAC层所收到的状态

Confirm原语,将其状态值设置为从MAC层所收到的状态

该原语向ZigBee协调器或路由器的上层返回允许设备连接网络请求原语嘚执行结果。

该原语由ZigBee协调器或路由器初始化的网络管理实体生成并且向上层发送作为对NLME-PERMIT-JOINING.request原语的确认。其状态参数既可以为MAC层所收到的狀态也可以INVALID-REQUEST的出错代码。这些状态值的原因详见3.3.4.1小节

当接收到该原语后,所初始化的设备上层即可得知允许其他设备连接网络请求原語的执行结果

3.3.5路由器初始化

该原语允许一个新加入网络的ZigBee路由器开始参加ZigBee路由器的活动,包括数据帧的路由、路由发现、接收其他设备加入网络的请求

该原语允许一个ZigBee路由器的上层发起路由。

该原语由新设备的网络层管理实体上层生成并发出给网络管理实体要求将设備初始化为ZigBee路由器。

当网络层管理实体收到相应的MLME-START.confirm原语将向上层发送NLME-START-ROUTER.confirm原语,其中其状态值与MLME-START.confirm原语中的状态值一样只有当MLME-START.confirm原语返回的状態值为SUCCESS时,设备开始作为ZigBee路由器开始工作包括数据帧的路由、路由发现、接收设备加入网络的请求。否则设备不允许做这些工作。

该原语返回执行ZigBee;路由器配置初始化的结果

该原语由网络层管理实体生成,在接收到NLME-START-ROUTER.request原语时向上层发送该原语作为响应。该原语返回的參数值为INVALID_REQUEST或者为MLME-START.confirm所返回的任何状态值3.3.5.1.3小节描

我要回帖

更多关于 x.25协议采用的是 的文章

 

随机推荐