Android 全球定位系统:NTP时间注入的工作原理

Android 全球定位系统:NTP时间注入的工作原理,android,time,gps,ntp,Android,Time,Gps,Ntp,我最近知道/system/etc/目录中有一个gps.conf文件。 似乎将NTP_服务器值调整到更靠近通常位置的NTP服务器可以提高TTFF 在LocationProvider类中读取源代码,似乎在启动时,时间从NTP服务器检索并“注入”到计算中。 AFAIK每个GPS卫星都有一个非常精确的原子钟,星座中的每一个都与所谓的“GPS时间”同步。一旦接收器有4颗或更多的卫星,它(通过某种方法)解出一个方程,其中有四个未知量:x,y,z,b;其中(x,y,z)是接收器位置,b是接收器内部时钟和(正确

我最近知道
/system/etc/
目录中有一个
gps.conf
文件。 似乎将NTP_服务器值调整到更靠近通常位置的NTP服务器可以提高TTFF

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

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

  • GPS时间大约是TAI(国际原子时)加上一个偏移量。这两次不取决于地球自转,但UTC有。鉴于NTP服务器返回UTC时间,可以从UTC时间推断GPS时间
  • 从较近的服务器检索NTP时间如何提高GPS时间近似的“质量”
  • 假设我们有一个初始GPS时间值(以某种方式从NTP时间推断),注入是关于什么的?这个时间值是否被认为是正确的,以解决只有x,y,z为未知量的方程?如果是这样,那么第一个修正也只是一个近似值,不是吗
  • GPS时间的高质量初始近似如何改善TTFF?是否因为NTP时间质量较低,第一次修复被视为不可接受并被丢弃
  • 拥有一个大致的初始位置是否有助于检索下一个正确的定位(比如只听SAT的子集)

  • 好吧,我来浏览一下维基百科和其他一些资料来源,让我猜猜

  • 是的,您可以从UTC时间推断GPS时间。你只需要知道偏移量,它每15秒传输一次,大约18个月改变一次。资料来源:

  • NTP没有给你确切的时间。它测量消息从客户端到服务器的时间以及响应从服务器到客户端的时间。然后使用这些时间计算连接的延迟。然后将其作为接收时间的偏移量应用。这适用于对称路线。如果路由是非对称的,则存在错误。因此,服务器越近,不对称的机会和程度就越低,错误也就越小。资料来源:再次

  • NTP信号不直接用于获取GPS定位。但要想精确定位,你需要非常精确的时钟。我们这里说的是纳秒。GPS卫星确实传输当前的GPS时间,但即使它以光速移动,也会有一些延迟。GPS接收机无法知道延迟是什么,所以它必须根据几个接收信号进行近似计算。每收到一次传输,时钟就变得更精确。因此,一开始的时间越长,获得精确时钟所需的时间信号就越少。资料来源:

  • 很好,在第3节中已经解释得差不多了时钟误差越低,接近正确时间所需的信号就越少

  • 我在这里很少猜测,但有一个大致的位置可以帮助你更好地估计距离卫星,从而延迟。(不确定这是否真的被使用了。)


  • 我希望它至少有一点道理;-)

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

    我的回答将更多地集中在卫星的NTP侧你的问题。对于全球定位系统,我研究了米拉比洛斯在评论中提到的

    根据该文件,对于GPS接收机的热启动,您需要知道20秒内的时间、100公里以内的位置、25米/秒以内的速度以及最多几周前的历书数据。你仍然需要从每颗卫星上下载蜉蝣数据,根据GPS接收器类型,这需要30秒到3分钟

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

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

    使用普通网络上的普通硬件(例如未饱和的DSL链路),您可以达到大约10毫秒的精度。例如,如果其服务器的时间精度在100 ms以内,则认为其服务器有效且足够好。NTP的时间精度不取决于您和NTP服务器之间的地理位置,而更多取决于该服务器的层次、质量以及服务器基于网络拓扑的距离

    安卓电话