Zigbee协议栈中文说明(三)

qn1510837625 2020-02-23 21:13:27 2038

2.2.4.1.1.2 产生

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

2.2.4.1.1.3 2

当APS子层实体接收到该原语时,便开始传输提供的ASDU。
如果DstAddrMode参数为0x00,并且接收该原语的设备的APSDE支持绑定表,那么在绑定表中根据参数SrcEndpoint和ClusterId所指定的endpoint和cluster identifiers寻找相关联的绑定表入口。如果没有绑定表入口,APSDE将发送状态参数为NO_BOUND_DEVICE 的语APSDE-DATA.confirm原语。如果找到了一个或多个绑定表入口,APSDE将构建APDU,其endpoint信息从绑定表入口获得,当通过网络层传输信息帧时,其destination address信息从绑定表入口获得。如果存在多于一个绑定表入口,当接收到相应的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头中的destination endpoint域将被省略。APS头中的帧控制域的delivery mode子域值在这种情况下为0x03.
如果DstAddrMode参数为0x02,DstAddress参数包含16位的网络地址,并且提供参数DstEndpoint,当目的网络地址用于应用响应,并且网络地址部位后面的数据传输请求保留时,上层只能使用DstAddrMode为0x02.
应用程序可以通过使用参数RadiusCounter来限制在网络中传输数据帧的跳数。如果参数RadiusCounter为0x00,网络层在网络中传输信息帧没有约束。如果参数RadiusCounter为非零,则网络层将允许信息帧在网络中传输存在最多RadiusCounter跳。
如果DstAddrMode参数为0x01,表明为群地址,或者DstAddrMode参数为0x00,并且相应的绑定表入口包含哪一个群地址,那么APSME将检查NIB(见表3.42)中的属性nwkUseMulticast值。如果属性值为FALSE,那么输出帧的帧控制域中的delivery mode子域设为0b11,16位的目的群地址将设置输出帧APS头中的group address域,该帧将以广播方式传输。传输该帧的原语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域的fragmentation permitted标志位设为0时,则放弃传输ASDU,APSDE将发送状态参数为INVALID_REQUEST的APSDE-DATA.confirm原语。
如果传输的ASDU大于合适的单个帧,当请求确认传输并且在TxOptions域的fragmentation permitted标志位设为1时,ASDU将按照2.2.8.3.5小节所述分裂为多个APDU。如果请求传输和安全处理,那么每一个APDU都要进行处理。注意不要使用分裂处理,除非相应的上层文件或者相互明确表明帧的传输允许分裂处理,并且说明了块的数量和总共传输的大小。

2.2.4.1.2 APSDE-DATA.confirm

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

2.2.4.1.2.1 服务原语的语法

该原语的语法如下:
APSDE-DATA.confirm {
DstAddMode
DstAddress
DstEndpoint
SrcEndpoint
Status
}
表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.3 APSDE-DATA.indication

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

2.2.4.1.3.1 服务原语的语法

该原语的语法如下:

APSDE-DATA.indication
 {
DstAddrMode
DSTAddress
DstEndpoint
SrcAddrMode 
SARCAddress
SrcEndpoint
Profield
Clusterld
asduLength
asdu
WasBroadcast
SecurityStatus
LinkQuality
}

表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.2 APS管理服务

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

2.2.4.3 绑定原语

这组原语定义了设备上层如何将一个绑定记录加入(提交)其本地绑定表或将绑定记录从本地绑定表中移除。
只有支持绑定表或者绑定表存储器的设备支持这些原语。如果其他设备从上层接收到这些原语,那么这些原语将被忽略。

2.2.4.3.1 APSME-BIND.request

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

2.2.4.6.1.1 服务原语的语法

该原语的语法如下:

APSME-BIND.request               {
SrcAddr
SrcEndpoint
Clusterld
DstAddrMode
DstAddr
DstEndpoint
}

表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.2 APSME-BIND.confirm

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

2.2.4.3.2.1 服务原语的语法

该原语的语法如下:

APSME-BIND.confirm              {
Status
SrcAddr
SrcEndpoint
Clusterld
DstAddrMode
DstAddr
DstEndpoint
}

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

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 点赞 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
qn1510837625
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区