【问题标题】:Time precision between NTP and GPS sourceNTP 和 GPS 源之间的时间精度
【发布时间】:2012-09-30 09:50:06
【问题描述】:

我有 NTP 客户端实现(在 Linux 上)向(Stratum 1 或 2)NTP 服务器发送/接收数据包并获取板上的服务器时间。另外,我在 Linux 上运行了另一个应用程序,它给了我 GPS 时间。 在我从 NTP 和 GPS 源获取时间信息之前,我将在板上手动设置时间(使用日期)接近当前 GPS 时间(此信息取自 http://leapsecond.com/java/gpsclock.htm)。

保持板上的系统时间作为参考,我将使用这个参考时间与 NTP(比如 X)和 GPS(Y)的差异。 X 和 Y 之间的差异将达到 500+ 毫秒。我很想知道 NTP 和 GPS 之间的时间精度。 500 毫秒是预期值吗?

我尝试在 NTP 客户端上启用硬件时间戳,但没有任何区别。

【问题讨论】:

  • 在我给你答案之前有两个问题:你的 GPS 是通过 USB 连接的吗?为什么不将 ntpd 设置为使用 gps 作为时间源?
  • 安装程序不在我工作的地方。我会检查它并让你知道它是否通过 USB 连接。你问我这个问题有什么具体原因吗?而且,不使用 gps 的原因是,如果我们将电路板放在没有连接的远程位置,那么这将是一个问题。
  • USB 上的 GPS 真的很紧张。如果没有连接,你将如何使用 ntpd?
  • 我的意思是说,没有GPS连接或GPS信号强度低,这种情况下,我需要使用NTP服务器。

标签: time gps ntp gps-time


【解决方案1】:

使用 GPS 作为参考时钟归结为一件事:PPS(每秒脉冲)。其他一切都非常紧张(不稳定/不可预测)。

PPS 输出非常准确(纳秒级)。

PPS 不包含任何信息,除非第二个开始。这意味着我们必须从另一个来源为我们的时钟提供日期和时间。 NMEA(来自 GPS 的实际数据)很好,只要它足以确定时间到一秒的精度。

我的猜测是您的“GPS 时间”是来自 GPS“数据出口”的时间(和日期)。这个时间可以减少 500 毫秒(甚至更糟),这是正常的。这就是为什么我们不将该时间用作准确的参考时钟。

【讨论】:

  • PPS 信号也必须通过低延迟方法连接,例如 RS232 控制线或中断触发 GPIO 引脚。如果通过 USB 转 RS232 电缆连接,USB 协议会给 PPS 信号增加很多延迟。
【解决方案2】:

您可能想了解时间参考。我认为 GPS 时间系统与那些时间服务器返回的 UTC 时间并不完全相同。原子钟测量的时间会定期添加闰秒,以使UTC时间在不稳定的天文时间+/1秒内。

您的 NTP 实施是否能够纠正网络延迟?尝试使用对您而言具有低延迟的 NTP 服务器...

这些因素可以解释你看到的差异。

【讨论】:

  • 谢谢西蒙。但我认为,网络延迟不会是造成差异的原因。在计算服务器上的时间时,考虑到网络延迟。
  • GPS 不使用天文时间,但也使用 TAI。 UTC 的偏移量是广播的,所以这并不能解释差异。正如@JeffMerlin 解释的那样,NMEA 数据流的时间不准确,确实如此。
  • Is your NTP implementation able to correct network latency ? 考虑到延迟补偿是 NTP 协议的核心部分的奇怪问题......此外,闰秒的存在或不存在不能解释 小数 差异,例如OP 报告的 0.5 秒。
猜你喜欢
  • 2015-02-17
  • 1970-01-01
  • 2015-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-25
相关资源
最近更新 更多