定位服务

更新时间:2024-05-21 09:57:45下载pdf

本文介绍蜂窝标准协议下定位服务的相关指令说明。

启动或关闭设备 GNSS 定位功能(0x72 81)

该功能由于 GNSS 模组的处理事务比较多,应答的消息超时时间最大为 3 秒。

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x72
数据长度 3 0x0003
数据 3
  • 子命令:0x81
  • 控制命令:0x01 启动,0x00 关闭
  • 定位类型:开启模式下值有效,部分 GPS 模组不支持
    • 0x00:GPS 搭配北斗
    • 0x01:GPS 搭配 GLONASS,需要确认 GNSS 模组是否支持
    • 0x02:GPS
    • 0x03:北斗,需要确认 GNSS 模组是否支持
    • 0x04:GLONASS,需要确认 GNSS 模组是否支持
    • 0x05:Galileo,需要确认 GNSS 模组是否支持
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x72
数据长度 2 0x0003
数据 3
  • 子命令:0x81,启动或者关闭状态:
    • 0:失败,
    • 1:成功
  • 定位类型状态:关闭时该状态显示值无效。部分 GPS 模组不支持,该返回值可以忽略:
    • 0:失败
    • 1:成功
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余
  • LZ211 模组 定位类型只支持 GPS 搭配 BD,不可更改。
  • 定位类型字段在 GNSS 定位开启的情况下,其值才有效。

自动上报设备的 GNSS 信息(0x72 90)

MCU 下发 GPS 定位 的 DPID 和上报间隔,模组自动上报 GPS 定位信息到云端。启用该功能,需要先开启 GNSS 定位功能。

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x72
数据长度 2 0x0004
数据 4
  • 子命令:0x90
  • 上报周期:2 字节(秒),大端模式上报
  • DPID:1 字节
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x72
数据长度 2 0x0002
数据 2
  • 子命令:0x90
  • 状态:
    • 0:失败
    • 1:成功
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余
  • 上报周期为 0 的时候,表示取消自动上报。
  • 上报周期大于 5 秒。
  • 自动上报的数据通过蜂窝通道。
  • 仅支持 String 类型的 DP。

启动或关闭设备 Wi-Fi 定位功能(0x72 82)

启动 Wi-Fi 定位功能后,若模组 Wi-Fi 与蓝牙互斥,则蓝牙会被关闭。

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x72
数据长度 2 0x0002
数据 2
  • 子命令:0x82
  • 控制命令:
    • 0x01:启动
    • 0x00:关闭
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x72
数据长度 2 0x0002
数据 2
  • 子命令:0x82
  • 状态:
    • 0:失败
    • 1:成功
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

自动上报设备 Wi-Fi 定位信息(0x72 91)

MCU 下发 Wi-Fi 定位 的 DPID 和上报间隔,模组自动上报 Wi-Fi 定位信息到云端。启用该功能,需要先开启 Wi-Fi 定位功能。

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x72
数据长度 2 0x0004
数据 4
  • 子命令:0x91
  • 上报周期:2 字节(秒)
  • (大端模式)上报的 DPID:1 字节
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x72
数据长度 2 0x0002
数据 2
  • 子命令:0x91
  • 状态:
    • 0:失败
    • 1:成功
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余
  • 上报周期为 0 的时候,表示取消自动上报。
  • 上报周期大于 5 秒。
  • 自动上报的数据通过蜂窝通道。
  • 仅支持 String 类型的 DP。

自动上报设备 LBS 定位信息(0x72 92)

MCU 下发 LBS 定位 的 DPID 和上报间隔,模组自动上报 LBS 定位信息到云端。

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x72
数据长度 2 0x0004
数据 4
  • 子命令:0x92
  • 上报周期:2 字节(秒)
  • 大端模式上报的 DPID:1 字节
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x72
数据长度 2 0x0002
数据 2
  • 子命令:0x92
  • 状态:
    • 0:失败
    • 1:成功
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余
  • 上报周期为 0 的时候,表示取消自动上报。
  • 上报周期大于 5 秒。
  • 自动上报的数据通过蜂窝通道。
  • 仅支持 String 类型的 DP。
  • LBS 获取需要 1 秒左右的时间。

建议 Wi-Fi、GNSS 和 LBS 三种定位模式只开启一种自动上报,上报周期和设定值可能有 1~2 秒的偏差。当某个定位信息在定时时间去获取信息失败后,会停止计时,延时 1~2 秒后再去获取,直到获取成功后,重新计时。

复位 GNSS 设备(0x72 83)

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x72
数据长度 2 0x0003
数据 3
  • 子命令:0x83
  • 复位 GPIO:0~31,根据实际产品的 GNSS 设备的复位 GPIO 口
  • 复位电平:0 表示低电平,1 表示高电平
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x72
数据长度 2 0x0002
数据 2
  • 子命令:0x83
  • 状态:
    • 0:失败
    • 1:成功
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余
  • LZ211 模组内置了 GNSS 设备,每次在 GNSS 设备上电时会自动复位一次。
  • LZ201 模组支持。
  • 其他模组不支持。

获取设备 GNSS 定位信息(经纬度格式)(0x71 10)

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x71
数据长度 2 0x0001
数据 1 子命令:0x10
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x71
数据长度 2 0x0002+N
数据 2+N
  • 子命令:0x10
  • 状态:
    • 0:失败
    • 1:成功
  • N 字节的定位信息,采用字符串格式,字符串为经纬度格式:longitude,latitude
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

模组返回的定位信息为字符串类型,MCU 在获取到定位信息后,按照 DP 服务 下状态上报,把模组返回的定位信息上报给云端。如果云端的 DP 要求纬经度格式,则 MCU 需要将收到的定位信息转为纬经度。

获取设备 GNSS 定位信息(纬经度格式)(0x71 29)

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x71
数据长度 2 0x0001
数据 1 子命令:0x29
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x71
数据长度 2 0x0002+N
数据 2+N
  • 子命令:0x29
  • 状态:
    • 0:失败
    • 1:成功
  • N 字节的定位信息,采用字符串格式,字符串为经纬度格式:longitude,latitude
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

模组返回的定位信息为字符串类型,MCU 在获取到定位信息后,按照 DP 服务 下状态上报,把模组返回的定位信息上报给云端。

获取设备 GNSS 的 SNR(0x71 11)

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x71
数据长度 2 0x0001
数据 1 子命令:0x11
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x71
数据长度 2 0x0003
数据 3
  • 子命令:0x11
  • 状态:
    • 0:失败
    • 1:成功
  • 信号强度:0~100(1 字节)
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

获取设备 GNSS 速度(0x71 12)

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x71
数据长度 2 0x0001
数据 1 子命令:0x12
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x71
数据长度 2 0x0004
数据 4
  • Data[0] 子命令:0x12
  • Data[1] 状态:
    • 0:失败
    • 1:成功
  • Data[2]:(速度)高数据位
  • Data[3]:(速度)低数据位。例如,Data[2] =SPEED>>8 Data[3] =SPEED&0xFF
速度(2 字节):单位,100 米/时
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

获取设备 Wi-Fi 定位信息(0x71 20)

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x71
数据长度 2 0x0001
数据 1 子命令:0x20
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x71
数据长度 2 0x0002+N
数据 2+N
  • 子命令:0x20
  • AP 信息个数:1(字节)
  • N 字节的定位信息(字符串)
例如:18:56:80:2F:7C:36,-61;18:56:80:2F:7C:36,-61;18:56:80:2F:7C:36,-61
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余
  • 模组返回的定位信息为字符串类型,MCU 在获取到定位信息后,按照 DP 服务 下状态上报,把模组返回的定位信息上报给云端。
  • 目前,定位信息只上报最多 10 个最好信号的 AP 信息。

获取 LBS 定位信息(0x71 21)

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x71
数据长度 2 0x0001
数据 1 子命令:0x21
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x71
数据长度 2 0x0002+N
数据 2+N
  • 子命令:0x21
  • 状态 1 字节:
    • 0:失败
    • 1:成功
  • N 字节的 LBS 定位信息(字符串格式),例如:460,00,6166,27556130,-75
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

模组返回示例:

55 AA 00 71 00 1A 21 01 34 36 30 2C 30 30 2C 36 31 36 36 2C 32 37 35 35 36 31 33 30 2C 2D 37 35 5F

  • 一般来说,某些基站编号只有 2 个字节,也就是 04ba。但是设计上涂鸦支持 4 字节的基站编号,所以可能出现 04ba0000 的情况,请在上报 LBS 的 DP 信息的时候,去掉 0000
  • LBS 定位信息的格式是:运营商编码(MCC+MCN)+ 位置区域码 + 基站编号 + 信号强度。例如中国电信:46000,1816,875a521,-40

GNSS 主电源控制(0x72 85)

MCU 发送命令给 LZ211 模组控制 GNSS 电源。LZ211 模组内置 GNSS 芯片,GNSS 备用电源处于常供电,主电源属于可控制模式,主电源上电属于热启动。

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x72
数据长度 2 0x0002
数据 2
  • 子命令:0x85
  • 数据:Data[1]:
    • 1:打开电源
    • 0:关闭电源
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x72
数据长度 2 0x0002
数据 2
  • 子命令:0x85
  • 状态:
    • 0:失败
    • 1:成功
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余
  • GNSS 上电过程中会加载 GNSS 固件,需要 4 秒左右。GNSS 关闭主电源后,重新打开电源后,需要重新启动 GNSS 定位功能。参考章节 启动或关闭设备 GNSS 定位功能
  • 仅 LZ211 模组支持,在开启定位功能前,需要先开启 GNSS 电源。

获取的 GNSS 电源状态(0x71 22)

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x71
数据长度 2 0x0001
数据 1 子命令:0x22
校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x71
数据长度 2 0x0002
数据 2
  • 子命令:0x22
  • 状态:
    • 0:电源关闭
    • 1:固件加载中
    • 2:电源开启,固件加载完成
    校验和 1 从帧头开始按字节求和,得出的结果对 256 求余
    • 仅 LZ211 模组支持。

    AGNSS 开关(0x72 86)

    • 启动或者关闭 GNSS 辅助定位。启动服务定位后,会消耗移动数据流量。模组当前默认未启动辅助定位。
    • 每 2 小时内,仅更新一次。
    • 通用对接协议版本为 1.1.4 及以上支持本功能。

    MCU 发送

    字段 字节数 说明
    帧头 2 0x55aa
    版本 1 0x03
    命令字 1 0x72
    数据长度 2 0x0001
    数据 2
    • 子命令:0x86
    • 数据:Data[1]:
      • 1:启动
      • 0:关闭
    校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

    模组返回

    字段 字节数 说明
    帧头 2 0x55aa
    版本 1 0x00
    命令字 1 0x72
    数据长度 2 0x0002
    数据 2
    • 子命令:0x86
    • 状态:
      • 0:失败
      • 1:成功
    校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

    获取 GNSS 可见卫星数量(0x71 15)

    MCU 发送

    字段 字节数 说明
    帧头 2 0x55aa
    版本 1 0x03
    命令字 1 0x71
    数据长度 2 0x0001
    数据 1 子命令:0x15
    校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

    模组返回

    字段 字节数 说明
    帧头 2 0x55aa
    版本 1 0x00
    命令字 1 0x71
    数据长度 2 0x0003
    数据 3
    • 子命令:0x15
    • 状态:
      • 0:失败
      • 1:成功
    • 获取可见卫星数:1 字节
    校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

    获取是否启动各定位功能(0x71 30)

    获取是否启动 GNSS、Wi-Fi 和 LBS 定位功能。

    MCU 发送

    字段 字节数 说明
    帧头 2 0x55aa
    版本 1 0x03
    命令字 1 0x71
    数据长度 2 0x0001
    数据 1 子命令:0x30
    校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

    模组返回

    字段 字节数 说明
    帧头 2 0x55aa
    版本 1 0x00
    命令字 1 0x71
    数据长度 2 0x0004
    数据 4
    • 子命令:0x30
    • 状态:
      • GNSS 定位:0x01 启动,0x00 关闭
      • Wi-Fi 定位:0x01 启动,0x00 关闭
      • LBS 定位:0x01 启动,0x00 关闭
    校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

    (可选)获取设备 GNSS 航向(0x71 13)

    MCU 发送

    字段 字节数 说明
    帧头 2 0x55aa
    版本 1 0x03
    命令字 1 0x71
    数据长度 2 0x0001
    数据 1 子命令:0x13
    校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

    模组返回

    字段 字节数 说明
    帧头 2 0x55aa
    版本 1 0x00
    命令字 1 0x71
    数据长度 2 0x0002/0x0004
    数据 2/4
    • Data[0] 子命令:0x13
    • Data[1] 状态:
      • 0:失败
      • 1:成功
    • 航向(2 个字节):取值是实际航向的 10 倍,失败则无该数据
    校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

    (可选)获取设备 GNSS 水平精度因子(0x71 16)

    通用对接协议版本为 1.1.3 及以上支持本功能。

    MCU 发送

    字段 字节数 说明
    帧头 2 0x55aa
    版本 1 0x03
    命令字 1 0x71
    数据长度 2 0x0001
    数据 1 子命令:0x16
    校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

    模组返回

    字段 字节数 说明
    帧头 2 0x55aa
    版本 1 0x00
    命令字 1 0x71
    数据长度 2 0x0002/0x0004
    数据 2/4
    • Data[0] 子命令:0x16
    • Data[1] 状态:
      • 0:失败
      • 1:成功
    • 水平精度因子(2 个字节):取值是实际水平精度因子的 10 倍,失败则无该数据
    校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

    (可选)获取设备 GNSS 海拔高度(0x71 17)

    通用对接协议版本为 1.1.3 及以上支持本功能。

    MCU 发送

    字段 字节数 说明
    帧头 2 0x55aa
    版本 1 0x03
    命令字 1 0x71
    数据长度 2 0x0001
    数据 1 子命令:0x17
    校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

    模组返回

    字段 字节数 说明
    帧头 2 0x55aa
    版本 1 0x00
    命令字 1 0x71
    数据长度 2 0x0002/0x0004
    数据 2/4
    • Data[0] 子命令:0x17
    • Data[1] 状态:
      • 0:失败
      • 1:成功
    • 海拔高度(2 个字节):取值是实际海拔高度的 10 倍,失败则无该数据
    校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

    (可选)使能 GPS 定位滤波算法(0x72 18)

    通用对接协议版本为 1.1.3 及以上支持本功能。

    MCU 发送

    字段 字节数 说明
    帧头 2 0x55aa
    版本 1 0x03
    命令字 1 0x72
    数据长度 2 0x0001
    数据 1 子命令:0x18
    校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

    模组返回

    字段 字节数 说明
    帧头 2 0x55aa
    版本 1 0x00
    命令字 1 0x72
    数据长度 2 0x0002
    数据 2
    • Data[0] 子命令:0x18
    • Data[1] 状态:
      • 0:失败
      • 1:成功
    校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

    (可选)设置 GPS 定位滤波算法(0x72 19)

    通用对接协议版本为 1.1.3 及以上支持本功能。

    MCU 发送

    字段 字节数 说明
    帧头 2 0x55aa
    版本 1 0x03
    命令字 1 0x72
    数据长度 2 0x0003
    数据 3 子命令:0x19
    HDOP 阈值(2 个字节):取值是实际 HDOP 阈值的 10 倍,默认 HDOP 阈值为 2.0,范围 0~99.9
    校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

    模组返回

    字段 字节数 说明
    帧头 2 0x55aa
    版本 1 0x00
    命令字 1 0x72
    数据长度 2 0x0002
    数据 2
    • Data[0] 子命令:0x19
    • Data[1] 状态:
      • 0:失败
      • 1:成功
    校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

    (可选)获取 GNSS 定位相关信息(0x71 1A)

    通用对接协议版本为 1.1.3 及以上支持本功能。

    MCU 发送

    字段 字节数 说明
    帧头 2 0x55aa
    版本 1 0x03
    命令字 1 0x71
    数据长度 2 0x0001
    数据 1 子命令:0x1A
    校验和 1 从帧头开始按字节求和,得出的结果对 256 求余

    模组返回

    字段 字节数 说明
    帧头 2 0x55aa
    版本 1 0x00
    命令字 1 0x71
    数据长度 2 0x0002/0x0014
    数据 2/20
    • Data[0] 子命令:0x1A
    • Data[1] 状态:
      • 0:失败,失败则无后续数据。若经纬度获取成功,其他失败则值为 0
      • 1:成功
    • 经度:浮点型,4 字节
    • 纬度:浮点型,4 字节
    • 信号强度:1 个字节
    • 卫星数量:1 个字节
    • 速度:2 个字节,单位:100 米/小时
    • 航向:2 个字节,取值是实际航向的 10 倍
    • 水平精度因子:2 个字节,取值是实际水平精度因子的 10 倍
    • 海拔高度:2 个字节,取值是实际海拔高度的 10 倍
    校验和 1 从帧头开始按字节求和,得出的结果对 256 求余