一种用于直升机模拟器开发系统间的网络时间同步方法与流程

文档序号:14522497阅读:206来源:国知局

本发明涉及分布式计算机领域,具体涉及一种不同操纵系统间的网络时间同步方法。



背景技术:

计算机度量时间的时钟一般分为硬件时钟和操作系统时钟,二者相互关联。操作系统内核一般要和计算机硬件的三个重要部分交互:实时时钟

rtc(realtimeclock)、时间戳计数器(timestampcounter)和可编程定时器。

所有的pc都包含一个称为实时时钟(rtc)的钟,它独立于cpu和其它芯片。这个rtc持续发出滴答,一般cmosram和rtc被集成在一块芯片上。这个rtc可以在irq8上以2hz到32khz之间的频率发出周期性的中断。它也可被编程在rtc达到一个特定值时激活irq8,这样就以一个报警时钟工作。在unix中只用rtc来取得时间和日期,然而它允许处理器对rtc编程。操作系统内核通过ox70和ox71i/o端口进入rtc。

在intelpentium以上级别的cpu中,有一个64位的时间戳计数寄存器,记录了自cpu上电以来所经过的时钟周期数。由于目前的cpu频率都非常高,因此这个部件可以达到纳秒级的计时精度。在pentium以上的cpu中,提供了一条机器指令rdtsc(readtimestampcounter)来读取这个时间戳的数字,并将其保存在edx:eax寄存器对中。unix系统利用这个寄存器取得比可编程定时器更精确的时间值。

计算机一般都设有一个可编程的定时器,它以一定的频率发出中断,这样的中断称为一个时钟滴答(clocktick),在linux和unix中一般将一个时钟滴答定义为0.1ms。每台ibm兼容的计算机至少维持一个可编程定时器,通常由8254芯片实现。操作系统维持一个变量计数开机以来的滴答数,从而计算系统的时间。在每两个时钟滴答的间隔中,操作系统还维持了一个软件时钟变量用来计算两个滴答间隔之间的微秒数。

由于硬件时钟的晶振频率存在一定的误差,软件时钟的稳定度也比较差,受中断请求的稳定度制约,因此无论是硬件时钟还是软件时钟,其守时能力都是有限的。因此要将一台计算机同步到标准时间或是多台计算机的时钟保持同步,必须采用相应的同步方法。目前时钟同步的方法主要分为:硬件同步方法和软件同步方法。

硬件同步的方法主要是采用硬件设备接收标准时间信号,来同步本地计算机时钟。其授时的方式又分为:电话授时;无线电广播授时;卫星授时(gps、glonass等);外部接高精度时钟(枷钟和铯钟等)。硬件同步方法的一个最大优点就是同步精度高,但是硬件设备成本高且不易安装,而且在一个分布式网络中,要在每台计算机上都采用硬件同步的方法显然是不可取的。同时,也可以在一个网络中为其中的几台或一台计算机配备硬件同步设备,通过它们对其它的计算机同步,或者以其中一台计算的时间为标准,对其他计算机进行同步。

软件同步根据同步算法和网络拓扑结构大致可以分为主从式、拜占庭式和收敛函数式类,本模块采用精度更高的主从式同步算法。

主从式(master-slave)时间服务器式时间同步策略:在系统中的若干个节点设立高精度的时间服务器,网络中的其它节点通过网络从服务器处获得时间。客户端以一定的策略修正本地时钟,达到整个系统的时钟同步。本策略原理简单,实现相对容易,但服务器容易成为同步网络中的瓶颈,需要相应的策略消除瓶颈。主从式策略代表性的协议为ntp(networktimeprotocol)网络时间协议和sntp(simplenetworktimeprotocol)简单网络时间协议。由于sntp只能实现秒级的对时精度,不符合本模块毫秒级的性能要求,且直升机模拟器各分系统计算机采用不同的操作系统,故选用ntp协议,实现直升机模拟器各分系统计算机之间的时钟同步。



技术实现要素:

本发明的目的是提供一种用于直升机模拟器开发系统间的网络时间同步方法,用于解决上述问题。

为达到上述目的,本发明采用的技术方案是:一种用于直升机模拟器开发系统间的网络时间同步方法,网络中包括若干台客户端及一个服务端,所述客户端与服务端的操作系统有的相同有的不同,所述不同操纵系统间的网络时间同步方法包括:

一、客户端发送客户端时间t1给服务端,服务端接收客户端发送的本地时间时记为接收时间t2,所述接收时间t2以客户端时间t1为基准;

二、服务端发送服务端时间t3给客户端,客户端接收服务端发送的标准时间t3时记为接收时间t4,所述接收时间t4以服务端时间t3为基准;

三、客户端计算标准时间t,t=t3+δi/2,

其中,网络往返延迟δi,δi=(t4-t1)-(t3-t2),运输时间指标系数θi,θi=[(t3-t4)+(t2-t1)]/2。

进一步的,所述操作系统包括windows操作系统、linux操作系统和uinx操作系统。

进一步的,客户端与服务端的传输协议采用ntp协议进行传输。

本发明的网络时间同步方法通过采用ntp协议,通过软同步方法,解决模拟器各系统计算机的时钟同步问题,且不需额外投入经费支持,在背景直升机飞行模拟器不同操作系统的计算机中采用ntp协议的客户/服务器模式,完成了各系统计算机的时钟同步,为模拟器系统延迟测试提供了保障。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1为本发明一实施例的网络时间同步方法流程图。

具体实施方式

为使本发明实施的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行更加详细的描述。

本发明的网络时间同步方法采用ntp协议的客户/服务器模式建立时钟同步模型,以模型计算机(服务端)的本地时间作为系统的标准时间,模拟器其他系统的计算机(客户端)以模型计算机为基准修正时间。服务端获取本地计算机的系统时间(精确到毫秒),然后再收到客户端报文的时候将本地时间信息发送给客户端进行时间同步,以实现系统内的相对时间的同步。

具体的,参照图1,本发明的网络时间同步方法具体步骤如下:

一、开启网络通信;

二、获取报文时钟的步骤:

2.1)客户端以标准ntp协议格式向服务端发送一个ntp数据包,该数据包包含了客户端的当前本地时钟ti;

2.2)该数据包到达服务端时,服务端首先将接收到该数据包时的服务器标准时间信息存入receivetimestamp(接收时间戳)中,存入时间为t2;

2.3)服务端发送ntp协议应答数据包时,将发送时的当前服务器基准时间信息存入receivetimestamp中,发出时间为t3;

步骤四:客户端收到应答数据包时,将客户端本地的参考时间存入referencetimestamp(本地时间最后更新时间戳)中,客户端接收到的时间t4;

三、计算客户端、服务端主机之间往返延迟δi和服务端相对于客户端在t1时刻的时间偏移量θi:

3.1)计算往返延迟δi,δi=(t4-t1)-(t3-t2);

3.2)计算时间偏移量指标系数θi,θi=[(t3-t4)+(t2-t1)]/2;

四、根据获取的服务器时间计算得到本地计算机时间t=t3+δi/2,最后修改本地计算机时间为计算所得时间,实现网络时间同步的目的。

目前现有的计算机时钟同步方法,主要借助于硬件设备,通过硬同步方式,接收卫星时间进行同步,且硬同步费用昂贵。本发明采用ntp协议,通过软同步方法,解决模拟器各系统计算机的时钟同步问题,且不需额外投入经费支持。

下面以直升机模拟器测试平台网络时间同步为例,对上述方法进行验证,在测试平台中,飞行仿真计算机的本地时间作为系统的相对标准时间,平台中的其他计算机以飞行仿真计算机为基准修正时间。

服务器端为飞行仿真计算机(linux操作系统),客户端为仿真管理计算机(win7操作系统)。测试次数高达1500次,修正时间的平均误差为0.3ms。以下表1列出其中五次客户端计算机时钟同步计算结果和同步误差结果θi。

本实施例中以服务器基准时间不变的情况下进行时间修正。

表1

通过上表可看出,通过本发明的同步方法,其误差θi非常小,可满足测试平台的要求。

本发明的网络时间同步方法在直升机飞行模拟器不同操作系统的计算机中采用ntp协议的客户/服务器模式,完成了各系统计算机的时钟同步,为模拟器系统延迟测试提供了保障。

以上所述,仅为本发明的最优具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1