我有NTP客户端实现(在Linux上)向(Stratum 1或2)NTP服务器发送/接收数据包并在板上获取服务器时间。另外,我在Linux上运行另一个应用程序,它给了我GPS时间。 在我从NTP和GPS源获取时间信息之前,我将在接近当前GPS时间的电路板上手动设置时间(使用日期)(此信息来自http://leapsecond.com/java/gpsclock.htm)。
将电路板上的系统时间作为参考,我将使用NTP(比如说X)和GPS(Y)来区分这个参考时间。 X和Y之间的差异将达到500+ ms。我很想知道NTP和GPS之间的时间精度。 500毫秒是预期值吗?
我尝试在NTP客户端上启用硬件时间戳,但它没有任何区别。
答案 0 :(得分:2)
使用GPS作为参考时钟归结为一件事:PPS(每秒脉冲数)。其他一切都非常紧张(不稳定/不可预测)。
PPS输出非常准确(纳秒)。
PPS除了第二次启动时不包含任何信息。这意味着我们必须从另一个来源为我们的时钟提供日期和时间。 NMEA(来自GPS的实际数据)很好,只要它足以确定达到一秒精度的时间。
我的猜测是你的“GPS时间”是GPS“数据插座”的时间(和日期)。这个时间可以关闭500毫秒(甚至更糟),这是正常的。这就是为什么我们不把那个时间用作准确的参考时钟。
答案 1 :(得分:-1)
您可能想要了解时间参考。我认为GPS时间系统与那些时间服务器返回的UTC时间并不完全相同。原子钟测量的时间周期性地增加闰秒,使UTC时间在天文时间的+ / 1秒内不稳定。
您的NTP实施是否能够纠正网络延迟?尝试使用具有低延迟的NTP服务器......
这些因素可以解释您所看到的差异。