APP下载

便携式NTP测试仪的设计与实现

2017-05-25王明侯雷王昕

时间频率学报 2017年1期
关键词:客户机测试仪数据包

王明,侯雷,王昕



便携式NTP测试仪的设计与实现

王明1,2,3,侯雷1,2,4,王昕1,2,4

(1. 中国科学院 国家授时中心,西安 710600;2. 中国科学院 精密导航定位与定时技术重点实验室,西安 710600;3. 中国科学院大学,北京 100049;4.中国科学院 时间频率基准重点实验室,西安 710600)

传统的NTP测试仪体积大、功耗高,并且无法满足远距离的测量,所以需要开发一款便携式NTP测试仪,以能够携带方便、运行稳定、适用于各种环境,同时能对NTP时间服务器的授时精度进行有效检测。根据系统功能及性能要求,系统方案采用ARM+FPGA的组合架构,利用嵌入式技术,采用模块化设计思想完成设计开发。实验结果表明,基于嵌入式系统设计的便携式NTP测试仪的测量精度可优于0.1ms,满足较高的工程需求。

便携式;NTP测试仪;ARM;FPGA

0 引言

随着现代通信技术的快速发展,网络在各个领域都有很重要的应用,尤其是在某些特殊的场合,由于条件限制无法接入互联网或为了实现信息保密,局域网内的计算机无法通过互联网的授时系统自动获得准确的UTC时间,但又需要对局域网内的计算机进行统一时间配置,这就需要用到NTP时间服务器,因此,NTP时间服务器的精确度决定了其所属网络的各个计算机的定时精确度。网络上的时间传递,采用的是网络时间协议NTP(network time protocol,NTP)[1],时间源来源于NTP时间服务器,其自身的时间源根据NTP协议中的时钟参考标识符来确定,时间源通常有原子钟、GPS/北斗(BD)、长波/短波授时系统等[2]。

网络授时技术已经深入各个领域,并且不同环境中的NTP服务器同样需要定期或不定期性能指标的检测和标定。例如,在NTP时间服务器出厂时,为了提高其授时精度,必须对它进行标定,消除系统误差;在对电力系统中的NTP服务器检修时,需要对不同野外环境的NTP服务器进行测量,确保电力系统的时间统一;在进行联合作战指挥时,需要对不同战场的NTP服务器进行检测,保证各指挥部之间时间的统一;在金融领域,需要对不同地区的NTP服务器进行测量,保障各个交易系统的时间统一。

NTP时间服务器作为网络时间的源头,其性能指标至关重要,新生产的NTP时间服务器必须经过严格测试、标定后才能投放市场,否则未经测试的NTP时间服务器的授时精度会有偏差,另外,在某些环境中,NTP服务器需要进行长时间的工作,一些外部或内部的因素影响会造成服务器的性能指标降低,从而影响授时精度。因此,为了避免授时误差造成的潜在风险,测试NTP时间服务器的授时精确度显得非常迫切。NTP服务器分布非常广泛,在对各种环境下的NTP时间服务器进行检测时,需要NTP网络测试仪具备体积小、重量轻、功耗低等便于携带和长途运输的特点。因此,研制一款便携式NTP测试仪势在必行。

1 系统原理及技术要求

1.1 NTP授时原理

NTP授时方式原理采用的是Client与Server模型[3]。如图1所示,其工作流程为:首先客户机打包好NTP数据包后发送给服务器,该数据包中包含了离开客户机的时间戳(以客户机时间为参照),当该数据包到达服务器时,记录此时的时间戳为(以服务器时间为参照),接着处理完后记录数据包离开服务器的时间戳(以服务器时间为参照),将这两个时间戳分别填入数据包中,然后立刻把新的数据包返回给客户机,当数据包到达客户机时,记录此时的时间戳为(以客户机时间为参照),图1中,为请求NTP服务器包传送延时,为NTP回复包传输延时,为服务器和客户端之间的时间偏差,为NTP包的往返时间。最后客户机用上述4个时间参数计算两个时间参数:NTP数据包的往返延迟和服务器与客户机之间的时钟偏差。

图1 NTP授时原理图

NTP数据包格式如图2所示。图2中,Originate timestamp为客户机请求服务器时的时间戳,即时间,Receive timestamp为数据包到达服务器的时间戳,即时间,Transmit timestamp为服务器返回给客户机的时间戳,即时间。

LIVNModeStartPollPrec Root delay Root dispersion Reference identifier Reference timestamp(64) Originate timestamp(64) Receive timestamp(64) Transmit timestamp(64) Extension field Key/Algorithm identifier Message hash(64 or 128)

。 (2)

根据式(1),也可表示为

1.2 NTP测试仪系统方案

NTP测试仪基于上述的NTP授时原理,首先在测试仪内部建立高精度的本地钟,采用GPS、BD和其他定时模块实现本地钟的时间同步和钟面校准,再将测试仪充当客户机角色与服务器进行数据交互,这样便可以计算出测试仪与服务器的钟差,即为服务器的授时精度。本文设计的NTP测试仪利用GPS/BD作为时间源,采用高稳定度的恒温晶振作为系统的频率源,通过FPGA可编程逻辑器件实现高精度的本地钟。测量时,系统先获得GPS/BD时间源时间后与FPGA本地钟同步,然后,根据NTP时间服务器授时原理,便携式NTP测试仪发送NTP协议包,请求NTP时间服务器,待服务器响应后,返回重新打包好的NTP协议包,NTP测试仪根据返回来的协议包,提取相关的时间信息并计算,从而测量出NTP测试仪本地时间与NTP服务器时间之差,经过长时间的数据采集和数据分析,从而得出NTP服务器的性能指标[4]。

1.3 系统功能及性能

便携式NTP测试仪的系统功能及性能如下:①系统功能要求:便携式NTP测试仪的主要功能是测试NTP时间服务器的授时精度。辅助功能包括通过显示屏、键盘等输入输出设备及接口实现人机交互功能;②系统接口要求:串口、网络接口、USB接口等外部接口用于数据的输入输出;③系统性能要求:便携式NTP测试仪的系统性能指标为时差测量分辨率为1μs,时间精度优于0.1ms。

2 硬件体系结构设计

硬件系统划分为板级系统和芯片级系统。板级系统主要实现微处理器与各个外设模块进行数据通信。芯片级系统主要用FPGA内部的逻辑门阵列实现本地钟。

2.1 板级系统

板级系统如图3所示,包括时间源子系统、本地时钟单元、频率源、CPU单元、网络单元[5]、存储单元、用户操作单元和电源单元。

图3 板级系统框图

时间源子系统采用GPS/BD定时模块,此模块可以提供可见GPS/BD卫星数量、卫星状态信息、经纬度、海拔高度、运动速度和UTC时间等数据信息。这里主要获取卫星状态和UTC时间两个数据信息。此外,需要接入GPS/BD模块的1PPS接口到本地钟接口,用来触发本地钟的微秒计数。

采用FPGA可编程逻辑器件编写本地时钟,内部设计微秒级计数器、秒级计数器、寄存器等。通过稳定的频率源(恒温晶振)驱动时钟电路。寄存器主要用来模拟SRAM存储器,可以随机访问各个保存有微秒数据和秒数据的存储空间。

CPU子系统是系统的核心部分,它采用ARM微处理器,主要负责逻辑事物的管理。微处理器的主要功能如下:① 负责GPS/BD数据的解调,获取UTC时间,并将UTC时间通过FSMC接口同步到本地钟;②负责打包NTP协议包,请求NTP时间服务器,获取NTP服务器时间信息,计算NTP时间服务器与测试仪的时间差;③ 负责将测试的原始数据及计算结果保存到SD卡存储器;④ 响应人机交互时的信息处理。

用户接口主要包含键盘、显示屏、鼠标等输入输出设备,方便使用者使用设备。

2.2 芯片级系统

芯片级系统,通过硬件逻辑语言Verilog[6]完成本地钟的设计。如图4所示,FPGA主要由I/O接口模块、微秒计数器、秒计数器和寄存器模块构成。FSMC总线接口负责FPGA内部模块与CPU通信。I/O接口由16位I/O口组成,可以同时传送16位数据,负责数据的输入输出。根据系统的性能需求,时间分辨率为1μs,FPGA内部设计了微秒计数器,由外部恒温晶振驱动微秒计数器计数,从而提供1μs的时间分辨率。当CPU解调出GPS/BD的UTC时间后再进行同步本地钟。寄存器分为4组16位数据寄存器,每两个组成一个32位双字,分别用来保存微秒时间和秒时间值。

图4 芯片级系统框图

2.3 具体硬件设计

系统详细组成如图5所示,主要包含以下部分:ARM核心微处理STM32F407ZG,FPGA/CPLD为协处理器,存储电路包含SDRAM(随机动态存储器)和NandFlash,网络部分为10M/100M自适应网络控制器和RJ45网络接口模块,人机交互主要包括键盘和LCD显示屏,便携式NTP时间服务器时间源采用GPS/BD双模定时型接收机。

图5 系统详细组成框图

3 软件体系结构设计

系统软件设计方面,主要进行驱动和应用程序开发。嵌入式系统设计,不仅要求高可靠性,而且对实时性要求很高。为此,本系统采用uC/OS II实时操作系统处理各个任务模块。uC/OS II(micro control operation system two)是一个可以基于ROM运行的、可裁减的、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器[7]。

3.1 软件功能模块

根据系统的功能和需求,把系统分为以下4个任务:人机交互管理任务、本地时钟源任务、网络任务和数据处理任务,每个任务又可以划分为更小子模块,如图6所示。

图6 软件功能框图

人机交互任务模块,主要是方便用户通过鼠标键盘操作系统,并通过显示屏直观地显示出来。系统启动后,桌面会显示测量对象、设置、帮助、桌面状态等多个图标。用户可根据测试需求进入相应的程序中进行选择和配置参数。桌面还会有一些状态信息,如电池状态、卫星状态、测试结果等反馈系统运行状态的信息。

本地时钟任务模块,主要负责GPS/BD时间源时间信息的获取、本地时钟的同步、计时等任务。首先,CPU通过串口获取GPS/BD卫星UTC时间,与此同时,卫星模块1PPS触发FPGA微秒计数器清零计数。然后,待CPU提取出UTC时间后,将UTC 时间写入FPGA秒计数器存储空间,秒计数器开始计数。最后,系统开始本地钟的计时。

网络管理任务模块,主要负责网络通信任务,请求NTP时间服务器,获得有关时间戳,为后面的数据处理提供数据。

数据处理任务模块,主要通过NTP协议算法计算NTP时间服务器与便携式NTP测试系统的时间误差信息,长时间测试,分析NTP时间服务器的准确度,数据读写方面,主要是对原始数据和分析后的数据保存到内部Flash或外部U盘上。

3.2 软件工作流程

在测量NTP网络时间服务器时,本系统作为客户端获取NTP网络时间服务器时间信息,NTP协议采用传输层中的UDP协议传输[8]。NTP时间服务器测试工作流程如图7所示。

图7 NTP时间服务器测试工作流程

4 实验测试

试验目的是检测已初步完善的便携式NTP测试仪系统的性能指标。

4.1 实验设备

实验平台所需的硬件设备如表1所示。

表1 实验硬件平台

4.2 实验方法

实验采用比较法进行,实验原理基于NTP服务器授时的原理。实验过程如下:采用Time-Acc007和所研制的便携式NTP测试仪通过路由器连接后,对同一台网络时间服务器同时进行长时间测试,比较分析两台测试仪所采集同一时间段内的数据信息,观察相同时段内两台测试仪所测得的时钟偏差的波动范围,其中TimeAcc-007时间综合测试仪作为参考,便携式NTP测试仪是本次实验的测试对象,图8是实验设备连接图。

图8 实验设备连接图

4.3 实验结果

实验时间为2015年11月4日13:20:00(UTC时间)至2015年11月5日09:40:20(UTC时间),利用便携式NTP测试仪对网络时间服务器的时间进行测量,每1s测量1次,共采集73221个点。通过Matlab绘出的采样点的离均差(偏离平均值大小)图分别如图9和10所示,横坐标表示采样时间点,纵坐标表示采样值偏离平均值大小。

图9 Time-Acc007离均差图(平均值:918.87μs)

图10 便携式NTP测试仪离均差图(平均值:648.86μs)

实验统计结果如表2所示。

表2 Time-Acc007与便携式NTP测试仪数据对比 μs

实验结果表明,便携式NTP测试仪的波动性比Time-Acc007的波动性小,平均值误差比Time-Acc007小270.01μs,测量精度优于0.1ms。

5 结语

本文介绍了一种采用ARM+FPGA组合架构开发的便携式NTP测试仪的设计方案,通过分析目前实验测试数据可以看出,系统的测量精度优于0.1ms,稳定性高,能够满足较高的工程需要。后续任务还需要对系统进行多次实验测试,标定其自身的系统差。

[1] 陈敏. 基于NTP 协议的网络时间同步系统的研究与实现[M]. 武汉: 华中科技大学, 2005.

[2] 杨玉婷, 潘英俊. GPS/北斗授时系统软件的设计与实现[D]. 重庆: 重庆大学, 2013.

[3] 黄沛芳. 基于NTP的高精度时钟同步系统实现[J]. 计算机技术与应用, 2009, 35(7): 122-127.

[4] 孙磊, 邢建平. 基于ARM/GNSS的分布式NTP精度授时服务器设计与应用[D]. 济南: 山东大学, 2009.

[5] 朱升林. 嵌入式网络那些事: LwIP协议深度剖析与实战演练[M]. 北京: 中国水利水电出版社, 2012.

[6] 江国强. EDA技术与应用[M]. 3版. 北京: 电子工业出版社, 2011.

[7] 刘波文, 孙岩. 嵌入式实时操作系统μCOS-2经典实例: 基于STM32处理器[M]. 2版. 北京: 北京航空航天大学出版社, 2014.

[8] 华清远见嵌入式培训中心. 嵌入式Linux应用程序开发标准教程[M]. 2版. 北京: 人民邮电出版社, 2009.

Design and implementation of portable NTP tester

WANG Ming1,2,3, HOU Lei1,2,4, WANG Xin1,2,4

(1. National Time Service Center, 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 100049, China; 4. Key Laboratory of Time and Frequency Primary Standards, National Time Service Center,Chinese Academy of Sciences, Xi’an 710600, China)

Traditional NTP tester has disadvantages of big size and high power consumption, and can not satisfy the needs of long distancemeasuring, therefore it is needed to develop a portable tester which is easy to be carried, operates stably, can be applied to various environments, and can effectively detect the time-service precision of the NTP server. To meet the requirements of system function and performance, the architecture of ARM + FPGA is adopted for the system, the embedded technology is used in the design, and the idea of modular design is adopted to complete the design and development. The result shows that the measurement accuracy can be better than 0.1 ms for this portable NTP tester which is based on embedded system design, satisfying the higher engineering demand.

portable; NTP tester; ARM; FPGA

TP393

A

1674-0637(2017)01-0027-09

10.13875/j.issn.1674-0637.2017-01-0027-09

2016-05-18

王明,男,硕士,主要从事导航定位定时终端技术研究。

猜你喜欢

客户机测试仪数据包
SDL Atlas推出第二代HydroPro耐静水压测试仪
使用快速水洗色牢度测试仪检测超细纤维脱落
便携式转辙机转换力测试仪
SmartSniff
基于VB与ATEQ测试仪串行通信
视觉注意的数据包优先级排序策略研究
移动IPV6在改进数据包发送路径模型下性能分析
瘦客户机:安全与便捷的选择
升腾瘦客户机借神码翱翔“云端”
基于Web数据提高访问速度的方法