zigbee 绑定表

绑定(Binding)是一种控制两个或者多个设备应用层之间信息流传递的机制。绑定允许应用程序发送一个数据包而无需知道目标地址的16位短地址(此时目标设备短地址设置为无效地址0xFFFE),应用支持子层APS从绑定表中自动获得目标设备的短地址,从而将数据顺利发送到目标节点的一个或者多个应用服务乃至分组。
  说明:绑定是基于设备应用层端点的绑定,只能在互为补充的设备间被创建。即被绑定的两个设备必须在其简单描述符结构中登记为相同的命令ID,且其中一个设备作为输入,另一个设备作为输出。

概述
1.1. 概念
  绑定指的是在两个节点的应用层上建立起来一条逻辑链路。在同一个节点可以建立多个绑定服务,分别对应不同种类的数据包,此外,绑定也允许有多个目标节点,即一对多绑定。
1.2. 作用
  一旦在源节点上建立绑定,其应用服务即可向目标节点发送数据而无需知道目标地址。协议栈会根据数据包的命令标识符通过自身的绑定表查找所对应的目标设备地址,完成数据包的发送和接收。若打开编译选项NV_RESTORE,那么协议栈在编译目标文件时会把绑定表中的绑定条目保存在非易失性存储器中,如遇意外重启、节点电池耗尽需要更换等突发状况时,节点能够自动恢复到掉电前的工作状态,无需用户重新设定绑定服务。
Zigbee绑定的四种方式及其特点
2.1. 两个设备节点分别通过按键机制调用ZDP_EndDeviceBindReq()函数
  即在一定时间内,两个节点都通过按键或者其他方式触发调用ZDP_EndDeviceBindReq()函数。
  特点:该绑定方式需要协调器的参与,绑定成功后不再需要协调器;该方式不局限于EndDevice的绑定,也可适用于Router的绑定。
2.2. Match方式
  即一个节点通过调用afSetMatch()函数允许或者禁止本节点被Match(协议栈中默认允许节点被Match),然后另一个节点在一定时间内发起ZDP_MatchDescReq请求,允许被Match的节点会响应这个Req请求,发起Req的节点在接收到RSP的时候就会自动处理绑定。
  特点:无需第三方节点,处于网络中的两个可Match的节点(即一方的outcluster至少有一个是另一方节点的incluster)皆可实现绑定。
2.3. ZDP_BindReq和ZDP_UnbindReq方式
  即通过调用上述两个函数(ZDP_BindReq()和ZDP_UnbindReq())来实现绑定和解绑。
  特点:该绑定方式需要第三方节点发送bind或者unbind命令给控制节点,控制节点收到Req后直接处理绑定而不用告知被控制的节点,绑定表存储在控制节点中。该方式可实现一个节点绑定到一个Group上。此外,该绑定方式需要知道控制节点以及被控制节点的64位长地址。
2.4 手工管理绑定表
  通过应用程序调用bindAddEntry()等函数来实现手工管理绑定表。
  特点:改绑定方式具有很大的自由度,无需其他节点的参与,但应用程序所做的工作较多,同时需要实现知道被绑定节点的短地址、端点号、incluster和outcluster等信息。
建立绑定表的两种机制
3.1 目标设备扩展地址(即64位MAC地址)已知,在源设备端只需通过调用函数zb_BindDevice()进行绑定,该函数中的地址就是目标设备的扩展地址。
3.2. 目标设备扩展地址未知,设定目标设备为允许绑定状态,源设备通过调用函数zb_BindDevice()进行绑定,其中扩展地址参数为NULL。

链接:https://www.jianshu.com/p/72f20ca950e6

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BINDING KuangJunBin:本文是作者根据TI Z-Stack开发文档,ZigBee Specification-2007,《Zigbee Wireless Networking》等英文资料整合和翻译而成,采用中英双语对照方便读者理解,文中翻译不当之处,望广大同行不吝赐教。推广ZigBee技术,提高国内电子行业的国际影响力,是我们无线通讯工程师的愿景。本文欢迎转载,请保留作者信息和出处,作为支持我继续努力前行的动力,谢谢! E-mail:kuangjunbin@gmail.com In the Zigbee 2006 release,the binding mechanism is implemented in all devices and is called source binding. Binding allows an application to send a packet without knowing the destination address,the APS layer determines the destination address from its binding table,and then forwards the message on to the destination application(or multiple applications)or group. ZigBee2006版本中规定,在全部节点中实现绑定机制,并将其称为源绑定绑定机制允许一个应用服务在不知道目标地址的情况下向对方(的应用服务)发送数据包。发送时使用的目标地址将由应用支持子层(APS)从绑定中自动获得,从而能使消息顺利被目标节点的一个或多个应用服务,乃至分组接收。 Binding Table 1.Defined in RAM,but can be saved in Flash if the NV_RESTORE compiler option is used 2.Stored on source node(REFLECTOR compiler option required) 3.Entries map messages to their intended destination 4.Each entry in the binding table contains the following: typedef struct { uint16 srcIdx;//Source index uint8 srcEP;//Source endpoint uint8 dstGroupMode;//Specifies normal or group addressing uint16 dstIdx;//Destination index or group address uint8 dstEP;//Destination endpoint uint8 numClusterIds;//Number of cluster IDs in the clusterIdList below uint16 clusterIdList[MAX_BINDING_CLUSTER_IDS]; }BindingEntry_t; 绑定 1. 绑定存放的位置是内存中预先定义的RAM块,如果编译选项NV_RESTORE被激活,也能保存在Flash里。 2. 绑定放置在源节点(需要激活编译选项REFLECTOR)。 3. 绑定的条目把需要发送的消息映射到它们的目标地址上。 4. 绑定中每个条目(entry)包括以下内容: 绑定条目结构体的定义

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值