本说明书涉及网络交换机设备精确时间同步的,尤其涉及一种基于ptp协议的时间同步方法、设备及介质。
背景技术:
1、随着分布式网络技术的迅速发展,网络环境中各个系统的运行需要参考一个统一且准确的时间标准,从而协调网络中的各个子系统。ptp(precision time protocol,精密时间协议,也叫ieee1588协议)定义了一个被广泛应用的时间同步协议,能够使分布式系统中各网络节点之间的时间达到精确同步。通常ptp时间同步协议可以通过软件或硬件两种方案实现,其中,如果采用软件方案,实现难度相对简单,且可实现完善的协议功能,但实际上会受到操作系统和网络协议栈的延时影响,同步精度只能达到毫秒级。同时,采用硬件方案实现,需要依赖可编程的硬件平台来实现协议栈,其同步精度可以达到纳秒级,但开发实现难度大且成本较高。
2、在实际应用中,由于时间同步测量计算的时钟偏差和延时,与获取的系统时间戳直接相关联。而系统时间戳又受到主从时钟频率同步,以及噪声、时钟抖动和网络延时等因素的影响,所以实际应用场景中存在噪声,时钟抖动、网络延时等因素,会使获取的时间戳数据不稳定,进而会导致时间同步计算出的时钟偏差和链路延时结果不稳定,误差偏大。
技术实现思路
1、本说明书一个或多个实施例提供了一种基于ptp协议的时间同步方法、设备及介质,用于解决如下技术问题:目前使用的基于ptp协议的时间同步应用中,由于时间戳精度差或时间戳数据异常,导致时间同步计算的校准值异常跳变,进而影响到ptp时间计算的偏差准确性的问题。
2、本说明书一个或多个实施例采用下述技术方案:
3、本说明书一个或多个实施例提供一种基于ptp协议的时间同步方法,所述方法包括:
4、基于预设时间间隔,获取同步报文的时间戳和校准域;
5、根据所述时间戳和所述校准域,计算主设备和从设备之间的时钟偏差和链路延时;
6、对所述时钟偏差和所述链路延时进行递推中值平均滤波处理,得到平滑时间戳数据;
7、将所述平滑时间戳进行卡尔曼滤波,计算出估计时间戳数据;
8、根据所述估计时间戳数据进行系统时钟时间校准。
9、进一步地,所述基于预设时间间隔,获取同步报文的时间戳和校准域,包括:
10、从设备基于所述预设时间间隔,获取主设备的cpu定时器发送的同步报文;
11、从设备对所述同步报文进行解析,得到第一时间戳和第一校准域。
12、进一步地,在所述获取主设备的cpu定时器发送的同步报文之前,还包括:
13、协议栈获取cpu发送的系统时间,并将所述系统时间作为第一时间戳填入所述同步报文;
14、协议栈将填充所述第一时间戳后的所述同步报文发送给芯片;
15、芯片计算所述cpu到所述芯片消耗的第一时间差,并将所述时间差填入所述同步报文的第一校准域中。
16、进一步地,所述根据所述时间戳和所述校准域,计算主设备和从设备之间的时钟偏差和链路延时,包括:
17、获取从设备接收所述同步报文的第二时间戳;
18、根据所述第一时间戳、所述第二时间戳和所述第一校准域,计算所述主设备和所述从设备之间的时钟偏差。
19、进一步地,所述根据所述时间戳和所述校准域,计算主设备和从设备之间的时钟偏差和链路延时,还包括:
20、所述从设备向所述主设备发送延时报文;
21、主设备对所述延时报文进行解析,得到第三时间戳和第二校准域;
22、根据所述第三时间戳和所述第二校准域计算得到所述主设备和所述从设备之间的链路延时。
23、进一步地,在所述所述从设备向所述主设备发送延时报文之前,还包括:
24、协议栈获取cpu发送的系统时间,并将所述系统时间作为第三时间戳填入所述延时报文;
25、协议栈将填充所述第三时间戳后的所述延时报文发送给芯片;
26、芯片计算所述cpu到所述芯片消耗的第二时间差,并将所述第二时间差填入所述延时报文的第二校准域中。
27、进一步地,所述根据所述时间戳和所述校准域,计算主设备和从设备之间的时钟偏差和链路延时,还包括:
28、获取从设备接收所述同步报文的第四时间戳;
29、根据所述第三时间戳、所述第四时间戳和所述第二校准域,计算所述主设备和所述从设备之间的链路延时。
30、进一步地,所述根据所述估计时间戳数据进行系统时钟时间校准,包括:
31、根据所述滤波后的时间戳数据,计算滤波后的时间补偿值;
32、若所述时间补偿值正常则用于调整时钟,否则丢弃所述时间补偿值。
33、本说明书一个或多个实施例提供的一种基于ptp协议的时间同步设备,其特征在于,所述设备包括:
34、至少一个处理器;以及,
35、与所述至少一个处理器通信连接的存储器;其中,
36、所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
37、基于预设时间间隔,获取同步报文的时间戳和校准域;
38、根据所述时间戳和所述校准域,计算主设备和从设备之间的时钟偏差和链路延时;
39、对所述时钟偏差和所述链路延时进行递推中值平均滤波处理,得到平滑时间戳数据;
40、将所述平滑时间戳进行卡尔曼滤波,计算出估计时间戳数据;
41、根据所述估计时间戳数据进行系统时钟时间校准。
42、本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
43、基于预设时间间隔,获取同步报文的时间戳和校准域;
44、根据所述时间戳和所述校准域,计算主设备和从设备之间的时钟偏差和链路延时;
45、对所述时钟偏差和所述链路延时进行递推中值平均滤波处理,得到平滑时间戳数据;
46、将所述平滑时间戳进行卡尔曼滤波,计算出估计时间戳数据;
47、根据所述估计时间戳数据进行系统时钟时间校准。
48、本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:通过锁相环锁定主时钟,实现主从时钟的频率同步,避免出现时间戳不稳定,减小了对协议栈时间同步延时和时钟偏差计算的影响。通过时间同步计算中采用修正补偿的方法,减小了同步时间计算中软件协议层到芯片层的时间误差。通过对时间戳和时钟偏差进行算法滤波和估算,使计算出的链路延时和时钟偏差更加精确,校准到芯片时钟后使系统时间更加稳定。
1.一种基于ptp协议的时间同步方法,其特征在于,所述方法包括:
2.根据权利要求1所述的一种基于ptp协议的时间同步方法,其特征在于,所述基于预设时间间隔,获取同步报文的时间戳和校准域,包括:
3.根据权利要求2所述的一种基于ptp协议的时间同步方法,其特征在于,在所述获取主设备的cpu定时器发送的同步报文之前,还包括:
4.根据权利要求2所述的一种基于ptp协议的时间同步方法,其特征在于,所述根据所述时间戳和所述校准域,计算主设备和从设备之间的时钟偏差和链路延时,包括:
5.根据权利要求4所述的一种基于ptp协议的时间同步方法,其特征在于,所述根据所述时间戳和所述校准域,计算主设备和从设备之间的时钟偏差和链路延时,还包括:
6.根据权利要求5所述的一种基于ptp协议的时间同步方法,其特征在于,在所述从设备向所述主设备发送延时报文之前,还包括:
7.根据权利要求6所述的一种基于ptp协议的时间同步方法,其特征在于,所述根据所述时间戳和所述校准域,计算主设备和从设备之间的时钟偏差和链路延时,还包括:
8.根据权利要求7所述的一种基于ptp协议的时间同步方法,其特征在于,根据所述估计时间戳数据进行系统时钟时间校准,包括:
9.一种基于ptp协议的时间同步设备,其特征在于,所述设备包括:
10.一种非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令设置为: