基于ZigBee协议栈的无线传感器网络的设计
传感器节点启动后,开始初始化网络。在ZDO层调用网络层的网络发现函数NLME_NetworkDiscoveryRequest(),尝试发现是否已经存在的网络可以加入。当发现协调器所建立的网络时,传感器节点的ZDO层会收到网络发现确认信息。这时,传感器节点通过调用网络层的网络加入请求函数NLME_JionRequest(),向协调器发送加入网络请求。如果协调器允许其他节点加入网络,则该传感器节点会接收到协调器发送来的加入确认信息。这里的网络发现函数NLME_NetworkDiscoveryRequest()和网络加入请求函数NLME_JionRequest(),与协调器中所调用的网络形成函数NLME NetworkFormationReouest()一样,均为ZigBee协议栈所封装起来的函数,只能由开发人员编程时调用,不能看到其内部程序。传感器节点加入网络的流程如图3所示。本文引用地址://m.amcfsurvey.com/article/154688.htm
2.3 传感器节点与协调器的绑定
为了让传感器节点与协调器能相互传送数据,两者之间必须建立绑定关系。绑定是两个(或多个)应用设备之间信息传输的控制机制,在ZigBee2006及以后的协议栈中,所有的设备都必须执行绑定机制。
协调器通过执行zb_AllowBind()函数,开启允许绑定功能。在该函数中,可以设置允许绑定的时间,即在某一段时间内,协调器接收其他设备发来的绑定请求,超过这段时间,则关闭该功能。传感器节点通过执行绑定设备函数zb_BindDevice(),向协调器发送绑定请求。协调器接收到传感器节点发送来的绑定请求,并进行解析,绑定请求信息中包含了传感器节点中的端点信息,然后协调器在自身所注册过的端点中寻找与之相匹配的端点。找到之后,则处理绑定请求信息,并向传感器节点发送绑定响应信息。传感器节点接收到绑定响应信息之后,通过调用应用支持子层的绑定请求函数APSME_BindRequest()来建立绑定表,并将向自己的应用层发送绑定确认信息。传感器节点与协调器建立绑定的流程如图4所示。
评论