同时访问 NMEA 参考时钟和 GPS 位置

同时访问 NMEA 参考时钟和 GPS 位置

我注意到有两种方法可以从 GPS(使用 PPS)获取准确的时间。使用 ntpd 或

我的问题:我想要非常准确的时间并访问 GPS 位置数据。因此通过 gpsd 使用共享内存可能会太慢。

在我的 ntp 配置中,我目前使用NMEA 参考时钟. GPS接收器(带PPS)分别连接到/dev/ttyS0和。/dev/gps0

我无法同时使用 ntpd 和 NMEA 以及 gpsd 来获取位置数据。如果ntpd正在运行 gpsd 将不会获取任何数据并在超时后退出。但如果 ntpd 正在运行,则会cat /dev/ttyS0在控制台上打印 NMEA 数据。所以我可以从串行线读取。那么为什么如果 ntpd 正在运行,gpsd 无法访问串行数据?我粘贴了 gpsd 的调试消息这里。我启动 gpsd,然后尝试连接 cgps。

我知道这也许是一个关于并行打开设备的问题......

编辑

现在我用

server 127.127.20.0 mode 18 minpoll 4 maxpoll 4 iburst prefer true
fudge 127.127.20.0 flag1 1 flag2 0 flag3 1 flag4 0 time2 0.475

从clockstats文件中检索位置数据是可行的。有没有比解析这个文件更好的解决方案?

答案1

为什么要使用 gpsd?只需使用 NMEA 驱动程序并使用 flag1 启用 PPS:

server 127.127.20.0 minpoll 4  mode 18 prefer   # NMEA serial port, 16 = 9600 baud, 2 = $GPGGA
fudge 127.127.20.0  time2 0.435 flag1 1 flag3 0

您应该将软糖时间更改为合适的时间。

您可以从clockstats文件中获取位置数据。

相关内容