ZigBee的应用层Word格式.docx
《ZigBee的应用层Word格式.docx》由会员分享,可在线阅读,更多相关《ZigBee的应用层Word格式.docx(57页珍藏版)》请在冰点文库上搜索。
ZigBee协议结构体系
应用对
应用支持子层数据实匕
服务接入点
端点240—
APSDE-SAP
J
应用支i子层
•哪实体理A巳
公共
接口
端点1Z丿
APS信
DE
息中间
安全管理
NWK层
网络安
络层数据实
■*
网
•服务接入点
MLDE-SAP
ZDO
ZigBee设备对象
应用支持)子层管理实体服务接——端点0
网络层数据实体SAP
网络层
网络管理
路由管
理
,体-服务:
MLDE-SAP
MAC层网络层实"
p应丿
管理实体管0ME
用支持子层
管理
应用支持子
P<
A>
EPM
层信息库
控制子层管理实
PD-SAP
2.4GHz
(物理)PHY层
868/915Hz
每个ZigBee设备都与一个特定模板有关,可能是公共模板或私有模板。
这些模板定义
•公共模板可以确保不同
了设备的应用环境、设备类型以及用于设备简通信的串(或称簇)供应商的设备在相同应用领域中的互操作性。
设备是由模板定义的,并以应用对象
ZigBee堆栈的
(ApplicationObjects)的形式实现。
每个应用对象通过一个端口连接到余下部分,它们都是器件中可寻址的组件。
从应用的角度看,通信的本质就是端口到端口的连接(例如,一个带开关组件的设备与
。
端口之间的通信是通过簇的数
带一个或多个灯组件的设备进行通信,目的是点亮这些灯)
特殊应用中的簇
据结构实现的。
这些簇是应用对象之间共享信息所需要的全部属性的容器,在模板中有定义。
每个接口都能接收或发送簇格式的数据,
一共有两个特殊的端口,
即端口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)
ZigBee协议栈中应用层(APL)的APS提供了在NWK层和APL层之间及从ZDO到供应商的应用对象的通用服务集的接口。
这种服务由两个实体实现:
APS数据实体(APSDE):
通过APSDE服务接入点(APSDE-SAP)实现;
APS管理实体(APSME):
通过APSME服务接入点(APSME-SAP)实现。
2.2、APS数据实体APSDE
为NWK、ZDO
APSDE提供在同一个网络中的两个或者多个应用实体之间的数据通信,
和应用对象提供一个数据服务,使得应用程序的
PDU在两个或多个设备之间传输,设备本
身必须位于同一个网络。
APSDE提供的服务:
发出应用层PDU(APDU):
APSDE会接收应用PDU,并通过增加合适协议开销发出
一个APSPDU;
绑定:
一旦两个设备绑定,APSDE就可以从一个绑定设备传输一个信息给第二个设备;
组地址过滤:
提供了根据是否是终端组的成员过滤组地址信息的功能;
可靠传输:
在NWK层采用端到端重试,增加了事件的可靠性;
重复拒绝:
传输所提供的信息将不会被多次接收;
分裂:
可以分裂和重组长于一个NWK层负载的信息。
2.3、APS管理实体APSME
APSME提供的功能包括维持绑定表及在绑定的设备之间传送消息。
绑定指的是基于两台设备的服务和需求将它们匹配地连接起来。
APSME提供的服务:
绑定管理:
根据服务和需求一起匹配两个设备的功能;
AIB管理:
在设备的AIB中获取并设置属性的功能;
安全:
通过使用安全密钥与其他设备建立可信关系的功能;
组管理:
提供了宣布多个设备共享一个地址,增加设备到组以及从组中移除设备的功能;
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
:
ReqUlst£
;
Confirm:
iConfirmj
丄RequestJ
Indication
图3request-confirm-indication
241、APS数据服务
APS子层数据实体SAP(APSDE-SAP)支持应用协议数据单元在对等应用实体之间的
传输,表1列出了APSDE-SAP支持的原语。
表1APSDE-SAP原语
APSDE-SAP原
语
请求
确认
指示
APSDE-DATA
APSDE-DATA.requ
APSDE-DATA.confi
APSDE-DATA.indication
est
rm
Request-confirm原语执行的流程示意图见图4,各原语详细内容如下描述;
图4req-con流程
APSDE-
JX阳费g(JGN..
OmOII
S'
0x0?
一
按是書長曲
■■-定....
"
春起肓16网塔舞二
、-.趟粗”-
HOT_5UPPORTe9:
ijconilwlh堤眄1
啞蜓SreEndponl-fff
CludWrU炳揩電的
心ndOQiriI和ciu»
\er】d砰戒
相关葩丁耗入口
F
□mlAddrModg是
■考包合班tljr眉,
'
GEjetfeti
=t_
■-自工^*;
右蟹裁为-
NO_&
OUMD_D&
VICLE
、〜鯉onAnn厚旦一.
=1
港诲14忙*育再
「teiecrr^jea:
:
-
Deslflrfdr-^jfta
ff为农曲地址A疑
回黛睫乂
WC>
_SHORT>
y3-DAESSK,MMlrrtilEta-■-
农心下一个
DeslAJdr
■DswtAdm是杏为
..聲±
£
址.
-毛
宜話H旧内■'
的
NWkUseMilScasE-X-
、(苦KlTRUE"
~tS?
BDslEndpolinilfa—APDU.根ffiOmsUdcJr获1iEWLDb-UAlA.requemL呎豐
Oe11vgrfvfccleiSi沖
ObliqestAJdr占为ti
地址域卉广»
巧式传
軸建帧-同时光比点焉
IMLEIE-OATAr«
qu45t
内茄Da34ch3「和0Kffp
^FlrfDnWtienldle^W
的喪¥
审a^Xfi世址并
怏用酋口P弐
fll苦柱收到相倉的
NLDE=
DATACl巾rhflTi軍
cS—V
DftslAddr卜竝屋
否大于】
241.1、APSDE-DATA.request
原语
NHLE时,该原语由一个
该原语请求一个从本地NHLE到一个或多个对等NHLE实体传输一个NHLEPDU
(ASDU);
每当一个数据PDU(ASDU)要被传输给一个对等的
本地的NHLE生成,并根据其参数进行不同形式的传输。
参数见表
表2指明APSDE-DATA.request原语参数
名称
类型
有效范围
描述
DstAddrMo
Integer
OxOO-Oxff
使用目的地址以及传输
APDU的寻址
de
0x00:
DstAddress和
DstEndpoint
模式
不存在
0x01:
DstAddress16
位组地址;
DstEndpoint不存在;
0x02:
都存在,是16位组地址;
0x03:
DstAddress16和
DstEndpoint都存在,是64位扩展地址;
0x04-0xff保留;
DstAddress
Address
通过DstAddrMode
ASDU要被传输到的实体的单独的设
参数指定
备地址或者组地址
DstEndpoin
0x00-0xf0,0xff
当且仅当DstAddrMode参数的值为
0x02/0x03时,该参数才存在,此时该参数或者ASDU要被传输到的实体的单独个端点的编号,或者是广播端点(0xff)
Profiled
0x0000-0xffff
帧要被送到的profilede标识符
Clusterld
帧要被送到的对象的标识符
SrcEndpoint
0x00-0xf0
被传输的ASDU来自的实体的单个端
点
ASDULengt
0x00-256*(NSDULen
构成被传输的ASDU的字节数,单负
h
gth-
载的最大长度由NSDULength-
apscMinHeaderOver
apscMinheaderOverhead给定。
女0
head)
果分段,用256个这样的块组成单个
最大的ASDU
ASDU
Setof
组成被传输的ASDU的字节集合
octets
TxOption
Bitmap
00000xxx(x为0/1)
被传输的ASDU的传输选项:
0x01:
启用安全传输
0x02:
使用密钥传输
0x04:
确认传输
0x08:
允许分段
Radius
Unsigne
0x00-0xff
允许一个被传输的帧通过网络进行传
d
输的距离量,以跳为单位
integer
241.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
使用目的地址以及传输APDU
的寻址模式0x00:
DstEndpoint不存在0x01:
DstAddress16位组地址;
DstEndpoint不存在;
DstEndpoint都存在,是16位组地址;
DstEndpoint都存在,是64位扩展地址;
ASDU要被传输到实体的单个
参数来指定
设备的地址或组地址
当且仅当DstAddrMode参数
的值为0x02/0x03时,该参数
11
才存在,此时,该参数是APDU
要被传输到实体的单个端点的
编号;
SrcEndpoint
OxOO-OxfO
ASDU要被传输到的实体的单
个端点
Status
Enumeration
SUCCESS,NO_ACK,
相应的请求状态
TxTime
NO_SHORT_ADDR
ESS,
NO_BOUND_DEVI
ASDU_TOO_LONG
,SECURITY_FALL以
及从
NLDE-DATA.confir
m原语返回的任何状
态返回值
具体执行
对基于本地时钟的传输包的时
间指示,如NWK层所提供的那
Indication原语执行的流程示意图见图5,原语详细内容见如下描述;
图5indication原语流程
241.3、APSDE-DATA.indication
本原语表示从APS子层传输一个数据PDU(ASDU)到本地应用实体。
(参数说明见表
4)当从本地网络层实体接收到适当地址的数据帧,或随后收到一个DstAddrMode为0x00
且绑定表条目指示帧送到设备本身的APSDE-DATA.request时,该原语由APS子层产生并发送给上层。
如果ASDU头的帧控制域表明该帧安全保护,则执行相应的安全管理程序处
APS子层产生,并通过
理。
当从本地网络层实体接收到适当地址的数据帧时,该原语由
NLDE-DATA.indication原语发给上层实体。
如果APDU头的帧控制域表明该帧安全保护,
则执行相应的安全程序进行处理。
如果帧处理失败,
APSDE设置状态参数为安全处理返回
APSDE就
的安全错误代码。
如果帧未被保护或安全处理成功,APSDE必须检查帧是否被分段。
如果扩展头包含在
APSDE
APDU头中且扩展帧控制域的分段子域表示帧被分段,但是这个设备不支持分段,就设置状态参数为DEFRAG_UNSUPPORTED。
如果扩展头包含在APDU头中且扩展帧控制域的分段子域表示帧被分段,且这个设备支持分段,但是当前不能重组该帧,
设置状态参数为DEFRAG_DEFERRED。
在其它所以情况下,APSDE设置状态参数为
SUCCESSO女口果状态参数不设置为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原语参数
使用目的地址以及传输APDU的寻址模式
保留
DstAddress16位组地址;
DstAddress和DstEndpoint都存在,是16位组地址;
0x03-0xff保留;
通过
ASDU要被传输到的实体的单独的设备地址或
DstAddrMod
者组地址
SrcAddrMo
ASDU所针对的是本地实体上的目标端点
0x00、0x01、0x04-0xff:
DstAddress和DstEndpoint都存在,
是16位组地址;
SrcAddress和SrcEndpoint都存在,
是64位扩展地址
SrcAddress
SrcAddrMod
e指定
来自收到的ASDU的实体的单个设备的地址或
组地址
来自被传输的ASDU的实体的单个端点
发起该帧的profilede标识符
ClusterId
接收对象的标识符
Enumer
ation
SUCCESS,
DEFRAG_DEF
ERRED
DEFRAG_UN
SUPPO
RTED或者帧
安全处理
通过APSDE表示的ASDU包含的字节数
通过APSDE表示的ASDU包含的字节集合
输入帧处理的状态
返回的任何状
SecurityStat
us
LinkQuality
RxTime
UNSECURED
SECUREDN
WK_KEYSEC
URED_LINK_
KEY
如果在没有任何安全情况下接收ASDU,返回
如果接收到的ASDU用网络密钥加密,返回
SECURED_NWK_KEY
如果ASDU使用一个链接密钥加密,返回
SECURED_LINK_KEY
NLDE传送的链路质量指示
对基于本地时钟的传输包的时间指示,如NWK
层所提供的那样
242、APS管理服务
APSME支持上层和APSME之间的管理命令的传输。
表5为APSME-SAP接口支持
的原语。
并在下面的内容逐一介绍各原语。
表5APSME-SAP原语
响应
APSME-BIND
.request
.confirm
APSME-UNBIND
APS