GPS时钟RS232搭建NTP时钟服务器
2015-09-11饶鹏
饶鹏
摘要:高精度时间基准是许多计算机系统运行基础。GPS时钟能提供稳定的高精度授时,其提供的时间同步方式包括NTP、RS232以及IRIG-B。NTP协议是计算机系统内使用最广泛的网络时间同步协议,通过GPS时钟RS232 时间信息搭建NTP时钟服务器,可以实现系统内的时间同步。
关键词:GPS时钟;NTP;RS232;时钟服务器
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2015)17-0213-02
Constructing NTP Time Server by GPS Clocks RS232
RAO Peng
(Technical Sport Centre of ATMB of Southern and Middle China, CAAC, Guangzhou 510405, China)
Abstract: A lot of computer system run based on the high-precision time. GPS clock can provide a stable high-precision time service. And it contains interfaces include NTP, RS232 and IRIG-B for time synchronization. The Network Time Protocol is a popular network time synchronization protocol. By constructing the NTP time server from GPS clocks RS232, time synchronization can be achieved in the computer system.
Key words: GPS clock; NTP; RS232; time server
1 GPS时钟
GPS时钟是基于最新型GPS高精度定位授时模块开发的基础型授时应用产品。能够按照用户需求输出符合规约的时间信息格式,从而完成同步授时服务。其主要原理是通过GPS或其他卫星导航系统的信号驯服晶振,从而实现高精度的频率和时间信号输出,是目前达到纳秒级授时精度和稳定度在1E12量级频率输出的最有效方式。
目前,市面上有各种厂家生产的GPS时钟,使用最广泛的是Symmetricom公司的SyncServer系列[3]。GPS时钟提供时间同步的方式有NTP、RS232、IRIG-B。IRIG-B是GPS时钟中的一种常用串行传输方式,IRIG-B使用BNC接口,物理连续简单、传输距离远,接口标准化,国际通用。NTP采用网络传输,在计算机系统中应用最为广泛;RS232有自己特定的格式,计算机系统要利用RS232的时间数据对时,需要对时间数据进行相应的处理。下面阐述如何利用RS232时间数据,搭建NTP时钟服务器,用于计算机系统内的时间同步。
2 NTP与RS232
NTP全称网络时间协议(Network Time Procotol)。它的目的是在国际互联网上传递统一、标准的时间。具体的实现方案是在网络上指定若干时钟源网站,为用户提供授时服务,并且这些网站间应该能够相互比对,提高准确度。 NTP最早是由美国Delaware大学的Mills教授设计实现的,从1982件最初提出到现在已发展了将近20年,2001年最新的NTPv4精确度已经达到了200毫秒[1]。对于实际应用,又有确保秒级精度的SNTP(简单的网络时间协议)。NTPv3公布于1992年,当前几乎所有的授时网站都是基于NTPv3。NTP协议是OSI参考模型的高层协议,符合UDP传输协议格式,拥有专用端口123。
NTP有3种工作模式:
1)主/被动对称模式:一对一的连接,双方均可同步对方或被对方同步,先发出申请建立连接的一方工作在主动模式下,另一方工作在被动模式下。
2)客户/服务器模式:与主/被动模式基本相同。唯一区别在于,客户方可被服务器同步,但服务器不能被客户同步。
3)广播模式:一对多的连接,服务器不论客户工作在何种模式下,主动发出时间信息,客户由此信息调整自己的时间,此时网络延时忽略,因此在准度上有损失,但可满足秒级应用。
RS232是GPS时钟通过DB9串口向外部传输GPS时间信息。GPS时钟RS232串口输出的时间格式如表1所示。时间输出格式采用ASCII编码,(SOH)DDD:HH:MM:SSQ(CR)(LF),DDD是一年中的第几天,HHMMSS是时分秒,Q是该时间信息的质量,空格则时间信息正常,为X或F则为异常情况。
3 RS232搭建NTP时钟服务器
在计算机系统中,由于某些限制,需要通过RS232串口引接GPS时钟信号。同时,为了实现系统内的时间同步,需要搭建一个NTP时钟服务器,让其他服务器都以NTP方式跟随该NTP时钟服务器。为了实现上述功能,可以使用GPS时钟RS232串口搭建NTP时钟服务器,架构如图1所示。
NTP时钟服务器通过RS232串口获取GPS时钟信息,根据获取的GPS时钟信息修正本机时间。NTP时钟服务器操作系统采用Linux,在时钟服务器中安装有NTP协议授时软件xntpd,系统其他服务器通过交换机与时钟服务器相连,使用NTP协议进行时间同步。
通过RS232串口获取时间信息的算法如图2所示。可以将获取的时间信息转换为Linux的日历时间,即自国际标准时间公元1970年1月1日00:00:00以来经过的秒数。由于时钟信号的格式是一年的天数,时分秒,所以我们采用了先计算该年1月1日00:00:00的日历时间,再加上这一年过去时间的秒数,时间计算公式如下:
日历时间=seconds_of_year + (DDD-1 )*24*3600 + HH* 3600 + MM*60 + SS
seconds_of_year是该年1月1日00:00:00的日历时间。
计算好日历时间,每隔10分钟就设置一次系统时间,保证系统时间的准确性。
NTP时钟服务还需要为其他节点开启NTP服务,Linux系统提供了xntp程序用于时间同步,配置/etc/ntp.conf并开启xntp。参考文献[2]对Windows与Linux系统如何配置时间同步进行了详细的说明。
4 总结
在一些计算机系统中,如航空监视系统、语音记录系统等,系统内的时间同步对系统的正常运行具有重要的意义。GPS时钟提供多种接口用于时间同步,本文介绍了如何利用GPS时钟RS232串口的时间信息搭建NTP时钟服务器,用于系统内的时间同步。该技术可应用于通过RS232串口引接GPS时钟信号,内部使用NTP协议进行时间同步的系统。
参考文献:
[1] Mills D L.A brief history of NTP time: memoirs of an Internet timekeeper[J].ACMSIGCOMM Computer Communication Review,2003,33(2):9-21.
[2] 胡杰. 基于NTP 的对时技术及其实现[J]. 黑龙江科技信息, 2008(2): 56.
[3] SyncServer? S250 GPS Network Time Server with Timing Enhancements