基于IEEE1588协议时钟同步精度影响因素的研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于IEEE1588协议时钟同步精度影响因素的研究
覃斌毅;陈铁军;邱杰;黄志文;朱望纯
【摘要】随着分布式测试技术的快速发展,对地理位置分散的测试设备协同完成测试任务的需求也越来越大,而设备之间的时钟同步精度成为制约测试效果的关键因素;为了对时钟同步精度的影响因素进行研究,提出了基于IEEE1588协议的网络时钟同步实现方案;首先对IEEE1588基本原理进行分析,然后提出了IEEE1588协议的实现方案,最后搭建实验平台对影响同步精度的因素进行研究;研究结果表明,同步间隔和网络拓扑结构影响时钟同步精度的两个主要因素.
【期刊名称】《计算机测量与控制》
【年(卷),期】2014(022)010
【总页数】4页(P3312-3315)
【关键词】分布式测试;时钟同步;IEEE1588;DP83640;同步精度
【作者】覃斌毅;陈铁军;邱杰;黄志文;朱望纯
【作者单位】玉林师范学院电子与通信工程学院,广西玉林537000;玉林师范学院电子与通信工程学院,广西玉林537000;玉林师范学院计算机科学与工程学院,广西玉林537000;玉林师范学院电子与通信工程学院,广西玉林537000;桂林电子科技大学电子工程与自动化学院,广西桂林541004
【正文语种】中文
【中图分类】TN915.04
0 引言
随着分布式测试技术的快速发展,对地理位置分散的测试设备协同完成测试任务的需求也越来越大。

设备之间的时钟同步精度不高,成为制约测试效果的关键因素。

IEEE1588协议(全称“网络测量和控制系统的精密时钟同步协议标准”,简称为PTP协议)提供了一种低成本高精度的网络时钟同步的解决方案,并具有占用网络带宽小、对系统资源要求低等优点,非常适合应用于分布式测试领域[1]。

IEEE1588 协议可用软件标记时间戳或硬件标记时间戳的方法实现[2]。

软件标记时间戳的方法是在协议上层标记时间戳,在协议层上标记时间戳实现简单,但由于操作系统和网络协议栈的延时影响,同步精度只能达到毫秒量级;硬件标记时间戳的方法是在网络的PHY 层和MAC层接口处标记时间戳,能达到亚微秒量级的同步精度[3]。

为了达到高同步精度,本设计采用硬件标记时间戳的方法实现IEEE1588协议。

1 IEEE1588的基本原理
IEEE1588的基本原理是各个时钟节点之间进行同步消息的传递,各时钟节点运行最佳主时钟算法确定出节点时钟端口的主从状态,建立起同步体系;同时,各节点对消息包的发送和接收时间进行记录,并且对每一条消息包标记时间戳标记。

有了时间戳标记,从时钟就可以计算出自己与主时钟的时间差以及网络中的传输延时,从而进行时钟的校准同步。

其中,IEEE1588协议中包含了两个核心的算法:最佳主时钟算法(BMC)和本地时钟同步算法(LCS)[4]。

1.1 最佳主时钟算法
最佳主时钟算法是用于确定PTP(precision time protocol)系统中每个时钟端口的状态。

这个算法要求网络中的每个时钟端口均提供一个时钟数据集,该数据集包含了本地时钟的固有属性、品质、稳定度、唯一识别符和首选设置。

当一台设备
加入网络时,它会以广播的形式向网络内的设备发送自己的时钟端口数据集,同时它也接收网络中其他设备的时钟端口数据集。

通过比较自身和其他设备的时钟端口数据集,可确定主时钟以及设备自己的状态。

1.2 本地时钟同步算法
本地时钟同步算法用于计算从时钟与主时钟的时间偏差,它将同步过程分为两个阶段:偏差测量阶段和网络延迟测量阶段[4]。

主时钟和从时钟校准流程图1所示。

图1 主时钟和从时钟校准流程
偏差测量阶段是测量出主时钟和从时钟的时间差。

在偏差测量过程中,主时钟周期性的发送Sync和Follow_Up消息(默认周期为2s),在Follow_Up消息中
包含有Sync消息的发送时间T1,从时钟收到Sync消息后记下接收时间T2,此
时可得偏差为:
其中:MS_Delay 表示消息由主时钟传到从时钟的网络延迟。

网络延迟测量阶段是测量消息在网络中传输造成的延迟时间。

从时钟定期向主时钟发送Delay_Req消息(为了减轻网络负担,一般4~60s发送一次),并记录Delay_Req消息的发送时间T3,主时钟在接收到从时钟发送的Delay_Req消
息后,记录接收时间T4,并向相应的从时钟发送Delay_Resp消息,Delay_Resp消息中包含有主时钟接收Delay_Req消息的时间T4。

此时可得偏差为:
其中:SM _Delay 表示消息由从时钟传到主时钟的网络延迟。

假设消息在主从时钟间传输的网络延时是相等的,则有
将式(3)带入式(1)、(2),重写可得
由式(4)和(5)得
网络延迟
偏差
2 时钟同步模块的设计
时钟同步模块选用ARM 处理器作为主控器,采用硬件时间戳的方式,对PTP消息的收发时间进行标记。

两个同步模块间的同步精度可达到亚微秒级,将同步模块用于分布式测控网络,可满足测控网络高同步精度的使用需求。

2.1 硬件设计
传统实现IEEE1588协议的方法是使用FPGA 和网络接口芯片相结合。

其中FPGA 负责对PTP消息进行硬件时间标记,网络接口芯片实现PTP 消息在网络中的接收和发送。

同步精度跟开发者使用的时间戳标记方法以及时钟的调整方法有关。

这种实现方法开发人员的要求高,实现难度大,开发周期长。

本设计使用ARM+DM9000+DP83640 的架构,其中,ARM 选用三星公司的S3C2440 处理器作为主控制器;DM9000为MAC层芯片;DP83540为物理层芯,它可对PTP消息在物理层标记时间戳,开发者通过对特定寄存器的设置就可完成时间戳的标记。

同时,DP83640 对时钟有多种调整方式,最终可使分布式测控系统达到亚微秒级的同步精度[5-7],系统框架如图2所示。

图2 时钟同步模块硬件系统框图
2.2 软件设计
同步模块在接入网络后,通过对收到的PTP 消息进行判断自己是作为主时钟还是从时钟。

主时钟和从时钟对消息的处理流程不一样,以下对主从时钟处理消息的流程进行设计。

当同步模块作为主时钟时,其程序流程如图3所示。

主时钟每次收到PTP 消息都
会判断外部时钟记录是否已经更新,如果已经更新外部时钟记录,则要运行BMC 算法。

如果运行BMC算法的结果是本地时钟的性能不及外部时钟,那么本地时钟端口状态将变为PTP_SLAVE(从时钟),如果经BMC算法当前时钟仍然做主时钟,则进行接下来的操作。

图3 主时钟程序流程图
判断发送Sync消息的时间间隔是否到达,如果达到,则构建Sync消息并将其封
装成UDP 数据报发送出去,同时从PHY 的硬件时间戳单元读取刚发送的Sync消息的发送时间戳,将发送时间戳填入Follow_Up消息中,再将Follow_Up消
息封装成UDP数据报发送出去;如果发送Sync消息的同步将没有达到,则跳过
上述步骤。

接下来判断是否收到消息,是否为PTP 消息(判断的方法是:UDP数据报的目的地址如果是IANA 分配的组播地址224.0.1.129-132,则该消息是PTP消息),是否为自身发出去的消息(通过比较消息的source CommunicationTechnology、sourceUuid和sourcePortId字段。

IEEE1588 协议规定本地时钟接收到自身发送出去的消息都要忽略)。

如果是PTP消息并且消息不是自身发出的,则再判断是
哪种PTP 消息,并相应的做出处理。

当同步模块为从时钟时,其流程如图4所示。

从时钟每次收到PTP消息都会判断
外部时钟记录是否已经更新,如果已经更新外部时钟记录,则要运行BMC 算法。

如果运行BMC算法的结果是本地时钟的性能优于外部时钟,那么本地时钟端口状态将变为PTP_MASTER(主时钟)。

如果经BMC 算法当前时钟仍然做从时钟,则进行接下来的操作:
判断接收Sync消息间隔是否溢出,如果溢出,则表明在规定的接收时间内没有接收到当前主时钟的Sync消息,则重新运行BMC算法;如果在接收Sync消息间
隔未溢出,则判断收到是否为PTP消息,再根据上节所述方法进行判断是否为时钟端口自身消息,在IsFromSelf不为1的情况下,开始进行PTP消息的处理。

图4 从时钟程序流程图
3 时钟同步模块同步精度影响因素研究
IEEE1588协议中对主从时钟偏差进行计算时,假设消息在主从时钟间传输的网络延时是相等的。

但是,事实上消息在主从时钟见的传输的网络延时并不一定相等,它受到网络设备的影响,最直接的体现是网线的长度和拓扑结构。

由于网络延时的不相等,导致计算主从时钟偏差时的计算值产生误差,从而对同步精度产生影响。

此外,主从时钟之间是通过收发同步消息来获得时间戳,进而计算出同步偏差,并对从时钟时间进行调整。

由于主从时钟的频率不一致,主从时钟在同步间隔的时间内会产生偏差,当同步间隔变化时,从时钟时间的调整频率也会发生变化,从而对同步精度产生影响。

通过上述分析可知,网线长度、同步间隔、网络拓扑结构会对时钟同步模块的同步精度产生一定的影响,搭建图5所示的测试平台,对这3种影响因素进行研究。

在测试过程中,美国安捷伦公司的触发盒E5818A 与时钟同步模块选用两种连接方式:直接相连和通过交换机相连。

测试方法如下:触发盒E5818A 作为主时钟按照设定的同步间隔向从时钟发送同步消息,时钟同步模块作为从时钟,从时钟按照设定的间隔计算一次从时钟的时间偏差并进行本地时钟同步,在计算机上运行串口调试助手,从时钟通过串口将时间偏差信息发给串口调试助手。

然后,将串口调试助手收到的时间偏差信息保存下来。

最后使用Matlab对保存下来的时间偏差进行绘图,并计算出时间偏差的平均值和标准偏差。

图5 同步精度测试接线图
3.1 网线长度对同步精度的影响
消息在网线传输中会有延迟,网线长度越长,延迟的时间会越大。

分别使用2m
和20m 交叉网线将触发盒E5818A 与时钟同步模块直接相连,按照表1进行测试。

2m 网线测试结果如图6所示,20m 网线测试结果如图7所示。

表1 测试条件
图6 从时钟偏差(2m 网线直连,同步间隔2s)
图7 从时钟偏差(20m网线直连,同步间隔2s)
对以上数据进行统计分析,可得使用2m 网线时,从时钟同步偏差平均值为
±15ns,标准偏差为12ns,从时钟同步偏差保持在±100ns以内;使用20m 网线时,从时钟同步偏差的平均值是±14ns,标准偏差为12ns,从时钟同步偏差保持
在±100ns以内。

在网线长度相差一个数量级的情况下,所测得的同步精度大致相同。

由此可见,IEEE1588协议能很好地消除消息在网线中传输延迟的影响,网线长度对同步精度的影响不大。

3.2 同步间隔对同步精度的影响
同步间隔决定了两条Sync消息的间隔时间,当时钟频率不一致时,主从时钟的同步误差会随间隔时间的增大而增大。

使用2m 交叉网线将触发盒E5818A 与时钟
同步模块相连,依次将同步间隔设置为2s和8s,按照表2进行测试。

同步间隔为2s时,测试结果如图6所示,同步间隔为8s时,测试结果如图8所示。

表2 测试条件
图8 从时钟偏差(2m 网线直连,同步间隔为8s)
对以上数据进行统计分析,同步间隔为8s时,从时钟同步偏差的平均值是
±186ns,标准偏差为209ns,从时钟同步偏差保持在±2 000ns以内。

当同步间
隔由2s增大到8s时,同步偏差的均值、标准差、同步偏差的范围都增大了一个
数量级。

由此可见,同步间隔是影响同步精度的主要因素之一,同步精度随着同步间隔的增大而降低。

3.3 网络拓扑结构对同步精度的影响
网络中设备对消息在网络中传输会产生延迟,不同的网络拓扑结构造成的延迟各不相同。

改变网络拓扑结构,依次将连接方式改为直连和通过交换机相连这两种连接方式,按照表3进行测试。

使用直接相连时,测试结果如图6所示;使用交换机相连时,测试结果如图9所示。

对以上数据进行统计分析,可得使用交换机相连时,从时钟同步偏差的平均值是±156ns,标准偏差为111ns。

从图9可以看到,从时钟同步偏差保持在±600ns以内。

网络拓扑结构不同,同步偏差的均值、标准差、同步偏差发生了较大的变化。

由此可见,网络拓扑方式也是影响同步精度的主要因素,在同等条件下,使用直连方式的同步效果要优于使用交换机相连的情况。

表3 测试条件
图9 从时钟偏差(2m 网线交换机相连,同步间隔2s)
4 结束语
在对IEEE1588 基本原理进行分析的基础上,提出了IEEE1588协议的实现方案,最后搭建实验平台对影响同步精度的因素进行研究。

研究结果表明,网线长度对同步精度的影响不大;同步间隔是影响同步精度的主要因素,在实验条件不变的情况下,同步间隔增大,同步精度降低;网络拓扑结构也是影响同步精度的另一个主要因素,在实验条件不变的情况下,直连的拓扑结构的同步精度比通过交换机相连的拓扑结构的同步精度高。

通过对同步精度影响因素的研究,为进一步提高同步精度提供理论依据。

【相关文献】
[1]陈大峰,白瑞林,邹骏宇.嵌入式设备的精确时钟同步技术的研究与实现[J].计算机工程与应用,2013,49(4):82-86.
[2]宋升金,许永辉,姜守达.基于PDPd改进的高精密时钟同步实现[J].计算机工程与应用,
2013,49(4):72-75,85.
[3]孔广亚,孙祥祥.基于ARM 的IEEE1588精密时钟同步协议的实现[J].计算机应用,2013,33(S1):315-317,323.
[4]李智,张景宇,牛军浩,等.基于IEEE1588的时钟同步技术研究[J].仪表技术与传感器,2012,(12):99-102.
[5]刘兆庆,潘邵武,张毅刚.基于DP83640 的IEEE1588 应用研究[J].测控技术,2012,31(9):80-83.
[6]易胜蓝.嵌入式Linux下的IEEE1588时间同步的实现[J].电讯技术,2012,52(5):800-803.
[7]曾栋才,邓金根,王健,等.PHY 对IEEE15时钟精度影响的研究[J].计算机测量与控制,2013,21(10):2832-2834.。

相关文档
最新文档