无线传感器网络中的时间同步方法及系统的制作方法

文档序号:7754642阅读:214来源:国知局
专利名称:无线传感器网络中的时间同步方法及系统的制作方法
技术领域
本发明涉及无线传感器网络技术,特别是涉及一种无线传感器网络中的时间同步方法及系统。
背景技术
时间同步是无线传感器网络中的最基本需求,无线传感器网络中所使用的大多协议和应用都需要进行时间同步,例如数据融合、测距定位、压缩感知、低功耗MAC协议、 路由协议、协作传输和处理等均需要实现时间的同步。传统的时间同步方法中通常仅注重于同步精度的提高,而未对网络环境中所存在的复杂环境条件对时间同步过程带来的影响进行深入研究。传统的时间同步过程中通常采用泛洪时间同步协议(Flooding Time Synchronization Protocol,简称FTSP)来实现无线传感器网络中的时间同步。泛洪时间同步协议是一种全网时间同步的方法,在泛洪协议中周期性地选举出一个编号最小的节点作为根节点,即网络中的其它节点均与根节点进行时间同步。无线传感器网络执行时间同步时各个节点广播自己的数据包竞选根节点,编号最小的节点获胜成为根节点。在选举出根节点后,根节点在无线传感器网络中广播同步数据包,其他节点接收到同步数据包括后实现与根节点的同步。而未在根节点通信范围内的节点则只能够通过多跳的方式与根节点同步。在根节点失效时无线传感器网络中的各个节点又重新开始竞选根节点ο无线传感器网络所使用的泛洪时间同步协议等时间同步方法在进行时间同步时往往需要建立一个基于全网的树形或层次形结构,并且在网络中专门为同步而设置特殊的根节点或参考节点,这将带来额外的能量消耗。由此可知,在无线传感器网络中针对时间同步所提出的时间同步方法在实验的过程具备非常理想的实验精度,但是在应用于现实中的无线传感器网络时存在着每一节点大量消耗能量的缺陷,尤其是在与其它应用结合时每一节点的能量消耗就变得非常大了。

发明内容基于此,有必要提供一种能降低网络能量消耗的无线传感器网络中的时间同步方法。此外,还有必要提供一种能降低网络能量消耗的无线传感器网络中的时间同步系统。一种无线传感器网络中的时间同步方法,包括如下步骤生成同步数据包,并在所述同步数据包中标记发送时间戳;向子节点传输所述同步数据包;接收所述同步数据包,并在所述同步数据包中标记接收时间戳;根据所述同步数据包中发送时间戳和接收时间戳对所述子节点补偿时钟飘移。优选地,所述在所述同步数据包中标记所述时间戳的步骤为
5
检测传输信道是否处于空闲状态,若是,则从访问控制层获取发送时间;根据获取到的发送时间生成发送时间戳;将所述生成的发送时间戳标记于所述同步数据包中。优选地,所述向子节点传输所述同步数据包的步骤为发送所述同步数据包中的包头;待所述包头发送完毕之后从访问控制层获取时间;根据所述获取到的时间修改所述包头对应的同步数据包中所述标记的发送时间戳;传输所述修改了标记的发送时间戳的同步数据包。优选地,所述接收所述同步数据包的步骤之后还包括判断所述同步数据包中的同步序号是否大于所述子节点中存储的同步序号,若是,则进入所述在所述同步数据包中标记所述接收时间戳的步骤。优选地,所述根据所述同步数据包中发送时间戳和接收时间戳对所述子节点补偿时钟飘移的步骤为通过同步数据包的字节长度以及发射速率之商得到字节校准时间;根据所述同步数据包中接收时间戳、发送时间戳以及字节校准时间得到时钟偏移量;对所述时钟偏移量以及子节点所处时间进行最小二乘法直线拟和得到线性回归
直线;根据所述线性回归直线对所述子节点进行时钟飘移补偿。优选地,所述根据所述同步数据包中接收时间戳、发送时间戳以字节校准时间得到时钟偏移量的步骤之后还包括将所述时钟偏移量存储于所述子节点的历史数据中;所述方法还包括当未接收到同步数据包时从子节点的历史数据中获取存储的时钟偏移量,并根据所述存储的时钟偏移量对所述子节点补偿时钟飘移。优选地,所述根据所述同步数据包中发送时间戳和接收时间戳对所述子节点补偿时钟飘移的步骤之前还包括从接收到的同步数据包中获取标记的发送时间戳和接收时间戳,并通过所述接收时间戳和发送时间戳之差得到时钟变化量;计算所述时钟变化量与变化均值之间的差值;判断所述差值是否小于阈值,若否,则清除所述接收到的同步数据包,若是,则进入所述根据所述同步数据包中发送时间戳和接收时间戳对所述子节点补偿时钟飘移的步
马聚ο优选地,还包括判断接收到的同步数据包数量是否大于设定的数量阈值,若否,则进入所述接收所述同步数据包的步骤,若是,则判断所述子节点的侦听时间是否达到侦听周期,若是,则所述子节点进入睡眠状态;
判断所述子节点的睡眠时间是否达到睡眠周期,若是,则唤醒所述子节点,并进入所述所述接收所述同步数据包的步骤。优选地,还包括根据所述子节点的睡眠时间判断是否达到同步时间,若是,进入所述通过生成同步数据包,并在所述同步数据包中标记所述发送时间戳的步骤。优选地,所述接收所述同步数据包的步骤之后还包括判断传输所述同步数据包的父节点是否发生变化,若是,则清除所述子节点中存储的时钟偏移量,若否,则进入接收所述同步数据包的步骤。一种无线传感器网络中的时间同步系统,包括数据包生成模块,用于生成同步数据包;标记处理模块,用于在所述同步数据包中标记发送时间戳;传输模块,用于向子节点传输所述同步数据包;接收模块,用于接收所述同步数据包,并在所述同步数据包中标记接收时间戳;补偿模块,用于根据所述同步数据包中发送时间戳和接收时间戳对所述子节点补偿时钟飘移。 优选地,所述标记处理模块包括信道检测单元,用于检测传输信道是否处于空闲状态,若是,则从访问控制层获取发送时间;时间戳标记单元,用于根据获取到的发送时间生成发送时间戳,并将所述生成的发送时间戳标记于所述同步数据包中。优选地,所述传输模块包括发送单元,用于发送所述同步数据中的包头;时间获取单元,用于待所述包头发送完毕之后从访问控制层获取时间;修改单元,用于根据所述获取到的时间修改与所述包头对应的同步数据包中所述标记的发送时间戳;所述发送单元还用于传输所述修改了标记的发送时间戳的同步数据包。优选地,还包括同步序号判断模块,用于判断所述同步数据包中的同步序号是否大于所述子节点中存储的同步序号,若是,则通知所述接收模块。优选地,所述补偿模块包括校准计算单元,用于通过同步数据包的字节长度以及发射速率之商得到字节校准时间;偏移量计算单元,用于根据所述同步数据包中接收时间戳、发送时间以及字节校准时间得到时钟偏移量;拟和单元,用于对所述时钟偏移量以及子节点所处时间进行最小二乘法直线拟和得到线性回归直线;飘移补偿单元,用于根据所述线性回归直线对所述子节点进行时钟飘移补偿。优选地,所述偏移量计算单元还用于将所述时钟偏移量存储于所述子节点的历史数据中;
7
所述飘移补偿单元还用于当未接收到同步数据时从子节点的历史数据中获取存储的时钟偏移量,并根据所述存储的时钟偏移量对所述子节点补偿时钟飘移。优选地,还包括时钟变化计算模块,用于从接收的同步数据包中获取标记的发送时间戳和接收时间戳,并通过所述接收时间戳和发送时间戳之差得到时钟变化量;差值计算模块,用于计算所述时钟变化量与变化均值之间的差值;差值处理模块,用于判断所述差值是否小于阈值,若否,则清除所述接收到的同步数据包,若是,则通知所述补偿模块。优选地,还包括接收数量判断模块,用于判断接收到的同步数据包数量是否大于设定的数量阈值,若否,则通知所述接收模块,若是,则通知侦听时间判断模块;所述侦听时间判断模块用于判断所述子节点的侦听时间是否达到侦听周期,若是,则所述子节点进入睡眠状态;睡眠时间判断模块,用于判断所述子节点的睡眠时间是否达到睡眠周期,若是,则唤醒所述子节点,并通知所述接收模块。优选地,还包括同步判断模块,用于根据所述子节点的睡眠时间判断是否达到同步时间,若是,则通知所述数据包生成模块。优选地,所述接收模块还用于判断传输所述同步数据包的父节点是否发生变化, 若是,则清除所述子节点存储的时间偏移量,若否,则接收所述同步数据包。上述无线传感器网络中的时间同步方法及系统,仅向子节点传输同步数据包,实现了父节点与子节点之间的时钟飘移补偿,在父节点与子节点所形成的区域中实现区域性的时间同步,与传统的全网时间同步相比较降低了网络能量的消耗,也能够尽量避免由于串音干扰所带来的能量消耗。上述无线传感器网络中的时间同步方法及系统,在检测到传输信道处于空闲状态后从访问控制层中获取发送时间并将同步数据包发送出去,不从应用层中获取发送时间, 而直接从访问控制层中获取发送时间有利于减少误差来源,进而降低时间同步过程中的误差,提高时间同步的精确度。上述无线传感器网络中的时间同步方法及系统,在发送了同步数据包中的包头之后再次从访问控制层中获取时间,并对标记于同步数据包上的发送时间戳进行修改以减少网络中的各种因素对同步精确度造成影响,提高时间同步的精确度。上述无线传感器网络中的时间同步方法及系统,在接收了设定数量的同步数据包后若子节点对传输信道进行侦听所占时间达到侦听周期时,子节点进入睡眠状态,在睡眠时间达到了睡眠周期时唤醒处于睡眠状态的子节点,减少了空闲侦听时间可以直到大幅度地降低通信的能量开销,特别是在环境监控采样频率不高的场合中多数节点处于睡眠状态可以有效地延长整个网络的生存时间。

图1为一个实施例中无线传感器网络中的时间同步方法的流程图2为图1中在同步数据包中标记发送时间戳的方法流程图;图3为图1中向子节点传输同步数据包的方法流程图;图4为图1中通过同步数据包的字节长度以及发射速率之商得到字节校准时间的方法流程图;图5为另一个实施例中无线传感器网络中的时间同步方法的流程图;图6为另一个实施例中无线传感器网络中的时间同步方法的流程图;图7为一个实施例中无线传感器网络中的时间同步系统的结构示意图;图8为图7中标记处理模块的结构示意图;图9为图7中传输模块的结构示意图;图10为另一个实施例中无线传感器网络中的时间同步系统的结构示意图;图11为一个实施例中补偿模块的结构示意图;图12为另一个实施例中无线传感器网络中的时间同步系统的结构示意图;图13为另一个实施例中无线传感器网络中的时间同步系统的结构示意图。
具体实施方式图1示出了一实施例中的无线传感器网络中的时间同步方法,包括如下步骤步骤S110,生成同步数据包,并在同步数据包中标记发送时间戳。本实施例中,为减少能量消耗,并迅速实现时间同步,采用发送者-接收者的单向同步方式,父节点生成同步数据包,并主动向对应的子节点传输生成的同步数据包。在同步数据包中标记当前父节点所处的时间,以便于告之子节点同步数据包发送时父节点所处的时间。同步数据包中还包含了对应的同步序号,接收了多个同步数据包的节点可通过同步序号辨别出哪一个同步数据包为最近接收的同步数据包。在一个具体的实施例中,如图2所示,上述在同步数据包中标记发送时间戳的步骤具体为步骤S201,检测传输信道是否处于空闲状态,若是,则进入步骤S203,若否,则不做任何处理。本实施例中,为了减少传输信道发生拥堵所造成的误差,在生成了同步数据包后在访问控制层上等待传输信道,直至该传输信道处于空闲状态。步骤S203,从访问控制层获取发送时间。本实施例中,与从应用层获取父节点时间的传统方案相比,在检测到传输信道畅通时直接从访问控制层中获取父节点所处的时间作为发送时间将大大提高时间同步过程中的精确度。步骤S205,根据获取到的发送时间生成发送时间戳。步骤S207,将生成的发送时间戳标记于同步数据包中。本实施例中,若按照传统方案通常是从应用层中获取父节点时间作为发送时间, 在获取到来自于应用层的发送时间后,需要将发送时间由应用层经由传输层、网络层等逐层传输到访问控制层,并标记于同步数据包中,此时,若传输信道未处于空闲状态不能将包含了发送时间的同步数据包传输出去,待此同步数据包通过处于空闲状态的传输信道发送至子节点时,子节点所得到的发送时间已经是不准确的发送时间,这一发送时间中包含了从应用层中逐层传输到访问控制层所花费的时间,这造成了发送时间在获取时即存在着误差,且经过同步数据包的延迟发送后该发送时间并不代表同步数据包发送时的时间,存在极大的不准确性,为了避免上述情况发生,直接从访问控制层中获取时间。步骤S130,向子节点传输同步数据包。本实施例中,父节点生成同步数据包,并在同步数据包中标记了发送时间戳后向该父节点所对应的子节点进行同步数据包的传输。在网络拓扑中全网节点呈树状结果,任一父节点下通常存在着对应的子节点,并且对于大多数节点而言其父节点和子节点的身份是相互变换的,即对于某一父节点而言该节点以子节点的身份存在,并与这一父节点以及这一父节点下的其它子节点形成同步数据包的传播区域;此外,该节点也是一个父节点,拥有对应的多个子节点,因此该节点也将生成同步数据包,并将同步数据包传输至多个子节点中,也形成了一个父节点与子节点之间的传播区域,这一传播区域是不受到传播区域之外的节点干扰的,可有效减少串音干扰,通过传播区域隔离其它节点向传播区域中的子节点所进行的同步数据包传输,避免了这一传输所造成的能量浪费,特别是在节点密度较大所造成的大量能量浪费。在一个具体的实施例中,如图3所示,上述向子节点传输同步数据包的具体过程为步骤S131,发送同步数据包中的包头。本实施例中,在传输过程中传输延迟包括了发射前导码和起始符的进行以及发射同步数据的时间,发射同步数据的时间是确定的,取决于发送者与接收者之间的距离,这比较难估计,但因为同步数据包在空气中的传播速度非常快,传播速度可达3*108m/s,因此可以忽略不计,此时,为避免误差的产生,首先将包含了前导码和起始符的包头发送出去。步骤S133,待包头发送完毕之后从访问控制层获取时间。本实施例中,在包头发送完毕之后再次从访问控制层中获取当前所处的时间。步骤S135,根据获取到的时间修改包头对应的同步数据包中标记的发送时间戳。本实施例中,根据再次从访问控制层获取到的时间对已经标记于同步数据包中的发送时间戳进行修改,这一方式可减少网络环境中各种可能的因素对同步精度造成影响。步骤S137,传输修改了标记的发送时间戳的同步数据包。本实施例中,在畅通的传输信道中将发送时间戳已经修改的同步数据包传输至子节点中。步骤S150,接收同步数据包,并在同步数据包中标记接收时间戳。本实施例中,子节点在接收到由父节点发送的同步数据包后,在接收到的同步数据包中标记接收到同步数据包时子节点所处的时间。在另一个实施例中,上述接收同步数据包的步骤之后还包括判断同步数据包中的同步序号是否大于子节点中存储的同步序号,若是,则进入在同步数据包中标记接收时间戳的步骤,若否,则丢弃接收到的同步数据包。本实施例中,在父节点生成同步数据包时对一系列同步数据包进行顺序编号,使得每一同步数据包均包含了同步序号,这一同步序号对于每一同步数据包而言是唯一的。 首先生成并发送的同步数据包的同步序号较小,后发出的同步数据包中的同步序号较大。当判断到同步数据包中的同步序号大于子节点中已经接收到的同步数据包的同步序号,说明这一接收到的同步数据包是有效的,需要对其进行接收时间戳的标记;当判断到同步数据包中的同步序号未大于子节点中存储的同步序号,说明同步数据包的发送发生异常,不能通过这一同步数据对子节点进行时间同步。在另一个实施例中,在无线传感器网络的网络拓扑中,节点发生移动等变化的可能性是非常大的,移动发生后子节点所对应的父节点将发生变化,上述接收同步骤数据包的步骤之后还包括判断传输同步数据包的父节点是否发生变化,若是,则清除子节点中存储的时钟偏移量,若否,则返回步骤S150。本实施例中,在进行传输同步数据包的父节点是否发生了变化的过程中,不需要对根节点进行判断。当判断到传输同步数据包发生了变化时说明接收了同步数据包的子节点所对应的父节点与原先的父节点不是同一节点,需要清除子节点中存储的时钟偏移量, 重新通过变化后的父节点进行时间的同步。步骤S170,根据同步数据包中发送时间戳和接收时间戳对子节点补偿时钟飘移。本实施例中,由同步数据包中所标记的发送时间戳和接收时间戳可以得到时间偏差,进而根据这一偏差进行子节点中的时间同步。在一个具体的实施例中,如图4所示,上述根据同步数据包中发送时间戳和接收时间戳对子节点补偿时钟飘移的具体过程为步骤S171,通过同步数据包的字节长度以及发射速率之商得到字节校准时间。本实施例中,在接收到同步数据包时所获取到的时间包含了同步数据包的实际接收时间和字节校准时间,因此需要进行字节校准时间的补偿,字节校准时间是确定的,即芯片的发射速率是已知的,为19. 21ApS,用同步数据包的字节长度除以芯片的发射速率就可以得到字节校准时间。步骤S173,根据同步数据包中接收时间戳、发送时间戳以及字节校准时间得到时
钟偏移量。本实施例中,时钟偏移量为实际接收时间之间与同步数据包发送时所处时间的差值,为计算得到时钟偏移量,由发送时间戳与字节校准时间之差得到了实际接收时间,进而由接收时间戳与实际接收时间之差得到了时钟偏移量,具体的过程过程可如以下公式所示offset = t「t2-t0其中,offset为时钟偏移量,、为接收时间戳,t2为字节校准时间,t0为发送时间戳。在另一个实施例中,上述根据同步数据包中接收时间戳、发送时间戳以及字节校准时间得到时钟偏移量的步骤之后还包括将时钟偏移量存储于子节点的历史数据中的步
马聚ο本实施例中,在进行时间同步的过程中将计算得到的时钟偏移量存储于子节点的历史数据中,以方便在后续的时间同步过程使用方历史数据。上述无线传感器网络中的时间同步方法还包括当未接收到同步数据包时从子节点的历史数据中获取存储的时钟偏移量,并根据存储的时钟偏移量对子节点补偿时钟飘移。
本实施例中,由于网络环境较为复杂,无法接收同步数据包的情况时有发生,当未接收到父节点所发送的同步数据包时将从存储的历史数据中获取存储的时钟偏移量,并通过历史数据中的时钟偏移量实现子节点的时间同步。在另一个实施例中,如图5所示,根据同步数据包中发送时间戳和接收时间戳对子节点补偿时钟飘移的步骤之前还包括步骤S510,从接收到的同步数据包获取标记的发送时间戳和接收时间戳,并通过接收时间戳和发送时间戳之差得到时钟变化量。本实施例中,在时间同步的过程中,如果时钟偏移量较大,则说明时间同步过程出错的可能性非常大,不能通过这一时钟偏移量进行子节点的时间同步,因此在对子节点进行补偿时钟飘移之前,应当根据发送时间戳和接收时间戳进行运算得到刚接收到的同步数据包所对应的时钟变化量,即newoffset = Vt1其中,newoffset为刚接收到的同步数据包所对应的时钟变化量,t2为接收时间戳,、为发送时间戳。步骤S530,计算时间变化量与变化均值之间的差值。本实施例中,变化均值由存储于历史数据中的时钟偏移量计算得到。步骤S550,判断差值是否小于阈值,若否,则进入步骤S570,若是,则进入步骤 S170。本实施例中,差值越大,则说明时间变化量与变化均值之间的偏差越大,时间同步过程存在错误的可能性也就越大,差值越小,则说明时间变化量与变化均值之间的偏差越当判断到差值小于阈值时,利用此同步数据包中的接收时间戳和发送时间戳进行时钟飘移的补偿;当判断到差值并没有小于设定的阈值时,说明这一同步数据包中标记的接收时间戳和发送时间戳是不可用的,应当清除这一接收到的同步数据包。步骤S570,清除接收到的同步数据包。步骤S175,对时钟偏移量以及子节点所处时间进行最小二乘法直线拟和得到线性回归直线。本实施例中,通过最小二乘法直线拟和的方法计算出一条线性回归直线的斜率和偏差,然后利用这一线性回归直线对子节点所处时间进行时钟飘移补偿。步骤S177,根据线性回归直线对子节点进行时钟飘移补偿。在另一个实施例中,如图6所示,上述无线传感器网络中的时间同步方法还包括以下步骤步骤S610,判断接收到的同步数据包数量是否大于设定的数量阈值,若否,则进入步骤S150,若是,则进入步骤S630。本实施例中,在子节点接收同步数据包的过程中,为节点能量消耗,在接收到的同步数据包数量大于设定的数量阈值时,说明子节点接收到的同步数据包数量已经足够进行时间同步,则查看子节点对传输信道所进行的侦听是否到了设定的侦听周期,当判断到接收的同步数据包数量并没有大于数量阈值时,子节点应当继续进行同步数据包的接收,直至达到设定的数量阈值。数量阈值可以根据传感器节点所拥有的内存来设定,当传感器节
12点中的内存较大或者传感器节点中运行的实际应用对内存的需求较小时,数量阈值可以设定为一个较大的数值,反之,则设定一个较小的数值,在优选的实施例中,数量阈值为5 8,这使得传感器节点中既不会接收过多的同步数据包而占用过多内存,也不会因为接收的同步数据包过少而使得传感器节点中时间同步的精度不高。步骤S630,判断子节点的侦听时间是否达到侦听周期,若是,则进入步骤S650,若否,则进入步骤S640。本实施例中,在接收到的同步数据包数量大于数量阈值时,判断子节点的侦听时间是否达到了侦听周期,如果达到了侦听周期,则子节点将进入睡眠状态。在优选的实施例中,可在传感器节点中设置定时器,对传感器节点中的活动进行定时,以便于实现传感器节点的控制。步骤S640,继续侦听传输信道。步骤S650,子节点进入睡眠状态。步骤S670,判断子节点的睡眠时间是否达到睡眠周期,若是,则进入步骤S690,若否,则进入步骤S680。本实施例中,在子节点处于睡眠状态时节点所消耗的能量是非常小的,极大地降低了网络能量消耗,但是,由于子节点还应当解除睡眠状态继续进行同步数据包的接收。在优选的实施例中,子节点还可设置一个定时器,用于对其睡眠时间进行计时,在睡眠时间达到定时器所设定的时间后立即唤醒子节点进入侦听状态。步骤S680,继续处于睡眠状态。步骤S690,唤醒子节点,并返回步骤S150。在另一个实施例中,处于睡眠状态的子节点中还包括了如下步骤根据子节点的睡眠时间判断是否达到同步时间,若是,则进入步骤S110,若否,则不做任何处理。本实施例中,对于大多数节点而言既拥有唯一的父节点,又存在多个节点作为这一节点的子节点,即这一节点即是某一父节点的子节点,又是其它多个节点的父节点,因此,这一节点既需要接收由父节点传输的同步数据包,根据父节点的同步数据包进行时间同步,又需要生成同步数据包向其子节点传输。由于每一父节点与子节点之间形成了相对独立的传播区域,传播区域之间互不干扰地进行时间同步,某一节点在一传播区域中接收来自父节点的同步数据包,在达到设定的同步时间后又在另一传播区域中生成同步数据并向其子节点发送同步数据包,实现周期性地同步时间,减少能量的浪费。图7示出了一个实施例中无线传感器网络中的时间同步系统,包括数据包生成模块110、标记处理模块130、传输模块150、接收模块170以及补偿模块190。数据包生成模块110,用于生成同步数据包。本实施例中,为减少能量消耗,并迅速实现时间同步,采用发送者-接收者的单向同步方式,父节点的数据包生成模块110生成同步数据包。标记处理模块130,用于在同步数据包中标记发送时间戳。本实施例中,标记处理模块130在同步数据包中标记当前父节点所处的时间,以便于告之子节点同步数据包发送时父节点所处的时间。同步数据包中还包含了对应的同步序号,接收了多个同步数据包的节点可通过同步序号辨别出哪一个同步数据包为最近接收的同步数据包。在一个具体地实施例中,如图8所示,标记处理模块130包括信道检测单元131以及时间戳标记单元133。信道检测单元131,用于检测传输信道是否处于空闲状态,若是,则从访问控制层获取发送时间。本实施例中,为了减少传输信道发生拥堵所造成的误差,信道检测单元131在生成了同步数据包后在访问控制层中等待传输信道,直至该传输信道处于空闲状态。在检测到传输信道畅通时信道检测单元131直接从访问控制层中获取父节点所处的时间作为发送时间,与从应用层获取父节点时间的传统方案相比大大提高了时间同步过程中的精确度。时间戳标记单元133,用于根据获取到的发送时间生成发送时间戳,并将生成的发送时间戳标记于同步数据包中。本实施例中,若按照传统方案通常是从应用层中获取父节点时间作为发送时间, 在获取到来自于应用层的发送时间后,需要将发送时间由应用层经由传输层、网络层等逐层传输到访问控制层,并标记于同步数据包中,此时,若传输信道未处于空闲状态不能将包含了发送时间的同步数据包传输出去,待此同步数据包通过处于空闲状态的传输信道发送至子节点时,子节点所得到的发送时间已经是不准确的发送时间,这一发送时间中包含了从应用层中逐层传输到访问控制层所花费的时间,这造成了发送时间在获取时即存在着误差,且经过同步数据包的延迟发送后该发送时间并不代表同步数据包发送时的时间,存在极大的不准确性,为了避免上述情况发生,时间戳标记单元133直接从访问控制层中获取时间。传输模块150,用于向子节点传输同步数据包。本实施例中,父节点的数据包生成模块110生成同步数据包,并由标记处理模块 130在同步数据包中标记了发送时间戳后传输模块150主动向该父节点所对应的子节点进行同步数据包的传输。在网络拓扑中全网节点呈树状结果,任一父节点下通常存在着对应的子节点,并且对于大多数节点而言其父节点和子节点的身份是相互变换的,即对于某一父节点而言该节点以子节点的身份存在,并与这一父节点以及这一父节点下的其它子节点形成同步数据包的传播区域;此外,该节点也是一个父节点,拥有对应的多个子节点,因此该节点也将生成同步数据包,并将同步数据包传输至多个子节点中,也形成了一个父节点与子节点之间的传播区域,这一传播区域是不受到传播区域之外的节点干扰的,可有效减少串音干扰,通过传播区域隔离其它节点向传播区域中的子节点所进行的同步数据包传输,避免了这一传输所造成的能量浪费,特别是在节点密度较大所造成的大量能量浪费。在一个具体的实施例中,如图9所示,传输模块150包括发送单元151、时间获取单元153以及修改单元155。发送单元151,用于发送同步数据中的包头。本实施例中,在传输过程中传输延迟包括了发射前导码和起始符的进行以及发射同步数据的时间,发射同步数据的时间是确定的,取决于发送者与接收者之间的距离,这比较难估计,但因为同步数据包在空气中的传播速度非常快,传播速度可达3*108m/s,因此可
14以忽略不计,此时,为避免误差的产生,发送单元151首先将包含了前导码和起始符的包头发送出去。时间获取单元153,用于待包头发送完毕之后从访问控制层获取时间。本实施例中,在包头发送完毕之后时间获取单元153再次从访问控制层中获取当前所处的时间。修改单元155,用于根据获取到的时间修改与包头对应的同步数据包中标记的发送时间戳。本实施例中,修改单元155根据再次从访问控制层获取到的时间对已经标记于同步数据包中的发送时间戳进行修改,这一方式可减少网络环境中各种可能的因素对同步精度造成影响。发送单元151还用于传输修改了标记的发送时间戳的同步数据包。本实施例中,在畅通的传输信道中发送单元151将发送时间戳已经修改的同步数据包传输至子节点中。在另一个实施例中,如图10所示,上述无线传感器网络中的时间同步系统还包括了同步序号判断模块210,该同步序号判断模块210用于判断同步数据包中的同步序号是否大于子节点中存储的同步序号,若是,则通知接收模块170,若否,则丢弃接收到的同步数据包。本实施例中,在父节点生成同步数据包时对一系列同步数据包进行顺序编号,使得每一同步数据包均包含了同步序号,这一同步序号对于每一同步数据包而言是唯一的。 首先生成并发送的同步数据包的同步序号较小,后发出的同步数据包中的同步序号较大。当同步序号判断模块210判断到同步数据包中的同步序号大于子节点中已经接收到的同步数据包的同步序号,说明这一接收到的同步数据包是有效的,需要对其进行接收时间戳的标记;当同步序号判断模块210判断到同步数据包中的同步序号未大于子节点中存储的同步序号,说明同步数据包的发送发生异常,不能通过这一同步数据对子节点进行时间同步。接收模块170,用于接收同步数据包,并在同步数据包中标记接收时间戳。本实施例中,子节点的接收模块170在接收到由父节点发送的同步数据包后,在接收到的同步数据包中标记接收到同步数据包时子节点所处的时间。在另一个实施例中,在无线传感器网络的网络拓扑中,节点发生移动等变化的可能性是非常大的,移动发生后子节点所对应的父节点将发生变化,接收模块170还用于判断传输同步数据包的父节点是否发生变化,若是,则清除子节点存储的时间偏移量,若否, 则接收同步数据包。本实施例中,在进行传输同步数据包的父节点是否发生了变化的过程中,不需要对根节点进行判断。当接收模块170判断到传输同步数据包发生了变化时说明接收了同步数据包的子节点所对应的父节点与原先的父节点不是同一节点,需要清除子节点中存储的时钟偏移量,重新通过变化后的父节点进行时间的同步。补偿模块190,用于根据同步数据包中发送时间戳和接收时间戳对子节点补偿时
钟飘移。本实施例中,补偿模块190由同步数据包中所标记的发送时间戳和接收时间戳可以得到时间偏差,进而根据这一偏差进行子节点中的时间同步。在一个具体的实施例中,如图11所示,上述补偿模块190包括校准计算单元191、 偏移量计算单元193、拟和单元195以及飘移补偿单元197。校准计算单元191,用于通过同步数据包的字节长度以及发射速率之商得到字节校准时间。本实施例中,在接收到同步数据包时所获取到的时间包含了同步数据包的实际接收时间和字节校准时间,因此需要进行字节校准时间的补偿,字节校准时间是确定的,即芯片的发射速率是已知的,为19. 21ApS,校准计算单元191用同步数据包的字节长度除以芯片的发射速率就可以得到字节校准时间。偏移量计算单元193,用于根据同步数据包中接收时间戳、发送时间戳以及字节校准时间得到时钟偏移量。本实施例中,时钟偏移量为实际接收时间之间与同步数据包发送时所处时间的差值,为计算得到时钟偏移量,偏移量计算单元193由发送时间戳与字节校准时间之差得到了实际接收时间,进而由接收时间戳与实际接收时间之差得到了时钟偏移量,具体的过程过程可如以下公式所示offset = t「t2-t0其中,offset为时钟偏移量,、为接收时间戳,t2为字节校准时间,t0为发送时间戳。拟和单元195,用于对时钟偏移量以及子节点所处时间进行最小二乘法直线拟和得到线性回归直线。本实施例中,拟和单元195通过最小二乘法直线拟和的方法计算出一条线性回归直线的斜率和偏差,然后利用这一线性回归直线对子节点所处时间进行时钟飘移补偿。飘移补偿单元197,用于根据线性回归直线对子节点进行时钟飘移补偿。在另一个具体的实施例中,偏移量计算单元193还用于将时钟偏移量存储于子节点的历史数据中。本实施例中,在进行时间同步的过程中偏移量计算单元193将计算得到的时钟偏移量存储于子节点的历史数据中,以方便在后续的时间同步过程使用方历史数据。飘移补偿单元197还用于当未接收到同步数据时从子节点的历史数据中获取存储的时钟偏移量,并根据存储的时钟偏移量对子节点补偿时钟飘移。本实施例中,由于网络环境较为复杂,无法接收同步数据包的情况时有发生,当未接收到父节点所发送的同步数据包时飘移补偿单元197从存储的历史数据中获取存储的时钟偏移量,并通过历史数据中的时钟偏移量实现子节点的时间同步。在另一个实施例中,如图12所示,上述无线传感器网络中的时间同步系统还包括时钟变化计算模块310、差值计算模块330以及差值处理模块350。时钟变化计算模块310,用于从接收的同步数据包中获取标记的发送时间戳和接收时间戳,并通过接收时间戳和发送时间戳之差得到时钟变化量。本实施例中,在时间同步的过程中,如果时钟偏移量较大,则说明时间同步过程出错的可能性非常大,不能通过这一时钟偏移量进行子节点的时间同步,因此在对子节点进行补偿时钟飘移之前,时钟变化计算模块310应当根据发送时间戳和接收时间戳进行运算得到刚接收到的同步数据包所对应的时钟变化量,即newoffset = Vt1其中,newoffset为刚接收到的同步数据包所对应的时钟变化量,t2为接收时间戳,、为发送时间戳。差值计算模块330,用于计算时钟变化量与变化均值之间的差值。本实施例中,变化均值由存储于历史数据中的时钟偏移量计算得到。差值处理模块350,用于判断差值是否小于阈值,若否,则清除接收到的同步数据包,若是,则通知补偿模块190。本实施例中,差值越大,则说明时间变化量与变化均值之间的偏差越大,时间同步过程存在错误的可能性也就越大,差值越小,则说明时间变化量与变化均值之间的偏差越当差值处理模块350判断到差值小于阈值时,利用此同步数据包中的接收时间戳和发送时间戳进行时钟飘移的补偿;当差值处理模块350判断到差值并没有小于设定的阈值时,说明这一同步数据包中标记的接收时间戳和发送时间戳是不可用的,应当清除这一接收到的同步数据包。在另一个实施例中,如图13所示,上述无线传感器网络中的时间同步系统还包括接收数量判断模块410、侦听时间判断模块430以及睡眠时间判断模块450。接收数量判断模块410,用于判断接收到的同步数据包是否大于设定的数量阈值, 若否,则通知接收模块170,若是,则通知侦听时间判断模块430。本实施例中,在子节点接收同步数据包的过程中,为节点能量消耗,在接收到的同步数据包数量大于设定的数量阈值时,说明子节点接收到的同步数据包数量已经足够进行时间同步,则查看子节点对传输信道所进行的侦听是否到了设定的侦听周期,当接收数量判断模块410判断到接收的同步数据包数量并没有大于数量阈值时,子节点应当继续进行同步数据包的接收,直至达到设定的数量阈值。数量阈值可以根据传感器节点所拥有的内存来设定,当传感器节点中的内存较大或者传感器节点中运行的实际应用对内存的需求较小时,数量阈值可以设定为一个较大的数值,反之,则设定一个较小的数值,在优选的实施例中,数量阈值为5 8,这使得传感器节点中既不会接收过多的同步数据包而占用过多内存,也不会因为接收的同步数据包过少而使得传感器节点中时间同步的精度不高。侦听时间判断模块430,用于判断子节点的侦听时间是否达到侦听周期,若是,则子节点进入睡眠状态,若否,则不做任何处理,继续进行侦听。本实施例中,在接收到的同步数据包数量大于数量阈值时,侦听时间判断模块430 判断子节点的侦听时间是否达到了侦听周期,如果达到了侦听周期,则子节点将进入睡眠状态。在优选的实施例中,侦听时间判断模块430可以是定时器,对传感器节点中的活动进行定时,以便于实现传感器节点的控制。睡眠时间判断模块450,用于判断子节点的睡眠时间是否达到睡眠周期,若是,则唤醒子节点,并通知接收模块170,若否,则继续处于睡眠状态。本实施例中,在子节点处于睡眠状态时节点所消耗的能量是非常小的,极大地降低了网络能量消耗,但是,由于子节点还应当解除睡眠状态继续进行同步数据包的接收。在优选的实施例中,睡眠时间判断模块450也可以是一个定时器,用于对其睡眠时间进行计时,在睡眠时间达到定时器所设定的时间后立即唤醒子节点进入侦听状态。在另一个实施例中,上述无线传感器网络中的时间同步系统还包括了同步判断模 ±夬,该同步判断模块用于根据子节点的睡眠时间判断是否达到同步时间,若是,则通知数据包生成模块110,若否,则不做任何处理。本实施例中,对于大多数节点而言既拥有唯一的父节点,又存在多个节点作为这一节点的子节点,即这一节点即是某一父节点的子节点,又是其它多个节点的父节点,因此,这一节点既需要接收由父节点传输的同步数据包,根据父节点的同步数据包进行时间同步,又需要生成同步数据包向其子节点传输。由于每一父节点与子节点之间形成了相对独立的传播区域,传播区域之间互不干扰地进行时间同步,某一节点在一传播区域中接收来自父节点的同步数据包,在达到设定的同步时间后又在另一传播区域中生成同步数据并向其子节点发送同步数据包,实现周期性地同步时间,减少能量的浪费。上述无线传感器网络中的时间同步方法及系统,仅向子节点传输同步数据包,实现了父节点与子节点之间的时钟飘移补偿,在父节点与子节点所形成的区域中实现区域性的时间同步,与传统的全网时间同步相比较降低了网络能量的消耗,也能够尽量避免由于串音干扰所带来的能量消耗。上述无线传感器网络中的时间同步方法及系统,在检测到传输信道处于空闲状态后从访问控制层中获取发送时间并将同步数据包发送出去,不从应用层中获取发送时间, 而直接从访问控制层中获取发送时间有利于减少误差来源,进而降低时间同步过程中的误差,提高时间同步的精确度。上述无线传感器网络中的时间同步方法及系统,在发送了同步数据包中的包头之后再次从访问控制层中获取时间,并对标记于同步数据包上的发送时间戳进行修改以减少网络中的各种因素对同步精确度造成影响,提高时间同步的精确度。上述无线传感器网络中的时间同步方法及系统,在接收了设定数量的同步数据包后若子节点对传输信道进行侦听所占时间达到侦听周期时,子节点进入睡眠状态,在睡眠时间达到了睡眠周期时唤醒处于睡眠状态的子节点,减少了空闲侦听时间可以直到大幅度地降低通信的能量开销,特别是在环境监控采样频率不高的场合中多数节点处于睡眠状态可以有效地延长整个网络的生存时间。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
权利要求
1.一种无线传感器网络中的时间同步方法,包括如下步骤 生成同步数据包,并在所述同步数据包中标记发送时间戳; 向子节点传输所述同步数据包;接收所述同步数据包,并在所述同步数据包中标记接收时间戳; 根据所述同步数据包中发送时间戳和接收时间戳对所述子节点补偿时钟飘移。
2.根据权利要求1所述的无线传感器网络中的时间同步方法,其特征在于,所述在所述同步数据包中标记所述时间戳的步骤为检测传输信道是否处于空闲状态,若是,则从访问控制层获取发送时间; 根据获取到的发送时间生成发送时间戳; 将所述生成的发送时间戳标记于所述同步数据包中。
3.根据权利要求1所述的无线传感器网络中的时间同步方法,其特征在于,所述向子节点传输所述同步数据包的步骤为 发送所述同步数据包中的包头;待所述包头发送完毕之后从访问控制层获取时间;根据所述获取到的时间修改所述包头对应的同步数据包中所述标记的发送时间戳; 传输所述修改了标记的发送时间戳的同步数据包。
4.根据权利要求1所述的无线传感器网络中的时间同步方法,其特征在于,所述接收所述同步数据包的步骤之后还包括判断所述同步数据包中的同步序号是否大于所述子节点中存储的同步序号,若是,则进入所述在所述同步数据包中标记所述接收时间戳的步骤。
5.根据权利要求1所述的无线传感器网络中的时间同步方法,其特征在于,所述根据所述同步数据包中发送时间戳和接收时间戳对所述子节点补偿时钟飘移的步骤为通过同步数据包的字节长度以及发射速率之商得到字节校准时间;根据所述同步数据包中接收时间戳、发送时间戳以及字节校准时间得到时钟偏移量;对所述时钟偏移量以及子节点所处时间进行最小二乘法直线拟和得到线性回归直线.一入 ,根据所述线性回归直线对所述子节点进行时钟飘移补偿。
6.根据权利要求5所述的无线传感器网络中的时间同步方法,其特征在于,所述根据所述同步数据包中接收时间戳、发送时间戳以字节校准时间得到时钟偏移量的步骤之后还包括将所述时钟偏移量存储于所述子节点的历史数据中; 所述方法还包括当未接收到同步数据包时从子节点的历史数据中获取存储的时钟偏移量,并根据所述存储的时钟偏移量对所述子节点补偿时钟飘移。
7.根据权利要求1所述的无线传感器网络中的时间同步方法,其特征在于,所述根据所述同步数据包中发送时间戳和接收时间戳对所述子节点补偿时钟飘移的步骤之前还包括从接收到的同步数据包中获取标记的发送时间戳和接收时间戳,并通过所述接收时间戳和发送时间戳之差得到时钟变化量;计算所述时钟变化量与变化均值之间的差值;判断所述差值是否小于阈值,若否,则清除所述接收到的同步数据包,若是,则进入所述根据所述同步数据包中发送时间戳和接收时间戳对所述子节点补偿时钟飘移的步骤。
8.根据权利要求1所述的无线传感器网络中的时间同步方法,其特征在于,还包括 判断接收到的同步数据包数量是否大于设定的数量阈值,若否,则进入所述接收所述同步数据包的步骤,若是,则判断所述子节点的侦听时间是否达到侦听周期,若是,则所述子节点进入睡眠状态; 判断所述子节点的睡眠时间是否达到睡眠周期,若是,则唤醒所述子节点,并进入所述所述接收所述同步数据包的步骤。
9.根据权利要求8所述的无线传感器网络中的时间同步方法,其特征在于,还包括 根据所述子节点的睡眠时间判断是否达到同步时间,若是,进入所述通过生成同步数据包,并在所述同步数据包中标记所述发送时间戳的步骤。
10.根据权利要求1所述的无线传感器网络中的时间同步方法,其特征在于,所述接收所述同步数据包的步骤之后还包括判断传输所述同步数据包的父节点是否发生变化,若是,则清除所述子节点中存储的时钟偏移量,若否,则进入接收所述同步数据包的步骤。
11.一种无线传感器网络中的时间同步系统,其特征在于,包括 数据包生成模块,用于生成同步数据包;标记处理模块,用于在所述同步数据包中标记发送时间戳; 传输模块,用于向子节点传输所述同步数据包;接收模块,用于接收所述同步数据包,并在所述同步数据包中标记接收时间戳; 补偿模块,用于根据所述同步数据包中发送时间戳和接收时间戳对所述子节点补偿时钟飘移。
12.根据权利要求11所述的无线传感器网络中的时间同步系统,其特征在于,所述标记处理模块包括信道检测单元,用于检测传输信道是否处于空闲状态,若是,则从访问控制层获取发送时间;时间戳标记单元,用于根据获取到的发送时间生成发送时间戳,并将所述生成的发送时间戳标记于所述同步数据包中。
13.根据权利要求11所述的无线传感器网络中的时间同步系统,其特征在于,所述传输模块包括发送单元,用于发送所述同步数据中的包头;时间获取单元,用于待所述包头发送完毕之后从访问控制层获取时间; 修改单元,用于根据所述获取到的时间修改与所述包头对应的同步数据包中所述标记的发送时间戳;所述发送单元还用于传输所述修改了标记的发送时间戳的同步数据包。
14.根据权利要求11所述的无线传感器网络中的时间同步系统,其特征在于,还包括 同步序号判断模块,用于判断所述同步数据包中的同步序号是否大于所述子节点中存储的同步序号,若是,则通知所述接收模块。
15.根据权利要求11所述的无线传感器网络中的时间同步系统,其特征在于,所述补偿模块包括校准计算单元,用于通过同步数据包的字节长度以及发射速率之商得到字节校准时间;偏移量计算单元,用于根据所述同步数据包中接收时间戳、发送时间以及字节校准时间得到时钟偏移量;拟和单元,用于对所述时钟偏移量以及子节点所处时间进行最小二乘法直线拟和得到线性回归直线;飘移补偿单元,用于根据所述线性回归直线对所述子节点进行时钟飘移补偿。
16.根据权利要求15所述的无线传感器网络中的时间同步系统,其特征在于,所述偏移量计算单元还用于将所述时钟偏移量存储于所述子节点的历史数据中;所述飘移补偿单元还用于当未接收到同步数据时从子节点的历史数据中获取存储的时钟偏移量,并根据所述存储的时钟偏移量对所述子节点补偿时钟飘移。
17.根据权利要求11所述的无线传感器网络中的时间同步系统,其特征在于,还包括 时钟变化计算模块,用于从接收的同步数据包中获取标记的发送时间戳和接收时间戳,并通过所述接收时间戳和发送时间戳之差得到时钟变化量;差值计算模块,用于计算所述时钟变化量与变化均值之间的差值; 差值处理模块,用于判断所述差值是否小于阈值,若否,则清除所述接收到的同步数据包,若是,则通知所述补偿模块。
18.根据权利要求11所述的无线传感器网络中的时间同步方法,其特征在于,还包括 接收数量判断模块,用于判断接收到的同步数据包数量是否大于设定的数量阈值,若否,则通知所述接收模块,若是,则通知侦听时间判断模块;所述侦听时间判断模块用于判断所述子节点的侦听时间是否达到侦听周期,若是,则所述子节点进入睡眠状态;睡眠时间判断模块,用于判断所述子节点的睡眠时间是否达到睡眠周期,若是,则唤醒所述子节点,并通知所述接收模块。
19.根据权利要求18所述的无线传感器网络中的时间同步系统,其特征在于,还包括 同步判断模块,用于根据所述子节点的睡眠时间判断是否达到同步时间,若是,则通知所述数据包生成模块。
20.根据权利要求11所述的无线传感器网络中的时间同步系统,其特征在于,所述接收模块还用于判断传输所述同步数据包的父节点是否发生变化,若是,则清除所述子节点存储的时间偏移量,若否,则接收所述同步数据包。
全文摘要
一种无线传感器网络中的时间同步方法,包括如下步骤生成同步数据包,并在所述同步数据包中标记发送时间戳;向子节点传输所述同步数据包;接收所述同步数据包,并在所述同步数据包中标记接收时间戳;根据所述同步数据包中发送时间戳和接收时间戳对所述子节点补偿时钟飘移。上述无线传感器网络中的时间同步方法及系统,仅向子节点传输同步数据包,实现了父节点与子节点之间的时钟飘移补偿,在父节点与子节点所形成的区域中实现区域性的时间同步,与传统的全网时间同步相比较降低了网络能量的消耗,也能够尽量避免由于串音干扰所带来的能量消耗。
文档编号H04J3/06GK102355319SQ20111023626
公开日2012年2月15日 申请日期2011年8月17日 优先权日2011年8月17日
发明者于峰崎, 吕广燊, 曹光明 申请人:中国科学院深圳先进技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1