一、核心前提:明确目标数据特征
目标数据是多系统联合定位的标准 NMEA 0183 数据,关键特征如下,配置需针对性匹配:
| 数据类型 | 作用 | 关键要求 |
|---|---|---|
| $GNRMC | 多系统最小定位信息 | 含时间、经纬度、速度、航向,需多系统启用 |
| $GNGGA | 多系统固定定位数据 | 含定位类型(RTK 固定解 4)、卫星数、海拔 |
| \(GPGSV/\)GBGSV 等 | 各系统可视卫星信息 | 需启用 GPS(GP)、北斗(GB)、伽利略(GA)、QZSS(GQ) |
| 输出频率 | 1Hz(每秒 1 条) | 配置频率参数为 “1” |
| 串口输出 | 需指定串口(如 COM1) | 确保串口波特率与上位机匹配(默认 115200bps) |
二、详细设置步骤(基于简化 ASCII 指令)
步骤 1:基础配置检查与调整(串口 + 定位模式)
首先确保接收机串口参数与上位机(如电脑、单片机)一致,且工作模式为默认的「流动站模式」(无需额外修改定位模式,仅需输出数据)。
| 操作目的 | 指令 | 说明 | 文档参考章节 |
|---|---|---|---|
| 查询当前配置(串口 + 卫星) | CONFIGMASK | 1.CONFIG:查看串口波特率(如 COM1 是否为 115200bps); 2.MASK:确认无卫星系统被屏蔽 | 4.1(CONFIG 查询)、5.1(MASK 查询) |
| 配置串口波特率(如需) | CONFIG COM1 115200 | 示例:将 COM1 波特率设为 115200bps(上位机需同步设置),支持波特率:9600/19200/38400/57600/115200/230400/460800/921600 | 4.2(串口配置) |
| 确保流动站模式(默认) | MODE ROVER | 接收机默认是流动站模式,无需修改;若曾设为基准站,执行此指令切换 | 3.6(流动站模式) |
步骤 2:启用所需卫星系统(关键!)
目标数据包含 GPS、北斗(BDS)、伽利略(GAL)、QZSS 四大系统,需通过UNMASK指令解除屏蔽(默认全启用,若被屏蔽需执行)。
| 操作目的 | 指令 | 说明 | 文档参考章节 |
|---|---|---|---|
| 启用 GPS 系统 | UNMASK GPS | 允许接收机跟踪 GPS 卫星,对应 $GPGSV 输出 | 5.3(UNMASK 指令) |
| 启用北斗(BDS)系统 | UNMASK BDS | 允许接收机跟踪北斗卫星,对应 $GBGSV 输出 | 5.3 |
| 启用伽利略(GAL)系统 | UNMASK GAL | 允许接收机跟踪伽利略卫星,对应 $GAGSV 输出 | 5.3 |
| 启用 QZSS 系统 | UNMASK QZSS | 允许接收机跟踪 QZSS 卫星,对应 $GQGSV 输出 | 5.3 |
| (可选)设置卫星截止角 | MASK 5 | 示例:设置卫星截止高度角为 5°(仅跟踪高度角>5° 的卫星,优化信号质量) | 5.2(MASK 高度角) |
步骤 3:配置目标 NMEA 语句输出(核心指令)
根据 7.1 节「NMEA 数据输出指令」,需按「GP+语句名 串口号 输出频率」格式配置,输入指令时加GP前缀,接收机会自动按系统输出对应前缀(如多系统→GN、北斗→GB)。
| 目标 NMEA 语句 | 配置指令 | 说明 | 文档参考章节 |
|---|---|---|---|
| $GNRMC | GPRMC COM1 1 | 1.GPRMC:对应输出多系统 RMC($GNRMC); 2.COM1:指定从 COM1 口输出; 3.1:输出频率 1Hz(每秒 1 条) | 7.1(NMEA 输出) |
| $GNGGA | GPGGA COM1 1 | 1.GPGGA:对应输出多系统 GGA($GNGGA); 2. 参数含义同上图,含定位类型、卫星数等 | 7.1 |
| 多系统 $GSV | GPGSV COM1 1 | 仅需配置GPGGA,接收机会自动按系统输出\(GPGSV(GPS)、\)GBGSV(北斗)、\(GAGSV(伽利略)、\)GQGSV(QZSS) | 7.1 |
步骤 4:保存配置 + 验证输出
配置完成后需保存到非易失性存储器(NVM),避免断电失效,再验证数据输出。
| 操作目的 | 指令 | 说明 | 文档参考章节 |
|---|---|---|---|
| 保存配置(关键) | SAVECONFIG | 将当前串口、卫星系统、NMEA 输出配置保存到 NVM,断电后仍生效 | 8.4(Saveconfig) |
| 停止当前串口冗余输出(可选) | UNLOG | 若当前串口有多余输出,执行UNLOG停止,仅保留配置的 NMEA 语句 | 8.1(Unlog) |
| 验证输出 | 上位机读取 COM1 数据 | 打开串口工具(如 SecureCRT、串口助手),波特率 115200bps,应看到目标格式数据(\(GNRMC、\)GNGGA、各 $GSV) | - |
三、关键指令汇总(直接复制使用)
假设使用COM1 口、115200bps、1Hz 输出,完整指令序列如下(按顺序执行):
CONFIG COM1 115200# 配置 COM1 波特率(若需)UNMASK GPS# 启用 GPSUNMASK BDS# 启用北斗UNMASK GAL# 启用伽利略UNMASK QZSS# 启用 QZSSGPRMC COM1 1# 输出 $GNRMC(1Hz)GPGGA COM1 1# 输出 $GNGGA(1Hz)GPGSV COM1 1# 输出多系统 $GSV(1Hz)SAVECONFIG# 保存配置
四、常见问题排查
无\(GBGSV/\)GAGSV 输出?执行
MASK指令查询,若显示MASK BDS或MASK GAL,需重新执行UNMASK BDS/UNMASK GAL。输出频率不是 1Hz?检查指令频率参数:
1=1Hz、0.5=2Hz、0.2=5Hz,确保指令为GPGGA COM1 1(末尾为 1)。配置后断电失效?未执行
SAVECONFIG,需补执行该指令保存配置。**\(GNGGA中定位类型不是4(RTK固定解)?** 目标数据中`\)GNGGA` 的定位类型为 4(RTK 固定解),需确保接收机已接入 RTK 差分信号(如基准站 RTCM 数据),若仅需输出数据格式无需 RTK,定位类型会显示 1(单点定位),不影响数据格式正确性。
按以上步骤操作后,接收机将稳定输出与目标格式一致的 NMEA 数据。
uniheadinga 1
saveconfig
GPTHS 航向信息:
GPRMC 卫星定位信息
本指令用于输出时间、日期、位置、速度等信息。
freset ----------------------------------------------- 清除保存的接收机设置、卫星星历、位置信息等,串口波特率变为115200bps
version ---------------------------------------------查询版本号
config -----------------------------------------------查询接收机串口状态
mask BDS------------------------------------------禁用BDS 卫星系统可以分别禁用BDS、GPS、GLO、GAL
unmask BDS --------------------------------------启用BDS 卫星系统可以分别启用BDS、GPS、GLO、GAL;接收机默认跟踪所有卫星系统
config com1 115200 ----------------------------设置com1 波特率为115200可以分别对com1、com2、com3 设置为9600, 19200,38400, 57600, 115200, 230400,460800,921600 中任意一个波特率
unlog -----------------------------------------禁止当前串口所有输出
saveconfig ---------------------------------------保存设置
mode base ---------------------------------------设置为基准站
mode rover ----------------------------------------缺省Rover 模式
gpgga comx 1 ------------------------------------设置1Hz 输出GGA 消息
消息类型和更新率可自设:更新率可设置为1、0.5、0.2、0.1、0.05、0.02*,分别对应输出频率1Hz、2Hz、5Hz、10Hz、20Hz、50Hz*;类型包括GGA、RMC、ZDA、VTG等
gpgst 2D,3D ACC
gprmc
gpths comx 1 输出当前时刻的航向信息THS
参考资料:
1. 和芯星通UM982用户手册
2. NMEA0183协议规范
本文为个人GNSS定位开发学习笔记,仅供学习交流使用。