首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GPS时间同步

GPS时间同步
EN

Stack Overflow用户
提问于 2009-02-16 00:51:34
回答 1查看 2.5K关注 0票数 5

我正在解析来自一个设备的NMEA GPS数据,该设备发送时间戳而不是毫秒。据我所知,这些设备在发送带有.000时间戳的句子时会使用一个特定的触发点。

因此,我正在解析GGA语句,并获取收到$时的时间戳(我使用串行端口波特率补偿在同一操作中读取的任何其他字符)。

根据此信息,我计算了用于校正系统时间的偏移量,但当我将设置的时间与一些NTP服务器进行比较时,我会得到250ms的恒定差-当我手动更正此信息时,我的偏差在20ms以内,这对我的应用程序来说是可以的。

当然,我不确定这个偏移量是从哪里来的,也不知道它是不是特定于我正在使用的GPS鼠标或我的系统。我是否使用了错误的$字符,或者是否有人确切知道应该如何处理?我知道这个问题很模糊,但任何可能导致这种偏移的提示都会非常有帮助!

下面是我的设备中的一些样本数据,我将使用$字符作为时间偏移量:

代码语言:javascript
复制
$GPGSA,A,3,17,12,22,18,09,30,14,,,,,,2.1,1.5,1.6*31
$GPRMC,003538.000,A,5046.8555,N,00606.2913,E,0.00,22.37,160209,,,A*58
-> $ <- GPGGA,003539.000,5046.8549,N,00606.2922,E,1,07,1.5,249.9,M,47.6,M,,0000*5C
$GPGSA,A,3,17,12,22,18,09,30,14,,,,,,2.1,1.5,1.6*31
$GPGSV,3,1,10,09,77,107,17,12,63,243,30,05,51,249,16,14,26,315,20*7E
$GPGSV,3,2,10,30,24,246,25,17,23,045,22,15,15,170,16,22,14,274,24*7E
$GPGSV,3,3,10,04,08,092,22,18,07,243,22*74
$GPRMC,003539.000,A,5046.8549,N,00606.2922,E,0.00,22.37,160209,,,A*56
-> $ <- GPGGA,003540.000,5046.8536,N,00606.2935,E,1,07,1.5,249.0,M,47.6,M,,0000*55
$GPGSA,A,3,17,12,22,18,09,30,14,,,,,,2.1,1.5,1.6*31
$GPRMC,003540.000,A,5046.8536,N,00606.2935,E,0.00,22.37,160209,,,A*56
-> $ <- GPGGA,003541.000,5046.8521,N,00606.2948,E,1,07,1.5,247.8,M,47.6,M,,0000*5E
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-02-16 01:26:57

你必须考虑GPS设备中正在发生的事情:

  • 接收卫星信号并计算出位置、速度和时间,
  • 编写NMEA报文并放入串口

报文中

GPS设备的CPU相对较慢(与现代计算机相比),因此您观察到的这种延迟是设备在生成位置和开始传输数据之间必须进行的处理的结果。

2005年消费级全球定位系统接收器延迟的Here is one analysis。在那里,您可以找到特定NMEA句子的延迟测量。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/551951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档