一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种实现gPTP时间偏差快速收敛的方法与流程

2023-10-25 21:42:02 来源:中国专利 TAG:

一种实现gptp时间偏差快速收敛的方法
技术领域
1.本发明涉及gptp时间同步技术,尤其涉及一种实现gptp时间偏差快速收敛的方法。


背景技术:

2.gptp(generalized precision time protocol)是由ieee std 802.1as标准定义的,gptp的目的是确保所有局域网里的节点的时间完全一致,误差为纳秒级别。
3.实际使用中,当局域网内节点之间的时间相差比较大时,例如100s,所有节点时间偏差收敛到100纳秒内需要15秒以上。因为调节时钟频率时全程使用pi算法频率差调节频率,这种算法的特性是计算的结果是波动的,随着节点间的时间偏差变小需要调整的频率差幅度会慢慢减小,趋于稳定,但是节点之间的初始时间偏差较大的情况下,收敛达到纳秒级别会持续很长时间。
4.车载领域对局域网内节点时间偏差收敛时间要求是非常高的,很多上层业务都需要建立在时间同步的基础上运行,如果gptp时间偏差收敛时间长会导致整体软件启动都非常慢。


技术实现要素:

5.为解决现有技术中存在的不足,本发明的目的在于,提供一种实现gptp时间偏差快速收敛的方法。
6.为实现本发明的目的,本发明所采用的技术方案是:
7.一种实现gptp时间偏差快速收敛的方法,包括步骤:
8.(1)首次调节时钟频率时,计算稳态频率差,在稳态频率差的基础上使用pi迭代算法调节时钟频率,直至时间偏差达到预设时间;
9.(2)当从时钟节点和主时钟节点时间偏差首次达到预设时间开始,使用稳态频率差调节时钟频率;后续时钟调节,重新在稳态频率差的基础上使用pi迭代算法调节时钟频率。
10.进一步地,所述预设时间为100纳秒。
11.进一步地,步骤(1)中,稳态频率差driftfreq为主时钟和从时钟两个节点的时钟之间的初始频率差。
12.进一步地,稳态频率差driftfreq的计算步骤为:
13.1.首先计算传输延迟pdelay:
14.pdelay=((t4-t1)-(t3-t2))/2
15.2.计算从时钟t6时刻对应的主时钟的时间,t5_last是前一次sync消息发送的时间,correctionfield是中间经过tsn switch设备的驻留时间:
16.gm=t5 pdelay correctionfield
17.gm_last=t5_last pdelay correctionfield
18.3.计算主时钟和从时钟之间的时间偏移:
19.offset=t6-gm
20.4.计算主时钟和从时钟之间的时钟频率比率,t6_last是前一次sync消息接收的时间:
21.ratio=(gm-gm_last)/(t6-t6_last)
22.5.计算主时钟和从时钟之间的时钟频率差:
23.driftfreq=(1-ratio)*1e9
24.其中,t1代表pdelay_req消息的发送时间,t2代表pdelay_req消息的接收时间,t3代表pdelay_resp消息的发送时间,t4代表pdelay_resp消息的接收时间;t5代表sync消息的发送时间,t6代表sync消息的接收时间。
25.进一步地,步骤(1)中,pi迭代算法计算公式为:
[0026][0027]
调节时钟频率adjfreq计算公式为:
[0028]
adjfreq=adjfreq pifunc(t) adjfreq的初始值是0
[0029]
其中,unlocked表示首次调节时钟频率,或当前主从时钟的时间偏移超过1ms,需要同时调整时钟的相位和频率;locked表示当前时间偏移小于1ms,只需要调整频率。
[0030]
进一步地,步骤(2)中,使用稳态频率差调节时钟频率,只需将频率调节范围作为入参传入系统调用函数clock_adjtime,由系统函数内部实际调节时钟。
[0031]
进一步地,步骤(2)中,pi迭代算法计算公式如下:
[0032][0033]
调节时钟频率adjfreq计算公式为:
[0034]
adjfreq=adjfreq pifunc(t),adjfreq的初始值是0。
[0035]
进一步地,所述方法可应用于点对点直连的拓扑的时钟频率调节。
[0036]
进一步地,所述方法可应用于端节点中间有tsn switch相连的拓扑的时钟频率调节。
[0037]
本发明的有益效果在于,与现有技术相比,本发明将时钟调节的过程分为两个阶段,第一个阶段,在稳态频率差的基础上使用pi迭代算法调节时钟频率,直至时间偏差达到100纳秒;第二个阶段,当时间偏差首次达到100纳秒开始,使用稳态频率差调节时钟频率;后续时钟调节,重新在稳态频率差的基础上使用pi迭代算法调节时钟频率。本发明方法运行gptp可以在2秒内让在局域网里所有节点的时间偏差控制在100纳秒内。
附图说明
[0038]
图1是本发明所述的实现gptp时间偏差快速收敛的方法流程图;
[0039]
图2是稳态频率差计算示意图;
[0040]
图3是pi算法调节器结构图;
[0041]
图4是点对点直连的拓扑示意图;
[0042]
图5是端节点中间有tsn switch相连的拓扑示意图;
[0043]
图6是本发明与现有技术的时钟调节方案对比效果图。
具体实施方式
[0044]
下面结合附图和实施例对本发明的技术方案作进一步的说明。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本技术的保护范围。
[0045]
如图1所示,本发明所述的实现gptp时间偏差快速收敛的方法,将时钟调节的过程分为两个阶段,时钟调节本身有相位调节和频率调节两种,一般在不同的条件下会考虑结合使用或者分开使用,本发明优化的是频率调节中频率调节范围计算的方式,也会结合使用相位调节的方式。
[0046]
第一个阶段,从时钟(slave)节点首次调节时钟频率时,计算稳态频率差,在稳态频率差的基础上使用pi(proportional-lntegral,比例积分)迭代算法调节时钟频率adjfreq,直至时间偏差达到预设时间,例如100纳秒;
[0047]
稳态频率差driftfreq为主时钟和从时钟两个节点的时钟之间的初始频率差,即首次调节从时钟之前,两个节点的时钟频率差。
[0048]
如图2所示,图中用master代表主时钟节点,用slave代表从时钟节点,t1代表pdelay_req消息的发送时间,t2代表pdelay_req消息的接收时间,t3代表pdelay_resp消息的发送时间,t4代表pdelay_resp消息的接收时间;t5代表sync消息的发送时间,t6代表sync消息的接收时间。
[0049]
稳态频率差driftfreq的计算步骤为:
[0050]
1.首先计算传输延迟pdelay:
[0051]
pdelay=((t4-t1)-(t3-t2))/2
[0052]
2.计算从时钟t6时刻对应的主时钟的时间,t5_last是前一次sync消息发送的时间,correctionfield是中间经过tsn switch设备的驻留时间:
[0053]
gm=t5 pdelay correctionfield
[0054]
gm_last=t5_last pdelay correctionfield
[0055]
3.计算主时钟和从时钟之间的时间偏移:
[0056]
offset=t6-gm
[0057]
4.计算主时钟和从时钟之间的时钟频率比率,t6_last是前一次sync消息接收的时间:
[0058]
ratio=(gm-gm_last)/(t6-t6_last)
[0059]
5.计算主时钟和从时钟之间的时钟频率差,并将单位转换成ppb(1ppb=10^-9,十亿分之一):
[0060]
driftfreq=(1-ratio)*1e9
[0061]
只有在第一次时钟调频的之前计算出来的频率差才是稳态频率差,时钟调频后的频率差就是调整后的频率差。
[0062]
下面对时钟调节过程中使用的pi算法进行描述,pi算法调节器的结构如图3所示。其中,tm为主时钟时间,ts为从时钟时间,e(t)为表示t时刻从与主的时间偏移,e(i)为表示i时刻从与主的时间偏移,drift为从时钟相对于主时钟的稳态频率差即driftfreq,freq为从时钟相对于主时钟的频率补偿值即adjfreq。
[0063]
pifunc()用于计算本次时钟调节需要调节的频率范围,其中在不同的状态下,时钟调节的方式不同,unlocked表示首次调节时钟频率,或当前主从时钟的时间偏移很大,超过1ms时,需要同时调整时钟的相位和频率;locked表示当前时间偏移小于1ms,这时只需要调整频率,提高时间同步的精度,pi迭代算法计算公式为:
[0064][0065]
调节时钟频率adjfreq计算公式为:
[0066]
adjfreq=adjfreq pifunc(t) (adjfreq的初始值是0)
[0067]
第二个阶段,当从时钟(slave)节点和主时钟(gm)节点时间偏差首次达到100纳秒开始,使用稳态频率差调节时钟频率,只需将频率调节范围作为入参传入系统调用函数clock_adjtime,由系统函数内部实际调节时钟;后续时钟调节,重新在稳态频率差的基础上使用pi迭代算法调节时钟频率,pi迭代算法计算公式如下:
[0068][0069]
调节时钟频率adjfreq计算公式为:
[0070]
adjfreq=adjfreq pifunc(t) (adjfreq的初始值是0)
[0071]
其中,locked表示当前时间偏移小于1ms,只需要调整频率,如果频率调节过程中遇到时钟源变化,时钟偏差超过1ms,就会重新回到第一阶段。
[0072]
第二个阶段的计算,时钟调节的范围重新从0开始计算,不在第一阶段结果的基础上叠加,这样时钟频率调节的范围不会波动很大,slave节点和gm节点的时钟偏差都会稳定在100纳秒以内,节点间时间偏差不会再大范围波动,不会超过100ns。
[0073]
gptp应用场景主要有如下两类拓扑:点对点直连的拓扑和端节点中间有tsn switch相连的拓扑。
[0074]
如图4所示,点对点直连的拓扑,mpu1作为gptp中的主时钟(grand master,gm)节点,mpu2作为gptp中的从时钟(slave)节点,主时钟节点和从时钟节点点对点直连,slave节点的硬件时间和gm节点的硬件时间保持一致。该结构可以采用本发明所述的方法调节主时钟和从时钟的系统时间偏差,实现系统时间同步。
[0075]
如图5所示,端节点中间有tsn switch相连的拓扑,mpu1作为gptp中的主时钟(gm)节点,mpu2、mpu3、mpu4作为gptp中的从时钟(slave)节点,主时钟节点和多个从时钟节点通过tsn switch相连,所有slave节点的硬件时间和gm节点的硬件时间保持一致。该结构可以采用本发明所述的方法调节主时钟和从时钟的系统时间偏差,实现系统时间同步。
[0076]
采用本发明方法进行时间同步,与传统的linuxptp时间偏差收敛方法相比,其试验时间如表1所示,其中,时间同步消息的发送间隔都是125毫秒。
[0077]
表1
[0078][0079][0080]
如上所示,即使是在初始时间偏差较大的情况下,本发明依然能很快的实现时间偏差收敛。
[0081]
本发明与现有技术的时钟调节方案对比效果图如图6所示。
[0082]
本发明的有益效果在于,与现有技术相比,本发明将时钟调节的过程分为两个阶段,第一个阶段,在稳态频率差的基础上使用pi迭代算法调节时钟频率,直至时间偏差达到100纳秒;第二个阶段,当时间偏差首次达到100纳秒开始,使用稳态频率差调节时钟频率;后续时钟调节,重新在稳态频率差的基础上使用pi迭代算法调节时钟频率。本发明方法运行gptp可以在2秒内让在局域网里所有节点的时间偏差控制在100纳秒内。
[0083]
全文写100纳秒,前提是做实验验证节点间的最终时间偏差会达到100纳秒内,但是如果节点间的路由跳数很多,会导致gptp同步的精度下降,比如只能达到500纳秒精度,那本发明中的100纳秒就要换到500纳秒更合适。
[0084]
本发明申请人结合说明书附图对本发明的实施示例做了详细的说明与描述,但是本领域技术人员应该理解,以上实施示例仅为本发明的优选实施方案,详尽的说明只是为了帮助读者更好地理解本发明精神,而并非对本发明保护范围的限制,相反,任何基于本发明的发明精神所作的任何改进或修饰都应当落在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表