ZigBee绑定指南.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ZigBee绑定指南

一、绑定(Binding) 绑定是一种控制两个或者多个设备应用层之间信息流传递的机制。在ZigBee2006发布版本中,它被称为源绑定,所有的设备都可以执行绑定机制。 绑定允许应用程序发送一个数据包而不需要知道目标设备的短地址(此时将目标设备的短地址设置为无效地址0xFFFE)。应用支持子层(APS)从它的绑定表中确定目标设备的短地址,然后将数据发送给目标应用或者目标组。如果在绑定表中找到的短地址不止一个,协议栈会向所有找到的短地址发送数据。 说明:绑定只能在补充的设备间被创建。也就是说,当两个设备已经在他们的简单描述符结构中登记为一样的命令ID,并且一个作为输入另一个作为输出时,绑定才能成功 Zigbee Device Object Bind Request(ZDO绑定请求)——通过一个命令告诉设备创建一个绑定表记录 Zigbee Device Object End Device Bind Request(ZDO终端绑定请求)——两个设备可以告诉协调器它们想要建立一个绑定表记录。协调器来协调并在两个设备中创建绑定表记录。 Device Application(设备应用)—一个设备上的应用程序建立或者管理一个绑定表 三、绑定表的建立 TI的Zstack2006协议栈中提供两种可用的机制配置设备绑定: (1)如果目的设备的扩展地址是已知的(2)如果扩展地址是未知的 zb_BindDevice ()函数便可以进行绑定,zb_BindDevice ()中地址要设置为目标设备的扩展地址。 绑定函数说明: zb_BindDevice ( uint8 create, //创建还是删除绑定,TRUE创建,FALSE删除 uint16 commandId, //命令ID,绑定是基于命令ID的绑定 uint8 *pDestination ) //扩展地址,可以为NULL,决定绑定类型、基于扩展地址的绑定: void zb_BindDevice ( uint8 create, uint16 commandId, uint8 *pDestination ) { if ( create ){ if ( pDestination )//长地址不为空 { //地址模式为64位地址,即destination.addrMode = Addr64Bit; //将参数pDestination 的值复制到 destination.addr.extAddr中 osal_cpyExtAddr( destination.addr.extAddr, pDestination ); //调用函数 APSME_BindRequest进行基于长地址的绑定 ret = APSME_BindRequest( sapi_epDesc.endPoint, commandId, destination, sapi_epDesc.endPoint ); if ( ret == ZSuccess ) { //绑定成功后获取目的设备的短地址 ZDP_NwkAddrReq(pDestination, ZDP_ADDR_REQTYPE_SINGLE, 0, 0 ); //定时触发事件 ZDO_NWK_UPDATE_NV osal_start_timerEx( ZDAppTaskID, ZDO_NWK_UPDATE_NV, 250 ); } …… } void *osal_cpyExtAddr( void *dest, void *src ) 说明:该函数的作用是复制扩展地址。将*src指向的扩展地址复制到指针*dest指向的内存 参数说明:*dest----------------------------目标地址指针 *src-----------------------------源地址指针 返回值:指针 、ZStatus_t APSME_BindRequest( byte SrcEndpInt, uint16 ClusterId, zAddrType_t *DstAddr, byte DstEndpInt) 说明:应用支持子层绑定函数,通过该函数可以在两个设备间的应用层创建绑定,以原语APSME_BIND.confirm返回绑定结果。注意这里传递的地址是64位的扩展地址。 参数说明:SrcEndpInt ---------------------------源设备的端点 ClusterId ------------------------------簇ID *DstAddr -----------------------------目标设备的地址 DstEndpInt -------------------

文档评论(0)

zhanghc + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档