ZigBee的传感器网络设计
1 ZigBee网络自主配置技术
1.1 ZigBee网络链路故障
链路故障节点是指失去网络连接的节点,在树形拓扑结构中找不到父节点,当与父节点失联后,在树形拓扑结构中ZigBee的数据采集是向汇聚节点发送信息,所以当链路故障发生后也就无法成功地向汇聚节点发送数据。
在这个树形拓扑结构中节点需要和协调器保持数据同步,此时R1节点失去网络连接,那么R1与R2就会断开,R2以及后代节点也就形成了孤立子树,无法再接收到同步消息。
1.2 链路故障节点重新加入网络自主配置方案设计
1.2.1 无子节点的链路故障节点
如果链路故障节点无子节点,当重新发起网络请求时,如父节点有空余的地址空间,则根据地址分配公式 Cskip 计算网络地址,如无地址空间则拒绝其加入,该故障节点会经过一段时间重新再发起请求。
1.2.2 有子节点的链路故障节点
若链路故障节点有子节点,要重新加入网络就必须考虑孤立子树问题。链路故障节点充当子树网络的代理协调器,向所有子树网络发送消息,在发送请求时同时考虑子树的节点数、高度等参数。如果请求失败则放弃代理子树按照链路故障节点重新加入网络过程。
2 ZigBee网络设计原型系统实现
2.1 系统的总体实现结构
ZigBee网络具有自行组网能力,自主配置并收发数据,由路由节点、终端节点、协调器节点组成,而网络的具体角色需要代码来设定,由于网络中只有一个协调器,所以首先编译该部分源码,终端节点能耗低因此代码也简单。
实现步骤:通过Socket接口与网关进行通信实现数据收发;缓存区负责存储数据,当缓存区存满时就向数据库中插入数据也就是数据缓存;从缓存表中提取网络拓扑信息也就是网络拓扑绘制;软件把采集到的传感数据存入数据库中,以便提供给用户查询也就是数据库管理。
2.2 链路网络状态检测
检测网络状态只要是对链路故障的排查,当节点已成为故障节点,故障节点需要发起重新加入网络的申请,启动用于同步信标的定时器并设置其计数值,若收到信标消息计数器清零,否则计数器值加1,当累加值超过5时,其值的设定一方面依据Z-Stack 协议栈源代码 f8w Config.cfg 文件中的宏定义:-DBEACON_REQUEST_DELAY=1000,为了避免向已发生故障的节点发送数据,需要在该周期内判断是否发生故障。
2.3 更新子树节点信息
链路故障节点有子节点时,如果成功加入网络,则携带的整棵子树需要更新状态,此时需要广播状态更新消息,使节点同步更新高度、地址、网络等信息,主要代码如下:
void Sub_Tree_Update(){
SUBTREE_UPDATE sub_update;
for(int i=0;i<MAX_NUM_CHILDREN;j++){//遍历子节点列表,发送子树更新消息
if(AF_DataRequest(&SampleApp_SubUbdate_DstAddr,//
&SampleApp_epDesc,
SAMPLEAPP_SUBTREE_UPDATE_CLUSTERID,
(uint16)sizeof(sub_update),
(uint8*)sub_update,
&SampleApp_TranslD,
AF_DISCV_ROUTE, //AF_DISCV_ROUTE,
AF_DEFAULT_RADIUS==afStatus_SUCCESS){}
3 基于MATLAB仿真平台实验测试与结果分析
为了评价基于ZigBee的传感器网络设计的性能,本文将与ZigBee标准协议下的修复能力相关算法应用MATLAB仿真进行了比较。
(1)生成网络拓扑:在仿真环境中模拟生成 Zig Bee 网络节点。
(2)设置故障点:将带子节点的网络节点设置为故障节点。
(3)变化节点个数:改变ZED和ZR进行测试。
将上述实验结果换算成节点加入率,绘制节点加入率随节点数量变化的曲线图:
图1和图2显示当 ZED 在节点中比例越高其节点加入率急剧下降,在修复链路故障后,链路故障节点重新加入网络处理机制的修复能力比 ZigBee 标准协议修复能力有所提高,但随 ZED 比例提高。
基于ZigBee的传感器网络设计,可以满足实际运行的需要。在与 ZigBee 标准协议对比下,可以看出链路故障节点重新加入网络处理机制在处理链路故障节点重新加入网络时的成功率要比 ZigBee 标准协议有所提高。
主要参考文献
[1]刘涛涛.基于ZigBee技术的设备状态监测与故障诊断系统设计[D].太原:中北大学,2014.
[2]李蔚.基于ZigBee的无线传感器网络通信协议栈设计与实现[D].成都:电子科技大学,2012.
[3] 朱思建.基于开源系统的无线传感器网络组网的研究[D].武汉:湖北工业大学,2014.
相关文章:
相关推荐:
网友评论: