首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GPS: NTP时间注入是如何工作的

GPS: NTP时间注入是如何工作的
EN

Stack Overflow用户
提问于 2011-11-29 09:26:25
回答 3查看 35K关注 0票数 30

我最近知道了一个gps.conf文件在/system/etc/目录中。似乎将NTP_SERVER值调整到更接近通常位置的NTP服务器改进了TTFF。

读取LocationProvider类中的源代码,似乎是在启动时,从NTP服务器检索时间,并在计算中“注入”时间。AFAIK每个GPS卫星都有一个非常精确的原子钟,星座中的每一个都与所谓的"GPS时间“同步。一旦接收机有4颗或4颗以上的卫星,它就用某种方法求解一个方程,其中存在四个未知数: x,y,z,b,其中(x,y,z)是接收机的位置,b是接收机内部时钟与(正确的) GPS时间之间的时间差。一旦它有一个修复,接收时钟是同步与正确的时间。(如果我错了,请纠正我)。

到目前为止,我对NTP时间注入的工作方式有一些疑问:

  1. GPS时间大约是TAI (国际原子时)加上一个偏移量。这两次并不取决于地球自转,但世界协调时却是如此。假设NTP服务器返回UTC时间,那么可以从UTC时间推断GPS时间吗?
  2. 从较近的服务器检索NTP时间如何提高GPS时间近似值的“质量”?
  3. 假设我们有一个初始GPS时间值(从NTP时间推断),注入是关于什么的?用这个时间值来解只有x,y,z为未知数的方程是正确的吗?如果是这样的话,那么第一个修正也只是一个近似,不是吗?
  4. GPS时间的高质量初始近似如何改善TTFF?是否因为NTP的质量较低,第一次修复被认为是不可接受的,并被丢弃了?
  5. 拥有一个近似的初始位置是否有助于检索下一个正确的修复(比如只监听sats的一个子集)?
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-07 23:16:51

好吧,查一下维基百科和其他一些来源,让我来猜测一下。

  1. 是的,你可以从UTC时间推断GPS时间。你只需知道偏移量,它每15秒传送一次,每18个月变化一次。来源:维基百科
  2. NTP没有给你准确的时间。它测量从客户端到服务器的时间消息和响应从服务器到客户端的时间。然后使用这些时间来计算连接的延迟。然后将其作为偏移量应用于接收时间。这种方法适用于对称路线。如果路由是不对称的,则会出现错误。这样更接近服务器,降低了不对称测量的机会和水平,从而降低了误差。资料来源:维基百科
  3. NTP信号不能直接用于GPS定位。但是要想得到精确的修复,你需要非常精确的时钟。我们说的是纳秒。GPS卫星确实传输当前的GPS时间,但即使它以光速飞行,也有一些延迟。GPS接收机没有办法知道延迟是什么,所以它必须接近几个接收到的信号。每收到一次传输,时钟就会变得更精确。因此,你在开始的时间越好,你需要接收的时间信号就越少,才能得到一个准确的时钟。来源:维基百科
  4. 很好地解释了在3。-较低的时钟误差,较少的信号需要接近正确的时间。
  5. 我在这里很少猜测,但是有一个大致的位置可以帮助你更好地估计离卫星的距离,从而延迟。(不确定这是否真的被使用了。)

我希望这至少有点道理;-)

票数 23
EN

Stack Overflow用户

发布于 2015-06-15 08:19:56

我的回答将更多地集中在你问题的NTP方面。对于GPS,我研究过mirabilos在评论中提到的这份PDF文件

根据该文件,对于全球定位系统接收机的暖启动,你需要知道时间在20岁以内,位置在100公里以内,速度在25米/秒以内,以及年历数据在最多几周前。你仍然需要从每颗卫星下载对视仪数据,根据GPS接收器类型,这需要30秒到3分钟。

对于热启动,还需要对视表数据(它们的有效期为4小时)。它们也可以通过A获得(见下文)。

NTP协议使用从原始时间源开始的服务器层次结构- GPS、原子钟、.这就是所谓的层-0源。直接连接到此源的NTP服务器称为层-1.服务器使用这个作为它的上游服务器是层-2等等。您需要特殊的调优硬件,以实现小于1毫秒的错误,即使是对地层-1服务器(由于CPU中断延迟,串口延迟,温度振荡器变化)。

对于正常网络上的正常HW (例如,不饱和的DSL链路),您可以达到大约10 ms的精度。例如,NTP池认为它的服务器是有效的,如果服务器在100 ms内精确的话,它们就足够好了。来自NTP的时间的准确性并不取决于您和NTP服务器之间的地理位置,而是更多地取决于该服务器的阶层、质量以及服务器基于网络拓扑的距离。

Android手机通常在至少1秒的准确度内知道时间。通过GSM网络进行定期时间同步,或者如果数据连接(wifi或蜂窝)可用,也可以通过NTP。

对于上述应用程序FasterGPS -将您的NTP服务器更改为更好的服务器将无助于您拥有更快的TTFF。为此,您需要在纳秒内有精确的时间,这在NTP中是不可能的。只有GPS芯片本身才能精确地跟踪时间。在android上有更快的TTFF是有帮助的:

  • 在你的android手机上,你已经在20多岁的时候玩得很开心了。
  • 通过Wifi或GSM网络(基于传输塔的几公里以内)进行近似定位
  • 使用A-GPS -它可以通过互联网下载所有GPS卫星的历书和星历的新副本,所以你不需要从GPS卫星上下载它(星历需要30秒,年历需要15分钟)。使用A,您可以使用热启动和TTFF在10秒以下.
票数 3
EN

Stack Overflow用户

发布于 2014-04-16 10:10:11

伊恩的评论是正确的,答案与GPS接收器的实际工作方式有关。如果接收机对接收机时钟偏差有更准确的估计,它将更快地得到解决方案。许多接收机实现了一种迭代解决方案,它依赖于对接收机的位置和时钟偏差的初始估计。如果这些估计值已经接近真实值,则需要更少的迭代。这只是TTFF减少的部分原因。还有其他重要因素。如果初始位置和时间估计良好,那么获取卫星信号的搜索过程将花费更少的时间,因为接收机可以计算哪些卫星应该是可见的,并且它还可以估计每个信号相对于接收机的参考帧所经历的近似多普勒频移。

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

https://stackoverflow.com/questions/8308412

复制
相关文章

相似问题

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