现代化工具的基础技术之一就是全球定位系统(GPS)。从环绕地球的卫星获取信号,一个GPS接收器可以极其准确地确定它所在的位置:最新一代民用导航信号(CNAV)由美国GPS系统发出,它的精度可以达到半米以内。信号还携带了时间信息,可以精确到毫秒级,这使得它可以适用于对时间精度要求较高的离线数据记录仪或离线系统。GPS作为移动革命背后的主要技术之一其能力非常强大,因为它可以让这些终端小玩意儿知道它们什么时候身处何地。
GPS的起源
GPS这个想法可以追溯到很久以前。第一个GPS系统始于1964年:五颗卫星组成的通信系统由美国海军搭建,其目的是为了帮组北极星导弹潜艇导航。现代GPS系统的开发始于1973年,并在1978年发射第一颗导航卫星后正式启用。虽然这些系统是军队建造和使用的(美国空军现在运行的GPS系统),但它们最初也被设计用于平民。第一款民用手持GPS接收器是麦哲伦NAV1000,在1989年以$3000被售卖。最初,民用信号被一种叫做选择可用性(SA)的系统编码,它能够对民用用户限制精度。但这项限制在2000年被取消,因为曾有一架韩国客机溜达到俄罗斯领空,由于导航系统错误使得客机被击落。
多年以来,GPS系统几番更新换代,并添加了新的信号和技术。如今,GPS系统由24颗活动卫星(和一些备件)组成,其中有11颗采用了最新一代的模块(被称作IIF)。下一代GPS卫星将计划在2016年开始投入使用。
美国不再是唯一拥有GPS系统的国家,俄罗斯已经建立他们自己的GPS系统(称作GLONASS),其中有24颗卫星。中国也推出了他们自己的北斗导航系统,目前有10颗在轨卫星。欧盟还在建立所谓的伽利略系统,该系统打算提供类似的定位服务。
这对用户可是极好的。通过使用多样的GPS系统,人们可以非常精确地定位自己的位置,并且可以在其中一个不工作时切换到另一个使用。许多现代GPS接收器可以同时使用GPS和GLONASS网络以及那些即将出现的网络,因为它们的工作方式大抵相同,都是通过测量信号到达接收器的时间来确定位置。
GPS如何工作
现代GPS系统可以在不同频率上为不同用户和冗余系统发送一系列信号,但它们的基础工作原理相同。原始信号是在两个频段上(L1是在1575.42MHz,L2是在1227.6MHz),但其他的频段(L3是1381.05MHz,L4是1379.913MHz和L5是1176.45MHz)也加入了进来。这些较新的频段用于像分析大气层这样的工作,目的是看看它如何影响信号传输来进一步提高接收设备的精准程度。大多数单芯片系统只能使用L1信号。
每个卫星将数据流编码成这些信号,由板载原子钟和每个卫星独有的编号所创建。这些编码产生了一段伪随机数据流:它看起来是随机的,除非你知道每个卫星的编号(黄金代码)。有了这个,你就可以解码各种数据流,其中包括粗码(C/A码)数据流,L1民用(L1C)数据流和军事(M)数据流。这些数据流中包含约每秒50比特的数据。正如其名,C/A码是简短、重复并批量发送用来粗糙定位的。其他数据流包含有更加详尽的数据,能够更加精确地定位,但也需要较长的接收时间。这些流中包含大量的信息,但其中最有用的部分就是时间,这由卫星上超精确的原子钟所确定。GPS接收器通过比较几个不同卫星上发来的精确时间数据来确定位置。
想象一下这样的场景:一个GPS卫星飞在你的上方,大约距你12,000米。从你的视角来看,另一个卫星比地平线略低。这意味着它运行在另一个轨道并渐行渐远,可能有30,000米的距离。从地平线附近的这颗卫星发送的信号要走很长一段旅程,因此它需要较长的时间才会到达你这里。如果你知道两颗卫星具有相同的时间设定,则可以通过测量这两个卫星发送的时间信号差来确定这两颗卫星之间的距离。这个差会很小(小于90毫秒),但它仍然是可以被测量的。再加上另一个位置出现的第三颗卫星,你就能知道另一个距离,这形成了一个三角形。接收器还知道卫星的轨道(被称作星历),因此结合时间和至少三颗卫星之间的距离就可以定位出你的具体位置。如果有第四颗卫星提供更多的数据,甚至可以计算出你所在的高度。
来自GPS卫星的信号还包含很多其他的数据,例如更新所有卫星星历表的数据,大气层如何影响信号的数据等等。GPS接收器接收并存储这些数据,并用它来更新其卫星名单。这就是为什么GPS接收器在一段时间不用后需要较长的时间来修正位置(称为冷修复)。如果出现了新发射的卫星或者其他的未知变化,它就会用一些时间来发现信号并捕获新的信息。
近几年,所有这些复杂信号处理和数学计算的功能都被整合进一块芯片。一个GPS接收器会接受信号,处理信号并计算数字。它们一次可以追踪多少颗卫星要取决于它们的类型,但毋庸置疑,一个GPS接收器可以持续追踪的卫星越多就越能搞清楚哪些是在地平线以下的,哪些是新进的。卫星的运动也会改变频率(多普勒效应),因此接收器可能需要在多个频率上监听来辨别卫星的来去。跟踪一个独立信号的能力被称作通道,现代接收器有很多通道:在Adafruit高端GPS面板上的联发科的MTK3339型GPS芯片就拥有66个通道,它可以在很多频率上追踪很多颗卫星。
这一切的一切就是为了GPS接收器能够确定位置,并将位置信息反馈给设备。对于大多数GPS芯片,就是在以NMEA 0183(NMEA指国家海洋电子协会,是制定电子系统标准的协会)数据格式串行输出数据。这些数据可以包含当前时间、位置、速度和其他信息,以明文发送。各种卫星的信号强度信息也会被发送,因此这些设备能够显示信号强度。
如何使用GPS
为你正在构建的系统添加GPS最简单的方式就是添加GPS包。这些包括天线、接收器和智能计算系统。你只需要为其供电,将其带出室外,它就会显示出时间、位置和其他信息。得益于多年来GPS和移动设备的发展,这些都很便宜了。Adafruit公司售卖一款载有联发科MTK3339型GPS新片的面板只需要$40。其他类似的设备可以在娱创电子(Sparkfun)上找到,它对不同类型的芯片提供了明确的导购。这些设备都有一个内置天线,但它们都小到不能够良好的接收信号。为了获得更好的性能,额外添加一根天线可以接收到更加微弱的信号。
喜欢自虐的你们可能希望自造一个GPS接收器。不是不可以,尽管需要一些昂贵的设备。你可能会需要一个软件定义无线电(SDR),它可以接受1.5GHz主频,和一些解码信号的软件。在如下视频中,Taroz展示了如何使用BladeRF SDR和GNSS-SDRLIB软件。
文章原文链接:https://www.anquanke.com/post/id/82927