完整版ZigBee应用层规范Word文件下载.docx

上传人:b****3 文档编号:17129369 上传时间:2022-11-28 格式:DOCX 页数:59 大小:1.18MB
下载 相关 举报
完整版ZigBee应用层规范Word文件下载.docx_第1页
第1页 / 共59页
完整版ZigBee应用层规范Word文件下载.docx_第2页
第2页 / 共59页
完整版ZigBee应用层规范Word文件下载.docx_第3页
第3页 / 共59页
完整版ZigBee应用层规范Word文件下载.docx_第4页
第4页 / 共59页
完整版ZigBee应用层规范Word文件下载.docx_第5页
第5页 / 共59页
点击查看更多>>
下载资源
资源描述

完整版ZigBee应用层规范Word文件下载.docx

《完整版ZigBee应用层规范Word文件下载.docx》由会员分享,可在线阅读,更多相关《完整版ZigBee应用层规范Word文件下载.docx(59页珍藏版)》请在冰豆网上搜索。

完整版ZigBee应用层规范Word文件下载.docx

2.1.2.2簇

簇标识符可用来区分不同的簇,簇标识符联系着数据从设备流出,和向设备流入。

在特殊的应用profiles范围内,簇标识符是唯一的。

2.1.3ZigBee设备对象

ZigBee设备对象(ZDO),描述了一个基本的功能函数,这个功能在应用对象、设备profile和APS之间的提供了一个接口。

ZDO位于应用框架和应用支持子层之间。

它满足所有在ZigBee协议栈中应用操作的一般需要。

ZDO还有以下作用:

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

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

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

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

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

ZDO的具体描述在2.5节。

2.1.3设备发现

设备发现是ZigBee设备为什么能发现其他设备的过程。

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

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

IEEE地址请求是单播到一个特殊的设备且假定网络地址已经知道。

网络地址请求是广播且携带一个已知的IEEE地址作为负载。

2.1.3.2服务发现

服务发现是为什么一个已给设备被其他设备发现的能力的过程。

服务发现通过在一个已给设备的每一个端点发送询问或通过使用一个匹配服务性质(广播或者单播)。

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

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

2.2ZigBee应用支持子层

2.2.1范围

这一小节描述了应用层部分提供的服务规范和生产商定义的应用对象与ZigBee设备对象之间的接口。

规范定义了允许应用对象传输数据的数据服务和提供绑定机制的管理服务。

另外,它还定义了应用支持子层的帧格式和帧类型。

2.2.2目的

这小节的目的是定义ZigBee应用支持子层的功能。

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

2.2.3应用支持子层简介

应用支持子层给网络层和应用层通过ZigBee设备对象和制造商定义的应用对象使用的一组服务提供了接口,该接口提供了ZigBee设备对象和制造商定义的应用对象使用的一组服务。

通过两个实体提供这些服务:

数据服务和管理服务。

APS数据实体(APSDE)通过与之连接的SAP,即APSDE-SAP提供数据传输服务。

APS管理实体(APSME)通过与之连接的SAP,即APSME-SAP提供管理服务,并且维护一个管理实体数据库,即APS信息库(NIB)。

2.2.3.1应用支持子层的数据实体(APSDE)

APSDE向网络层提供数据服务,并且为ZDO和应用对象提供服务,完成两个或多个设备之间传输应用层PDU。

这些设备本身必须在同一个网络。

APSDU将提供如下服务:

生成应用层的协议数据单元(APDU):

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

绑定:

两个设备服务和需求相匹配的能力。

一旦两个设备绑定了,APSDE将可以把从一个绑定设备接受到的信息传送给另一个设备。

组地址过滤:

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

可靠传输:

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

拒绝重复:

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

支持大批量的传输:

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

碎片:

当消息的长度大于单个网络层帧时,可以分割并重组消息。

流控制:

APS提供避免传输消息淹没接收者的措施。

阻塞控制:

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

2.2.3.2应用支持子层的管理实体(APSME)

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

APSME应具有基于两个设备的服务和需求向匹配的能力。

该服务称为绑定服务,APSME应具有能力来构建和维护绑定表来存储这些信息。

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

1应用层信息库管理:

读取与设置设备应用层信息库属性的能力

2安全:

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

2.2.4服务规范

应用支持子层为上层实体(NHLE)与网络层提供了一个接口。

APS层理论上包含一个管理实体称为APS层管理实体(APSME)。

这个实体通过调用子层的管理函数来提供服务接口。

APSME还负责维护一个关于APS子层管理实体的数据库。

这个数据库关于APS子层信息库(AIB).图2.1描述了APS子层的构成和接口。

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数据服务。

2.2.4.1APS数据服务

APS子层数据实体SAP(APSDE-SAP)支持在两个同等的应用实体之间传输应用协议数据单元。

表2.1列出了APSDE-SAP支持的原语。

每一个原语将在下面的小节论述。

2.2.4.1.1APSDE-DATA.request

该原语请求从本地NHLE向一个同等的NHLE实体传输NHLEPDU(ASDU)。

2.2.4.1.1.1服务原语的语法

该原语的语法如下:

表2.2详细说明了APSDE-DATA.request原语的参数。

2.2.4.1.1.2产生

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

2.2.4.1.1.32

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

如果DstAddrMode参数为0x00,并且接收该原语的设备的APSDE支持绑定表,那么在绑定表中根据参数SrcEndpoint和ClusterId所指定的endpoint和clusteridentifiers寻找相关联的绑定表入口。

如果没有绑定表入口,APSDE将发送状态参数为NO_BOUND_DEVICE的语APSDE-DATA.confirm原语。

如果找到了一个或多个绑定表入口,APSDE将构建APDU,其endpoint信息从绑定表入口获得,当通过网络层传输信息帧时,其destinationaddress信息从绑定表入口获得。

如果存在多于一个绑定表入口,当接收到相应的NLDE-DATA.confirm原语,按上面描述的,APSDE将构建并向下一个绑定表入口传输APDU,直到没有绑定表入口剩余。

如果接收到该原语设备的APSDE不支持绑定表,那么APSDE将发送状态参数为NOT_SUPPORTED的APSDE-DATA.confirm原语。

如果DstAddrMode参数为0x02,DstAddress参数包含扩展的64位IEEE地址,首次必须使用NIB(见表2.24)属性中的nwkAddressMap映射相应的16位网络地址。

如果找不到相应的16位网络地址,那么APSDE将发送状态参数为NO_SHORT_ADDRESS的APSDE-DATA.confirm原语。

如果找到了相应的16位网络地址,其值将被用在NLDE-DATA.request原语中,参数DstEndpoint将被置在作为结果的APDU中。

如果DstAddrMode参数为0x01,表明为群地址,参数DstAddress将被解释为16位的全地址。

这个地址将被放置在APS头中的群地址域,参数DstEndpoint将被忽略,APS头中的destinationendpoint域将被省略。

APS头中的帧控制域的deliverymode子域值在这种情况下为0x03.

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

应用程序可以通过使用参数RadiusCounter来限制在网络中传输数据帧的跳数。

如果参数RadiusCounter为0x00,网络层在网络中传输信息帧没有约束。

如果参数RadiusCounter为非零,则网络层将允许信息帧在网络中传输存在最多RadiusCounter跳。

如果DstAddrMode参数为0x01,表明为群地址,或者DstAddrMode参数为0x00,并且相应的绑定表入口包含哪一个群地址,那么APSME将检查NIB(见表3.42)中的属性nwkUseMulticast值。

如果属性值为FALSE,那么输出帧的帧控制域中的deliverymode子域设为0b11,16位的目的群地址将设置输出帧APS头中的groupaddress域,该帧将以广播方式传输。

传输该帧的原语NLDE-DATA.request的DstAddr参数设置为值0xfffd,广播给所有RxOnWhenIdle=TRUE的设备。

如果属性nwkUseMulticast值为TRUE,那么该帧将使用网络层多点传送方式传输,群地址不用放置在输出帧的APS头中。

如果参数TxOptions指定使用安全传输,则APS子层将使用安全服务为ASDU提供安全(见4.2.4小节)。

如果安全处理失败,则APSDE发送状态参数为SECURITY_FAIL的APSDE-DATA.confirm原语。

APSDE使用NLDE-DATA.request原语向网络层传输构造帧。

当接收到NLDE-DATA.confirm原语,APSDE则发送APSDE-DATA.confirm原语,其状态参数值域从网络层接收到的一致。

APSDE通过每次发送使NLDE-DATA.request原语的DiscoverRoute参数值为0x01确保网络层中的路由发现始终激活。

如果传输的ASDU大于合适的单个帧,当没有请求确认传输或者在TxOptions域的fragmentationpermitted标志位设为0时,则放弃传输ASDU,APSDE将发送状态参数为INVALID_REQUEST的APSDE-DATA.confirm原语。

如果传输的ASDU大于合适的单个帧,当请求确认传输并且在TxOptions域的fragmentationpermitted标志位设为1时,ASDU将按照2.2.8.3.5小节所述分裂为多个APDU。

如果请求传输和安全处理,那么每一个APDU都要进行处理。

注意不要使用分裂处理,除非相应的上层文件或者相互明确表明帧的传输允许分裂处理,并且说明了块的数量和总共传输的大小。

2.2.4.1.2APSDE-DATA.confirm

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

2.2.4.1.2.1服务原语的语法

表2.3详细介绍了APSDE-DATA.confirm原语的参数。

2.2.4.1.2.2产生

该原语有本地APS子层产生作为对APSDE-DATA.request原语的响应。

该原语返回的状态参数值为SUCCESS,表明请求传输成功,或者为错误代码NO_SHORT_ADDRESS,NO_BOUND_DEVICE或SECURITY_FAIL或者为任何NLDE-DATA.confirm原语返回的状态值。

这些状态值的路由在2.2.4.1.2小节中进行了详细的描述。

2.2.4.1.2.3接收

接收到该原语,发起设备的上层被通报请求传输的结果。

如果传输成功,状态参数值设置为SUCCESS。

否则,状态参数表明错误。

2.2.4.1.3APSDE-DATA.indication

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

2.2.4.1.3.1服务原语的语法

表2.4详细描述了APSDE-DATA.indication原语的参数。

2.2.4.1.3.2产生

该原语由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位源地址。

2.2.4.1.3.3接收

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

2.2.4.2APS管理服务

APS管理实体SAP(APSME-SAP)支持上层和APSME层之间传输管理命令。

表2.5总结了APSME通过APSME-SAP接口支持的原语。

各原语的详细描述见下面小节。

2.2.4.3绑定原语

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

只有支持绑定表或者绑定表存储器的设备支持这些原语。

如果其他设备从上层接收到这些原语,那么这些原语将被忽略。

2.2.4.3.1APSME-BIND.request

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

2.2.4.6.1.1服务原语的语法

表2.6详细描述了APSME-BIND.request原语的参数。

2.2.4.3.1.2产生

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

2.2.4.3.1.3接收

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

如果支持绑定表的设备的APS子层从NHLE接收该原语,APSME将试图直接从其绑定表中建立指定的入口。

如果可以建立入口,APSME将发送状态参数为SUCCESS的APSME-BIND.confirm原语。

如果因为其绑定表缺乏能力而无法建立入口,APSME将发送状态参数为TABLE_FULL的APSME-BIND.confirm原语。

2.2.4.3.2APSME-BIND.confirm

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

2.2.4.3.2.1服务原语的语法

表2.7详细描述了APSME-BIND.confirm原语的语法。

2.2.4.3.2.2产生

该原语由APSME产生作为APSME-BIND.request原语的响应发送给NHLE。

如果请求成功,那么状态参数将表明一个成功的绑定请求。

否则,状态参数则为错误码ILLEGAL_DEVICE、ILLEGAL_REQUEST或TABLE_FULL。

2.2.4.3.2.3接收

接收到该原语,上层就被通知其绑定请求的结果。

如果绑定请求成功,状态参数设置为SUCCESS。

2.2.4.3.3APSME-UNBIND.request

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

2.2.4.3.3.1服务原语的语法:

表2.8详细描述了APSME-UNBIND.request原语的参数。

2.2.4.3.3.2产生

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

2.2.4.3.3.3接收

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

如果支持绑定表的设备的APS子层从NHLE接收该原语,APSME将在绑定表中查找指定的入口。

如果入口存在,APSME将移除这个入口并发送状态参数为SUCCESS的APSME-UNBIND.confirm原语(见2.2.4.3.4小节)。

如果没有找到入口,APSME将发送状态参数为INVALID_BINDING的APSME-UNBIND.confirm原语。

如果该设备不在网络中,APSME将发送状态参数为ILLEGAL_DEVICE的APSME-BIND.confirm原语。

2.2.4.3.4APSME-UNBIND.confirm

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

2.2.4.3.4.1服务原语的语法

表2.9详细描述了APSME-UNBIND.confirm原语的语法。

2.2.4.3.4.2产生

该原语由APSME产生作为APSME-UNBIND.request原语的响应发送给NHLE。

如果请求成功,那么状态参数将表明一个成功的解除绑定请求。

否则,状态参数则为错误码ILLEGAL_DEVICE、ILLEGAL_REQUEST或INVALID_BINDING。

2.2.4.3.4.3接收

接收到该原语,上层就被通知其解除绑定请求的结果。

如果解除绑定请求成功,状态参数设置为SUCCESS。

2.2.4.4信息库的维护

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

2.2.4.4.1APSME-GET.request

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

2.2.4.4.1.1服务原语的语法

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

2.2.4.4.1.2产生

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

2.2.4.4.1.3接收

接收到该原语,APSME试图从数据库中得到AIB属性。

如果在数据库中没有相应的AIB属性表标识符,APSME将发送状态参数为UNSUPPORTED_ATTRIBUTE的APSME-GET.confirm原语。

如果成功得到了AIB属性,APSME将发送状态参数为SUCCESS,包含AIB属性标识符和属性值的APSME-GET.confirm原语。

2.2.4.4.2APSME-GET.confirm

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

2.2.4.4.2.1服务原语的语法

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

2.2.4.4.2.2产生

该原语由APSME产生,发送给上层作为对APSME-GET.request原语的响应。

该原语返回状态SUCCESS,表明请求读取AIB属性请求成功,或者返回错误码UNSUPPORTED_ATTRIBUTE.这些状态在2.2.4.4.1.3小节进行了描述。

2.2.4.4.2.3接收

接收到该原语,上层得知读取AIB属性请求的结果。

如果读取AIB属性请求成功,状态参数设置为SUCCESS。

2.2.4.4.3ASPME-SET.request

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

2.2.4.4.3.1服务原语的语法

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

2.2.4.4.3.2产生

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

2.2.4.4.3.3接收

接收到该原语,APSME试图将给定的数据库中的值写入AIB属性。

如果在数据库中没有AIB属性参数指定的属性,APSME将发送状态参数为UNSUPPORTED_ATTRIBUTE的APSME-SET.confirm原语。

如果AIB属性值参数给定的值超过了有效的属性范围,APSME将发送状态参数为INVALID_PARAMETER的APSME-SET.confirm原语。

如果成功写入了AIB属性,APSME将发送状态参数为SUCCESS的APSME-SET.confirm原语。

2.2.4.4.4APSME-SET.confirm

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

2.2.4.4.4.1服务原语的语法

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

2.2.4.4.4.2产生

该原语由APSME产生,发送给上层作为对APSME-SET.request原语的响应。

该原语返回状态SUCCESS,表明将属性值写入AIB属性的请求成功,或者返回错误码INVALID_PARAMETER或UNSUPPORTED_ATTRIBUTE.这些状态在2.2.4.4.3.3小节进行了描述。

2.2.4.4.4.3接收

接收到该原语,上层得知写入AIB属性请求的结果。

如果写入AIB属性请求成功,状态参数设置为SUCCESS。

2.2.4

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

当前位置:首页 > 外语学习 > 韩语学习

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

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