GNSS知识汇总

导行定位在嵌入式解决方案中是个常客。借助其功能,产生了许许多多的基于位置的应用,如应用于汽车金融领域的GPS追踪器。在这个专题里,我打算汇总导航定位的相关知识以及新技术。由于能力有限,难免会出现错误,请大家帮忙指出。

GNSS与GPS

在导航定位领域,会接触到两个常用的关键字,GNSS和GPS。这两者有什么区别和联系呢?

GNSS,英文全称“Global Navigation Satellite System”,指全球导航卫星系统。
GPS,英文全称“Global Positioning System”,指全球定位系统。

在这里插入图片描述
GNSS泛指所有的卫星导航系统,包括全球卫星导航系统,区域卫星导航系统,增强系统。全球定位导航系统能在全球范围内提供服务,例如:中国的北斗卫星导航系统(BDS),美国的全球定位系统(GPS),俄罗斯的格洛纳斯卫星导航系统(GLONASS),欧盟的伽利略卫星导航系统(GALILEO)。区域卫星导航系统仅能在指定区域范围内提供服务,例如:日本的准天顶系统(QZSS),印度的IRNSS系统等。增强系统为上述两种系统提供辅助以及增强功能,其通过播发更精确更丰富的信息来提升服务质量和内容,例如美国的WAAS,日本的MSAS,欧盟的EGNOS,印度的GAGAN等。

由此可见,GNSS与GPS是一种包含关系,GNSS是总称,GPS是其中一员,等同于水果与苹果的关系。

GNSS的作用

我们主要通过GNSS播发的信号来实现定位、测速、授时等功能。

定位

定位是指获取物体在地球的三维坐标系中的位置信息。有了这个三维坐标的位置信息,我们就可以进行各种数据计算,如两点间的距离等。

在这里插入图片描述
测速

测速指获取物体的运动速率及其方向。

授时

使用GNSS技术,可以实现高精度授时,精度可达纳秒量级。这在一些时间精度要求极高的应用场景中提供强大的技术保障。例如电力行业。

定位模块

GNSS由空间部分、地面监控部分、用户部分三大部分组成。我们常听到的定位模块,就属于用户部分。

在这里插入图片描述
定位模块是集成了RF射频芯片、基带芯片和核心CPU,并加上相关外围电路而组成的一个集成电路。常见的有GPS定位模块,北斗定位模块。

下图是某定位模块的电路图,使用上还是蛮简单的。通过UART口(TXD,RXD)获取模块广播出来的NMEA报文(见下文讲解),就可获取到当前的定位信息。UART口通常使用9600BPS,115200BPS,也有一些模块支持SPI接口。

在这里插入图片描述

NMEA报文

NMEA是(National Marine Electronics Association )为海用电子设备制定的标准格式。实际应用中,定位模块一般使用NMEA-0183协议。NMEA-0183中定义了大量的语句,为满足基本的授时和定位需求时通常只是用RMC,GSV,GGA等语句。针对不同的全球卫星定位系统,会在前面增加系统ID,GPS相应为GPRMC,GPGSV,GPGGA。

以下示例(以GPS为例)解析摘录自百度百科,上面还有其他语句,可以去了解一下。

https://baike.baidu.com/item/NMEA/9812575?fr=aladdin

GPRMC(推荐定位信息Recommended Minimum Specific GPS/TRANSIT Data)

例: G P R M C , 024813.640 , A , 3158.4608 , N , 11848.3737 , E , 10.05 , 324.27 , 150706 , , , A ∗ 50 字 段 0 : GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A*50 字段0: GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A500GPRMC,语句ID,表明该语句为推荐最小定位信息
字段1:UTC时间,hhmmss.sss格式
字段2:状态,A=定位,V=未定位
字段3:纬度ddmm.mmmm,度分格式(前导位数不足则补0)
字段4:纬度N(北纬)或S(南纬)
字段5:经度dddmm.mmmm,度分格式(前导位数不足则补0)
字段6:经度E(东经)或W(西经)
字段7:速度,节,Knots
字段8:方位角,度
字段9:UTC日期,DDMMYY格式
字段10:磁偏角,(000 - 180)度(前导位数不足则补0)
字段11:磁偏角方向,E=东W=西
字段12:模式,A=自动,D=差分,E=估测,N=数据无效(3.0协议内容)
字段13:校验值($与*之间的数异或后的值)
说明:此报文主要关注UTC时间,状态,维度,精度,速度,方向角。通过此报文可获取设备的GPS点坐标(高度需从GGA语句获取)以及航速信息。

GPGSV(可见卫星信息GPS Satellites in View)

例: G P G S V , 3 , 1 , 10 , 20 , 78 , 331 , 45 , 01 , 59 , 235 , 47 , 22 , 41 , 069 , , 13 , 32 , 252 , 45 ∗ 70 字 段 0 : GPGSV,3,1,10,20,78,331,45,01,59,235,47,22,41,069,,13,32,252,45*70 字段0: GPGSV,3,1,10,20,78,331,45,01,59,235,47,22,41,069,,13,32,252,45700GPGSV,语句ID,表明该语句为可见卫星信息
字段1:本次GSV语句的总数目(1 - 3)
字段2:本条GSV语句是本次GSV语句的第几条(1 - 3)
字段3:当前可见卫星总数(00 - 12)(前导位数不足则补0)
字段4:PRN 码(伪随机噪声码)(01 - 32)(前导位数不足则补0)
字段5:卫星仰角(00 - 90)度(前导位数不足则补0)
字段6:卫星方位角(00 - 359)度(前导位数不足则补0)
字段7:信噪比(00-99)dbHz
字段8:PRN 码(伪随机噪声码)(01 - 32)(前导位数不足则补0)
字段9:卫星仰角(00 - 90)度(前导位数不足则补0)
字段10:卫星方位角(00 - 359)度(前导位数不足则补0)
字段11:信噪比(00-99)dbHz
字段12:PRN 码(伪随机噪声码)(01 - 32)(前导位数不足则补0)
字段13:卫星仰角(00 - 90)度(前导位数不足则补0)
字段14:卫星方位角(00 - 359)度(前导位数不足则补0)
字段15:信噪比(00-99)dbHz
字段16:校验值($与*之间的数异或后的值)
说明:通过此报文可以了解到当前设备接收到的卫星数量以及各卫星的信号质量。一般需要4颗卫星才可实现3D定位。在信号稳定的情况下,信噪比低于30dbHz时,误码率较高,一般很难获取到有效定位。

GPGGA(定位信息Global Positioning System Fix Data)

例: G P G G A , 092204.999 , 4250.5589 , S , 14718.5084 , E , 1 , 04 , 24.4 , 12.2 , M , 19.7 , M , , 0000 ∗ 1 F 字 段 0 : GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,12.2,M,19.7,M,,0000*1F字段0: GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,12.2,M,19.7,M,,00001F0GPGGA,语句ID,表明该语句为GPS定位信息
字段1:UTC 时间,hhmmss.sss,时分秒格式
字段2:纬度ddmm.mmmm,度分格式(前导位数不足则补0)
字段3:纬度N(北纬)或S(南纬)
字段4:经度dddmm.mmmm,度分格式(前导位数不足则补0)
字段5:经度E(东经)或W(西经)
字段6:GPS状态,0=不可用(FIX NOT valid),1=单点定位(GPS FIX),2=差分定位(DGPS),3=无效PPS,4=实时差分定位(RTK FIX),5=RTK FLOAT,6=正在估算
字段7:正在使用的卫星数量(00 - 12)(前导位数不足则补0)
字段8:HDOP水平精度因子(0.5 - 99.9)
字段9:海拔高度(-9999.9 - 99999.9)
字段10:单位:M(米)
字段11:地球椭球面相对大地水准面的高度 WGS84水准面划分
字段12:WGS84水准面划分单位:M(米)
字段13:差分时间(从接收到差分信号开始的秒数,如果不是差分定位将为空)
字段14:差分站ID号0000 - 1023(前导位数不足则补0,如果不是差分定位将为空)
字段15:校验值($与*之间的数异或后的值)
说明:此语句重点关注正在使用的卫星数量、HDOP水平精度因子、海拔高度。

冷启动、温启动和热启动

定位模块开机定位分为冷启动、温启动和热启动。
在讲解这三种启动方式前,有必要先提两个概念——“星历”和"历书"。

  • 星历是详细的卫星轨道参数,有效期4小时。

  • 历书是简略的卫星轨道参数,只能大概估算位置,不能用于定位,有效期半年,一般只能用于接收机对卫星信号的搜索和捕获。

从前一章节中,我们了解到,设备是通过天空中定位卫星广播的信号进行定位的。而由于地球是圆的,且部分定位卫星相对地球运动,因此,在不同时刻,同一地点的天空上的可视卫星是不一样的。定位模块在开始定位的时候,需要在天空中搜索定位卫星。如何能够快速的定位到定位卫星的位置呢?答案就在于星历和历书。星历和历书的作用下,定位模块能快速搜索到当前天空中的可视卫星,进而能够快速定位。

冷启动

在没有星历和历书等历史信息的情况下进行重启,这时的启动方式就成为冷启动。在这种情况下,定位模块需要耗费比较长的时间来搜索卫星。在信号足够好的情况下,定位模块规格书中的冷启动时间一般在三四十秒这个量级。
以下几种情况开机均属冷启动。

  1. 初次使用,未存储星历等信息时;
  2. 电池耗尽导致星历信息丢失时;
  3. 关机状态下将接收机移动1000公里以上距离。

温启动

温启动是指在距离上次定位时间超过2个小时,但保存有历书,UTC时间以及最后的卫星位置情况下的启动。搜星定位时间介于冷启动和热启动之间。

热启动

热启动是指在距离上次定位时间不超过2个小时,但保存有最后计算的可视卫星的位置,历书和UTC时间情况下的启动。通常搜星定位时间在5秒内。

定位时间

在嵌入式开发过程中,定位模块上述三个时间中的冷启动时间最为值得关注。它能用于衡量设备的搜星定位能力。作为车载移动设备使用时,还需要关注一个我们称为综合路况下的定位时间,通常企业标准里边会把这个值限定在2分钟内。2分钟这个时间值是怎么得出的呢?在实验室条件下,如果4颗定位卫星信号都在30dB时,定位时间为一分多钟。然而,这是在信号稳定的情况下,在实际场景中,信号很可能会被干扰或打断。另外,道路环境下,通常会有更多的可视卫星,其中部分卫星的信号要比30dB强。综合考虑下,把2分钟的定位时间作为衡量一个产品是否可用的标准。

猜你喜欢

转载自blog.csdn.net/weixin_37366441/article/details/120266378
今日推荐