基于GPS的控制系统时间同步

安徽大学学报(自然科学版)基于GPS的控制系统时间同步金刚平,徐欣圻(中国科学院国家天文台南京天文光学新技术研宄所,南京210042)同步算法,实现局域网内不同计算机之间的时间同步。*后文章给出在具体应用中的实例。前言目前,GPS(GlobalPosi

基于GPS的控制系统时间同步
安徽大学学报(自然科学版)基于GPS的控制系统时间同步金刚平,徐欣圻(中国科学院国家天文台南京天文光学新技术研宄所,南京210042)同步算法,实现局域网内不同计算机之间的时间同步。*后文章给出在具体应用中的实例。

前言目前,GPS(GlobalPositionSystem)在导航和定位方面得到了广泛的应用,同时在授时)望远镜的控制系统中,为了实施精确跟踪天体目标,需要一个准确的UTC时间。同时,处于控制系统局域网内部的其他计算机也需要和UTC时间同步。因此,我们决定采用GPS来构建时标系统,并利用网络通讯把得到的准确的UTC时间发布到整个网络中,以实现整个控制系统时间同步1.1时间同步的必要性建立时间服务器,实现网络内计算机之间时间同步的必要性在于:数据分析:在网络应用中,我们从不同的网络节点计算机获取数据。通常在数据包里面,包含有数据到达的时间信号。但只有实现了网络内的时间同步,才可以利用时间戳来获取这些数据之间的关系。

对时间敏感的交易:在股票和货币类对时间比较敏感的交易中,这些活动经常发生在不同的城市,时间的准确性对交易的顺利进行影响很大。

网络安全:很多的局域网安全系统都是基于各个通讯终端的准确时间戳。有一些安全系统通过测试网络延迟来决定是否终止交易。

在实时控制领域:例如我们正在研制的国家重大科学工程项目LAMOST控制系统便是典型一例,其分布式控制局域网内部的时间同步,对于实现精确的协调控制,其作用是不言而喻的。

徐欣圻(944一)男,江苏无锡人,南京天文光学新技术研宄所研宄员,博士生导师。

2GPS时间的获取2.1GPS的信号类型GPS将接收到的卫星导航信息经过串口输出,分为两种格式。一种是NMEA―0183(美国国家海洋电子协会指定的通讯标准)一种是洛克维尔二进制数据格式。NMEA―0183格式为ASC码,比较易读,对一般性的用途使用比较方便。但是如果需要详细的数据或者精确的时间信息,则必须使用洛克维尔二进制格式。洛克维尔二进制格式包括的信息有三种类型:因为目的是实现时间同步,所以我们利用其中和秒脉冲同步的1108型来获取时间信息,并经过处理后输出。

2.2信号的接收和处理1108型信号是和秒脉冲同步的时间信号,按照固定格式输出。我们用的GPS接收板每秒输出二十个字节的文件。开始是固定的头文件(十进制的1108)然后是校验位,接下来就是包含有从本周起算到当前时刻这一时间段中的秒数(和UTC―致)。所有的数据调制成二进制的数据流,通过RS232串口输出。我们通过串口接收该数据流后,再经查找和计算得出准确的时间值(准确到秒)并存储。此外,该GPS接收板还提供了标定每一秒开始的1PPS信号(秒脉冲,每秒一个脉冲信号)这个信号和UTC时间同步到几个微秒。为了获取和UTC时间的同步,我们利用1PPS产生中断,在中断程序中,把刚才得到的1108中的秒信号设置为系统时间,这样可以让系统时间和UTC同步到13时间服务器的建立前面讨论了如何获取GPS时间。因为成本的原因,我们不可能给所有的计算机都配置一个GPS硬件接收器。但是,在网络己经建立起来的情况下,可以通过建立一个网络时间服务器,而其他的客户则通过网络连接,从服务器获取时间。要达到这个目的,就必须有一个网络时钟同步协议,通过它,读取服务器系统时钟信号,传送到一个或者多个客户机上。目前用来实现这一功能的协议有NTP网络时间协议(NetworkTimeProtocol)它通过软件来获取网络时间同步,不需要添加任何的硬件设施。

NTP是用来实现网络时间同步的,包括把一台客户机或者服务器的时间同步于另外的服务器或者指定的时钟。在整个internet上,己经有很多的提供NTP服务的时间服务器供我们使用。通过这种手段,可以实现系统时钟和UTC(从GPS获取的时间)同步在数十毫秒左右。

网络时间协议确定服务器时钟和客户时钟的差值。首先,服务器端发送一个带有本机时间戳的数据包给客户端。客户端在接收到数据包的同时,把自己的时间戳复制到数据包里……为1了获取*大程度的精确性,客户端必须知道数据从服务器到本机的传输延迟,从而计算出本机的时间和服务器的差值。因为在单向传输过程中,没有办法去测量传输的时间,除非事先知道了两台机器的时间差。而这个正是我们要获取的。那么如何解决呢,协议通过测量数据传输一个来回所需的时间,然后假设两次的延迟是相同的,这样除以二就是单向传输的延迟时间了。在很多时候,这是一种不错的近似。

网络时间协议可以采用多种方式来实现,这取决协议的设计。目前用的*多的是C/S模式。在这种模式下,客户机通过远程调用(RPC)和服务器取得同步。协议还支持对称模式,就是两台对等的服务器之间可以相同步。此外,当网络流量很大的时候,为了减轻网络传输的负担,可以采用广播的形式让很多机器同步于一个或者多个服务器。但是在这种模式下,因为服务器仅仅发送,客户机只接不发,所以无法估计传输的延迟,从而使精度受损。

4应用目前,在我们LAMOST望远镜控制系统中采用的是实时分布式操作系统QNX.出于精确跟踪天体的需要,要求系统时间和UTC同步到一个毫秒以内。另外,因为与望远镜控制系统直接交互的观测系统采用的是Linux操作系统,而不是QNX;因此这里还存在着两个系统的时间同步问题。根据总体要求,这两个系统之间的同步要求做到10毫秒以内。此外,整个LAMOST局域网内有一些节点用的是Windows系统,实时性要求不强,但提供一个相对准确的是时间也是有必要的。根据以上的要求,我们购买了一个GPS接收板,并利用一台QNX作为服务器端,接收GPS时间。时间服务器通过TCP/IP协议,利用socket和客户机进行通讯,把时间传送过去,并且在服务器端对传输的延迟进行估算,进行校正。因为是在局域网内部,网络传输的延迟很小,而且网络流量相对稳定,所以程序中采用了NTP中的近似的算法,就是用一个传输来回的时间除二来近似单向传输的延迟。实验表明,这种近似可以满足系统的要求。未意图如下。其中Ti和T2分别是服务器两次读取的系统时间,(T2―T1)=RTT(roundtriptime),T(。unent+At为当前时刻加上修正的时间值。

从上面的示意图中,我们可以看出,服务器*后传送给客户机的时间信号是T(ut+At.这里的At就是估计的网络延迟的时间值。这个参数非常重要,因为它决定了客户端计算机的时间和服务器端时间同步的精度。在对网络延迟进行准确的估计后,可以进行补偿。从而减少网络延迟带来的影响。面已经讨论了采用NTp的近算法来计算网络ttp:/M延迟,具体在实时操作系统QNX下面我们是这样实现的。RTCGealtimeclock)是由一个定义为timespec的数据结构来存储的。在需要读取系统时间的时候,只要定义一个需要的时间数据结构,然后调用系统函数clock-gettimeO,就可以获取精确的系统时间信号。要获得一个RTT,必须在服务器和客户端建立连接后,先由服务器发送一个带有本机时间戳的数据包给客户机,然后客户机在得到这个数据包后不做任何处理将它返回给服务器端,服务器在接收到数据包的时候,再次读取本机系统时间,并把两次读取的时间相减,得到的就是一个往返的时间。这时,服务器再把读取的时间和网络延迟的数值一起发送给客户端,客户端接收后再处理。这个延迟的估计可以进行一次,也可以进行多次后,取其均值,作为要补偿的值At.在QNX和Linux系统之间通讯时,得到的一组RTT数值如表1.表1RTT数据(时间单位:ms)通过上述数据可以看出,在进行Linux和QNX之间数据交换的时候,每次的RTT时间在10―22ms之间变化,除以二以后,就是5―11ms的单向传输延迟。而在客户端接收到时间数据后,因为不需要进行数据处理,直接调用系统函数修改时间,所以整个操作时间只在微秒级别。也就是说,客户机和时间服务器的同步精确程度主要取决于网络延迟的数值。通过上述的实验数据,在进行补偿的时候,取单向和网络延迟值作为需要的At.比如当RTT为*大值22ms的时候,则取At=11ms.接下来,服务器把再次读取的时间值加上补偿值发送。因为每一次的传输延迟是不同的,按照表中单向传输延迟*少约5ms来估计,那么因取At=11ms*后的误差只是在6ms左右。完全可以控制在我们要求的10ms以内。如果需要得到更为精确的补偿,可以在程序中多次取样,然后取其均值,比如根据上述表中的数据进行计算,均值大概在8ms左右。如果采取这个值来做补偿的话,误差还可以减少。但是因为取一次RTT估计的误差己经在许可范围内,所以程序中只用一次估计的方法来做。同样在和Windows98之间进行测试的时候,RTT的值在100间变化除以二得到的单向传输延迟为约为取75m为Atr则误差*大pi在30ms以内。

到这里为止,我们详细地讲述了如何通过网络通讯,实现局域网内部的计算机的时间同步,精度可以达到10ms.但是,如果要求更高精度的话,单纯通过网络通讯是很难实现的。这时可以考虑采用其他的办法,其中包括采用专线,把1PPS信号接到各个需要时间同步的计算机上,利用网络通讯传输大概的时间信息,然后利用1PPS来同步。因秒脉冲是准确的秒的起始时刻标记,其误差在几个微秒级,这样可以获取更高的时间精度。

泊祎回收网遵循行业规范,任何转载的稿件都会明确标注作者和来源;

发布者:泊祎回收网,转载请注明出处:https://www.huishou5.net/dianzi/14031.html

(0)
打赏 微信扫一扫 微信扫一扫
泊祎回收网泊祎回收网
上一篇 2021年4月28日
下一篇 2021年4月28日

相关推荐

电话

联系我们

1388-0022-916

在线咨询:点击这里给我发消息

邮件:1395700887@qq.com

工作时间:周一至周日,9:30-18:30,节假日无休

微信
微信
分享本页
返回顶部