一种基于SFD捕获机制的泛洪式时间同步方法与流程

文档序号:11657168研发日期:2017年阅读:585来源:国知局
技术简介:
本专利针对无线传感器网络中传统时间同步方法因MAC层延迟导致精度不足的问题,提出基于SFD捕获机制的泛洪式同步方案。通过物理层直接获取时标、引入参考节点统计SFD延迟,并利用最小二乘法拟合时标漂移与偏移,实现微秒级同步精度。
关键词:SFD捕获机制,泛洪式时间同步,最小二乘法

本发明涉及一种基于sfd捕获机制的时间同步机制,具体涉及一种基于sfd捕获机制的泛洪式时间同步方法。



背景技术:

无线传感器网络是在集成电路、嵌入式系统、通信技术发展下应运而生的一种测控网络。无线传感器由大量的无线传感器节点组成,这些节点被分布在需要监测的区域,以自组织的方式组网,形成一定的拓扑结构,协同完成特定功能。传感器节点监测的数据信号在单跳或多跳的传输后被汇聚节点接收,由工作人员对接收到的数据进行分析和处理。在变电站的带电检测和故障定位中,无线传感器节点被安装在待监测的设备处,监控设备运行中的关键参数,然后将搜集的电流信号进行融合分析。数据信息的融合需要传感器网络有一个统一的时间标准。时间同步技术即是使整个无线传感器网络保持同一个时间标准的技术,它是一个分布式系统中的各个节点协同工作的最基本的支撑技术.不同的应用对时间同步的精度、范围、寿命、能量等有着不同的要求。在变电站的故障定位中,时间同步的精度直接影响到定位的准确性,虽然已经存在很多用在网络通信中的高精度的时间同步算法,然而,跟传统的通信网络不同的是,无线传感器网络中,传感器节点的计算能力和能量是有限的,很多传统的时间同步机制并不适用,所以对适合无线传感器网络的特性的高精度的时间同步机制的研究成为近年来的研究热点。

现有的时间同步算法有参照发送同步协议(rbs),双向成对同步协议(tpsn),泛洪式时间同步协议(ftsp)等,以及基于这些算法的一些改进算法。ftsp是一种基于发送者和接收者间的单向时间同步协议,节点通过发送来将节点的本地时间传给接收节点。相对于其他算法,ftsp算法更适用于对精度要求高的系统中。传统的ftsp算法一般采用在mac层打时标的方法来避免发送延迟和接收处理延迟。然而只有当信道是空闲的,消息在物理层才能进行发送,所以节点需要一个等待信道空闲的时间。在zigbee协议中,mac层采用载波监听多点接入/避让机制(csma/ca机制)来避免冲突。发送消息之前有通用通信适配器检测(cca检测),而cca的检测周期为128μs。如果检测到此时信道正在被使用,那么将会采用退避算法,等待一段时间后重新进行cca检测。检测的周期数是不确定的,这使得访问延时不能事先估计和避免,影响到了时间同步的精度。



技术实现要素:

本发明的目的是提供一种基于帧首定界符(startframedelimiter,简称sfd)捕获机制的泛洪式时间同步方法,通过利用sfd捕获机制在物理层获取时标,采用cc2530节点的sfd捕获机制来获取发送和接收数据包时的时标,采用最小二乘法对时间进行线性拟合求取时标漂移和时标偏移,并调整本地时标,减少时标获取过程的不确定因素对同步精度带来的影响,实现微秒级的同步精度的目的。

为了实现以上目的,本发明通过以下技术方案实现:

一种基于sfd捕获机制的泛洪式时间同步方法,包含以下过程:预同步阶段与同步阶段。所述预同步阶段进一步包含:

协调器发送第一个数据包,同时在本地记录sfd信号跳变时的时标tia,多个终端节点中的每个终端节点收到第一个数据包后在本地记录sfd信号跳变的时标tja;

协调器发送第二个数据包,所述第二个数据包内包含发送第一个数据包时记录的时标tia,每个所述终端节点收到第二个数据包后分别根据tia和tja计算出该终端节点和协调器的时标偏差,

δ=tia-tja

所述多个终端节点中的任意一个终端节点作为参考节点,所述参考节点接收到所述协调器发送的第二个数据包时发送一条验证信息,所述协调器和除所述参考节点之外的其他每个终端节点收到所述验证信息时,分别再次记录本地时标tib、tjb,并且收到验证信息的每个终端节点利用求出的时标偏差δ调整本地时标且将调整后的本地时标tj发送给所述协调器,

tj=δ+tjb

所述协调器对所述每个终端节点调整后的本地时标和协调器的本地时标tib分别求取差值,并对得到的差值取平均值作为sfd延迟的值dsfd;

所述同步阶段进一步包含:

所述协调器每隔设定的间隔时间发送一次同步数据包,发送第一同步数据包时,所述协调器在本地记录sfd信号跳变的时标ti,1,所述多个终端节点中每个终端节点j收到所述第一同步数据包时记录本地时标tj1;

所述协调器发送第m同步数据包时,将所述协调器在发送第m-1同步数据包时所计算并记录的时标ti,m-1,减去值dsfd得到的结果ti,m-1-dsfd嵌入所述第m同步数据包中并发送,并在本地记录sfd信号跳变的时标ti,m;

所述终端节点j接收到所述第m同步数据包时记录sfd信号跳变的时标tj,m,其中m范围为2~m+1,m取整数;所述终端节点j在收到第m+1个同步数据包后,得到包含tj,m和ti,m的m对时标数据;对所述m对时标数据进行线性拟合,采用最小二乘法估计时标漂移a与时标偏移b,根据得到的时标漂移a和时标偏移b值调整终端节点的本地时标。

优选地,根据所述终端节点j采集的(tj,m,ti,m)m对数据构造线性观测方程,

令观测向量x=[ti1ti2…tim]t,观测矩阵观测噪声向量n=[n1n2…nm]t,θ=[ab]t为待估计量,a与b分别为所述终端节点j时标漂移与时标偏移;

x=hθ+n

则最小二乘构造的估计量θ使得估计误差j(θ)达到最小;

j(θ)=(x-hθ)t(x-hθ)

令j(θ)对θ进行矢量求导,并令结果等于0,求得最优估计量θ为:

θ=(hth)-1htx

式中,

接收的终端节点在下一次同步前的时间

tj,sync=a×tj,local+b

式中,tj,local为当前时刻的本地时间,tj,sync为所述终端节点j同步后的时间。

优选地,所述各个终端节点设有型号为cc2530的硬件芯片。

本发明与现有技术相比具有以下优点:

同步算法采用sfd捕获机制来获取时标,避免了软件层的延迟以及mac层访问信道的延迟的不确定性的影响,提高了同步的精度。

同步过程分为两个阶段,第一阶段为预处理阶段,统计sfd延迟,之后开始正常的同步过程,同步中采用最小二乘法对终端节点间时标关系进行线性拟合,弥补由于时标漂移与时标偏移带来的问题。

附图说明

图1为本发明一种基于sfd捕获机制的泛洪式时间同步方法的同步流程图。

具体实施方式

以下结合附图,通过详细说明一个较佳的具体实施例,对本发明做进一步阐述。

本发明采用sfd硬件捕获机制实现打时标。所述sfd硬件捕获机制是各个终端节点自带的一种硬件捕获机制,上述各个终端节点都设有型号为cc2530的硬件芯片;每个发送信号的同步帧头中包含的一个sfd信号。当各个终端节点准备好接收或发送数据时,收发帧的sfd域进行收发的同时,sfd信号本身由低变高,并且持续到帧的收发结束。

cc2530中硬件层每次检测到sfd信号的上升沿跳变,就会自动将时标寄存器中的晶振值写入捕获寄存器,已写入捕获寄存器的值在下一次sfd信号跳变前是不会改变的。

本发明中使用的计时器是cc2530自带的timer2定时器,采用的是32mhz的晶振频率。timer2计时器是个40位的寄存器,由t2movf2、t2movf1、t2movf0、t2m1和t2m0构成,其中t2m1和t2m0分别为8位,两者构成了16位的低位计时器,在zigbee协议中,为了给退避机制提供时间单位,低位计时器的周期被设置成了0x2800(320μs)。24位的溢出寄存器由t2movf2、t2movf1、t2movf0组成。cc2530中,定时器2具有定时器捕获功能,在sfd信号状态由低变高时捕获。当捕获事件发生时,当前定时器内的值就会写到捕获寄存器中。通过将寄存器t2msel.t2msel设置为001,寄存器t2m1和t2m0的值就可以读取出来,通过将t2msel.t2movfsel设为001,同样可以获得溢出寄存器t2movf0,t2movf1和t2movf2的值。

本发明一种基于sfd捕获机制的泛洪式时间同步方法,包含以下过程;基于接收节点在收到数据包时会用一个相关器检测收到帧的sfd域,导致发送节点和接收节点的sfd信号跳变时间不完全一致,而是存在一个sfd延迟,该延迟的大小与硬件本身相关,为了在各个终端节点的本地时标中消除掉所述sfd延迟的影响,将整个同步过程分为两个阶段,第一个阶段为预同步阶段,引入一个参考节点,目的是统计sfd延迟的大小,所述参考节点为所述各个终端节点中的任意一个终端节点;第二阶段为正常的同步阶段。

所述预同步阶段进一步包含:

首先协调器发送第一个数据包,同时在本地记录sfd信号跳变时的时标tia,各个终端节点中的每个终端节点收到第一个数据包后在本地记录sfd信号跳变的时标tja。

协调器发送第二个数据包,所述第二个数据包内包含第一次发送时记录的时标tia,所述终端节点收到第二个数据包后分别根据tia和tja计算出和协调器的时标偏差

δ=tia-tja(1)

上述各个终端节点中的任意一个终端节点作为参考节点,所述参考节点接收到所述协调器发送的第二个数据包时发送一条验证信息,所述协调器和除所述参考节点之外的每个终端节点收到所述验证信息时,分别再次记录本地时标tib、tjb,并且所述每个终端节点利用求出的时标偏差δ调整本地时标且将调整后的本地时标tj发送给所述协调器,

tj=δ+tjb(2)

所述协调器根据所述每个终端节点调整后的本地时标和协调器的本地时标tib求差并取平均值作为sfd延迟的值dsfd。

所述同步阶段进一步包含:

所述协调器每隔设定的间隔时间发送一次同步数据包,发送第一同步数据包时,所述协调器在本地记录sfd信号跳变的时标ti,1,所述各个终端节点中任意一个终端节点收到所述第一同步数据包时记录本地时标tj1。

所述协调器发送第m同步数据包时,将所述协调器在发送第m-1同步数据包时所计算并记录的时标ti,m-1-dsfd嵌入所述第m同步数据包中,并在本地记录sfd信号跳变的时标ti,m。

所述终端节点接收到所述第m同步数据包时记录记录sfd信号跳变的时标tj,m,其中m范围为2~m+1,m取整数;所述终端节点在收到第m+1个同步数据包后,得到(tj,m,ti,m)m对时标数据;对所述m对时标数据进行线性拟合,采用最小二乘法估计时标漂移a与时标偏移b,根据得到的时标漂移a和时标偏移b值调整终端节点的本地时标。

如图1所示,预同步阶段进一步包含:

首先协调器i发送第一数据包pre_message1,并在本地记录下sfd信号跳变时的本地时标tia,终端节点j和k收到pre_message1时,分别记录下sfd信号跳变的时标tja和tka。

之后协调器i发起第二数据包pre_message2,所述第二数据包pre_message2中包含了本地时标tia,终端节点j和k收到所述第二数据包pre_message2后分别计算时间偏差δj=tia-tja,δk=tia-tka。

参考节点即终端节点z收到所述第二数据包pre_message2时,发送第三数据包pre_message3,所述第三数据包pre_message3作为验证消息,协调器i、终端节点k和终端节点j收到所述验证消息pre_message3时,分别记录下sfd信号跳变时的本地时标tib、tjb和tkb,终端节点k和终端节点j分别各自调整本地时标为tk=δk+tkb,tj=δj+tjb与所述协调器i同步。

此时所述调整后的终端节点j与终端节点k的时标tj、tk和协调器i的本地时标tib之间主要的时间误差来自于sfd延迟。

为了统计sfd延迟的值,所述终端节点j与终端节点k分别发送第四数据包pre_message4(tj)与第四数据包pre_message4(tk),将调整后的时标tj和tk发送给协调器i,协调器i根据dsfd=[(tib-tj)+(tib-tk)]/2计算出所述终端节点j与终端节点k间的平均sfd延迟的值。

所述同步阶段进一步包含:

在所述正常的同步阶段中,每次同步过程需要m对的时标进行线性规划,所述协调器i发送第一同步数据包message1时记录时标ti,1,终端节点j收到第一同步数据包message1时记录时标tj,1;之后协调器i把上一次的时标ti,m-1-dsfd嵌入同步数据包message[m]中,并在发送第m+1同步数据包message[m]时记录时标ti,m,终端节点j和k接收到第m+1同步数据包message[m]时分别记录时标tj,m和tk,m。所述协调器i需要收发m+1次的数据包时,所述终端节点j在收到第m+1个同步数据包后,可以获得(tj,m,ti,m)m对时标数据;终端节点k同样可以获得(tk,m,ti,m)m对时标数据。

对终端节点j所得到的m对时标数据,采用最小二乘法估计时标漂移aj与时标偏移bj,根据所述终端节点j采集的(tj,m,ti,m)m对数据构造线性观测方程,

令观测向量x=[ti1ti2…tim]t,观测矩阵观测噪声向量n=[n1n2…nm]t,θ=[ajbj]t为待估计量,aj与bj分别为所述终端节点j的时标漂移与时标偏移;

x=hθ+n

则最小二乘构造的估计量θ使得估计误差j(θ)达到最小;

j(θ)=(x-hθ)t(x-hθ)

令j(θ)对θ进行矢量求导,并令结果等于0,求得最优估计量θ为:

θ=(hth)-1htx

式中,

之后接收的终端节点在下一次同步前的时间

tj,sync=aj×tj,local+bj

式中,tj,local为当前时刻的本地时间,tj,sync为所述终端节点j同步后的时间。终端节点k的处理与终端节点j相同。

尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

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