刘 见 ,靳绍平 ,李 敏 ,李东江 ,聂方明 ,黄建钟 ,丘宏烈
(1.国网江西省电力科学研究院,江西 南昌330096;2.深圳星龙科技有限公司,广东 深圳200240)
随着数字化变电站的发展以及分布式网络的广泛应用,对于系统的时间同步精度和稳定性要求越来越高[1-2]。本文设计实现了时钟对时同步的系统方案和软件实现过程,其基于ADI公司的BF518高性能DSP,包含支持IEEE-1588协议的模块以及具有硬件时间戳功能的 TSYNC模块[3-4]。
基于IEEE-1588协议的主从时钟通过周期性地交互带有时间戳的报文计算出时间偏差和频率偏差,并采用适当的方法调整时钟的时间和频率,从而达到时钟同步的目的。其中报文携带的时间戳的精度是决定时钟对时精度的一个重要因素[5]。
图1所示是一个建立在ADSP_BF518处理器中的完整的兼容IEEE-1588 2008版本的系统。处理器的TSYNC模块探测传入和传出的IEEE-1588消息以及使用硬件标记事件消息的时间戳。IEEE-1588协议栈完成标准要求的消息交换。TSYNC驱动负责读写和调整TSYNC时钟,以及使用MAC控制器驱动发送和接收以太网MAC层(开放式系统互联的第二层)消息。同时也完成控制律和过滤P2P延时测量。以太网PHY芯片采用美国国家半导体的DP83848,因为它具有低的延时抖动特性。采用处理器50 MHz系统时钟作为TSYNC模块的时钟源。
图1 ADSP_BF518中IEEE-1588的实现
ADSP_BF518拥有一个内置的EMAC模块,具有支持由额外的TSYNC模块扩展的包含在IEEE-1588标准协议内的EMAC功能的能力;同时额外的特性是支持以太网中广泛的IEEE-1588应用。图2所示是TSYNC模块的框图。
图2 ADSP_BF518处理器中TSYNC模块框图
ADSP_BF518处理器具有如下特性:
(1)包探测:ADSP_BF518处理器能够探测和提供硬件时间戳给所有的IEEE-1588事件消息,包括传入和传出包。IEEE-1588系统的精度主要依赖于事件消息的时间戳精度和时间戳标记的时机,因为这些影响了路径延时对称和不变的前提要求。TSYNC模块一直监视MAC控制器与以太网PHY之间的硬件接口(即MII层接口),并为任何时候探测到的事件消息生成硬件时间戳。由于物理层对报文传输的延时很小且几乎无延时波动,因而可以得到很高的时间标记精度[6]。事件消息的探测被设计为可编程的,基本可配置为支持IEEE-1558 2002版本或IEEE-1588 2008版本。此外,此种可编程特性允许支持IEEE-1588将来的版本,也可以支持需要时间戳的通用协议,包括配置打入时间戳到进入或传出的每个以太网包。
(2)灵活的时钟源:本地时钟的属性对于IEEE-1588系统的性能至关重要。为满足各种应用的需求,ADSP_BF518处理器允许本地时钟源有3个选项:系统时钟、外部时钟、以太网时钟。如果应用程序有特定的时钟要求,可选择外部时钟以提供定制的时钟源。以太网时钟的选择可以提供很好的精度,如果主从设备连接在同一个回路,因为参考时钟来自以太网线,所以两个设备运行相同的时钟。通常的应用可以选择系统时钟作为时钟源。被选的时钟源也是由TSYNC模块驱动,并通过特定的ClockOut引脚作为处理器的一个输出,被系统的其他部分用来获取本地时间信息。
(3)可调时钟:TSYNC模块的可调时钟是基于加数器的时钟。如图3所示,输入固定的时钟信号,输出一个脉冲变少了的输入信号:每一次输入时钟,加数器的值会被加到累加器,每次累加器的溢出产生的进位会驱动本地时间计数器,时间计数器是以脉冲的数目表征本地时间信息。可以通过改变加数器的值来调整本地时钟的频率,因为加数器决定累加器溢出的频率,从而决定本地时钟计数器增加的频率,因而可达到调整本地时钟的目的。如式(1)所示,Fin是输入时钟的频率,A是加数器的值,Fout是本地时钟频率。
图3 加数器调整时钟
式中:D为主从时钟线路的平均延时(D的存在是因为从时钟得到的时间是主时钟发出包的时间戳,Tmk-Tsk是主从时间差),在系统启动时设为默认值0;Ok为第k次同步时从时钟计算出的与主时钟的偏差;Tmk和Tsk分别为第k次同步时,主时钟和从时钟在底层记录的时间戳;为本次同步修改系统时钟前的PTP系统时间,为本次同步后的PTP系统时间[7]。
在IEEE1588精确时钟协议进行主从时钟同步的过程中,由主时钟先发送同步报文。从时钟收到同步报文时,根据同步报文中的时间戳和线路延时计算出与主时钟的偏差,对本地时钟进行调整。
在同步过程中,要满足一些基本的前提条件。其中包括:同步系统子网内的主从时钟通信传输延时须对称,如不对称不可忽略,则必须做出补偿;时钟内的晶体振荡器应具有足够好的固有稳定性。同步计算方式如下:
主从时钟通过交换时间消息的方式达到同步,存在如下局限性:
(1)主时钟发送携带时间信息的广播报文的时间间隔不能无限大。因为从时钟将使用自身精度低的振荡器打入时间戳到接收到的广播报文,如果报文的时间间隔过大,会导致主从时钟随着时间的推移偏差逐渐增大。如式(1)主从时钟振荡器的特点不同引起的偏差Ok,如果时钟内的晶体振荡器的固有稳定性不够好,那么偏差Ok会更大,间隔时间内产生的同步误差就更大。
(2)如式(1)所示,主从时钟的线路延时存在一定的误差D,增加了额外的偏移值,间隔时间内产生的同步误差也就相应地增加。
(3)如果路径平均延时D在主从时钟间不对称,即无法通过平均值计算得到D,那么随着D的准确度降低,将进一步导致主从时钟间的同步精度降低。
如式(2)中Ok=Tmk+D-Tsk所示,Tmk和Tsk分别为第k次同步时,主时钟和从时钟记录的时间戳,为已知的时间信息。因此只要计算出平均路径延时D,就可以得出Ok,从而最终算出同步后的从时钟时间。
主从时钟的振荡器越相似,则平均路径延时D越准确,那么从时钟同步时间的精度就越高。IEEE-1588协议提供以下方法提高平均路径延时D的准确度:
(1)由于主从时钟设备对同步报文的协议栈处理和操作系统调度存在不确定的延时抖动,造成平均路径延时D变化大,准确度降低,从而降低了同步精度。IEEE-1588提出越往底层打上时间戳,精度越高。从而消除了软件处理带来的不确定性延时抖动,提高了同步精度。
(2)在IEEE-1588第二版本引入的对等时钟中,对不对称的路径延时必须做出修正,提高了平均路径延时D的准确度,从而提高了同步精度。
更新版本的IEEE-1588 2008进一步引入了对等时钟延时机制,同时增加了3个额外的事件消息,分别为PdelayReq、PdelayRespFollowUp和 PdelayResp。图 4所示包括对等时钟的事件消息交互过程以及时间戳产生的时刻和过程。
如图4所示,可以把延时计算分为两个过程:主时钟到从时钟的延时和从时钟到主时钟的延时。
图4 对等延时链路测量
SYNC和FollowUp消息是由主时钟发出,从时钟对消息作出响应并计算出主时钟到从时钟的传输延时[8]。
主时钟设备读取软件时间戳Tm1,插入到SYNC消息中,然后发送此消息。接着在SYNC消息离开设备时,主时钟设备物理层会自动在SYNC消息中的相应字段打上硬件时间戳。SYNC消息到达从时钟时,从时钟物理层打上硬件时间戳,随后被从时钟软件接收,标记软件时间戳Ts1。从时钟软件读取接收硬件时间戳,以便计算主时钟到从时钟的传输延时。如果没有传输延时,则Ts1′=Tm1′+Tms成立,其中Tms是主从时钟间的时间差。1588协议的最终目标就是要补偿该时间差。
SYNC发送完成后,主时钟设备软件读取SYNC消息时间戳单元的离开时间, 并把插入到 F ollowUp消息中,然后在软件时间戳Tm2发送FollowUp消息。FollowUp消息在从时钟设备的软件时间戳Ts2收到。此时,从时钟设备软件有两个时间点和,分别为SYNC到达时间戳和SYNC离开时间戳。主从时钟路径延时Tmsd:
PDlayReq消息由从时钟设备发送,主时钟接收到PDlayReq消息后,发送PDlayResp消息作为回应。通过此过程,从时钟设备可以计算出从时钟到主时钟的传输路径延时。
如图4所示,在时刻Ts3,从时钟设备软件读取当前的系统时间Ts3,并插入到 P DlayReq消息中,然后发送出去。发送完成后,从时钟设备软件读取消息离开设备的硬件时间戳,并等待主时钟设备的回应。
随后PDlayReq消息到达主时钟设备,物理层标记硬件时间戳,且在软件时间戳Tm3时刻被主时钟设备软件处理。软件读取PDlayReq消息到达主时钟设备的硬件时间戳,并插入到 P DlayResp消息中,然后在软件时间戳Tm4时刻发送给从时钟。当从时钟设备软件在软件时间戳Ts4接收到PDlayReq消息时,从时钟设备软件读取该消息硬件时间戳。此时,从时钟设备软件具有两个已知时间戳和,可以得出从时钟到主时钟的延时计算公式:
在式(3)、式(4)中,有一个未知量即主从时钟间的时间差Tms,所以不可能求解出Tmsd或Tsmd。然而 IEEE-1588协议的一个重要的假设为 “传输路径是对称的”,即Tmsd=Tsmd=Td。那么可以得出平均路径延时Td:
从时钟需同步于主时钟的时间,以上所有的计算由从时钟完成。从时钟从主时钟设备的FollowUp消息中得到,接收FollowUp消息后得到自身的接收硬件时间戳,发送PDlayReq消息得到自身的发送硬件时间戳以及从主时钟设备PDlayResp消息中抽取的硬件时间 戳。
计算出从主时钟之间的时延后,需对从时钟作出时间调整。这里包括两方面:(1)需加上与主时钟的绝对偏差以调整自身的绝对时间;(2)调整自身的时钟频率与主时钟同步。
如图5所示,调整从时钟的控制律,从时钟与主时钟之间的差别驱动了可调时钟的运行。可调时钟分两个步骤进行,使得从时钟的时间增长不产生向前跳跃或向后折回:(1)当时间差大于1 s时,从时钟采用绝对时间调整;(2)当时间差在1 s内时,从时钟采用频率调节。
图5 IEEE 1588控制律
测试环境是采用两块时钟板卡直接连接进行主从时钟的对时,主从时钟输出的PPS通过示波器保存处理。图6所示是实验测试数据,横坐标为对时次数,纵坐标为主从时延,单位为ns。
图6 主从时钟对时数据
正值处理后的主从时钟对时数据如表1所示。实验数据表明,主从时钟对时精度在100 ns之内,且有90.26%的数据在50 ns内。
由实验测试数据可知,对时精度满足电力系统应用的要求。可以得出结论:(1)通过本文介绍的在MII层标记硬件时间戳的方式,可以消除操作系统和协议栈处理产生的延时,更精确地标记硬件时间戳,从而提高了对时精度;(2)以太网PHY芯片采用美国国家半导体DP83848,因为它具有低的延时抖动特性,百兆网速的点对点主从对时产生的物理层延时抖动非常微小。
表1 正值处理后的主从时钟对时数据
[1]IEC 61850.Communication networks and systems in substations[S].2003.
[2]国家电网公司.智能变电站技术导则[Z].2009.
[3]王水鱼,魏传均.基于 IEEE 1588的智能变电站时钟同步技术研究[J].微型机与应用,2012,31(23):78-81.
[4]黄健,刘鹏,杨瑞民.IEEE 1588精确时钟同步协议从时钟设计[J].电子技术应用,2010,36(7):91-97,108.
[5]魏丰,孙文杰.IEEE-1588协议时钟同步报文的精确时间标记方法研究[J].仪器仪表学报,2009,30(1):162-169.
[6]胡永春,张雪松,许伟国,等.IEEE-1588时钟同步系统误差分析及其检测方法[J].电力系统自动化,2010,34(21):107-110.
[7]陈炯聪.IEEE 1588同步技术在电力系统中的应用[M].北京:中国电力出版社,2012.
[8]IEEE Std.1588-2008.1588 IEEE standard for a precision clock synchronization protocol for networked measurement and control systems[S].2008.