07-配置与控制指令
配置与控制指令
1. 消息格式
在自定义协议中,输入和输出的语句被统称为消息,每条消息均为全 ASCII 字符组成的字符串。
消息的基本格式为:
$MSGNAME,data1,data2,data3,...[*CC]\r\n
- 输出的消息每条消息的总长度不超过 256 个字节;
- 消息名和参数、校验和中的字母均不区分大小写;
- 某些输入命令的某些参数可以省略,这些参数可以为空;即在两个逗号之间没有任何字符。这时如果没有特殊说明,该参数将被忽略,其控制的选项将不做改变;
- 大多数的消息名既可以用于输入的命令,也可以用于输出的信息。 同样的消息名作为输入时用于设定参数或查询当前的配置。用于输出时则用于输出接收机信息或配置。
2. 校验和
消息中''(0x2A)之后的两个字符为校验和,校验和的计算方法为从"$'起到""之前的所有字符(不包括"$'和'*')的异或,以 16 进制表示。
输入的消息中的校验和是可选的。
- 如果输入的语句中包含"*"及后面的两个校验和字符,则会对校验和进行检查,如果不符,则命令不被执行,接收机输出SFAIL 消息,并在其中指示校验和错误。
- 如果语句中不包含校验和,则直接执行命令。
- 如果输入消息的参数为空,且需要添加校验和,应在其后补加逗号进行校验和计算。参数不为空时不允许额外添加逗号。例如:SPDTINFO,*62
- 输出的消息中总会包含校验和。
3. 数据类型
在 自定义协议中,消息中的数据包含下面几种类型:
-
字符串(STR) 字符串由最长 32 个除\r 和\n 之外的 ASCII 字符组成,如 GPSL1。
-
无符号整数(UINT) 无符号整数的范围为 0~4,294,967,295(232),其有十进制和十六进制两种表示方法。
十进制的无符号整数由 0-9 的 ASCII 字符组成。如 123,4291075193;
十六进制无符号整数以字符h或H开始,后面紧跟着 0-9 与 a-f 或 A-F 组成的字符串最长8个字符(不含开始的h或H)。如hE10,hE41BA7C0。
-
有符号整数(INT) 有符号整数由 0-9 和负号的 ASCII 字符组成,其范围为-2147483648~2147483647(231)。如123217754,-245278。
-
双精度浮点(DOUBLE) 双精度浮点数据由 0-9 和负号、小数点的 ASCII 字符组成,其范围为-21024~21024。如3.1415926,-9024.12367225。
4. 消息定义
(1)RESET(复位)
| 消息格式 | $RESET,type,clrMask*cs | |
|---|---|---|
| 例子 | $RESET,0,h01*0C | |
| 描述 | 接收机复位 | |
| 类型 | 输入 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| type | UINT | (该项不更改配置时可为空) 复位类型: 0-软件复位 1- 芯片复位 2-预留 3-接收机停止 |
| clrMask | UINT | (该项不更改配置时可为空) 复位后清除接收机保存的历史信息,比特置1代表复位时清除; 该字段在 type=0 时有效 bit0-清除星历 bit2 -清除接收机位置和接收机时间 bit4 -清除电离层修正和 UTC 参数 bit7-清除历书 几种常用的启动方式,参数列举如下: h00- 热启动 h01-温启动 hFF-冷启动 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
注意️:
在发生闰秒时,冷启动复位后的接收机可能需要25分钟同步到UTC时间
(2)命令回显功能
| 消息格式 | 用户命令 |
|---|---|
| 例子 | $CFGPRT,1,0,115200,1,3 |
| 描述 | 输出用户当前输入的命令 |
| 类型 | 输出 |
| 无参数 |
(3)OK
| 消息格式 | $OK*cs | |
|---|---|---|
| 例子 | $OK*04 | |
| 描述 | 接收机正确执行指令的回应,该消息只在接收到命令的串口输出 | |
| 类型 | 输出 | |
| 参数定义 | ||
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
(4)FAIL
| 消息格式 | $FAIL,errorCode*cs | |
|---|---|---|
| 例子 | $FAIL,0*1E | |
| 描述 | 输入指令错误的回应 该消息只在接收到命令的串口输出 |
|
| 类型 | 输出 | |
| 参数定义 | ||
| errorCode | UINT | 错误代码 0-指令非法或参数格式错误 1-校验和错误 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
(5)CFGPRT(输出接口配置)
读取端口配置
| 消息格式 | $CFGPRT,portlD*cs | |
|---|---|---|
| 例子 | $CFGPRT,1*09 | |
| 描述 | 读取接收机端口配置,接收机收到此命令后输出 CFGPRT 消息 | |
| 类型 | 输入 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| portlD | UINT | 端口号:1 如果该项位空,则输出当前端口的配置 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
设定/输出端口配置
| 消息格式 | $CFGPRT,portlD,addr,baud,inPro,outPro*cs | |
|---|---|---|
| 例子 | $CFGPRT,1,0,115200,1,3*3C | |
| 描述 | 设定或输出端口的配置 | |
| 类型 | 输入/输出 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| portlD | UINT | 该端口号配置为1。或者可为空,配置当前端口。 |
| addr | UINT | 默认为0 |
| baud | UINT | (该项不更改配置时可为空) 可选波特率: 9600 / 19200 / 38400 / 57600 / 115200 / 230400 / 460800 / 921600 / 1500000 / 2000000 / 2500000 / 3000000 / 3500000 / 4000000 |
| inPro | UINT | (该项不更改配置时可为空) 端口输入协议,对应 bit 置1代表开启; bit0 -本自定义协议; |
| outpro | UINT | (该项不更改配置时可为空) 端口输出协议,对应 bit 置1代表开启; bit0 -自定义协议 ; bit1-NMEA ; bit2 -RTCM3.3 ; bit3 -Debug ; bit5- 命令回显 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
注意:
(1)如需输出较高的数据频率,请调高波特率,否则会出现卫星信息不完整的情况;
(2)自定义协议不可关闭!如关闭,会导致指令无法接收。
(6)CFGMSG(输出消息配置)
读取消息输出配置
| 消息格式 | $CFGMSG,msgClass,msgID,cycle,portlD*cs | |
|---|---|---|
| 例子 | $CFGMSG,0,1,,1*07 | |
| 描述 | 读取接收机消息配置,接收机收到此命令后输出 CFGMSG 配置信息 | |
| 类型 | 输入 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| msgClass | UINT | 消息类别(见下表1-1消息的类别和ID) |
| msgID | UINT | 消息代号(见下表1-1消息的类别和ID) |
| cycle | UINT | 输出频度。该值默认为空 |
| portID | UINT | 端口号,参考CFGPRT 指令 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
设定/输出消息输出频度
| 消息格式 | $CFGMSG,msgClass,msgID,cycle,portlD*cs | |
|---|---|---|
| 例子 | $CFGMSG,0,1,1,1*1A | |
| 描述 | 设置或输出接收机消息的配置 | |
| 类型 | 输入/输出 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| msgClass | UINT | 消息类别(见下表1-1消息的类别和ID) |
| msgID | UINT | 消息代号(见下表1-1消息的类别和ID) 如果为空,则代表该类别下的所有消息 |
| cycle | UINT | 输出频度。消息的实际输出频度基于接收机的定位频度。 比如,当通过 CFGNAV 配置接收机的定位频度为 4Hz 时: 如果 cycle 设定为1,则该消息每秒输出 4次; 如果 cycl设定为2,则该消息每秒输出2次; 如果 tycle 设定为0,则关闭该消息输出。 每条消息都有其设置范围。如果设定值超出范围,则该语句无效。 |
| portID | UINT | 端口号,为1 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
表1-1 消息的类别和ID
| 消息名 | 类别 | ID | Cyle |
|---|---|---|---|
| GGA | 0 | 0 | 0~255 |
| GLL | 0 | 1 | 0~255 |
| GSA | 0 | 2 | 0~255 |
| GSV | 0 | 3 | 0~255 |
| RMC | 0 | 4 | 0~255 |
| VTG | 0 | 5 | 0~255 |
| ZDA | 0 | 6 | 0~255 |
| GST | 0 | 7 | 0~255 |
| GNS | 0 | 8 | 0~255 |
| DHV | 0 | 11 | 0~255 |
| NAVPOS | 1 | 0 | 0~255 |
| NAVVEL | 1 | 1 | 0~255 |
| NAVTIME | 1 | 2 | 0~255 |
| NAVACC | 1 | 3 | 0~255 |
| LSF | 3 | 0 | 0~255 |
(7)CFGNMEA(NMEA协议版本配置)
读取NMEA配置
| 消息格式 | $CFGNMEA,*cs | |
|---|---|---|
| 例子 | $CFGNMEA,*69 | |
| 描述 | 读取 NMEA 输出版本,接收机收到此命令后输出 CFGNMEA 消息 | |
| 类型 | 输入 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
设定/输出NMEA配置
| 消息格式 | $CFGNMEA,nmeaVer*cs | |
|---|---|---|
| 例子 | $CFGNMEA,h52*06 | |
| 描述 | 设定或输出 NMEA 输出版本配置 | |
| 类型 | 输入/输出 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| nmeaVer | UINT | 输出的NMEA协议版本 h51-NMEA 4.11 h52-NMEA 4.1X(默认版本) (NMEA 4.1X版本目前兼容了NMEA 4.10和NMEA 4.11) |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
(8)CFGDYN(动态配置)
读取当前动态配置
| 消息格式 | $CFGDYN,*cs | |
|---|---|---|
| 例子 | $CFGDYN,*3D | |
| 描述 | 读取当前的动态配置,接收机收到此命令后输出 CFGDYN 消息 | |
| 类型 | 输入 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
设定/输出动态配置
| 消息格式 | $CFGDYN,dynModel,staticHoldThresh*cs | |
|---|---|---|
| 例子 | $CFGDYN,0,0*11 | |
| 描述 | 设定或输出定位配置 | |
| 类型 | 输入/输出 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| dynModel | UINT | 动态模型 0 - 默认配置;1-动态;2-静态 默认配置为0 |
| staticHoldThresh | UINT | 进入静态保持的速度阈值,有效范围 0-100,单位为厘米/秒; 当 dynModel =1,配置速度阈值,当速度小于阈值时,进入静态保持状态,当速度大于阈值时,退出静态保持变为动态输出;速度阈值为0或缺省状态,为动态输出; 当 dynModel =2,为静态输出,不进入静态保持状态,速度阈值不生效,不需要配置该参数。 默认配置为 0 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
注意:
- 当动态输出时、设置静态保持速度阈值大于 100,则指令不生效;
- 当静态输出时,静态保持速度阈值是不生效的;速度缺省时的指令,如$CFGDYN,1,。
(9)CFGGEOID(高程配置)
读取高程配置
| 消息格式 | $CFGGEOID *cs | |
|---|---|---|
| 例子 | $CFGGEOID,*2E | |
| 描述 | 读取当前的高程配置,接收机收到此命令后输出 CFGGEOID 消息 | |
| 类型 | 输入 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
设定/输出定位配置
| 消息格式 | $CFGGEOID,Model*cs | |
|---|---|---|
| 例子 | $CFGGEOID,1*1F | |
| 描述 | 设定或输出定位配置 | |
| 类型 | 输入/输出 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| Model | UINT | (该项不更改配置时可为空) 0 -高程输出为椭球高 1 -高程输出为海拔高(默认值) |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
(10)CFGSAVE命令保存
| 消息格式 | $CFGSAVE,mask *cs | |
|---|---|---|
| 例子 | $CFGSAVE,h0F*71 | |
| 描述 | 存储当前接收机配置,当前的配置被存储到存储器中 | |
| 类型 | 输入 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| mask | UINT | 要存储的配置种类 bit0-CFGPRT 配置 bit1-CFGMSG 和 CFGNMEA 配置 bit2-CFGNAV 配置 bit3-CFGTP 配置 bit4-CFGSYS 配置 bit5- 保留 bit6 -保留 bit7-CFGDYN 等配置 bit8-POWERSAVE 配置 bit9-CFGCWOUT 配置 如果为空,则保存所有的配置。 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
注意:
该指令需要在V_BCKP脚(备电脚)不断电的情况下使用。在输入$CFGSAVE 命令之后的1秒之内请勿切断产品电源。该过程中断电可能导致接收机配置损坏,此时接收机配置将恢复到出厂设置
(11)CFGLOAD (加载用户配置)
该命令修改的配置在复位接收机后生效
| 消息格式 | $CFGLOAD,mask*cs | |
|---|---|---|
| 例子 | $CFGLOAD,h0F*76 | |
| 描述 | 加载为 Flash 中存储的配置 | |
| 类型 | 输入 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| mask | UINT | 要重新加载的配置种类 bit0-CFGPRT下配置 bit1-CFGMSG 和 CFGNMEA 配置 bit2-CFGNAV 配置 bit3-CFGTP 配置 bi4-保留 bit5-保留 bit6-保留 bit7 -CFGDYN 等配置 bit8-POWERSAVE 配置 bit9-CFGCWOUT 配置 如果为空,则加载所有的配置 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
(12)CFGCLR(清除配置)
| 消息格式 | $CFGCLR,mask*cs | |
|---|---|---|
| 例子 | $CFGCLR,h0F*2D | |
| 描述 | 清除当前接收机配置输入 | |
| 类型 | 输入 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| mask | UINT | 要清除的配置种类 bit0-CFGPRT 配置 bit1-CFGMSG 和 CFGNMEA 配置 bit2-CFGNAV 配置 bit3-CFGTP 配置 bit4-CFGSYS 配置 bit5-保留 bit6-保留 bit7-CFGDYN 等配置 bit8-POWERSAVE 配置 bit9-CFGCWOUT 配置 如果为空,则清除所有的配置 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
注意:该命令修改的配置在复位接收机后生效
(13)CFGCWOUT(干扰检测配置和输出)
查询干扰检测语句配置
| 消息格式 | $CFGCWOUT,*cs | |
|---|---|---|
| 例子 | $CFGCWOUT,*34 | |
| 描述 | 读取干扰检测语句输出配置,接收机收到此命令后输出 CFGCWOUT 语句 | |
| 类型 | 输入 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
设定干扰检测语句配置
| 消息格式 | $CFGCWOUT,AlCtrl,CWOutCtrl*cs | |
|---|---|---|
| 例子 | $CFGCWOUT,1,1*18 | |
| 描述 | 干扰检测语句输出控制 | |
| 类型 | 输入/输出 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| AICtrl | UINT | AlCtrl: 0:关闭抗干扰功能;(默认值) 1:打开抗干扰功能 |
| CWOutCtrl | UINT | 0:关闭 CWOUT 输出语句(默认值) 1:打开 CWOUT 输出语句 注意:只有抗干扰功能打开时,CWOUT才有输出 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
注意:CFGCWOUT 语句默认 2秒打印一次。
CWOUT输出干扰检测信息
| 消息格式 | $CWOUT,CWFlagOut,CWToneFreqOut,CWRatioOut*cs | |
|---|---|---|
| 例子 | $CWOUT1,1575420000,-90*7E | |
| 描述 | 输出干扰检测信息 | |
| 类型 | 输出 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| CWFlagOut | UINT | 干扰标志 0:无干扰; 1:有干扰,县经滤波后干扰信号强度小于等于-85dBm; 2:有干扰,且经滤波后干扰信号强度大于-85dBm,已影响接收机定位; |
| CWToneFreqOut | UINT | 干扰信号频率,单位 Hz |
| CWRatioOut | UINT | 干扰强度,单位dBm,线性范围小于等于-80dBm |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
注意:CWOUT 语句仅在发送$CFGCWOUT,1,1 后才输出。
RCVSTATE(输出AGC增益信息和宽带干扰强度信息)
| 消息格式 | $RCVSTATE,AGCGain,BBJammingLevel | |
|---|---|---|
| 例子 | $RCVSTATE,0,1 | |
| 描述 | 输出 AGC 增益信息和宽带干扰强度信息 | |
| 类型 | 输出 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| AGCGain | UINT | AGC增益值 有效值:0~127,0表示接收机饱和,增益最小 |
| BBJammingLevel | UINT | 宽带干扰强度等级 0:基本无宽带干扰 1:中等强度宽带干扰,接收机可以定位 2:高强度宽带干扰,接收机失定位 9:当前干扰强度未知 |
注意:RCVSTATE语句仅在发送$CFGCWOUT,1,1 后才输出
(14)AIDTIME(输入时间辅助信息)
| 消息格式 | $AlDTIME,year,month,day,hour,minute,second,millisecond*cs | |
|---|---|---|
| 例子 | $AIDTIME,2021,4,9,17,41,36,200*4D | |
| 描述 | 输入时间辅助信息,UTC 时间 | |
| 类型 | 输入 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| year | UINT | 年 |
| month | UINT | 月 |
| day | UINT | 日 |
| hour | UINT | 时 |
| minute | UINT | 分 |
| second | UINT | 秒 |
| millisecond | UINT | 毫秒 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
(15)AIDPOS(输入位置辅助信息)
| 消息格式 | $AIDPOS,Latitude,N,Longitude,E,altitude*cs | |
|---|---|---|
| 例子 | $AIDPOS,4002.229934,N,11618.096855,E,37.254*07 | |
| 描述 | 输入位置辅助信息 | |
| 类型 | 输入 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| Latitude | DOUBLE | 纬度,格式为 ddmm.mmmmmm dd-度 mm.mmmmmm-分 |
| N | STRING | 北纬或南纬指示 北纬;S-南纬 |
| Longitude | DOUBLE | 经度,格式为 dddmm.mmmmmm ddd-度 mm.mmmmmm-分 |
| E | STRING | 东经或西经指示 东经;W-西经 |
| altitude | DOUBLE | 椭球高,单位:米 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
(16)CFGNAV(定位结果输出频率配置)
读取定位配置
| 消息格式 | $CFGNAV,*cs | |
|---|---|---|
| 例子 | $CFGNAV,*37 | |
| 描述 | 读取接收机定位配置,接收机收到此命令后输出 CFGNAV 消息 | |
| 类型 | 输入 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
设定/输出定位配置
| 消息格式 | $CFGNAV,measRate,navRate*cs | |
|---|---|---|
| 例子 | $CFGNAV,1000,1000*1B | |
| 描述 | 设定或输出定位配置 | |
| 类型 | 输入/输出 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| measRate | UINT | (该项不更改配置时可为空) 观测量频度,单位为 ms; 1000(1Hz)(默认);500(2Hz);250(4Hz);200(5Hz) |
| navRate | UINT | (该项不更改配置时可为空) 定位频度,单位为 ms; 1000(1Hz)(默认);500(2Hz);250(4Hz);200(5Hz) |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
注意:
(1)配置输出频率比较高时,需要调高串口波特率,否则会出现卫星信息不完整的情况。
(2) 建议 MeasRate 与NavRate 设置成相同的;若设置不同, NavRate 必须为 MeasRate整倍数。
(17)AIDINFO(查询辅助数据信息)
查询辅助数据信息
| 消息格式 | $AIDINFO,*CS | |
|---|---|---|
| 例子 | $AIDINFO,*6E | |
| 描述 | 查询辅助数据的状态,接收机收到此命令后输出$AIDINFO 消息 | |
| 类型 | 输入 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| cs | STR | 校验和,$和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
输出辅助数据信息
| 消息格式 | $AIDINFO,GPSRS,GPSUS,BDSRS,BDSUS,GALRS,GALUS,GLORS,GLOUS,AType*cs | |
|---|---|---|
| 例子 | $AIDINFO,0x00FFDFFFFF,0x00FFDFFFFF,0x0000000000,0x0000000000,0x0000000000,0x0000000000,0x0000000000,0x0000000000,0x00000111*27 | |
| 描述 | 输出辅助数据的状态和辅助类型 | |
| 类型 | 输出 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| GPSRS | UINT64 | GPS星历的接收状态,只要接收到的数据校验通过,则相应bit置 1。如果 GPS 系统没有 enable,则此字段为 0x0000000000 |
| GPSUS | UINT64 | GPS 星历有效且可用于定位,则相应 bit 置 1,如果 GPS 系统没有 enable,则此字段为 0x0000000000 |
| BDSRS | UINT64 | BDS 星历的接收状态,只要接收到的数据校验通过,则相应 bit置 1。如果 BDS 系统没有 enable,则此字段为0x0000000000 |
| BDSUS | UINT64 | BDS 星历有效且可用于定位,则相应 bit 置1; 如果 BDS 系统没有 enable,则此字段为 0x0000000000 |
| GALRS | UINT64 | GAL 星历的接收状态,只要接收到的数据校验通过,则相应 bit置 1。如果 GAL 系统没有 enable,则此字段为 0x0000000000 |
| GALUS | UINT64 | GAL 星历有效且可用于定位,则相应 bit 置 1,如果 GAL 系统没有 enable,则此字段为0x0000000000 |
| GLORS | UINT64 | GLO 星历的接收状态,只要接收到的数据校验通过,则相应 bit置 1。如果 GLO系统没有 enable,则此字段为 0x0000000000 |
| GLOUS | UINT64 | GLO 星历有效日可用于定位,则相应 bit 置 1,如果 GLO 系统没有 enabe,则此字段为 0x0000000000 |
| Atype | UINT32 | 辅助类型 bit0-3:有GPS/BDS/GAL/GLO 星历辅助 bit4:使用辅助位置 Bit5:使用辅助位置 Bit6-7: reserve Bit8:使用辅助时间 Bit9:使用辅助时间 Bit10-15: reserve Bit31: reserve |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
(18)CFGTP (PPS脉冲设置)
| 消息格式 | $CFGTP,interval,length,flag,antDelay,rfDelay,usrDelay*cs | |
|---|---|---|
| 例子 | $CFGTP,1000000,500000,1,0,800,0*7B | |
| 描述 | 设定或输出授时配置 | |
| 类型 | 输入/输出 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| interval | UINT | (该项默认1000000,不需要更改配置时可为空) 授时脉冲宽度,单位为 us; |
| length | UINT | (该项不需要更改配置时可为空) 授时脉冲宽度,单位为 us; (1000<=取值<interval,默认 100000,按1000us 的整数倍设置) (上升沿与整授时脉冲频度对齐时为高电平宽度,下降沿与整授时脉冲频度对齐时为低电平宽度) |
| flag | UINT | (该项不需要更改配置时可为空) 授时脉冲的配置: bit0 0-关闭授时脉冲输出 1-打开授时脉冲输出(默认) bit1 上升沿与整秒对齐(默认) 下降沿与整秒对齐1 bit2 0-授时可靠时输出(默认) 1-总是输出授时脉冲 |
| antDelay | INT | (该项不需要更改配置时可为空) 天线延迟,单位为ns;(取值-32768~32767,默认0) |
| rfDelay | INT | (该项不需要更改配置时可为空) 射频单元延迟,单位为ns;(取值-32768~32767,默认 0) |
| usrDelay | INT | (该项不需要更改配置时可为空) 用户设定的延迟,单位为ns,默认为0。 修改延迟可能会导致秒脉冲在调整期内精度下降 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
(19)CFGNMEAPREC (NMEA 输出精度)
读取 NMEA 经纬高保留小数点后的位数
| 消息格式 | $CFGNMEAPREC,*CS | |
|---|---|---|
| 例子 | $CFGNMEAPREC,*6D | |
| 描述 | 读取当前 NMEA 经纬高小数点后位数 | |
| 类型 | 输入/输出 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
设定经纬高保留小数点后的位数
| 消息格式 | $CFGNMEAPREC,LatLonNum,AltNum*cs | |
|---|---|---|
| 例子 | $CFGNMEAPREC,5,1*45 | |
| 描述 | 设置当前 NMEA 经纬高小数点后位数 | |
| 类型 | 输入 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| LatLonNum | UINT | 7 - 表示 NMEA 中经纬度显示小数点后7 位 5 - 表示 NMEA 中经纬度显示小数点后5位(默认); |
| AltNum | UINT | 3 - 表示 NMEA 中高度显示小数点后3 位; 表示 NMEA 中高度显示小数点后1位(默认); |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
(20)CFGGEOFENC(配置电子围栏)
读取电子围栏配置参数
| 消息格式 | $CFGGEOFENCE,RW,GeolD*cs | |
|---|---|---|
| 例子 | $CFGGEOFENCE,0,1*45 | |
| 描述 | 读取电子围栏配置参数 | |
| 类型 | 输入 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| RW | UINT | 0 - 读取电子围栏参数 配置电子围栏参数 |
| GeoID | UINT | 电子围栏的ID号,最多支持3个电子围栏,取值范围 0~2 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
配置电子围栏参数
| 消息格式 | $CFGGEOFENCE, RW,GeolD,GeoMode,Geoshape, Lat0, Lon0,Lat1/Radius, Lon1,Lat2, Lon2,Lat3, Lon3*cs | |
|---|---|---|
| 例子 | $CFGGEOFENCE,1,0,3,0,31.207092,121.623753 5,0,0,0,0,07B $CFGGEOFENCE,1,1,3,2,31.208021,121.623753,31.205933,121.62626,31.205933,121.62116,0,07E |
|
| 描述 | 配置电子围栏参数 | |
| 类型 | 输入 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| RW | UINT | 读取电子围栏参数 配置电子围栏参数 |
| GeoID | UINT | 电子围栏的ID号,最多支持3个电子围栏,取值范围 0~2 |
| GeoMode | UINT | 电子围栏上报方式 0-不上报 1-进入电子围栏上报 2-离开电子围栏上报 3-进入和离开电子围栏都上报 |
| GeoShape | UINT | 电子围栏形状设置 0 -圆,传入圆心和半径 1-圆,传入圆心和圆上一个点,顶点坐标的单位为角度 2-三角形,传入3个顶点坐标,顶点坐标的单位为角度 3-凸四边形,传入4个顶点坐标,必须按顺时针方式,顶点坐标的单位为角度 |
| Lat0, Lon0 | DOUBLE | GeoShape=0,1时,圆心坐标 Geoshape=2,3时,第1个顶点坐标 |
| Lat1/Radius | DOUBLE | GeoShape=0 时,圆的半径 Geoshape=1 时,圆上点的纬度值 Geoshape=2,3时,第2个顶点坐标的纬度值 |
| Lon1 | DOUBLE | Geoshape=1 时,圆上点的经度值 Geoshape=2,3时,第2个顶点坐标的经度值 |
| Lat2, Lon2 | DOUBLE | Geoshape=2,3时,第3个顶点坐标 |
| Lat3, Lon3 | DOUBLE | Geoshape=2,3时,第3个顶点坐标 |
| Lat3, Lon3 | DOUBLE | Geoshape=3 时,第4个顶点坐标 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
(21)SETGEOFENCE (启动或关闭电子围栏)
读取当前电子围栏启动/关闭状态
| 消息格式 | $SETGEOFENCE,*cs | |
|---|---|---|
| 例子 | $SETGEOFENCE,*68 | |
| 描述 | 读取当前电子围栏处于启动或关闭状态 | |
| 类型 | 输入 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
启动/关闭电子围栏
| 消息格式 | $SETGEOFENCE, GeoEn*cs | |
|---|---|---|
| 例子 | $SETGEOFENCE,1*59 | |
| 描述 | 启动/关闭电子围栏 | |
| 类型 | 输入 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| GeoEn | UINT | 0-关闭电子围栏 1-打开电子围栏 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
(22)REQGEOFENCE (查询当前电子围栏状态)
查询当前电子围栏状态
| 消息格式 | $REQGEOFENCE,GeoID*cs | |
|---|---|---|
| 例子 | $REQGEOFENCE,1*5D | |
| 描述 | 查询当前电子围栏状态,输出$GEOFENCESTATUS 语句 | |
| 类型 | 输入 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| GeolD | UINT | 电子围栏的ID号,最多支持3个电子围栏,取值范围 0~2 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
(23)GEOFENCESTATUS(当前电子围栏状态)
输出当前电子围栏状态
| 消息格式 | $GEOFENCESTATUS,GeolD,Status*cs | |
|---|---|---|
| 例子 | $GEOFENCESTATUS,1,1*12 | |
| 描述 | 输出当前电子围栏状态,紧随 REQGEOFENCE 命令之后输出 | |
| 类型 | 输出 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| GeolD | UINT | 电子围栏的ID 号,最多支持3个电子围栏,取值范围 0~2 |
| Status | UINT | 0-不确定 1-在电子围栏内 2-在电子围栏外 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
(24)GEOFENCERESULT(电子围栏结果)
输出当前电子围栏结果
| 消息格式 | $GEOFENCERESULT,GeoID,Result*cs | |
|---|---|---|
| 例子 | $GEOFENCERESULT,1,1*0F | |
| 描述 | 当电子围栏达到上报条件时,输出当前电子围栏结果 | |
| 类型 | 输出 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| GeolD | UINT | 电子围栏的ID 号,最多支持3个电子围栏,取值范围 0~2 |
| Status | UINT | 1-在电子围栏内 2-在电子围栏外 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
(25)CFGLP(低功耗配置)
读取配置
| 消息格式 | $CFGLP | |
|---|---|---|
| 例子 | $CFGLP | |
| 描述 | 读取当前的低功耗配置,接收机收到此命令后输出CFGLP 消息 | |
| 类型 | 输入 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| 无参数 |
设定/输出定位配置
| 消息格式 | $CFGLP, AECONFIG,RFCONFIG,L5CONFIG,DUTYCONFIG | |
|---|---|---|
| 例子 | $CFGLP,2,2,2,2 | |
| 描述 | 设定或输出低功耗配置 | |
| 类型 | 输入/输出 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| AECONFIG | UINT | 0 - AE常关 1- AE 常开: 2-根据实际情况自动开关 注意:AE开的时候,DUTY 必须关闭 |
| RFCONFIG | UINT | 0-RF 增益常低 1-RF 増益常高 2-根据实际情况自动配置 |
| L5CONFIG | UINT | 0 - L5 常关 1 - L5 常开 2-根据实际情况自动开关 |
| DUTYCONFIG | UINT | 0 - DUTY 常关 1 - DUTY 常开 2-根据实际情况自动开关 注意:抗干扰打开的时候,DUTY 必须关闭 |
(26)CFGAREPH(主动请求星历配置)
查询辅助星历配置
| 消息格式 | $CFGAREPH | |
|---|---|---|
| 例子 | $CFGAREPH | |
| 描述 | 查询主动请求星历配置 | |
| 类型 | 输入 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| 无参数 |
配置主动请求星历功能开关
| 消息格式 | $CFGAREPH,Type,saveFlag | |
|---|---|---|
| 例子 | $CFGAREPH,1,1 | |
| 描述 | 配置主动请求星历开关。开启主动请求星历功能之后,芯片会根据星历数量自动判定是否需要注入星历,需要注入星历时,会打印$EPHABNORMAL语句用于标识需要注入星历。 | |
| 类型 | 输入/输出 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| Type | UINT | 配置是否开启主动请求星历功能 1: 开启 0: 关闭(默认) |
| saveFlag. | UINT | 标识是否保存该指令 1: 保存 0: 不保存 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
5. 定位结果消息
(1)NAVPOS
| 消息格式 | $NAVPOS,Time,System,Quality,X,Y,Z,Lat,Lon,Height*cs | |
|---|---|---|
| 例子 | $NAVPOS,28220100053,-2160481.168,4383619.1824084735.203,40.078998,116.236534,52.843847*1C | |
| 描述 | 输出位置信息 | |
| 类型 | 输出 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| Time | UINT | 定位解对应的时间时间的含义取决于当前定位使用的系统,GPS>BDS>GAL>GLO。 |
| System | UINT | 当前定位使用的系统 bit0-GPS bit2-BDS bit5-GAL bit4-GLO |
| Quality | UINT | 当前定位质量 无效 外部设置 2-粗略 3-精确 |
| X | DOUBLE | ECEF坐标系X,单位为米 |
| Y | DOUBLE | ECEF坐标系Y,单位为米 |
| Z | DOUBLE | ECEF坐标系Z,单位为米 |
| lat | DOUBLE | 纬度,北纬为正。南纬为负,单位为度 |
| lon | DOUBLE | 经度,东经为正。西经为负,单位为度 |
| height | DOUBLE | 椭球高,单位为米 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
(2)NAVVEL
| 消息格式 | $NAVVEL,Time,System,Quality,Vx,Vy,Vz,ClockDrift* cs | |
|---|---|---|
| 例子 | $NAVVEL,282201000,5 3,0.000,0.000,0.000,31.785*2F | |
| 描述 | 输出速度信息 | |
| 类型 | 输出 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| Time | UINT | 定位解对应的时间时间的含义取决于当前定位使用的系统,GPS>BDS>GAL>GLO。 |
| System | UINT | 当前定位使用的系统 bit0-GPS;bit2-BDS;bit5-GAL;bit4-GLO |
| Quality | UINT | 当前定位质量 0-无效;1-外部设置;2-粗略;3-精确 |
| Vx | DOUBLE | ECEF坐标系Vx,单位为m/s |
| Vy | DOUBLE | ECEF坐标系Vy,单位为m/s |
| Vz | DOUBLE | ECEF坐标系Vz,单位为m/s |
| ClockDrift | DOUBLE | 晶振漂移的等效速度,单位为 m/s |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
(3)NAVTIME
| 消息格式 | $NAVTIME,GPSW,GPST,GPSO,BDWBDT,BDQ,GALW,GALT,GALQ,GLOW,GLOD,GIOT,GLOQ*cs | |
|---|---|---|
| 例子 | $NAVTIME,2050,99974 .000222664,3,694,99960.000222685,3,1026,99974.000222660,3,6,1208,24356000222657,0*65 | |
| 描述 | 输出时间信息 | |
| 类型 | 输出 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| GPSW | UINT | GPS周 |
| GPST | DOUBLE | GPS周内秒 |
| GPSQ | UINT | GPS时间质量 0-无效;1-外部设置;2-粗略;3-精确 |
| BDW | UINT | BDS周 |
| BDT | DOUBLE | BDS周内秒 |
| BDQ | UINT | BDS时间质量 |
| GALW | UINT | GAL周 |
| GALT | DOUBLE | GAL 周内秒 |
| GALQ | UINT | GAL 时间质量 |
| GLOY | UINT | GLO 年 |
| GLOD | UINT | GLO 天 |
| GLOT | DOUBLE | GLO 天内秒 |
| GLOQ | UINT | GLO 时间质量 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
(4)NAVACC
| 消息格式 | $NAVAcC,Time,status,PAcC,VACC,CAcC,HAcc*cs | |
|---|---|---|
| 例子 | $NAVACC,114732.000,A375,66,360000,297*4D | |
| 描述 | 输出定位测速精度信息 | |
| 类型 | 输出 | |
| 参数定义 | ||
| 参数名 | 类型 | 描述 |
| Time | UINT | UTC时间,格式为 hhmmss.sss hh- 小时 mm-分钟 ss.sss-秒 |
| Status | UINT | 数据有效标识 V-无效;A-有效 |
| PAcc | UINT | 水平定位精度,水平方向二维定位误差的均方差,单位:0.001米 |
| VAcc | DOUBLE | 水平测速精度,水平方向二维定位误差的均方差,单位:0.001米每秒 |
| CAcc | DOUBLE | 地面航向精度,单位:0.001 度 |
| HAcc | DOUBLE | 垂直定位精度,垂直方向定位误差的均方差,单位:0.001米 |
| cs | STR | 校验和, $和之间(不包括$和) 所有字符进行异或得到的十六进制数。 |
下一章:NMEA 0183协议