适用于无线链状拓扑网络的顺序休眠唤醒方法与流程

文档序号:12069123阅读:293来源:国知局
适用于无线链状拓扑网络的顺序休眠唤醒方法与流程

本发明涉及一种适用于无线链状拓扑通信网络的链路顺序休眠及唤醒方案,可用于无线链状拓扑的多跳网络,属于无线通信领域。



背景技术:

无线链状通信系统适用于通信区域呈链状或带状拓扑的应用场景,它有快速灵活组网、链状拓扑等特点,在诸如边防、海防、森林保护、高压线缆及输油管道监控等需要链状覆盖的应用场景中有着独特的优势,但是在以上应用场景中,地理位置偏远,工作环境恶劣,往往无法定期有效地补充能量。降低能耗是一个很重要的的问题,低功耗设计至关重要。在传统的低功耗休眠设计中,全网的节点处于异步休眠状态,这很大程度上恶化了业务的时延,导致很多宽带实时性业务无法顺利完成。



技术实现要素:

本发明的目的在于克服现有技术中存在的不足,提供一种适用于无线链状拓扑网络的顺序休眠唤醒方法,使全网节点按拓扑顺序休眠,在有业务时,可以快速唤醒,与异步休眠相比减少了链路唤醒所需要的时间,既保证了节点的低功耗性能又保证了唤醒全网节点的低延时。本发明采用的技术方案是:

在本发明中,节点的休眠周期包括休眠阶段和唤醒阶段两部分,节点只有在处于唤醒阶段期间才能接收业务包。节点有四种状态:工作状态、休眠状态(节点在休眠阶段处于休眠状态)、侦听状态及自休眠状态。其中自休眠状态标志了链路中有节点异常的情形,处在自休眠状态的节点会周期性的休眠和唤醒直到链路恢复正常。

(一)、节点休眠方法:

初始时所有节点都处于侦听状态,所有节点异步。为了保证业务时延小,使节点能够快速被唤醒并开始业务传输,需要让节点在无业务时按链路拓扑顺序休眠。

链路根节点(位于链路中的第一个)在侦听状态期间,根据一定的触发机制发起顺序休眠流程,该机制可以是根节点在业务传输完成后主动发起休眠流程,发出休眠指令,也可以是根节点被动接收综合管理平台(PC端的监控系统,和根节点相连)的休眠指令然后发出。下面以根节点主动发起休眠进行描述,首先,由根节点向其前向(根节点往普通节点方向)节点周期性发送携带休眠包的休眠指令,休眠包中携带休眠时长(固定值)、侦听时长、进入休眠时刻、源节点号、休眠包目的地址(广播包地址,即每个节点收到休眠包都要休眠)等参数,前向节点收到休眠指令时根据休眠包中参数设定本节点进入休眠的时刻,即休眠包中的后向节点进入休眠时刻加上相邻节点单向传输时延(此处的相邻节点指收到休眠包的本节点与其后向节点)、休眠时长、侦听时长,然后回复根节点ACK包(应答包),休眠包的ACK包中包含本节点对应的源节点号、目的节点号、前向节点的异常情况,如果根节点没有收到前向节点针对休眠包的ACK包,则标志前向节点异常。最后,与根节点相邻的本节点在收到休眠包后继续往下一个前向节点发休眠包,直到链路中所有节点成功收到休眠指令。采用这种策略,可以使链路中的所有节点在时钟频率偏移不大的情况下按照拓扑顺序进入休眠。

(二)、节点前向唤醒方法:

当有业务发起时,在业务数据传输前,需要唤醒源业务节点到目的业务节点之间的链路,唤醒过程有前向唤醒和后向唤醒两种。

首先介绍前向唤醒过程。当有从根节点到某个目的业务节点的业务数据时,此时由根节点发起前向唤醒链路过程,根节点在唤醒阶段起始时刻周期性地向其前向节点发送包含前向唤醒包的前向唤醒指令,前向唤醒包中有源节点号、目的节点号、包类型等参数。前向节点收到前向唤醒指令后回发前向唤醒包的ACK包,若收到前向节点针对前向唤醒包的ACK包(包中主要有源节点、目的节点号及前向节点的异常信息),则根节点停止发送前向唤醒指令。若发前向唤醒包超时(可设定一个重传时间,超过重传时间)未收到前向唤醒包的ACK包,表明前向节点异常。前向节点收到该前向唤醒包后会离开周期性休眠状态,处于工作状态。若目的业务节点不是该前向节点,则该前向节点继续向其下一个前向节点发前向唤醒包,过程如前所示,直至唤醒目的业务节点。按照顺序休眠原理,前向节点的进入休眠的时间比后向节点延迟一跳单向传输时延时间,而各个节点的休眠占空比相同,所以前向节点进入唤醒阶段的起始时刻比其后向节点唤醒阶段起始时刻晚一个单向传输时延,这样可以保证在正常情况下,后向节点唤醒阶段的第一个指令可以刚好在前向节点醒来时收到。

若业务发生在两个中间节点间时,需要由靠近根节点的节点发起到其前向目的业务节点的唤醒流程,具体过程同上。

本发明中全网节点是按链状拓扑顺序休眠的。假设相邻两个节点之间的单向传输时延为T0,单个节点的唤醒耗时为T1,其中T1远大于T0。以根节点0唤醒目的业务节点n为例,在其他休眠机制中,由于每个节点的休眠时间异步,所以要正向唤醒节点n总的时延最长为T=(n-1)*T0+n*T1,而在本发明中总的时延大约为 T=(n-1)*T0+T1,这在有业务到来时,大大减少了唤醒时延,提高了实时业务的用户体验。

(三)节点后向唤醒方法:

在链路的某个中间节点与根节点有紧急业务通信需求时,该中间节点被唤醒,然后由该中间节点触发后向唤醒过程,向该中间节点的后向节点发送携带后向唤醒包的后向唤醒指令;唤醒紧急业务通信需求的节点与根节点之间的链路,后向唤醒包中主要包括唤醒节点号和目的节点(即根节点)等。每个后向节点在收到携带后向唤醒包的后向唤醒指令时,标记前向节点正常并使本节点进入工作状态,同时向前向节点回复针对后向唤醒包的ACK包,针对后向唤醒包的ACK包中主要包括了源节点和目的节点号以及后向节点的异常信息等,表示成功收到后向唤醒指令。然后该后向节点继续向其下一个后向节点发后向唤醒包,直到根节点与业务节点之间的链路全部被唤醒。

节点后向唤醒方法与现有异步休眠方法相比,虽然没有减少唤醒时延,但是可对本发明起到了一种补充作用,即出现中间节点与根节点的紧急业务需求时,能够后向唤醒中间节点至根节点之间的链路。

(四)节点异常处理方法:

当链路中某个节点设备出现异常,链路的通信受阻,异常节点与正常节点不同步。当节点从异常状态恢复时需要保证和邻居节点的休眠唤醒同步性;

当无线链状拓扑网络的链路中出现异常节点,则该异常节点的后向正常节点将异常节点的异常信息逐节点往后向传送,通知根节点链路异常情况;

该异常节点的前向正常节点进入自休眠状态,然后代替根节点向该前向正常节点的前向节点周期性发送携带休眠包的休眠指令,以通知前向链路中节点进行休眠,这样使前向链路节点功耗降低的同时又保证了异常节点的前向链路的休眠顺序,当异常节点恢复正常时,前向节点可以重新在唤醒阶段接收后向节点的休眠、唤醒等指令,又可以按照上述的休眠流程及唤醒流程使链路同步。

该异常节点的前向正常节点发起的顺序休眠流程与根节点相同。

本发明的优点在于:全网节点按照链状拓扑顺序休眠,顺序唤醒,每个节点与其邻居节点的休眠、唤醒时间相差一跳空口单向传输时延。因此可以最大限度地缩短在无线多跳环境下实时业务的首包时延。在不影响宽带业务实时性的要求下对整网节点进行周期性休眠,以节约系统功耗,而在有业务时,可以快速唤醒链路。

附图说明

图1为本发明的链状多跳拓扑网络休眠示意图。

图2为本发明的链状多跳拓扑网络唤醒示意图。

具体实施方式

下面结合具体附图和实施例对本发明作进一步说明。

本发明将以链状拓扑进行说明,但并不局限于此。图1所示为链状多跳拓扑网络休眠流程。无线链状拓扑网络中各节点间距相等或基本相等(各节点间距相差在10%范围内);在该无线链状拓扑网络中存在着一个根节点0。定义从根节点到普通节点的通信方向为前向,从普通节点到根节点的通信方向为后向。例如,对于节点2来说,节点1处于靠近网络根节点的方向上,称为节点2的后向节点;节点3称为节点2的前向节点。

当业务数据传输完成或根节点侦听超时,可以由根节点0发起全网顺序休眠,根节点向其前向节点1周期性发送休眠包,包中携带进入休眠时刻、休眠时长、源节点号、休眠包目的地址(广播包地址,即每个节点收到休眠包都要休眠)等参数。以节点1为例,如果节点1收到根节点0发来的休眠包时正在处理数据业务则不响应该休眠包,否则进入休眠状态,同时标记根节点0正常并回复ACK包(ACK包中主要参数有源节点号1、目的节点号0及前向节点可能的异常情况),节点0每次向节点1发休眠包时,会明确告诉节点1,节点0还有多少时间进入休眠。例如,节点0将在时间t后进入休眠,相邻节点间的单向传输时延为T0,单个节点唤醒耗时T1,休眠包的重传时间为T2。节点0往前向节点1发休眠包,若节点0在T2时间内没有收到ACK,则重发休眠包,此时告诉节点1,本节点(节点0)还有t-T2时间进入休眠,节点1在收到休眠包后会调整自己进入休眠的时间t-T2+T0、休眠时长(固定值)、这样设定使节点1能够比节点0延迟T0时间进入休眠,同时节点1比节点0延迟T0时间醒来,正常情况下,节点0发的第一个指令刚好可以在节点1醒来时收到,最后,节点1向节点2发休眠包,直到所有节点休眠。依次类推,采用这种策略,可以使链路中的所有节点在时钟偏移不大的情况下顺序休眠。

图2表示链状多跳拓扑网络唤醒流程。如图2所示,以前向唤醒为例,节点2需要上传业务信息时,需要唤醒从根节点0至节点2的链路,首先,根节点0在唤醒阶段起始时刻开始向节点1发送包含前向唤醒包的唤醒指令,前向唤醒包中包括源节点号和目的节点号。节点1收到唤醒指令后,标记其后向节点0正常,节点1进入工作状态,同时会向节点0回送一个被唤醒的消息(ACK),节点1继续向节点2发唤醒指令,依次类推,直到业务的目的业务节点2与根节点0之间的链路被唤醒。

当某节点与根节点0有紧急业务通信需求时,需要唤醒该中间节点到根节点0之间的链路。以节点2为例,节点2被硬件IO接口唤醒后,由节点2发起发现唤醒,首先检查节点1是否正常,如果节点1处在自休眠状态,则节点2忽略该唤醒命令。如果节点1正常则向节点1发携带后向唤醒包的后向唤醒指令,唤醒节点1进入工作状态,节点1往前向给节点2回复针对后向唤醒包的ACK包,然后节点1继续往后向周期性地发后向唤醒指令,直到业务节点2与根节点0之间的链路全部被唤醒,进行业务传输。同时节点2往节点3、节点4...等前向节点发休眠包,使其保持同步。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1