基于ptp协议与反射内存网的时钟同步方法

文档序号:7556256阅读:232来源:国知局
专利名称:基于ptp协议与反射内存网的时钟同步方法
技术领域
本发明涉及虚拟仿真试验技术领域。
背景技术
在虚拟仿真试验中,一个分布式系统,各设备的工作需要一个全局时钟来进行协调。另外为了确定系统中各种事件发生的先后、协调各种消息的传输等,以控制和监视系统的状态,也需要将系统中各个部件的局部时间统一,进行时钟同步。PTP (Precision Time Protocol)协议是IEEE-1588中定义的一种精密时钟同步协议,给出了一种局域网内的时钟同步方法,PTP协议主要针对于相对本地化、网络化的系统,子网较好,内部组件相对稳定的环境设计的。由于PTP协议实现简单,占用的网络和计算资源少等优点使其广泛应用于分布式系统中。PTP协议可以采用硬件实现,也可以采用软件实现。当采用硬件实现时可以达到ns级的精度,采用软件实现时通常可以达到ms级的精度。—个简单的基于PTP协议时钟同步机制的系统包含一个主时钟和多个从时钟,时间同步主要通过分别在发送方和接收方对包含时间的信息打时戳,并在接收方根据时戳计算出主从时钟的时间偏差和时间信息在网络中传输的延时来实现。为了管理这些时间信息,PTP协议定义了四种信息类型,包括Sync (同步信息)、FollowUp (Sync之后的跟随信息)、DelayReq (延时校正申请信息)和DelayResp (对延时校正申请信息的响应)。主从时钟的差异主要由时钟偏差和信息包在网络传输中的延迟构成,PTP协议时钟同步机制中,主从时钟的同步主要分为两个阶段,偏移校正和延时校正阶段,具体流程如图3所示。

在偏移校正阶段,即图中的A阶段,首先由主时钟在TM1时刻发出Sync信息到从时钟,在Sync信息中包含了一个时间戳,描述了数据发出的预计时间。由于信息包含的是预计的发出时间而不是真实的发出时间,所以Sync信息真实的发出时间被测量后在随后的Fol1wUp信息中发出。在从时钟一方,记录下Sync信息真实的接收时间TS1,由TM1和TSi可以计算出从时钟相对于主时钟的时间偏差offset:offset = TM1-TS1可由该时间偏差来校正从时钟。但由此计算出来的结果仍然包含有时间信息在网络中传输造成的延时,因此还需要进行延时校正。在延时校正阶段,即图中的B阶段,首先由从时钟发出DelayReq信息到主时钟,从时钟记录下发送的准确时间TS2,主时钟记录下接收的准确时间TM2,并将该时间通过DelayResp返回到从时钟。从时钟通过这两个时间计算出网络延时delay:delay = (TM2-TS2) /2从时钟利用该值来进行校正。此时经过偏移校正和延时校正,主从时钟达到同步。在某虚拟仿真试验系统中,利用以太网和反射内存网进行通讯。以太网存在网卡的缓存效应、网络不平稳等影响因素,对时钟同步精度影响较大。网络中在进行信息传输时,信息首先送到本地网卡的缓冲区,并在网络空闲时发送到接收方网卡的缓冲区。这样在发送方连续发送多个信息到接收方时,信息首先在缓冲区缓存,包括发送方网卡的缓存和接收方网卡的缓存,在接收方接收信息时可能会同时收至IJ所有的信息。这直接导致了信息接收时间测量不准确,造成时间同步的失效。windows操作系统采用时间片轮转机制对进程进行调度,网络的不平稳性具有不确定性,而且是无法控制的,使得无法控制时间同步进程何时被调度,何时停止,造成了信息包在网络中传输的延迟不可预测影响时钟同步的精度,因此在windows操作系统下采用软件并不能实现亚毫秒精度的同步。

发明内容
本发明为了解决现有的通信方法由于网络的不平稳性使得时钟同步的精度低的问题,提出了基于PTP协议与反射内存网的时钟同步方法。基于PTP协议与反射内存网的时钟同步方法,该方法适用于对虚拟仿真试验中主机和节点设备之间的时钟同步,主机和节点设备上插一块反射内存卡,反射内存卡之间通过光纤进行数据传输,所述方法的具体过程为:步骤一:在主机中基于PTP协议构建时钟作为主时钟,在节点设备中基于PTP协议构建时钟作为从时钟;步骤二:主时钟在TM1 [I]时刻发送Sync信息到从时钟,并记录下发送的准确时刻TM1 [I],随后在FollowUp信息中将Sync信息发送的时刻TMjl]发送到从时钟,从时钟接收到Sync信息后记录下接收时刻TS1 [I],并返回确认信息OK ;步骤三:重复步骤二中的过程N次,得到N个数据Data [1: N],其中N为大于I的正整数,从时钟得到N个时钟信息的发送时刻TM1 [1:N]和N个时钟信息的接收时刻TS1 [1:N],将每个发送的时刻TM1 [1: N]和对应的接收时刻TS1 [1: N]做差,得到主从时钟的N个偏移值Offset[1:N];·步骤四:对N个偏移值0ffset[l:N]进行过滤处理,得到过滤后的数据Data' [1:P];步骤五:对过滤后的数据Data' [1:P]进行直线拟合,得到一个对所有数据的最佳拟合值offset,并利用该值对从时钟进行偏移校正;步骤六:由从时钟发送DelayReq信息到主时钟,并记录下准确的发送时刻TS2[1],主时钟收到DelayReq信息后记录下接收时刻TM2[I],并在随后的DelayResp中将TM2[I]返回给从时钟;步骤七:重复步骤五中的过程M次,得到M个数据Data[l:M],其中M为大于I的正整数,从时钟得到M个时钟信息的发送时刻TM2 [1:M]和M个时钟信息的接收时刻TS2[1:M],对两个数组做差得到M个主从时钟的延时信息Delay [1:M];步骤八:对M个主从时钟的延时信息Delay [1:M]进行过滤处理,获得过滤后的数据 Data' [1:Q];步骤九:对过滤后的数据Data' [1:Q]进行直线拟合,得到一个对延时信息的最佳拟合值delay,并利用该值对从时钟进行延时校正,即完成了一次主时钟和从时钟同步。本发明通过对测量数据进行处理,获取有效数据,然后以PTP协议时钟同步机制为基础,提出了一种改进的时钟同步方法,并利用反射内存网实现主时钟和从时钟的数据交互,通信完全不占用CPU时间,节点之间数据传输延迟在百纳秒量级,结合基于CPU定时器构造的时钟,实现了虚拟仿真试验系统中各仿真节点之间的亚毫秒精度的时钟同步。


图1是具体实施方式
一所述的基于PTP协议与反射内存网的时钟同步方法中的原理图;图具体实施方式
一所述的反射内存网的硬件结构连接示意图;图3是现有的基于PTP协议的时钟同步的原理图;图4是具体实施方式
一所述的基于PTP协议与反射内存网的时钟同步方法的流程图。
具体实施例方式具体实施方式
一:参见图1和图4说明本实施方式,本实施方式所述的基于PTP协议与反射内存网的时钟同步方法,该方法适用于对虚拟仿真试验中主机和节点设备之间的时钟同步,主机和节点设备上插一块反射内存卡,反射内存卡之间通过光纤进行数据传输,所述方法的具体过程为:步骤一:在主机中基于PTP协议构建时钟作为主时钟,在节点设备中基于PTP协议构建时钟作为从时钟;步骤二:主时钟在TM1 [I]时刻发送Sync信息到从时钟,并记录下发送的准确时刻TM1 [I],随后在FollowUp信息中将Sync信息发送的时刻TMjl]发送到从时钟,从时钟接收到Sync信息后记录下接收时刻TS1 [I],并返回确认信息OK ;步骤三:重复步骤二中的过程N次,得到N个数据Data [1: N],其中N为大于I的正整数,从时钟得到N个时钟信息的发送时刻TM1 [1:N]和N个时钟信息的接收时刻TS1 [1:N],将每个发送的时刻TM1 [1: N]和对应的接收时刻TS1 [1: N]做差,得到主从时钟的N个偏移值Offset[1:N];步骤四:对N个偏移值0ffset[l:N]进行过滤处理,得到过滤后的数据Data' [1:P];步骤五:对过滤后的数据Data' [1:P]进行直线拟合,得到一个对所有数据的最佳拟合值offset,并利用该值对从时钟进行偏移校正;步骤六:由从时钟发送DelayReq信息到主时钟,并记录下准确的发送时刻TS2[1],主时钟收到DelayReq信息后记录下接收时刻TM2[I],并在随后的DelayResp中将TM2[I]返回给从时钟;步骤七:重复步骤五中的过程M次,得到M个数据Data[l:M],其中M为大于I的正整数,从时钟得到M个时钟信息的发送时刻TM2 [1:M]和M个时钟信息的接收时刻TS2[1:M],对两个数组做差得到M个主从时钟的延时信息Delay [1:M];步骤八:对M个主从时钟的延时信息Delay [1:M]进行过滤处理,获得过滤后的数据 Data' [1:Q];步骤九:对过滤后的数据Data' [1:Q]进行直线拟合,得到一个对延时信息的最佳拟合值delay,并利用该值对从时钟进行延时校正,即完成了一次主时钟和从时钟同步。
本发明采用反射内存网实现主时钟和从时钟之间的数据交互,由于传统的网络技术,如以太网在实时应用中存在以下几方面的缺点:(I)数据传输速率不高;(2)在网络负载较大时,网上数据传输延迟较大且延迟具有不可预期性;(3)网络通信需要借助许多网络协议来完成,降低了通信效率。反射内存网是基于环形或星型的高速复制的共享内存网络,它支持不同总线结构的多计算机系统,并且可以使用不同的操作系统来共享高速的、稳定速率的实时数据。反射内存网实际上是在每台被连接的计算机里都安装一块反射内存卡,各反射内存卡通过光纤或者同轴电缆进行连接。这些卡形成一个菊花链环状结构,反射内存卡之间通过自定义的网络协议进行通信,各个反射内存卡在逻辑上共用一段地址。反射内存网络的示意图如图2所示,反射内存网是一种高速、实时、确定性的网络,可以有效地解决实时系统中数据传输的实时性问题。反射内存网实际上是作为双端内存来工作。每个反射内存卡都占有一段内存地址,本地主机对它的反射内存地址空间进行写操作,该地址空间是本地内存的一个端口,反射内存板自动将这个新的数据从它的另一个端口传输出去,这个端口是连接在环状体系结构的网络上的光纤或电缆,网络中的下一个反射内存卡接收到这个新的数据,该数据和相应的内存地址被广播到网上所有其他反射内存板并存储在相同的位置。于是计算机将数据写入其本地反射内存卡后在极短的时间内,网上所有计算机的CPU都可以访问这个新数据。改进的时钟同步方法,利用多次偏移校正和延迟校正,进一步消除了网络延迟、Windows操作系统调度延迟等因素对时钟同步的影响。利用反射内存网实现数据通讯,避免了以太网卡缓存效应、网络不平稳等影响因素影响,是实现时钟同步的又一有效保障。
具体实施方式
二:本实施方式是对具体实施方式
一所述的基于PTP协议与反射内存网的时钟同步方法的进一步限定,`所述步骤一中的在主机中基于PTP协议构建时钟作为主时钟和在节点设备中基于PTP协议构建时钟作为从时钟的方法相同,所述在主机中基于PTP协议构建时钟作为主时钟的方法为:通过Windows系统的API接口获取主机的CPU的时钟震荡频率和定时器的计数值来构造一个逻辑时钟,t = t。+ Δ t其中,h表示主机的CPU定时器的计数值,Δ t表示逻辑时间相对于CPU计数的偏差,t表示当前逻辑时间,即为构建的以逻辑时间为单位的主时钟,当需要使用物理时间单位来度量逻辑时间时,通过转换公式t’ = t*106/f将逻辑时间转换为物理时间,其中t’为以us为单位的逻辑时间,即为构建的以物理时间为单位的主时钟,f为主机的CPU时钟震荡频率。对于一个系统来说,时钟可分为两种,物理时钟和逻辑时钟。物理时钟又称为绝对时钟或者墙上时钟,对应于现实世界中的时间。通常通过计算机内置的时钟芯片可以获得ms级别的物理时钟。相对时钟是指系统独有的时钟,独立于物理时钟,但和物理时钟有一定的换算关系。当系统与外界无相互作用时,系统内的时钟可以采用逻辑时钟来实现。逻辑时钟实现简单,方法多样,并且可以满足大多数场合的要求,许多系统中都采用了逻辑时钟。为了实现高精度的定时,例如微秒级别的定时,一般采用高频率的晶振实现。其实计算机CPU本身就带有一个高精度的时钟,对于一个2GHz的CPU来说,这个时钟的定时精度可达0.5ns。并且Windows系统提供了一些接口来获取CPU的震荡频率和计算机开机以后定时器的计数值。虽然CPU的时钟频率很高,但由于获取CPU的计数值也需要消耗时间,所以并不能达到CPU时钟级别的精度。经实验表明,由该方法构造的逻辑时钟可以达到Ius的精度。这可以满足大多数场合的需要。
具体实施方式
三:本实施方式是对具体实施方式
一所述的基于PTP协议与反射内存网的时钟同步方法的进一步限定,步骤四中所述的对N个偏移值Offset [1: N]进行过滤处理,获得过滤后的数据Data' [1:P],所述Data' [1:P] = fm, n(Data[l:N]),其中P =N-m-n,m和n均为小于N的正整数,f;,n(Data[1:N])表示对测量的N个数据进行排序,剔除m个小值和η个大值的函数。本实施方式所述m个小值和η个大值为m个小值表示由小到大排列的N个数据中,数小这一侧的m个值,η个大值为m个小值表示由小到大排列的N个数据中,数大这一侧的η个值,本发明中m和η根据数据量的大小和数据的稳定程度确定,取M = 10、N = 10、η=2、m = 2即可满足亚毫秒精度要求。利用PTP协议,在反射内存网中测得主时钟和从时钟的偏差。测试方法为:主时钟每隔Is向从时钟连续发送10个偏移校正时间信息,结果是每组中连续发送的数据相对稳定,相对偏差约几十us,但会出现一些差异较大的特殊值,而组与组之间的数据则差异较大,从几ms到几百ms不等,这样无法断定哪些数据对于时钟同步是可靠的,所以对数据进行过滤处理能够剔除奇异数据,极大地降低了由于windows操作系统进程调度机制带来的影响。
具体实施方式
四:本实施方式是对具体实施方式
一所述的基于PTP协议与反射内存网的时钟同步方法的进一步限定,步骤八中所述的对M个主从时钟的延时信息Delay [1:M]进行过滤处理,获得过滤后的数据Data ' [1: Q],所述Data ' [l:Q]=fm,n(Data[l:M]),其中Q =和η均为小于M的正整数,fm,n(Data[l:Μ])表示对测量的M个数据进行排序,剔除m个小值和η个大值的函数。
具体实施方式
五:本实施方式是对具体实施方式
一所述的基于PTP协议与反射内存网的时钟同步方法的进一步限定,步骤五所述的对过滤后的数据Data' [1:P]进行直线
拟合的方法,获得水平直线I = C,其中尤=体1)他/[\..’]。本实施方式所述的对过滤后的数据进行直线拟合是将过滤后的P组数据求和后取平均值。
具体实施方式
六:本实施方式是对具体实施方式
一所述的基于PTP协议与反射内存网的时钟同步方法的 进一步限定,步骤九所述的对过滤后的数据Data' [1:Q]进行直线拟合的方法,获得水 平直线y = D,其中:
权利要求
1.基于PTP协议与反射内存网的时钟同步方法,该方法适用于对虚拟仿真试验中主机和节点设备之间的时钟同步,主机和节点设备上插一块反射内存卡,反射内存卡之间通过光纤进行数据传输,其特征在于,所述方法的具体过程为: 步骤一:在主机中基于PTP协议构建时钟作为主时钟,在节点设备中基于PTP协议构建时钟作为从时钟; 步骤二:主时钟在TMi[l]时刻发送Sync信息到从时钟,并记录下发送的准确时刻TM1 [I],随后在FollowUp信息中将Sync信息发送的时刻TMjl]发送到从时钟,从时钟接收到Sync信息后记录下接收时刻TS1 [I],并返回确认信息OK ; 步骤三:重复步骤二中的过程N次,得到N个数据Data[l:N],其中N为大于I的正整数,从时钟得到N个时钟信息的发送时刻TM1 [1:N]和N个时钟信息的接收时刻TSJl = N],将每个发送的时刻TM1 [1: N]和对应的接收时刻TS1 [1: N]做差,得到主从时钟的N个偏移值Offset[1:N]; 步骤四:对N个偏移值0ffset[l:N]进行过滤处理,得到过滤后的数据Data' [1:P];步骤五:对过滤后的数据Data' [1:P]进行直线拟合,得到一个对所有数据的最佳拟合值offset,并利用该值对从时钟进行偏移校正; 步骤六:由从时钟发送DelayReq信息到主时钟,并记录下准确的发送时刻TS2[I],主时钟收到DelayReq信息后记录下接收时刻TM2 [I],并在随后的DelayResp中将TM2 [I]返回给从时钟; 步骤七:重复步骤五中的过程M次,得到M个数据Data[l:M],其中M为大于I的正整数,从时钟得到M个时钟信息的发送时刻TM2 [1: M]和M个时钟信息的接收时刻TS2 [1: M],对两个数组做差得到M个主从时·钟的延时信息Delay [1:M]; 步骤八:对M个主从时钟的延时信息Delay [1:M]进行过滤处理,获得过滤后的数据Data' [1:Q]; 步骤九:对过滤后的数据Data' [1:Q]进行直线拟合,得到一个对延时信息的最佳拟合值delay,并利用该值对从时钟进行延时校正,即完成了一次主时钟和从时钟同步。
2.根据权利要求1所述的基于PTP协议与反射内存网的时钟同步方法,其特征在于,所述步骤一中的在主机中基于PTP协议构建时钟作为主时钟和在节点设备中基于PTP协议构建时钟作为从时钟的方法相同,所述在主机中基于PTP协议构建时钟作为主时钟的方法为: 通过Windows系统的API接口获取主机的CPU的时钟震荡频率和定时器的计数值来构造一个逻辑时钟,t = t0+ Δ t 其中,h表示主机的CPU定时器的计数值,Λ t表示逻辑时间相对于CPU计数的偏差,t表示当前逻辑时间,即为构建的以逻辑时间为单位的主时钟, 当需要使用物理时间单位来度量逻辑时间时,通过转换公式t’ = t*106/f将逻辑时间转换为物理时间, 其中t’为以us为单位的逻辑时间,即为构建的以物理时间为单位的主时钟,f为主机的CPU时钟震荡频率。
3.根据权利要求1所述的基于PTP协议与反射内存网的时钟同步方法,其特征在于,步骤四中所述的对N个偏移值Offset[l:N]进行过滤处理,获得过滤后的数据Data' [1:P],所述 Data' [1:P] = fm, n(Data[l:N]),其中 P = N-m-n, m 和 η 均为小于 N 的正整数,fm,n (Data [1: N])表示对测量的N个数据进行排序,剔除m个小值和η个大值的函数。
4.根据权利要求1所述的基于PTP协议与反射内存网的时钟同步方法,其特征在于,步骤八中所述的对M个主从时钟的延时信息Delay [1: Μ]进行过滤处理,获得过滤后的数据Data' [1:Q],所述 Data' [1:Q] = fm,n(Data[l:M]),其中 Q = M-m_n,m 和 η 均为小于 M 的正整数,fffl,n(Data[l:M])表示对测量的M个数据进行排序,剔除m个小值和η个大值的函数。
5.根据权利要求1所述的基于PTP协议与反射内存网的时钟同步方法,其特征在于,步骤五所述的对过滤后的数据Data' [1:P]进行直线拟合的方法,获得水平直线y = C,其中=
6.根据权利要求1所述的基于PTP协议与反射内存网的时钟同步方法,其特征在于,步骤九所述的对过滤后的数据Data' [1:Q]进行直线拟合的方法,获得水平直线y = D,其中:
全文摘要
基于PTP协议与反射内存网的时钟同步方法,涉及虚拟仿真试验技术领域。本发明解决了现有的通信方法由于网络的不平稳性使得时钟同步的精度低的问题,提出了基于PTP协议与反射内存网的时钟同步方法。该方法适用于对虚拟仿真试验中主机和节点设备之间的时钟同步,主机和节点设备上插一块反射内存卡,反射内存卡之间通过光纤进行数据传输,步骤一构建主从时钟;步骤二偏移校正阶段步骤三重复偏移校正;步骤四数据处理算法得到偏移值;步骤五得到最佳拟合值;步骤六延时矫正阶段;步骤七重复延时矫正;步骤八数据处理算法得到延时值;步骤九得到最佳拟合值,完成主时钟和从时钟的时钟同步。本发明适用于虚拟仿真试验。
文档编号H04L7/00GK103248471SQ20131019222
公开日2013年8月14日 申请日期2013年5月22日 优先权日2013年5月22日
发明者魏长安, 邓舒予, 宋波, 杨京礼, 姜守达 申请人:哈尔滨工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1