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

我最近知道/system/etc/目录中的gps.conf文件。 似乎将NTP_SERVER值调整到距离通常位置较近的NTP服务器可以改善TTFF。

读取LocationProvider类中的源代码,似乎在启动时,从NTP服务器检索时间并在计算中“注入”。 AFAIK每个GPS坐在一个非常准确的primefaces钟,星座中的每一个都被同步到所谓的“GPS时间”。 一旦接收机拥有4颗或更多的卫星,它解决了(通过某种方法)一个方程,其中有四个未知数:x,y,z,b; 其中(x,y,z)是接收机位置,b是接收机内部时钟和(正确的)GPS时间之间的时间差。 一旦解决了问题,接收机时钟将与正确的时间同步。 (请纠正我,如果我错了)。

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

  1. GPS时间大致是TAI(国际primefaces时间)加上一个偏移量。 这两次不依赖于地球自转,但是UTC确实如此。 鉴于NTP服务器返回UTC时间,有可能从UTC时间推断GPS时间?
  2. 如何从较近的服务器检索NTP时间可以提高GPS时间逼近的“质量”?
  3. 假设我们有一个初始的GPS时间值(从NTP时间推断出来),那么注入的是什么? 这个时间值被认为是正确的,只有x,y,z为未知数才能解出这个方程。 如果是这样,那么第一个修正也只是一个近似,不是吗?
  4. GPS时间的更高质量初始逼近如何提高TTFF? 是否因为质量较差的NTP时间,第一次修复被认为是不可接受和丢弃的?
  5. 是否有一个近似的初始位置帮助检索下一个正确的修复(如只听sats的子集)?

Solutions Collecting From Web of "GPS:NTP时间注入是如何工作的"

很好的探索一下维基百科和一些其他来源,让我猜测一下。

  1. 是的,你可以从UTC时间推断GPS时间。 您只需要知道每15秒发送一次的偏移,并在大约18个月内更改一次。 来源: 维基百科

  2. NTP不会给你准确的时间。 它测量从客户端到服务器的时间消息以及从服务器到客户端的响应时间。 这些时间然后用于计算连接的延迟。 然后将其应用为接收时间的偏移量。 这适用于对称的路线。 如果路线不对称,则出现错误。 所以服务器越靠近,就越能降低不对称的机会和水平,从而降低错误率。 资料来源: 维基百科

  3. NTP信号不直接用于获取GPS定位。 但是为了准确的修复,你需要非常准确的时钟。 我们在这里谈论的是纳秒。 GPS卫星确实传输当前GPS时间,但即使以光速行进,也存在一些延迟。 GPS接收机无法知道延迟是什么,所以它必须从几个接收到的信号来近似。 随着每个传输收到时钟得到更加精确。 因此,开始的时间越早,获得精确时钟所需的时间就越less。 来源: 维基百科

  4. 在3中很好的解释了。 – 时钟误差越小,接近正确时间所需的信号就越less。

  5. 我在这里有点猜测,但大致的位置可以帮助你更好地近似从卫星的距离,从而延迟。 (不知道这是否真的被使用。)

我希望它至less有一点意义;-)

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

根据该文件,对于GPS接收机的热启动 ,您需要知道20s内的时间,100km内的位置,25m / s内的速度以及至多几周以前的年历数据。 您仍然需要从每颗卫星下载ephemiride数据,根据GPS接收机types,需要30秒到3分钟。

对于热启动 ,您还需要星历表数据(它们有效期为4小时)。 他们也可以通过A-GPS(见下文)。

NTP协议使用从原始时间源(GPS,primefaces钟,…)开始的服务器层次结构。这被称为层0源。 直接连接到此源的NTP服务器称为stratum-1。 使用此服务器作为其上游服务器是层2,依此类推。 即使对于第一层服务器(由于CPU中断延迟,串行端口延迟,温度振荡器变化),您也需要特殊的调谐硬件才能实现小于1 ms的错误。

如果networking正常(例如,没有饱和的DSL链路),则可以达到10毫秒左右的精度。 例如,如果NTP池的时间精确到100毫秒, NTP池就认为它的服务器有效并且足够好。 NTP的时间精度并不取决于您和NTP服务器之间的地理位置,而更多取决于服务器的层次,质量以及服务器基于networking拓扑的多远。

Android手机通常在至less1秒内知道时间。 无论是通过GSMnetworking定期时间同步,或者如果数据连接(无线或蜂窝)可用,也可以通过NTP。

对于提到的应用程序FasterGPS – 将您的NTP服务器更改为更好的将不会帮助您有更快的TTFF。 为此,你需要精确到几纳秒,这是不可能通过NTP的。 只有GPS芯片本身能够以这种精度跟踪时间。 有什么帮助Android有更快的TTFF是:

  • 你的android手机已经有20多年的时间了
  • 通过Wifi或从GSMnetworking(基于传输塔的几公里内)具有近似的位置,
  • 使用A-GPS – 它通过互联网下载所有GPS卫星的年历和星历,所以你不需要从GPS卫星下载(星历30秒,星历15分钟)。 使用A-GPS,您可以使用热启动,并在10秒内有TTFF。

Ian在评论中正确地回答了GPS接收机的工作原理。 如果接收机有更精确的接收机时钟偏差估计,接收机将更快地find解决scheme。 许多接收机实现了一个迭代解决scheme,依赖于接收机位置和时钟偏差的初始估计。 如果这些估计值已经接近真值,则需要更less的迭代。 这只是TTFF会less一些的一部分。 还有其他重要的因素。 如果初始位置和时间估计是好的,那么用于获取卫星信号的search过程将花费很less的时间,因为接收机可以计算哪些卫星应该是可见的,并且还可以估计每个相对信号经历的近似多普勒频移到接收机的参考帧。