GNSS原理及配置
GNSS(Global Navigation Satellite System,全球导航卫星系统)定位的基本原理是通过测量四颗或四颗以上已知位置的卫星与 GNSS 接收机的距离,通过距离交汇的方式来确定接收机的位置。如图1所示,图中的 GNSS 接收机为当前要确定位置的设备,卫星 S1、S2、S3、S4 为本次定位要用到的四颗卫星,p1、p2、p3、p4 为测量得到的卫星到接收机的距离。由于存在各种误差的影响,这并不是真正的几何距离,称之为伪距。
AIoT万物智联,智能安全帽生产厂家,执法记录仪生产厂家,智能安全帽、智能头盔、头盔记录仪、执法记录仪、智能视频分析/边缘计算AI盒子、车载DVR/NVR、布控球、智能眼镜、智能手电、无人机4G补传系统等统一接入大型融合通信可视指挥调度平台VMS/smarteye 。
根据已知的卫星信息,可以列出如下方程:
通过解算方程就能得到接收机的位置。方程式中,c 为光速,CB 为接收机时钟差,X、Y、Z为接收机位置,其中接收机位置和接收机的钟差是未知数。
获取卫星位置
卫星的位置信息通过导航电文调制在卫星播发的信号中。只要能锁定卫星,GNSS 接收机就可以根据电文的格式,把卫星位置相关的信息解调出来,从而确定卫星的位置。
卫星位置信息在电文中是重复播发的,通常重复的周期是 30 秒。这也是为什么在信号条件较好的情况下,冷启动的定位时间是 30 秒左右的原因。
卫星号定义
卫星系统 |
卫星号 |
GPS |
1 ~ 32 |
SBAS |
33 ~ 54 |
GLONASS |
65 ~ 92 |
GALILEO |
95 ~ 130 |
QZSS |
193 ~ 200 |
BDS |
201 ~ 264 |
IRNSS |
301 ~ 312 |
启动模式
启动模式主要根据接收机所处的不同状态来定义。这些状态通常由以下因素决定:
-
位置:接收机是否定位过。
-
参考时间:接收机是否维持有效的时间。
-
星历:接收机中备份的星历信息是否有效。
-
历书:接收机中备份的历书是否有效。
根据这些信息的状态,将启动分为工厂启动、冷启动、温启动和热启动,具体定义见下表:
启动方式 |
位置 |
时间 |
星历 |
历书 |
工厂启动 |
无 |
无 |
无 |
无 |
冷启动 |
无/失效 |
无 |
无/失效 |
无/失效 |
温启动 |
有 |
有 |
无 |
有 |
热启动 |
有 |
有 |
有 |
有 |
-
工厂启动:接收机从来没有定过位,第一次使用的情形。
-
冷启动:接收机定过位,但距离上一次定位的时间太长导致历史备份的信息都失效的情形。
-
温启动:接收机定过位,但是距离上一次定位时间超过 2 小时的情形,这是终端用户遇到的绝大多数场景。
-
热启动:接收机定过位且距离上一次定位的时间小于 2 小时。
TTFF
用户发起定位到终端定位成功之间的时间为 TTFF(Time To First Fix,首次定位时间),主要由卫星捕获的时间和卫星星历的获取时间组成。
卫星捕获时间主要受测试环境的影响,与信号强度相关。
卫星星历的获取有几种方式:
-
对工厂启动,冷启动和温启动而言,主要从 GNSS 卫星信号中解调得到,时间主要与星历播发周期(通常是 30 秒)、信号强度相关。
-
对热启动而言,由于星历在本地已经有备份,TTFF 主要受卫星捕获的时间影响,所以热启动 TTFF很短,在信号环境好的情况下通常只需要 1 秒。
在具备 AGNSS(Assisted- Global Positioning System,辅助全球导航卫星系统)的情况下,卫星星历直接通过网络下载到终端中,所以 TTFF 大大缩短,通常定位速度可以接近热启动。为了获得更好的 TTFF,建议使用 AGNSS 功能。
多星座联合定位
GNSS 卫星定位的精度受到卫星数量和卫星构型的影响。多星座增加了卫星数量,可以有效提升卫星的几何构型,尤其在有遮挡的信号环境下效果非常明显。
从另一方面来分析,TTFF 和卫星星历获取的时间相关。由于各星座间星历调制的格式及时序不一致,则在不同时刻点可以解调到不同卫星的星历信息,相对一个星座而言,极大的增加了快速获取足够卫星星历的概率,从而有效降低 TTFF。
影响因素
利用 GNSS 进行定位时,会受到各种各样因素的影响,从而造成定位误差。GNSS 系统的主要误差来源可分为三类:
-
与 GNSS 卫星有关的误差:主要有卫星星历的误差、卫星钟差等。
-
与信号传播有关的误差:主要有对流层延迟、电离层延迟以及多路径效应。
-
与接收设备有关的误差:主要有接收机钟差,接收机噪声以及由于接收机和卫星存在相对运动引入的相对论效应。
同时,卫星的几何构型(和卫星的分布和卫星的数量相关)也会对 GNSS 定位精度造成影响,通常可以通过 NMEA 中的 HDOP 值来分析卫星的几何构型是否良好。
根据上述的各种影响因素,可以了解到 GNSS 定位与卫星信号的强弱、卫星数量的多少、接收机所处的环境是否有遮挡、是否存在反射信号等因素有密切关系。
在具备 AGNSS 的情况下,卫星星历直接通过网络下载到终端中。在此条件下,实际可用于定位的卫星颗数大于不使用 AGNSS 的情况,定位精度因此会好于不使用 AGNSS 的情况。为了获得更好的定位效果,建议使用 AGNSS 功能。
定位模式
除了 GNSS 定位外,还有一些基于网络的定位方式,主要包括基站定位和 Wi-Fi 定位:
-
GNSS 定位是指利用捕获到的 GNSS 卫星信息根据测距原理进行解算来确定接收机的精确位置。
-
基站定位利用设备搜集周围所有收到信号的基站及其 ID,查询定位服务器可知基站位置。再通过计算基站信号传播到终端的角度、时间和强度等信息,就可以确定终端的位置。
-
Wi-Fi 定位则是通过设备周围每个 Wi-Fi 热点的信号强弱计算出设备的大致地理位置。每个热点的位置可以通过查询服务器获取。
对应到 Android 系统中的 LocationManager,GPSProvider 提供的位置信息就是 GNSS 定位,而NetworkProvider 提供的位置信息就是网络定位。
各种定位模式的定位精度如下:
-
GNSS 定位:根据卫星信号来确定设备位置,在空旷的环境下,误差只有几米。
-
Wi-Fi 定位:根据附近的 Wi-Fi 网络来确定设备位置。
-
基站定位:根据设备与移动网络的连接来确定位置,其误差最高可达几千米。
常用的NMEA语句
NMEA 语句是 GNSS 定位信息的标准输出格式,主要有以下两种语句格式:
-
GGA 语句:可以获取定位信息,包括经纬度、定位状态、卫星数、卫星构型等信息。
-
GSV 语句:可以获取卫星相关的信息,如高度角、方位角以及信号强度(CN0)。
对这两条语句的详细解释如下:
-
GGA 数据详解:
语句格式:
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*xx
示例:
$GPGGA,180432.00,4027.027912,N,08704.857070, W,2,07,1.0,212.15,M,-33.81,M,4.2,0555*73
字段1:UTC 时间,格式为 hhmmss.sss。
字段2:纬度,格式为 ddmm.mmmm(第一位是0也将传送)。
字段3:纬度半球,N 或 S(北纬或南纬)。
字段4:经度,格式为 dddmm.mmmm(第一位0也将传送)。
字段5:经度半球,E 或 W(东经或西经)。
字段6:定位质量指示,0=定位无效,1=定位有效,2=差分定位,6=惯导定位。
字段7:使用卫星数量,从 00 到 12(第一个零也将传送)。
字段8:水平精确度,0.5 到 99.9。
字段9:天线离海平面的高度,-9999.9 到 9999.9 米。
字段10:大地水准面高度,-9999.9 到 9999.9 米。
字段11:差分 GNSS 数据期限(RTCM SC-104),最后设立 RTCM 传送的秒数量。
字段12:差分参考基站标号,从 0000 到 1023(首位 0 也将传送)。
xx:Checksum 校验和。
-
GSV 数据详解:
语句格式:
$GPGSV,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>,<15>*xx
示例:
$GPGSV,3,1,10,20,78,331,45,01,59,235,47,22,41,069,,13,32,252,45*70
字段 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)dB-Hz。
字段 8:PRN 码(伪随机噪声码)(01 - 32)(前导位数不足则补 0)。
字段 9:卫星仰角(00 - 90)度(前导位数不足则补 0)。
字段 10:卫星方位角(00 - 359)度(前导位数不足则补 0)。
字段 11:信噪比(00 - 99)dB-Hz。
字段 12:PRN 码(伪随机噪声码)(01 - 32)(前导位数不足则补 0)。
字段 13:卫星仰角(00 - 90)度(前导位数不足则补 0)。
字段 14:卫星方位角(00 - 359)度(前导位数不足则补 0)。
字段 15:信噪比(00 - 99)dB-Hz。
xx:Checksum 校验和。
影响GNSS信号的因素
材料因素
-
GNSS 模块接收的是 1575.42 MHz 微波信号,1575.42MHz 的微波信号波长是 19 厘米,所以理论上可以透过孔径(直径)大于 19 厘米的金属网,或普通金属桁架结构,比如输电铁塔。
-
将 GNSS 模块放入任何金属实体中,信号会被完全遮闭掉。
-
在深度为 1 厘米以上的水体中使用 GNSS 模块,信号会完全衰减至不可用。
-
将 GNSS 模块放入玻璃或者塑料腔体中,信号会有轻度衰减。
-
将 GNSS 模块放在厚重的非金属物体(比如几厘米的木头)中,信号会被完全遮挡。
其它因素
-
天气:GNSS 信号的波长足以让它穿越空气中的各种障碍物。恶劣的天气完全不会对 GNSS 信号正常工作产生影响。
-
树冠:树叶中含有的水分、树叶上面的水分(露水或下雨)以及树的枝干密集程度对 GNSS 信号的衰减会产生影响。
-
挡风玻璃:汽车挡风玻璃会让 GNSS 信号轻微衰减,但是车膜对 GNSS 信号的影响要比玻璃大得多。
AGNSS 功能开启
-
用户面(User plane):AGNSS 用户面(User plane)开关默认是开启的,不需要额外去开启 AGNSS开关。当设置好可用 AGNSS 服务器地址和端口号且开启数据业务,在现网下就可以使用 AGNSS 用户面(User plane)功能。
-
控制面(Control plane):AGNSS 控制面(Control plane)的开启主要开关在 modem 侧,需要把modem 侧的 AGNSS NV 开启后才能使用该功能。
配置 SUPL 服务器地址
在版本发布中都会含有 supl.xml 文件,通过修改来配置 AGNSS 服务器地址。
SERVER-ADDRESS:配置 supl 服务器地址。
SERVER-PORT:supl 服务器端口。
不同的 Android 版本、芯片,该 xml 配置文件在版本中的位置存在差异。
服务器证书启用修改
证书的作用是校验连接的服务器是否合法。证书在 GCF 等认证实验室中,部分 Case 是必须的,客户需要根据仪表提供的证书正确配置。
在真实网络环境中,一般不建议使用证书。
证书文件本身需要从服务器或仪表处获得,注意一定要确保证书是正确的,一旦证书错误会导致 SUPL服务无法使用。
