我正在研究定时同步,并且想要测量向系统注入各种故障对时间同步的影响。据我了解,Linux 计算机上的 PPS 设备具有与其关联的“assert”等文本文件,可为您提供时间和序列 ID。这些时间戳的精确度/可靠性如何? (来源:https://docs.kernel.org/driver-api/pps.html)
就上下文而言,Linux 内核中的 /dev/pps0 是我正在谈论的设备,它与我的 Intel I210 NIC 关联。我正在使用 ptp4l 将我的 Intel I210 NIC 同步到另一台 PC 上的另一个 Intel NIC。当我同步工作时,我可以看到 PPS 断言cat /sys/class/pps/pps0/assert
每秒给出一个时间戳和序列 ID,但我不确定这个数字有多可靠。 (编辑:表 2 中的以下链接显示内核 PPS 精确到大约 1 us(关联))。可以使用 testpps 实用程序找到相同的时间戳(关联)。
另一种方法是探测 NIC 本身上的物理 PPS 输出,这可能更准确,但我的 Intel I210 NIC 似乎没有可以用示波器探测的物理 PPS 输出。
编辑2:为了减轻一些混乱,我将提供一个图像,显示如何使用示波器探测两台 PC 的 1PPS 信号来比较参考时钟信号(来自 Grandmaster),并与从时钟进行比较:
另一种方法是跟踪assert
时间戳(假设它做了我认为它会做的事情)并使用它来比较 GM 和从设备的 1PPS 信号何时被置位,并比较两者以评估同步。我的问题是,这个assert
时间戳有多准确? @Bib 指出他们实现了 500 ns 的抖动,而且我在网上看到它的精度可以在 1 us 左右。因为我希望最准确地指示 GM 和从属时钟内的设备同步的准确程度,所以使用示波器解决方案最为有意义,假设 Intel I210 NIC 具有可探测的物理 1PPS 输出。