发明内容
有鉴于此,本发明提供一种时间同步装置和方法,应用于网络时间设备上。
具体地,所述装置包括:
时间管理模块,用于根据接收到的外部高精度时间信息下发同步调整值给时钟计算模块,计算通过秒脉冲信号获得的连续N个本设备系统时间的N-1个时间间隔,将所述N-1个时间间隔与标准秒脉冲的时间差作为误差样本进行分析,并将所述误差样本的均值换算为单个时钟脉冲误差,根据所述单个时钟脉冲误差下发误差调整值给时钟计算模块,N为大于1的自然数;
时钟计算模块,用于根据接收到的同步调整值进行时间同步并根据所述误差调整值调整本设备单个时钟脉冲的步进值。
进一步地,所述时钟计算模块包括:调整单元、计时时钟、加法器以及时间戳步进单元;
所述调整单元用于接收所述同步调整值,并将所述同步调整值下发给加法器;
所述计时时钟用于向所述加法器提供时钟脉冲;
所述误差调整值包括:所述单个时钟脉冲误差或将当前单个时钟脉冲的步进值与所述单个时钟脉冲误差进行运算得到的新的单个时钟脉冲的步进值;
所述时间戳步进单元用于在所述误差调整值是所述单个时钟脉冲误差时,将当前单个时钟脉冲的步进值与所述单个时钟脉冲误差进行运算得到新的单个时钟脉冲的步进值并进行保存,在所述误差调整值是所述新的单个时钟脉冲的步进值时进行保存;
所述加法器用于在根据所述同步调整值调整本设备的系统时间的基础上,在接收到所述计时时钟提供的时钟脉冲时,从所述时间戳步进单元中读取所述新的单个时钟脉冲的步进值,将当前时间加上所述新的单个时钟脉冲的步进值得到本设备的系统时间。
进一步地,所述时间管理模块,还包括在所述N个系统时间段内,不下发所述同步调整值。
进一步地,所述时间管理模块,进一步用于在所述误差样本的标准差在预设的范围内时,将所述误差样本的均值换算为单个时钟脉冲误差。
进一步地,所述时间管理模块,进一步包括在所述误差样本的标准差不在预设的范围内时,丢弃所述误差样本中的第i个时间间隔,顺序计算第N+i-1个系统时间和第N+i个系统时间的第N+i-1个时间间隔,并将所述第N+i-1个时间间隔与标准秒脉冲的时间差补入误差样本作为新的误差样本进行分析,其中,i的初始值是1,且是大于等于1的自然数,如果所述新的误差样本的标准差仍不在预设的范围内,则i=2…,直到所述误差样本满足标准差在所述预设的范围内。
进一步地,所述时间管理模块,进一步用于如果在预定的时间内所述误差样本的标准差一直不在所述预设的范围内,重新选取误差样本进行分析。
所述方法包括:
根据接收到的外部高精度时间信息下发同步调整值,计算通过秒脉冲信号获得的连续N个本设备系统时间的N-1个时间间隔,将所述N-1个时间间隔与标准秒脉冲的时间差作为误差样本进行分析,并将所述误差样本的均值换算为单个时钟脉冲误差,根据所述单个时钟脉冲误差下发误差调整值,N为大于1的自然数;
根据接收到的同步调整值进行时间同步并根据所述误差调整值调整本设备单个时钟脉冲的步进值。
进一步地,所述误差调整值包括:所述单个时钟脉冲误差或将当前单个时钟脉冲的步进值与所述单个时钟脉冲误差进行运算得到的新的单个时钟脉冲的步进值;
所述根据接收到的同步调整值进行时间同步的过程包括:接收所述同步调整值,并将所述同步调整值下发给加法器;
在所述误差调整值是所述单个时钟脉冲误差时,将当前单个时钟脉冲的步进值与所述单个时钟脉冲误差进行运算得到新的单个时钟脉冲的步进值并进行保存,在所述误差调整值是所述新的单个时钟脉冲的步进值时进行保存;
所述加法器在根据所述同步调整值调整本设备的系统时间的基础上,在接收到所述计时时钟提供的时钟脉冲时,读取所述新的单个时钟脉冲的步进值,将当前时间加上所述新的单个时钟脉冲的步进值得到本设备的系统时间。
进一步地,所述方法还包括:在所述N个系统时间段内,不下发所述同步调整值。
进一步地,所述方法还包括:在所述误差样本的标准差在预设的范围内时,将所述误差样本的均值换算为单个时钟脉冲误差。
进一步地,在所述误差样本的标准差不在预设的范围内时,丢弃所述误差样本中的第i个时间间隔,顺序计算第N+i-1个系统时间和第N+i个系统时间的第N+i-1个时间间隔,并将所述第N+i-1个时间间隔与标准秒脉冲的时间差补入误差样本作为新的误差样本进行分析,其中,i的初始值是1,且是大于等于1的自然数,如果所述新的误差样本的标准差仍不在预设的范围内,则i=2…,直到所述误差样本满足标准差在所述预设的范围内。
进一步地,如果在预定的时间内所述误差样本的标准差一直不在所述预设的范围内,重新选取误差样本进行分析。
由以上描述可以看出,本发明通过定期计算单个时钟脉冲的误差,进而计算精准的单个时钟脉冲步进值,采用加法器进行所述步进值的增量加法,保证了在计时时钟精度不高的情况下,仍然能够输出高精度时间,并通过与下发1PPS+TOD调整值相结合的方式,减少了时间调整的次数和时间突变,从根本上避免了跳秒与丢秒现象的发生,为外部提供更为精准的时间。同时降低设备对计时时钟的精度要求,节省了大量采购成本。
具体实施方式
请参考图1,以交换机为例,主设备上设置有时间接口,所述时间接口用于接收来自外部高精度时间源的时间信息,所述时间信息通常采用1PPS(Pulsespersecond,秒脉冲)+TOD(Timeofday,日时间)的格式。所述时间接口将所述1PPS+TOD上送到时间管理模块。为了调整方便,在下一个1PPS到达时间计数单元时,时间管理模块将TOD描述的时间加上1PPS信号固定的时延TDelay作为该1PPS到达本设备的真实时间,并通过调整单元将同步调整值以增量或者刷新的方式下发到所述时间计数单元中。
如果主设备上的时间管理模块超过一秒不能接收到新的1PPS+TOD,则会在上次的基础上,再增加一秒,并将新的同步时间调整值通过调整单元以增量或者刷新的方式下发到所述时间计数单元中,以防止1PPS+TOD信息的暂停对系统时间造成跳秒或者丢秒的现象。主设备的时间计数单元按照计时时钟提供的时钟硬件计时,按照预定的单个脉冲步进值进行时间累加,并为PTP同步提供精确的时间戳。
主设备的时间精度还依赖于精确的时间戳。请进一步参考图1,主设备的时间戳精度取决于计时时钟。所述计时时钟用于提供纳秒级的时钟脉冲。所述时间计数单元每收到一个时钟脉冲就会将计数加1,然后根据单个时钟脉冲的步进值计算并输出时间戳,以频率为125MHZ为例,所述单个时钟脉冲的步进值可以设置为8ns。精确的时间戳往往需要配置高质量的计时时钟,才能保证统计同步的准确度,大幅提高了设备的制造成本。并且,当配置精度较低的计时时钟,或者高精度的计时时钟劣化,精度下降时,降低了时间同步的精度与稳定性,并因为需要经常调整时间,产生从设备的时间突变,严重影响了时间同步技术的应用。同时,时间计数单元因为需要经常调整计数,导致时间计数单元经常性跳变,时间同步的稳定性也会下降。此外,由于1PPS+TOD信号的断续,易发生丢秒或者跳秒的现象,严重影响了同步精度。
针对上述问题,本发明提供一种时间同步装置和方法,应用在网络时间设备上。所述网络时间设备包括:时间同步过程中的主网络设备、时间服务器等拥有时间接口,可以接收外部高精度时间源的时间信息的设备。作为该逻辑装置的运行载体的网络时间设备,其硬件环境通常至少都包括有CPU、内存以及非易失性存储器。
请参考图2,所述时间同步装置包括有:时间管理模块以及时钟计算模块。所述时钟计算模块包括有:调整单元、计时时钟、加法器以及时间戳步进单元。所述时间管理模块为主设备上CPU执行内存中的计算机指令所形成的逻辑模块。所述时钟计算模块可以用硬件,也可以用软件来实现。优选地,为了减小CPU的处理压力,所述时钟计算模块可以用时钟芯片来实现。
所述时间管理模块用于根据接收到的外部高精度时间信息下发同步调整值给时钟计算模块的调整单元,所述调整单元用于接收所述同步调整值,并对所述加法器中的本设备系统时间以增量或者刷新的方式进行调整。
所述时间管理模块还用于计算误差调整值,并将所述误差调整值以增量或者刷新的方式下发给所述时间戳步进单元。所述时间戳步进单元用于保存调整后的新的单个时钟脉冲的步进值。所述加法器用于接收到所述计时时钟提供的时钟脉冲时,从所述时间戳步进单元中读取所述新的单个时钟脉冲的步进值,进行加法运算,将当前时间加上所述新的单个时钟脉冲步进值进而得到本设备的系统时间。
请参考图3和图4,在本发明的一种实施方式中,所述装置在运行过程中执行如下步骤:
步骤101,根据接收到的外部高精度时间信息下发同步调整值给时钟计算模块,计算通过秒脉冲信号获得的连续N个本设备系统时间的N-1个时间间隔,将所述N-1个时间间隔与标准秒脉冲的时间差作为误差样本进行分析,将所述误差样本的均值换算为单个时钟脉冲误差,并根据所述单个时钟脉冲误差下发误差调整值给时钟计算模块,N为大于1的自然数。本步骤由时间管理模块执行。
由于计时时钟可能提供不精确的时钟脉冲而导致时间产生误差,本发明中的本地设备在通过1PPS+TOD对系统时间进行同步调整的基础上,设计根据设备系统时间的误差计算出单个时钟脉冲的误差,进而调整单个时钟脉冲的步进值来减小时钟脉冲的不精确对于时间精确性的影响。
本发明中所述时间管理模块可以通过增量的方式对系统时间进行调整。具体地,通过1PPS信号触发加法器上送本设备系统时间T给所述时间管理模块,时间管理模块从时间接口获取1PPS对应的精确时间Ttod,同步调整值Δ=T-Ttod-TDelay,所述时间管理模块将所述同步调整值Δ下发给所述调整单元,所述调整单元通过所述调整值Δ调整加法器中本设备系统时间。
以交换机为例。在系统上电后,由于本设备系统时间与精确时间之间存在较大的偏差,所以所述时间管理模块首先将时间接口上送的TOD描述的时间加上1PPS信号的固定时延TDelay,再加上1秒,在下一个1PPS信号到达时,通过调整单元更新到加法器中,然后通过计算初步的同步调整值Δ对本设备系统时间进行调整,以达到本设备系统时间与外部高精度时间的初步同步。
在本设备系统时间初步同步后,所述时间管理模块开始计算一次单个时钟脉冲的误差。具体地,所述时间管理模块获取连续N个加法器上送的本设备系统时间T,比如10个,分别为T1、T2,…,T10,并计算两两相邻时间的间隔:T2-T1,T3-T2,…,T10-T9,得到9个时间段。由于所述本设备系统时间T是加法器根据1PPS信号的触发上送给所述时间管理模块的,所以如果没有误差,则所述9个时间段的值应该都是1秒。所述时间管理模块进一步计算所述9个时间间隔与1秒的差值,得到9个时间段的误差Toffset1,Toffset2,…,Toffset9,并将其作为误差样本进行分析。如果所述误差样本的标准差在预定的范围内,则将所述误差样本的均值作为该误差计算周期的单位时间偏移量,并将该单位时间偏移量换算成单个时钟脉冲的偏移量,也就是单个时钟脉冲的误差。其中,如果本设备相对于外部高精度时间源的时间偏快,则所述单个时钟脉冲的误差是正值,如果本设备相对于外部高精度时间源的时间偏慢,则所述单个时钟脉冲的误差为负值。本步骤中,在选取误差样本的过程中,本领域技术人员也可以采取其他计算方式,比如,利用
T1-T2,T2-T3,…,T9-T10来计算相邻时间的间隔,那么如果本设备相对于外部高精度时间源的时间偏快,则所述单个时钟脉冲的误差就是负值;如果本设备相对于外部高精度时间源的时间偏慢,所述单个时钟脉冲的误差就是正值。
具体地,所述误差样本的标准差在预定的范围内是指误差样本集合整体的标准差在单个时钟脉冲步进值的合理范围内。优选地,以频率为125MHZ,单个时钟脉冲的步进值为8ns的网络交换机为例,所述预定的条件是所述误差样本的标准差在8ns的1.5倍以内。当然,本领域技术人员也可以根据不同从设备对时间精度的需求的不同,设置不同的预定条件,比如,如果所述从设备对时间精度的需求较低,可以适当放宽对所述误差样本离散程度的要求,同理,如果所述从设备对时间精度的需求较高,可以设置更为严格的条件。
进一步地,所述时间管理模块通过计算发现,如果所述误差样本的标准差不满足所述预定的范围,则所述时间管理模块还包括,丢弃所述误差样本中第一个时间段的误差Toffset1,并选取第N+1个系统时间TN+1,计算第N个时间段的误差ToffsetN,将其补入误差样本,并作为新的误差样本进行分析。同理,如果所述新的误差样本还不满足所述预定的条件,则放弃所述新的误差样本中的第一个时间段的误差Toffset2,选取并计算第N+1个时间段的误差ToffsetN+1,重新进行分析。
进一步地,如果在预定的时间内,所述误差样本一直不满足所述预定的条件,则所述时间管理模块重新选取误差样本进行分析。优选地,所述预定的时间是2分钟。
所述时间管理模块在计算出所述单个时钟脉冲误差后,下发误差调整值给时钟计算模块中的时间戳步进单元。所述时间管理模块可以通过刷新或者增量的方式下发所述误差调整值。具体地,所述增量的方式是所述时间管理模块直接将所述单个时钟脉冲误差下发给所述时间戳步进单元;所述刷新的方式是所述时间管理模块先从所述时间戳步进单元中读取当前单个时钟脉冲的步进值,然后将所述当前单个时钟脉冲的步进值与所述单个时钟脉冲误差进行运算,得到新的单个时钟脉冲的步进值后下发所述新的单个时钟脉冲步进值。所述当前单个时钟脉冲的步进值与所述单个时钟脉冲误差的运算根据上述单个时钟脉冲误差的计算方式设置为加运算或者减运算,满足对单个时钟脉冲步进值的调整。
需要注意的是,步骤101中为了使所述单个时钟脉冲的误差更为精确,所述时间管理模块在所述N个系统时间段内,不下发所述同步调整值,以确保所述N-1个时间段的误差呈现出均衡的递增或者递减过程。所述时间管理模块通常会在计算出单个时钟脉冲的误差后,再计算出同步调整值下发给时钟计算模块。
步骤102,根据接收到的同步调整值进行时间同步并根据所述误差调整值调整本设备单个时钟脉冲的步进值。本步骤由时钟计算模块执行。
所述时间戳步进单元用于在所述误差调整值是所述单个时钟脉冲误差时,将当前单个时钟脉冲的步进值与所述单个时钟脉冲误差进行运算得到新的单个时钟脉冲的步进值并进行保存;在所述误差调整值是所述新的单个时钟脉冲步进值时进行保存。
以硬件实现为例,如果所述时间管理模块以增量的方式下发所述误差调整值,则所述时间戳步进单元进行简单的运算后得出新的单个时钟脉冲的步进值并保存。所述简单运算依据本设备的时间快慢以及所述误差计算模块下发的调整值的正负而定是加运算还是减运算,比如,在本设备时间偏快,且误差计算模块下发的误差调整值是正值时,所述时间戳步进单元进行减运算,即将当前单个时钟脉冲的步进值减去所述误差调整值得到新的单个时钟脉冲步进值并保存;在本设备时间慢,且误差计算模块下发的误差调整值是正值时,所述时间戳步进单元进行加运算,即将当前单个时钟脉冲的步进值加上所述误差调整值得到新的单个时钟脉冲步进值并保存。如果所述时间管理模块以刷新的方式下发所述误差调整值,则所述时间戳步进单元将所述新的单个时钟脉冲步进值进行保存即可。在实际的应用中,可以根据硬件的支持情况来具体设定所述时间管理模块的误差调整方式。
所述加法器在根据调整单元下发的所述时间管理模块根据1PPS+TOD计算出的同步调整值调整本设备的系统时间的基础上,还用于在接收到所述计时时钟提供的时钟脉冲时,从所述时间戳步进单元中读取所述新的单个时钟脉冲的步进值,将当前时间加上所述新的单个时钟脉冲的步进值得到本设备的系统时间。
由此可见,本发明的时钟芯片不同于现有技术中设置的时间计数单元,通过时钟脉冲的个数和固定的单个时钟脉冲步进值计算时间戳,而是通过对时间误差的分析,计算出单个时钟脉冲的误差,从而得到新的单个时钟脉冲的步进值,所述加法器在接收到时钟脉冲时进行加法运算,进而得到更为精确的本设备系统时间。
所述新的单个时钟脉冲的步进值由纳秒和纳秒分数部分组成,其中,典型的是纳秒部分32bits,纳秒分数部分32bits。进一步地,所述时钟计算模块还用于输出时间戳。具体地,所述时钟计算模块通过上述步骤可以为PTP报文交互提供更为精致的时间戳,所述PTP报文的时间戳只包括秒部分以及纳秒部分。所述时钟计算模块为内部提供的时间戳典型的是48bits秒部分、32bits纳秒部分以及32bits纳秒分数部分。所述加法器上还可以设置有其他类型的接口,用于给其他关联设备提供精准时间。
由以上描述可以看出,本发明通过定期计算单个时钟脉冲的误差,进而计算精准的单个时钟脉冲步进值,采用加法器进行所述步进值的增量加法,保证了在计时时钟精度不高的情况下,仍然能够输出高精度时间,并通过与下发1PPS+TOD调整值相结合的方式,减少了时间调整的次数和时间突变,从根本上避免了跳秒与丢秒现象的发生,为外部提供更为精准的时间。同时降低设备对计时时钟的精度要求,节省了大量采购成本。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。