具体实施方式
本发明实施例提供了一种ZigBee网络的抗干扰方法和设备,用于增强ZigBee网络的抗干扰性能,使通信的可靠性提高。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的一种ZigBee网络的抗干扰方法,如图1所示,包括:
101、ZigBee网络中的网络节点检测是否受到WiFi信道的干扰。
在本发明实施例中,当ZigBee和WiFi同时使用相同频段通信时,会产生同频干扰。WiFi会严重影响ZigBee网络的吞吐量和丢包率,因此本实施例提供一种ZigBee网络的抗干扰方法就显得很重要。
如图2所示,为本发明实施例提供的ZigBee和WiFi(802.11)的信道分布示意图,ZigBee把2.4GHz的ISM频段划分为16个信道,每个信道带宽为2MHz。WiFi将该频段划分为13个信道,***可选定其中任一信道进行通信,信道带宽为22MHz,所以13个信道与ZigBee网络的16个信道有重叠,无重叠的信道最多只有3个。假定WiFi***工作在任一信道,则ZigBee和其信道频率重叠的概率为1/4。当ZigBee和WiFi同时使用相同频段通信时,产生同频干扰。
本发明实施例中,对于ZigBee网络中的网络节点,首先需要进行干扰检测,以判断是否受到WiFi信道的干扰,在本发明实施例中受到WiFi信道干扰的网络节点也可以称之为干扰区内的网络节点,没有受到WiFi信道干扰的网络节点也可以称之为干扰外的网络节点,需要说明的是,在本发明实施例中只从ZigBee中的一个网络节点的角度描述了其如何在与WiFi共存下ZigBee网络的抗干扰方法,ZigBee网络中的其它网络节点(除网络管理者的节点之外)都可以按照本发明实施例提供的抗干扰方法实现抗干扰,以提高通信的可靠性,此处作出说明,不做限定。
ZigBee网络中的网络节点检测是否受到WiFi信道的干扰,在实际应用中可以有多种实现方式,作为其中一种可实现的方式是,具体可以包括如下步骤:
A1、网络节点检测误包率(PER,Packet Error Rate);
A2、若PER超过误包率门限,网络节点进行能量检测(ED,EnergyDetective),若接收信号强度指示(RSSI,Received Signal Strength Indication)超过能量门限,网络节点检测的结果为受到WiFi信道的干扰,若RSSI没有超过能量门限,网络节点检测的结果为没有受到WiFi信道的干扰;
A3、若PER没有超过误包率门限,网络节点检测的结果为没有受到WiFi信道的干扰。
需要说明的是,误包率门限、能量门限可根据具体的应用场景以及本领域技术人员的经验值而灵活设置,如对通信质量要求较高时,可以将误包率门限设置的低一点,误包率门限具体可以选取为25%等值。能量门限为对RSSI所设置的门限值,当RSSI>能量门限时,网络节点认为检测到了干扰,能量门限的值具体按照实际的应用场景而设定。
步骤A1至A3中,由网络节点自行进行干扰判断,通过对PER和RSSI的判断,自行检测出该网络节点是否受到干扰,ZigBee网络中的网络节点检测是否受到WiFi信道的干扰,作为其中另一种可实现的方式是,还可以包括如下步骤:
B1、ZigBee网络中的网络节点(简称Node1)检测PER超过25%时,网络节点通知它的父节点或具有干扰检测功能的邻居节点(通称为Node2),由Node2完成干扰检测;
B2、Node 2检测自己和Node 1之间的链路质量指示(LQI,Link QualityIndication);
B3、当LQI<链路质量门限时,Node 2继续进行能量检测(ED),当检测结果RSSI>能量门限时,Node 2判断Node1存在干扰并通知给Node1。
需要说明的是,链路质量门限可根据具体的应用场景以及本领域技术人员的经验值而灵活设置,此处不做限定。步骤B1至B3中,由网络节点的父节点或具有干扰检测功能的邻居节点进行判断该网络节点是否受到干扰,然后在通知给该网络节点。
需要说明的是,在本发明实施例中,步骤101执行完成之后,还可以包括如下步骤:
网络节点向该网络节点的邻居节点发送N次干扰检测请求包,如果网络节点接收到该网络节点的邻居节点回复的应答帧,则说明该网络节点受到的干扰不严重,如果该网络节点没有接收到该网络节点的邻居节点回复的应答帧,则说明该网络节点受到的干扰很严重,此时,该网络节点无法和干扰外的网络节点进行数据收发,其中,N为自然数。
也就是说,本发明实施例中,ZigBee网络中的网络节点通过向其邻居节点N次发送干扰检测请求包,其中N取值的大小可以根据应用的需求设置。如果能接收到邻居节点的应答帧,说明此时ZigBee网络中的该网络节点还可以和邻居节点进行通信,只是通信质量较差,如果网络节点发出多个干扰检测请求包,都没有接收到邻居节点的应答帧,说明此时ZigBee网络中的该网络节点已经无法和邻居节点进行通信,该网络节点受到的干扰很严重。本发明实施例中,针对网络节点受到的干扰是否严重,本发明实施例中可以采取不同的抗干扰避免方式,在后续描述中再给出相应的具体说明,基于干扰强度的二分支抗干扰技术很有必要,考虑了恶劣环境下的情况,保证了ZigBee网络在任何时候都能较好的抗干扰性能。在干扰不严重时可以进行轻度干扰下的干扰避免,也可以称之为第一种干扰避免机制(FIAS,First InterferenceAvoidance Scheme),在干扰严重时进行重度干扰下的干扰避免,也可以称之为第二种干扰避免机制(SIAS,Second Interference Avoidance Scheme),在本发明后续实施例中将分别进行详细说明,需要说明的是,本发明实施例中FIAS和SIAS的命名只是为了区分本发明实施例中在干扰程度不同时所采用的是二分支抗干扰技术。
接下来,请具体参阅步骤102至104中关于本发明实施例提供的干扰避免的详细说明。
102、若网络节点受到干扰,网络节点切换到信道列表中的第一信道,其中,信道列表中包括ZigBee网络中的所有信道。
在本发明实施例中,当网络节点受到干扰时,此网络节点也可以称之为干扰区内的网络节点,本发明实施例中干扰区内的网络节点在受到干扰时可以直接切换到信道列表中的一个信道上(也称之为第一信道),这与现有技术中网络节点受到干扰后需要向网络管理器上报,由网络管理器选择最优的空闲信道后通知给网络中的所有节点是不同的,如果有多个网络节点都出现干扰时现有技术中整个抗干扰过程都依赖于网络管理器,严重增加了网络管理器的负荷,而本发明实施例中网络节点受到干扰后,由网络节点直接按照信道列表进行信道尝试,不需要网络管理器的干预,也就是说本发明实施例中网络节点进行信道尝试是自己可以直接进行的,并不依赖于网络管理器,给网络管理器增加负担。
在本发明实施例中,干扰区内的网络节点首先切换到信道列表中的第一信道,这个第一信道指的是信道列表中所有信道中的某一个具体信道,此处之所以命名为“第一”,是为了与后续实施例中出现的第二信道相区别,只是区别出第一信道和第二信道是两个不同的信道而已,只是一种对信道进行命名的方式而已,这两者之间不存在时序或者逻辑上的任何关系,当然也可以将第一信道命名为信道a,将第二信道命名为信道b,此处不做限定,仅作说明。
在本发明实施例中,干扰区内的网络节点按照信道列表进行信道切换,切换到信道列表中的一个信道,在信道列表中包括有ZigBee网络的所有信道,优选的,信道列表中所有信道还可以划分优先级,根据ZigBee信道和WiFi信道的频率偏差,把ZigBee的16个信道按优先级分成3级,大量的实测表明当两者的频差大于8MHz时,WiFi对ZigBee网络的影响可以忽略,当两者的频差越小时,WiFi对ZigBee网络的影响越小,对ZigBee网络的所有信道(信道号具体为11、12、13、14、15、16、17、18、19、20、21、22、23、24、25、26)划分为三级具体可以包括:第一级:信道15,20,25,26,这是WiFi与ZigBee信道不重叠的信道,频率偏差>12MHz,为最高优先级的信道;第二级:信道11,14,16,19,21,24,该级信道与WiFi的频率偏差小于12MHz大于7MHz;第三级:信道12,13,17,18,22,23,该信道与WiFi的频率偏差小于3MHz。为了保证干扰区内的网络节点能够优先的切换到受WiFi干扰小的信道,网络节点可以首先从第一级的信道进行尝试,然后依次进行后续级别的信道尝试,找到干扰区内的网络节点需要切换到的可用信道。
103、网络节点切换到第一信道之后,网络节点判断当前信道是否是可用信道。
在本发明实施例中,干扰区内的网络节点按照信道列表切换到第一信道之后,判断一下当前信道对于该网络节点是否是可用信道,当网络节点切换到第一信道上之后,对于该网络节点而言,其当前信道就是第一信道。网络节点在原信道上检测到干扰后,该网络节点切换到第一信道,判断该第一信道是否是可用信道,以保证该网络节点跳到该第一信道之后能够顺利的与邻居节点进行通信,可用信道指的是对于网络节点而言能够实现该网络节点与邻居节点通信的信道,例如如果第一信道是空闲信道,则该第一信道上就没有其他的网络节点,对于干扰区内的网络节点而言就是可用信道,可用信道也可以称之为无干扰信道。
需要说明的是,对于步骤103而言,作为其中一种可实现的方式是,具体可以包括如下步骤:
网络节点在当前信道上进行能量检测,若RSSI超过能量门限,则网络节点判断的结果为当前信道不是可用信道,若RSSI没有超过能量门限,则网络节点判断的结果为当前信道是可用信道。
也就是说通过干扰区内的网络节点在第一信道上进行能量检测,从而判断出该第一信道是否是可用信道。
104、若当前信道是可用信道,网络节点判断在第一预置时间内是否接收到网络节点的邻居节点发送的指示其它信道不是可用信道的命令帧。
在本发明实施例中,在干扰区内的网络节点判断出当前信道是可用信道时,还并不能由此断定该网络节点切换到第一信道后能够在第一信道上与邻居节点进行通信,而是需要网络节点设置一个第一预置时间,监测在这个第一预置时间内是否接收到该网络节点的邻居节点发送的指示其它信道不是可用信道的命令帧,也就是说,本发明实施例中所有网络节点在接收到一个命令帧(其帧包括的内容是指示其它信道不是可用信道)之后都会进行转发,如果在第一预置时间内干扰区内的网络节点没有接收该命令帧,则如果在第一预置时间内没有收到其它信道不是可用信道的命令帧且该第一信道对于自该网络节点是可用信道,则证明该第一信道对于干扰区内的所有网络节点都是可用信道,此时干扰区内的网络节点切换到第一信道是信道切换成功的。其中,指示其它信道不是可用信道的命令帧中其它信道指的是信道列表中除第一信道以外的所有信道。
需要说明的是,步骤104的执行条件是在第一预置时间内若没有接收到指示其它信道不是可用信道的命令帧而执行的方法,那么在本发明实施例中,若在第一预置时间内接收到指示其它信道不是可用信道的命令帧,则表示干扰区内的网络节点切换到第一信道并不能实现该网络节点与邻居节点的通信,即此次信道切换是失败的,需要重新进行信道切换,则干扰区内的网络节点在第一预置时间的时刻点到达之后,该网络节点切换到信道列表中的第二信道;
网络节点切换到第二信道之后,网络节点将第二信道作为当前信道,再次执行步骤103和步骤104,即:
判断当前信道是否是可用信道,若当前信道是可用信道,网络节点判断在第一预置时间内是否接收到网络节点的邻居节点发送的指示其它信道不是可用信道的命令帧,若没有接收到指示其它信道不是可用信道的命令帧,网络节点在当前信道上向网络节点的邻居节点广播信道选定帧,以使接收到广播信道选定帧的邻居节点向网络节点反馈应答帧,其中,信道选定帧包括网络节点的网络地址。
需要说明的是,在本发明实施例中,干扰区内的网络节点切换到第二信道的信道切换是失败时,需要重新进行信道切换,在第一预置时间的时刻点到达之后,需要切换到信道列表的第三信道,循环执行本发明实施例提供的步骤103和104,直至满足步骤104的条件时表示干扰区内的网络节点切换成功,才可以执行后续广播信道选定帧的步骤。
需要说明的是,在本发明实施例中,网络节点检测受到干扰后,网络节点按照信道列表首先切换信道到第一信道,当网络节点切换到第一信道不成功时再切换信道到第二信道,依次的,当切换到第二信道不成功时按照信道列表切换到第三信道等等,优选的去,按照前述介绍,信道列表可以按照优先级对所有信道进行排列,则干扰区内的网络节点可以按照信道列表中所列的信道依次进行信道尝试,直至干扰区内的网络节点进行信道切换成功为止,当干扰区内的网络节点信道切换成功之后,再向该网络节点的邻居节点广播信道选定帧,以告知其邻居节点该网络节点切换到了信道选定帧中所述的信道。
105、若没有接收到指示其它信道不是可用信道的命令帧,网络节点在当前信道上向网络节点的邻居节点广播信道选定帧,以使接收到广播信道选定帧的邻居节点向网络节点反馈应答帧,其中,信道选定帧包括网络节点的网络地址。
在干扰区内的网络节点切换到第一信道切换成功之后,该网络节点在第一信道上向其邻居节点广播信道选定帧,向邻居节点告知切换到的信道号,以表示该网络节点成功切换到第一信道了,所有收到该信道选定帧的邻居节点记录下该网络节点广播的信道号,并向其回复应答帧。
需要说明的是,本发明实施例中描述的第一预置时间是ZigBee网络中的所有网络节点都需要遵循的时间控制,第一预置时间的取值具体可根据实际的应用场景以及本领域技术人员的经验值而灵活设置,如对ZigBee网络反应要求较快时,可以将第一预置时间设置的低一点。具体的,第一预置时间可以为根据ZigBee网络的拓扑和节点密度设置的用以判断当前信道是否可用信道而必要的数据收发时间,其中,必要的数据收发时间是指网络节点广播信道选定帧及等待反馈应答帧的超时时间,例如,第一预置时间设置为网络节点广播信道选定帧所用的时间加上等待邻居节点反馈应答帧的超时时间。
需要说明的是,在本发明实施例中步骤105执行之后,还可以包括如下步骤:
当网络节点接收到网络节点的所有邻居节点回复的应答帧时,网络节点停止广播信道选定帧,如果在第二预置时间内没有收到全部邻居节点返回的应答帧,网络节点停止广播信道选定帧。
需要说明的是,步骤105中网络节点向邻居节点广播信道选定帧,则停止广播信道选定帧的条件有如下两种:1)收到了该网络节点的所有邻居节点回复的应答帧,则表示该网络节点的所有节点都收到了该网络节点广播的信道选定帧,故此时该网络节点可以停止广播信道选定帧;2)、在第二预置时间的时刻点到达时,停止广播信道选定帧,此时该网络节点默认已经向所有的邻居节点广播成功,不再广播信道选定帧。
需要说明的是,本发明实施例中描述的第二预置时间是ZigBee网络中的所有网络节点都需要遵循的时间控制,第二预置时间的取值具体可根据实际的应用场景以及本领域技术人员的经验值而灵活设置,如对ZigBee网络反应要求较快时,可以将第二预置时间设置的低一点。具体的,第一二预置时间可以为根据网络节点传播的时延最大值。
需要说明的是,步骤104的执行条件是当前信道是可用信道而执行的方法,那么在本发明实施例中,若当前信道不是可用信道,本发明实施例提供的方法还可以包括如下步骤:
若当前信道不是可用信道,网络节点在当前信道上向网络节点的邻居节点广播当前信道不是可用信道的命令帧,以使网络节点的邻居节点在第一预置时间内收到该命令帧后转发该命令帧。
也就是说,若干扰区内的网络节点切换到第一信道之后发现第一信道不是可用信道,则向该网络节点的邻居节点广播该第一信道不是可用信道的命令帧,则该网络节点的邻居节点接收到该命令帧之后向其邻居节点进一步的转发。
在本发明实施例中,当干扰不严重时,干扰区内的网络节点可以进行FIAS干扰避免,则在原信道上通知干扰区外的网络节点干扰区内的网络节点所选定的新信道,当干扰严重时,干扰区内的网络节点已经无法向干扰区外的节点通知新信道了,所以可以进行SIAS干扰避免,由干扰区外的网络节点通过信道尝试(按照信道列表中所列信道依次尝试)的方法找到干扰区内的网络节点所在信道的信道,然后再进行通信,接下来分别进行详细说明:
在步骤105执行完成之后,本发明实施例还可以包括如下步骤:
C1、网络节点切换到第一信道之后,当网络节点需要进行数据传输时,如果目的节点和网络节点在同一信道上,则网络节点在当前信道上向目的节点发送数据,如果目的节点和网络节点不在同一信道上,则网络节点把数据存入网络节点的缓冲区中。
需要说明的是,在ZigBee网络中的所有网络节点都设置缓冲区,当一个网络节点需要发送数据而目的节点与该网络节点不再同一信道上时,先将数据保存在自己的缓冲区中。
在步骤C1执行之后,还可以包括如下步骤:
C2、如果目的节点和网络节点不在同一信道上,当目的节点按照信道选定帧切换信道到网络节点的当前信道后,网络节点把缓冲区里的数据向目标节点发送。
需要说明的是,在本发明实施例中,目的节点接收到该网络节点广播的信道选定帧之后,目的节点可以获取该网络节点所在的信道,则该目的节点可以进行信道切换到该网络节点所在的信道,则此时目的节点就与该网络节点处在了同一个信道上,则此时网络节点在缓冲区里存储的数据就可以发送到目的节点了,实现了干扰区内的网络节点与目的节点的通信,解决了ZigBee网络中网络节点的干扰问题。
步骤C1、C2中,针对网络节点受到的干扰不严重时,干扰区内的网络节点广播的信道选定帧可以被目的节点接收到,采用的干扰避免方式实现网络节点和目的节点之间的通信,就是前述实施例描述的FIAS。
需要说明的是,在本发明实施例中,步骤101网络节点检测是否受到干扰之后,若该网络节点没有受到干扰,本发明实施例还可以包括如下步骤:
若网络节点没有受到干扰,且网络节点接收到受到干扰的另一网络节点切换到新信道后广播的信道选定帧,如果网络节点与另一网络节点在同一信道上,网络节点向另一网络节点发送数据,或网络节点接收另一网络节点发送的数据。
需要说明的是,本发明实施例中,若该网络节点没有受到干扰,但是该网络节点接收到受到干扰的另一网络节点切换到新信道后广播的信道选定帧,则该受到干扰的另一网络节点检测干扰以及信道切换和广播信道选定帧的方式具体可以如前述实施例步骤101至104的描述,此处不再赘述。
需要说明的是,若网络节点与另一网络节点不在同一信道上,本发明实施例还可以包括如下步骤:
如果网络节点与另一网络节点不在同一信道上,该网络节点按照信道选定帧切换信道到另一网络节点所在的新信道上,网络节点向另一网络节点发送数据,或网络节点接收另一网络节点发送的数据。
需要说明的是,如果该网络节点可以在原信道上与干扰区外的网络节点通信,并且可以切换信道和干扰区内的网络节点通信,则称该网络节点也被称之为边界节点,该边界节点周期性的在原信道和干扰区内网络节点选定的信道上切换信道。边界节点在原信道上时,和原信道上的网络节点通信,切换到干扰区内节点所在信道时,和干扰区内的网络节点通信。当边界节点要进行信道切换时,先广播信道切换预通知命令(该命令里含有自己的网络地址),收到此通知命令的网络节点停止向该边界节点发送数据并把数据存入自己的缓冲区。边界节点切换信道后,把自己缓冲区里的数据向目标节点发送,数据发送完成后,广播该边界节点在信道上的通知帧(含有自己的网络地址),则接收到该帧的网络节点如果有发往该边界节点的数据,则进行竞争发送。当该边界节点周期性再次切换信道时,重复以上过程。此种实现方式可以针对网络节点受到的干扰不严重时实现数据的通信,在本发明实施例中称之为FIAS。
需要说明的是,在本发明实施例中,步骤101网络节点检测是否受到干扰之后,若该网络节点没有受到干扰,本发明实施例还可以包括如下步骤:
D1、若网络节点没有受到干扰,当网络节点需要向受到干扰的另一网络节点发送数据时,网络节点将数据存入网络节点的缓存区中;
D2、网络节点按照信道列表中的所有信道逐一发送测试帧,以使另一网络节点在另一网络节点所在的当前信道上回复应答帧,其中,测试帧包括网络节点的网络地址;
D3、若网络节点接收到另一网络节点回复的应答帧,网络节点获取另一网络节点所在的信道;
D4、网络节点在网络节点所在的当前信道上广播信道切换预通知命令,以使接收到信道切换预通知命令的网络节点停止向该网络节点发送数据并把数据存入接收到信道切换预通知命令的网络节点的缓冲区里;
D5、网络节点切换信道到另一网络节点所在的信道上;
D6、网络节点在另一网络节点所在的信道上向另一网络节点发送数据。
需要说明的是,本发明实施例中,若该网络节点没有受到干扰,但是该网络节点需要向受到干扰的另一网络节点发送数据,则该受到干扰的另一网络节点检测干扰具体可以如前述实施例步骤101的描述,此处不再赘述。
对于没有受到干扰的网络节点也称之为干扰区外的网络节点,对于步骤D1,干扰区外的网络节点需要向干扰区内的网络节点(即前述的另一网络节点)发送数据时,由于WiFi信道的干扰,干扰区外的节点无法将数据发送出去,则首先将数据存入缓存区,接下来,按照信道列表进行信道尝试,对所有信道逐一发送测试帧,对于步骤D3,如果在信道A上发送测试帧时恰好有干扰区内的网络节点回复了应答帧,则干扰区外的网络节点就可以因此断定干扰区内的网络节点就在信道A上,获取到该信道A,也就是获取到了另一网络节点所在的信道。
接下来,对于步骤D4,干扰区外的网络节点先广播信道切换预通知命令,表示干扰区外的网络节点就要切换信道了,则接收到该命令的网络节点就停止向该干扰区外的网络节点发送数据了,接收到该命令的网络节点将数据先存入其缓冲区里。
步骤D1至D6中,针对网络节点受到的干扰严重时,干扰区内的网络节点无法广播信道选定帧时,干扰区外的网络节点也无法接收到干扰区内的网络节点广播的信道选定帧时,干扰区外的网络节点主动进行信道尝试以找到干扰内的网络节点所在的信道然后进行通信实现网络节点和目的节点之间的通信,就是前述实施例描述的SIAS。
需要说明的是,在步骤D5执行完成之后,本发明实施例提供的方法还可以包括如下步骤:
网络节点在另一网络节点所在的信道上广播网络节点在信道上的通知帧;
网络节点接收已经收到通知帧的网络节点发送的数据。
也就是说,干扰区外的网络节点在切换到干扰区内的网络节点所在的信道上后,广播干扰区外的网络节点在信道上的通知帧,则接收到该通知帧的网络节点就可以向干扰区外的网络节点发送数据了。
需要说明的是,在步骤D2执行完成之后,本发明实施例提供的方法还可以包括如下步骤:
若网络节点遍历信道列表的所有信道之后,没有接收到另一网络节点回复的应答帧,网络节点将网络节点的缓存区中发送给另一网络节点的数据清除。
也就是说,当干扰区外的网络节点遍历信道列表的所有信道之后,仍然没有接收到该另一网络节点的应答帧,表示该另一网络节点已经宕掉(或者称之为掉线)了,则干扰区外的网络节点发送给该另一网络节点的数据就不可能再发送成功了,可以将其清除掉,以节省缓存区的空间容量,提高空间利用效率。
在本发明实施例中,在ZigBee网络中的网络节点受到干扰时,按照信道列表切换到第一信道,然后判断是否是可用信道,若当前信道是可用信道,且没有接收到指示其它信道不是可用信道的命令帧,向该网络节点的邻居节点广播信道选定帧,以向邻居节点说明该网络节点切换到了可用信道,解决了该网络节点的干扰问题,提高了通信的可靠性,且不需要向网络管理器上报,不要由网络管理器进行协调,减轻了网络管理器的负荷。
以上实施例介绍了本发明实施例提供的ZigBee网络的抗干扰方法,接下来以实际的应用例进行详细的说明,请参阅图3、图4和图5所示。
本发明实施例提供的一种改进型的频率捷变(AFA,Advanced FrequencyAgility)抗干扰方法,克服现有技术的缺点,提高ZigBee网络的抗干扰性能。其方法主要由两部分组成:AFA干扰检测+AFA干扰避免。
首先,描述AFA干扰检测,AFA干扰检测通过干扰区内的网络节点和干扰区外的网络节点的双重检测迅速发现干扰,包括步骤如下:
1)、每一个ZigBee网络中的网络节点(具体如Node 1)检测PER,当PER超过25%,进行能量检测,当RSSI检测值超过能量门限时,Node 1向它的父节点(Node 2)发送N次干扰检测请求包,如果Node 1收到Node 2回复的干扰检测请求的应答帧,则进行FIAS干扰避免机制;如果没有收到Node 2返回的应答帧,证明干扰太严重,无法和干扰区外的网络节点通信,进行SIAS干扰避免机制。
2)、如果Node 2收到Node 1的干扰检测请求包时,会回复给发送干扰检测请求的应答帧,如果Node 2在第一预置时间T1内没有收到子节点的数据包也没收到干扰检测请求,记录下该子节点的地址,以表示该子节点受到干扰或者已经掉线了。
接下来,描述AFA干扰避免,AFA干扰避免机制通过干扰检测的结果对干扰强度进行判断,当干扰不是很严重时,进行FIAS干扰避免,当干扰很严重时,进行SIAS干扰避免。详细描述如下。
FIAS干扰避免的步骤如下,流程图如图3和图4,图3为干扰区内的网络节点的干扰避免流程图,图4为干扰区外的网络节点的干扰避免流程图。包括如下步骤:
1)、检测到干扰并发送干扰检测请求包的网络节点(也称之为干扰区内的网络节点)按照信道列表跳到第一信道i=11,假设信道列表中包括的所有信道为从信道号11至26的16个信道。
2)、跳到新信道后,干扰区内的网络节点进行能量扫描,判断当前信道是否是可用信道,如果RSSI大于能量门限,则当前信道不是可用信道,在该新信道上向它的邻居节点广播当前信道不是可用信道的命令帧,如果RSSI小于能量门限,则该当前信道对于该网络节点是可用信道。
3)、干扰区内的网络节点,若再在第一预置时间Tth秒内接收到任何信道不是可用信道的命令帧,则向其邻居节点转发该命令帧,如果在Tth秒内没有收到任何信道不是可用信道的命令帧且该当前信道对于自己是可用信道,则证明该当前信道对于干扰区内的所有节点都是可用信道,此时,干扰区内的网络节点信道切换成功。
4)、如果信道切换不成功,则在Tth秒时间之后,干扰区内的网络节点在信道列表的下一个信道上重复进行步骤2)~3),其中,Tth秒的值可以根据网络的拓扑和节点密度减小为节点传播M(一般1<M<6)跳的时延。
5)、切换信道成功后,干扰区内的网络节点在选定的新信道上向其邻居节点广播信道选定帧(包含自己的网络地址),告知当前切换到的信道号,所有收到信道选定帧的网络节点,记录下其广播的信道号,并回复应答帧。当干扰区内的网络节点收到其所有邻居节点回复的应答帧时,停止广播信道选定帧,如果在第二预置时间T2时间内没有收到全部邻居节点返回的应答帧,也停止广播信道选定帧,默认为已经广播成功。
6)、对于干扰区内的网络节点,信道选定帧发送成功后,当需要进行数据传输时,如果目的节点和自己在同一信道上,则直接发送数据,如果不在同一信道上,则先把数据存入干扰区内的网络节点的缓冲区中。
7)、干扰区外的网络节点周期性的在原信道和干扰区内的网络节点选定的信道上切换信道。干扰区外的网络节点在原信道上时,和原信道上的网络节点通信,切换到干扰区内的网络节点所在信道时,和干扰区内的网络节点通信。当干扰区外的网络节点要进行信道切换时,先广播信道切换预通知命令(该命令里含有自己的地址),收到此通知命令的网络节点停止向该干扰区外的网络节点发送数据并把数据存入缓冲区。干扰区外的网络节点切换信道后,把自己缓冲区里的数据向目标节点发送,数据发送完成后,广播“我在信道上”通知帧(含有自己的地址),收到该通知帧的网络节点如果有发往该干扰区外的网络节点的数据,则进行竞争发送。当干扰区外的网络节点周期性再次切换信道时,重复以上过程。
SIAS干扰避免的步骤如下,流程图如图3和图5,图3为干扰区内的网络节点的干扰避免流程图,图5为干扰区外的网络节点的干扰避免流程图。包括如下步骤:
步骤1)、2)、3)、4)、5)这五个步骤与FIAS干扰避免机制所述的五个步骤一样,区别在于FIAS在切换信道的时候,将信道选定帧通知给了边界节点,而SIAS因为干扰太重,无法完成通知过程,可以按照如下步骤进行。
6)、信道选定帧广播完成后,有些网络节点只能收到部分邻居节点在新信道上的信道广播帧,这样的网络节点称为边界节点。对于干扰区里的非边界节点,信道选定帧发送成功后,进行正常的数据传输。对于干扰区里的边界节点,当有数据发往干扰区外的网络节点时,则先把数据存入缓冲区中。
7)、对于干扰区外的网络节点,无法知道干扰区里的网络节点选定的信道,所以当干扰区外的网络节点向干扰区内的网络节点通信时,先要找到干扰区内网络节点选定的信道。可以按照信道列表从第一个信道开始,逐一发送测试帧(包含自己的地址),收到测试帧的干扰区内的网络节点回复应答帧,直至找到干扰区内的网络节点所在信道并记录下来。如果进行了16个信道全测试后,没找到干扰区内的网络节点所在信道,证明该干扰区内的网络节点掉线,则把该干扰区内的网络节点舍弃。为了避免这期间数据包的丢失,干扰区外的节点切换信道之前,先在原信道上广播信道切换预通知命令(该命令里含有自己的地址),收到此通知命令的节点停止向该节点发送数据并把数据存入缓冲区。
8)、当干扰区外的网络节点找到干扰区内的网络节点选定的信道后,周期性的在原信道和干扰区内的网络节点选定的信道上切换信道。在原信道上时,和原信道上的网络节点通信,切换到干扰区内的网络节点所在信道时,和干扰区内的网络节点通信。当干扰区外的网络节点要进行信道切换时,先广播信道切换预通知命令(该命令里含有自己的地址),收到此通知命令的网络节点停止向该干扰区外的网络节点发送数据并把数据存入缓冲区。节点切换信道后,把自己缓冲区里的数据向目标节点发送,数据发送完成后,广播“我在信道上”通知帧(含有自己的地址),收到该帧的网络节点如果有发往该干扰区外的网络节点的数据,则进行竞争发送。当干扰区外的网络节点周期性再次切换信道时,重复以上过程。
在本发明实施例中,在ZigBee网络中的网络节点受到干扰时,按照信道列表切换到第一信道,然后判断是否是可用信道,若当前信道是可用信道,且没有接收到指示其它信道不是可用信道的命令帧,向该网络节点的邻居节点广播信道选定帧,以向邻居节点说明该网络节点切换到了可用信道,当干扰不是很严重时,进行FIAS干扰避免,当干扰很严重时,进行SIAS干扰避免,提高了通信的可靠性,且不需要向网络管理器上报,不要由网络管理器进行协调,减轻了网络管理器的负荷。
前述实施例介绍了本发明实施例提供的ZigBee网络的抗干扰方法,接下来与该方法相应的ZigBee网络中的网络节点设备,在实际应用中,本发明实施例提供的交通工具的临时限速处理装置ZigBee网络中的网络节点设备具体可以内置于ZigBee网络的网络节点上,通过软件或硬件集成的方式来实现对干扰的处理。在本发明实施例中将介绍和上述方法实施例中介绍的方法相对应的装置,具体各单元的执行方法可参见上述方法实施例,在此仅描述相关单元的内容,具体说明如下。
如图6所示,本发明实施例提供的ZigBee网络中的网络节点设备600,包括:
干扰检测单元601,用于检测是否受到WiFi信道的干扰,以及向信道切换单元602反馈检测结果;
信道切换单元602,用于从干扰检测单元601接收检测结果,以及若网络节点设备受到干扰,切换到信道列表中的第一信道,信道列表中包括ZigBee网络中的所有信道,以及将切换后的第一信道传输给第一判断单元;
第一判断单元603,用于从信道切换单元602接收第一信道,以及切换到第一信道之后,判断当前信道是否是可用信道,以及将第一判断结果传输给第二判断单元604;
第二判断单元604,用于从第一判断单元603接收判断结果,以及若当前信道是可用信道,判断在第一预置时间内是否接收到网络节点设备的邻居节点发送的指示其它信道不是可用信道的命令帧,以及将第二判断结果传输给广播单元605;
广播单元605,用于从第二判断单元604接收第二判断结果,以及若没有接收到指示其它信道不是可用信道的命令帧,在当前信道上向网络节点设备的邻居节点广播信道选定帧,以使接收到广播信道选定帧的邻居节点向网络节点设备反馈应答帧,信道选定帧包括网络节点设备的网络地址。
需要说明的是,在本发明实施例中,对于干扰检测单元601而言,作为其中一种可实现的方式是,干扰检测单元601具体可以包括(未在图6中示出):
第一检测子单元,用于检测误包率PER,若PER没有超过误包率门限,检测的结果为没有受到WiFi信道的干扰,以及检测结果传输给第二检测子单元;
第二检测子单元,用于从第一检测子单元接收检测结果,以及若PER超过误包率门限,进行能量检测ED,若接收信号强度指示RSSI超过能量门限,检测的结果为受到WiFi信道的干扰,若RSSI没有超过能量门限,检测的结果为没有受到WiFi信道的干扰。
需要说明的是,在本发明实施例中,对于第一判断单元603而言,作为其中一种可实现的方式是,第一判断单元603具体用于从信道切换单元602接收第一信道,以及在当前信道上进行能量检测,若接收信号强度指示超过能量门限,判断的结果为当前信道不是可用信道,若接收信号强度指示没有超过能量门限,判断的结果为当前信道是可用信道。
需要说明的是,在本发明实施例中,对于第二判断单元604、信道切换单元602、第一判断单元603而言,作为其中一种可实现的方式是,还可以包括如下实现方式:
第二判断单元604,还用于将第二判断结果传输给信道切换单元602;
信道切换单元602,还用于从第二判断单元604接收第二判断结果,以及若在第一预置时间内接收到指示其它信道不是可用信道的命令帧,在第一预置时间之后,切换到信道列表中的第二信道,以及将第二信道传输给第一判断单元603;
第一判断单元603,还用于从信道切换单元接收第二信道,以及切换到第二信道之后,将第二信道作为当前信道,判断当前信道是否是可用信道。
需要说明的是,在本发明实施例中,对于广播单元605而言,作为其中一种可实现的方式是,广播单元605还用于当网络节点设备接收到网络节点设备的所有邻居节点回复的应答帧时,停止广播信道选定帧,如果在第二预置时间内没有收到全部邻居节点返回的应答帧,停止广播信道选定帧。
需要说明的是,在本发明实施例中,对于网络节点设备600而言,作为其中一种可实现的方式是,网络节点设备600具体可以包括(未在图6中示出):
第一发送单元,用于当网络节点设备需要进行数据传输时,如果目的节点和网络节点在同一信道上,在当前信道上向目的节点发送数据;
第一缓存单元,用于如果目的节点和网络节点设备不在同一信道上,把数据存入网络节点的缓冲区中。
需要说明的是,在本发明实施例中,对于第一发送单元而言,作为其中一种可实现的方式是,第一发送单元还用于如果目的节点和网络节点设备不在同一信道上,当目的节点按照信道选定帧切换信道到网络节点的当前信道后,把缓冲区里的数据向目标节点发送。
需要说明的是,在本发明实施例中,对于网络节点设备600而言,作为其中一种可实现的方式是,网络节点设备600具体可以包括(未在图6中示出):
通信单元,用于若网络节点设备没有受到干扰,且网络节点设备接收到受到干扰的另一网络节点切换到新信道后广播的信道选定帧之后,当网络节点设备需要进行数据传输时,如果网络节点设备与另一网络节点在同一信道上,向另一网络节点发送数据,或接收另一网络节点发送的数据。
另外,前述的信道切换单元602,还用于如果网络节点设备与另一网络节点不在同一信道上,按照信道选定帧切换信道到另一网络节点所在的新信道上;
前述的通信单元,还用于在网络节点设备切换信道到另一网络节点所在的新信道上之后,向另一网络节点发送数据,或接收另一网络节点发送的数据。
需要说明的是,网络节点设备600还可以包括(未在图6中示出):
第二缓存单元,用若网络节点设备没有受到干扰,当网络节点设备需要向受到干扰的另一网络节点发送数据时,将数据存入网络节点设备的缓存区中;
信道测试单元,用于按照信道列表中的所有信道逐一发送测试帧,以使另一网络节点在另一网络节点所在的当前信道上回复应答帧,测试帧包括网络节点设备的网络地址;
信道获取单元,用于若网络节点设备接收到另一网络节点回复的应答帧,获取另一网络节点所在的信道;
广播单元,还用于在网络节点设备所在的当前信道上广播信道切换预通知命令,以使接收到信道切换预通知命令的网络节点停止向网络节点设备发送数据并把数据存入接收到信道切换预通知命令的网络节点的缓冲区里;
信道切换单元,还用于切换信道到另一网络节点所在的信道上;
第二发送单元,还用于在另一网络节点所在的信道上向另一网络节点发送数据。
需要说明的是,广播单元,还用于在另一网络节点所在的信道上广播网络节点在信道上的通知帧;
第二接收单元,还用于接收已经收到通知帧的网络节点发送的数据。
需要说明的是,网络节点设备600还可以包括(未在图6中示出):
清除单元,用于若网络节点设备遍历信道列表的所有信道之后,没有接收到另一网络节点回复的应答帧,将网络节点设备的缓存区中发送给另一网络节点的数据清除。
需要说明的是,网络节点设备600还可以包括(未在图6中示出):
第三发送单元,用于向网络节点设备的邻居节点发送N次干扰检测请求包,如果网络节点设备接收到网络节点设备的邻居节点回复的应答帧,则说明网络节点设备受到的干扰不严重,如果网络节点没有接收到网络节点的邻居节点回复的应答帧,则说明网络节点受到的干扰很严重,网络节点设备无法和干扰外的网络节点进行数据收发,N为自然数。
前述的广播单元,还用于若当前信道不是可用信道,网络节点在当前信道上向网络节点的邻居节点广播当前信道不是可用信道的命令帧,以使网络节点的邻居节点在第一预置时间内收到命令帧后转发命令帧。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明前述的方法实施例中的叙述,此处不再赘述。
在本发明实施例中,在ZigBee网络中的网络节点受到干扰时,信道切换单元按照信道列表切换到第一信道,然后第一判断单元判断是否是可用信道,若当前信道是可用信道,且第二判断单元判断得知没有接收到指示其它信道不是可用信道的命令帧,广播单元向该网络节点的邻居节点广播信道选定帧,以向邻居节点说明该网络节点切换到了可用信道,解决了该网络节点的干扰问题,提高了通信的可靠性,且不需要向网络管理器上报,不要由网络管理器进行协调,减轻了网络管理器的负荷。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明所提供的一种ZigBee网络的抗干扰方法和设备进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。