GPS & AGPS & NMEA

一、GPS定位原理

1. GPS 基本原理

       GPS导航系统的基本原理是测量出已知位置的卫星到用户接收机之间的距离,然后综合多颗卫星的数据就可知道接收机的具体位置。要达到这一目的,卫星的位置可以根据星载时钟所记录的时间在卫星星历中查出。而用户到卫星的距离则通过记录卫星信号传播到用户所经历的时间,再将其乘以光速得到(由于大气层电离层的干扰,这一距离并不是用户与卫星之间的真实距离,而是伪距(PR):当GPS卫星正常工作时,会不断地用10二进制码元组成的伪随机码(简称伪码)发射导航电文GPS系统使用的伪码一共有两种,分别是民用的C/A和军用的P(Y)码。C/A码频率1.023MHz,重复周期一毫秒,码间距1微秒,相当于300mP频率10.23MHz,重复周期266.4天,码间距0.1微秒,相当于30m。而Y码是在P码的基础上形成的,保密性能更佳。导航电文包括卫星星历、工作状况、时钟改正、电离层时延修正、大气折射修正等信息。它是从卫星信号中解调制出来,以50b/s调制在载频上发射的。导航电文每个主帧中包含5个子帧每帧长6s。前三帧各10个字码;每三十秒重复一次,每小时更新一次。后两帧共15000b。导航电文中的内容主要有遥测码、转换码、第123数据块,其中最重要的则为星历数据。当用户接受到导航电文时,提取出卫星时间并将其与自己的时钟做对比便可得知卫星与用户的距离,再利用导航电文中的卫星星历数据推算出卫星发射电文时所处位置,用户在WGS-84大地坐标系中的位置速度等信息便可得知。

  可见GPS导航系统卫星部分的作用就是不断地发射导航电文。然而,由于用户接受机使用的时钟与卫星星载时钟不可能总是同步,所以除了用户的三维坐标xyz外,还要引进一个Δt即卫星与接收机之间的时间差作为未知数,然后用4个方程将这4个未知数解出来。所以如果想知道接收机所处的位置,至少要能接收到4个卫星的信号。

GPS接收机可接收到可用于授时的准确至纳秒级的时间信息;用于预报未来几个月内卫星所处概略位置的预报星历;用于计算定位时所需卫星坐标的广播星历,精度为几米至几十米(各个卫星不同,随时变化);以及GPS系统信息,如卫星状况等。

  GPS接收机对码的量测就可得到卫星到接收机的距离,由于含有接收机卫星钟的误差及大气传播误差,故称为伪距。对0A码测得的伪距称为UA码伪距,精度约为20米左右,对P码测得的伪距称为P码伪距,精度约为2米左右。

  GPS接收机对收到的卫星信号,进行解码或采用其它技术,将调制在载波上的信息去掉后,就可以恢复载波。严格而言,载波相位应被称为载波拍频相位,它是收到的受多普勒频移影响的卫星信号载波相位与接收机本机振荡产生信号相位之差。一般在接收机钟确定的历元时刻量测,保持对卫星信号的跟踪,就可记录下相位的变化值,但开始观测时的接收机和卫星振荡器的相位初值是不知道的,起始历元的相位整数也是不知道的,即整周模糊度,只能在数据处理中作为参数解算。相位观测值的精度高至毫米,但前提是解出整周模糊度,因此只有在相对定位、并有一段连续观测值时才能使用相位观测值,而要达到优于米级的定位精度也只能采用相位观测值。

  按定位方式,GPS定位分为单点定位和相对定位(差分定位)。单点定位就是根据一台接收机的观测数据来确定接收机位置的方式,它只能采用伪距观测量,可用于车船等的概略导航定位。相对定位(差分定位)是根据两台以上接收机的观测数据来确定观测点之间的相对位置的方法,它既可采用伪距观测量也可采用相位观测量,大地测量或工程测量均应采用相位观测值进行相对定位。

GPS观测量中包含了卫星和接收机的钟差、大气传播延迟、多路径效应等误差,在定位计算时还要受到卫星广播星历误差的影响,在进行相对定位时大部分公共误差被抵消或削弱,因此定位精度将大大提高,双频接收机可以根据两个频率的观测量抵消大气中电离层误差的主要部分,在精度要求高,接收机间距离较远时(大气有明显差别),应选用双频接收机

 

2.GPS  定位数学模型

GPS定位,实际上就是通过四颗已知位置的卫星来确定GPS接收器的位置。

GPS定位的基本原理是根据高速运动的卫星瞬间位置作为已知的起算数据,采用空间距离后方交会的方法,确定待测点的位置。如图所示,假设t时刻在地面待测点上安置GPS接收机,可以测定GPS信号到达接收机的时间△t,再加上接收机所接收到的卫星星历等其它数据可以确定以下四个方程式.

 

3.单点定位与差分定位

实际上上面所说的只是定位原理中的其中一种,称为单点定位,或绝对定位。就是通过唯一的一个GPS接收器来确定位置。

目前定位精度最高的是差分定位,或称相对定位。就是通过增加一个参考GPS接收器来提高定位精度。

 

  

二、GPS卫星是哪里来的?

GPSGlobal Position System,全球定位系统),全称为NAVSTAR GPSNAVigation Satellite Timing AndRanging Global Position System,导航星测时与测距全球定位系统)。GPS是一个由美国国防部开发的空基全天侯导航系统,它用以满足军方在地面或近地空间内获取在一个通用参照系中的位置、速度和时间信息的要求。

1.GPS发展历程

·        195710月第一颗人造地球卫星SputnikⅠ发射成功,空基导航定位由此开始

·        1958年开始设计NNSS-TRANSIT,即子午卫星系统;

·        1964年该系统正式运行;

·        1967年该系统解密以供民用。

·        1973年,美国国防部批准研制GPS;

·        1991年海湾战争中,GPS首次大规模用于实战;

·        1994年,GPS全部建成投入使用;

·        2000年,克林顿宣布,GPS取消实施SA(对民用GPS精度的一种人为限制策略)

2.美国政府的的GPS策略

·        两种GPS服务:
SPS--
标准定位服务,民用,精度约为100M
PPS--
精密定位服务,军用和得到特许的民间用户使用,精度高达10M.

·        两种限制民用定位精度的措施(保障国家利益不受侵害)
SA--
选择可用性,认为降低普通用户的测量精度,限制水平定位精度100M,垂直157M(已于200551日取消);
AS--
反电子欺骗。

3.其他卫星导航系统

·        GLONASS(全球轨道导航卫星系统),前苏联

·        Galileo-ENSS(欧洲导航卫星系统,即伽利略计划),欧盟

·        北斗导航系统,中国

 

三、GPS系统的构成

GPS系统=空间部分+控制部分+用户部分

 

1.空间部分

GPS空间部分主要由24GPS卫星构成,其中21颗工作卫星,3颗备用卫星。24颗卫星运行在6个轨道平面上,运行周期为12个小时。保证在任一时刻、任一地点高度角15度以上都能够观测到4颗以上的卫星。

主要作用:发送用于导航定位的卫星信号。

构成:24颗卫星=21颗工作卫星+3颗备用卫星

2.控制部分

GPS控制部分由1个主控站,5个检测站和3个注入站组成。

组成:GPS控制部分=主控站(1个)+监测站(5个)+注入站(3个)

作用:监测和控制卫星运行,编算卫星星历(导航电文),保持系统时间。

·        主控站:从各个监控站收集卫星数据,计算出卫星的星历和时钟修正参数等,并通过注入站注入卫星;向卫星发布指令,控制卫星,当卫星出现故障时,调度备用卫星。

·        监控站:接收卫星信号,检测卫星运行状态,收集天气数据,并将这些信息传送给主控站。

·        注入站:将主控站计算的卫星星历及时钟修正参数等注入卫星。 

 

分布情况:

·        主控站:位于美国科罗拉多州(Calorado)的法尔孔(Falcon)空军基地。

·        注入站:阿松森群岛(Ascendion,大西洋;迭戈加西亚(Diego Garcia,印度洋;卡瓦加兰(Kwajalein),东太平洋。

·        监控站:1个与主控站在一起;3个与注入站在一起;另外一个在夏威夷(Hawaii,西太平洋。

 

3.用户部分

GPS用户设备部分包含GPS接收器及相关设备。GPS接收器主要由GPS芯片构成。

如车载、船载GPS导航仪,内置GPS功能的移动设备,GPS测绘设备等都属于GPS用户设备。

组成:主要为GPS接收器

作用:接收、跟踪、变换和测量GPS信号的设备,GPS系统的消费者。

 

GPS定位是目前最为精确、应用最为广泛的定位导航技术,以后将会成为每一个移动设备的标配之一。现在的中高端只能手机,有相当一部分已经配备了GPS硬件。那么针对GPS定位的开发技术也将成为一项主流常规技术。本文目的在于让准备进行GPS定位开发的编程人员对于GPS有一个大致的了解,这对于编程可能没有什么直接的帮助,但是我想了解一下GPS的大致工作原理,在编程过程中就能够对GPS设备的工作特性有一个感性的认识,这对于开发还是有很大间接好处的。想了解关于GPS定位的具体开发技术,请参考《为Windows Mobile设备创建位置感知的应用程序》

 

 

 

 

 

 

 

 

AGPS定位基本机制

辅助全球卫星定位系统(英语:AssistedGlobal Positioning System,简称:AGPS)是一种GPS的运行方式。它可以利用手机基地站的资讯,配合传统GPS卫星,让定位的速度更快。

根据定位媒介来分,定位技术基本包含基于GPS的定位和基于蜂窝基站的定位两类。GPS定位以其高精度得到更多的关注,但是其弱点也很明显:一是硬件初始化(首次搜索卫星)时间较长,需要几分钟至十几分钟;二是GPS卫星信号穿透力若,容易受到建筑物、树木等的阻挡而影响定位精度。AGPS定位技术通过网络的辅助,成功的解决或缓解了这两个问题。对于辅助网络,有多种可能性,以GSM蜂窝网络为例,一般是通过GPRS网络进行辅助。

如上图所示,直接通过GPS信号从GPS获取定位所需的信息,这是传统GPS定位的基本机制。AGPS中,通过蜂窝基站的辅助来解决或缓解上文提到的两个问题:

对于第一个问题,首次搜星慢的问题,根据《GPS定位基本原理浅析》一文的介绍,我们知道是因为GPS卫星接收器需要进行全频段搜索以寻找GPS卫星而导致的。在AGPS中,通过从蜂窝网络下载当前地区的可用卫星信息(包含当地区可用的卫星频段、方位、仰角等信息),从而避免了全频段大范围搜索,使首次搜星速度大大提高,时间由原来的几分钟减小到几秒钟。

对于第二个问题,GPS卫星信号易受干扰的问题,这是由GPS卫星信号本身的性质决定的,我们无法改变。但是APGS中,通过蜂窝基站参考GPS的辅助,或是借助GSM定位中Cell-ID定位(COO定位)方法的辅助,缓解了在GPS信号不良的情况下定位的问题,有效提高了在此情况下的定位精度。

AGPS定位基本流程

 

1.搜索卫星

AGPS定位仍然是基于GPS的,因此定位的首要步骤还是先搜索到当前地区的可用GPS卫星。在传统GPS定位中需要全频段搜索以找到可用卫星因而耗时较长,而AGPS通过网络直接下载当前地区的可用卫星信息,从而提高了搜星速度。同时,也减小了设备的电量消耗。

如上图所示,AGPS中从定位启动到GPS接收器找到可用卫星的基本流程如下:

1)设备从蜂窝基站获取到当前所在的小区位置(即一次COO定位)

2)设备通过蜂窝网络将当前蜂窝小区位置传送给网络中的AGPS位置服务器

3APGS位置服务器根据当前小区位置查询该区域当前可用的卫星信息(包括卫星的频段、方位、仰角等相关信息),并返回给设备

4GPS接收器根据得到的可用卫星信息,可以快速找到当前可用的GPS卫星

至此,GPS接收器已经可正常接收GPS信号,GPS初始化过程结束。AGPS对定位速度的提高就主要体现在此过程中。

2.计算位置

GPS接收器一旦找到四颗以上的可用卫星,就可以开始接收卫星信号实现定位。接下来的过程根据位置计算所在端的不同,通常有两种方案:在移动设备端进行计算的MS-Based方式和在网络端进行计算的MS-Assisted方式。

MS-Based方式中,接下来过程与传统GPS定位完全相同,GPS接收器接收原始GPS信号,解调并进行一定处理,根据处理后的信息进行位置计算,得到最终的位置坐标。

MS-Assisted方式中,解调并处理后,接下来的过程如下图所示:

5)设备将处理后的GPS信息(伪距信息)通过蜂窝网络传输给AGPS位置服务器

6AGPS服务器根据伪距信息,并结合其他途径(蜂窝基站定位、参考GPS定位等)得到的辅助定位信息,计算出最终的位置坐标,返回给设备。

在此过程中可以看到,在使用MS-Assisted方式时,由于辅助定位信息的加入,可以取得更高的定位精度;同时,可以很大程度上克服弱GPS信号情况下的无法定位或精度降低的问题;将复杂计算转移到网络端,也可以很大程度上减小设备的电量消耗。

AGPS定位优劣分析

与传统GPS定位相比,APGS定位有如下的优势:

·        首次搜星速度快

·        有效减少设备的电量消耗

对于采用MS-Assisted方式的AGPS系统而言,除了以上优势外,还有:

·        定位精度更高

·        缓解弱GPS信号情况下无法定位或精度降低的问题

·        对移动设备的计算能力要求更低

当然,AGPS也有一定的限制:

·        必须有蜂窝网络(GRRS/EDGE/CDMA等)的支持用以数据传输,对一般用户而言可能需要为此支付一定的数据流量费用

·        必须有AGPS位置服务器的支持

·        GPS一样,仍无法完美解决室内(室内无法接收GPS信号)定位的问题

AGPS定位技术的实际应用情况

因为AGPS需要网络支持,因此目前使用该技术的大部分设备为手机。

1.目前大部分支持AGPS的手机采用一种纯软件的AGPS方案。


该方案基于MS-Based位置计算方式。具体的方案为:

定期下载星历数据到手机中,手机中的AGPS软件会根据星历信息计算出当前位置的可用卫星信息,从而提供给设备用于快速搜星。用户可以选择通过WiFi、固网等免费网络定期更新星历数据,从而避免使用蜂窝网络产生的数据流量费用。当然,由于星历信息可能存在延迟,因此搜星时速度可能有所下降,但是仍然会比传统GPS定位快很多倍。

该方案的优点是纯软件,不需要专门的AGPS硬件,几乎所有GPS手机都可以使用;同时用户可以根据情况指定星历更新周期及更新方式,控制或减免蜂窝网络数据流量。

HTC的大部分AGPS手机都采用这种方案。如下图为HTC手机中用于更新卫星信息的快速GPS”软件。

 

2.部分运营商的AGPS方案中,实施了在无GPS信号时自动切换到GSM蜂窝基站Cell-ID定位的措施,从而一定程度上解决了室内定位的问题。

如中国移动的OMAAGPS方案。

 

3.世界范围内一些AGPS芯片或相关服务已经广泛使用。

SiRF公司的AGPS芯片提供了硬件层次上的AGPS方案。

U-BloxAssistNow A-GPS服务提供了AssistNow Online(在线AssistNow)AssistNow OffLine(离线AssistNow)两种易用的AGPS方案。实际上这两种方案分别就是MS-AssistedMS-Based两种定位计算方式的实现。

u-blox在线AssistNow系统组成。

u-blox离线AssistNow系统组成。

4.国内电信运营商的AGPS方案

中国移动正在制订的A-GPS方案基于OMASUPL规范,是一种用户平面的解决方案。

中国联通提供的gpsOneMS-Assisted方式的A-GPS定位方案,也基于用户平面方式,目前只用于CDMA网络。

要了解二者的详细信息,请自行Google。下面仅列出几个可能有用的链接。

·        中国移动AGPS技术引入策略

·        中国移动终端A-GPS技术规范3.0

·        2008-2009年中国移动位置服务(LBS)研究咨询报告

·        浅析CDMA移动通信网络下定位功能的实现

 

GPS定位GSM蜂窝基站定位AGPS定位是目前最流行的三种定位方式。AGPS定位基于GPS,却又借助蜂窝网络避免了GPS定位的两大软肋,无疑是最具竞争力的一种定位方案。随着3G时代的到来,BLS业务已成为各大运营商的必争之地,这其中,AGPS方案绝对是竞争中很重要的一部分。希望本文能让你对AGPS技术有一个大致的了解。

 

NMEA简介

  NMEA是美国国家海洋电子协会(National MarineElectronics Association, 在这里,实际上应为NMEA 0183,为海用电子设备制定的标准格式。NMEA 0183目前业已成了GPS导航设备统一的RTCMRadio Technical Commission for Maritime services)标准协议。

NMEA0183是一套定义接收机输出的标准信息,有几种不同的格式,每种都是独立相关的ASCII格式,逗点隔开数据流,数据流长度从30-100字符不等,通常以每秒间隔选择输出,最常用的格式为"GGA",它包含了定位时间,纬度,经度,高度,定位所用的卫星数,DOP,差分状态和校正时段等,其他的有速度,跟踪,日期等。NMEA实际上已成为所有的GPS接收机和最通用的数据输出格式,同时它也被用于与GPS接收机接口的大多数的软件包里。

  NMEA-0183协议定义的语句非常多,但是常用的或者说兼容性最广的语句只有$GPGGA$GPGSA$GPGSV$GPRMC$GPVTG$GPGLL等。下面给出这些常用NMEA-0183语句的字段定义解释。

$GPGGA(定位信息)

  例:$GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,19.7,M,,,,0000*1F

  字段0$GPGGA,语句ID,表明该语句为Global Positioning System Fix DataGGAGPS定位信息

  字段1UTC时间,hhmmss.sss,时分秒格式

  字段2:纬度ddmm.mmmm,度分格式(前导位数不足则补0

  字段3:纬度N(北纬)或S(南纬)

  字段4:经度dddmm.mmmm,度分格式(前导位数不足则补0

  字段5:经度E(东经)或W(西经)

  字段6GPS状态,0=不可用(FIX NOT valid)1=单点定位(GPS FIX)2=差分定位(DGPS)3=无效PPS4=实时差分定位(RTK FIX),5=RTK FLOAT6=正在估算

  字段7:正在使用的卫星数量(00 - 12)(前导位数不足则补0

  字段8HDOP水平精度因子(0.5 - 99.9

  字段9:海拔高度(-9999.9 - 99999.9

  字段10:地球椭球面相对大地水准面的高度

  字段11:差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)

  字段12:差分站ID0000 - 1023(前导位数不足则补0,如果不是差分定位将为空)

  字段13:校验值

$GPGSA(当前卫星信息)

  例:$GPGSA,A,3,01,20,19,13,,,,,,,,,40.4,24.4,32.2*0A

  字段0$GPGSA,语句ID,表明该语句为GPS DOP and Active SatellitesGSA)当前卫星信息

  字段1:定位模式,A=自动手动2D/3DM=手动2D/3D

  字段2:定位类型,1=未定位,2=2D定位,3=3D定位

  字段3PRN码(伪随机噪声码),第1信道正在使用的卫星PRN码编号(00)(前导位数不足则补0

  字段4PRN码(伪随机噪声码),第2信道正在使用的卫星PRN码编号(00)(前导位数不足则补0

  字段5PRN码(伪随机噪声码),第3信道正在使用的卫星PRN码编号(00)(前导位数不足则补0

  字段6PRN码(伪随机噪声码),第4信道正在使用的卫星PRN码编号(00)(前导位数不足则补0

  字段7PRN码(伪随机噪声码),第5信道正在使用的卫星PRN码编号(00)(前导位数不足则补0

  字段8PRN码(伪随机噪声码),第6信道正在使用的卫星PRN码编号(00)(前导位数不足则补0

  字段9PRN码(伪随机噪声码),第7信道正在使用的卫星PRN码编号(00)(前导位数不足则补0

  字段10PRN码(伪随机噪声码),第8信道正在使用的卫星PRN码编号(00)(前导位数不足则补0

  字段11PRN码(伪随机噪声码),第9信道正在使用的卫星PRN码编号(00)(前导位数不足则补0

  字段12PRN码(伪随机噪声码),第10信道正在使用的卫星PRN码编号(00)(前导位数不足则补0

  字段13PRN码(伪随机噪声码),第11信道正在使用的卫星PRN码编号(00)(前导位数不足则补0

  字段14PRN码(伪随机噪声码),第12信道正在使用的卫星PRN码编号(00)(前导位数不足则补0

  字段15PDOP综合位置精度因子(0.5 - 99.9

  字段16HDOP水平精度因子(0.5 - 99.9

  字段17VDOP垂直精度因子(0.5 - 99.9

  字段18:校验值

$GPGSV(可见卫星信息)

  例:$GPGSV,3,1,10,20,78,331,45,01,59,235,47,22,41,069,,13,32,252,45*70

  字段0$GPGSV,语句ID,表明该语句为GPS Satellites in ViewGSV)可见卫星信息

  字段1:本次GSV语句的总数目(1 - 3

  字段2:本条GSV语句是本次GSV语句的第几条(1 - 3

  字段3:当前可见卫星总数(00 - 12)(前导位数不足则补0

  字段4PRN码(伪随机噪声码)(01 - 32)(前导位数不足则补0

  字段5:卫星仰角(00 - 90)度(前导位数不足则补0

  字段6:卫星方位角(00 - 359)度(前导位数不足则补0

  字段7:信噪比(0099dbHz

  字段8PRN码(伪随机噪声码)(01 - 32)(前导位数不足则补0

  字段9:卫星仰角(00 - 90)度(前导位数不足则补0

  字段10:卫星方位角(00 - 359)度(前导位数不足则补0

  字段11:信噪比(0099dbHz

  字段12PRN码(伪随机噪声码)(01 - 32)(前导位数不足则补0

  字段13:卫星仰角(00 - 90)度(前导位数不足则补0

  字段14:卫星方位角(00 - 359)度(前导位数不足则补0

  字段15:信噪比(0099dbHz

  字段16:校验值

$GPRMC(推荐定位信息数据格式)

  例:$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A*50

  字段0$GPRMC,语句ID,表明该语句为Recommended Minimum Specific GPS/TRANSIT DataRMC)推荐最小定位信息

  字段1UTC时间,hhmmss.sss格式

  字段2:状态,A=定位,V=未定位

  字段3:纬度ddmm.mmmm,度分格式(前导位数不足则补0

  字段4:纬度N(北纬)或S(南纬)

  字段5:经度dddmm.mmmm,度分格式(前导位数不足则补0

  字段6:经度E(东经)或W(西经)

  字段7:速度,节,Knots

  字段8:方位角,度

  字段9UTC日期,DDMMYY格式

  字段10:磁偏角,(000 - 180)度(前导位数不足则补0

  字段11:磁偏角方向,E=W=西

  字段16:校验值

$GPVTG(地面速度信息)

  例:$GPVTG,89.68,T,,M,0.00,N,0.0,K*5F

  字段0$GPVTG,语句ID,表明该语句为Track Made Good and Ground SpeedVTG)地面速度信息

  字段1:运动角度,000 - 359,(前导位数不足则补0

  字段2T=真北参照系

  字段3:运动角度,000 - 359,(前导位数不足则补0

  字段4M=磁北参照系

  字段5:水平运动速度(0.00)(前导位数不足则补0

  字段6N=节,Knots

  字段7:水平运动速度(0.00)(前导位数不足则补0

  字段8K=公里/时,km/h

  字段9:校验值

$GPGLL(地理定位信息)

  例:$GPGLL,4250.5589,S,14718.5084,E,092204.999,A*2D

  字段0$GPGLL,语句ID,表明该语句为Geographic PositionGLL)地理定位信息

  字段1:纬度ddmm.mmmm,度分格式(前导位数不足则补0

  字段2:纬度N(北纬)或S(南纬)

  字段3:经度dddmm.mmmm,度分格式(前导位数不足则补0

  字段4:经度E(东经)或W(西经)

  字段5UTC时间,hhmmss.sss格式

  字段6:状态,A=定位,V=未定位

  字段7:校验值

你可能感兴趣的:(GPS & AGPS & NMEA)