微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > 一种基于PTP 协议的局域网高精度时钟同步方法

一种基于PTP 协议的局域网高精度时钟同步方法

时间:02-11 来源:互联网 点击:

1 引言

  在分布式系统中, 常常需要一个全局时间, 用来确定系统中各种事件发生的先后、协调各种消息的传输等,以控制和监视系统的状态。这就需要将系统中各个部件的局部时间统一,进行时钟同步。随着分布式仿真系统和试验系统在网络上的广泛应用,如何在网络上提供可靠的时钟服务成为一项重要课题。并且由于系统速度上的要求,同步的精度也成为一项重要指标。

  PTP(PrecisiON Time Protocol)协议是IEEE-1588中定义的一种精密时钟同步协议,PTP 协议主要针对于相对本地化、网络化的系统, 子网较好, 内部组件相对稳定的环境设计的。由于PTP 协议实现简单,占用的网络和计算资源少等优点使其广泛应用于分布式系统中。

  PTP 协议可以采用硬件实现,也可以采用软件实现。当采用硬件实现时可以达到ns 级的精度,采用软件实现时通常可以达到ms 级的精度。当在网络中采用软件实现亚毫秒的精度时,存在多种因素的影响造成了时间同步的不可靠。包括网络的不平稳性、网卡对信息包的缓存效应以及操作系统进程调度的影响,这些因素通常不可预测并且无法控制, 造成时钟同步最终的失效。

  本文中结合计算机自身的特点和PTP 协议时钟同步机制,提出了一种纯软件实现的局域网内高精度时钟同步方法, 通过构造高精度时钟, 采取握手机制以及对测量结果进行处理,实现了局域网内亚毫秒精度的时间同步, 有效解决了各种因素对时钟同步的影响

  2 PTP 协议时钟同步原埋与分析

  一个简单的基于PTP 协议时钟同步机:制的系统包含一个主时钟和多个从时钟,时间同步主要通过分别在发送方和接收方对包含时间的信息打时戳, 并在接收方根据时戳计算出主从时钟的时间偏差和时间信息在网络中传输的延时来实现。为了管理这些时间信息,PTP 协议定义了四种信息类型,包括Sync(同步信息)、FollowUp(Sync 之后的跟随信息)、DelayReq(延时校正申请信息)和DelayResp(对延时校正申请信息的响应)。

  主从时钟的差异主要由时钟偏差和信息包在网络传输中的延迟构成,PTP 协议时钟同步机制中, 主从时钟的同步主要分为两个阶段, 偏移校正和延时校正阶段。具体流程如图1 所示。


图1 PTP 协议时钟同步原理

  在偏移校正阶段, 即图中的A 阶段, 首先由主时钟在1 TM 时刻发出Sync 信息到从时钟,在Sync 信息中包含了一个时间戳, 描述了数据发出的预计时间。由于信息包含的是预计的发出时间而不是真实的发出时间, 所以Sync 信息真实的发出时间被测量后在随后的FollowUp信息中发出。在从时钟一方,记录下Sync 信息真实的接收时间TS1 , 由TM1 和TS1 可以计算出从时钟相对于主时钟的时间偏差offset :


  可由该时间偏差来校正从时钟。但由此计算出来的结果仍然包含有时间信息在网络中传输造成的延时,因此还需要进行延时校正。

  在延时校正阶段, 即图中的B 阶段, 首先由从时钟发出Del ayReq 信息到主时钟,从时钟记录下发送的准确时间TS2 ,主时钟记录下接收的准确时间2 TM ,并将该时间通过DelayResp 返回到从时钟。从时钟通过这两个时间计算出网络延时delay :


  从时钟利用该值来进行校正。此时经过偏移校正和延时校正, 主从时钟达到同步。

  但在实际应用中, 尤其是在网络中采用纯软件实现时,简单采用上述流程进行时钟同步并不能达到亚毫秒的同步精度。这主要是由于网卡的缓存效应、网络的不平稳性以及操作系统进程调度等多方面的影响。

  网络中在进行信息传输时,信息首先送到本地网卡的缓冲区,并在网络空闲时发送到接收方网卡的缓冲区。这样在发送方连续发送多个信息到接收方时,信息首先在缓冲区缓存,包括发送方网卡的缓存和接收方网卡的缓存,在接收方接收信息时可能会同时收到所有的信息。这直接导致了信息接收时间测量不准确,造成时间同步的失效。

表1 时钟偏差测量( 单位: u s 间隔: 1 s )


  相对于网卡的缓存效应,网络的不平稳性和操作系统的进程调度则更复杂一些,因为这两个因素具有不确定性,而且是无法控制的。网络的不平稳性导致了信息包在网络中传输的延迟不可预测, 影响了同步的精度。

而操作系统采用时间片轮转机制对进程进行调度,使得无法控制时间同步进程何时被调度, 何时停止, 造成了软件延时的不可预测。例如, 表1 中的数据是在局域网中测得的几组数据, 表示的是主时钟和从时钟的偏差,单位为us。在测试过程中主时钟每隔1s 向从时钟连续发送10 个偏移校正时间信息,为了保证网络处于一定的活跃状态,网络中的一些计算机开启FTP 下载。从表1中的数据可以看出, 每组中连续发送的数据相对稳定,相对偏差约几十u s , 但会出现一些差异较大的特殊值,而组与组之

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top