当前位置:自动化网>北京中新创技术有限公司门户>应用案例>1588和高精度时间同步的方法

1588和高精度时间同步的方法

发布时间:2011-12-12 11:54   类型:技术指导   人浏览
        如配电应用可代表时间标记应用,在这种系统中绝对时间很重要,因为特定事件的定时不仅需要与本系统内的其他事件的时间作比较,而且由于电力系统的连贯性,经常可能需要与外部相关系统的事件的时间作比较。哪一个事件先发生?是电网A先跳闸,还是电网B先跳闸?这些事件相隔多少时间?在实际应用中这些事件可能发生在不同的地理区域。由于这个原因需要绝对时间值的概念,并且这个时间基准需要校正为世界各地使用的常用时间。由于特定的事件和报警是被打上时间标记的,只要这些时间标记具有相同的基准,就可以在事后进行这些事件的时间顺序的分析。
  
另一方面,在控制系统中存在大量基于频率的应用,如通过网络连接的多个分布驱动的协调控制,它们需要精确同时执行,因为它们不能过度拉伸或损坏驱动机架之
间的织物。在这些应用中当这些驱动器是同步工作时过程最佳。如果每个驱动器精确地在同时采样反馈和执行控制算法,同时执行控制命令,那么作用力的施加是协
调的。在这种应用中绝对时间不是很重要,但是控制周期的同步非常重要。
  
解决这些问题的关键是时间同步,时间同步的目的就是要将时间基准准确地传递到各控制点,传递并不困难,难于达到的是传递的精度。在2002年出现的
IEEE1588标准(网络化测量和控制系统的精确时钟同步协议,通常称为Precision Time
Protocol[PTP])在这方面取得了重大进展。使用这个方法并不需要很多资源就可以达到100纳秒级的同步精度。IEEE1588标准出现后得到
业界高度重视,在2002年,2004年举办专业会议,2006年将举办第三次专业会议。工业控制的领先厂商Rockwell,Siemens等立即投入
产品开发,IEC已将它转化为IEC61588-2004标准,这个标准已为Ethernet/IP,Profinet,PowerLink,
EtherCat等基于以太网的总线采用,成为当前普遍采用的方法。
  
1 IEEE1588标准
IEEE1588标准,规定了将分散在测量和控制系统内的分离节点上独立运行的时钟,同步到一个高精度和准确度的协议。这些时钟是在一个通信网络中互相通
信的。按这个基本格式,这个协议要形成树形的管理,使系统内的这些时钟产生一个主从关系。在一个给定子网中包括多个节点,每一个节点都有一个时钟。时钟之
间经由网络连接。IEEE1588规定了子网的划分规则,它是按时钟的级别划分子网,一个子网只有一个1级或2级时钟。在一个子网中只有一个主时钟,从时
钟从主时钟得到时间,所有时钟最终都是从一个称为祖母时钟那里得到它的时间。任何时钟和它的祖母时钟之间的通信路径都是最小跨度树的一部分。
分布时钟的PTP系统由普通时钟和边界时钟组成。普通时钟是只有一个PTP端口的时钟,边界时钟是带两个或多个不同的PTP通信路径的端口的时钟。如一个
可在它的端口上实现PTP协议的交换机就是一个边界时钟。很明显普通时钟只有接收时间的能力,边界时钟具有传递时间的能力。
系统中的一个时钟可选为主时钟,由主时钟向从时钟发送同步报文,通过报文传递时钟信息。图1是一个配置的例子。
  


图1-带祖母时钟、边界时钟和从时钟的系统例子
  
2 PTP时钟的协议模型
图1是PTP子域的例子,最上面的是这个子域的祖母时钟,它是一个GPS(Global Positioning Satellite
System是由美国国防部维持的系统,来自GPS的时间可以达到10~100ns的精度范围)时钟,是这个子域的时间源,下面通过父子结构的时钟端口构
成传递系统。这个结构的根是祖母时钟,这个结构的每一个分支点通常需要一个边界时钟,这点上从根进一步分支方向的所有时钟端口必须是主或父代端口,而有一
个端口是同步到更加靠近根的时钟的从端口。分支到最后(不是根方向)的端口必定是从端口或不活动(Passive)端口(不活动端口的通信路径上,除非另
外规定不应当发生报文)。
  
3 PTP同步机制
IEEE1588定义了四种同步报文Sync,Follow_up ,Delay_Request , Delay_Response , 和一组管理报文。为了简化问题,我们先考虑一个主时钟与一个从时钟的同步过程:
1,主节点每2秒钟(同步报文的间隔是可设置的,这里假设为2秒)向从节点发送一个“同步”(Sync)报文。这个报文是由主节点打上预计的发送时间标记
的报文,但是由于预计的发送时间和实际的发送报文发送本身可能的延迟,实际时间标记不能随“同步”报文一起发送。这个“同步”报文在接收端被从节点打上接
收时间标记(为了提高精度,应在物理层或接近物理层的位置检测、记录和标识发送或接收时间)。IEEE1588规范制定了可选件“硬件辅助”设计来实现这
个精度的提高。
2,第二步主节点向从节点发送一个“跟随”(Follow_up)报文,这个报文包含先前的同步报文准确的发送时间的标记。从节点利用这两个时间标记可以得到它与主节点的延迟,据此可调整它的时钟的频率。
3,从节点向主节点发送“延时请求”(Delay_Request报文(延时请求报文的间隔是独立设置的,一般应较同步报文间隔长),这个报文是由从节点记录它的准确发送时间,由主节点打上准确的接收时间标记。
4,主节点向从节点返回一个“延时响应”(Delay_ Response)报文,这个报文带着先前的“延时请求”报文的准确的接收时间标记,从节点利用这个时间和由它所记录的准确的发送时间,可计算出主节点和从节点之间的传输延迟并调整它的时钟漂移误差。


图2 偏移的校正


图3 传输延时的测量
  
图2,图3例示主节点与从节点之间报文的交换,图中的时间也仅是为了理解假设的,不代表实际情况(IEEE1588中表示时间使用64位数,可以精确地表示绝对时间)。图2表示经过两次同步可以校正主节点与从节点之间的偏差。但无法计算传输延时。
  
经过延时报文的请求和应答以及同步报文的时间标记,可以计算出两个方向的平均传输延时,在以后的计算中就可使用。实际上偏移与延时值的测量是互相影响的,
要经过多次测量和计算,才会逐步收敛到接近实际值。测量时间间隔的选取很重要,选择间隔短时通信负荷较重,间隔过长则不能保证同步的精度,所以同步和延时
的测量间隔应根据同步要求和系统配置选择。
  
IEEE1588并没有规定使用的网络,但从通信的负荷和时间要求来说,以太网是比较适合的网络,当前实际的实现也差不多都是基于以太网的网络。以上四种
PTP报文都是基于IP多点通信(Multicast),它不限于Ethernet,并且可用于任何支持多点通信的总线系统。多点通信提供简单化的优点,
IP地址管理不需要在PTP节点上实现,这样可以进一步扩展到很大数目的PTP节点。
  
4 本地时钟的考虑
PTP协议可能达到很高的同步精度,组成庞大的同步系统,但实际系统可以根据需要达到的精度和功能组建。可以选用1级或2级时钟作为主时钟,也可选用3
级,4级时钟,可按价格和性能需要综合考虑。但作为普通节点本地时钟的振荡器,出于成本考虑基本上只能选择石英晶体振荡器。但石英晶振的频率会随温度,机
械因素和老化漂移,其中最主要的影响是温度,典型的不补偿的石英晶振的温度飘移是1PPM/C0,如果同步间隔是2秒,则温度上升1度在每个同步间隔会产
生2微秒的误差。但通过对晶振的热环境的控制,可以明显降低漂移。
  
从上面论述也可知道如果本地时钟的振荡频率稍有偏离,就会造成时间的偏离,而且时间的偏离是累计的会越来越大,虽然通过同步报文的计算可以校正时间,但本
地时间的频繁校正会打乱本地时钟的连续性,使需要定时处理的任务像PID调节,通过时间段计量脉冲的速度测量等应用陷入混乱。所以在PTP系统内使用频率
可调的晶振,通过频率的校正使本地时钟的频率与主时钟同步。对这种晶振的要求是0.01%精度和0.02%的频率可调范围。同时PTP并不在接收同步报文
后立即校正本地时钟的时间,而是将这个偏移作为一个数据保存在端口中,通过本地时间加偏移值得到正确时间。
  
同时PTP定义的外部定时信号是可选特性,支持这个特性的主时钟另外提供10MHZ频率的曼彻斯特编码的时钟信号,在每秒的边界信号跳变给出秒信号。这个定时信号可用于校正时钟频率。
  
5 关于边界时钟
从上面的同步原理很容易看到,在计算偏移时需要用到传输延时,这个延时是以前得到的测量值计算的结果,如果延时是稳定的,就能代表当次测量的延时,偏移的
测量就准确。反之延时的起伏将直接影响同步的精度。点对点连接可提供最高的精度,带路由器会增加网络抖动,在PTP系统内通过交换机连接时,由于交换机在
传送报文时需要存储和排队,不可避免出现传递的延迟,而且这个延迟随排队报文的多少,报文的大小而变。为了解决这个问题通常使用支持IEEE1588的交
换机作为边界时钟,支持IEEE的交换机内部包含了一个PTP时钟,由于它是直接接收主时钟报文的,它与主时钟的传输延时不存在排队与存储的问题,所以在
需要分支时通常使用带边界时钟的交换机。
  
6 时钟的评价和最佳时钟算法概要
最佳时钟算法是1588协议的很重要的部分,1588虽然是适用于局域网的协议,但它没有限制网络的结构,范围,设备数目和选用。对于任意结构的网络怎样
确定祖母时钟,主时钟,时间基准怎样逐级传递到各节点,以取得尽可能好的时钟精度,就是最佳时钟算法要达到的目标。1588的算法是动态运行的,即在时钟
同步系统运行中根据实时数据不断计算,动态调整各节点和端口的状态,也就会调整时间的传递路线。所以在当前主时钟故障或性能下降时,系统可能会选择其它更
合适的节点替代它作为主时钟。由于这部分内容相对复杂,这里只介绍相关的基础概念。
  
*时钟的分级(clock_stratum)
时钟的级数代表时钟的质量,这个分级是有定义的,每个时钟都应标上它的级别,在最佳主时钟算法中它作为时钟质量的标志进行计算。时钟分级的定义如表1所示:


*时钟标识符(Clock identifier)
时钟标识符指示时钟内在的和可期待的绝对精度及起始时间,时钟标识符值也是表示时钟性能的参数,也是在最佳主时钟算法中要参与运算的参数。时钟标识符的定义如下表所示:(表2见书)
  
*时钟变量(clock_variance)
在1588协议中时钟变量是不断实时测量和计算的值,用于表征时钟当时的品质。这个值是通过Allan均方差公式得到,Allan方差式原用于振荡器频率的统计误差计算,这里用于表示时间的统计误差。(公式见书)
  
s2PTP是多次测量的均方差值,这里xk,xk+1,xk+2是在时间tk,tk+ t,tk+2 t
时刻所作的时间残差测量,t是测量的间隔时间,N是测量的次数。从公式可看出这是统计方差式,公式已排除任何稳定的对称的误差,时钟的漂移并不会影响
方差s2PTP,时钟的不规则跳动直接影响s2PTP值。
s2PTP值再经过取对数,乘以常数和滞环处理才成为运算中使用的时钟变量clock_variance。
*最佳主时钟算法概要
最佳时钟算法(BestmasterClock
Algorithm-简称BMC算法)由两部分组成:一是数据组比较算法,比较两组数据的优劣,可能一组是代表本地时钟的缺省特性的数据,一组代表从某端
口接收的同步报文所包含的信息。这个比较算法一是要对各种数据组进行比较。二是根据数据组比较结果计算每个端口的推荐状态(主站、从站、待机、未校正、只
听、禁止、初始化、故障状态)。
BMC算法是在每个时钟的每个端口本地运行的,它规定数据比较的顺序和判据,所使用的数据除上面提到的时钟级,时钟标识符,时钟变量外还有路径长度、是不是边界时钟等条件。通过比较可得到每个时钟的每个端口当时应取的状态。
如对一个典型的具有N个端口的时钟C0的BMC算法:
-对每一个端口r,比较从连接到这个端口通信路径上的其它时钟的端口接收的合格的Sync报文的数据组,通过数据组比较算法决定这个端口的最佳报文Erbest。
-对C0的N个端口比较各端口的Erbest,决定时钟C0的最佳报文Ebest。
-对C0的N个端口的每一个,根据Ebest,Erbest和缺省数据组D0,用BMC状态决定算法和应用端口的状态机决定端口的状态。
对于PTP子域中每个时钟,每一个端口都运行BMC算法,这个运算是连续不断的,因此能适应时钟和端口的变化。并且1588的BMC算法是分散在每个时钟,每个端口,是独立运行的,因此更容易实现。
7 结束语
在当今经济技术高度发展,系统规模空前巨大,分散控制和网络化的时代,分散时钟的同步越加重要,自2002年1588协议出现后,特别是它可能达到的高精
度和较低的开销为人们实现这个要求提供了现实可行的途径。1588协议是建立在网络基础上的,但它并不需要为时钟传递建立特别的网络,实现1588协议只
需在原有网络上添加时间同步报文,这些报文只占用少量网络资源,它们只是和控制数据包或其他信息包共享网络。由于以上原因高精度时间同步已成为当前工业控
制领域的热点,相信国内业界也会给予足够重视。
联系人:彭理根
手机:13717942816

本文地址:http://www.ca800.com/apply/d_1nrutga2l23im_1.html

拷贝地址

版权声明:版权归中国自动化网所有,转载请注明出处!

留言反馈
  • 评价:

  • 关于:

  • 联系人:

  • 联系电话:

  • 联系邮箱:

  • 需求意向:

  • 验证码:

    看不清楚?