Skip to content

GNSS 定位模组产品总览

GNSS 基础知识

GNSS(Global Navigation Satellite System,全球导航卫星系统)是利用卫星信号进行定位的技术总称。

全球四大卫星系统

系统国家卫星数量频段精度
GPS美国31颗L1/L2/L53-5m
GLONASS俄罗斯24颗L1/L25-10m
Galileo欧盟30颗E1/E5/E61-3m
BeiDou(北斗)中国35颗B1/B2/B32-5m

多星座定位优势:

  • 可见卫星数量更多(城市峡谷、室内边缘场景)
  • 定位精度更高(更多测量值)
  • 可靠性更强(单系统故障时仍可定位)

定位原理

基本原理:三角测量(伪距定位)

1. 卫星发送信号(包含时间戳和轨道参数)
2. 接收机接收信号,计算传播时间
3. 传播时间 × 光速 = 伪距(含时钟误差)
4. 至少需要 4 颗卫星(3个位置坐标 + 1个时钟误差)
5. 解方程组,得到接收机位置

误差来源:
  - 电离层延迟:约 5-15m
  - 对流层延迟:约 2-5m
  - 多路径效应:约 1-5m(信号反射)
  - 卫星星历误差:约 1-2m
  - 接收机噪声:约 0.5-1m
  
  标准 GPS 精度:3-5m(95% 置信度)

移远 GNSS 产品线

产品分类

标准 GNSS 模组(消费/工业级)
  ├── L26(超小尺寸,消费级)
  ├── L76K(多星座,工业级)
  ├── LC29H(高性能,车规级)
  └── L89(多频,高精度入门)

高精度 GNSS 模组(RTK/PPP)
  ├── LC29H DA(双天线,航向角)
  ├── LG69T(车规级高精度)
  └── LC79D(双频RTK)

DR 航位推算模组(车规级)
  ├── LG69T(GNSS + IMU 融合)
  └── LC29H DA(双天线 + DR)

蜂窝 + GNSS 组合模组
  ├── BC20(NB-IoT + GNSS)
  ├── BG95-M2(Cat.M/NB-IoT + GNSS)
  └── EC200A-CN(Cat.1 + GNSS,可选)

标准 GNSS 模组对比

型号星座频段精度封装特点
L26GPS+GLONASSL12.5m CEP16×12.2mm超小,消费级
L76KGPS+GLONASS+BeiDou+GalileoL11.8m CEP10.1×9.7mm超小多星座
LC29HGPS+GLONASS+BeiDou+GalileoL11.5m CEP17×12.2mm高性能,车规
L89GPS+GLONASS+BeiDou+GalileoL1+L51.0m CEP17×12.2mm双频,高精度

高精度 GNSS 模组对比

型号精度RTK频段特点
LC79D1cm(RTK)支持L1+L2双频RTK
LG69T1cm(RTK)支持L1+L5车规级,DR融合
LC29H DA1cm(RTK)支持L1双天线,航向角

GNSS 模组关键参数

灵敏度

参数说明典型值
捕获灵敏度冷启动时能捕获的最弱信号-148 dBm
跟踪灵敏度持续跟踪的最弱信号-167 dBm
重捕获灵敏度信号中断后重新捕获-160 dBm

首次定位时间(TTFF)

启动类型说明典型时间
冷启动无任何辅助信息30-60s
温启动有星历数据,无位置15-30s
热启动有星历和位置数据1-5s
AGPS 辅助网络下载星历1-3s

精度指标

CEP(Circular Error Probable,圆概率误差):
  50% 的定位结果在此圆内
  1.8m CEP ≈ 3.0m RMS ≈ 5.8m 2DRMS(95%)

常用精度表示:
  CEP:50% 置信度
  RMS:68% 置信度(1σ)
  2DRMS:95% 置信度(2σ)

GNSS 数据格式(NMEA)

GNSS 模组输出标准 NMEA 0183 格式数据:

$GNGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47

字段解析:
  $GNGGA:语句标识(GN=多星座,GGA=定位信息)
  123519:UTC 时间(12:35:19)
  4807.038,N:纬度(48°07.038'N)
  01131.000,E:经度(11°31.000'E)
  1:定位质量(1=GPS定位,2=差分定位,4=RTK固定解)
  08:使用卫星数
  0.9:HDOP(水平精度因子)
  545.4,M:海拔高度(米)
  46.9,M:大地水准面高度
  *47:校验和
$GNRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A

字段解析:
  $GNRMC:推荐最小定位信息
  123519:UTC 时间
  A:状态(A=有效,V=无效)
  4807.038,N:纬度
  01131.000,E:经度
  022.4:速度(节,1节=1.852km/h)
  084.4:航向角(度,真北为0)
  230394:日期(23日03月94年)

GNSS 开发快速入门

硬件连接

GNSS 模组接口:
  UART_TX → MCU UART_RX(NMEA 数据输出)
  UART_RX → MCU UART_TX(命令输入,可选)
  VCC → 3.3V 或 1.8V(查看 Datasheet)
  GND → 地
  ANT → 有源天线(3.3V 供电)
  TIMEPULSE → MCU GPIO(1PPS 时间脉冲,可选)

解析 NMEA 数据(C 语言)

c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

typedef struct {
    double latitude;
    double longitude;
    float altitude;
    float speed;
    int satellites;
    int fix_quality;
} GNSSData;

// 解析 GGA 语句
int parse_gga(const char *nmea, GNSSData *data) {
    char buf[128];
    strncpy(buf, nmea, sizeof(buf));
    
    char *token = strtok(buf, ",");
    int field = 0;
    
    while (token != NULL) {
        switch (field) {
            case 2: // 纬度
                data->latitude = atof(token) / 100.0;
                break;
            case 4: // 经度
                data->longitude = atof(token) / 100.0;
                break;
            case 6: // 定位质量
                data->fix_quality = atoi(token);
                break;
            case 7: // 卫星数
                data->satellites = atoi(token);
                break;
            case 9: // 海拔
                data->altitude = atof(token);
                break;
        }
        token = strtok(NULL, ",");
        field++;
    }
    
    return data->fix_quality > 0 ? 0 : -1;
}

褚成志的笔记