NTPD 伪服务器

NTPD Pseudo Servers

晚上好!

我正在与 U-Blox GPS 接收器相连的嵌入式 Linux 系统上配置 NTP。我用过 NTPD 和 GPSD。

我想知道这两者之间的技术区别是什么:

理解对我来说很重要,因为我确实需要高水平的同步,我希望从接收者那里得到正确的信息。 在整个网络上搜索我只找到了对我的疑问的困惑答案...

提前致谢!

FL

SHM 驱动程序本身并未设计为提供 PPS 信号。所以也许你的想法被误导了。

PPS 信号用于获得(精确的) 本地时钟(用于测量外部信号的时钟)的频率,因为它只是提供众所周知的 "pulses" 的定时距离(在本例中为 1s)。其实pps是一个频率源。

另一方面,GPSD 正在与某些设备通信(可以内置到您的硬件中)。然后它通过共享内存将从 GPS 源读取的 时间数据 提供给 ntp。这种数据提供不保证任何时间关系(延迟)。 (例如,由于负载或日程安排,可能会在第二秒内发生得更早或更晚)

从ntp的角度来看,你会有一个真实的date/time标签,但你可能无法确切地知道什么时候相关的时间点确实发生了与你的相关本地时钟。 (对于常见的 ntp 用例,通常不够精确。)这就是 PPS 发挥作用的地方。

根据 GPS 设备如何连接到您的本地计算机(并行、串行、内部总线),您将有一些方法从 脉冲 获取中断pps 信号。 (例如,通过串行连接,您通常会在 DCD 引脚上进行转换)。 相关中断的内部处理将读取本地时钟,然后提供生成的时序信息以供进一步处理。此信息正是 PPS 时钟规程正在使用并提供给 ntp 的信息。您需要在此处配置的是从触发脉冲到读取本地时钟的偏移量。 (通常假设脉冲发生在“第二个”。)

因此,在您的配置中,PPS 信号的 "source" 可能与 GPSD 用于提供 date/time 数据(您的 GPS 设备)的信号相同。 但是,用于 date/time 数据和 pps 的实际 signal 是不同的。 Date/time 将使用数据电报或从 GPS 设备读取的一些寄存器内容,而 pps 将是从该设备证明的输入引脚上的电平变化。

有关详细信息,请从您的 GPS 接收器的接口信息开始,尤其是其中规定的任何时间。然后查看 ntp 并确定哪些驱动程序将允许利用此类输入数据以获得最佳时间质量。