具有抗干扰性能无线中继自组网方法
技术领域
本发明涉及一种中继自组网方法,具体涉及一种具有抗干扰性能无线中继自组网方法。
背景技术
现有无线网络技术都是星型结构网络,是通过固定网络地址或通过DHCP获取网络地址实现通讯,并且同一网段节点间均不能直接通信,都需要经过人工设置,网关转发,单信道组网慢、通讯效率低。
发明内容
本发明的目的就是针对现有技术存在的缺陷,提供一种具有抗干扰性能无线中继自组网方法。
其技术方案是:具有抗干扰性能无线中继自组网方法,该方法包括如下步骤:1)主机初始化:清空所有节点的父节点地址,由主机负责发出所有组网指令,激活组网任务,以完成所有子节点的组网过程;
2)第一层节点组网:主机组网,主机发信号强度返回的广播,广播网络设备发现指令,所有收到广播的节点随机延时回复主机本机的地址和信号强度,接收子节点回复的数据并根据rssi值排序,对每个节点的回复,主机对其分配统一地址并回复确认信息,根据判断选择是否更新主机路由表,以完成设置其地址、父节点地址,节点收到后再次回复主机,根据判断扫描次数是否达到上限来选择下一节点,主机再次重复以上过程,直至没有节点响应为止,这样主机就找到了所有的子节点列表;
3)第二层节点组网:第一层节点按照信号强度排序,先从信号强度最强节点来发送信号强度返回广播,循环上述过程,依次得到其所有子节点的列表并设置好地址及其父节点,顺序依次重复以上过程,直至本级节点再没有子节点响应为止,这样就得到了此级节点对应的下一级节点的子节点列表;
4)其它层节点组网:然后继续依照节点信号强度排序,逐层完成各层的子节点列表,直至完成最末级节点的节点列表并设置好地址及其父节点;
5)主机路由寻址表:以上过程得到的节点地址及其父节点的组网信息,主机存储于路由寻址表中,主机寻址表中保存每个节点的备用父节点地址,当某节点丢包严重时则触发主机尝试启用其父节点,尝试有效则正式启用备用父节点,从机路由寻址表中只存储其子节点的地址及其父节点地址;
6)从机路由寻址表:每个节点都有从机路由寻址表,即存储子节点地址及其父节点地址,并且只存储自己以下的所有子节点的路由表;
7)节点发送数据包:每个节点发数据包之前先侦测信道是否空闲,若信道忙则随机等待一定时间后再侦测,这样不断循环直至信道空闲,即开始发送数据包;
8)中继节点转发寻址:数据包下行时,每个节点检测自己从机路由寻址表中是否包含数据包目标地址,不包含则停止,包含则按照从机路由寻址表判断得到自己对应的下级子节点地址,将数据包传递给此节点并重复此过程直至到达目标子节点,上行数据包则直接转发至父节点地址;
9)中继节点转发异常:按照统一的优化原则,每相邻节点间传输数据包时均要有回复确认信息,其中将下一级节点的继续中继的数据包视同为回复确认信息,如果没有收到回复则会重发数据包,尝试三次仍失败时,返回其父节点失败信息,这样每个节点就都存在18个数据包;
10)中继节点综合判断:每节点处理一个数据包就建立一个具有一定生命周期的状态管理区,综合判断收到的步骤9)中这18个数据包情况,综合判断出是否发下一级数据、是否回复父节点、是否发送目标节点回复数据包,如果收到目标节点回复数据包并可靠上传或者生命周期超时则释放该管理区,这样逐级完成从主机到目标节点,以及从目标节点返回主机数据包的中继转发过程。
其中,步骤2)中,主机每次发出的信号强度返回广播,主机只在设定的有限时间内接收设定的有限个节点的响应。
所述设定的有限时间为0.5—3秒;所述设定的有限个节点为5—15个节点。
步骤5)中,主机寻址表中保存每个节点的备用父节点地址,设为最多2个。
步骤7)中,所述的一定时间为小于等于7毫秒。
步骤9)中,所述统一的优化原则为对于任意节点包括主机,收到的数据包都要对应回复一个简短的确认信息,如果收到的数据包需要马上处理回应数据包,则可用此数据包替代回复确认信息。
步骤9)中,所述的18个数据包分别为:本节点发送的三个数据包、下一节点发送的三个数据包、回复前一节点的三个已收到回复包、下一节点的三个已收到确认包、收到此次中继流程目标节点的三次个回复数据包、上传的三个目标节点回复数据包。
本发明与现有技术相比较,具有以下有益效果:本发明实现了组网不需要人工逐一进行节点的设置,大大缩短了组网时间,可实现任意节点移动后主机可自动重新快速自适应组网;同时数据包中继效率比传统单信道中继技术提高一倍左右。本发明内容可广泛应用于路灯、水电气表等需要大范围中继的终端采集上,具有良好的推广价值。
附图说明
图1是本发明中主机与节点间组网结构示意图;图2是本发明中一种实施例的工作步骤流程图。
具体实施方式
一种具有抗干扰性能无线中继自组网方法,主机与节点间组网结构参照图1,从节点11到节点NN都是主机的子节点,节点11是节点21的父节点,节点21是节点N1的父节点,节点N1是目标节点,数据包沿着无线信道双向收发传输。
该方法包括如下步骤:参照图1—图2;1)主机初始化:清空所有节点的父节点地址,由主机负责发出所有组网指令,激活组网任务,以完成所有子节点的组网过程;
2)第一层节点组网:主机组网,主机发信号强度返回的广播,广播网络设备发现指令,所有收到广播的节点随机延时回复主机本机的地址和信号强度,接收子节点回复的数据并根据rssi值排序,对每个节点的回复,主机对其分配统一地址并回复确认信息,根据判断选择是否更新主机路由表,以完成设置其地址、父节点地址,节点收到后再次回复主机,根据判断扫描次数是否达到上限来选择下一节点,主机再次重复以上过程,直至没有节点响应为止,这样主机就找到了所有的子节点列表;
3)第二层节点组网:第一层节点按照信号强度排序,先从信号强度最强节点来发送信号强度返回广播,循环上述过程,依次得到其所有子节点的列表并设置好地址及其父节点,顺序依次重复以上过程,直至本级节点再没有子节点响应为止,这样就得到了此级节点对应的下一级节点的子节点列表;
4)其它层节点组网:然后继续依照节点信号强度排序,逐层完成各层的子节点列表,直至完成最末级节点的节点列表并设置好地址及其父节点;
5)主机路由寻址表:以上过程得到的节点地址及其父节点的组网信息,主机存储于路由寻址表中,主机寻址表中保存每个节点的备用父节点地址,当某节点丢包严重时则触发主机尝试启用其父节点,尝试有效则正式启用备用父节点,从机路由寻址表中只存储其子节点的地址及其父节点地址;
6)从机路由寻址表:每个节点都有从机路由寻址表,即存储子节点地址及其父节点地址,并且只存储自己以下的所有子节点的路由表;
7)节点发送数据包:每个节点发数据包之前先侦测信道是否空闲,若信道忙则随机等待一定时间后再侦测,这样不断循环直至信道空闲,即开始发送数据包;
8)中继节点转发寻址:数据包下行时,每个节点检测自己从机路由寻址表中是否包含数据包目标地址,不包含则停止,包含则按照从机路由寻址表判断得到自己对应的下级子节点地址,将数据包传递给此节点并重复此过程直至到达目标子节点,上行数据包则直接转发至父节点地址;
9)中继节点转发异常:按照统一的优化原则,每相邻节点间传输数据包时均要有回复确认信息,其中将下一级节点的继续中继的数据包视同为回复确认信息,如果没有收到回复则会重发数据包,尝试三次仍失败时,返回其父节点失败信息,这样每个节点就都存在18个数据包;
10)中继节点综合判断:每节点处理一个数据包就建立一个具有一定生命周期的状态管理区,综合判断收到的步骤9)中这18个数据包情况,综合判断出是否发下一级数据、是否回复父节点、是否发送目标节点回复数据包,如果收到目标节点回复数据包并可靠上传或者生命周期超时则释放该管理区,这样逐级完成从主机到目标节点,以及从目标节点返回主机数据包的中继转发过程。
其中,步骤2)中,主机每次发出的信号强度返回广播,主机只在设定的有限时间内接收设定的有限个节点的响应。
所述设定的有限时间为0.5—3秒;所述设定的有限个节点为5—15个节点。
步骤5)中,主机寻址表中保存每个节点的备用父节点地址,设为最多2个。
步骤7)中,所述的一定时间为小于等于7毫秒。
步骤9)中,所述统一的优化原则为对于任意节点包括主机,收到的数据包都要对应回复一个简短的确认信息,如果收到的数据包需要马上处理回应数据包,则可用此数据包替代回复确认信息。
步骤9)中,所述的18个数据包分别为:本节点发送的三个数据包、下一节点发送的三个数据包、回复前一节点的三个已收到回复包、下一节点的三个已收到确认包、收到此次中继流程目标节点的三次个回复数据包、上传的三个目标节点回复数据包。
具体工作步骤如下: 步骤S001 主机组网开始,以主机为父节点开始组网;
步骤S002 父节点广播搜索指令;
步骤S003 结束广播开始接收子节点响应,并根据RSSI值排序;
步骤S004 判断父节点组网是否超时,若是,则执行步骤S005,若否,则执行步骤S003;
步骤 S005 顺序按次向接收到的子节点分配地址;
步骤 S006 判断接收到的相应子节点回复的确认命令,若是,则执行步骤S007,若否,则执行步骤S008;
步骤 S007 更新父节点路由表。
步骤 S008 判断本轮地址分配是否完成,若是,则执行步骤S009,若否,则执行步骤S005。
步骤 S009 判断本轮搜索次数是否达到上限,若是,则执行步骤S011,若否,则执行步骤S010;步骤S010 判断连续两次搜索是否收到子节点响应,若是,则执行步骤S002,若否,则执行步骤S011;
步骤S011 父节点返回搜索到的子节点总数给主机;
步骤 S012 父节点组网结束;
步骤 S013 判断上一轮父节点发现的子节点数是否为0,若是,则主机组网结束,若否,则执行步骤S014;
步骤 S014 从上一轮搜索到的子节点按RSSI值顺序按次取一个作为父节点;
步骤 S015 重复父节点组网过程;
步骤 S016 判断当前父节点同层节点是否均已完成组网,若是,则执行步骤S013,若否,则执行步骤S017。
步骤 S017 判断主机单轮组网延时是否超时,若是,则执行步骤S018,若否,则执行步骤S019;步骤S018 主机向组网父节点发送返回子节点数量指令;
步骤S019 主机等待父节点返回发现的子节点数量;
步骤S020 判断主机是否接收到父节点返回指令,若是,则执行步骤S021,若否,则执行步骤S017;
步骤S021 判断子节点返回数量是否为零,若是,则执行步骤S014,若否,则执行步骤S022;
步骤S022 主机记录子节点数量更新路由表;
步骤S023 经过路径所有节点自动更新路由表,继续执行步骤S014,直至全部组网结束。