APP下载

IEEE 1588标准下准确时间值的获取方法

2014-08-02胡立生

化工自动化及仪表 2014年10期
关键词:晶振时钟消息

张 涛 胡立生

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

大型工业生产系统会使用大量的控制器和仪表,这些控制器和仪表通常内置有时钟,因此整个系统内往往存在多个独立运行的时钟。但是生产的各个环节具有严格的时间先后顺序,一旦各个设备时间不统一,很可能导致顺序错乱,从而引发事故。所以为保证生产过程的协调有序,必须让整个系统内的所有时钟遵循同一个时间基准,即实现时间同步。目前时间同步技术已经在工业生产中得到了广泛的应用,如文献[1]中的30万t聚丙烯生产线及文献[2]中的三塘湖管道输油管道SCADA系统等。

IEEE 1588标准,又称精确时钟同步协议,描述的是一种可以利用普通工业通信网络,在两个时钟之间通过交换数据包,实现纳秒级精度的时间同步策略。在现有的时间同步策略中,无论从实现成本,还是从同步精度上看,IEEE 1588标准都是较好的选择,所以该标准一经颁布,便在实际生产应用中迅速推广开来。

IEEE 1588以每隔一定时间调整一次从时钟的方式来实现主、从时钟同步。目前针对IEEE 1588的研究也基本集中在怎样提高同步精度上,但若将从时钟的时间值不加处理直接作为最终的时间使用值,则无论同步精度如何提高,提供给系统的从时钟时间值都将与主时钟时间值有较大的偏差。针对这一情况,笔者通过计算分析主从时间偏差的变化规律,提出了对从时钟时间值进行偏差补偿,来得到准确时间使用值的方法,并给出了补偿量的具体计算公式。

1 IEEE 1588的同步原理①

IEEE 1588协议是建立在主-从层次结构上的时钟同步机制。该协议首先采用最优主时钟(BMC)算法从所有时钟中选出精确度及稳定性等各项时钟特性指标最优的时钟作为最高主时钟,并在各个时钟之间建立主-从关系。然后使用同步算法将从时钟的时间调整至与其对应的主时钟一致。时钟之间这样一级一级依次主-从同步,最终使得所有时钟的时间都与最高主时钟保持一致,从而实现整个系统的时间基准统一。

可以看出,同步算法是IEEE 1588的核心,正是它保证了主、从时钟之间的高精度同步,其基本执行过程如图1所示[3],包含4个步骤:

a. 主时钟按照设定的同步周期tsync,每隔一定时间向从时钟发送一个“同步”消息,消息中含有该消息的发送时间T1,T1以主时钟为参考时钟测得;

b. 从时钟接收“同步”消息,并记录下接收时间T2,T2以从时钟为参考时钟测得;

c. 从时钟每隔一段时间向主时钟发送一个“延迟测量请求”消息,并记录下该消息的发送时间T3,T3以从时钟为参考时钟测得;

d. 主时钟接收“延迟测量请求”消息,并记下消息的接收时间T4,T4以主时钟为参考时钟测得,然后立即向从时钟回复一个“延迟测量应答”消息,将T4写进消息中传递给从时钟。

图1 IEEE 1588标准同步过程

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

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

(1)

其中Tms为消息由主时钟发送到从时钟所用时间,Tsm为消息由从时钟发送到主时钟所用时间。协议假设Tms和Tsm是相等的,则消息在主、从时钟之间的传递时间delay为:

(2)

“同步”消息被从时钟接收那一刻,主时钟的时间值为(T1+delay),而从时钟的时间值为T2,因此从时钟与主时钟之间的时间偏差Offset为:

Offset=T2-(T1+delay)

(3)

得到主-从时钟之间的时间偏差之后,调整从时钟的时间值,去除时钟偏差,便实现了从时钟的时间值与主时钟的同步。

2 主-从时间偏差产生的原因分析

运行IEEE 1588协议之后,主、从时钟时间值的变化曲线如图2所示[4]。每过一个同步周期tsync,根据计算出的主-从时间偏差,从时钟修改一次时间值,与主时钟同步一次。因此从时钟的时间曲线每隔tsync发生一次阶跃变化,向主时钟的时间曲线靠拢。但是由于时间戳标记不准确及网络延时抖动等原因,同步算法计算出的时间偏差Offset也存在一定误差,不完全等于两时钟之间的真实时间偏差。因此从时钟并不能通过修改时间值达到与主时钟完全同步。从图2上看,在每次阶跃调整时,主时钟时间曲线和从时钟时间曲线之间仍会有微小的间隙存在,这一间隙就是同步误差。

图2 主、从时钟时间曲线

在两次同步之间的这段时间内,主、从时钟各自独立运行,由于两个时钟自身物理特性的差别,时间值会慢慢发生偏离,两条时间曲线逐步分离开来,直到下一次时间同步发生,两者偏差被消除,时间值又一次同步,两条曲线也再次接近。

目前针对IEEE 1588标准的研究主要集中在如何减小同步误差上。但是从图2可以看出,两次同步之间,从时钟和主时钟的偏差会逐渐加大。如果直接将从时钟的时间值作为最终的时间使用值,那么就算同步误差为零,时间使用值和主时钟时间值之间的偏差依旧会很大。所以,两次同步之间的时间偏差也是不容忽视的偏差源。笔者利用适当的时间值修正方法,对从时钟的时间值进行偏差补偿,获得了更接近主时钟时间的从时钟时间使用值。

经分析,主、从时钟之间之所以会产生时间值上的偏差,主要有两个原因[5]:一个是两个时钟初始的时间值不一样,是一项静态偏差,这一偏差在IEEE 1588协议稳定运行之后,基本就得到了消除;还有一个原因就是时钟晶振的实际频率与标称频率不一致。设计系统时使用的是晶振的标称频率,所以理论上主、从时钟是同步的。但晶振的实际频率很难做到与标称值完全一致。这就导致受晶振驱动的两个时钟时间值的增加速率会有所不同,从而造成时间偏差。而且,如果仅仅修正时钟时间值,而不调节晶振频率,那么修正完时间值之后,时间偏差又会出现,而且随着时间的推移,这一偏差会持续加大,所以这是一种动态误差。图2中,两次同步之间,主、从时钟时间曲线的分离体现了这一特点。

下面详细分析由晶振导致的时间偏差随真实时间的变化情况。在真实时间t时刻,时钟m的时间值为Cm(t),晶振频率为fm,两者之间的关系为[6]:

Cm(t)=Pmfmt

(4)

其中,Pm为晶振频率与时间值之间的关系系数,对于特定时钟来说是一个定值。在设计系统时,如需主时钟m和从时钟s同步,则只需Cm(t)与Cs(t)相等即可,代入式(4),得:

Pmfmt=Psfst

(5)

所以设计系统时,只需确定参数Pm和Ps,使其满足下式,理论上即可实现时钟同步:

(6)

但实际上,晶振的实际频率fm′和fs′往往并不等于设计系统时使用的晶振标称值fm和fs,两者之间存在未知的差值d,即:

(7)

(8)

(9)

代入式(5)、(6)得:

(10)

(11)

dm和ds未知,但对特定晶振来说是定值,fm、fs、Ps皆为设计时已知的定值,所以K也是一个定值。因此当两个时钟没有初始偏差时,由晶振造成的时钟时间值偏差是关于真实时间t的正比例函数,换言之,偏差随着真实时间t以固定速率增大。这一理论分析结果也与图3所示的仿真结果吻合。

3 优化的时间值获取方法

一般系统会将从时钟的时间不加处理,直接作为时间使用值提供给使用者。但从第2节的分析已经知道,从时钟的原始时间值与主时钟之间有较大的误差,所以更好的办法是将从时钟原始值进行一定的处理,对主、从时间偏差进行一定的补偿,然后将补偿之后的结果作为时间使用值提供给使用者。

(12)

Kt即主、从时间偏差补偿量,其中K未知,由于只知道从时钟时间值,所以此刻的真实时间t也未知。求出K和t就能算出补偿量。

(13)

而在tend时刻,主、从时钟之间的时间偏差为第2节同步算法求出的Offset,第n个同步周期求出的Offset表示为Offset(n),代入式(11)得:

(14)

综合式(13)、(14)可得:

K(n)(tend-tstart)=Offset(n)

(15)

而tend-tstart就是同步周期tsync,故:

(16)

(17)

其中r为参与估计的同步周期个数,可根据系统的运算能力适当选取。结合式(16)得:

(18)

Var(n)=T2(n)-Tinit(n)

(19)

根据图2,由几何关系得:

(20)

即:

(21)

(22)

结合式(21),最后得:

(23)

(24)

(25)

4 仿真验证和结果分析

为检验以上准确时间值获取方法的效果,笔者使用Matlab的Stateflow工具,参照IEEE 1588-2008标准搭建了整个协议运行的仿真模型。该模型完全按照IEEE 1588协议规定的方式进行两个时钟的时间同步。

在此模型上,读取从时钟的时间值,按照式(25)进行偏差补偿,其中r取2。得到的仿真结果如图3所示,补偿之后的从时钟时间使用值基本与主时钟同步,两者仅仅因为同步误差的存在而有一定的间隙,晶振实际频率与标称值不一致导致的偏差基本得到消除。由此说明以上的时间值获取方法达到了理想效果,能够切实提高从时钟时间使用值的精度。

图3 仿真结果

5 结束语

时间同步在工业生产中具有重要意义。IEEE 1588时间同步方式以其低成本、高精度的优势得到了广泛应用。但若直接以从时钟时间值作为时间使用值,则将与主时钟时间值产生较大的偏差。笔者通过对从时钟时间值进行补偿,解决了这一问题。仿真结果表明:这一时间值获取方法能够切实提高时间使用值的精度,可为工业生产中精确时间同步方案的设计提供参考。

猜你喜欢

晶振时钟消息
别样的“时钟”
两非门晶振振荡电路的设计
基于晶振的高性能时间保持方法研究
古代的时钟
一张图看5G消息
晶振失效故障分析
有趣的时钟
时钟会开“花”
控制系统中时序的研究
消息