理论教育 物联网开发与应用实践:节点软件设计与组网

物联网开发与应用实践:节点软件设计与组网

时间:2023-10-27 理论教育 版权反馈
【摘要】:组建一个完整的ZigBee网络主要由ZigBec协议栈的网络层来实现。ZigBce网络层主要为加入的节点分配地址并提供路由发现及路由维护等。协议栈采用的是TI公司Z-Stack2.3.1版本,该协议栈可支持ZigBee2007、ZigBeePRO。图5-30 协调器节点工作流程图组建网络的两个步骤主要是网络初始化及节点加入网络。这一系列的过程都是通过协议栈各层间原语通信实现的。图5-31 节点与协调器关联入网原语时序图图5-31中NWK称为网络层,ZDO指设备对象,SAPI指应用对象。

物联网开发与应用实践:节点软件设计与组网

组建一个完整的ZigBee网络主要由ZigBec协议栈的网络层来实现。ZigBce网络层主要为加入的节点分配地址并提供路由发现及路由维护等。协调器作为网络的第一个节点设备,主要负责网络的建立及参数配置,图5-30所示是其软件流程图。协议栈采用的是TI公司Z-Stack2.3.1版本,该协议栈可支持ZigBee2007、ZigBeePRO。

978-7-111-44976-8-Chapter05-40.jpg

图5-30 协调器节点工作流程图

组建网络的两个步骤主要是网络初始化及节点加入网络。网络初始化首先要确定网络协调器,通过主动扫描发送信标请求命令来检测该网络中是否存在协调器。如果在扫描期限内没有检测到信标,则将自己作为网络的协调器,并不断地产生信标并广播出去;然后进行信道扫描,对指定的信道或默认信道进行能检测以避免可能的干扰,并将那些能量值超过了允许水平的信道丢弃,而后对剩余信道进行主动扫描,以检查区域内有没有其ZigBee网络存在;完成主动扫描后,即可获得设备所在区域已有的各ZigBee网络的网络标识符(PAN ID),至此,网络初始化基本完成。

加入网络可通过两种方式完成:一是由子节点发起的通过关联加入网络;二是由父节点发起的通过已有父节点(协调器)加入网络。图5-30所示流程图中的子节点便是采用第一种方式入网的。当一个节点希望加入该网络时,首先会进行信道扫描搜索周围是否存在协调器。若在扫描期限内检测到协调器,则向其发送关联请求。协调器收到请求后会回复确认帧(ACK),并向其上层发送连接指示原语。当节点收到调器的回复帧后,节点的MAC层将等待一段时间,以便接协调器发出连接响应。如果协调器的地址资源足够,它就会给节点分配一个16位的短地址,并产生包含新连接和连接状态的响应命令。至此,节点将可以成功地与协调器进行连接,并开始通信。这一系列的过程都是通过协议栈各层间原语通信实现的。节点与协调器关联入网的原语时序图如图5-31所示。

978-7-111-44976-8-Chapter05-41.jpg(www.daowen.com)

图5-31 节点与协调器关联入网原语时序图

图5-31中NWK称为网络层,ZDO指设备对象,SAPI指应用对象。

由于本文采用CC2591来增大功率,需外接退耦电容以保证良好的接地性能,在Z-Stack软件里对hal_mac_cfg.h库中RSSI进行补偿,具体定义如下:

978-7-111-44976-8-Chapter05-42.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈