基于硬件授时的精确时钟同步方法①

2017-11-01 07:18赵汉启胡立生
化工自动化及仪表 2017年6期
关键词:时钟消息偏差

赵汉启 胡立生

(上海交通大学电子信息与电气工程学院)

基于硬件授时的精确时钟同步方法①

赵汉启 胡立生

(上海交通大学电子信息与电气工程学院)

介绍精确时钟同步技术的同步原理,说明了目前研究的实现过程中采用软件授时方法会产生较大时间偏差这一问题。进而通过使用BCM54296芯片实现更为精确的硬件授时,并提出了提高硬件授时精度的方法。最后通过比较两种方法的同步精度证明了硬件授时方法的有效性。

时钟同步 硬件授时 BCM54296 同步精度

时钟同步指的是系统内的节点与时钟源进行时间同步的技术[1]。在自动控制、电力、测量及交通运输等系统中一般都包含很多仪表或者控制器,这些组件大多配备有独立时钟,所以整个系统里面会有很多互相独立的时钟。但是工业系统的各个环节往往具有严格的执行顺序,如果这些时钟没有一个一致的时间基准,很有可能导致系统运行混乱进而发生事故。因此,为了保证系统各环节可以按照既定顺序依次执行,整个系统中的所有时钟都必须和同一个时钟源同步,即实现时钟同步。目前使用较为广泛的同步方法有网络时间同步技术和精确时钟同步技术[2]。

精确时钟同步技术利用工业以太网在两个设备之间交换带有时间值的消息来实现高同步精度的时钟同步技术。在目前使用较为广泛的时钟同步技术中,精确时钟同步技术由于具有成本低和精度高的优势而在工业系统中大量应用[3]。

目前针对精确时钟同步技术的研究主要集中在软件授时和提高软件授时精度的方法上,但是如果所获取的时间戳本身就存在误差,则无论授时精度如何提高,都会导致时钟同步精度下降。针对这一情况,笔者通过使用Broadcom公司的BCM54296芯片来实现硬件授时,同时还提出了提高硬件授时精度的方法。实际数据表明,应用硬件授时方法的精确时钟同步技术使得主从时间偏差更小,同步精度更高。

1 精确时钟同步技术的同步原理

精确时钟同步技术定义了一种可以获得很高同步精度的主从同步技术。它依赖于一个准确的主时钟周期性地同步所有从时钟的时间。当主从层级建立后,主、从时钟会交换带有时间戳的消息使得从时钟可以测量出主时钟的时间值然后对从时钟进行调整。同步过程主要包含两步:计算路径延时和时间偏差。具体执行过程有如下4个步骤[4]:

a. 主时钟周期性地(一般为2s)向从时钟发送同步消息,消息中包含发送时间T1;

b. 从时钟接收到同步消息后,记下接收时间T2;

c. 从时钟周期性地向主时钟发送延迟测量请求消息,并记下消息发送时间T3;

d. 主时钟收到延迟测量请求消息后记下消息的接收时间T4,并马上给从时钟回复延迟测量应答消息,该消息中含有T4的值。

经过以上步骤,从时钟获得了T1、T2、T3、T4的值,由这4个参数可计算出消息由主时钟传递到从时钟耗费的时间Tms与消息由从时钟传递到主时钟耗费的时间Tsm之和:

Tms+Tsm=T4-T1-(T3-T2)

(1)

协议假设Tms和Tsm是相等的,则消息在主、从时钟之间的传递时间delay为:

(2)

同步消息被从时钟接收那一刻,主时钟时间值是T1+delay,而从时钟时间值是T2,因此主、从时钟之间的偏差offset为:

offset=T2-(T1+delay)

(3)

得到主、从时钟偏差之后,接下来就可以调整从时钟的时间值,消除主、从时钟的偏差,最终完成主、从时钟的同步。

2 软件授时偏差较大原因分析

由同步原理可知,PTP协议主从之间会交换带有时间戳的消息、记录同步消息和延迟请求消息的收发时间,通过这些时间值计算出主从偏差和路径延时,进而完成时钟同步,所以时间戳的精度很大程度上决定了主、从时钟的同步精度。当使用软件授时方法记录消息的收发时间时,一般是在应用层将时间戳嵌入到事件消息中,如图1所示。带有时间戳的消息会穿过整个网络协议传输栈传送到网卡上,由网卡把消息发送出去。协议栈的处理能力受系统处理能力和系统负载的约束。如果系统处理能力较差或者在短时间内有较多网络数据需要处理,则消息穿过协议栈会花费较长的时间,所以消息在协议栈中的处理时间可能会产生较大的抖动,而且这些抖动的产生具有随机性。那么在计算由协议栈传输延时和物理线路上传输延时组成的路径延时时,就会产生较大的偏差,使得主、从时钟的同步精度大幅降低。

图1 软件授时方法消息传输过程

3 硬件授时方法

消息穿过通信协议栈的处理时间会出现抖动,其原因是软件授时方法在应用层标记时间戳,之后消息还需要经过通信协议栈处理。所以只有在尽量低的协议层标记时间戳才能消除这个过程带来的风险。笔者采用BCM54296芯片来实现精确时钟同步技术的硬件授时方法。芯片实现授时精度可以达到1ns,很好地支持了精确时钟同步技术的高精度要求。BCM54296芯片物理层获取和标记时间戳的原理如图2所示。

BCM54296芯片包含一个网络同步引擎(NSE),NSE由一个时间戳计数器(NCO)和锁相环(DPLL)组成。NCO和DPLL的状态可以通过帧脉冲来初始化或者更新。帧脉冲的产生方式有两种,一种是通过CPU写寄存器来模拟帧脉冲的产生,另外一种是通过GPIO直接产生帧脉冲。通过CPU模拟帧脉冲的产生会对寄存器进行多次读写操作,所耗时间会增大芯片寄存器中时间值与CPU时间值之间的偏差,所以笔者采用通过GPIO直接产生帧脉冲的方法来减小偏差。如果只在初始化时同步芯片与CPU的时间,由于CPU晶振频率与BCM54296芯片晶振频率的不同会导致NCO中的时间与CPU时间的偏差越来越大,所以笔者通过周期性地同步芯片与CPU的时间,使得二者之间的偏差变化呈锯齿状[3],如图3所示。

主时钟发送同步消息和从时钟发送延迟测量请求消息的时刻控制在芯片与CPU时钟同步之后,使得发送消息中的时间戳与真实时间之间的偏差可以忽略不计,但是接收同步报文和延迟请求报文的时间无法确定,所获取的时间戳可能和CPU时间之间存在较大的误差,为了实现更高的同步精度,较好的办法是对芯片获取的时间戳进行补偿,把补偿后的计算值作为接收时间值来使用。

图2 BCM54296芯片获取和标记时间戳原理

图3 CPU、芯片时间曲线

下面详细说明CPU与芯片时间值补偿量的计算方式。由于在每个周期开始时都进行了CPU与芯片的时钟同步,所以从理论上认为它们的偏差为零。在这个条件下只需要求解Cs(t)对应的真实时间段t,通过几何关系即可得到CPU的时间值Cc(t)。设第n个同步周期开始时刻,CPU与芯片时钟的时间值均为T(n) ,而结束时刻芯片的时钟时间值为T2(n) 。根据图3,有:

Val(n)=T2(n)-T(n)

(4)

由几何关系得:

(5)

即 :

(6)

可以在同步周期开始时将T(n)记录下来,但Val(n) 值的获取是在Cs(t)时刻之后,所以目前是未知量。由以上的分析过程可以知道,不同的同步周期中,芯片时间值的变化量Val在理论上是相等的。因此可以通过之前几个周期所记录的Val值来估计Val(n)。但是在实际情况下,在不同周期内的Val值会出现小幅变化,所以采用对多个Val值求均值的方法来减小抖动的影响。结合以上分析有:

(7)

结合式(6),最后得:

(8)

同理,可以由几何关系得到:

(9)

(10)

最终求得经过补偿的t时刻可用时间值:

(11)

4 实验验证与结果分析

为验证以上提出的硬件授时方法的实际效果,笔者在真实环境中搭建了时钟同步技术运行模型。该模型会按照第1节中描述的精确时钟同步技术的同步过程对两个时钟进行时钟同步。

在此模型上,分别使用软件授时方法和硬件授时方法。在硬件授时的实验过程中读取接收同步报文和延迟请求报文的时间值,按照式(11)进行偏差补偿。分别得到如图4所示的主、从同步精度。图4中,使用软件授时方法同步精度在500ns线上下存在较大的波动;使用硬件授时方法并且对所使用时间值进行补偿之后,同步精度在300ns线上下有较小的波动。 由此说明以上的硬件授时方法达到了较好的效果,能够切实提高主、从时钟的同步精度而且可以保证较小的波动幅度。

图4 软、硬件授时方法同步精度比较

5 结束语

精确时钟同步技术以其成本低、精度高的优势而得到了广泛应用。但大多采用软件授时的方法使得主从时钟同步精度不高而且会产生较大波动。 笔者通过采用硬件授时方法并对所使用时间值进行补偿,提高了同步精度,减小了波动范围。验证结果表明:硬件授时方法可以有效提高主、从时钟的同步精度,减小同步精度的波动,可为工业生产中精确时间同步方案的设计提供参考。

[1] 卓岩,白涛.基于 PTP 协议的提高工业以太网时钟同步精度的方法研究[J].化工自动化及仪表,2016,43(8):949~952.

[2] 尹捷,胡立生.统计方法在IEEE 1588同步协议中的应用[J].化工自动化及仪表,2016,43(5) :505~507.

[3] 张涛.冗余工业以太网时钟同步方法研究[D].上海:上海交通大学,2014.

[4] IEEE Std 1588, Precision Clock Synchronization Protocol for Networked Measurement and Control Systems[S]. New York: Institute of Electrical and Electronic Engineers, 2008.

TheMethodofPrecisionTimeSynchronizationBasedonHardwareTiming

ZHAO Han-qi, HU Li-sheng

(SchoolofElectronicInformationandElectricalEngineering,ShanghaiJiaotongUniversity)

The working principle of precision time synchronization was introduced; and the software timing method applied in the current implementation process can lead to great deviation was explained. Having BCM54296 chip adopted for hardware timing was implemented and a method to improve hardware timing accuracy was proposed. Comparing synchronization precision of these two methods proves the effectiveness of hardware timing method.

time synchronization, hardware timing, BCM54296, synchronization precision

赵汉启(1993-),硕士研究生,从事控制工程的研究,zhaohanqi93@sina.com。

TP39

A

1000-3932(2017)06-0595-05

2016-11-20,

2016-12-21)

猜你喜欢
时钟消息偏差
别样的“时钟”
古代的时钟
如何走出文章立意偏差的误区
两矩形上的全偏差
一张图看5G消息
有趣的时钟
时钟会开“花”
关于均数与偏差
消息
消息