本技术涉及设备通信,特别是涉及一种时钟同步方法、装置、设备和计算机可读存储介质。
背景技术:
1、在网络中,背景流量和精确网络时间协议(precise time protocol,ptp)报文会共享带宽资源,ptp包会在交换机中排队等待转发,排队时间存在一定的随机性,使得ptp包在整个路径中的传输时延也具有随机性。时延的这种随机变化也被称为时延的抖动(jitter)。传输时延的抖动会给时钟同步带来非常大的噪声干扰,是时钟同步的主要误差来源。若不对噪声进行处理,在时延抖动较大的环境中,将使得网络主、从时钟间的同步性能显著变差。而时钟同步技术,是时间敏感型网络(time-sensitive network,tsn)技术的基础。因此保证时钟的同步精度,在tsn技术中是非常重要的。
2、无论是通用精确网络时间协议(general precise time protocol,gptp),还是其前身ptp协议,都只提供了时钟同步的基本原理。但是目前对同步精度的研究较少,现有技术的改进点主要集中在平滑滤波部分,通过尝试各种滤波算法对从时钟的相位差进行平滑处理。其中,使用较多的改进方法是比例-积分-导数(proportion-integra-differential,pid)控制器和卡尔曼滤波及变种,但由于未对同步过程的噪声模型做系统的分析,实际取得的效果很有限。
3、现有方案在时钟的修正环节,是通过频率牵引的方式来实现频率和相位的收敛,最终实现同步。所谓频率牵引,是指根据从时钟的相位差,通过修正频率的方式来修正相位,在这个过程中,对频率进行过度修正,从而同时让频率与相位收敛,最终收敛至同步的状态。但频率牵引方法的缺点也很明显,除非从时钟与主时钟的相位完全同步,否则时钟的频率无法保持稳定。相位的完全同步在实际环境中基本不可能实现,因此频率牵引方法使得从时钟的频率始终处于不断地快速调整状态。由于频率不同步不稳定,在网络中一旦主时钟断线,各个从时钟设备会在短时间内失锁即无法保持同步,使网络无法正常运行。在列车通信网络这样对安全性要求较高的领域,甚至会存在安全隐患。
4、目前频率补偿方法均未考虑到噪声的影响,且更多基于经验的,而非理论的进行方案设计,造成时钟同步的精度偏低。
5、可见,如何提高时钟同步的精度,是本领域技术人员需要解决的问题。
技术实现思路
1、本技术实施例的目的是提供一种时钟同步方法、装置、设备和计算机可读存储介质,可以提高时钟同步的精度。
2、为解决上述技术问题,本技术实施例提供一种时钟同步方法,包括:
3、对获取的多个周期的历史时钟同步报文数据包含的时间参数进行相位补偿,以得到初始报文数据;
4、在获取的所述初始报文数据满足数据量要求的情况下,对所述初始报文数据以及最新获取的相位补偿后的报文数据进行聚类,以筛选出满足底部时延特征的目标报文数据;
5、在所述目标报文数据满足设定的收敛条件的情况下,对所述目标报文数据进行线性拟合,以得到频率修正量;
6、根据当前周期的目标报文数据以及基于最小时延迭代确定出的最小传输时延,确定出相位修正量;
7、依据所述频率修正量以及所述相位修正量对从时钟进行时钟修正。
8、可选地,所述对所述初始报文数据以及最新获取的相位补偿后的报文数据进行聚类,以筛选出满足底部时延特征的目标报文数据包括:
9、在从时钟为非稳定状态的情况下,将所述初始报文数据作为初始聚类簇,依据所述初始聚类簇对当前缓存的所有相位补偿后的报文数据进行聚类,以筛选出满足底部时延特征的第一报文数据;对所述第一报文数据设置聚类标记;
10、在从时钟为稳定状态的情况下,每次接收到新的相位补偿后的报文数据,则利用设置聚类标记的报文数据对所述新的相位补偿后的报文数据进行聚类,以筛选出满足底部时延特征的第二报文数据;对所述第二报文数据设置聚类标记;
11、将所述第一报文数据和所述第二报文数据作为目标报文数据。
12、可选地,所述在所述目标报文数据满足设定的收敛条件的情况下,对所述目标报文数据进行线性拟合,以得到频率修正量包括:
13、判断当前周期的目标报文数据的取值和密度是否满足设定的收敛条件;其中,所述收敛条件包括取值分布条件和密度条件;
14、在当前周期的目标报文数据的取值和密度满足设定的收敛条件的情况下,对所述目标报文数据进行线性拟合,以得到频率修正量。
15、可选地,所述判断当前周期的目标报文数据的取值和密度是否满足设定的收敛条件包括:
16、统计当前周期的目标报文数据的取值小于设定阈值的目标报文数据的个数;
17、计算所述个数与所述当前周期的目标报文数据的总数的占比;
18、判断所述占比是否大于或等于设定比值;
19、在所述占比大于或等于设定比值的情况下,判断当前周期的目标报文数据的数据量是否大于或等于上一周期的目标报文数据的数据量;
20、在所述当前周期的目标报文数据的数据量大于或等于上一周期的目标报文数据的数据量的情况下,执行所述对所述目标报文数据进行线性拟合,以得到频率修正量的步骤。
21、可选地,还包括:
22、在所述占比小于设定比值或者所述当前周期的目标报文数据的数据量小于上一周期的目标报文数据的数据量的情况下,控制下个周期协议状态机进入从时钟非稳定状态。
23、可选地,还包括:
24、在获取的所述初始报文数据不满足数据量要求的情况下,对所述初始报文数据进行线性拟合,以得到初始频偏;
25、基于所述初始频偏对所述从时钟进行频率修正。
26、可选地,所述对所述目标报文数据进行线性拟合,以得到频率修正量包括:
27、计算所述目标报文数据与时间的线性关系;
28、将所述线性关系对应的斜率作为频率修正量。
29、可选地,所述根据当前周期的目标报文数据以及基于最小时延迭代确定出的最小传输时延,确定出相位修正量包括:
30、对当前周期对应的传输时延以及多个历史周期对应的最小传输时延进行最小时延迭代,以确定出当前周期对应的最小传输时延;
31、依据当前周期的目标报文数据包含的时间参数以及所述当前周期对应的最小传输时延,确定出相位修正量。
32、可选地,所述对获取的多个周期的历史时钟同步报文数据包含的时间参数进行相位补偿,以得到初始报文数据包括:
33、根据n个周期内的历史时钟同步报文包含的历史频率修正量,确定出n个周期对应的累计频率修正量;
34、根据所述累计频率修正量、所述n个周期内的历史时钟同步报文包含的历史相位修正量以及预设的时钟标称频率,确定出所述n个周期对应的累计相位修正量;
35、依据所述累计相位修正量对所述历史时钟同步报文包含的从时钟接收报文的时间戳进行相位补偿,得到初始报文数据。
36、可选地,所述根据n个周期内的历史时钟同步报文包含的历史频率修正量,确定出n个周期对应的累计频率修正量包括:
37、调用频率修正公式,对n个周期内的历史时钟同步报文包含的历史频率修正量进行处理,以确定出所述n个周期对应的累计频率修正量;所述频率修正公式如下:
38、δf∑[n]=δf∑[n-1]+δfs[n];
39、其中,n表示周期的设定数量,δf∑[n]表示前n次累计频率修正量,δf∑[n-1]表示前n-1次累计频率修正量,δfs[n]表示第n次的频率修正量。
40、可选地,所述根据所述累计频率修正量、所述n个周期内的历史时钟同步报文包含的历史相位修正量以及预设的时钟标称频率,确定出所述n个周期对应的累计相位修正量包括:
41、调用相位修正公式,对所述累计频率修正量、所述n个周期内的历史时钟同步报文包含的历史相位修正量以及预设的时钟标称频率进行处理,以确定出所述n个周期对应的累计相位修正量;所述相位修正公式如下:
42、
43、其中,k表示第k个周期,表示前n次累计相位修正量,fs0表示预设的时钟标称频率,δf∑[k-1]表示累计频率修正量,δt表示相邻两次频率修正的时间间隔,表示第n次的相位修正量。
44、可选地,针对于历史时钟同步报文数据的存储,所述方法包括:
45、利用环形数组队列存储最近的n个周期历史时钟同步报文数据;其中,每个周期的历史时钟同步报文数据包括报文序列号、主时钟发送报文的本地时间戳、从时钟接受报文的本地时间戳、修正时刻、频率修正量、相位修正量和聚类标记位。
46、本技术实施例还提供了一种时钟同步装置,包括补偿单元、聚类单元、拟合单元、确定单元和修正单元;
47、所述补偿单元,用于对获取的多个周期的历史时钟同步报文数据包含的时间参数进行相位补偿,以得到初始报文数据;
48、所述聚类单元,用于在获取的所述初始报文数据满足数据量要求的情况下,对所述初始报文数据以及最新获取的相位补偿后的报文数据进行聚类,以筛选出满足底部时延特征的目标报文数据;
49、所述拟合单元,用于在所述目标报文数据满足设定的收敛条件的情况下,对所述目标报文数据进行线性拟合,以得到频率修正量;
50、所述确定单元,用于根据当前周期的目标报文数据以及基于最小时延迭代确定出的最小传输时延,确定出相位修正量;
51、所述修正单元,用于依据所述频率修正量以及所述相位修正量对从时钟进行时钟修正。
52、可选地,所述聚类单元包括第一筛选子单元、第一标记子单元、第二筛选子单元、第二标记子单元和作为子单元;
53、所述第一筛选子单元,用于在从时钟为非稳定状态的情况下,将所述初始报文数据作为初始聚类簇,依据所述初始聚类簇对当前缓存的所有相位补偿后的报文数据进行聚类,以筛选出满足底部时延特征的第一报文数据;
54、所述第一标记子单元,用于对所述第一报文数据设置聚类标记;
55、所述第二筛选子单元,用于在从时钟为稳定状态的情况下,每次接收到新的相位补偿后的报文数据,则利用设置聚类标记的报文数据对所述新的相位补偿后的报文数据进行聚类,以筛选出满足底部时延特征的第二报文数据;
56、所述第二标记子单元,用于对所述第二报文数据设置聚类标记;
57、所述作为子单元,用于将所述第一报文数据和所述第二报文数据作为目标报文数据。
58、可选地,所述拟合单元包括判断子单元和得到子单元;
59、所述判断子单元,用于判断当前周期的目标报文数据的取值和密度是否满足设定的收敛条件;其中,所述收敛条件包括取值分布条件和密度条件;
60、所述得到子单元,用于在当前周期的目标报文数据的取值和密度满足设定的收敛条件的情况下,对所述目标报文数据进行线性拟合,以得到频率修正量。
61、可选地,所述判断子单元用于统计当前周期的目标报文数据的取值小于设定阈值的目标报文数据的个数;
62、计算所述个数与所述当前周期的目标报文数据的总数的占比;
63、判断所述占比是否大于或等于设定比值;
64、在所述占比大于或等于设定比值的情况下,判断当前周期的目标报文数据的数据量是否大于或等于上一周期的目标报文数据的数据量;
65、在所述当前周期的目标报文数据的数据量大于或等于上一周期的目标报文数据的数据量的情况下,执行所述对所述目标报文数据进行线性拟合,以得到频率修正量的步骤。
66、可选地,还包括控制单元;
67、所述控制单元,用于在所述占比小于设定比值或者所述当前周期的目标报文数据的数据量小于上一周期的目标报文数据的数据量的情况下,控制下个周期协议状态机进入从时钟非稳定状态。
68、可选地,还包括初始拟合单元和初始修正单元;
69、所述初始拟合单元,用于在获取的所述初始报文数据不满足数据量要求的情况下,对所述初始报文数据进行线性拟合,以得到初始频偏;
70、所述初始修正单元,用于基于所述初始频偏对所述从时钟进行频率修正。
71、可选地,所述拟合单元包括计算子单元和作为子单元;
72、所述计算子单元,用于计算所述目标报文数据与时间的线性关系;
73、所述作为子单元,用于将所述线性关系对应的斜率作为频率修正量。
74、可选地,所述确定单元用于对当前周期对应的传输时延以及多个历史周期对应的最小传输时延进行最小时延迭代,以确定出当前周期对应的最小传输时延;
75、依据当前周期的目标报文数据包含的时间参数以及所述当前周期对应的最小传输时延,确定出相位修正量。
76、可选地,所述补偿单元包括第一确定子单元、第二确定子单元和得到子单元;
77、所述第一确定子单元,用于根据n个周期内的历史时钟同步报文包含的历史频率修正量,确定出n个周期对应的累计频率修正量;
78、所述第二确定子单元,用于根据所述累计频率修正量、所述n个周期内的历史时钟同步报文包含的历史相位修正量以及预设的时钟标称频率,确定出所述n个周期对应的累计相位修正量;
79、所述得到子单元,用于依据所述累计相位修正量对所述历史时钟同步报文包含的从时钟接收报文的时间戳进行相位补偿,得到初始报文数据。
80、可选地,所述第一确定子单元用于调用频率修正公式,对n个周期内的历史时钟同步报文包含的历史频率修正量进行处理,以确定出所述n个周期对应的累计频率修正量;所述频率修正公式如下:
81、δf∑[n]=δf∑[n-1]+δfs[n];
82、其中,n表示周期的设定数量,δf∑[n]表示前n次累计频率修正量,δf∑[n-1]表示前n-1次累计频率修正量,δfs[n]表示第n次的频率修正量。
83、可选地,所述第二确定子单元用于调用相位修正公式,对所述累计频率修正量、所述n个周期内的历史时钟同步报文包含的历史相位修正量以及预设的时钟标称频率进行处理,以确定出所述n个周期对应的累计相位修正量;所述相位修正公式如下:
84、
85、其中,k表示第k个周期,表示前n次累计相位修正量,fs0表示预设的时钟标称频率,δf∑[k-1]表示累计频率修正量,δt表示相邻两次频率修正的时间间隔,表示第n次的相位修正量。
86、可选地,针对于历史时钟同步报文数据的存储,所述装置包括存储单元;
87、所述存储单元,用于利用环形数组队列存储最近的n个周期历史时钟同步报文数据;其中,每个周期的历史时钟同步报文数据包括报文序列号、主时钟发送报文的本地时间戳、从时钟接受报文的本地时间戳、修正时刻、频率修正量、相位修正量和聚类标记位。
88、本技术实施例还提供了一种电子设备,包括:
89、存储器,用于存储计算机程序;
90、处理器,用于执行所述计算机程序以实现如上述时钟同步方法的步骤。
91、本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述时钟同步方法的步骤。
92、由上述技术方案可以看出,对获取的多个周期的历史时钟同步报文数据包含的时间参数进行相位补偿,以得到初始报文数据;通过相位补偿,可以抵消时钟不断修正的影响,从而恢复出时间戳的线性关系。在获取的初始报文数据满足数据量要求的情况下,对初始报文数据以及最新获取的相位补偿后的报文数据进行聚类,以筛选出满足底部时延特征的目标报文数据。目标报文数据是报文数据去除噪声影响后剩余的有效报文数据。在目标报文数据满足设定的收敛条件的情况下,可以对目标报文数据进行线性拟合,以得到频率修正量。根据当前周期的目标报文数据以及基于最小时延迭代确定出的最小传输时延,确定出相位修正量;依据频率修正量以及相位修正量对从时钟进行时钟修正。在该技术方案中,通过对报文数据进行相位补偿以及聚类处理,可以有效的过滤掉排队延时产生的噪声,极大的降低了时延的抖动,提高了同步的精度。并且该实现过程无需设置经验参数,可以满足用户灵活组网的需求,能够自适应各种网络拓扑结构。在频率稳定后,频率与相位都无需再做大幅修正,只需缓慢微调即可,在保证同步精度的同时,提高了同步状态下的稳定性。
1.一种时钟同步方法,其特征在于,包括:
2.根据权利要求1所述的时钟同步方法,其特征在于,所述对所述初始报文数据以及最新获取的相位补偿后的报文数据进行聚类,以筛选出满足底部时延特征的目标报文数据包括:
3.根据权利要求2所述的时钟同步方法,其特征在于,所述在所述目标报文数据满足设定的收敛条件的情况下,对所述目标报文数据进行线性拟合,以得到频率修正量包括:
4.根据权利要求3所述的时钟同步方法,其特征在于,所述判断当前周期的目标报文数据的取值和密度是否满足设定的收敛条件包括:
5.根据权利要求4所述的时钟同步方法,其特征在于,还包括:
6.根据权利要求1所述的时钟同步方法,其特征在于,还包括:
7.根据权利要求1所述的时钟同步方法,其特征在于,所述对所述目标报文数据进行线性拟合,以得到频率修正量包括:
8.根据权利要求1所述的时钟同步方法,其特征在于,所述根据当前周期的目标报文数据以及基于最小时延迭代确定出的最小传输时延,确定出相位修正量包括:
9.根据权利要求1所述的时钟同步方法,其特征在于,所述对获取的多个周期的历史时钟同步报文数据包含的时间参数进行相位补偿,以得到初始报文数据包括:
10.根据权利要求9所述的时钟同步方法,其特征在于,所述根据n个周期内的历史时钟同步报文包含的历史频率修正量,确定出n个周期对应的累计频率修正量包括:
11.根据权利要求10所述的时钟同步方法,其特征在于,所述根据所述累计频率修正量、所述n个周期内的历史时钟同步报文包含的历史相位修正量以及预设的时钟标称频率,确定出所述n个周期对应的累计相位修正量包括:
12.根据权利要求11所述的时钟同步方法,其特征在于,针对于历史时钟同步报文数据的存储,所述方法包括:
13.一种时钟同步装置,其特征在于,包括补偿单元、聚类单元、拟合单元、确定单元和修正单元;
14.一种电子设备,其特征在于,包括:
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至12任意一项所述时钟同步方法的步骤。