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

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

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

间的数据则差异较大,从几ms 到几百ms 不等, 这样无法断定哪些数据对于时钟同步是可靠的。

  经过以上分析可知, 必须对上述因素进行相应处理, 否则无法达到高精度的时钟同步。

  3 基于 PTP 协议的高精度时钟同步方法

  高精度时钟是实现高精度时钟同步的基础, 因此本方法首先构造高精度时钟。在此基础上,通过对PTP 协议的分析,为了解决网卡的缓存效应、网络的不平稳性和操作系统进程调度对时钟同步精度造成的影响, 在PTP 协议基础上引入握手机制, 同时, 采用过滤和直线拟合的方法, 实现亚毫秒精度的时钟同步。

  3.1 高精度时钟的构造

  对于一个系统来说, 时钟可分为两种, 物理时钟和逻辑时钟。物理时钟又称为绝对时钟或者墙上时钟,对应于现实世界中的时间。通常通过计算机内置的时钟芯片可以获得ms 级别的物理时钟。相对时钟是指系统独有的时钟,独立于物理时钟,但和物理时钟有一定的换算关系。

  当系统与外界无相互作用时, 系统内的时钟可以采用逻辑时钟来实现。逻辑时钟实现简单,方法多样,并且可以满足大多数场合的要求,许多系统中都采用了逻辑时钟。

  为了实现高精度的定时,例如微秒级别的定时,一般采用高频率的晶振实现。其实计算机CPU 本身就带有一个高精度的时钟,对于一个2GHz 的CPU 来说,这个时钟的定时精度可达0.5ns。并且Windows 系统提供了一些接口来获取CPU 的震荡频率和计算机开机以后定时器的计数值,因此可以通过这些API 接口来构造一个高精度的逻辑时钟, 并且可向物理时间单位进行转换。

  在这里使用t0 表示CPU 定时器的计数值, △t 表示逻辑时间相对于CPU 计数的偏差,当前逻辑时间t 可由下式构造:


  并且当前逻辑时间t 的修改可通过修改Dt 来实现。

  当需要使用物理时间单位来度量逻辑时间时, 可进行相应的转换。转换公式如下:


  其中t’为以us 为单位的逻辑时间, f 为CPU 时钟震荡频率,该值可由windows 提供的API 来获得。

  虽然CPU 的时钟频率很高,但由于获取CPU 的计数值也需要消耗时间, 所以并不能达到CPU 时钟级别的精度。经实验表明,由该方法构造的逻辑时钟可以达到1us 的精度。这可以满足大多数场合的需要。

  3.2 握手机制

  对于网卡的缓存效应,通过增大两次传输之间的时间间隔并不能有效解决。间隔小起不到隔离两次传输的作用,间隔大,时钟同步又将受到网络的不平稳性和操作系统进程调度的较大影响。而采用握手机制和阻塞的SOCKET套接字可有效解决这个问题。即在接收方收到信息后返回一个确认信息,而发送方只有在收到接收方的确认信息以后才发送下一条信息。这样将两次信息传输进行了隔离,使得接收方不会一下收到发送方的所有信息。

  3.3 时钟同步的时间要求

  网络的不平稳性和操作系统进程调度的影响可能会造成时钟同步的失效。但通过分析发现, 尽管存在这些因素, 实现高精度的时钟同步是可能的。在下面表2 中列出了5 组数据(共测试了10 组,从中随机选择了5 组数据), 测试环境与表1 中数据测试环境是相同的, 同样都采用了握手机制以避免网卡的缓存效应, 只是在测试过程中主时钟向从时钟发送两组数据的间隔为10mS。

  从表中的数据可看出,除去一些差异较大的奇异值,测得的主从时钟偏差是稳定的, 大约几十us 左右,这表明在这一段时间内完成0.1ms 精度时钟同步是可以实现的。

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


  通过以上分析可知, 为了在网络和操作系统相对平稳的情况下完成时钟同步操作,需要同步消耗的时间尽可能的短, 但是为了得到稳定可靠的数据, 又需要有足够的数据以供分析处理。

  3.4 数据处理算法

  为了从测量的数据中获取有效的数据, 需要对数据进行处理。首先, 数据中存在一些差异较大的值, 这需要查找到这部分数据并予以过滤以消除影响。另外, 为了使剩余有效数据的方差最小, 还需要对这些数据进行拟合。

  假设Data [1 : N ]为测量的N 个数据, Data '[1 : M ]为过滤后的数据, 过滤处理过程可按下式进行。其中M = N - m - n。


  fm,n首先对数据进行排序, 这样差异较大的值就排在了数组的两边, 剔除m 个小值和n 个大值, 即可实现对数据的过滤处理。m 和n 为可变参数,根据数据量的大小和数据的稳定程度确定。

  由于数据Data '[1 : M ]趋向于一条水平直线,可利用直线y = C 对数据进行最小二乘直线拟合。在这里即是对这些数据进行均值处理。拟合可按下式进行。


  这样从N 数据中获得最佳拟合值C 。

  3.5 时钟同步完整步骤

  根据以上的结论, 并结合PTP 协议时钟同步机制,可设计出一种性能可靠的时钟同步方案,具体流程如下图所示。

(1) 主时钟在TM1[1]发送Sync 信息到从时钟,并记录下发送的准确时刻

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

网站地图

Top