嵌入式分布系统中网络设备的时间同步
2分布式系统整体架构及实现
2.1 分布式系统架构
目前课题的整个系统是由5块相同的嵌入式开发板组成,硬件平台是PowerPC MPC8548ERM,移植的操作系统为VxWorks 5.5,开发板之间的连接通信目前实现了3种方式,即以太网、串口和Rapid IO方式,本方案时间同步协议的实现是基于以太网通信介质的。其中一块开发板作为时间服务器,并通过串口和上位机相连接,以实现通过上位机来控制整个分布式系统。NTP网络分布式系统结构如图3所示。
图3 NTP网络分布式系统结构
本课题目前基于UDP协议实现分布式系统中NTP协议的时间同步。
2.2 NTP设计实现
由于整个系统是独立的分布式系统,整个系统对绝对时间的要求不高,只需要各子系统之间的相对时间达到一致即可。所以首先需要确立一个子系统作为服务器端,此端受上位机系统的控制。系统运行时,通过上位机向此服务器端发送预设的时钟值,此时钟源就作为整个分布式系统的参考时钟源。 而其他子系统作为客户端,可以在合适的时候向服务器申请时间校准服务。
NTP服务器上的时间戳为从1900年1月1日0时0分至今的秒数(UTC时间)。而子节点获取的时间戳为1970年1月1日0时0分至今的秒数(程序中的time(NULL)返回的是UTC时间)。所以,要对子节点的时间戳与服务器时间戳计算时,需在子节点的时间戳基础上加上1900~1970年的秒数:3 600 s×24×(365×70+17)。
在程序实现中,每隔固定的一段时间子节点就需要进行时钟校对。校对时,子节点首先需要调用系统底层提供的本地时间查询函数,得到当前系统准确时间,然后将此时钟数据打包成专用的NTP数据格式,形成时间查询包,再通过已经搭建好的如图3所示的分布式网络环境,将时间查询包发送到服务器端。
时钟服务器端在接收到客户端发送来的时间查询包的时候,将调用本地时钟查询函数来记录此时间请求数据包到达的精确时间,然后根据NTP 协议的实现原理,再次调用系统时间来形成用以回馈给客户端的时间信息包,并同时将时间信息包发回客户端。当客户端收到此时间信息包后,即可根据NTP的时间计算和校准公式来计算网络延时和与服务器的时间差值,并在规定的时间范围内实现自身的时钟同步。此即一次完整的时间校准过程。程序设计流程如图4所示。
图4 NTP程序设计流程
在子系统软件对服务器返回的时间信息包进行分析的过程中,还要进行网络时延的估计。这一部分的设计对于提高时间同步的精度至关重要,因此在软件设计前需要对网络状态和时延数据进行大量的统计分析,以确定较好的时延补偿方法。
3 性能评估
由系统测试获得,服务器和客户端两端的运行时的时钟数据有:T1=1970010100:00:00:583, 转化后为0 s+583 ms;T2=2011082216:17:21:368, 转化后为1 314 029 841 s+368 ms;T3=2011082216:17:23:568, 转化后为1 314 029 843 s+568 ms;T4=1970010100:00:02:799, 转化后为2 s 799 ms。
为了计算和时间校对的方便,程序会将时钟数值单位转换成s和ms。
根据公式可以计算出:
① 时钟的时间偏差θ=[(T2-T1)+(T3-T4)]/2=1 314 029 840.776 s。
② 客户端与服务器平均网络路径延迟δ=[(T4-T1)-(T3-T2)]/2=8 ms。
在请求时间同步的客户端计算出时间偏差值和网络路径延时后,会根据设置的阈值进行参考比对。如果计算所得值在阈值范围内,则进行本地时钟的调整;如果所得值超出了这个阈值范围,则认为这个时间信息有误或者没有必要进行本地时钟值的调整,即不进行时钟调整。
有关资料中对10 000次校时请求的往返网络时延进行统计,90%以上的网络时延不到1 ms,引起的网络延时误差小于±1 ms。在实际的测量过程中,系统时间的测量误差一般为±10 ms。因此,测量误差为影响结果的主要因素。另一方面,对于偶然出现的网络时延较大的情况,应该在程序中设置网络时延箝位值δ0,即当δ>δ0时丢弃该时间信息包,重新发送校时请求,从而起到保证校时精度的作用。
对10 000次校时请求计算出的时差值进行统计后得出,相对于其均值,时差值大约分布在±50 ms区间范围内,形成一条单一斜率的曲线。通常,为了避免由于校时间隔较小形成校时频繁,应根据时差走势图在程序中设置时差箝位值θ0,即当θ <θ0时,不对本地时钟进行更新,直接退出。
由实际的测试数据可以看出本设计方案能符合应用需求。
4总结
本文研究和讨论了NTP服务器的任务设计方案和服务器实现的关键算法。系统选用WindRiver公司开发的嵌入式实时操作系统VxWorks以及高性能处理器PowerPc MPC8548ERM,稳定性有了明显的提高,保证了服务器系统能够长时间持续工作。网络时间服务系统的构建并不复杂,但要保证达到较高的授时精度,不仅需要对网络时延估计进行深入的分析和研究,而且建立时间服务器网络授时体系也是非常必要的。多个时间服务器在不同的区域的合理分布,能有效保证广域网的授时精度。
- 西门子工业网络设备在钢厂烧结料场的应用(12-19)
- 一种WPAN网络设备方案(08-28)
- 蓝牙无线耳机设计及VxWorks移植方法(07-21)
- 军事指挥系统中VxWorks下汉字显示技术(07-16)
- 基于VxWorks的文件系统的研究与实现(09-18)
- 嵌入式语音通信系统中VxWorks BSP的设计实现(09-18)