白杉杉,胡永辉,徐锐
基于Wi-Fi的NTP无线授时服务器的设计与实现
白杉杉1,2,3,胡永辉1,2,徐锐1,2,3
(1. 中国科学院国家授时中心,西安 710600;2. 中国科学院精密导航定位与定时技术重点实验室,西安 710600;3. 中国科学院大学,北京 100039)
为满足需求,给出了一种基于Wi-Fi的NTP无线授时服务器的设计方案。该服务器用GPS作为时间源,将GPS接收机输出的时间信息传送给ARM控制器,进行时码信息的采集与处理,通过Wi-Fi无线收发模块将服务器连接到网络层,并采用NTP协议实现授时。授时精度在局域网内可达到1ms。
ARM控制器;无线保真(Wi-Fi);网络时间协议(NTP);GPS接收机
随着科学技术的发展,在一些特定的领域,如分布式的系统管理和监控、电力、交通、高速数字网同步等,往往需要采用统一的时间标准来保证各个节点之间的相互协同以及数据融合[1]。常用的授时方法主要有无线电授时、卫星授时、网络授时等,其中网络授时由于实现方便,准确度也较高,日益受到广大用户的青睐[2-3]。与此同时,由于无线技术的发展,以往的有线传输方式受到布局布线的影响,已经渐渐不能满足社会发展的需求。为此,笔者设计了基于Wi-Fi的NTP无线授时服务器,来自GPS的时码信息经过控制器的解调处理,再通过Wi-Fi无线网络进行传输。在无线接入点(access point)的有效信号覆盖范围内的用户,只需通过无线网络进行时间同步,即可实时接收服务器的数据。
NTP(network time protocol)是由美国德拉瓦大学的D. L. Mills教授于1985年提出的,目前采用世界协调时UTC(universal time coordinated)作为时间标准[4]。利用NTP除了可以估算封包在网络上的往返延迟外,还可独立地估算计算机时钟偏差,从而实现在网络上的高精准度计算机校时,NTP是用来在Internet上使不同的设备能维持相同时间的一种通讯协定。时间服务器(time server)是利用NTP的一种服务器,通过它可以使网络中的设备维持时间同步。
图1 NTP授时原理
由以上分析可知:
NTP网络的基本结构采用层次式的分布结构,时间按照NTP服务器的等级传播,不同等级的时间精度不同,基本结构如图2所示。层(stratum)的取值范围是0~15,层的数值越小,优先级越高,层的值表达了节点距特定时钟源的距离,层的数值越大,时间精度越低,所以一般NTP的层数都很少。第0层被规定为原子钟、GPS等高精度的时钟源,第1层为整个NTP系统最顶层的服务器,直接同步到第0层的时钟,同时向第2层提供时间服务,依次类推,直到最后一层。除了第1层和最底层外,每层服务器既是上一层服务器的客户端,又是下一层的服务器端。
图2 NTP网络层状结构
NTP授时服务器的硬件组成框图如图3所示。系统以ARM微处理器(STM32F103RCT6)作为控制器,包括3个模块,分别是卫星接收模块、无线通信模块、控制模块。卫星接收模块主要负责接收卫星传送的时间源及秒信号,无线通讯模块负责与以太网连接,将时码信息通过NTP协议发送给客户端,控制模块负责将卫星接收模块和无线通讯模块送来的数据进行解算处理。
图3 系统硬件组成框图
原子钟虽然精度很高,但成本较高,因此采用GPS作为NTP授时服务器的时间源。全球定位系统提供全天候的授时定位服务,它在卫星上装载了高精度的铯原子钟,可在全球范围内提供精确的UTC时间信息。GPS接收机通过天线接收卫星的信息,可以向用户提供与UTC高度同步的秒脉冲信号及秒脉冲所对应的日期和时间信息。
无线通信模块用来实现控制模块与无线局域网的互联和数据传输,由于无线保真技术(Wi-Fi)应用广泛,且网络传输稳定可靠,所以采用Wi-Fi无线通信模块来实现与网络层的连接。
本设计采用WizFi210芯片作为无线通信模块的主控芯片, 该芯片可以为其它的设备和系统提供一种快速、简单和高性价比的方法来增加无线Wi-Fi功能。WizFi210支持的数据速率可达到11Mbit/s,与IEEE802.11b协议兼容,采用DSSS(直接序列扩频)方式调制,芯片具有串行UART接口,可以通过AT指令连接到任何8/16/32位的嵌入式系统中。
控制模块是整个服务器的核心,是连接其他各个模块的桥梁。它主要负责与无线收发模块及GPS接收机模块进行通信和分析处理接收到的数据,得到所需的时码信息,并在接收到客户端请求后,将时码信息通过Wi-Fi收发模块发送给客户端。鉴于ARM微处理器具有数据处理速度快、接口丰富、存储空间大等众多优点,本设计选择了基于ARM架构的RISC系列处理器STM32F103RCT6作为整个系统数据处理和控制的核心。
2.3.1 GPS定时
1)GPS时间源的获取
本设计采用了GPS接收机模块所接收的时间信息作为外部时间源,它通过串口对外输出来自卫星的导航电文,并为用户提供1 PPS秒脉冲信号。虽然接收机模块所提供的秒脉冲信号来自GPS系统,精度可达到100 ns或更高,但是所提供的时间信号只到秒级,这样低的分辨率远远无法满足系统的要求。鉴于上述情况,设计中使用一个高精度的时钟计数器来获取秒级以下的精确时间。如图4所示,先通过STM32系统分频获得一个10kHz的频率源,再通过定时器TIMx的计数器功能完成对10kHz脉冲个数的计数,来获取秒级以下的精确时间,最后以GPS接收机的1 PPS信号作为计数器的控制信号,每接收到一个秒脉冲信号将计数器清一次零,这样即可精确到100μs级。
将第1次GPS接收机获取的时码信息与高精度时钟计数器输出的精确时间相结合,以后每次接收到秒脉冲后将原时码信息加1 s,即可输出精度为1 ms的精确时间。
图4 GPS时间源获取原理图
2)GPS数据接收
GPS卫星接收机模块采用的是NMEA-0183标准数据格式进行数据传输[6]。NMEA-0183标准数据格式中包含的语句很多,其中$GPRMC语句中含有UTC时间信息和日期,因此通过解调$GPRMC语句来获取UTC时码信息。软件流程图如图5所示,在接收之前,系统首先对串口进行初始化配置,以匹配接收机,开启串口中断,开始接收数据。然后检测接收到的字符,当收到帧头$GPRMC时,存储数据,若收到结束符“ ”,校验数据是否完整,若不完整则返回,如数据信息完整,则调用GPS解码程序,并判断数据有效位是否为“A”,如果是,则解析出时间信息及日期,然后校正本地时钟,使服务器与UTC时间同步。
图5 GPS解码流程图
2.3.2 NTP协议的软件实现
NTP协议的帧格式如图6所示[7-8]。
注:LI(leap indicator):对当日发生的跳跃(闰秒)的最后一分钟发出警告,插入或者删除1s;VN(version number):表示NTP的版本号;Mode:表示NTP工作模式;Stratum:表示服务器的阶层数;Poll:表示相继两个消息间的最大间隔;Precision:用来表示本地时钟的准确性;Root Delay:表示到主要时间源往返的时间延迟;Root Dispersion:表示相对于主要时间参考源的最大差错;Reference Identifier:用来识别特殊的参考时间源;Reference Timestamp:本地时钟最后被设定或校正的时间;Originate Timestamp:Client对Server发出请求的本地时间;Receive Timestamp:请求到达Server的本地时间。
图7 NTP服务器软件流程图
采用TimeAcc-007时间精度综合测试仪对NTP时间服务器实验板的授时精度进行测量。TimeAcc-007时间精度综合测试仪与GPS卫星接收机进行时间同步后,通过内置铷钟进行本地守时,产生精确的UTC时间信息并与NTP时间服务器实验板输出的UTC时间信息进行比对。测试平台连接如图8所示。
图8 测试平台连接图
本次测试采用1 s的时间间隔,在局域网中TimeAcc-007时间精度综合测试仪向NTP时间服务器实验板发出时间同步请求,并对时间偏差数据进行采集,截取其中的1 600次数据进行分析。图9给出了NTP时间服务器实验板与TimeAcc-007时间精度综合测试仪的时间偏差分析结果。
图9 NTP时间服务器时差分析结果
从图9中分析结果可以得到,NTP时间服务器实验板与TimeAcc-007时间精度综合测试仪进行校时时,时间偏差的均值为0.259 ms,均方差为1.136 ms。由此可见,该NTP无线授时服务器实验板在局域网中的授时精度基本达到了1 ms。
本文阐述了基于Wi-Fi的NTP无线授时服务器的研究与设计过程。采用Wi-Fi无线模块实现了无线局域网中的数据传输,并通过NTP协议完成对客户端的校时工作,同时GPS接收机为时间的准确性提供了有效的保障。本文所设计的服务器性能稳定可靠,集成度高,免去了普通授时服务器布局布线的困扰,实现方便,具有较好的应用推广价值。
[1] 沈迎春. 网络时间协议在海军作战指挥一体化系统中的应用[J]. 舰船电子工程, 2004, 24(4): 50-52.
[2] 陈璇. 网络对时技术及应用方向研究[J]. 中国舰船研究, 2007, 2(6): 42-45.
[3] 费振豪. 基于NTP的地铁综合监控系统时钟同步技术的研究[D]. 成都: 西南交通大学, 2004.
[4] 王瑞清. 嵌入式高精度NTP网络时间服务器研究与实现[D]. 武汉: 华中科技大学, 2011.
[5] 宋妍, 朱爽. 基于NTP的网络时间服务系统的研究[J]. 计算机工程与应用, 2003, 39(36): 147-150.
[6] 肖远亮. NMEA-0183数据标准在GPS技术中的应用[J]. 物探装备, 2003, 13(2):127-133.
[7] DANTZIG G B, RAMSER J H. The truck dispatching problem[J]. Management science, 1959, 6(1): 80-91.
[8] GLASS M E, DAHIGREN VA. Navy shipboard time synchronization service options and analysis[J]. IEEE Computer and Information Science, 2008, 46: 105-109.
Design and implementation of NTP wireless time server based on Wi-Fi
BAI Shan-shan1,2,3, HU Yong-hui1,2, XU Rui1,2,3
(1. National Time Service Centre, Chinese Academy of Sciences, Xi′an 710600, China;2. Key Laboratory of Precision Navigation and Timing Technology, National Time Service Center,Chinese Academy of Sciences, Xi′an 710600, China;3. University of Chinese Academy of Sciences, Beijing 100039, China)
This paper presents a design of NTP wireless time server based on Wi-Fi for meeting the needs. In this time server, the GPS is adopted as time source, the data acquired by the GPS receiver is sent to the ARM controller, the time code information is acquired and processed by the ARM controller, and the time server is linked to the network layer via the Wi-Fi wireless transceiver module. The time server completes the time service with the NTP protocol, and the time service precision can reach 1ms within the local network.
ARM controller; Wi-Fi; NTP; GPS receiver
TP29
A
1674-0637(2013)04-0229-07
2012-12-29
中国科学院“西部之光”人才培养计划重点资助项目(Y001YR1601)
白杉杉,女,硕士,主要从事授时方法与技术研究。