1.0 简介
美国国家半导体的精密PHYTER?实现了 1588精密时间协议(PTP)的时钟关键部分,允许高精度 1588节点实现。当使用包含1588功能器件、边界时钟和透明时钟的网络时,利用非常简单的时钟伺服算法 来确定速率调整和时间校正,可以获得非常高的精度。不需 要复杂处理,只需要对协议测量进行简单平均或滤波即可。 当网路由不具有 1588能力的器件构成时,包延时偏差 (PDV)就很重要。简单时钟伺服不会提供很高精度的同 步。
本文描述了一种同步方法,它可以为较大PDV系统带 来更高的同步精度。这里描述的方法试图检测最小延时,或 “幸运包”。这个方法还利用了机理来独 立控制时钟速率和时间校正,从而将时钟时间精度内的过冲 和摆动降低到最小。
2.0 背景
1588精确时间协议给从机提供了基本信息,用以确 定相对于最高级主时钟的频率以及时间偏差。基本算法包括 使用各自的同步和延时请求消息来测量主机到从机之间和从 机到主机的路径延时。 图1显示了最基本的 1588的时序图。
主机到从机和从机到主机的延时为:
MSdelay = t2 - t1
SMdelay = t4 –t3
单向延时或称为平均路径延时正是这两个延时的平均值
MeanPathDelay = (MSdelay + SMdelay)/2
理想情况下,时间偏移为:
offset_from_master = MSdelay – meanPathDelay
在包含支持-1588网络元件(桥、开关、路由器)的网络中,包延时偏差基本上可以忽略。在边界时钟器件中,同步时钟在网络元件上得以保持,它与上游主机同步时间和速率,并充当下游器件的主机。在透明时钟器件中,因为PTP报文要经过这个器件,所以通过测量其停留时间来校 正包延时偏差。
在无1588能力的网络中不做补偿,导致包延时变量大概 是几十或几百微妙的数量级。这些延时变得非常明显,使得 单一测量极度不正确。
在使用只有简单平均和滤波的基本算法的单开关条件 下,得到了图2在80%流量条件下的MTIE(最大时间间隔误差)测试波形。很容易看到,这种方法提供了相对较差的同 步,其误差达到100ms之大。
2.1 建议算法
在无1588能力元件的网络中,包延时可能在每个器件 的最小物理延时和通过每个器件的最大延时总和的范围内变 化。实践中,每个设备经常会有最小传输延时,因此主机到 从机产生最小的总包延时。基本操作是尝试检测最小延时, 或者“幸运延时”,利用这些包的结果进行速率和时间校 正。算法基本上可分为三级:平均路径延时测量、速率校正 和时间校正。
2.1.1 平均路径延时测量
在大多数网络中,最小路径延时是相对恒定的值。再 次配置网络能够引起步长变化,但是这种配置并不是经常性 的。因此有可能采用长期跟踪最小环回延时(即全部的同步 延时请求计算)的方式来检测最小平均路径。这种方法保持 最后N个平均路径延时测量记录,并从中找到最小值:
Min_meanPathDelay(n) = min(meanPathDelay[n+1-N:n]
其中,Min_meanPathDelay(n)为第n次测量记录中保留的N个数据中的最小值。
进行速率校正和时间校正时确定最小平均路径是关键。
2.1.2 速率校正
速率校正通过测量跟随的同步周期并测量每个消息从 主机开始与到达从机之间的差异进行。这给出了从机频率相 对于主机频率的一个基本比值并可以用来校正频率差。因为 包延时偏差可能很明显,这可能使任何单一的速率测量有很 大的不精确性。
例如,如果同步周期每秒8个同步,误差在 125ms内可能是100us或者接近1000ppm。如果算法是平均 所有速率测量,也许需要成百上千秒来测量速率以得到合理 的估算。使用低廉的振荡器时会发生短期频率变化,平均时 间较长会导致不能对这种频率变化进行控制。 可替代的方法是,建议的算法利用平均路径延时测量来 检测短时等待包时,只使用这些包检测对主机的频率偏移。
如果包满足一个好的最小环回延时要求,通过比较上一个 “好包”时间来测量速率。*估“好包”时,需要在质量和 数量上进行权衡。如果质量过于严格,就可能无法获得足够 的信息来跟踪频率变化。但如果不够严格,速率计算结果中 可能包含过量的偏差。
图3表明用于决定速率的同步消息之间的最基本的关系。
从这个图中,速率比值为
rate_ratio(n) = (T2(n) – T2) / (T1(n) –T1)
另外,为准备另一个测量,需要设置:
T1=T1(n),T2=T2(n)
由于测量中存在误差,仍然需要一些平均或滤波测量。
为了简化,使用指数移动平均或平滑函数来跟踪速率。这个等式为:
rate_avg(n) = Rate_avg(n-1)
+α(rate_ratio(n) – rate_avg(n-1))
α的典型值通常设为0.1,但是在某些诸如提高或降低速率的延长周期场合,这个值可能会有所增加。
2.1.3 时间校正
确定时间偏移的典型方法是使用同步消息来确定对主机 的偏差。常使用平均或滤波的方式来平滑连接,并避免每次 测量的过量校正。对于时间校正来说,利用两个不同的机制 来检测和校正时间偏差。
第一个机制的基本想法是寻找最小延时。基本算法是在 最近的延时中检测最小的主机到从机的延时。为防止过量校 正,也对时间校正进行了限制。这种算法依赖于大量的同步 消息,比-1588网络本身需要的同步报文更多。另外, 在延时请求测量之后,算法可能使用主机到从机延时或从机 到主机延时中产生更小偏差的一个延时。在一个方向的流量 变得拥堵的情况下,另一个方向可以提供更精确的时间偏差 的测量。这个方法基于它拥有的最好信息而在每个周期都进 行校正。如果没有收到真实的最小延时消息报文,这将导致 不适当的校正。原因是算法不能确定测量误差是由时间偏差 还是由包延时偏差引起的。
第二个时间校正机制是尝试只使用延时来进行校正,前 提是这些延时已经确定为真实最小延时包。它有助于避免对 时间值的无效校正。这个机制的基本想法是使用同步和延时 请求来进行时间校正。对于同步消息,如果主机到从机延时 小于最小平均路径延时,测量结果就显示至少有一个主机到 从机延时减去最小平均路径延时的时间偏差。这种情况下, 时间校正是基于偏差测量进行的。如果主机到从机的延时高 于最小平均路径延时,无法知道误差是由时间偏差引起的还 是包延时偏差引起的,所以不会做校正。对于延时请求消息 也相似,如果从机到主机的延时小于最小平均路径延时,测 量结果就显示有至少为平均路径延时减去从机到主机延时的 时间偏差发生。注意,这里检测到的时间偏差是正的,而主 机到从机延时测量中的结果是负的。
两个方法都是通过调节一段时间内的精准时间协议的时 钟速率来进行时间校正。为了避免速率的大波动,每一个校 正都限制幅值。这将有助于降低由于时间偏移的快速校正而 引起的时间间隔误差。在第二个机理中通过保持时间误差值 进行处理。当因接收到的同步或延时请求引起的新误差计算 出来时,如果这个新误差代表了一个更大的偏差,时间误差 就更新为新值。否则,时间误差保持不变。基于时间误差, 只能进行有限的校正并从时间误差中去除。因此,在完成校 正之前,偏移测量可能进行多次校正。
第二个机理很少有无效的校正,但是呈现出更长的无校 正周期;基于速率校正误差,很可能会出现漂移。尽管第二 个机理在重流量和多开关的条件下显得更好,但两者的总体 结果相似。由于第二个机理产生更好的结果,结论部分详述 这些结果。
3.0 测试平台
测试时钟伺服算法的*估平台是基于FPGA的常规*估 平台,ALP(模拟测试发射平台)。ALP平台包含一个小的 FPGA来实现MAC接口、数据包缓冲和与以太网物 理层设备进行通讯的MDIO管理界面。ALP板子包括与PC主 机通讯的USB接口。在PC主机上,ALP软件运行PTP协议来 建立和分析包并控制PHY中的PTP硬件的操作。ALP平台合 并了支持两个独立的PHY器件的逻辑和连接。
测试平台对包和控制的处理能力进行了限制,它限制了 可以处理的同步周期的数量。每秒多达8个同步脉冲时同步工 作良好,但是超过这个值则不能维持速率。由于电信和其它 的应用需要的速率是每秒大约100个同步消息,这个平台不 能提供嵌入式平台能够提供的相同等级下的同步。 硬件没有限制器件工作在更高同步速率环境中的器件。
这个 限制特殊针对*估平台。 ALP平台提供了一个GUI和支持Python脚本语言的脚本 机理。通过ALP GUI,在Python中运行PTPv2协议和时钟伺服算法可以得到全面测试。
对于最简单的测试,由单HP网络设备开关组成网络。使 用独立的ALP平台并设置为想提供网络的规定比例利用率的 开关发送广播流量来产生额外的流量。针对有主机、从机之 间三个开关组成的网络的测试也做过。
PTP主机使用一个OCXO作为参考时钟源,PTP从机使 用的是一个廉价TCXO参考。
4.0 测试结果
建议算法通过流量负载达到80%以上的单开关或者多开关来测试性能。设定主机每秒发送8个同步消息,而从机相对 于每个同步消息,发送一个延时-响应消息。流量负荷通过随 机大小的广播包来产生,变化内部包间隔以产生特定流量。 流量通过测试网络中的一个开关的可用端口引入。时间误差 数据采用 PTP主机的事件时间戳能力来捕获并保存以备*估。除计算标准偏差外,在每个流量条件下,还产生 MTIE和TDEV(时间偏差)图。测试持续时间最短为4小时, 最长为8小时。
4.1 单开关结果
下图显示了单开关在20%,50%和80%流量负载时的 MTIE,TDEV的结果。除了测试结果,测试图形还显示了通 信规格中的两个屏蔽。这个结论很容易满足G.823对于PDH 接口的要求,但不能完全满足G.811 PRC要求。需要进一步 优化,尤其是提高同步速度,来满足PRC要求。
4.2 多开关测试
测试是在三个开关网络中完成的,三个开关由一个DLink DES1105 5端口开关、一个Linksys SD205 5端口开关和一个 HP网络设备8000M组成。测试结果是在三个开关20%,50% 的利用率,流量注入到第三个开关的条件下得到的。如所期 望,这个结果不如单开关好,但是仍然显示出所示满足规格 的潜力。如下图形表明不同流量条件下的MTIE和TDEV。
4.3 其它测试结果
虽然没有得到具体的结果,但是算法表现为对流量在0到 80%之间变化的良好响应。如果流量超过80%,算法仍然需要精简以便处理明显更少的最小延时包。
5.0 其它机会
这个文档描述了一种工作算法,但仍有很大可能在将来 的开发中提高和测试这种算法。以下列出了一些可能: 增加同步速率:增加同步速率需要将平台移到可以支持 更高包速率,可能达到100同步/秒或者更高这样的平台上。 这可能需要移到诸如飞思卡尔的MCF5234BCCKIT Coldfire 这样的嵌入式平台。
这样做允许对算法进行很多改进,例如 为每个速率和时钟校正做许多延时测量等。 改善速率适应性:一些最大误差是由于算法在跟踪本地 振荡器频率变换时的响应缓慢造成的。跟踪速率并且进行调 整的改进算法在整体结果上具有很大的提高。 更大的网络上测试:具有更多实际流量条件的更大网络 上进行扩展测试。
VLAN标签上测试:使能VLAN标签、允许基于VLAN优 先级域,处理PTP包的802.1Q优先级可以提高测试结 果。
6.0 结论
这个文档描述了由无1588能力的器件组成的网络 中,使用以太网物理层设备来同步时钟的一种算 法。此算法虽然不能在所有条件下提供完整的解决方案,但 表明了这种解决方案的可行性。每秒8个同步消息条件下,系统可以准确的在重负载单开关中进行同步。在更大的同步 消息速度下,期望这个算法在更大的网络中有更高的精确等级。