实战分享:GNSS知识汇总

2023-11-01

大家好,我是阿荣。感恩遇见!

本文部分图文来源于网络,并经过整合、编辑和勘误。实战分享栏目将重点介绍嵌入式的基础知识,并融合一些实战经验,持续勘误和迭代,建议关注和收藏!WX同名。

导行定位在嵌入式解决方案中是个常客。借助其功能,产生了许许多多的基于位置的应用,如应用于汽车金融领域的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,,,A50字段0GPRMC,语句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,4570字段0GPGSV,语句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,,00001F字段0GPGGA,语句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分钟的定位时间作为衡量一个产品是否可用的标准。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实战分享:GNSS知识汇总 的相关文章

  • JVM系列之类加载

    前言 虚拟机把描述类的数据从Class文件加载到内存 并对数据进行校验 转换解析和初始化 最终形成可以被虚拟机直接使用的Java类型 这个过程就称为JVM的类加载机制 今天我们主要从下面两个方面说下类加载 类加载时机和类加载过程 类加载时机
  • 单元测试打桩,通俗易懂解释。

    在软件开发中的单元测试过程中 单元测试打桩通常是一种模拟或替代正在被测试的组件或系统的策略 在单元测试打桩过程中 测试代码使用一个 虚拟 实现来替代掉实际组件或系统的某些部分 从而可以进行封闭式的测试 简单来说 单元测试打桩是一种 模拟卡
  • esp8266&点灯科技&arduino

    ESP8266 点灯科技 arduino esp8266实现温度传感器 利用超声波传感器测距与舵机控制 ESP8266驱动DS18B20 ESP8266与DS18B20的硬件连接 DS18B20引脚排列 3 读取一次DS18B20温度数据

随机推荐

  • 记录-跨域的形成和跨域方法

    1 什么是跨域 根据浏览器的同源策略 凡是发送请求Url的协议 域名 端口三者之间任意一与当前页面地址不同即为跨域 同源策略 同域名 domain或IP 同端口 同协议视为同一个域 一个域内的脚本仅仅具有本域内 的权限 可以理解为本域脚本只
  • 【原创】深度学习第18弹:基于MobileNet的手势识别

    一 链接 原创 深度学习第18弹 基于MobileNet的手势识别 二 效果视频 基于神经网络MobileNet的手势识别 个人网站 https www deepvisionzero com 微信公众号 DeepVisionZero
  • 如何求数组中两个元素的最小距离(两种方法)

    给定一个数组 数组中含有重复的元素 给定两个数字num1 num2 求这两个数字在数组中出现的位置的最小距离 分析 对数组双重遍历 找出最小距离 但是这种方法效率比较低 由于在求距离时只关心num1 num2这两个数 因此只需要对数组进行一
  • 嵌入式开发——常见的存储器分类和特性介绍

    1 存储器的组成 存储器大体上由 存储颗粒 控制电路 组成 存储颗粒负责存储数据 控制电路负责管理存储颗粒和对外交换数据 如果从存储颗粒上进行分类 就是以是否掉电丢失 是否随机寻址 是可读还是可写 是否需要初始化等标准进行分类 如果从控制电
  • 32_STM32内部温度传感器实验

    目录 内部温度传感器简介 STM32ADC对应引脚 内部温度传感器使用注意使用事项 开启内部温度传感器步骤 实验源码 内部温度传感器简介 内部温度传感器框图 从图上可以看出温度传感器可通过TSVREFR控制位连接到ADC的固定通道16 温度
  • hive update和delete报错Attempt to do update or delete using transaction manager

    转载自 levy cui 默认在hive中没有默认开启支持单条插入 update 更新以及删除 delete 操作 需要自己配置 而在默认情况下 当用户如果使用update和delete操作时 会出现如下情况 hive gt update
  • 灰度重心法提取光条纹中心

    灰度重心法提取激光光条纹中心其实是将光条纹截面的灰度值分布中的质心记作为光条纹的中心 在一列线激光中先利用极值法求取光强最大的一点gmax 然后确定一个阀值 gmax g 取10 20 在阈值两边判断大于 的元素 求出其重心位置作为光条纹的
  • Open3D (C++) 计算距离最大的点

    目录 一 概述 二 代码实现 三 结果展示 一 概述 给定一个点 求距离该点最远的点 二 代码实现 include
  • 2018年数学建模国赛A题题目、解题思路、matlab代码(四)

    题目 消防和金属冶金等行业常常需要工作人员在高温环境中作业 高温作业专用服装可以较好地吸收部分热量 使得工作人员体表温度不至于过高从而避免灼伤 所以高温作业服必不可少 通常作业服由三层材料构成 记为 I II III 层 其中 I 层与外界
  • vue2自定义插件

    1 新建插件文件夹 plugin 新建文件 index js index vue index vue
  • 8款让你轻松写出优秀年中总结的神器!

    又到年中总结的时候了 不知道怎么写总结呢 今天就给大家推荐8款写作神器 第一款 ChatGPT ChatGPT是由OpenAI创建的基于人工智能自然语言处理技术的系统 旨在进行自然流畅的对话并提供连贯且相关的回复 ChatGPT使用了GPT
  • 夜深人静学32系列16——RTC实时时钟

    RTC时钟 RTC 什么是RTC RTC结构框图 CubeMX配置 RTC代码配置 实战 简易时钟 任务要求 代码实现 实验结果 补充 唤醒功能配置 代码如下 RTC 什么是RTC RTC Real Time Clock 实时时钟 RTC是
  • Jmeter性能测试(性能测试,Jmeter使用与结果分析)

    每天进步一点点 关注我哦 每天分享测试技术文章 前言 一 性能测试 1 什么是性能测试 2 性能测试的重要性 3 性能指标 QPS和TPS QPS TPS 二 压测工具Jmeter 1 什么是Jmeter 2 Jmeter主要元件 3 下载
  • Cloudflare Worker 部署纯静态网站

    安装 Wrangler CLI npm i cloudflare wrangler g 或者 cargo install wrangler 创建一个空白网站模板 wrangler generate proj site ref 文档 http
  • element-plus 按钮在一些浏览器中无法显示问题

    正常按钮样式 在360浏览器或者chrome 88以下版本浏览器中的按钮样式 分析 not 选择器的写法不兼容 not a b 这种伪类不支持 解决方案 postcss selector not 插件文档地址 postcss一个插件 用来将
  • Altium Designer(AD)常用操作和快捷方式

    方格与格点的切换 View Grids ToggleVisible Grid Kind 原点 Edit Origin Set 边界的定义 Keep Out Layer Utility Tools Place Line 按TAB可定义线宽 选
  • 苹果连不上电脑服务器未响应,苹果电脑服务器未响应怎么办

    苹果Mac应用无响应 死机了怎么办 这里我们根据系统的优先级提供了多种关闭应用预防死机的方式 请大家按照苹果关闭应用的优先级方式 逐级使用关闭应用的释放防止死机 下面和学习啦小编一起来学习一下苹果电脑服务器未响应怎么办 苹果电脑未响应的解决
  • ModuleNotFoundError: No module named ‘sklearn‘【有效】

    ModuleNotFoundError No module named sklearn 有效 题目描述 解题思路一 题目描述 Traceback most recent call last File import sklearn Modul
  • es聚合结果返回所有字段

    使用topHit aggregation size 0 query match all aggregations questionAgg terms field faqQuestion size 100 aggregations faqFe
  • 实战分享:GNSS知识汇总

    大家好 我是阿荣 感恩遇见 本文部分图文来源于网络 并经过整合 编辑和勘误 实战分享栏目将重点介绍嵌入式的基础知识 并融合一些实战经验 持续勘误和迭代 建议关注和收藏 WX同名 导行定位在嵌入式解决方案中是个常客 借助其功能 产生了许许多多