通过UART的协议

本章的整洁、易读HTML版本。

本页是《接口与协议》中“通过UART的协议”一章的HTML版本。如有不清楚之处,请打开 本章的原始PDF(第15-55页)(中文) (左上角也有固定链接)。总览: 全部章节.

用于数据流输出的“Marvelmind”协议

所有数据流数据包的总体结构相同:

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

目标地址

0xff

1

1

uint8_t

数据包类型

0x47

2

2

uint16_t

数据包中的数据代码

详见

4

1

uint8_t

传输的数据字节数

N

5

N

N字节

有效载荷数据,取决于数据代码字段

5+N

2

uint16_t

CRC-16(见附录1)

从软件版本v7.200起,默认启用实时时间戳。这意味着输出的是数据包0x0081、0x0083、0x0084、0x0085,而不是对应的0x0011、0x0003、0x0004、0x0005。

如需使用带本地时间戳的旧数据流格式以兼容旧软件,可在Dashboard的设备设置中禁用此选项:

接口与协议,通过UART的协议:图1

移动信标坐标数据包

每次测得新坐标或测量失败时,都会发送此数据包。

含毫米分辨率移动信标坐标和实时时间戳的数据包(固件V7.200+)

支持的硬件:

Super-Beacon:支持

Industrial Super-Beacon:支持

Modem HW5.1:支持

Super-Modem:支持

Mini-RX(胸牌、头盔等):支持,需使用 UART线缆

Mini-TX:当前硬件版本不支持

Mini-TX-2:支持,需使用 UART线缆

Modem HW4.9:支持

Beacon HW4.9:支持

Beacon HW4.5:支持

请参阅 说明 (关于时间戳)。

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

目标地址

0xff

1

1

uint8_t

数据包类型

0x47

2

2

uint16_t

数据包中的数据代码

0x0081

4

1

uint8_t

传输的数据字节数

N

5

8

int64_t

时间戳:Unix时间,即自1970.01.01 00:00:00起的毫秒数。

该时间由所有设备与调制解调器和Dashboard同步。

13

4

int32_t

信标X坐标,毫米

17

4

int32_t

信标Y坐标,毫米

21

4

int32_t

Z坐标(信标高度),毫米

25

1

uint8_t

标志字节:

位0:1 – 坐标不可用,不应使用X、Y、Z字段的数据。

位1:时间戳单位指示(见说明)

位2:1 – 用户按钮被按下(V5.23+)

位3:1 – 有数据可上传到用户设备,见第2节(V5.34+)

位4:1 – 需要从用户设备下载数据,见第2节(V5.34+)

位5:1 – 第二个用户按钮被按下(V5.74+)

位6:1 – 数据属于另一个移动信标(而非发送此数据包的移动信标)

位7:1 – 超出地理围栏区域

26

1

uint8_t

移动信标地址

27

2

uint16_t

位0…11:移动信标对在XY平面内的方向,单位0.1度(0…3600)

位12:1 – 坐标为信标对的中心;0 – 坐标为指定移动信标的位置

位13:1 – 方向不适用

位14…15:保留(0)

29

2

uint16_t

自超声波发射至当前时刻经过的时间,毫秒(V5.88+)

31

M=N-26

可选数据:参见 列表

31+M

2

uint16_t

CRC-16(见附录1)

移动信标位置数据包中的可选数据可包含以下结构:

  • 速度数据(7字节)。需在Dashboard中移动信标设置的接口部分启用

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

数据代码字段 = 1 表示速度矢量

1

1

2

int16_t

沿X轴速度,毫米/秒

3

2

int16_t

沿Y轴速度,毫米/秒

5

2

int16_t

沿Z轴速度,毫米/秒

含厘米分辨率移动信标坐标的数据包

已废弃的数据包,替代数据包: 0x0081。已废弃数据包的详细说明见 这里.

含毫米分辨率移动信标坐标的数据包

已废弃的数据包,替代数据包: 0x0081。已废弃数据包的详细说明见 这里.

固定信标坐标数据包

此数据包在地图冻结时发送,每10秒重复一次。

含毫米分辨率固定信标坐标的数据包,数据代码0x0012(固件V5.35+)

支持的硬件:

Super-Beacon:支持

Industrial Super-Beacon:支持

Modem HW5.1:支持

Super-Modem:支持

Mini-RX(胸牌、头盔等):支持,需使用 UART线缆

Mini-TX:当前硬件版本不支持

Mini-TX-2:支持,需使用 UART线缆

Modem HW4.9:支持

Beacon HW4.9:支持

Beacon HW4.5:支持

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

地址

0xff

1

1

uint8_t

数据包类型

0x47

2

2

uint16_t

数据包中的数据代码

0x0012

4

1

uint8_t

传输的数据字节数

1+N*14

5

1

uint8_t

数据包中的信标数量

N

6

1

N*14字节

N个信标的数据

6+N*14

2

uint16_t

CRC-16(见附录1)

N个信标中每个信标的数据结构格式:

偏移量

大小(字节)

类型

说明

0

1

uint8_t

信标地址

1

4

int32_t

信标X坐标,毫米

5

4

int32_t

信标Y坐标,毫米

9

4

int32_t

Z坐标(信标高度),毫米

13

1

uint8_t

位0:1 = 位置不适用

位1…7:保留

含厘米分辨率固定信标坐标的数据包,数据代码0x0002。

已废弃的数据包,替代数据包: 0x0012。已废弃数据包的详细说明见 这里.

惯性传感器原始数据包

有新的惯性传感器数据时发送此数据包。

带实时时间戳的惯性传感器原始数据包,数据代码0x0083(固件V7.200+)

有新的惯性传感器数据时发送此数据包。

支持的硬件:

Super-Beacon:支持,100 Hz(需启用“Raw inertial sensors data”)

Industrial Super-Beacon:支持,100 Hz(需启用“Raw inertial sensors data”)

Modem HW5.1:支持,频率与系统更新率相同(需启用“IMU via modem”)

Super-Modem:支持,频率与系统更新率相同(需启用“IMU via modem”)

Mini-RX(胸牌、头盔等):支持,100 Hz(需启用“Raw inertial sensors data”)

配 UART线缆

Mini-TX:当前硬件版本不支持

Mini-TX-2:支持,100 Hz(需启用“Raw inertial sensors data”)

Modem HW4.9:支持,频率与系统更新率相同(需启用“IMU via modem”)

Beacon HW4.9:支持,100 Hz(需启用“Raw inertial sensors data”)

Beacon HW4.5:支持,100 Hz(需启用“Raw inertial sensors data”)

请参阅 说明 (关于时间戳)。

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

地址

0xff

1

1

uint8_t

数据包类型

0x47

2

2

uint16_t

数据包中的数据代码

0x0083

4

1

uint8_t

传输的数据字节数

5

36

数据包(见下文)

41

2

uint16_t

CRC-16(见附录1)

数据包格式

偏移量

大小(字节)

类型

说明

值

0

2

int16_t

加速度计,X轴,1 mg/LSB

2

2

int16_t

加速度计,Y轴,1 mg/LSB

4

2

int16_t

加速度计,Z轴,1 mg/LSB

6

2

int16_t

陀螺仪,X轴,0.0175 dps/LSB

8

2

int16_t

陀螺仪,Y轴,0.0175 dps/LSB

10

2

int16_t

陀螺仪,Z轴,0.0175 dps/LSB

12

2

int16_t

磁罗盘,X轴,1100 LSB/Gauss

14

2

int16_t

磁罗盘,Y轴,1100 LSB/Gauss

16

2

int16_t

磁罗盘,Z轴,980 LSB/Gauss

18

1

uint8_t

信标地址

19

5

5字节

保留(0)

24

8

int64_t

时间戳:Unix时间,即自1970.01.01 00:00:00起的毫秒数。

该时间由所有设备与调制解调器和Dashboard同步。

32

1

uint8_t

标志:

位0:1 = 加速度计数据不可用

位1:1 = 陀螺仪数据不可用

位2:1 = 罗盘数据不可用

位3…7:保留(0)

33

3

3字节

保留

注意:罗盘数据仅适用于带IMU的HW v4.9信标。

惯性传感器原始数据包,数据代码0x0003

已废弃的数据包,替代数据包: 0x0083。已废弃数据包的详细说明见 这里.

原始距离数据包 - 带实时时间戳的原始距离数据包,数据代码0x0084(固件V7.200+)

此数据包在每次测得新坐标或测量失败时发送,紧随以下数据包之后: 移动信标坐标数据包.

仅当在设置的“Interfaces”部分启用“raw distances data”选项时可用。

支持的硬件:

Super-Beacon:支持

Industrial Super-Beacon:支持

Modem HW5.1:支持

Super-Modem:支持

Mini-RX(胸牌、头盔等):支持,需使用 UART线缆

Mini-TX:当前硬件版本不支持

Mini-TX-2:支持,需使用 UART线缆

Modem HW4.9:支持

Beacon HW4.9:支持

Beacon HW4.5:支持

请参阅 说明 (关于时间戳)。

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

地址

0xff

1

1

uint8_t

数据包类型

0x47

2

2

uint16_t

数据包中的数据代码

0x0084

4

1

uint8_t

传输的数据字节数

5

36

数据包(见下文)

41

2

uint16_t

CRC-16(见附录1)

数据包格式

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

移动信标地址

1

6

距离项1

7

6

距离项2

13

6

距离项3

19

6

距离项4

25

8

int64_t

时间戳:信标发射超声波时的Unix时间,即自1970.01.01 00:00:00起的毫秒数。

该时间由所有设备与调制解调器和Dashboard同步。

29

2

uint16_t

自超声波发射至当前时刻经过的时间,毫秒(V5.89+)

31

1

uint8_t

保留

距离项格式

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

信标地址(未填写该项时为0)

1

4

uint32_t

到信标的距离,毫米

5

1

uint8_t

位0:1 = 距离不适用

位1…7:保留(0)

带候选值和实时时间戳的原始距离数据包,数据代码0x0094(固件V8.431+)

此数据包在每次测得新坐标或测量失败时发送,紧随以下数据包之后: 移动信标坐标数据包.

仅当在设置的“Interfaces”部分启用“extra raw distances data”选项时可用。

支持的硬件:

Super-Beacon:支持

Industrial Super-Beacon:支持

Modem HW5.1:按需提供

Super-Modem:按需提供

Mini-RX(胸牌、头盔等):支持,需使用 UART线缆

Mini-TX:不支持

Mini-TX-2:按需提供

Modem HW4.9:不支持

Beacon HW4.9:不支持

Beacon HW4.5:不支持

请参阅 说明 (关于时间戳)。

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

地址

0xff

1

1

uint8_t

数据包类型

0x47

2

2

uint16_t

数据包中的数据代码

0x0094

4

1

uint8_t

传输的数据字节数

5

80

数据包(见下文)

85

2

uint16_t

CRC-16(见附录1)

数据包格式

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

移动信标地址

1

17

距离项1

18

17

距离项2

35

17

距离项3

52

17

距离项4

69

8

int64_t

时间戳:信标发射超声波时的Unix时间,即自1970.01.01 00:00:00起的毫秒数。

该时间由所有设备与调制解调器和Dashboard同步。

77

2

uint16_t

自超声波发射至当前时刻经过的时间,毫秒(V5.89+)

79

1

uint8_t

保留

距离项格式

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

信标地址(未填写该项时为0)

1

1

uint8_t

距离候选值数量

2

4

uint32_t

到信标距离的首个候选值,毫米

6

1

uint8_t

首个候选值的质量,%

7

4

uint32_t

到信标距离的第二个候选值,毫米

11

1

uint8_t

第二个候选值的质量,%

12

4

uint32_t

到信标距离的第三个候选值,毫米

16

1

uint8_t

第三个候选值的质量,%

原始距离数据包,数据代码0x0004

已废弃的数据包,替代数据包: 0x0084。已废弃数据包的详细说明见 这里.

IMU处理后数据包

有新的惯性传感器数据时发送此数据包。

带实时时间戳的IMU处理后数据包,数据代码0x0085(固件V7.200+)

有新的惯性传感器数据时发送此数据包。

支持的硬件:

Super-Beacon:支持,100 Hz(需启用“Processed IMU data”)

Industrial Super-Beacon:支持,100 Hz(需启用“Processed IMU data”)

Modem HW5.1:支持,频率与系统更新率相同(需启用“IMU via modem”)

Super-Modem:支持,频率与系统更新率相同(需启用“IMU via modem”)

Mini-RX(胸牌、头盔等):支持,100 Hz(需启用“Processed IMU data”)

配 Mini-Rx专用UART线缆

Mini-TX:当前硬件版本不支持

Mini-TX-2:支持,100 Hz(需启用“Processed IMU data”)

Modem HW4.9:支持,频率与系统更新率相同(需启用“IMU via modem”)

Beacon HW4.9:支持,100 Hz(需启用“Processed IMU data”)

Beacon HW4.5:支持,100 Hz(需启用“Processed IMU data”)

请参阅 说明 (关于时间戳)。

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

地址

0xff

1

1

uint8_t

数据包类型

0x47

2

2

uint16_t

数据包中的数据代码

0x0085

4

1

uint8_t

传输的数据字节数

5

46

数据包(见下文)

51

2

uint16_t

CRC-16(见附录1)

数据包格式

偏移量

大小(字节)

类型

说明

值

0

4

int32_t

信标X坐标(融合),毫米

4

4

int32_t

信标Y坐标(融合),毫米

8

4

int32_t

信标Z坐标(融合),毫米

12

2

int16_t

旋转四元数的W分量(角度)

14

2

int16_t

旋转四元数的X分量(角度)

16

2

int16_t

旋转四元数的Y分量(角度)

18

2

int16_t

旋转四元数的Z分量(角度)

20

2

int16_t

信标X方向速度(融合),毫米/秒

22

2

int16_t

信标Y方向速度(融合),毫米/秒

24

2

int16_t

信标Z方向速度(融合),毫米/秒

26

2

int16_t

信标X方向加速度,毫米/秒2

28

2

int16_t

信标Y方向加速度,毫米/秒2

30

2

int16_t

信标Z方向加速度,毫米/秒2

32

1

uint8_t

信标地址

33

1

1字节

保留(0)

34

8

int64_t

时间戳:Unix时间,即自1970.01.01 00:00:00起的毫秒数。

该时间由所有设备与调制解调器和Dashboard同步。

42

1

uint8_t

标志:

位0:1 = 位置数据不可用

位1:1 = 四元数数据不可用

位2:1 = 速度数据不可用

位3:1 = 加速度数据不可用

43

3

3字节

保留(0)

注意:四元数归一化为10000。

IMU处理后数据包,数据代码0x0005

已废弃的数据包,替代数据包: 0x0085。已废弃数据包的详细说明见 这里.

遥测数据包(数据代码0x0006)

如果在设置的“Interfaces”部分启用了“Telemetry stream”选项,此数据包将在位置更新后发送。

支持的硬件:

Super-Beacon:支持

Industrial Super-Beacon:支持

Modem HW5.1:支持(固件V7.000+)

Super-Modem:支持(固件V7.000+)

Mini-RX(胸牌、头盔等):支持,需使用 UART线缆

Mini-TX:当前硬件版本不支持

Mini-TX-2:支持,需使用 UART线缆

Modem HW4.9:不支持

Beacon HW4.9:支持

Beacon HW4.5:支持

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

地址

0xff

1

1

uint8_t

数据包类型

0x47

2

2

uint16_t

数据包中的数据代码

0x0006

4

1

uint8_t

传输的数据字节数

5

16

数据包(见下文)

21

2

uint16_t

CRC-16(见附录1)

数据包格式

偏移量

大小(字节)

类型

说明

值

0

2

uint16_t

电池电压,毫伏

2

1

int8_t

RSSI, dBm

3

1

uint8_t

信标地址

4

12

保留(0)

质量与扩展位置数据包(数据代码0x0007)

如果在设置的“Interfaces”部分启用了“Quality and extended location data”选项,此数据包将在位置更新后发送。

支持的硬件:

Super-Beacon:支持

Industrial Super-Beacon:支持

Modem HW5.1:支持

Super-Modem:支持

Mini-RX(胸牌、头盔等):支持,需使用 UART线缆

Mini-TX:当前硬件版本不支持

Mini-TX-2:支持,需使用 UART线缆

Modem HW4.9:支持(仅质量字段)

Beacon HW4.9:支持(仅质量字段)

Beacon HW4.5:支持(仅质量字段)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

地址

0xff

1

1

uint8_t

数据包类型

0x47

2

2

uint16_t

数据包中的数据代码

0x0007

4

1

uint8_t

传输的数据字节数

5

16

数据包(见下文)

21

2

uint16_t

CRC-16(见附录1)

数据包格式

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

设备地址

1

1

uint8_t

定位质量,%

2

1

uint8_t

0 = 无地理围栏区域报警

1…255:地理围栏区域索引

此字段需要 MMSW0005 许可证。

3

13

保留(0)

已停用的功能

此处介绍已废弃的数据包:它们用于旧版软件,现已默认被其他数据包取代。

含厘米分辨率移动信标坐标的数据包

已废弃的数据包。替代数据包: 0x0081.

支持的硬件:

Super-Beacon:支持

Industrial Super-Beacon:支持

Modem HW5.1:支持

Super-Modem:支持

Mini-RX(胸牌、头盔等):支持,需使用 UART线缆

Mini-TX:当前硬件版本不支持

Mini-TX-2:支持,需使用 UART线缆

Modem HW4.9:支持

Beacon HW4.9:支持

Beacon HW4.5:支持

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

目标地址

0xff

1

1

uint8_t

数据包类型

0x47

2

2

uint16_t

数据包中的数据代码

0x0001

4

1

uint8_t

传输的数据字节数

0x10

5

4

uint32_t

时间戳:信标发射超声波的内部时间,单位毫秒,从最近一次唤醒事件起计。见说明。

9

2

int16_t

信标X坐标,厘米

11

2

int16_t

信标Y坐标,厘米

13

2

int16_t

Z坐标(信标高度),厘米

15

1

uint8_t

标志字节:

位0:1 – 坐标不可用,不应使用X、Y、Z字段的数据。

位1:时间戳单位指示(见说明)

位2:1 – 用户按钮被按下(V5.23+)

位3:1 – 有数据可上传到用户设备,见第2节(V5.34+)

位4:1 – 需要从用户设备下载数据,见第2节(V5.34+)

位5:1 – 第二个用户按钮被按下(V5.74+)

位6:1 – 数据属于另一个移动信标(而非发送此数据包的移动信标)

位7:保留(0)

16

1

uint8_t

移动信标地址

17

2

uint16_t

位0…11:移动信标对在XY平面内的方向,单位0.1度(0…3600)

位12:1 – 坐标为信标对的中心;0 – 坐标为指定信标的坐标

位13:1 – 方向不适用

位14…15:保留(0)

19

2

uint16_t

自超声波发射至当前时刻经过的时间,毫秒(V5.88+)

21

2

uint16_t

CRC-16(见附录1)

含毫米分辨率移动信标坐标的数据包

已废弃的数据包。替代数据包: 0x0081.

支持的硬件:

Super-Beacon:支持

Industrial Super-Beacon:支持

Modem HW5.1:支持

Super-Modem:支持

Mini-Rx(胸牌、头盔等):支持,需使用 UART线缆

Mini-TX:当前硬件版本不支持

Mini-TX-2:支持,需使用 UART线缆

Modem HW4.9:支持

Beacon HW4.9:支持

Beacon HW4.5:支持

请参阅 说明 (关于时间戳)。

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

目标地址

0xff

1

1

uint8_t

数据包类型

0x47

2

2

uint16_t

数据包中的数据代码

0x0011

4

1

uint8_t

传输的数据字节数

N

5

4

uint32_t

时间戳:信标发射超声波的内部时间,单位毫秒,从最近一次唤醒事件起计。见说明。

9

4

int32_t

信标X坐标,毫米

13

4

int32_t

信标Y坐标,毫米

17

4

int32_t

Z坐标(信标高度),毫米

21

1

uint8_t

标志字节:

位0:1 – 坐标不可用,不应使用X、Y、Z字段的数据。

位1:时间戳单位指示(见说明)

位2:1 – 用户按钮被按下(V5.23+)

位3:1 – 有数据可上传到用户设备,见第2节(V5.34+)

位4:1 – 需要从用户设备下载数据,见第2节(V5.34+)

位5:1 – 第二个用户按钮被按下(V5.74+)

位6:1 – 数据属于另一个移动信标(而非发送此数据包的移动信标)

位7:1 – 超出地理围栏区域

22

1

uint8_t

移动信标地址

23

2

uint16_t

位0…11:移动信标对在XY平面内的方向,单位0.1度(0…3600)

位12:1 – 坐标为信标对的中心;0 – 坐标为指定移动信标的位置

位13:1 – 方向不适用

位14…15:保留(0)

25

2

uint16_t

自超声波发射至当前时刻经过的时间,毫秒(V5.88+)

27

M= N-22

可选数据:参见 列表

27+M

2

uint16_t

CRC-16(见附录1)

注意:V5.20之前的固件版本中,时间戳单位为1/64秒,时间戳单位指示(标志字节的位1)为0。V5.20及更高版本中,时间戳单位为毫秒,时间戳单位指示为1。

含厘米分辨率固定信标坐标的数据包,数据代码0x0002。

已废弃的数据包。替代数据包: 0x0012.

支持的硬件:

Super-Beacon:支持

Industrial Super-Beacon:支持

Modem HW5.1:支持

Super-Modem:支持

Mini-RX(胸牌、头盔等):支持,需使用 UART线缆

Mini-TX:当前硬件版本不支持

Mini-TX-2:支持,需使用 UART线缆

Modem HW4.9:支持

Beacon HW4.9:支持

Beacon HW4.5:支持

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

地址

0xff

1

1

uint8_t

数据包类型

0x47

2

2

uint16_t

数据包中的数据代码

0x0002

4

1

uint8_t

传输的数据字节数

1+N*8

5

1

uint8_t

数据包中的信标数量

N

6

1

N*8字节

N个信标的数据

6+N*8

2

uint16_t

CRC-16(见附录1)

N个信标中每个信标的数据结构格式:

偏移量

大小(字节)

类型

说明

0

1

uint8_t

信标地址

1

2

int16_t

信标X坐标,厘米

3

2

int16_t

信标Y坐标,厘米

5

2

int16_t

Z坐标(信标高度),厘米

7

1

uint8_t

保留(0)

惯性传感器原始数据包,数据代码0x0003

已废弃的数据包。替代数据包: 0x0083.

支持的硬件:

Super-Beacon:支持,100 Hz(需启用“Raw inertial sensors data”)

Industrial Super-Beacon:支持,100 Hz(需启用“Raw inertial sensors data”)

Modem HW5.1:支持,频率与系统更新率相同(需启用“IMU via modem”)

Super-Modem:支持,频率与系统更新率相同(需启用“IMU via modem”)

Mini-RX(胸牌、头盔等):支持,100 Hz(需启用“Raw inertial sensors data”)

配 UART线缆

Mini-TX:当前硬件版本不支持

Mini-TX-2:支持,100 Hz(需启用“Raw inertial sensors data”)

Modem HW4.9:支持,频率与系统更新率相同(需启用“IMU via modem”)

Beacon HW4.9:支持,100 Hz(需启用“Raw inertial sensors data”)

Beacon HW4.5:支持,100 Hz(需启用“Raw inertial sensors data”)

请参阅 说明 (关于时间戳)。

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

地址

0xff

1

1

uint8_t

数据包类型

0x47

2

2

uint16_t

数据包中的数据代码

0x0003

4

1

uint8_t

传输的数据字节数

5

32

数据包(见下文)

37

2

uint16_t

CRC-16(见附录1)

数据包格式

偏移量

大小(字节)

类型

说明

值

0

2

int16_t

加速度计,X轴,1 mg/LSB

2

2

int16_t

加速度计,Y轴,1 mg/LSB

4

2

int16_t

加速度计,Z轴,1 mg/LSB

6

2

int16_t

陀螺仪,X轴,0.0175 dps/LSB

8

2

int16_t

陀螺仪,Y轴,0.0175 dps/LSB

10

2

int16_t

陀螺仪,Z轴,0.0175 dps/LSB

12

2

int16_t

磁罗盘,X轴,1100 LSB/Gauss

14

2

int16_t

磁罗盘,Y轴,1100 LSB/Gauss

16

2

int16_t

磁罗盘,Z轴,980 LSB/Gauss

18

1

uint8_t

信标地址

19

5

5字节

保留(0)

24

4

uint32_t

时间戳,毫秒

28

1

uint8_t

标志:

位0:1 = 加速度计数据不可用

位1:1 = 陀螺仪数据不可用

位2:1 = 罗盘数据不可用

位3…7:保留(0)

29

3

3字节

保留

注意:罗盘数据仅适用于带IMU的HW v4.9信标。

原始距离数据包,数据代码0x0004

已废弃的数据包。替代数据包: 0x0084.

支持的硬件:

Super-Beacon:支持

Industrial Super-Beacon:支持

Modem HW5.1:支持

Super-Modem:支持

Mini-RX(胸牌、头盔等):支持,需使用 UART线缆

Mini-TX:当前硬件版本不支持

Mini-TX-2:支持,需使用 UART线缆

Modem HW4.9:支持

Beacon HW4.9:支持

Beacon HW4.5:支持

请参阅 说明 (关于时间戳)。

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

地址

0xff

1

1

uint8_t

数据包类型

0x47

2

2

uint16_t

数据包中的数据代码

0x0004

4

1

uint8_t

传输的数据字节数

5

32

数据包(见下文)

37

2

uint16_t

CRC-16(见附录1)

数据包格式

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

移动信标地址

1

6

距离项1

7

6

距离项2

13

6

距离项3

19

6

距离项4

25

4

uint32_t

时间戳:信标发射超声波的内部时间,单位毫秒,从最近一次唤醒事件起计(V5.89+)。

29

2

uint16_t

自超声波发射至当前时刻经过的时间,毫秒(V5.89+)

31

1

uint8_t

保留

距离项格式

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

信标地址(未填写该项时为0)

1

4

uint32_t

到信标的距离,毫米

5

1

uint8_t

位0:1 = 距离不适用

位1…7:保留(0)

IMU处理后数据包,数据代码0x0005

已废弃的数据包。替代数据包: 0x0085.

支持的硬件:

Super-Beacon:支持角度数据,100 Hz(需启用“Processed IMU data”)

Industrial Super-Beacon:支持角度数据,100 Hz(需启用“Processed IMU data”)

Modem HW5.1:支持,频率与系统更新率相同(需启用“IMU via modem”)

Super-Modem:支持,频率与系统更新率相同(需启用“IMU via modem”)

Mini-RX(胸牌等):支持角度数据,100 Hz(需启用“Processed IMU data”)

配 Mini-Rx专用UART线缆

Mini-TX:当前硬件版本不支持

Mini-TX-2:支持角度数据,100 Hz(需启用“Processed IMU data”)

Modem HW4.9:支持,频率与系统更新率相同(需启用“IMU via modem”)

Beacon HW4.9:支持,100 Hz(需启用“Processed IMU data”)

Beacon HW4.5:支持,100 Hz(需启用“Processed IMU data”)

请参阅 说明 (关于时间戳)。

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

地址

0xff

1

1

uint8_t

数据包类型

0x47

2

2

uint16_t

数据包中的数据代码

0x0005

4

1

uint8_t

传输的数据字节数

5

42

数据包(见下文)

47

2

uint16_t

CRC-16(见附录1)

数据包格式

偏移量

大小(字节)

类型

说明

值

0

4

int32_t

信标X坐标(融合),毫米

4

4

int32_t

信标Y坐标(融合),毫米

8

4

int32_t

信标Z坐标(融合),毫米

12

2

int16_t

旋转四元数的W分量(角度)

14

2

int16_t

旋转四元数的X分量(角度)

16

2

int16_t

旋转四元数的Y分量(角度)

18

2

int16_t

旋转四元数的Z分量(角度)

20

2

int16_t

信标X方向速度(融合),毫米/秒

22

2

int16_t

信标Y方向速度(融合),毫米/秒

24

2

int16_t

信标Z方向速度(融合),毫米/秒

26

2

int16_t

信标X方向加速度,毫米/秒2

28

2

int16_t

信标Y方向加速度,毫米/秒2

30

2

int16_t

信标Z方向加速度,毫米/秒2

32

1

uint8_t

信标地址

33

1

1字节

保留(0)

34

4

uint32_t

时间戳,毫秒

38

1

uint8_t

标志:

位0:1 = 位置数据不可用

位1:1 = 四元数数据不可用

位2:1 = 速度数据不可用

位3:1 = 加速度数据不可用

位4…7:保留(0)

39

3

3字节

保留(0)

注意:四元数归一化为10000

读写用户 设备数据的协议

从用户设备发送数据

支持的硬件:

Super-Beacon:支持

Industrial Super-Beacon:支持

Modem HW5.1:支持

Super-Modem:支持

Mini-RX(胸牌、头盔等):支持,需使用 UART线缆

Mini-TX:当前硬件版本不支持

Mini-TX-2:支持,需使用 UART线缆

Modem HW4.9:不支持

Beacon HW4.9:支持

Beacon HW4.5:支持

如果用户设备需要通过Marvelmind系统传输数据,应发送以下帧:

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

目标地址

0x00

1

1

uint8_t

数据包类型

0x49

2

2

uint16_t

数据包中的数据代码

0x0200

4

1

uint8_t

传输的数据字节数

N

5

N

N字节

有效载荷数据

5+N

2

uint16_t

CRC-16(见附录1)

数据将分块通过无线电发送到调制解调器,分块大小由Dashboard中移动信标设置“Interfaces”部分的“User payload data size”定义。分块发送速率等于移动信标的更新率。移动信标的缓冲区大小为128字节,请注意避免缓冲区溢出。

向用户设备写入数据

此数据包由Marvelmind设备(调制解调器或移动信标)发送到用户设备。

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

目标地址

0xff

1

1

uint8_t

数据包类型

0x4a

2

2

uint16_t

数据包中的数据代码

0x0200…

0x02ff

4

1

uint8_t

传输的数据字节数

N

5

N

N字节

有效载荷数据

5+N

2

uint16_t

CRC-16(见附录1)

此命令保留数据代码0x200至0x2ff。

如果用户设备成功处理了请求,应按以下格式发送响应:

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

移动信标地址(可从数据流的0x0001或0x0011数据包获取)

1

1

uint8_t

数据包类型

0x4a

2

2

uint16_t

数据包中的数据代码

0x0200…

0x02ff

4

2

uint16_t

CRC-16(见附录1)

如果用户设备未能处理请求,则按以下格式发送响应:

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

移动信标地址(从数据流的0x0001数据包获取)

1

1

uint8_t

数据包类型

0xca

2

2

uint16_t

所请求数据的代码

0x0200…

0x02ff

4

1

uint8_t

错误代码(见说明)

1

5

2

uint16_t

CRC-16(见附录1)

以下各节介绍具体的数据写入请求。

注意: 如果用户设备无法处理来自移动信标的请求,应回复以下错误代码之一:

1 – 请求中的“数据包类型”字段未知

2 – 请求中的“数据代码”字段未知

3 – 请求中的有效载荷数据不正确

6 – 设备忙,目前无法获取所请求的数据

写入运动路径的请求

支持的硬件:

Super-Beacon:支持

Industrial Super-Beacon:支持

Modem HW5.1:按需提供

Super-Modem:按需提供

Mini-RX(胸牌、头盔等):支持,需使用 UART线缆

Mini-TX:当前硬件版本不支持

Mini-TX-2:支持,需使用 UART线缆

Modem HW4.9:不支持

Beacon HW4.9:支持

Beacon HW4.5:支持

此数据包包含一条基本运动指令。Marvelmind设备会依次发送路径中所有基本运动的指令。

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

目标地址

0xff

1

1

uint8_t

数据包类型

0x4a

2

2

uint16_t

数据包中的数据代码

0x201

4

1

uint8_t

传输的数据字节数

0x0c

5

12

12字节

有效载荷数据

17

2

uint16_t

CRC-16(见附录1)

有效载荷数据格式:

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

基本运动类型:

0 – 前进

1 – 后退

2 – 右转(顺时针)

3 – 左转(逆时针)

4 – 暂停

5 – 从头重复程序

6 – 移动到指定点

7 – 设置速度

1

1

uint8_t

本基本运动的索引

(0表示第1个)

2

1

uint8_t

基本运动总数

3

2

int16_t

运动参数:

类型0、1:运动距离,厘米

类型2、3:旋转角度,度

类型4:暂停时间,毫秒

类型6:目标X坐标,厘米

类型7:速度,%

5

2

int16_t

运动参数:

类型6:目标Y坐标,厘米

7

2

int16_t

运动参数:

类型6:目标Z坐标,厘米

9

3

3字节

保留(0)

写入区域的请求

支持的硬件:

Super-Beacon:支持

Industrial Super-Beacon:支持

Modem HW5.1:按需提供

Super-Modem:按需提供

Mini-RX(胸牌、头盔等):支持,需使用 UART线缆

Mini-TX:当前硬件版本不支持

Mini-TX-2:支持,需使用 UART线缆

Modem HW4.9:不支持

Beacon HW4.9:支持

Beacon HW4.5:支持

此数据包包含区域列表序列中的一项。Marvelmind设备会依次发送区域列表的所有指令。

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

目标地址

0xff

1

1

uint8_t

数据包类型

0x4a

2

2

uint16_t

数据包中的数据代码

0x202

4

1

uint8_t

传输的数据字节数

0x25

5

37

37字节

有效载荷数据

42

2

uint16_t

CRC-16(见附录1)

有效载荷数据格式:

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

区域索引

1

1

uint8_t

区域多边形的点数(N)

2

1

uint8_t

本数据包中首个点的索引:M=0…N-1

3

1

uint8_t

标志:

位0:1 = 非服务区

位1:1 = 禁行区

位2:1 = 反向区域

位3:1 = 激活区域

位4…7:保留(0)

4

1

uint8_t

区域数量

5

32

4×8字节

区域多边形的点,最多4个(见下文)

有效载荷数据格式:

偏移量

大小(字节)

类型

说明

值

0

4

int32_t

点的X坐标,毫米

4

4

int32_t

点的Y坐标,毫米

NMEA0183通信协议

移动信标可通过UART和USB(虚拟UART)接口输出部分NMEA0183语句。需按下方截图所示,在Dashboard中为设备启用NMEA协议:

接口与协议,通过UART的协议:图2

设备每次获得更新的位置时,都会发送所有已启用的消息。

要从移动信标(hedgehog)获取NMEA数据,需通过以下任一接口将其连接到外部设备(机器人、多旋翼飞行器、AGV等):

  1. 作为CDC类USB设备连接到USB主机(Windows下为虚拟COM端口,Linux下为ttyUSB或ttyACM)。在Windows下需要安装驱动程序,与调制解调器使用同一驱动。在Linux下大多数情况无需驱动,因为所需驱动已集成在Linux内核中。由于该接口并未使用真正的RS-232,主机上打开的串口参数(波特率、数据位数、校验等)可任意设置。
  2. 连接到移动信标的UART:需要在引脚上焊接2根导线。信标接口图见下文。要输出位置数据,只需连接2根导线:GND和USART2_TX。UART发送端的逻辑电平为CMOS 3.3 V。默认波特率为500 kbps,可在Dashboard中配置(见上图中的“UART speed, bps”参数),可选值:4.8、9.6、19.2、38.4、57.6、115.2、500 kbps。数据格式:8位数据位,无校验,1位停止位。

    坐标转换的一般约定

Marvelmind系统以直角笛卡尔坐标(X, Y, Z)的形式测量位置,其中Z在大多数情况下为高度。转换为GPS坐标时采用以下约定:

  • Z轴向上,Z坐标表示海拔高度;
  • Y轴指向北,因此Y对应纬度;
  • X轴指向东,因此X对应经度;
  • 点(X= 0, Y= 0)的GPS坐标取地理参考点的坐标(默认:北纬0°,西经0°);
地理参考坐标可按截图所示进行设置:
可按截图所示设置地理参考坐标

GPS坐标根据指定的地理参考点和WGS-84地球模型计算。
具体如下:
Lat= Lat_ref + y*9.013373
其中
Lat:纬度,微度
Lat_ref:地理参考纬度,微度
y:Marvelmind系统中的y坐标,米

Long= Long_ref + x*8.98315/cos(Lat_ref/1000000)
Long:经度,微度
Long_ref:地理参考经度,微度
Lat_ref:地理参考纬度,微度
x:Marvelmind系统中的x坐标,米

时间的一般约定

上电后,移动信标从2016.08.01 00:00:00开始计时。用户可按下方截图所示,将时间与计算机时钟同步。

接口与协议,通过UART的协议:图3

“NMEA0183”消息的实现说明

NMEA 0183消息是ASCII编码的文本帧,由若干以逗号分隔的部分组成,以换行符结束。在换行符之前,每条消息以“*”符号结尾,其后是按NMEA 0183标准计算的两个校验和字符。

NMEA 0183消息的每个部分代表一个特定参数。

下面介绍所有支持的消息及参数字段。

消息格式取自NMEA 0183标准3.01版(2002年1月1日)。

1. $GPRMC - 推荐最小定位信息(Recommended Minimum Specific GNSS Data)

支持的硬件:

Super-Beacon:支持

Industrial Super-Beacon:支持

Modem HW5.1:支持(软件V7.000起)

Super-Modem:支持(软件V7.000起)

Mini-RX(胸牌、头盔等):支持,需使用 UART线缆

Mini-TX:当前硬件版本不支持

Mini-TX-2:支持,需使用 UART线缆

Modem HW4.9:不支持

Beacon HW4.9:支持

Beacon HW4.5:支持

NMEA 0183标准中的通用格式:

接口与协议,通过UART的协议:图4

字段实现说明:

1.1. “$GPRMC”:消息类型标识

1.2. “hhmmss.ss”:定位时刻(UTC)

根据一般约定,时间默认从2016.01.01开始计,或与计算机时钟同步。

1.3. “A”:状态

上一次位置更新成功时发送“A”

上一次位置更新出错时发送“V”

1.4. “llll.llllll,a”:纬度,N/S

根据一般约定(见上文),纬度对应相对于地理参考位置的Y坐标。纬度以分为单位,保留6位小数,分辨率不超过2毫米。

1.5. “yyyyy.yyyyyy,a”:经度,E/W

根据一般约定(见上文),经度对应相对于地理参考位置的X坐标。经度以分为单位,保留6位小数,分辨率不超过2毫米。

1.6. “x.x”:对地速度,节

Marvelmind系统测量的是坐标;速度根据坐标的变化计算,并经过一定的滤波。也可选择使用IMU融合计算速度。

1.7. “xxxxxx”:日期,ddmmyy

根据一般约定,时间默认从2016.01.01开始计,或与计算机时钟同步。

1.8. “x.x,a”:磁偏角

该参数始终为空字段。

1.9. “a”:模式指示

上一次位置更新成功时发送“A”(自主模式)

上一次位置更新出错时发送“N”(数据无效)

2. $GPGGA - GPS定位数据(Global Positioning System Fix Data)

支持的硬件:

Super-Beacon:支持

Industrial Super-Beacon:支持

Modem HW5.1:支持(软件V7.000起)

Super-Modem:支持(软件V7.000起)

Mini-RX(胸牌、头盔等):支持,需使用 Mini-Rx专用UART线缆

Mini-TX:当前硬件版本不支持

Mini-TX-2:支持

Modem HW4.9:不支持

Beacon HW4.9:支持

Beacon HW4.5:支持

NMEA 0183标准中的通用格式:
NMEA 0183标准中的通用格式

字段实现说明:

2.1. “$GPGGA”:消息类型标识

2.2. “hhmmss.ss”:定位时刻(UTC)

根据一般约定,时间默认从2016.01.01开始计,或与计算机时钟同步。

2.3. “llll.llllll,a”:纬度,N/S

根据一般约定(见上文),纬度对应相对于地理参考位置的Y坐标。纬度以分为单位,保留6位小数,分辨率不超过2毫米

2.4. “yyyyy.yyyyyy,a”:经度,E/W

根据一般约定(见上文),经度对应相对于地理参考位置的X坐标。经度以分为单位,保留6位小数,分辨率不超过2毫米

2.5. “x”:GPS质量指示

上一次位置更新成功时发送“1”(GPS SPS模式,定位有效)

上一次位置更新出错时发送“0”(无定位或定位无效)

2.6. “xx”:使用中的卫星数

当前实现中始终为“08”。

2.7. “x.x”:水平精度因子

当前实现中始终为“1.2”。

2.8. “x.x, M”:相对平均海平面(大地水准面)的海拔,米

根据一般约定,该值对应Z坐标。

2.9. “x.x, M”:大地水准面差距,米

始终发送“0.0, M”。

2.10. “x.x”:差分GPS数据龄期

该参数始终为空字段,不使用DGPS。

2.11. “xxxx”:差分基准站ID

该参数始终为空字段。

3. $GPVTG - 对地航向与地速(Course Over Ground and Ground Speed)

支持的硬件:

Super-Beacon:支持

Industrial Super-Beacon:支持

Modem HW5.1:支持(软件V7.000起)

Super-Modem:支持(软件V7.000起)

Mini-RX(胸牌、头盔等):支持,需使用 Mini-Rx专用UART线缆

Mini-TX:当前硬件版本不支持

Mini-TX-2:支持

Modem HW4.9:不支持

Beacon HW4.9:支持

Beacon HW4.5:支持

NMEA 0183标准中的通用格式:
NMEA 0183标准中的通用格式

字段实现说明:

3.1. “$GPVTG”:消息类型标识

3.2. “x.x, T”:对地航向,真北度数

根据NMEA标准,航向是速度矢量与正北方向之间的夹角。如上文一般约定所述,Y轴被视为正北方向。

3.3. “x.x, M”:对地航向,磁北度数

当前实现中,磁航向与真航向相同。

3.4. “x.x, N”:对地速度,节

Marvelmind系统测量的是坐标;速度根据坐标的变化计算,并经过一定的滤波。也可选择使用IMU融合计算速度。

3.5. “x.x, K”:对地速度,千米/小时

同一速度,单位不同

3.6. “a”:模式指示

上一次位置更新成功时发送“A”(自主模式)

上一次位置更新出错时发送“N”(数据无效)

4. $GPZDA - 时间与日期

支持的硬件:

Super-Beacon:支持

Industrial Super-Beacon:支持

Modem HW5.1:支持(软件V7.000起)

Super-Modem:支持(软件V7.000起)

Mini-RX(胸牌、头盔等):支持,需使用 UART线缆

Mini-TX:当前硬件版本不支持

Mini-TX-2:支持,需使用 UART线缆

Modem HW4.9:不支持

Beacon HW4.9:支持

Beacon HW4.5:支持

NMEA 0183标准中的通用格式:
NMEA 0183标准中的通用格式

根据一般约定,时间默认从2016.01.01开始计,或与计算机时钟同步。

字段实现说明:

4.1. “$GPZDA”:消息类型标识

4.1. “hhmmss.ss”:UTC

时间(时、分、秒)。

4.2. “xx”:日,01至31

日。

4.3. “xx”:月,01至12

月。

4.4. “xxxx”:年

年。

4.4. “xx”:本地时区小时

本地时区小时始终为“00”。

4.5. “xx”:本地时区分钟

本地时区分钟始终为“00”。

5. $GPHDT - 航向

支持的硬件:

Super-Beacon:支持

Industrial Super-Beacon:支持

Modem HW5.1:支持(软件V7.000起)

Super-Modem:支持(软件V7.000起)

Mini-RX(胸牌、头盔等):支持,需使用 UART线缆

Mini-TX:不支持

Mini-TX-2:支持,需使用 UART线缆

Modem HW4.9:不支持

Beacon HW4.9:不支持

Beacon HW4.5:不支持

注意:需要 MMSW0002 许可证才能启用此数据包的输出。

NMEA 0183标准中的通用格式:
NMEA 0183标准中的通用格式

5.1. “$GPHDT”:消息类型标识

5.2. “x.x, T”:航向,真北度数

这是利用成对信标或成对麦克风功能,并与陀螺仪融合计算得到的航向角。

NMEA数据接收示例

下面的截图是一个数据示例:移动信标通过USB(虚拟COM端口)连接到运行在MS Windows电脑上的OpenCPN软件,并由该软件接收数据。

接口与协议,通过UART的协议:图5

返回顶部