SHM 驱动程序本身并非设计为提供 PPS 信号。所以也许你的想法是错误的。
PPS 信号用于获取本地时钟(用于测量外部信号的时钟)频率的(精确)概念,因为它仅提供众所周知的“脉冲”定时距离(在这种情况下为 1 秒)。实际上pps是一个频率源。
另一方面,GPSD 正在与某些设备进行通信(可以内置在您的硬件中)。然后它将通过共享内存从 GPS 源读取的时间数据提供给ntp。这种数据供应不保证任何时间关系(延迟)。(例如,由于负载或调度,可能在第二秒内更早或更晚发生)
从 ntp 的角度来看,您将拥有一个真实的日期/时间标签,但您可能不知道与本地时钟相关的相关时间点何时发生。(通常对于常见的ntp用例来说不够精确。)这就是 PPS 发挥作用的地方。
根据 GPS 设备与本地计算机的连接方式(并行、串行、内部总线),您将有一些方法可以从 pps 信号中获取脉冲中断。(例如,通过串行连接,您通常会在 DCD 引脚上获得转换)。相关中断的内部处理将读取本地时钟,然后提供生成的时序信息以供进一步处理。此信息正是 PPS 时钟规程正在使用并提供给 ntp 的信息。这里需要配置的是从触发脉冲到读取本地时钟的偏移量。(通常假定脉冲发生在“秒”。)
因此,在您的配置中,PPS 信号的“来源”很可能与用于提供日期/时间数据(您的 GPS 设备)的 GPSD 相同。但是, 用于日期/时间数据和 pps的实际信号是不同的。日期/时间将使用从 GPS 设备读取的数据电报或一些寄存器内容,而 pps 将是从该设备证明的输入引脚上的电平变化。
有关详细信息,请从您的 GPS 接收器的接口信息开始,尤其是其中说明的任何时间。然后查看 ntp 并确定哪些驱动程序将允许利用此类输入数据以获得最佳时间质量。