一种局域网络中设备的时钟同步方法与流程

文档序号:19950689发布日期:2020-02-18 10:26阅读:141来源:国知局
一种局域网络中设备的时钟同步方法与流程

本发明属于局域网络通信技术领域,尤其涉及一种局域网络中设备的时钟同步方法。



背景技术:

现代通信网络中对于时钟偏差的计算需求越来越普遍,精度要求也越来越高。常见的应用场景,如:分布式网络中设备的协同工作,高精度控制系统的精准控制以及数据高速实时传输时延的确定等等,都需要进行时间偏差的计算,由此实现时钟的同步。

时钟同步分为相位同步和频率同步。目前,国内时钟同步的研究多集中于相位同步,如:ntp协议研究、ieee1588协议研究、as6802协议研究等等。而关于时钟频率同步的研究较少,尚未发现较为成熟的方法。

相位同步,即时间同步,主要针对相同频率的时钟。进行时钟的相位同步,主要是指使不同时钟的周期计数值相等,表示的时间一致。

频率同步主要是指使不同时钟在频率上保持某种特定的关系。因为在实际工作中,外界原因或者晶振本身原因会导致时钟的频率在理想频率附近变化,所以时钟同步主要是调整时钟脉冲输出频率,使时钟实际工作时输出的脉冲频率尽可能与理想状态下输出保持一致,从而维持不同时钟输出频率的特定关系。

针对相位同步,现在常用的ieee1588时钟同步协议采用往返式报文实现时钟的时间同步,精度可达微秒级,但其缺点是造成的网络负载较大,因此存在一定优化空间。此外,ieee1588时钟同步协议采用分级同步的架构,当网络规模较大时,其时钟同步的执行周期会较长。

针对频率同步,相关研究相对较少,可通过相应算法实现对时钟频率变化的建模预测,从而增加或减少一定数量的上升/下降沿以实现对输出频率的调整。增加了频率同步的时钟同步设计,可在一定程度上增大时钟相位同步的周期,降低时钟同步的频率。



技术实现要素:

为了解决上述问题,本发明的目的在于提供一种局域网络中设备的时钟同步方法,用以实现分布式网络中时钟的相位同步和频率同步;在保证一定时钟同步精度的条件下,减少时钟同步造成网络负载,提高时钟同步执行效率。

为了达到上述目的,本发明提供的局域网络中设备的时钟同步方法包括按顺序进行的下列步骤:

步骤1):局域网络中的时间管理单元以固定周期t发送同步请求报文,经交换机转发到各需要同步的设备;在发送同步请求报文时,时间管理单元会记录下该同步请求报文的发送时间,记为t1n,并根据其时钟同步序列号sernum=n写入时间戳ram1;其中,同步请求报文包括帧识别符、目的设备号、源设备号以及时钟同步序列号信息,并预留有时间修正域;时间戳ram1是专门用于保存不同时钟同步序列号的同步请求报文发送时间t1n的随机存储器。

所述的帧识别符记录的是同步请求报文的帧识别号,便于报文数据解析及有效数据的提取;

目的设备号记录的是需要同步设备的设备号;

源设备号记录的是时间管理单元的设备号;

时钟同步序列号记录的是该同步请求报文进行的时钟同步是第几次同步循环;

时间修正域记录的是该报文在交换机内的滞留时间。

步骤2):在交换机内采用滞留时间桥机制,将同步请求报文进入交换机的时间记为tin,离开交换机的时间记为tout,则同步请求报文在交换机内的滞留时间tresid-req=tout-tin;在转发时,交换机会将该滞留时间写入同步请求报文的时间修正域。

步骤3):设备在接收到同步请求报文的同时会记录下该报文的接收时间t2n,并生成请求响应报文;之后,请求响应报文会经交换机转发至时间管理单元;在设备发送请求响应报文的瞬间,会记录下请求响应报文的发送时间t3n并将该时间载入请求响应报文中;其中,请求响应报文包括帧标识符、目的设备号、源设备号、时钟同步序列号、同步请求报文的接收时间t2n、请求响应报文的发送时间t3n以及时间修正域,并预留有滞留时间差域。

所述的帧识别符记录的是请求响应报文的帧识别号,便于报文数据解析及有效数据的提取;

目的设备号记录的是时间管理单元的设备号;

源设备号记录的是本设备的设备号;

时钟同步序列号记录的是该同步请求报文进行的时钟同步是第几次同步循环;

t2n记录的是设备接收同步请求报文的时间;

t3n记录的是设备发送请求响应报文的时间;

时间修正域记录的是该报文对应同步请求报文在交换机内的滞留时间;

滞留时间差域记录的是同步请求报文在交换机内的滞留时间与请求响应报文在交换机内的滞留时间差值。

步骤4):采用与步骤2)中同步请求报文在交换机内的滞留时间同样的处理方式,即可得到请求响应报文在交换机内的滞留时间并记作tresid-resp,并用该滞留时间减去原时间修正域中的滞留时间tresid-req即可得到滞留时间差δtresid=tresid-resp-tresid-req,并将该滞留时间差附在时间修正域后的滞留时间差域中。

步骤5):时间管理单元接收到请求响应报文时,会记录下该报文的接收时间t4n并将其按时钟同步序列号以及设备号写入时间戳ram4中;此外,时间管理单元还会根据接收的请求响应报文解析出同步请求报文的接收时间t2n以及请求响应报文的发送时间t3n,将它们按照其时钟同步序列号以及设备号分别存放至时间戳ram2、时间戳ram3中。其中时间戳ram2、时间戳ram3、时间戳ram4分别为用于保存不同时钟同步序列号的同步请求报文接收时间t2n、请求响应报文的发送时间t3n以及请求响应报文的接收时间t4n的随机存储器。

步骤6):时间管理单元根据上述接收到的各设备时间信息与时间管理单元信息进行计算而得到相位偏差和设备的频率修正系数,然后将相位偏差与设备的频率修正系数和设备号联系起来生成相对时间偏差列表,并发送给各需要同步的设备;

计算相位偏差,过程如下:

根据上述记录的同步请求报文的发送时间t1n、同步请求报文的接收时间t2n、请求响应报文的发送时间t3n、请求响应报文的接收时间t4n以及同步请求报文在交换机内的滞留时间tresid-req和请求响应报文在交换机内的滞留时间tresid-resp,在一次时钟同步过程中,记相位偏差为toffset,假设主从链路延迟tms与从主链路延迟tsm相等,即tms=tsm,则在同步请求报文的发送至接收过程中,存在:

t1n+tms+tresid-req-toffset=t2n

在请求响应报文的发送至接收过程中,存在:

t3n+tsm+tresid-resp+toffset=t4n

由上述三式可得一次时钟同步过程中设备与时间管理单元的相位偏差toffset,如下所示:

由请求响应报文的滞留时间差可得δtresid,而δtresid=tresid-resp-tresid-req,所以相位偏差:

(2)计算频率修正系数,在此过程中,需要局域网络在进行两次及两次以上时钟同步过程中产生时间数据,过程如下:

当进行第一次时钟同步时,默认频率修正系数为1;

当进行第二次以及两次以上时钟同步时,取时钟同步序列号sernum=x(x=1,2,3....n),时间管理单元发送同步请求报文时间t1x、设备的接收时间t2x、同步请求报文在交换机内的滞留时间tresid-req;另取时钟同步序列号sernum=x+1(x=1,2,3...n),时间管理单元发送同步请求报文时间t1x+1、设备的接收时间t2x+1、同步请求报文在交换机内的滞留时间tresid-req(x+1);对于x,x+1两次同步过程,同步请求报文的接收时间间隔应为其发送时间间隔与路径时延变化之和,而路径时延变化主要在于交换机由于调度导致的滞留时间的变化。所以,在同步过程中,相邻两次同步请求报文的接收时间间隔等于它们发送时间间隔加上传输过程中交换机滞留时间的变化,即:

tm(t1x+1-t1x)+ts'witch(tresid-req(x+1)-tresid-reqx)=ts'[t2x+1-t2x]

其中,tm为时间管理单元本地时钟周期,fm为其频率;ts’为实际工作时设备本地时钟周期,fs’为其实际工作频率;tswitch为交换机理想状态下时钟周期,t’switch为实际工作过程中时钟周期。由上式可得设备的频率修正系数:

由于时钟管理单元在设计时采用性能较为稳定的物理器件,认为其时钟频率不产生漂移,即时间管理单元频率fm、时间管理单元本地时钟周期tm不变。当交换机内的滞留时间远小于同步间隔时,可认为ts'witch=tswitch成立,所以上述设备的频率修正系数计算公式即为:

最后将上述相位偏差与设备的频率修正系数和设备号联系起来生成相对时间偏差列表,并发送到各需要同步的设备;

步骤7):需要进行偏差计算的设备根据接收到的相对时间偏差列表进行其时钟同步处理,整个过程分为时钟相位同步与时钟频率修正,从而即可实现对时钟相位的同步和频率的修正。

时钟相位同步过程如下:

需要进行时钟相位同步的设备根据其设备号查询相对时间偏差列表即可得到本设备的频率修正系数、本设备的相位偏差toffseta和目的设备的相位偏差toffsetb,将本设备的相位偏差toffseta和目的设备的相位偏差toffsetb相减即可得到两设备间的相对时间偏差δtab;

时钟频率修正过程如下:

在理想状态下,频率修正系数为1,即:时间管理单元的时钟频率与设备的时钟频率之比为而在实际应用过程中,根据频率修正系数可得时间管理单元的时钟频率与设备的时钟频率之比为所以有fs=λx+1fs'=fs'+(λx+1-1)fs'成立,从而可知在fs'基础上对时钟频率修正,需要在其现有频率基础上增加(λx+1-1)fs'。

上述时钟同步过程中,时钟的相位同步和频率同步是同时进行的,在调整过程中所需要的数据都可从相对时间偏差列表中获得。此外,各设备间进行时钟同步也可以是同时进行的,它们没有明显的时间先后关系,只要目的设备的设备号对本设备已知,且本设备已经接收到相对时间偏差列表即可进行时钟同步。

本发明提供的局域网络中设备的时钟同步方法不仅可以实现时钟的相位同步,而且可以实现对时钟频率的修正。本发明基于ieee1588协议设计思想,通过往返式报文将各个设备时钟信息集中在时间管理单元中;之后,根据收集到各设备时间信息与时间管理单元信息进行计算得到相位偏差和设备的频率修正系数;然后将计算得到相位偏差与设备的频率修正系数和设备号联系起来生成相对时间偏差列表,并发送到各需要同步的设备;最后,设备根据自身设备号和目的设备号查询接收到的相对偏差时间列表得到本设备的频率修正系数以及本设备和目的设备的相对时间偏差,从而即可实现对时钟相位的同步和频率的修正。本发明方法在保持现有时钟同步精度的同时不仅优化了ieee1588协议同步过程中造成负载较大的问题以及时钟同步执行周期可能较长的问题,而且在进行时间同步的过程中,提出了一种基于列表的时钟频率同步方法。

附图说明

图1是本发明简化模型框图。

图2是时间管理单元内部结构框图。

图3是时间管理单元以及设备在时钟同步过程中的工作流程图。

图4是设备内部的时钟同步处理单元结构框图。

图5是时钟同步过程中数据帧格式。

图6是同步请求报文载荷结构。

图7是请求响应报文载荷结构。

图8是相对时间偏差列表传输时帧格式。

图9是相对时间偏差列表数据结构。

具体实施方式

下面结合附图对本发明作详细的说明。

如图1所示,本发明提供的局域网络中设备的时钟同步方法实施过程主要集中在时间管理单元与各需要同步的设备之间,中间的交换机主要是考虑报文在其中由于调度导致的滞留时间可能会对时钟同步精度产生一定影响。

在时钟同步实施过程中,主要由时间管理单元和各需要同步的设备实现。

如图2所示,时间管理单元由接收模块、同步控制模块、打时间戳模块、同步请求报文组帧模块、存储模块、帧解析模块、数据处理模块、列表生成模块以及发送模块组成。其中,接收模块和发送模块主要负责同步过程中报文的接收和发送;同步控制模块主要负责维持时钟同步过程以固定周期进行,并对数据处理模块、接收模块和发送模块进行控制;打时间戳模块主要负责报文发送和接收时打时间戳;同步请求报文组帧模块主要负责同步请求报文的组帧;存储模块主要用于存储时间戳、端口号、时钟同步序列号等数据,以便于读取使用;帧解析模块主要负责对请求响应报文的解析,实现对有效数据的采取;数据处理模块主要负责相位偏差和频率修正系数的计算;列表生成模块主要负责相对时间偏差列表的生成。

时间管理单元在时钟同步过程中,其工作流程如图3(a)所示。首先,由同步请求报文组帧模块生成同步请求报文并交由发送模块发送。在发送过程中,打时间戳模块会在同步请求报文发送第一比特数据时记录下其发送时间,并写入存储模块;然后,同步控制模块会对接收请求响应报文进行超时判断。如果未超时,则接受;否则,直接丢弃。之后,帧解析模块会对接收到的请求响应报文进行帧解析,并将有效信息存储;然后,在同步控制模块的控制下,数据处理模块会从存储模块读取时间戳、设备号、时钟同步序列号进行相位偏差以及频率修正系数的计算;再然后,由列表生成模块根据时钟同步序列号以及设备号对相位偏差以及频率修正系数进行处理,生成相对时间偏差列表;最后,交由发送模块发送出去。

如图4所示,设备内部的时钟同步处理单元由接收模块、打时间戳模块、请求响应报文组帧模块、存储模块、帧解析模块、数据处理模块、发送模块以及时钟同步模块组成。其中,接收模块和发送模块主要负责同步过程中报文的接收和发送;打时间戳模块主要负责报文发送和接收时打时间戳;请求响应报文组帧模块主要负责请求响应报文的组帧;存储模块主要用于存储接收的相对时间偏差列表以及时间戳、设备号、时钟同步序列号;帧解析模块主要负责对同步请求报文的解析,对有效数据进行采取;数据处理模块主要负责设备间相位偏差和时钟频率修正的计算;时钟同步模块主要负责根据数据处理模块计算得到的设备间相位偏差和时钟频率修正量进行时钟同步。

设备在时钟同步过程中,其工作流程如图3(b)所示。首先,由接收模块接收同步请求报文并打下接收时间戳;然后,由请求响应报文组帧模块根据帧解析模块解析出的有效数据生成请求响应报文并由发送模块发送出去;之后,等待接收模块接收相对时间偏差列表。当相对时间偏差列表接收完成后,先写入存储模块;然后,数据处理模块会根据需求查询相对时间偏差列表,获取有效信息,进行相关计算;最后,时钟同步模块根据数据处理模块计算得到的设备间相位偏差和时钟频率修正量进行时钟同步。

整个局域网络中设备的时钟同步过程是周期进行的,详细步骤如下:

步骤1):局域网络中的时间管理单元以固定周期t发送同步请求报文,经交换机转发到各需要同步的设备。在发送同步请求报文时,时间管理单元会记录该同步请求报文的发送时间,记为t1n,并根据其时钟同步序列号sernum=n写入时间戳ram1。其中,同步请求报文包括帧识别符、目的设备号、源设备号以及时钟同步序列号信息,并预留有时间修正域。时钟同步过程中的数据帧格式如图5所示,其中同步请求报文载荷部分如图6所示;

步骤2):同步请求报文发送出去后会进入到交换机,由交换机实现调度转发,在此过程中同步请求报文会在交换机内滞留一段时间。滞留时间的获取采用滞留时间桥机制:记同步请求报文进入交换机的时间为tin,离开交换机的时间为tout,则同步请求报文在交换机内的滞留时间tresid-req=tout-tin。在交换机转发该报文时会将该滞留时间加载进同步请求报文的时间修正域并随之发送;

步骤3):同步请求报文到达设备时,设备会记录下同步请求报文的到达时间t2n,并生成请求响应报文;之后,请求响应报文会经交换机转发至时间管理单元。在设备发送请求响应报文的瞬间,会记录下请求响应报文的发送时间t3n并将该时间载入请求响应报文中。其中,请求响应报文包括帧标识符、目的设备号、源设备号、时钟同步序列号、同步请求报文的接收时间t2n、请求响应报文的发送时间t3n以及时间修正域,并预留有滞留时间差域。请求响应报文负载数据格式如图7所示。

步骤4):请求响应报文离开设备后,会进入到交换机进行调度转发。此过程与步骤2)相同,记请求响应报文在交换机内的滞留时间为tresid-resp,不同的是请求响应报文在离开交换机时,报文中不会携带请求响应报文在交换机内的滞留时间tresid-resp,而是将请求响应报文在交换机内的滞留时间tresid-resp与同步请求报文在交换机内的滞留时间tresid-req的滞留时间差值δtresid放在时间修正域后的滞留时间差域内并随之发送。其中,δtresid=tresid-resp-tresid-req。

步骤5):请求响应报文经调度到达时间管理单元后,时间管理单元会在接收到请求响应报文时打下该报文的接收时间t4n并将其按时钟同步序列号以及设备号写入时间戳ram4中。此外,时间管理单元还会根据接收的请求响应报文解析出同步请求报文的接收时间t2n以及请求响应报文的发送时间t3n,将它们按照其时钟同步序列号以及设备号分别存放至时间戳ram2、时间戳ram3中。其中时间戳ram2、时间戳ram3、时间戳ram4分别为用于保存不同时钟同步序列号的同步请求报文的接收时间t2n、请求响应报文的发送时间t3n以及请求响应报文的接收时间t4n的随机存储器。

步骤6):时间管理单元根据上述接收到的各设备时间信息与时间管理单元信息进行计算而得到相位偏差和设备的频率修正系数,然后将相位偏差与设备的频率修正系数和设备号联系起来生成相对时间偏差列表,并发送给各需要同步的设备;相对时间偏差列表的数据帧格式如图8所示,其帧载荷如图9所示。相对时间偏差列表的内容分为设备号、时钟相对偏差以及时钟频率修正系数三部分。

计算相位偏差,过程如下:

根据上述记录的同步请求报文的发送时间t1n、同步请求报文的接收时间t2n、请求响应报文的发送时间t3n、请求响应报文的接收时间t4n以及交换机的滞留时间差值δtresid,在一次时钟同步过程中,记相位偏差为toffset,该偏差具有方向性。假设主从链路延迟tms与从主链路延迟tsm相等,即tms=tsm,则在同步请求报文的发送至接收过程中,存在:

t1n+tms+tresid-req-toffset=t2n

在请求响应报文的发送至接收过程中,存在:

t3n+tsm+tresid-resp+toffset=t4n

由上述三式可得一次时钟同步过程中设备与时间管理单元的相位偏差toffset,如下所示:

由请求响应报文可得滞留时间差值δtresid=tresid-resp-tresid-req,所以相位偏差为:

计算频率修正系数,过程如下:

进行频率修正系数的计算时,要进行两次以及两次以上时钟同步才可计算,故设备第一次进行时钟同步时,令本地时钟的频率修正系数λ1=1。当设备进行两次及两次以上时钟同步后,取时钟同步序列号sernum=x(x=1,2,3....n),同步请求报文的发送时间记为t1x,接收时间记为t2x,同步请求报文在交换机中的滞留时间记为tresid-reqx;当时钟同步序列号sernum=x+1(x=1,2,3...n)时,同步请求报文的发送时间记为t1x+1,接收时间记为t2x+1,同步请求报文在交换机中的滞留时间记为tresid-req(x+1)。由于所有记录时间都与计时时钟频率有关,因此t1x、t2x、tresid-reqx、t1x+1、t2x+1、tresid-req(x+1)记录的都只是数据对应时钟周期的计数值,而真实的时间是时钟周期与计数值的乘积。此外,对于x,x+1两次同步过程,同步请求报文的接收时间间隔应为其发送时间间隔与路径时延变化之和,而路径时延变化主要在于交换机由于调度导致的滞留时间的变化。所以,在同步过程中,相邻两次同步请求报文的接收时间间隔等于它们发送时间间隔加上传输过程中交换机的滞留时间的变化,即:

tm(t1x+1-t1x)+ts'witch(tresid-req(x+1)-tsesid-reqx)=ts'[t2x+1-t2x]

式中,tm为时间管理单元本地时钟周期,fm为其频率;ts'为实际工作时设备本地时钟周期,fs'为其实际工作频率,tswitch为交换机理想状态下时钟周期,t’switch为实际工作工程中时钟周期。

由上式可得时钟频率修正系数:

由于时钟管理单元在设计时采用性能较为稳定的物理器件,因此认为其时钟频率不会产生漂移,即时间管理单元频率fm、时间管理单元本地时钟周期tm不变。当交换机内的滞留时间远小于同步间隔时,可认为t’switch=tswitch成立,所以上述频率修正系数计算公式即为:

最后,时间管理单元将相对时间偏差列表发送至各个需要同步的设备。

步骤7):需要进行偏差计算的设备可根据接收到的相对时间偏差列表进行其时钟同步处理,整个过程分为时钟相位同步与时钟频率修正。

时钟相位同步过程如下:

以设备a为例,设备a(a=1,2,3....m)根据查询相对时间偏差列表loffset得到其相位偏差toffseta以及目的设备b(b=1,2,3....m,a≠b)的相位偏差toffsetb,将设备a的相位偏差toffseta和目的设备b的相位偏差toffsetb相减得到本设备与目的设备的相对时间偏差δtab,即δtab=toffseta-toffsetb。若相对时间偏差δtab为正,表示设备a比目的设备b的时钟快|δtab|;否则,表示慢了|δtab|。在进行设备a、目的设备b时钟相关的判定或者计算时,将该偏差带入计算即可。

时钟频率修正过程如下:

以设备a为例,设备a(a=1,2,3....m)根据查询相对时间偏差列表loffset得到其频率修正系数λa。在理想状态下,时间管理单元的时钟频率与设备的时钟频率之比而在实际应用过程中,根据频率修正系数可得时间管理单元的时钟频率与设备的时钟频率之比为所以有fs=λafs'=fs'+(λa-1)fs'成立,从而可知在fs'基础上对时钟频率修正,需要在其现有频率基础上增加(λa-1)fs'。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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