一种基于PTP协议的局域网高精度时钟同步方法及装置与流程

文档序号:22684979发布日期:2020-10-28 12:50阅读:167来源:国知局
一种基于PTP协议的局域网高精度时钟同步方法及装置与流程

本发明涉及局域网时钟同步技术领域,尤其涉及一种基于ptp协议的局域网高精度时钟同步方法及装置,用于实现局域网的高精度时钟同步。



背景技术:

ptp(precisiontimeprotocol)协议是ieee-1588中定义的一种精密时钟同步协议,ptp协议主要针对于相对本地化、网络化的系统,子网较好,内部组件相对稳定的环境设计的。由于ptp协议实现简单,占用的网络和计算资源少等优点使其广泛应用于分布式系统中。

ptp协议可以采用硬件实现,也可以采用软件实现。当采用硬件实现时可以达到ns级的精度;当在网络中采用软件实现亚毫秒的精度时,时间同步的可靠性难以保证。



技术实现要素:

为解决背景技术中所提到的技术问题,本发明在一个方面提出了一种基于ptp协议的局域网高精度时钟同步方法,所述方法包括:主时钟周期性的发出sync报文,记录sync报文离开主时钟的第一发送时间,以及sync报文到达从时钟的第一到达时间,并记录从时钟发出delay_req报文的第二发送时间,以及delay_req报文到达主时钟的第二到达时间;在m个周期后,对得到的第一发送时间数组、第一到达时间数组、第二发送时间数组以及第二到达时间的数进行数据处理;根据数据处理后的第一发送时间数组、第一到达时间数组、第二发送时间数组以及第二到达时间的数组获得主从时钟偏差和传输延时,利用所述主从时钟偏差和传输延时修正本地时钟进行时钟同步。

在一个或多个实施例中,所述方法还包括:主时钟将所述第一发送时间封装到follow_up报文中,发送给从时钟;主时钟将所述第二到达时间封装到delay_resp报文中,发送给从时钟。

在一个或多个实施例中,所述对得到的第一发送时间数组、第一到达时间数组、第二发送时间数组以及第二到达时间的数进行数据处理,包括:对各数组数据进行数据过滤,剔除i个最大值数据与j个最小值,以减小随机波动因素影响。

在一个或多个实施例中,所述方法还包括:对数据过滤后的数组数据进行最小二乘直线拟合,直线拟合算法包括:

其中,c为常数,m为数组中数据的个数,date为数组数据。

在一个或多个实施例中,所述根据数据处理后的第一发送时间数组、第一到达时间数组、第二发送时间数组以及第二到达时间的数组获得主从时钟偏差和传输延时,包括:

根据以下公式计算主从时钟偏差和传输延时:

其中,delay为传输延时,offset为主从时钟偏差,t1为第一发送时间,t2为第一到达时间,t3为第二发送时间,t4为第二到达时间。

在本发明的另一个方面,提出了一种基于ptp协议的局域网高精度时钟同步装置,所述装置包括:数据记录模块,配置用于控制主时钟周期性发出sync报文,记录sync报文离开主时钟的第一发送时间,以及sync报文到达从时钟的第一到达时间,并记录从时钟发出delay_req报文的第二发送时间,以及delay_req报文到达主时钟的第二到达时间;数据处理模块,配置用于在m个周期后,对得到的第一发送时间数组、第一到达时间数组、第二发送时间数组以及第二到达时间的数进行数据处理;时钟同步模块,配置用于根据数据处理后的第一发送时间数组、第一到达时间数组、第二发送时间数组以及第二到达时间的数组获得主从时钟偏差和传输延时;利用所述主从时钟偏差和传输延时修正本地时钟进行时钟同步。

在一个或多个实施例中,所述装置还包括:数据封装模块,配置用于控制主时钟将所述第一发送时间封装到follow_up报文中,发送给从时钟;或者控制主时钟将所述第二到达时间封装到delay_resp报文中,发送给从时钟。

在一个或多个实施例中,所述数据处理模块还配置用于对各数组数据进行数据过滤,剔除i个最大值数据与j个最小值,以减小随机波动因素影响。

在一个或多个实施例中,所述数据处理模块还配置用于对数据过滤后的数组数据进行最小二乘直线拟合,直线拟合算法包括:

其中,c为常数,m为数组中数据的个数,date为数组数据。

在一个或多个实施例中,所述时钟同步模块还配置用于:

根据以下公式计算主从时钟偏差和传输延时:

其中,delay为传输延时,offset为主从时钟偏差,t1为第一发送时间,t2为第一到达时间,t3为第二发送时间,t4为第二到达时间。

本发明的有益效果包括:本发明利用握手机制获取主从时钟偏差以及传输延时的过程简单、可靠,不会影响通信速断,之后的数据处理手段,则能进一步保证获得的主从时钟偏差以及传输延时的准确性,从而保证局域网具有较高精度的时钟同步。

附图说明

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

图1为本发明的一种基于ptp协议的局域网高精度时钟同步方法的流程示意图;

图2为主从时钟偏差以及传输延时示意图;

图3为本发明的获取第一发送时间数组与第一到达时间数组的示意图;

图4为本发明的获取第二发送时间数组与第二到达时间数组的示意图;

图5为本发明的一种基于ptp协议的局域网高精度时钟同步装置的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。

为解决背景技术中所提到的技术问题,本发明提出了一种基于ptp协议的局域网高精度时钟同步方法及装置,利用握手机制获取主从时钟偏差以及传输延时的过程简单、可靠,不会影响通信速断,之后的数据处理手段,则能进一步保证获得的主从时钟偏差以及传输延时的准确性,从而保证局域网具有较高精度的时钟同步。以下将结合具体附图对本发明进行更加详细的说明。

图1为本发明的一种基于ptp协议的局域网高精度时钟同步方法的流程示意图。在本实施例中,时钟同步流程包括:步骤s1、主时钟周期性的发出sync报文;步骤s2、记录sync报文离开主时钟的第一发送时间,以及sync报文到达从时钟的第一到达时间;步骤s3、记录从时钟发出delay_req报文的第二发送时间,以及delay_req报文到达主时钟的第二到达时间;步骤s4、在m个周期后,对得到的第一发送时间数组、第一到达时间数组、第二发送时间数组以及第二到达时间的数进行数据处理;步骤s5、根据数据处理后的第一发送时间数组、第一到达时间数组、第二发送时间数组以及第二到达时间的数组获得主从时钟偏差和传输延时;步骤s6、利用主从时钟偏差和传输延时修正本地时钟进行时钟同步。

具体的,主时钟将第一发送时间封装到follow_up报文中,发送给从时钟;将第二到达时间封装到delay_resp报文中,发送给从时钟。如此,使得从时钟具有第一发送时间、第一到达时间、第二发送时间以及第二到达时间4种数据。由于存在主从时钟偏差以及传输延时,上述4种数据与主从时钟偏差以及传输延时的关系参见下图:

图2为主从时钟偏差以及传输延时示意图。如图2所示,由于主从时钟存在偏差,导致主时钟记录的报文发送时间与从时钟接收到报文的时间之差的绝对值并不等于传输延时,其会受到主从时钟偏差的影响。图2仅示出了一种主从时间偏差对传输延时计算的影响,利用图2中所示关系,建立二元一次方程,即可求解主从时钟偏差以及传输延时(具体方程将在后续中给出)。其中,主时钟即为主服务器时钟,从时钟即为从服务器时钟。主时钟发送sync报文后,会紧接着将所述第一发送时间t1封装到follow_up报文中;在接收到delay_req后,会紧接着将所述第二到达时间t4封装到delay_resp报文中,发送给从时钟。其中,sync报文中包含有其发送时刻的估计值,follow_up报文包含发送时刻的精确值。

在进一步的实施例中,对得到的第一发送时间数组、第一到达时间数组、第二发送时间数组以及第二到达时间的数进行数据处理,包括:对各数组数据进行数据过滤,剔除i个最大值数据与j个最小值,以减小随机波动因素影响;而后对数据过滤后的数组数据进行最小二乘直线拟合,直线拟合算法包括:

其中,c为常数,m为数组中数据的个数,date为数组数据。其中,利用最小二乘直线拟合的原因是数据理论上的期望值是个常数。

在一个或多个实施例中,根据数据处理后的第一发送时间数组、第一到达时间数组、第二发送时间数组以及第二到达时间的数组获得主从时钟偏差和传输延时,包括:

根据以下公式计算主从时钟偏差和传输延时:

其中,delay为传输延时,offset为主从时钟偏差,t1为第一发送时间,t2为第一到达时间,t3为第二发送时间,t4为第二到达时间。

如上,本发明利用握手机制以及相应的数据处理手段,使得通过本申请获得的主从时钟偏差以及传输延时更加准确,从而实现对局域网的高精度时钟同步。

上述方法中获取第一发送时间数组、第一到达时间数组、第二发送时间数组第二到达的过程如下所示:

图3为本发明的获取第一发送时间数组与第一到达时间数组的示意图。如图3所示,每当握手成功一次,主服务器将发送一次sync报文,直至获取到数量足够的数据为止,以获得第一发送时间数组以及第一到达时间数组。数据量越大,后续过程中计算获得的主从时钟偏差以及传输延时越精确。其中,握手成功以主服务器接收到来自从服务器的response为准。

图4为本发明的获取第二发送时间数组与第二到达时间数组的示意图。如图4所示,对应于每次握手,从服务器将向主服务器返回delay_req报文,并记录发送时间;主时钟记录delay_req报文的到达时间,并封装到delay_resp报文中,发送给从时钟。从而获得第二发送时间数组以及第二到达时间数组。

在上述方法的基础上,本发明还提出了一种基于ptp协议的局域网高精度时钟同步装置,具体如下图所示:

图5为本发明的一种基于ptp协议的局域网高精度时钟同步装置的结构示意图。在本实施例中,装置包括:数据记录模块10,配置用于控制主时钟周期性发出sync报文,记录sync报文离开主时钟的第一发送时间,以及sync报文到达从时钟的第一到达时间,并记录从时钟发出delay_req报文的第二发送时间,以及delay_req报文到达主时钟的第二到达时间;数据处理模块20,配置用于在m个周期后,对得到的第一发送时间数组、第一到达时间数组、第二发送时间数组以及第二到达时间的数进行数据处理;时钟同步模块30,配置用于根据数据处理后的第一发送时间数组、第一到达时间数组、第二发送时间数组以及第二到达时间的数组获得主从时钟偏差和传输延时;利用所述主从时钟偏差和传输延时修正本地时钟进行时钟同步。

在进一步的实施例中,本发明的装置还包括:数据封装模块40,配置用于控制主时钟将所述第一发送时间封装到follow_up报文中,发送给从时钟。

在进一步的实施例中,数据处理模块20还配置用于,对各数组数据进行数据过滤,剔除i个最大值数据与j个最小值,以减小随机波动因素影响。

在进一步的实施例中,据处理模块还配置用于,对数据过滤后的数组数据进行最小二乘直线拟合,直线拟合算法包括:

其中,c为常数,m为数组中数据的个数,date为数组数据。

在进一步的实施例中,时钟同步模块还配置用于:

根据以下公式计算主从时钟偏差和传输延时:

其中,delay为传输延时,offset为主从时钟偏差,t1为第一发送时间,t2为第一到达时间,t3为第二发送时间,t4为第二到达时间。

以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。

应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。

上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

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