为什么智能手机GPS定位比GPS模块快得多?


81

当我使用arduino GPS模块时,通常需要花费几分钟时间才能开始发送数据。而且似乎所有GPS模块通常都是这种情况,因为它们需要一段时间来“收听”卫星。但是,每当我使用手机的内置GPS时,它都能在几秒钟内找到其位置。这是为什么?


16
一个词的答案:“ A-GPS”
Agent_L

10
那不是一个字,而是四个字的缩写!
晶体管

10
@Transistor好吧,如果您想学走路,A-GPS不是首字母缩写,而是缩写。;)
DavidCAdams

7
@DavidCAdams:你是对的!我看着他们两个。我从来没有意识到首字母缩写词会作为单词发音(或者至少应该是我认为应该发音)。我在EE.SE上学到的东西!
晶体管

1
@DavidCAdams这些年来,我一直在沿NASA的路线将A-GPS发音为“ agps”,而现在您是在说我不能再这样做了?您在EE.SE上学到的东西!
CVn

Answers:


116

有几件事会影响首次修复时间(TTFX)

  1. 获取历书和星历表。从技术上讲,这两件事彼此有点不同,但是出于我们的目的,我们将它们视为相同。它们是卫星的位置,您需要知道它们的位置才能确定自己的位置。每颗卫星大约每12分钟发送一次全部卫星。因此,从单通道接收器和良好信号的完全冷启动开始,TTFX至少需要12分钟。您可以通过以下方法加快处理速度:

    • 而是从互联网下载-通常是手机的不错选择。以这种方式下载年历和临时文件称为MSB辅助GPS。
    • 记住上次的历书(好几个星期了),只下载星历表。
    • 设备中有多个接收频道,因此您可以一次收听多个卫星。传输交错进行以完成这项工作,并且您可以谨慎使用星历表,而无需使用历书,从而节省了大量时间。如今市场上的绝大多数模块都具有多种渠道,因此很少会找到需要12分钟的模块。
  2. 识别卫星。您需要至少听三颗卫星,最好听更多,以获得更好的解决方案,但是每个接收器(称为相关器)一次只能调谐到一个。如果您大致了解自己的位置,现在的时间并且已经有了年历,那么您就可以猜测可以看到哪些卫星。通过识别wifi或蓝牙信号,知道正在使用的手机发射塔以及其他来源,电话通常会大致知道它们在哪里。它们也定期获得非常准确的时间更新,因此通常可以直接获得正确的卫星。手机和更大的模块都可以记住上一次使用的时间和地点,并从中开始使用。

  3. 相关器的数量。由于GPS信号的信噪比非常低,因此需要特殊的硬件来接收它们。一些接收器只有一个,并且需要围绕卫星旋转。其他人拥有更多,并且可以立即收听更多内容。因此,即使您已经有了历书/星历表并且大致了解您的位置,也可以使用更多的相关器来更快地进行修复。您可能会认为更多的总会更好,但是更多的确会增加成本和功耗。某些电话和模块具有更多的功能。

  4. 信号和天线。如果您有很好的信噪比,相关器将更快地完成它们的工作。非常差的信号可能根本不起作用。良好的天线设计,放大器,天空视野和良好的PCB布局可以使一切变得不同。某些模块开箱即可正常工作,插入天线后效果会更好。

  5. 可用卫星数。实际上,那里有两个大型卫星群,即GPS(由美国运营)和GLONASS(由俄罗斯运营)。还有更多在建项目:伽利略(EU)和北斗2号(中国),还有一些在当地覆盖的国家,例如印度的NAVIC或北斗1号。可以与来自多个星座的卫星一起工作的接收机可以选择更多的卫星,并且可以更快更准确地进行定位。

  6. 相关器的质量。新的硬件设计优于旧的硬件设计,并且能够更好地在噪声信号中识别GPS消息的片段。电话可以做的另一种技巧是捕获信号片段,然后将其通过互联网通过具有很好的软件相关器的服务器传递给服务器,并完成历书/星历表的检查。这就是所谓的MSA辅助GPS。

  7. 一些电话(甚至几个模块)可能还会使用一些小偷小摸的技巧来避免或隐藏较长的TTFX。由于它们一直处于运行状态,因此他们可能会短暂打开GPS而不通知用户,以使位置和星历大致保持最新状态。其他人可能会在仍在等待真正的修复时显示最近的位置-大多数时候看起来像是不错的TTFX,但是如果发现位置非常错误,则看起来很糟糕。

上面的第1点是最大的区别,通常是基本模块,高级模块和电话之间有区别的关键。其他通常不会产生太大的变化,但实际上可能会变得非常复杂。如果您想了解更多信息,请搜索“ GPS首次定位时间”。


32
在第2点上:除了WiFi之外,手机还可以根据其所接触的蜂窝基站获得大概的位置。
字母音译器

4
设备可能还会“缓存”最近的已知位置数据,立即使用它,并在输入真实数据时对其进行调整。我的手机使用GPS来实现。
rdtsc

17
除了蜂窝网络外,许多提供商(包括Google)还建立了WiFi接入点物理位置的数据库,这使他们可以惊人地准确地查明设备的位置。我便宜的Android平板电脑既没有GPS也没有手机,但是只要我连接到WAP,Google Maps似乎总是知道我在哪里。我怀疑他们是通过相反的过程获得WAP位置的-从连接的电话和其他装有GPS的设备的位置推断出WAP的位置。
戴夫·特威德

5
@ゼーロ每帧为35秒,但完整的年历分为25帧,传输将需要12-13分钟。确实可以在没有历书的情况下从星历数据中获取修正,但是您将需要以下历书用于1)非常旧的硬件,2)从GPS时间到UTC的准确校正以及3)在某些硬件上的电离层延迟校正。
杰克B

4
@ゼーロ嗯。我非常清楚,单通道接收器需要12分钟。我还说过,多通道接收器速度更快。大多数现代接收器都是多通道的,但是我当然有一些较旧的单通道接收器-它们确实需要整整12分钟的时间。而且,如果您只有一个通道,并且想要电离层延迟校正,那么就没有比获得完整年历更快的方法了。您使用多通道模块并需要3分钟的TTFX的事实并不意味着不存在其他类型。但是我将更新答案以说旧类型很少见。
杰克B

22

手机操作系统通过手机网络通过互联网下载GPS年历数据(卫星星历和状态信息),并将其加载到GPS模块中的速度比直接以50 bps的速度从GPS卫星下载数据要快得多(是的,那是每秒50位,GPS是一项相当老的技术,专为在非常低的SNR下运行优化),从而大大缩短了首次修复的时间。这就是所谓的辅助GPS。它还可能具有来自蜂窝调制解调器的非常准确的初始时间参考(蜂窝塔通常通过GPS与时间同步)以及来自蜂窝调制解调器的粗略位置估计。所有这些结合极大地减少了接收机必须执行的搜索量-它知道它应该能够看到哪些卫星,因此它只寻找那些卫星,而无需等待卫星发送整个消息。


因此,它基本上消除了过程中的“同步”。GPS模块使用卫星本身发送的数据搜索卫星,对吗?
拟人十二面体

3
它不会把它排除在外,而是通过给GPS接收器一个良好的估算来加速它。
alex.forencich

29
50 bps不仅仅是因为GPS很旧。这是GPS接收器如何检测极弱信号以及所有GPS卫星如何可以在单个频率上发送但仍被独立接收的组成部分。GPS接收机中发生了许多复杂的事情。
JRE

5
@TomTom:不,GPS的保密性从来没有因为晦涩难懂而实现。您可能正在考虑选择性可用性(SA),但这是一个有意的定位错误。
MSalters

1
@TomTom:GPS的扩频并不是要隐藏信号。对于简单的RF接收器确实具有这种效果,但这不是重点。扩频技术为您提供两件事:以极低的信噪比运行,并具有一定程度的抗干扰能力。几乎每个人和他的兄弟都知道(并且知道何时回溯)GPS使用的频率。隐藏已知的内容毫无意义。不过,不被(轻松)卡住是一大优势。有GPS干扰器(现在),但是那时要困难得多。
JRE


8

答案的一部分是手机GPS不仅仅是GPS。Cell还使用其他信息进行地理位置定位,例如手机塔的三角测量和wifi网络的可见性。例如,非蜂窝版本的iPad Air没有实际的GPS,但仍可以使用这些技术知道您在建筑区域中的位置。


4
问题特别是关于GPS如何运作。手机无法从手机发射塔进行三角测量,因为没有可用的位置信息。
晶体管

6
@Transistor该问题将独立GPS与手机GPS进行了比较,问题标题专门询问了手机比独立GPS装置的GPS速度更快。维基百科说,手机确实使用塔式三角测量来确定位置。我不确定为什么您说没有可用的位置信息:当然,该塔不会宣布其位置,但是道路也不会宣布其位置:您的手机已将地图存储在数据库中。
David Richerby

3
@晶体管:手机不执行三角测量。网络提供商可以。
约尔格W¯¯米塔格

2
@JörgWMittag:取决于网络AFAICT。现代网络提供本地化服务,作为增强的911 / E112的一部分。
MSalters

@DavidRicherby:感谢您的链接。我通读了两次,但我只能看到网络知道电话的位置,而不是电话知道。我错过了什么?
晶体管

5

只是想更详细地说明较旧的接收器正在等待数据时发生的情况。换句话说,为什么该历书(和记住的位置)如此有用?

GPS信号非常弱。在给定距离的情况下,信号到达地面时会远低于本底噪声。如果您只是以正确的频率观看示波器扫描,就永远不会直接检测到卫星。

接收器获取信息的方式是通过将输入信号与特定模式进行比较(通过FFT相关)。如果使用正确的模式,则相关性会排队,并且可以看到数据。

对于一个简单的老式接收器,要达到这一点,需要设备的相关器执行以下两项操作:来自卫星的消息的频率以及消息的相位(排列码型)。如果其中任何一个都不正确,则关联不成功,并且不会检测到任何东西。卫星的运动意味着接收到的信号会发生较大的多普勒频移。

有了历书并且对当前位置和时间有了一个很好的了解,接收机就可以估计卫星和接收机的相对运动,以消除大部分的多普勒频移并稍微接近频率。这意味着相关器通常只需为信号模式尝试不同的相位即可得出结果。相空间搜索可以在几秒钟内完成。

如果缺少年历,或者没有当前位置和时间的估计,则系统必须尝试不同的相位和不同的频率以从每颗卫星获取数据。现在必须在两个不同的维度上进行搜索,即使是多通道系统,也可能需要花费几分钟才能通过蛮力“发现” 3颗卫星。

即使没有A-GPS,现代芯片组也可以利用附加信号和大量并行比较器来加快搜索速度。我怀疑您在Arduino防护板上获得的芯片组可能更旧/更便宜,并且不会使用这些较新的功能。


3

在美国,FCC要求蜂窝电话运营商在 2012年9月11日首次拨打电话后的6分钟内向300米以内拨打紧急服务时,能够识别呼叫者所在的位置

在过去的几年中逐步采用了这种方法,并且在以后的几年中,对距离和位置报告时间的要求也越来越严格。

蜂窝电话公司无法保证在偏远地区的移动电话仅能接触到一两个蜂窝塔,也无法在城市环境中(即使手机可以容纳多个发射塔的情况下)反射和建筑物密度限制了位置。GPS芯片无法在所需的时间范围内以足够低的功率提供此功能,以致手机仍将在商业上可行(在引入此要求时。芯片组现在具有更高的功率效率和更快的功耗,部分原因在于需求每个电话都包含部分或全部GPS芯片组)。此外,相对于其他电话组件,GPS芯片组非常昂贵。

因此,他们创建了一些不同的竞争系统,它们都属于辅助GPS的绰号“ AGPS”。

在这些各种AGPS系统后面运行的技术有时会有所不同。

最便宜的蜂窝式AGPS系统会记录几毫秒的GPS RF信号,然后将其发送到AGPS服务器,然后,服务器就知道手机的大概位置,可以使用该GPS RF代码段来确定更准确的位置。如果没有良好的蜂窝连接,这些电话将无法获取GPS坐标。

有些具有完整的GPS芯片组,但允许手机为它们提供年历和星历表-这两条信息使芯片组可以在几秒钟内得到修复-之后,它会使用其常规方法生成位置结果。给定时间,这些电话可以获得独立于其网络的位置。

大多数GPS芯片组都允许您将星历和历书信息加载到其中,因此,如果您的arduino设备具有互联网连接并且可以访问AGPS服务器,则可以类似的方式加快GPS修复速度。但是,对于大多数项目,只需在GPS接收器的正确引脚上添加一个锂纽扣电池,就可以保持最新的历书和星历表更新,并且由于在短时间内变化很小,因此可以极大地加快首次定位的速度,因为只要设备尚未移动数千英里,并且每隔几天就会通电。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.