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 时间校正
确定时间偏移的典型方法是使用同步消息来确定对主机 的偏差。常使用平均或滤波的方式来平滑连接,并避免每次 测量的过量校正。对于时间校正来说,利用两个不同的机制 来检测和校正时间偏差。
第一个机制的基本想法是寻找最小延时。基本算法是在 最近的延时中检测最小的主机到从机的延时。为防止过量校 正,也对时间校正进行了限制。这种算法依赖于大量的同步 消息,比IEEE-1588网络本身需要的同步报文更多。另外, 在延时请求测量之后,算法可能使用主机到从机延时或从机 到主机延时中产生更小偏差的一个延时。在一个方向的流量 变得拥堵的情况下,另一个方向可以提供更精确的时间偏差 的测量。这个方法基于它拥有的最好信息而在每个周期都进 行校正。如果没有收到真实的最小延时消息报文,这将导致 不适当的校正。原因是算法不能确定测量误差是由时间偏差 还是由包延时偏差引起的。
第二个时间校正机制是尝试只使用延时来进行校正,前 提是这些延时已经确定为真实最小延时包。它有助于避免对 时间值的无效校正。这个机制的基本想法是使用同步和延时 请求来进行时间校正。对于同步消息,如果主机到从机延时 小于最小平均路径延时,测量结果就显示至少有一个主机到 从机延时减去最小平均路径延时的时间偏差。这种情况下, 时间校正是基于偏差测量进行的。如果主机到从机的延时高 于最小平均路径延时,无法知道误差是由时间偏差引起的还 是包延时偏差引起的,所以不会做校正。对于延时请求消息 也相似,如果从机到主机的延时小于最小平均路径延时,测 量结果就显示有至少为平均路径延时减去从机到主机延时的 时间偏差发生。注意,这里检测到的时间偏差是正的,而主 机到从机延时测量中的结果是负的。
两个方法都是通过调节一段时间内的精准时间协议的时 钟速率来进行时间校正。为了避免速率的大波动,每一个校 正都限制幅值。这将有助于降低由于时间偏移的快速校正而 引起的时间间隔误差。在第二个机理中通过保持时间误差值 进行处理。当因接收到的同步或延时请求引起的新误差计算 出来时,如果这个新误差代表了一个更大的偏差,时间误差 就更新为新值。否则,时间误差保持不变。基于时间误差, 只能进行有限的校正并从时间误差中去除。因此,在完成校 正之前,偏移测量可能进行多次校正。
第二个机理很少有无效的校正,但是呈现出更长的无校 正周期;基于速率校正误差,很可能会出现漂移。尽管第二 个机理在重流量和多开关的条件下显得更好,但两者的总体 结果相似。由于第二个机理产生更好的结果,结论部分详述 这些结果。
3.0 测试平台
测试时钟伺服算法的*估平台是基于FPGA的常规*估 平台,ALP(模拟测试发射平台)。ALP平台包含一个小的 FPGA来实现MAC接口、数据包缓冲和与DP83640以太网物 理层设备进行通讯的MDIO管理界面。ALP板子包括与PC主 机通讯的USB接口。在PC主机上,ALP软件运行PTP协议来 建立和分析包并控制PHY中的PTP硬件的操作。ALP平台合 并了支持两个独立的PHY器件的逻辑和连接。