CN112636860B - 基于比例积分算法的ieee1588协议时间校准方法 - Google Patents

基于比例积分算法的ieee1588协议时间校准方法 Download PDF

Info

Publication number
CN112636860B
CN112636860B CN202011537556.6A CN202011537556A CN112636860B CN 112636860 B CN112636860 B CN 112636860B CN 202011537556 A CN202011537556 A CN 202011537556A CN 112636860 B CN112636860 B CN 112636860B
Authority
CN
China
Prior art keywords
time
value
register
calculating
ieee1588 protocol
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011537556.6A
Other languages
English (en)
Other versions
CN112636860A (zh
Inventor
王红春
金星
王国栋
营志远
邓熙玺
王国建
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xi'an Yunwei Zhilian Technology Co ltd
Original Assignee
Xi'an Yunwei Zhilian Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xi'an Yunwei Zhilian Technology Co ltd filed Critical Xi'an Yunwei Zhilian Technology Co ltd
Priority to CN202011537556.6A priority Critical patent/CN112636860B/zh
Publication of CN112636860A publication Critical patent/CN112636860A/zh
Application granted granted Critical
Publication of CN112636860B publication Critical patent/CN112636860B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0667Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)

Abstract

本发明公开了一种基于比例积分算法的IEEE1588协议时间校准方法:步骤1,计算得到时间偏差值;将系统时间戳寄存器system_time减去该值;步骤2,计算当前时间偏差值tb,并将其存入当前时间偏差值表中,计算积分值;步骤3,计算频率补偿值;步骤4,设置寄存器addend存储频率补偿值;步骤5,硬件晶振产生时间计数时,将步骤1得到的更新后的系统时间戳寄存器system_time的值,加上硬件晶振的计数周期时长,再加上步骤4中寄存器addend中的值,得到当前的系统时间戳寄存器system_time的值,即完成系统时间的校准;步骤6,系统接收新的IEEE1588协议,重复执行2‑6步。

Description

基于比例积分算法的IEEE1588协议时间校准方法
技术领域
本发明属于计算机网络通信领域,具体涉及一种基于比例积分算法的IEEE1588协议时间校准方法。
背景技术
在现代化的工业制造领域,一个大的系统往往划分为多个子系统、子节点,各个节点间协同工作,这就需要每个节点设备的时间是一致的。而硬件的时间计时大多是基于晶振的计数式的计时方法,由于每个晶振的频率不可能完全一样,这就导致了不同硬件设备的时间出现不一致。因此,这就需要有一定的机制,每隔一定的时间对网络上的硬件设备进行时间同步,给整个网络提供基础的时间同步服务。
以太网的标准IEEE1588-2008(version 2)中规定了基于以太网的时间同步方法。该方法具有实现简单、同步精度高、标准化、应用广泛的特点,在实时性的工业以太网上得到了广泛应用。通过IEEE1588协议计算出主节点和从节点的时间偏差,然后校准从节点系统时钟,使得主从时钟趋于一致。如图1所示,IEEE1588的时间同步的原理是,一个设备作为主设备(Master),一个或多个设备作为多个从设备(Slave),Slave通过计算出与Master间的时间偏差,从而修正Slave的时间,使得Slave的时间与Master一致。
但是,IEEE1588协议并没有给出具体的时间校准方法,通常是直接给系统时间减去偏差值来校准。该方法准确性差,时钟抖动较大,最终使得时间同步精度变差。
发明内容
针对上述现有技术中存在的问题,本发明的目的在于,提出一种基于比例积分算法的IEEE1588协议时间校准方法。
为了实现上述目的,本发明给出如下技术方案予以解决:
一种基于比例积分算法的IEEE1588协议时间校准方法,具体包括如下步骤:
步骤1,使用IEEE1588协议计算得到时间偏差值tb;将系统时间戳寄存器system_time减去tb,得到更新后的系统时间戳寄存器system_time;
步骤2,使用IEEE1588协议计算得到当前的时间偏差值tb,并将其存入当前时间偏差值表中,使用下式计算积分值:
ki_sum=KI*∑tb
其中,KI是积分系数;∑tb是当前时间偏差值表中所有数值的累加;
步骤3,计算频率补偿值tr,公式如下:
tr=KP*tb+ki_sum
其中,tb是由步骤2得到的当前的时间偏差值,KP是比例系数,不同的KP和不同的KI组合可适应不同的应用场景;
步骤4,设置寄存器addend,用于存储步骤3计算得到的频率补偿值tr
步骤5,硬件晶振产生时间计数时,将步骤1得到的更新后的系统时间戳寄存器system_time的值,加上硬件晶振的计数周期时长,再加上步骤4中寄存器addend中的值,得到当前的系统时间戳寄存器system_time的值,即完成系统时间的校准;
步骤6,系统接收新的IEEE1588协议,令i=i+1,转至第2步。
进一步的,KP为0.7,KI为0.3。
进一步的,所述寄存器addend为32位的寄存器。
进一步的,所述硬件晶振的计数周期时长为1s。
进一步的,所述步骤6中,每隔100us-10s系统接收到一次IEEE1588协议,取1s。
与现有技术相比,本发明的有益效果如下:
优点:
1、同步精度高。由比例积分算法预测整体修正时间偏差,考虑到了修正时间偏差过程本身带来的影响。
2、时间偏差修正的速度快。经过采集最少二次历史偏差数据,即可用比例积分算法计算出预测偏差值。在不更改IEEE1588标准的基础上,实现高效的时间校准,与原有系统兼容。
3、时间偏差的抖动小。由于采用了频率补偿值的方式校准时钟,比传统直接修改时钟的方式产生的时钟抖动小。
附图说明
图1是IEEE1588时间同步以太网体系结构;
图2是传统的时钟校准方法中与Master的时间偏差随时间的变化情况;
图3是使用了频率补偿值、比例积分算法校准时钟时与Master的时间偏差随时间的变化情况;
图4是传统的时钟校准的示意图。
图5是本发明的方法是算法流程图。
以下结合附图和具体实施方式对本发明进一步解释说明。
具体实施方式
基于现有技术中存在的诸多技术问题,本发明的设计思路是:1)时钟频率增加补偿值,通过时钟频率补偿值,来修正时间偏差,解决常规修正导致的时间抖动过大的问题。2)每次IEEE1588同步得到的偏差值,通过比例积分的算法,计算出频率补偿值。以优化同步精度,同时加快补偿值计算速度。
本发明的具体设计过程如下:
1、使用时钟频率补偿值修正时钟
如图2所示,传统的时钟校准是直接修正系统时间,就是在IEEE1588协议计算出时间偏差后,在系统时间上减去偏差值。由于时间偏差随时间不断增大,而校准是每隔一段时间修正一次,所以时间偏差会存在比较大的抖动。
本发明使用频率补偿值来校准时钟,就是在硬件晶振产生时间计数时,加上一个补偿值,从而使得系统时间被校准。这种补偿值作用于整个计时过程,不会出现时间偏差随时间逐步增加的情况。
从图3中可以看到,整个系统的时间偏差抖动可以变得更加小,更加平缓。
2、比例积分计算频率补偿值
如图4所示,传统的时钟校准从计算出偏差值到修正时间,中间经过了多个软硬件模块的数据传输和计算,导致时间修正的延迟过大,同步精度过大。
由于整个时间修正过程经过了数据传输、计算偏差值、修正时钟等过程,所以实际的真实偏差值应该是计算偏差值+校准时间。即:
tr=tb+tc
其中tr是实际的偏差(也是频率补偿值),tb是IEEE1588协议计算出的时间偏差值,tc是校准过程消耗的时间,就是上图中的t1+t2+t3。在直接修正时钟时,tc的值被忽略掉了,因此整个校准结果就变得精度比较差。
比例积分(Proportional Integral,简称PI),是一种经典的控制策略,由于其算法简单、鲁棒性好可靠性高,被广泛应用于工业控制。此处PI算法的基本公式为:
tr=KP*tb+KI*Σtb
其中,tr是频率补偿值,KP是比例系数,KI是积分系数,tb是协议IEEE1588计算出的时间偏差值。不同的KP和不同的KI组合可以适应不同的应用场景,默认情况下KP为0.7,KI为0.3。
经过比例积分计算出频率补偿值,然后修正系统时钟,整个同步精度可以从传统方法的微秒级提高到100纳秒以内。
实施例1:
遵循上述本发明的设计思路,本实施例的基于比例积分算法的IEEE1588协议时间校准方法,具体包括如下步骤:
步骤1,使用IEEE1588协议计算得到时间偏差值tb;将系统时间戳寄存器system_time减去tb,得到更新后的系统时间戳寄存器system_time;
由于频率补偿值是针对系统1秒钟时间做出的补偿,补偿值不能大于1秒,此步骤可以把系统时间偏差降低到1ms以内。
步骤2,使用IEEE1588协议计算得到当前的时间偏差值tb,并将其存入当前时间偏差值表中,使用下式计算积分值:
ki_sum=KI*∑tb
其中,KI是积分系数;∑tb是当前时间偏差值表中所有数值的累加;
本步骤即对tb的所有历史值进行累加,然后乘以积分系数KI;经过采集二次历史偏差数据,即可用比例积分算法计算出预测偏差值。在不更改IEEE1588标准的基础上,实现高效的时间校准,与原有系统兼容。
步骤3,计算频率补偿值tr,公式如下:
tr=KP*tb+ki_sum
其中,tb是由步骤2得到的当前的时间偏差值,KP是比例系数,不同的KP和不同的KI组合可以适应不同的应用场景,默认情况下KP为0.7,KI为0.3。
上述步骤由比例积分算法预测整体修正时间偏差,考虑到了修正时间偏差过程本身带来的影响,使得同步精度相较于现有技术大大提高。
步骤4,设置一个32位的寄存器addend,用于存储步骤3计算得到的频率补偿值tr。
步骤5,硬件晶振产生时间计数时,将步骤1得到的更新后的系统时间戳寄存器system_time的值,加上硬件晶振的计数周期时长(一般为1s),再加上步骤4中寄存器addend中的值,得到当前的系统时间戳寄存器system_time的值,即完成系统时间的校准;
步骤6,系统接收新的IEEE1588协议,令i=i+1,转至第2步。
一般每隔100us-10s系统接收到一次IEEE1588协议,通常为1s;
由上述方案可知,经过步骤1对时间戳寄存器system_time减去tb得到更新后的时间戳寄存器,即对时间偏差进行去除,实现对系统时间的初步调节,再经过步骤2-5,由比例积分算法预测整体修正时间偏差过程带来的影响,在更新后的时间戳寄存器system_time加上动态更新的频率补偿值,即对系统时间去除的偏差进行修正,实现对系统时间的精细调节,克服了现有技术中同步精度不高的缺陷。进一步的,通过实时动态循环上述过程,实现对系统时间的动态精细调节。同时,本发明由于采用了频率补偿值的方式校准时钟,比传统直接修改时钟的方式产生的时钟抖动小。
经实验,在直接使用时间偏差值修正时钟时,系统的时间偏差值是323±30ns。而使用了比例积分算法修正后,系统的时间偏差值是0.19±20ns。

Claims (1)

1.一种基于比例积分算法的IEEE1588协议时间校准方法,其特征在于,具体包括如下步骤:
步骤1,使用IEEE1588协议计算得到时间偏差值tb;将系统时间戳寄存器system_time减去tb,得到更新后的系统时间戳寄存器system_time;
步骤2,使用IEEE1588协议计算得到当前的时间偏差值tb,并将其存入当前时间偏差值表中,使用下式计算积分值:
ki_sum=KI*∑tb
其中,KI是积分系数;∑tb是当前时间偏差值表中所有数值的累加;
步骤3,计算频率补偿值tr,公式如下:
tr=KP*tb+ki_sum
其中,tb是由步骤2得到的当前的时间偏差值,KP是比例系数,不同的KP和不同的KI组合可适应不同的应用场景;
步骤4,设置寄存器addend,用于存储步骤3计算得到的频率补偿值tr;
步骤5,硬件晶振产生时间计数时,将步骤1得到的更新后的系统时间戳寄存器system_time的值,加上硬件晶振的计数周期时长,再加上步骤4中寄存器addend中的值,得到当前的系统时间戳寄存器system_time的值,即完成系统时间的校准;
步骤6,系统接收新的IEEE1588协议,令i=i+1,转至第2步;
KP为0.7,KI为0.3;
所述寄存器addend为32位的寄存器;
所述硬件晶振的计数周期时长为1s;
所述步骤6中,每隔100us-10s系统接收到一次IEEE1588协议,取1s。
CN202011537556.6A 2020-12-23 2020-12-23 基于比例积分算法的ieee1588协议时间校准方法 Active CN112636860B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011537556.6A CN112636860B (zh) 2020-12-23 2020-12-23 基于比例积分算法的ieee1588协议时间校准方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011537556.6A CN112636860B (zh) 2020-12-23 2020-12-23 基于比例积分算法的ieee1588协议时间校准方法

Publications (2)

Publication Number Publication Date
CN112636860A CN112636860A (zh) 2021-04-09
CN112636860B true CN112636860B (zh) 2023-06-02

Family

ID=75321725

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011537556.6A Active CN112636860B (zh) 2020-12-23 2020-12-23 基于比例积分算法的ieee1588协议时间校准方法

Country Status (1)

Country Link
CN (1) CN112636860B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113453053B (zh) * 2021-06-25 2022-05-06 杭州海康威视数字技术股份有限公司 分布式视频同步显示系统及视频同步显示方法、存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009119599A1 (ja) * 2008-03-27 2009-10-01 日本電気株式会社 クロック同期システム、ノード、クロック同期方法及びプログラム
CN102983927B (zh) * 2012-12-12 2015-04-08 南京协澳智能控制系统有限公司 一种基于ieee 1588协议的主从时钟对时的时间补偿方法
CN103166730A (zh) * 2013-03-13 2013-06-19 西北工业大学 基于ieee1588协议的无线自组织网络时钟同步方法

Also Published As

Publication number Publication date
CN112636860A (zh) 2021-04-09

Similar Documents

Publication Publication Date Title
EP2787664B1 (en) Time synchronization method and apparatus
US8824511B2 (en) Clock synchronization system, node, clock synchronization method, and program
US9203725B2 (en) Update of a cumulative residence time of a packet in a packet-switched communication network
US8402302B2 (en) Timer system for maintaining the accuracy of a real time clock when synchronization source is not available
US9813174B2 (en) Time correction method and apparatus for slave clock device
US8225128B2 (en) Electronic timer system, time control and generation of timing signals
WO2017063450A1 (zh) 一种时间戳过滤的方法及装置
CN102195766B (zh) 一种时间同步的方法和时钟设备
US10594424B2 (en) Time synchronization slave apparatus capable of adjusting time synchronization period, and method of determining time synchronization period
CN112636860B (zh) 基于比例积分算法的ieee1588协议时间校准方法
US20130243140A1 (en) Method for Transmitting Synchronization Messages in a Communication Network
US11888585B2 (en) Method for operating a network participant in an automation communication network
CN114157381A (zh) 一种面向网络时延抖动的时延估计周期动态调整方法
CN114205045B (zh) 一种tte网络时钟校准方法及系统
US20160127067A1 (en) Method for operating a node of a communications network, a node and a communications network
WO2013163793A1 (en) Automatic time and frequency synchronization over an asynchronous network
JP2008177913A (ja) 通信装置およびそのクロック再生方法
CN112636859B (zh) 基于线性回归算法的ieee1588协议时间校准方法
CN115347965B (zh) 带缓存机制的基于改进滑动平均滤波的时间同步优化方法
CN114520703B (zh) 用于工业网络设备间时间同步的时钟漂移补偿方法及电路
CN110289929B (zh) 一种网络同步方法
CN114513273B (zh) Ptp芯片时钟模块的实现方法和装置
Ju et al. Research on IEEE 1588 clock synchronization error correction algorithm based on Kalman filter
CN114598412B (zh) 时钟同步处理方法、装置、电子设备、存储介质及产品
CN115038162B (zh) 一种蓝牙时钟快速同频同相调节方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant