一种时间戳的修正方法、时钟同步方法及系统与流程

文档序号:17725114发布日期:2019-05-22 02:27阅读:770来源:国知局
一种时间戳的修正方法、时钟同步方法及系统与流程

本发明涉及通信技术领域,具体是涉及一种时间戳的修正方法、时钟同步方法及系统。



背景技术:

电信运营商在2020年实现5g商用需求强烈,为了满足5g在带宽、监测和时钟同步等方面的新要求,光互联网论坛(opticalinternetforum,oif)、国际电信联盟(internationaltelecommunicationunion,itu)等国际电信组织于2016年底先后发布了灵活以太网(flexibleethernet,flexe)、灵活光传送网(flexibleopticaltransportnetwork,flexo)、光传输单元(opticaltransportunit,otu)等用于5g承载网络的超100g传输标准。

目前,这些国际标准都定义了用于承载ieee1588协议的物理层通道(physicallayer,phy),其中,ieee1588协议是一种精确时间协议(precisiontimeprotocal,ptp),基于ptp报文以及时间戳对时钟的频率和相位进行调整,进而实现不同设备之间的时钟同步。但是,各物理层通道上数据帧的传输、对齐码字(alignmentmarker,am)的插入与删除、以及跨时钟域等因素会引起帧头抖动。例如,发送端在flexe的物理层通道中插入或删除am码字的周期与flexe的帧周期不是整数倍关系,导致接收端flexe帧的帧头存在±12ns的抖动,严重影响时钟同步精度。



技术实现要素:

针对现有技术中存在的缺陷,本发明实施例的目的在于提供一种时间戳的修正方法、时钟同步方法及系统,可以提高时间戳的精度。

第一方面,本发明实施例提供一种时间戳的修正方法,其包括:

记录物理层通道接收的数据帧帧头的时间戳以及相邻帧头之间的时钟信息,时钟信息为时长或者时钟周期数量;

如果当前的时钟信息偏离前n个时钟信息的平均值,将当前数据帧帧头的时间戳向偏离的相反方向偏移,得到修正的时间戳,其中,n>1,且偏移的时间量是对多个时钟信息进行统计得到的。

结合第一方面,在第一种可选的实现方式中,所述方法还包括:所述当前的时钟信息与前n个时钟信息的平均值的差值超出阈值范围时,将所述前n个时钟信息均设置为初始平均值。

结合第一方面,在第二种可选的实现方式中,所述前n个时钟信息按照记录顺序存储在预先创建的队列中。

结合第一方面,在第三种可选的实现方式中,所述时长为相邻帧头的所述时间戳之差;或者,所述时长=所述时钟周期数量×时钟周期。

第二方面,本发明实施例提供一种时钟同步方法,其包括:

第一处理器的多个物理层通道收发携带同步信息及其响应信息的数据帧,并记录数据帧帧头的时间戳和相邻帧头之间的时钟信息;

第二处理器使用如第一方面所述的时间戳的修正方法对所述数据帧帧头的时间戳进行修正,得到修正的时间戳;生成所述响应信息;根据所述修正的时间戳和所述同步信息及其响应信息进行时钟调整。

结合第二方面,在第一种可选的实现方式中,所述第一处理器和所述第二处理器之间通过数据包传输所述同步信息及其响应信息。

第三方面,本发明实施例提供一种时间戳的修正系统,其包括:

检测模块,其用于记录物理层通道接收的数据帧帧头的时间戳以及相邻帧头之间的时钟信息,时钟信息为时长或者时钟周期数量;

修正模块,其用于如果当前的时钟信息偏离前n个时钟信息的平均值,将当前数据帧帧头的时间戳向偏离的相反方向偏移,得到修正的时间戳,其中,n>1,且偏移的时间量是对多个时钟信息进行统计得到的。

结合第三方面,在第一种可选的实现方式中,所述修正模块还用于所述当前的时钟信息与前n个时钟信息的平均值的差值超出阈值范围时,将所述前n个时钟信息均设置为初始平均值。

结合第三方面,在第二种可选的实现方式中,所述前n个时钟信息按照记录顺序存储在预先创建的队列中。

结合第三方面,在第三种可选的实现方式中,所述时长为相邻帧头的所述时间戳之差;或者,所述时长=所述时钟周期数量×时钟周期。

第四方面,本发明实施例提供一种时钟同步系统,所述系统包括第一处理器和第二处理器,第一处理器的多个物理层通道收发携带同步信息及其响应信息的数据帧;

所述第一处理器用于记录所述数据帧帧头的时间戳以及相邻帧头之间的时钟信息;

所述第二处理器用于使用如第一方面所述的时间戳的修正方法对所述数据帧帧头的时间戳进行修正,得到修正的时间戳;还用于生成所述响应信息;以及根据所述修正的时间戳和所述同步信息及其响应信息进行时钟调整。

结合第四方面,在第一种可选的实现方式中,所述第一处理器和所述第二处理器之间通过数据包传输所述同步信息及其响应信息。

与现有技术相比,本发明实施例提供时间戳的修正方法,记录物理层通道接收的数据帧帧头的时间戳以及相邻帧头之间的时钟信息,时钟信息为时长或者时钟周期数量;如果当前的时钟信息偏离前n个时钟信息的平均值,将当前数据帧帧头的时间戳向偏离的相反方向偏移,得到修正的时间戳,其中,n>1,且偏移的时间量是对多个时钟信息进行统计得到的。通过本发明实施例时间戳的修正方法,可以提高时间戳的精度。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例时间戳的修正方法流程图;

图2是本发明实施例时间戳的修正系统示意图;

图3是本发明实施例时钟同步方法流程图;

图4是本发明实施例时钟同步系统示意图;

图5是以太网数据包的帧结构示意图,其中,图5a是开销数据包的帧结构示意图,图5b是ptp报文发送指示数据包的帧结构示意图,图5c是响应报文的以太网数据包的帧结构示意图;

图6是本发明实施例时钟同步方法中,提取ptp报文的流程图;

图7是本发明实施例时钟同步方法中,插入ptp报文的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面结合附图及具体实施例对本发明作进一步的详细描述。

参见图1所示,本发明实施例提供一种时间戳的修正方法,时间戳的修正方法包括:

s110记录物理层通道接收的数据帧帧头的时间戳以及相邻帧头之间的时钟周期数量。

具体的,当前的时钟周期数量之前的n个时钟周期数量按照记录顺序存储在预先创建的队列中,其中,n>1,n为正整数。

s120计算前n个时钟周期数量的平均值,前n个时钟周期数量的平均值为mave。

s130判断当前的时钟周期数量是否偏离平均值,若是,进入步骤s140;若否,进入步骤s150。

具体的,当前的时钟周期数量为当前数据帧与前一个数据帧的帧头之间的时钟周期数量,即mn+1,当前的时钟周期数量即记录的第n+1个时钟周期数量,前n个时钟周期数量的平均值即预计的第n+1个时钟周期数量。

s140将当前数据帧帧头的时间戳向偏离的相反方向偏移,得到修正的时间戳,作为当前数据帧帧头的时间戳。

例如,当前数据帧帧头的时间戳为tn+1,当mn+1>mave时,修正的时间戳tc_n+1=tn+1-δt,δt为偏移的时间量。当mn+1<mave时,修正的时间戳tc_n+1=tn+1+δt,δt为偏移的时间量。

具体的,偏移的时间量δt=时钟周期的偏移量δm×时钟周期t,其中,时钟周期的偏移量δm可以是对多个时钟周期数量进行统计得到的,例如对多个时钟信息进行统计得到的标准差取整数。时钟周期t为每个时钟周期t的长度。

s150保存当前数据帧帧头的时间戳,并移除队列头部的数据,将当前的时钟周期数量加入队列尾部,返回步骤s110。

通过本实施例时间戳的修正方法,对数据帧帧头进行平滑处理,以提高时间戳的精度。需要说明的是,n值越大,则前n个时钟周期数量的平均值mave越接近对多个时钟周期数量进行统计得到的理论值,平滑处理的效果越好,但是预先创建的队列和用于求取mave的加法器等资源消耗越大。可以根据实际需要在平滑处理性能和资源消耗之间进行取舍。

考虑到上电初始化以及数据帧的接收端故障对时间戳的影响,在其他的实施方式中,时间戳的修正方法包括:

s200在队列中存入n个时钟周期数量的初始平均值。

具体的,对多个时钟周期数量进行统计可以得到时钟周期数量的阈值范围和初始平均值。

s210记录物理层通道接收的数据帧帧头的时间戳以及相邻帧头之间的时钟周期数量。

步骤s210与步骤s110相同,此处不再赘述。

s220计算n个时钟周期数量的平均值,其中,n>1,当前的时钟周期数量为当前数据帧与前一个数据帧的帧头之间的时钟周期数量。

步骤s220与步骤s120相同,此处不再赘述。

s230判断当前的时钟周期数量与平均值之差是否超出阈值范围,若是,返回步骤s200;若否,进入步骤s240。

如果当前的时钟周期数量偏离前n个时钟周期数量的平均值超出阈值范围时,将前n个时钟周期数量均设置为初始平均值,可以避免数据帧的接收端故障对时间戳的影响。

s240判断当前的时钟周期数量是否偏离平均值,若是,进入步骤s250;若否,进入步骤s260。

步骤s240与步骤s130相同,此处不再赘述。

s250将当前数据帧帧头的时间戳向偏离的相反方向偏移,得到修正的时间戳,并作为当前数据帧帧头的时间戳。

步骤s250与步骤s140相同,此处不再赘述。

s260保存当前数据帧帧头的时间戳,并移除队列头部的数据,将当前的时钟周期数量加入队列尾部。

步骤s260与步骤s150相同,此处不再赘述。

在其他的实施方式中,时长为相邻帧头的时间戳之差;或者,时长=时钟周期数量×时钟周期。

本实施例提供时间戳的修正方法,记录物理层通道接收的数据帧帧头的时间戳以及相邻帧头之间的时钟信息,时钟信息为时长或者时钟周期数量;如果当前的时钟信息偏离前n个时钟信息的平均值,将当前数据帧帧头的时间戳向偏离的相反方向偏移,得到修正的时间戳,其中,n>1,且偏移的时间量是对多个时钟信息进行统计得到的。如果当前的时钟信息等于前n个时钟信息的平均值,则当前数据帧帧头的时间戳无需进行修正。通过本实施例时间戳的修正方法,对帧头进行平滑处理,可以提高时间戳的精度。

参见图2所示,本发明实施例还提供一种时间戳的修正系统,用于实现前述实施例的时间戳的修正方法,时间戳的修正系统包括检测模块110a和修正模块210a。

检测模块110a用于记录物理层通道接收的数据帧帧头的时间戳以及相邻帧头之间的时钟信息,时钟信息为时长或者时钟周期数量。

具体的,时长为相邻帧头的时间戳之差;或者,时长=时钟周期数量×时钟周期。前n个时钟信息按照记录顺序存储在预先创建的队列中。

修正模块210a用于如果当前的时钟信息偏离前n个时钟信息的平均值,将当前数据帧帧头的时间戳向偏离的相反方向偏移,得到修正的时间戳,其中,n>1,且偏移的时间量是对多个时钟信息进行统计得到的。

具体的,修正模块210a还用于当当前的时钟信息偏离前n个时钟信息的平均值超出阈值范围时,将前n个时钟信息均设置为初始平均值,阈值范围和初始平均值是对多个时钟信息进行统计得到的。

参见图3所示,本发明实施例还提供一种时钟同步方法,时钟同步方法包括:

s310第一处理器的多个物理层通道接收携带同步信息的数据帧,并记录数据帧帧头的时间戳和相邻帧头之间的时钟信息。

s320第二处理器使用前述实施例的时间戳的修正方法对数据帧帧头的时间戳进行修正,得到修正的时间戳。

经过修正处理的数据帧帧头的时间戳作为数据帧帧头的时间戳。

s330第二处理器生成响应信息并发送给第一处理器。

s340第一处理器将响应信息插入数据帧并向外发送。

s350第二处理器根据修正的时间戳和同步信息及其响应信息进行时钟调整。

步骤s330和s340与步骤s350可以同时进行,也可以先后进行,不作限定。

进一步的,第一处理器和第二处理器之间通过数据包传输同步信息及其响应信息。

第一处理器和第二处理器均可以是独立的集成电路芯片,例如,数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。第一处理器和第二处理器之间通过串行千兆媒体独立(serialgigabitmediaindependentinterface,sgmii)接口传输携带同步信息及其响应信息的数据包。第一处理器和第二处理器也可以集成在同一个集成电路芯片内。

具体的,第一处理器从每物理层通道接收的数据帧帧头提取同步信息或者包含同步信息的开销并缓存到设定数量后,生成组包请求,并根据待发送的数据帧帧头生成同步发送指示。

第一处理器根据同步发送指示和组包请求将缓存的数据封装成数据包后,通过sgmii接口发送给第二处理器。

具体的,第一处理器根据第i个物理层通道待发送的数据帧的开销复帧指示信息生成同步发送指示,采用加权轮循调度算法对n个同步发送指示进行调度,1≤i≤n。同时,第一处理器采用加权轮循调度算法对n个组包请求进行调度。

第二处理器从收到的数据包中解析出同步信息,并向第一处理器发送携带响应信息的数据包。

具体的,第二处理器根据同步发送指示和响应信息的发送频率,对响应信息进行封装得到数据包,并通过sgmii接口传输到第一处理器。

第一处理器从数据包中提取响应信息,并根据同步发送指示将响应信息插入到待发送的数据帧中。

具体的,同步信息可以是精确时间协议ptp报文,不作限定。根据ieee1588协议,ptp报文包括同步报文(sync)、跟随报文(follow_up)、延迟请求报文(delay_req)和延迟应答报文(delay_resp)。主时钟定期发送同步报文sync,如果为两步模式,则会随后发送跟随报文follow_up,并在跟随报文follow_up报文中通告同步报文sync的实际发送时间t1。如果为单步模式,则在发送的同步报文sync中即包含了报文实际发送时间t1,然后从时钟记录同步报文sync的到达时间t2,从时钟在t3时刻发送时延请求报文delay_req,主时钟记录时延请求报文delay_req到达时间t4,并将时间t4通过延迟应答报文delay_resp发送给从时钟。

在本实施例中,同步信息可以是同步报文sync,则响应信息是时延请求报文delay_req;或者,同步信息可以是时延请求报文delay_req,则响应信息是延迟应答报文delay_resp。为了便于说明,同步信息和响应信息分别为ptp报文和响应的ptp报文。

本发明实施例在5g承载网络进行时钟同步时,1)接收ptp报文后,第一处理器对开销中的信息进行统一封装,开销中的信息包括ptp报文,同时,记录数据帧帧头的时间戳和相邻帧头之间的时钟信息,将封装的开销、时间戳和时钟信息发送至第二处理器。第二处理器解析出ptp报文,对ptp报文的时间戳进行修正处理,完成时钟频率和相位调整功能。2)向外发送作为响应的ptp报文,将响应的ptp报文进行统一封装,发送给第一处理器,第一处理器根据复帧字段信息和ptp报文发送频率插入到开销中,随数据帧向外发送。

通过本实施例时间戳的修正方法,对帧头进行均衡化处理,可以提高时间戳的精度,有效抑制am码字或者flexo和otu中跨时钟域等因素对帧头抖动的影响,极大地提高了时钟同步精度,同步精度可达±4ns,满足flexe、flexo和otu等5g承载网络的需求。

另外,本发明实施例根据同步发送指示发送ptp报文,在ptp报文传送间隔传送其他的报文信息,极大提高开销的带宽利用率;可以精确地控制ptp报文发送频率,同时不会引起数据流中的带宽抖动。可以灵活配置ptp报文,即便将来定义新的标准,也可以通过修改第二处理器进行扩展,有效提高芯片适用性,降低投片风险。

参见图4所示,本发明实施例还提供一种时钟同步系统,时钟同步系统包括第一处理器100和第二处理器200,第一处理器100的多个物理层通道收发携带同步信息及其响应信息的数据帧。

第一处理器100用于记录数据帧帧头的时间戳以及相邻帧头之间的时钟信息。

第二处理器200用于使用前述实施例的时间戳的修正方法对数据帧帧头的时间戳进行修正,得到修正的时间戳;还用于生成响应信息;以及根据修正的时间戳和同步信息及其响应信息进行时钟调整。

具体的,第一处理器100和第二处理器200之间通过数据包传输同步信息及其响应信息。

参见图4所示,第一处理器100包括接收侧检测模块110b、开销提取模块120、封装模块130、解析模块140、开销插入模块150和帧头生成模块160。第二处理器包括修正模块210b、开销解析模块220、ptp报文解析模块230、时钟调整模块240、ptp报文生成模块250和封装模块260。

接收侧检测模块110b用于记录物理层通道接收的数据帧帧头的时间戳以及相邻帧头之间的时钟信息,时钟信息为时长或者时钟周期数量。

例如,对于flexo帧,多种不同的报文信息可以时分复用开销中的同一个物理层通道。接收侧检测模块110b用于从数据帧中检测帧头特征码型得到帧头信息。

帧头生成模块160用于根据第i路的发送侧控制信号,从缓存中读取相应的响应报文,并将其插入到数据帧中向外发送。

具体的,帧头生成模块160用于生成本地flexe/flexo帧头和包络信息。

开销插入模块150用于根据开销复帧指示信息生成ptp报文发送指示,以及将ptp报文的响应报文插入到开销中。

开销提取单元120用于从接收的数据帧中提取并缓存设定数量的开销后,生成组包请求,实现对开销的统一缓存控制。

第一处理器的封装单元130用于根据组包请求和ptp报文发送指示,封装成开销数据包后通过sgmii接口发送到第二处理器的解析单元。多个端口可以时分复用同一个串行接口。

具体的,开销数据包为以太网数据包,开销数据包的帧格式如图5a所示。图5a的帧结构包括前导码、目的地址、源地址、长度、请求复帧号、状态指示、起始复帧号、开销净荷和校验码。源地址为接收的数据帧的phy的相关信息。状态指示为第一指定标识时,表示该数据包为提取的开销数据包,状态指示为第二指定标识时,表示该数据包为提取的开销数据包和复帧信息,将复帧信息以及缓存达到设定数量的开销数据组装成数据包。

第一处理器的封装单元130还用于将ptp报文发送指示组装成ptp报文发送指示数据包,如图5b的以太网数据包,图5b的帧结构包括前导码、目的地址、源地址、长度、请求复帧号、状态指示、填充字节和校验码。

第一处理器的解析模块140用于从封装模块260接收数据包,利用数据包中的目的地址和请求复帧信息等字段对响应的ptp报文进行解析。

开销插入模块150用于采用链式控制方法,对接收到的响应报文进行缓存控制。

第二处理器的解析单元220用于从第一处理器的封装单元130接收开销数据包和ptp报文发送指示数据包,并从中分别提取开销和ptp报文发送指示。

具体的,第二处理器的解析单元220根据接收到的数据包中的目的地址和请求复帧号提取ptp报文。

ptp报文解析模块230用于从开销中提取ptp报文并发送到时钟调整模块240。

修正模块210b用于从接收侧检测模块110b接收帧头的时间戳以及相邻帧头之间的时钟信息,如果当前的时钟信息偏离前n个时钟信息的平均值,将当前数据帧帧头的时间戳向偏离的相反方向偏移,得到修正的时间戳并发送到,其中,n>1,且偏移的时间量是对多个时钟信息进行统计得到的时钟调整模块。对接收的数据帧帧头进行平滑处理,使得帧头分布均匀,并对时间戳进行修正。

具体的,修正模块210b还用于当当前的时钟信息偏离前n个时钟信息的平均值超出阈值范围时,将前n个时钟信息均设置为初始平均值,阈值范围和初始平均值是对多个时钟信息进行统计得到的。

时钟调整模块240用于根据ptp报文和数据帧帧头的时间戳进行时钟频率和相位同步,进而实现高精度时钟同步。

具体的,根据ieee1588协议,对本地时钟进行频率和相位的调整。

ptp报文生成模块250用于根据ptp报文和时间戳生成响应报文,并进行缓存。

第二处理器的封装模块260用于根据ptp报文发送指示以及ptp报文的发送频率,将缓存的响应报文封装为数据包后通过sgmii接口传输到第一处理器的解析模块140。该数据包如图5c所示的以太网数据包,图5c的帧结构包括前导码、目的地址、源地址、长度、请求复帧号、开销净荷和校验码。

基于图4所示的时钟同步系统,以flexo帧为例,提取ptp报文的过程参见图6所示,包括:

s400第一处理器生成ptp报文发送指示,包括:

s401第一处理器的开销插入模块150根据数据帧复帧指示生成ptp报文发送指示。

s402第一处理器的封装模块130采用加权轮循调度算法调度n路ptp报文发送指示。

s410第一处理器的第i路接收侧检测模块110b从数据帧中检测帧头特征码型。

s420第一处理器的开销提取模块120提取并缓存特定数量的开销后生成组包请求。

s430第一处理器的封装模块130采用加权轮循调度算法调度n路组包请求。

s440第一处理器的封装模块130根据组包请求和ptp报文发送指示封装数据包。

s450第二处理器的解析模块220对数据包进行解析。

s460第二处理器的ptp报文解析模块230解析出ptp报文。

s470第二处理器的时钟调整模块240根据ptp报文和时间戳进行时钟频率和相位同步。

基于图4所示的时钟同步系统,以flexo帧为例,插入ptp报文的过程参见图7所示,包括:

s510第二处理器的ptp报文生成模块250根据ptp报文和时间戳生成响应报文,并进行缓存。

s520第二处理器的封装模块260根据ptp报文发送至少以及ptp报文的发送频率,将ptp报文封装为数据包后通过sgmii接口传输到第一处理器的解析模块。

s530第一处理器的解析模块140根据数据包中的目的地址和请求复帧信息等字段对响应报文进行解析。

s540第一处理器的开销插入模块150采用链式控制方法,对接收到的响应报文进行缓存控制。

s550帧头生成模块160根据第i路的发送侧控制信号,从缓存中读取相应的响应报文,并将其插入到数据帧中向外发送。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

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