ZigBee的应用层.docx

上传人:b****5 文档编号:11920064 上传时间:2023-04-16 格式:DOCX 页数:35 大小:480.88KB
下载 相关 举报
ZigBee的应用层.docx_第1页
第1页 / 共35页
ZigBee的应用层.docx_第2页
第2页 / 共35页
ZigBee的应用层.docx_第3页
第3页 / 共35页
ZigBee的应用层.docx_第4页
第4页 / 共35页
ZigBee的应用层.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

ZigBee的应用层.docx

《ZigBee的应用层.docx》由会员分享,可在线阅读,更多相关《ZigBee的应用层.docx(35页珍藏版)》请在冰豆网上搜索。

ZigBee的应用层.docx

ZigBee的应用层

 

ZigBee的应用层协议格式

本篇内容

●ZigBee协议应用层的概述;

●主讲应用层(APL)下的应用支持子层(APS)规范;

1、概述

ZigeBee协议栈结构是在IEEE802.15.4标准基础上建立的,而该标准定义了协议的MAC和PHY层。

ZigBee设备应该包括IEEE802.15.4的PHY层和MAC层、以及ZigBee堆栈层:

网络层(NWK)、应用(APL)层和安全服务管理。

图1给出这些组件的关系结构。

图1ZigBee协议结构体系

应用层

ZigBee设备对象

(ZDO)

应用对象1

应用对象240

ZDO

公共接口

MAC层

(物理)PHY层

ZDO

管理

端点1

APSDE-SAP

端点240

APSDE-SAP

端点0

APSDE-SAP

APS安全管理

APS信息中间

响应信息

MLDE-SAP

MLDE-SAP

NWK层

网络层数据实体SAP

网络安全管理

网络层信息中间

路由管理

网络管理

MLDE-SAP

MLDE-SAP

PD-SAP

PD-SAP

2.4GHz

868/915Hz

安全管理

每个ZigBee设备都与一个特定模板有关,可能是公共模板或私有模板。

这些模板定义了设备的应用环境、设备类型以及用于设备简通信的串(或称簇).公共模板可以确保不同供应商的设备在相同应用领域中的互操作性。

设备是由模板定义的,并以应用对象(ApplicationObjects)的形式实现。

每个应用对象通过一个端口连接到ZigBee堆栈的余下部分,它们都是器件中可寻址的组件。

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

端口之间的通信是通过簇的数据结构实现的。

这些簇是应用对象之间共享信息所需要的全部属性的容器,特殊应用中的簇在模板中有定义。

每个接口都能接收或发送簇格式的数据,一共有两个特殊的端口,即端口0和端口255.端口0用于整个ZigBee设备的配置和管理。

应用程序可以通过端口0与ZigBee堆栈的其他层通信,从而实现对这些层的初始化和配置。

附属在端口0的对象被称为ZigBee设备对象(ZDO)。

端口255用于向所有端口的广播。

端口241~254是保留端口。

所有端口都使用应用支持子层(APS)提供的服务。

APS通过网络层和安全服务提供层与端口相连接,并为数据传送、安全和绑定提供服务,因此能够适配不同单兼容的设备,如带灯的开关。

APS使用网络(NWK)层提供的服务。

NWK负责设备到设备的通信,并负责网络中设备初始化所包含的活动、消息路由和网络发现。

应用层可以通过ZigBee设备对象(ZDO)对网络层参数进行配置和访问。

再从图1中观察可以发现,ZigBee应用层框架包括应用支持子层(APS)、ZigBee设备对象(ZDO)和制造商所定义的应用对象。

1.1、应用支持子层(APS)

ZigBee协议栈中应用层(APL)的APS提供了在NWK层和APL层之间及从ZDO到供应商的应用对象的通用服务集的接口。

这种服务由两个实体APSDE和APSME实现。

1.2、ZigBee设备对象(ZDO)

ZDO代表着一个基本的功能函数类,这个功能在应用对象、设备模式与APS之间提供了一个接口。

ZDO位于应用框架与应用支持子层之间,它满足所有在ZigBee协议栈中应用操作的一般需要,具有以下作用:

●初始化应用支持子层(APS)、网络层(NWK)、安全服务规范(SSS);

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

ZDO描述了应用框架层应用对象的公用接口以控制设备和应用对象的网络功能。

在终端端口0,ZDO提供了与协议栈中低一层相接的接口,如果是数据,则通过APSDE-SAP;如果是控制信息,则通过APSME-SAP。

在ZigBee协议栈的应用框架中,ZDO公用接口提供设备、发现、绑定、安全等功能的地址管理。

1.2.1、设备发现

设备发现,是一个ZigBee设备发现其他ZigBee设备的过程。

有两种形式的设备发送请求:

IEEE地址请求和网络地址请求。

IEEE地址请求是单播到一个特定的设备且假定网络地址已知;网络地址请求是广播且携带一个已知的IEEE地址作为数据负载。

1.2.2、服务发现

服务发现是一个已知设备被其他设备发现的过程。

服务发现通过在一个已知设备的每个端口发送查询或通过使用一个匹配服务功能(广播或单播)。

服务发现可方便定义和使用各种描述来概述一个设备的能力。

服务发现信息在网络中也许被隐藏,在这种情况下,设备提供的某种服务可能不好在发现操作时到达,致使服务可能无法访问。

1.2.3、制造商所定义的应用对象

运行在ZigBee协议栈上的应用程序实际就是厂商自定义的应用对象。

这些应用程序使用ZigBee联盟给出的并且批准的规范(Profile)进行开发并运行在端点1-240上。

2、应用支持子层(APS)

2.1、概述

ZigBee协议栈中应用层(APL)的APS提供了在NWK层和APL层之间及从ZDO到供应商的应用对象的通用服务集的接口。

这种服务由两个实体实现:

●APS数据实体(APSDE):

通过APSDE服务接入点(APSDE-SAP)实现;

●APS管理实体(APSME):

通过APSME服务接入点(APSME-SAP)实现。

2.2、APS数据实体APSDE

APSDE提供在同一个网络中的两个或者多个应用实体之间的数据通信,为NWK、ZDO和应用对象提供一个数据服务,使得应用程序的PDU在两个或多个设备之间传输,设备本身必须位于同一个网络。

APSDE提供的服务:

●发出应用层PDU(APDU):

APSDE会接收应用PDU,并通过增加合适协议开销发出一个APSPDU;

●绑定:

一旦两个设备绑定,APSDE就可以从一个绑定设备传输一个信息给第二个设备;

●组地址过滤:

提供了根据是否是终端组的成员过滤组地址信息的功能;

●可靠传输:

在NWK层采用端到端重试,增加了事件的可靠性;

●重复拒绝:

传输所提供的信息将不会被多次接收;

●分裂:

可以分裂和重组长于一个NWK层负载的信息。

2.3、APS管理实体APSME

APSME提供的功能包括维持绑定表及在绑定的设备之间传送消息。

绑定指的是基于两台设备的服务和需求将它们匹配地连接起来。

APSME提供的服务:

●绑定管理:

根据服务和需求一起匹配两个设备的功能;

●AIB管理:

在设备的AIB中获取并设置属性的功能;

●安全:

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

●组管理:

提供了宣布多个设备共享一个地址,增加设备到组以及从组中移除设备的功能;

2.4、服务规范

APS子层提供了上层实体(NHLE)和NWK层之间的一个接口。

APS子层的APSME通过激发子层管理功能提供了服务接口,它还负责维护一个管理有关APS子层对象的数据库(AIB)。

图2描绘了APS子层的组件和接口。

图2应用支持子层参考模型

APS子层的两种服务通过NLDE-SAP和(在有限范围内)NLME-SAP,提供了NHLE和NWK层之间的接口。

NWK层和APS子层之间的NLME-SAP接口只支持NLME-GET和NLME-SET原语;所有其它NLME-SAP原语只能通过ZDO访问。

除这些外部的接口,在APSME和APSDE之间还有一个隐藏接口,它允许APSME使用APS数据服务。

层与层间的通信方式如图3

Indication

Request

Request

Confirm

Confirm

图3request-confirm-indication

2.4.1、APS数据服务

APS子层数据实体SAP(APSDE-SAP)支持应用协议数据单元在对等应用实体之间的传输,表1列出了APSDE-SAP支持的原语。

表1APSDE-SAP原语

APSDE-SAP原语

请求

确认

指示

APSDE-DATA

APSDE-DATA.request

APSDE-DATA.confirm

APSDE-DATA.indication

Request-confirm原语执行的流程示意图见图4,各原语详细内容如下描述;

图4req-con流程

2.4.1.1、APSDE-DATA.request原语

该原语请求一个从本地NHLE到一个或多个对等NHLE实体传输一个NHLEPDU(ASDU);每当一个数据PDU(ASDU)要被传输给一个对等的NHLE时,该原语由一个本地的NHLE生成,并根据其参数进行不同形式的传输。

参数见表2

表2指明APSDE-DATA.request原语参数

名称

类型

有效范围

描述

DstAddrMode

Integer

0x00-0xff

使用目的地址以及传输APDU的寻址模式

0x00:

DstAddress和DstEndpoint不存在

0x01:

DstAddress16位组地址;DstEndpoint不存在;

0x02:

DstAddress和DstEndpoint都存在,是16位组地址;

0x03:

DstAddress16和DstEndpoint都存在,是64位扩展地址;

0x04-0xff保留;

DstAddress

Address

通过DstAddrMode

参数指定

ASDU要被传输到的实体的单独的设备地址或者组地址

DstEndpoint

Integer

0x00-0xf0,0xff

当且仅当DstAddrMode参数的值为0x02/0x03时,该参数才存在,此时该参数或者ASDU要被传输到的实体的单独个端点的编号,或者是广播端点(0xff)

Profiled

Integer

0x0000-0xffff

帧要被送到的profilede标识符

ClusterId

Integer

0x0000-0xffff

帧要被送到的对象的标识符

SrcEndpoint

Integer

0x00-0xf0

被传输的ASDU来自的实体的单个端点

ASDULength

Integer

0x00-256*(NSDULength-

apscMinHeaderOverhead)

构成被传输的ASDU的字节数,单负载的最大长度由NSDULength-

apscMinheaderOverhead给定。

如果分段,用256个这样的块组成单个最大的ASDU

ASDU

Setofoctets

-

组成被传输的ASDU的字节集合

TxOption

Bitmap

00000xxx(x为0/1)

被传输的ASDU的传输选项:

0x01:

启用安全传输

0x02:

使用密钥传输

0x04:

确认传输

0x08:

允许分段

Radius

Unsignedinteger

0x00-0xff

允许一个被传输的帧通过网络进行传输的距离量,以跳为单位

2.4.1.2、APSDE-DATA.confirm原语

该原语报告请求从一个本地NHLE传输一个数据PDU(ASDU)到一个对等NHLE的结果。

它由本地APS子层实体在响应一个APSDE-DATA.request原语时产生。

当返回的状态参数值为SUCCESS,表明请求传输成功,或者为错误代码NO_SHORT_ADDRESS,

NO_BOUND_DEVICE或SECURITY_FAIL或者为任何NLDE-DATA.confirm原语返回

的状态值。

参数见表3

表3APSDE-DATA.confirm原语的参数

名称

类型

有效范围

描述

DstAddrMode

Integer

0x00-0xff

使用目的地址以及传输APDU的寻址模式

0x00:

DstAddress和DstEndpoint不存在

0x01:

DstAddress16位组地址;DstEndpoint不存在;

0x02:

DstAddress和DstEndpoint都存在,是16位组地址;

0x03:

DstAddress16和DstEndpoint都存在,是64位扩展地址;

0x04-0xff保留;

DstAddress

Address

通过DstAddrMode

参数来指定

ASDU要被传输到实体的单个设备的地址或组地址

DstEndpoint

Integer

0x00-0xf0,0xff

当且仅当DstAddrMode参数的值为0x02/0x03时,该参数才存在,此时,该参数是APDU要被传输到实体的单个端点的编号;

SrcEndpoint

Integer

0x00-0xf0

ASDU要被传输到的实体的单个端点

Status

Enumeration

SUCCESS,NO_ACK,

NO_SHORT_ADDRESS,NO_BOUND_DEVICE,

ASDU_TOO_LONG,SECURITY_FALL以及从NLDE-DATA.confirm原语返回的任何状态返回值

相应的请求状态

TxTime

Integer

具体执行

对基于本地时钟的传输包的时间指示,如NWK层所提供的那样

Indication原语执行的流程示意图见图5,原语详细内容见如下描述;

图5indication原语流程

2.4.1.3、APSDE-DATA.indication原语

本原语表示从APS子层传输一个数据PDU(ASDU)到本地应用实体。

(参数说明见表4)当从本地网络层实体接收到适当地址的数据帧,或随后收到一个DstAddrMode为0x00且绑定表条目指示帧送到设备本身的APSDE-DATA.request时,该原语由APS子层产生并发送给上层。

如果ASDU头的帧控制域表明该帧安全保护,则执行相应的安全管理程序处理。

当从本地网络层实体接收到适当地址的数据帧时,该原语由APS子层产生,并通过NLDE-DATA.indication原语发给上层实体。

如果APDU头的帧控制域表明该帧安全保护,则执行相应的安全程序进行处理。

如果帧处理失败,APSDE设置状态参数为安全处理返回的安全错误代码。

如果帧未被保护或安全处理成功,APSDE必须检查帧是否被分段。

如果扩展头包含在APDU头中且扩展帧控制域的分段子域表示帧被分段,但是这个设备不支持分段,APSDE就设置状态参数为DEFRAG_UNSUPPORTED。

如果扩展头包含在APDU头中且扩展帧控制域的分段子域表示帧被分段,且这个设备支持分段,但是当前不能重组该帧,APSDE就设置状态参数为DEFRAG_DEFERRED。

在其它所以情况下,APSDE设置状态参数为SUCCESS。

如果状态参数不设置为SUCCESS,APSDE设置ASDULength参数为0,ASDU参数为空字节集合。

APS子层实体必须通过使用NIB中的属性nwkAddressMap把接收到的帧的源地址映射为相应的扩展的64位IEEE地址。

如果能找到相应的64为IEEE地址,则APSDE发出该原语,其参数SrcAddrMode设为0x03,SrcAddress参数设为相应的64位IEEE地址。

如果找不到相应的64位IEEE地址,APSDE将发出该原语,其参数SrcAddrMode设为0x02,参数SrcAddress设为接收帧包含的16位源地址。

表4APSDE-DATA.indication原语参数

名称

类型

有效范围

描述

DstAddrMode

Integer

0x00-0xff

使用目的地址以及传输APDU的寻址模式

0x00:

保留

0x01:

DstAddress16位组地址;DstEndpoint不存在;

0x02:

DstAddress和DstEndpoint都存在,是16位组地址;

0x03-0xff保留;

DstAddress

Address

通过DstAddrMode

参数指定

ASDU要被传输到的实体的单独的设备地址或者组地址

DstEndpoint

Integer

0x00-0xf0

ASDU所针对的是本地实体上的目标端点

SrcAddrMode

Integer

0x00-0xff

使用目的地址以及传输APDU的寻址模式

0x00、0x01、0x04-0xff:

保留

0x02:

DstAddress和DstEndpoint都存在,是16位组地址;

0x03:

SrcAddress和SrcEndpoint都存在,是64位扩展地址

SrcAddress

Address

通过SrcAddrMode指定

来自收到的ASDU的实体的单个设备的地址或组地址

SrcEndpoint

Integer

0x00-0xf0

来自被传输的ASDU的实体的单个端点

Profiled

Integer

0x0000-0xffff

发起该帧的profilede标识符

ClusterId

Integer

0x0000-0xffff

接收对象的标识符

ASDULength

Integer

通过APSDE表示的ASDU包含的字节数

ASDU

Setofoctets

-

通过APSDE表示的ASDU包含的字节集合

Status

Enumeration

SUCCESS,

DEFRAG_DEFERRED

DEFRAG_UNSUPPO

RTED或者帧安全处理

返回的任何状态

输入帧处理的状态

SecurityStatus

Enumeration

UNSECURED,

SECURED_NWK_KEYSECURED_LINK_KEY

如果在没有任何安全情况下接收ASDU,返回UNSECURED

如果接收到的ASDU用网络密钥加密,返回SECURED_NWK_KEY

如果ASDU使用一个链接密钥加密,返回SECURED_LINK_KEY

LinkQuality

Integer

0x00-0xff

NLDE传送的链路质量指示

RxTime

Integer

具体执行

对基于本地时钟的传输包的时间指示,如NWK层所提供的那样

2.4.2、APS管理服务

APSME支持上层和APSME之间的管理命令的传输。

表5为APSME-SAP接口支持的原语。

并在下面的内容逐一介绍各原语。

表5APSME-SAP原语

名称

请求

指示

响应

确认

APSME-BIND

.request

.confirm

APSME-UNBIND

.request

.confirm

APSME-GET

.request

.confirm

APSME-SET

.request

.confirm

APSME-ADD-GROUP

.request

.confirm

APSME-REMOVE-GROUP

.request

.confirm

APSME-REMOVE-ALL-GROUP

.request

.confirm

2.4.2.1、绑定原语

这两组原语定义了设备的上层如何往其本地绑定表中增加/移除一个绑定记录。

原语执行的流程示意图见图6;

绑定:

APSME-BIND.request&APSME-BIND.confirm

移除绑定:

APSME-UNBIND.request&APSME-UNBIND.confirm

只有支持绑定表或绑定表缓存的设备可以处理这些原语,如果任何其他设备从其上层接收到这些原语,原语将会被丢弃。

图6BIND&UNBIND原语流程

(1)、APSME-BIND.request原语

本原语允许上层通过在其本地绑定表中创建一个实体,请求把两个设备绑定到一起,或绑定一个设备到某个组中。

由上层实体生成,发给APS子层,目的是在一个支持绑定表的设备上发起绑定操作。

参数说明见表6

表6APSME-BIND.request原语参数

名称

类型

有效范围

描述

SrcAddr

IEEE

Address

有效的64位IEEE地址

绑定目录的源IEEE地址

SrcEndpoint

Integer

0x00-0xff

绑定目录的源端点

ClusterId

Integer

0x0000-0xffff

将要绑定到目的设备上的cluster标识符

DstAddrMode

Integer

0x00-0xff

使用目的地址以及传输APDU的寻址模式

0x00、0x02、0x04-0xff:

保留

0x01:

DstAddress16位组地址;DstEndpoint不存在;

0x03:

DstAddress和DstEndpoint都存在,是64位扩展地址;

DstAddr

Address

通过DstAddrMode

参数指定

绑定目录的目的地址

DstEndpoint

Integer

0x00-0xf0,0xff

当DstAddrMode参数为0x03时存在,此时参数为绑定目录的目标端点

(2)、APSME-BIND.confirm原语

本原语允许上层被通知其直接或代理请求绑定两个设备,或绑定一个设备到某个组。

它由APSME生成,发给其NHLE以响应一个APSME-BIND.Request原语。

参数说明见表7

表7APSME-BIND.confirm原语参数

名称

类型

有效范围

描述

Status

Enumeration

SUCCESS

ILLEGAL_DEVICE

ILLEGAL_REQUEST

TABLE_FULL

NOT_SUPPORTED

绑定请求结果

其余参数见表6

(3)、APSME-UNBIND.request原语

与APSME-BIND.request原语比较操作基本相同,参数说明见表6;

(4)、APSME-UNBIND.confirm原语

与APSME-BIND.confirm原语比较不同在于返回的状态参数,参数说明见表 8;

表8APSME-UNBIND.confirm原语参数

名称

类型

有效范围

描述

Status

Enumeration

SUCCESS

ILLEGAL_DEVICE

ILLEGAL_REQUEST

ILLEGAL_BINDING

取消绑定请求的结果

其余参数参见表6

2.4.2.2、信息库维护

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

原语执行的流程示意图见图7

图7SET-GET原语流程图

(1)、APSME-GET.Request原语

该原语允许设备上层从AIB中读取。

由上层生成,发给其APSME,目的是从AIB中读取一个属性,APSME-GET.Request{AIBAttribute}//参数说明见表9;

表9信息库包含管理设备的APS层所要求的属性

属性

标识符

类型

有效范围

描述

Default

apsBindingTable

0xc1

Set

可变

设备绑定表目录当前集合

空集

apsDesignatedC

oordinator

0xc2

Bool

TRUE/FALSE

设备为协调器时为TRUE

FALSE

apsChannelMask

0xc3

IEEE802.15.4

信道掩码

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1