ZigBee四种绑定 在TI Z-Stack协议栈中应用
BindingTable 绑定表 1.绑定表存放的位置是内存中预先定义的块,如果编译选项NV_RESTORE被激活,也能保存在Flash里。 2.绑定表放置在源节点(需要激活编译选项REFLECTOR)。 3.绑定表的条目把需要发送的消息映射到它们的目标地址上。 4.绑定表中每个条目包括以下内容: 5.绑定表条目结构体的定义 typedefstruct { uint16srcIdx;//源地址索引 uint8srcEP;//源端点 uint8dstGroupMode;//指定寻址模式 uint16dstIdx;//目标地址索引或者分组号 uint8dstEP;//目标端点 uint8numClusterIds;//在簇标识符表中簇标识符的个数 uint16clusterIdList[MAX_BINDING_CLUSTER_IDS];//簇标识符表 }BindingEntry_t; SimpleDescription---Howtobinddevices 概述---怎样绑定节点 绑定指的是两个节点在应用层上建立起来的一条逻辑链路。在同一个节点上可以建立多个绑定服务,分别对应不同种类的数据包。此外,绑定也允许有多个目标节点(一对多绑定)。 举个例子,在一个灯光网络中,有多个开关和灯光设备,每一个开关可以控制一个或以上的灯光设备。在这种情况下,需要在每个开关中建立绑定服务。这使得开关中的应用服务在不知道灯光设备确切的目标地址时,可以顺利地向灯光设备发送数据包。 一旦在源节点上建立了绑定,其应用服务即可向目标节点发送数据,而不需指定目标地址了(调用zb_SendDataRequest(),目标地址可用一个无效值0xFFFE代替)。这样,协议栈将会根据数据包的命令标识符,通过自身的绑定表查找到所对应的目标设备地址。 在绑定表的条目中,有时会有多个目标端点。这使得协议栈自动地重复发送数据包到绑定表指定的各个目标地址。同时,如果在编译目标文件时,编译选项NV_RESTORE被打开,协议栈将会把绑定条目保存在非易失性存储器里。因此当意外重启(或者节点电池耗尽需要更换)等突发情况的发生时,节点能自动恢复到掉电前的工作状态,而不需要用户重新设置绑定服务。 配置设备绑定服务,有两种机制可供选择。如果目标设备的扩展地址(64位地址)已知,可通过调用zb_BindDeviceRequest()建立绑定条目。如果目标设备的扩展地址未知,可实施一个“按键”策略实现绑定。这时,目标设备将首先进入一个允许绑定的状态,并通过zb_AllowBindResponse()对配对请求作出响应。然后,在源节点中执行zb_BindDeviceRequest()(目标地址设为无效)可实现绑定。 此外,使用节点外部的委托工具(通常是协调器)也可实现绑定服务。请注意,绑定服务只能在“互补”设备之间建立。那就是,只有分别在两个节点的简单描述结构体(simpledescriptorstructure)中,同时注册了相同的命令标识符(command_id)并且方向相反(一个属于输出指令“output”,另一个属于输入指令“input”),才能成功建立绑定。 Thereare4waystobuildabindingtable: 建立一个绑定表格有四种方法可供选择: 自动绑定 一、负责发送消息的设备在网络上广播带有如下参数的“个人公告”(PersonalAdvertisement): (1)地址,配置文件标识符,簇集合列表; (2)描述符匹配请求-ZDP_MatchDescReq()。 二、匹配的设备会作出响应。 三、由ZDO处理和验证响应 四、负责发送消息的设备建立绑定表并保存绑定记录。 五、这种方法有时也称“服务发现”,“自动找寻”或者“自动匹配”。 ZigBee设备对象绑定请求-一种告诉目标设备建立绑定记录的委托工具,也称辅助绑定。 任何一个设备或应用服务,都能通过无线信道向网络上的另一个设备发送一个ZDO消息,帮助其建立一个绑定记录。这称为辅助绑定,在消息发向的设备上会建立一个绑定条目。 委托绑定的申请: 任一个应用服务,通过向ZDP_BindReq()[defi |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |