80 00 00 00 FF FF FF FF FF FF 60 60 1F B0 13 D0
60 60 1F B0 13 D0 00 00 10 4F F1 1A 00 00 00 00
A0 00 20 04 00 18 52 49 44 2D 31 35 38 31 46 35
59 48 58 32 33 39 48 30 30 32 34 35 30 41 DD 53
FA 0B BC 0D B0 F1 19 03 01 12 31 35 38 31 46 35
59 48 58 32 33 39 48 30 30 32 34 35 30 41 00 00
00 11 16 B5 00 00 AA 10 8D 12 5E 64 77 3D 3E 08
35 08 D0 07 4B 04 DB 01 0A 00 41 09 98 0F 8D 12
A5 64 77 3D 01 00 00 00 00 00 00 01 1A 08 0F 45
BF 0C 00 00 78 56 AD
以上为抓取无人机Remote ID的原始16进制数据(部分位置数据修改)
802.11 Beacon 帧 + OpenDroneID 协议完整解析(151 字节,0-150 索引)
1. 帧类型与整体结构
十六进制数据为802.11 管理帧(Beacon 帧) ,承载 OpenDroneID 协议数据("Remote ID",协议标准名称为 OpenDroneID)。帧结构符合 IEEE 802.11-2020 规范,通过供应商特定信息元素(VSIE,类型 0xDD) 嵌入无人机标识、位置、操作者信息,总长度 151 字节(0-150 索引),无数据缺失。
2. 帧头部解析(0-35 字节,共 36 字节)
| 偏移(字节) |
长度(字节) |
字段 |
十六进制值 |
说明 |
| 0-1 |
2 |
帧控制字段 |
80 00 |
管理帧(类型 = 0),子类型 = Beacon 帧(0x8000),无加密、无分片,符合信标帧标准。 |
| 2-3 |
2 |
持续时间 |
00 00 |
标准填充值,用于避免帧冲突,无特殊业务含义。 |
| 4-9 |
6 |
目的地址 |
FF FF FF FF FF FF |
广播地址,Beacon 帧需向所有设备发送,确保周边接收端能捕获。 |
| 10-15 |
6 |
源地址 |
60 60 1F B0 13 D0 |
发送设备 MAC 地址(推测为无人机的无线模块 MAC,或其关联 AP 的 MAC)。 |
| 16-21 |
6 |
BSSID |
60 60 1F B0 13 D0 |
基本服务集标识,与源地址相同→基础设施模式(Beacon 帧由 AP 发送,BSSID=AP MAC,源地址 = AP MAC,非自组织模式)。 |
| 22-23 |
2 |
序列控制 |
00 00 |
帧序列号(0)+ 分片号(0),为初始帧,无分片。 |
| 24-31 |
8 |
时间戳 |
10 4F F1 1A 00 00 00 00 |
设备内部计时戳(单位:微秒),用于同步接收端时钟,无 UTC 映射意义。 |
| 32-33 |
2 |
信标间隔 |
A0 00 |
小端序转换为0x00A0=160,单位为 "1024 微秒",计算为160×1024=163840微秒=0.16384秒)。 |
| 34-35 |
2 |
能力信息 |
20 04 |
二进制00100000 00000100→支持 ESS(基础设施网络)、支持隐私保护(WEP 加密),无其他扩展能力。 |
3. 信息元素(IE)解析(36-146 字节,共 111 字节)
帧头部后为 IE 字段,包含 SSID 和 OpenDroneID 核心数据,IE 结构遵循 "类型(1 字节)+ 长度(1 字节)+ 数据(长度值字节) " 规范。
3.1 SSID 信息元素(36-61 字节,共 26 字节)
| 偏移(字节) |
长度(字节) |
字段 |
十六进制值 |
说明 |
| 36 |
1 |
IE 类型 |
00 |
标准 IE 类型,标识后续为 SSID 字段。 |
| 37 |
1 |
IE 长度 |
18 |
十六进制0x18=24字节,对应 SSID 数据长度(与后续 38-61 字节共 24 字节匹配)。 |
| 38-61 |
24 |
SSID |
52 49 44 2D 31 35 38 31 46 35 59 48 58 32 33 39 48 30 30 32 34 35 30 41 |
ASCII 转换为RID-1581F5YHX239H002450A,为无人机的 "远程标识关联 ID",非直接序列号(序列号在 Basic ID 消息中)。 |
3.2 OpenDroneID 供应商特定 IE(62-146 字节,共 85 字节)
| 偏移(字节) |
长度(字节) |
字段 |
十六进制值 |
说明 |
| 62 |
1 |
IE 类型 |
DD |
供应商特定 IE(VSIE),标识后续为厂商自定义数据。 |
| 63 |
1 |
IE 长度 |
53 |
十六进制0x53=83字节,对应后续数据长度(64-146 字节共 83 字节,62+1+83=146,范围正确)。 |
| 64-66 |
3 |
OUI |
FA 0B BC |
供应商标识(ASD-STAN,无人机行业标准组织) |
| 67 |
1 |
App Code |
0D |
OpenDroneID 应用代码(0x0D) |
4. OpenDroneID 消息解析(68-146 字节,共 79 字节)
64-67 字节为 "OUI(3)+App Code(1)" 共 4 字节,68 字节开始为 OpenDroneID 消息包,总长度146-68+1=79字节(与 IE 长度 83-4=79 匹配)。
4.1 消息包头部(68-71 字节,共 4 字节)
| 偏移(字节) |
长度(字节) |
字段 |
十六进制值 |
说明 |
| 68 |
1 |
消息计数器 |
B0 |
递增计数器(0xB0=176),用于接收端去重或排序,无其他业务含义。 |
| 69 |
1 |
消息类型 + 协议版本 |
F1 |
高 4 位0xF=15→Message Pack(消息包,含多个子消息);低 4 位0x1→F3411-20 (1.1)(协议版本)。 |
| 70 |
1 |
子消息大小 |
19 |
十六进制0x19=25字节,单个子消息固定长度(符合 OpenDroneID 标准,所有子消息均为 25 字节)。 |
| 71 |
1 |
子消息数量 |
03 |
共 3 个子消息(类型 0、1、4),无类型 2/3(可选消息,非强制发送)。 |
4.2 子消息 1:Basic ID 消息(72-96 字节,类型 0,共 25 字节)
| 偏移(字节) |
长度(字节) |
字段 |
十六进制值 |
说明 |
| 72 |
1 |
消息类型 + 协议版本 |
01 |
高 4 位0x0=0→Basic ID(基本标识消息);低 4 位0x1→F3411-20 (1.1)。 |
| 73 |
1 |
ID 类型 + 无人机类型 |
12 |
高 4 位0x1→Serial Number (ANSI/CTA-2063-A)(序列号类型);低 4 位0x2→Helicopter (or Multirotor)(多旋翼)。 |
| 74-93 |
20 |
无人机序列号 |
31 35 38 31 46 35 59 48 58 32 33 39 48 30 30 32 34 35 30 41 |
ASCII 转换为1581F5YHX239H002450A,与 SSID 前缀一致,为无人机唯一序列号。 |
| 94-96 |
3 |
保留字段 |
00 00 00 |
协议预留,无数据,填充 0。 |
4.3 子消息 2:Location/Vector 消息(97-121 字节,类型 1,共 25 字节)
| 偏移(字节) |
长度(字节) |
字段 |
十六进制值 |
说明 |
| 97 |
1 |
消息类型 + 协议版本 |
11 |
高 4 位0x1=1→Location/Vector(位置消息);低 4 位0x1→F3411-20 (1.1)。 |
| 98 |
1 |
状态 + 标志 |
16 |
高 4 位0x1→On Ground(地面状态,未起飞);低 4 位0x6(二进制0110)→bit2=1:高度类型AGL(离地高度);bit1=1:东西方向West(西向);bit0=0:速度乘数0.25。 |
| 99 |
1 |
方向 |
B5 |
原始值0xB5=181°,结合西向标志→181+180=361°,361°=Unknown。 |
| 100 |
1 |
水平速度 |
00 |
原始值0× 乘数0.25=0 m/s(地面静止)。 |
| 101 |
1 |
垂直速度 |
00 |
原始值0×0.5 m/s(协议单位)=0 m/s(无升降)。 |
| 102-105 |
4 |
无人机纬度 |
AA 10 8D 12 |
小端序重组为12 8D 10 AA→0x128D10AA=311230730,协议单位1e-7 °→311230730÷1e7=31.123073°(北纬)。 |
| 106-109 |
4 |
无人机经度 |
5E 64 77 3D |
小端序重组为3D 77 64 5E→0x3D77645E=1031234654→1031234654÷1e7=103.1234654°(东经)。 |
| 110-111 |
2 |
气压高度 |
3E 08 |
小端序重组为08 3E→0x083E=2110,协议公式(值×0.5)-1000→2110×0.5-1000=55米。 |
| 112-113 |
2 |
大地高度 |
35 08 |
小端序重组为08 35→0x0835=2101→2101×0.5-1000=50.5米。 |
| 114-115 |
2 |
AGL 高度 |
D0 07 |
小端序重组为07 D0→0x07D0=2000→2000×0.5-1000=0米(地面状态)。 |
| 116 |
1 |
精度组合 |
4B |
高 4 位0x4→vertAccuracies[4]=<10 m(垂直精度);低 4 位0xB→horizAccuracies[11]=<3 m(水平精度)。 |
| 117 |
1 |
气压 / 速度精度 |
04 |
高 4 位0x0→vertAccuracies[0]>=150 m(气压高度精度);低 4 位0x4→speedAccuracies[4]=<0.3 m/s(速度精度)。 |
| 118-119 |
2 |
小时内时间戳 |
DB 01 |
小端序重组为01 DB→0x01DB=475,协议单位0.1秒→475×0.1=47.5秒。 |
| 120 |
1 |
时间戳精度 |
0A |
低 4 位0xA→0xA×0.1=1.0秒(时间戳精度);高 4 位保留(0x0)。 |
| 121 |
1 |
保留字段 |
00 |
协议预留。 |
4.4 子消息 3:System 消息(122-146 字节,类型 4,共 25 字节)
| 偏移(字节) |
长度(字节) |
字段 |
十六进制值 |
说明 |
| 122 |
1 |
消息类型 + 协议版本 |
41 |
高 4 位0x4=4→System(系统消息);低 4 位0x1→F3411-20 (1.1) |
| 123 |
1 |
系统标志 |
09 |
二进制00001001→高 4 位0x0(系统状态:正常运行);低 4 位0x9(保留,非原 "系统状态 + 保留",协议无低 4 位定义)。 |
| 124-127 |
4 |
操作者纬度 |
98 0F 8D 12 |
小端序重组为12 8D 0F 98→0x128D0F98=311234456→311234456÷1e7=31.1234456°(北纬)。 |
| 128-131 |
4 |
操作者经度 |
A5 64 77 3D |
小端序重组为3D 77 64 A5→0x3D7764A5=1031234725→1031234725÷1e7=103.1234725°(东经)。 |
| 132 |
1 |
操作者高度类型 |
01 |
OperatorLocTypes[1]=Dynamic(动态位置,非原 "大地水准面")。 |
| 133-134 |
2 |
操作者高度 |
00 00 |
小端序0x0000=0,协议单位0.5米→0×0.5=0米(相对大地水准面)。 |
| 135-138 |
4 |
系统时间戳 |
00 01 1A 08 |
小端序重组为08 1A 01 00→0x081A0100=135921920。OpenDroneID 协议系统时间戳 epoch 为2019-01-01 00:00:00(Unix 时间戳 1546272000),计算为1546272000+135921920=1,682,193,920。 |
| 139 |
1 |
无人机分类 |
0F |
此处为分类字段,非类型字段。 |
| 140-145 |
6 |
保留字段 |
45 0F 8D 12 A5 64 |
协议预留,含厂商自定义数据(如硬件版本)。 |
| 146 |
1 |
保留字段 |
45 |
协议预留,填充 0x45,非原 "校验位"(校验位在帧尾部 FCS 中)。 |
5. 帧尾部:填充位与 FCS(147-150 字节,共 4 字节)
此部分为 802.11 帧强制字段:
| 偏移(字节) |
长度(字节) |
字段 |
十六进制值 |
说明 |
| 147-148 |
2 |
填充位 |
00 00 |
802.11 帧要求总长度≥2346 字节(无线传输最小帧长),此处为凑足长度的填充值,无业务含义。 |
| 149-150 |
2 |
FCS(帧校验序列) |
56 AD |
循环冗余校验(CRC-16),确保数据完整性(非原 "消息包校验位")。 |