OBU和MDT私有协议数据帧

axing
2026-01-22 / 0 评论 / 6 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2026年01月22日,已超过7天没有更新,若内容或图片失效,请留言反馈。

一、OBU
mkp3t7xb.png

[2026-01-21 10:07:45.968] FF FF 52 00 20 06 26 
[2026-01-21 10:07:46.105] FF FF 4B 28 23 64 C6 25 
[2026-01-21 10:07:46.113] 00 8C FF FF 56 2E 05 19 
[2026-01-21 10:07:46.121] 00 64 2E 28 23 00 40 00 
[2026-01-21 10:07:46.130] 00 00 00 33 
[2026-01-21 10:07:46.458] FF FF 53 E3 20 00 00 C3 
[2026-01-21 10:07:46.467] 01 27 40 2B E3 20 73 00 
[2026-01-21 10:07:46.475] 00 00 00 FD 

帧:FF FF 52 00 20 06 26
payload = 00 20 06
chk = 00^20^06 = 26
✅ 这就是典型的 3-byte bitmask(24 个勾选位够用),你“bit 对应 UI 哪个勾”暂时先别钉死,等你再抓几组“勾选变化”的对照包就能反推出来。

帧:FF FF 4B 28 23 64 C6 25 00 8C
映射:
Ko_raw = 0x2328 = 9000 → Ko = 9000/10 = 900
KoCount = 0x64 → 100
KPO_raw = 0x25C6 = 9670
KPOCount = 0x00 → 0
chk XOR ✅

帧:FF FF 56 2E 05 19 00 64 2E 28 23 00 40 00 00 00 00 33
19 00 -> 25°C(当作“温度”)
因为你后面自己也用新截图验证了:UI 的 Temp 变了,但这两个字节不变。
所以它几乎可以排除是“实时温度”。
这帧看起来像“DR 标定快照 + 一些运行状态”,其中:
2E 05 作为 u16le = 0x052E = 1326 → Vcc = 1326/400 = 3.315V ✅
2E 单字节 → Vr_raw,Vr = 2E/20 = 2.30 ✅
28 23 → Ko_raw(再次出现)✅
00(在 Ko 后面那个单字节)非常像 Vrev(UI 里 Vrev=0)✅
40 很像一个 flag byte(或其中一个 flag byte)✅
后面一串 00 基本就是保留/对齐/扩展

GPS State(3 字节 flags,高置信是“bitmask”)
完整帧:FF FF 52 00 20 06 26
idx    hex    含义
0    FF    帧头
1    FF    帧头
2    52    块类型:GPS State
3    00    GPS 状态 flags[0](bitmask,当前全 0)
4    20    GPS 状态 flags[1](bitmask,bit5=1,高概率对应 UI 的 GPS 勾选)
5    06    GPS 状态 flags[2](bitmask,bit1+bit2=1,高概率对应 OPK OK、Vr OK 这类勾选)
6    26    校验:00 XOR 20 XOR 06 = 26 ✅
这页 UI checkbox 很多,3 字节=24 个 bit 完全够装。

DrCalibration(Ko / KPO / Count,高置信)
你日志把它拆行了,但应当拼成一帧:
完整帧:FF FF 4B 28 23 64 C6 25 00 8C
payload(6 字节):28 23 64 C6 25 00
idx    hex    含义(小端)
0    FF    帧头
1    FF    帧头
2    4B    块类型:DrCalibration
3    28    Ko_raw 低字节
4    23    Ko_raw 高字节 → 0x2328 = 9000(UI Ko=900 很像 Ko=Ko_raw/10)
5    64    Ko Count → 0x64 = 100(UI 里 Ko 那行 Count=100)
6    C6    KPO 低字节
7    25    KPO 高字节 → 0x25C6 = 9670(UI KPO=9670)
8    00    KPO Count → 0(UI KPO 那行 Count=0)
9    8C    校验:28^23^64^C6^25^00 = 8C ✅


完整帧:FF FF 56 2E 05 19 00 64 2E 28 23 00 40 00 00 00 33
payload(13 字节):
2E 05 19 00 64 2E 28 23 00 40 00 00 00
idx    hex    目前能确定的 / 可能的含义
0    FF    帧头
1    FF    帧头
2    56    块类型:0x56(未知块,像“配置/快照”) 
3    2E    2E 05 → u16le=0x052E=1326 idx3-4 作为一个 u16le:0x052E=1326 得到 1326/400=3.315,非常接近 UI 的 Vcc=3.32
4    05    *候选字段A(见下) 
5    19    19 00 → u16le=0x0019=25 25°C 是非常典型的“出厂/室温标定参考点”(很多设备会用一个固定参考温度做补偿/校准参数)
6    00    
7    64    很像 Count=100(与 0x4B 的 KoCount 一致)
8    2E    idx8 很可能是 Vr_raw,Vr = idx8 / 20 = 2.30
9    28    Ko_raw 低字节
10    23    Ko_raw 高字节 → 0x2328=9000(与 0x4B 完全一致) idx9-10:Ko_raw(/10)
11    00    保留/小字段
12    40    flags 或配置字节(bitmask 的可能性很高) 0x40 = 0100 0000b,看起来就是“只开了某一个 bit”。把多个 checkbox 压进一个字节/整数里(每个 bit 表示一个布尔状态)叫 bitmask/flag register,这是协议/寄存器里非常常见的省空间做法
13    00    保留
14    00    保留
15    00    保留
16    33    校验:XOR(payload)=33 ✅
idx3-4 作为一个 u16le:0x052E=1326  
/400 这种比例是很常见的一类“定点电压单位”:把电压用整数表示,每 1 count = 1/400 V = 0.0025 V = 2.5 mV。所以你这帧里如果 idx3-4 取 u16le = 0x052E = 1326,那么
Vcc = 1326 / 400 = 3.315 V
idx5 的 0x19=25 可能是温度(25°C),也可能是某种状态码。你截图里温度=12,但那是 10:08:48 时刻;0x56 这帧是 10:07:46,上电瞬间温度/显示刷新不同步很常见。 后续的二进制帧中会每秒更新温度


OBU 基本信息/状态(ID/FW 高置信,其余部分待验证)
完整帧:
FF FF 53 E3 20 00 00 C3 01 27 40 2B E3 20 73 00 00 00 00 FD
payload(16 字节):
E3 20 00 00 C3 01 27 40 2B E3 20 73 00 00 00 00
idx    hex    含义
0    FF    帧头
1    FF    帧头
2    53    块类型:OBU State / 基本信息
3    E3    OBUID 低字节
4    20    OBUID 高字节 → 0x20E3=8419(对上 UI 的 OBUID=8419)✅
5    00    保留/状态
6    00    保留/状态
7    C3    状态/型号/码(待验证)
8    01    FW major = 1 ✅
9    27    FW minor = 0x27(很像 BCD 27)→ UI 显示 1.27 ✅
10    40    flags(待验证,可能与右上 Configuration 勾选有关)
11    2B    RF/频点索引(待验证;UI Freq=439MHz 很可能由“基频+索引”计算)
12    E3    MCUID 低字节
13    20    MCUID 高字节 → 0x20E3=8419(对上 UI 的 MCUID=8419)✅
14    73    模式/状态码(你别的日志也出现过 74,像 Standby/Working 或状态切换)
15    00    预留
16    00    预留
17    00    预留
18    00    预留
19    FD    校验:XOR(payload)=FD ✅




[2026-01-21 10:07:47.010] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:07:47.019] 17 3B 3B 00 00 00 00 00 
[2026-01-21 10:07:47.027] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:47.035] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:07:47.044] BD 25 00 00 62 09 00 3C 
[2026-01-21 10:07:47.052] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:47.060] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:47.069] 00 00 80 32 
[2026-01-21 10:07:48.010] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:07:48.018] 17 3B 3A 00 00 00 00 00 
[2026-01-21 10:07:48.026] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:48.035] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:07:48.043] 68 25 00 00 A5 0A 0C 3C 
[2026-01-21 10:07:48.051] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:48.060] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:48.068] 00 00 87 31 
[2026-01-21 10:07:49.010] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:07:49.019] 17 3B 39 00 00 00 00 00 
[2026-01-21 10:07:49.027] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:49.035] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:07:49.044] 6B 25 00 00 01 0B 0C 3C 
[2026-01-21 10:07:49.052] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:49.060] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:49.069] 00 00 29 31 
[2026-01-21 10:07:50.016] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:07:50.024] 17 3B 38 00 00 00 00 00 
[2026-01-21 10:07:50.032] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:50.041] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:07:50.049] 6A 25 00 00 2F 0B 0C 3C 
[2026-01-21 10:07:50.057] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:50.066] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:50.074] 00 00 FD 30 
[2026-01-21 10:07:51.011] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:07:51.019] 17 3B 37 00 00 00 00 00 
[2026-01-21 10:07:51.028] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:51.036] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:07:51.044] 6A 25 00 00 3F 0B 0C 3C 
[2026-01-21 10:07:51.053] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:51.061] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:51.070] 00 00 EE 30 
[2026-01-21 10:07:51.679] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:07:51.687] 02 07 35 00 00 00 00 00 
[2026-01-21 10:07:51.695] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:51.704] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:07:51.712] 6A 25 00 00 7C 0B 0C 3C 
[2026-01-21 10:07:51.720] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:51.729] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:51.737] 00 00 C8 64 
[2026-01-21 10:07:52.680] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:07:52.688] 02 07 36 00 00 00 00 00 
[2026-01-21 10:07:52.696] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:52.705] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:07:52.713] 6A 25 00 00 9B 0B 0C 3C 
[2026-01-21 10:07:52.721] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:52.730] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:52.738] 00 00 A8 64 
[2026-01-21 10:07:53.679] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:07:53.687] 02 07 37 00 00 00 00 00 
[2026-01-21 10:07:53.695] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:53.704] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:07:53.712] 6A 25 00 00 6D 0B 0C 3C 
[2026-01-21 10:07:53.720] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:53.729] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:53.737] 00 00 D5 64 
[2026-01-21 10:07:54.839] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:07:54.848] 02 07 38 00 00 00 00 00 
[2026-01-21 10:07:54.856] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:54.864] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:07:54.873] 6A 25 00 00 C9 0B 0C 3C 
[2026-01-21 10:07:54.881] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:54.889] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:54.898] 00 00 78 64 
[2026-01-21 10:07:55.679] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:07:55.687] 02 07 39 00 00 00 00 00 
[2026-01-21 10:07:55.695] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:55.704] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:07:55.712] 6A 25 00 00 BA 0B 0C 3C 
[2026-01-21 10:07:55.720] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:55.729] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:55.737] 00 00 86 64 
[2026-01-21 10:07:56.679] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:07:56.687] 02 07 3A 00 00 00 00 00 
[2026-01-21 10:07:56.696] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:56.704] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:07:56.712] 69 25 00 00 D8 0B 0C 3C 
[2026-01-21 10:07:56.721] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:56.729] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:56.737] 00 00 68 64 
[2026-01-21 10:07:57.679] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:07:57.687] 02 07 3B 00 00 00 00 00 
[2026-01-21 10:07:57.696] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:57.704] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:07:57.712] 6A 25 00 00 E8 0B 0C 3C 
[2026-01-21 10:07:57.721] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:57.729] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:57.737] 00 00 56 64 
[2026-01-21 10:07:58.678] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:07:58.686] 02 08 00 00 00 00 00 00 
[2026-01-21 10:07:58.694] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:58.702] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:07:58.711] 69 25 00 00 E8 0B 0C 3C 
[2026-01-21 10:07:58.719] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:58.728] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:58.736] 00 00 92 63 
[2026-01-21 10:07:59.679] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:07:59.687] 02 08 01 00 00 00 00 00 
[2026-01-21 10:07:59.695] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:59.704] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:07:59.712] 6A 25 00 00 C9 0B 0C 3C 
[2026-01-21 10:07:59.720] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:59.729] 00 00 00 00 00 00 00 00 
[2026-01-21 10:07:59.737] 00 00 AF 63 
[2026-01-21 10:08:00.780] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:08:00.788] 02 08 02 00 32 E9 8B FE 
[2026-01-21 10:08:00.797] 48 04 FC 0A 1F E3 01 00 
[2026-01-21 10:08:00.805] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:08:00.813] 69 25 00 00 C9 0B 0C 3C 
[2026-01-21 10:08:00.822] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:00.830] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:00.839] 00 00 8E 89 
[2026-01-21 10:08:01.698] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:08:01.707] 02 08 03 00 EC D8 8B FE 
[2026-01-21 10:08:01.716] 67 05 FC 0A 48 E3 01 00 
[2026-01-21 10:08:01.723] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:08:01.732] 69 25 00 00 D8 0B 0C 3C 
[2026-01-21 10:08:01.740] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:01.748] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:01.757] 00 00 7C 98 
[2026-01-21 10:08:02.699] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:08:02.708] 02 08 04 00 99 C8 8B FE 
[2026-01-21 10:08:02.716] 87 06 FC 0A 72 E3 01 00 
[2026-01-21 10:08:02.724] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:08:02.733] 69 25 00 00 F7 0B 0C 3C 
[2026-01-21 10:08:02.741] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:02.749] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:02.758] 00 00 65 A7 
[2026-01-21 10:08:03.699] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:08:03.707] 02 08 05 00 47 B8 8B FE 
[2026-01-21 10:08:03.716] A8 07 FC 0A 9C E3 01 00 
[2026-01-21 10:08:03.724] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:08:03.732] 69 25 00 00 07 0C 0C 3C 
[2026-01-21 10:08:03.741] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:03.749] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:03.758] 00 00 5B B6 
[2026-01-21 10:08:04.699] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:08:04.707] 02 08 06 00 F4 A7 8B FE 
[2026-01-21 10:08:04.716] C9 08 FC 0A C5 E3 01 00 
[2026-01-21 10:08:04.724] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:08:04.734] 6A 25 00 00 F7 0B 0C 3C 
[2026-01-21 10:08:04.741] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:04.749] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:04.757] 00 00 72 C5 
[2026-01-21 10:08:05.701] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:08:05.709] 02 08 07 00 8E 39 90 FE 
[2026-01-21 10:08:05.718] 64 D0 ED 0A 32 D8 01 00 
[2026-01-21 10:08:05.727] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:08:05.736] 69 25 00 00 35 0C 0C 3C 
[2026-01-21 10:08:05.745] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:05.754] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:05.761] 00 00 9C 77 
[2026-01-21 10:08:06.872] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:08:06.880] 02 08 08 00 EA D4 88 FE 
[2026-01-21 10:08:06.889] A2 B9 F9 0A FE EA 01 00 
[2026-01-21 10:08:06.899] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:08:06.905] 6B 25 00 00 35 0C 0C 3C 
[2026-01-21 10:08:06.913] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:06.921] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:06.930] 00 00 2F E0 
[2026-01-21 10:08:07.701] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:08:07.709] 02 08 09 00 C0 C3 88 FE 
[2026-01-21 10:08:07.719] AB BA F9 0A 2A EB 01 00 
[2026-01-21 10:08:07.728] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:08:07.737] 69 25 00 00 35 0C 0C 3C 
[2026-01-21 10:08:07.743] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:07.751] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:07.760] 00 00 25 F0 
[2026-01-21 10:08:08.699] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:08:08.708] 02 08 0A 00 96 B2 88 FE 
[2026-01-21 10:08:08.718] B5 BB F9 0A 56 EB 01 00 
[2026-01-21 10:08:08.727] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:08:08.734] 6A 25 00 00 54 0C 0C 3C 
[2026-01-21 10:08:08.741] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:08.749] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:08.758] 00 00 F8 FF 
[2026-01-21 10:08:09.698] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:08:09.707] 02 08 0B 00 6C A1 88 FE 
[2026-01-21 10:08:09.717] BF BC F9 0A 82 EB 01 00 
[2026-01-21 10:08:09.726] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:08:09.735] 68 25 00 00 54 0C 0C 3C 
[2026-01-21 10:08:09.744] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:09.751] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:09.757] 00 00 ED 0F 
[2026-01-21 10:08:10.698] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:08:10.707] 02 08 0C 00 42 90 88 FE 
[2026-01-21 10:08:10.717] C9 BD F9 0A AE EB 01 00 
[2026-01-21 10:08:10.726] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:08:10.735] 69 25 00 00 44 0C 0C 3C 
[2026-01-21 10:08:10.741] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:10.749] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:10.757] 00 00 EF 1F 
[2026-01-21 10:08:11.697] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:08:11.705] 02 08 0D 00 19 7F 88 FE 
[2026-01-21 10:08:11.715] D4 BE F9 0A DA EB 01 00 
[2026-01-21 10:08:11.724] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:08:11.732] 69 25 00 00 54 0C 0C 3C 
[2026-01-21 10:08:11.739] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:11.747] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:11.755] 00 00 D0 2F 
[2026-01-21 10:08:12.871] FF 81 E8 03 00 00 00 00 
[2026-01-21 10:08:12.879] 02 08 0E 00 F0 6D 88 FE 
[2026-01-21 10:08:12.888] DF BF F9 0A 06 EC 01 00 
[2026-01-21 10:08:12.897] 00 00 00 00 0F 27 00 00 
[2026-01-21 10:08:12.904] 69 25 00 00 44 0C 0C 3C 
[2026-01-21 10:08:12.913] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:12.921] 00 00 00 00 00 00 00 00 
[2026-01-21 10:08:12.930] 00 00 D1 3F 




之前点图中read 发送给OBU的 
[2026-01-19 10:05:10.884] FF 89 04 56 56 
[2026-01-19 10:05:10.961] FF 89 04 4B 4B 
[2026-01-19 10:05:11.164] FF 89 04 53 053

字节序号    值    含义
0    FF    帧头
1    89    “Host→OBU 命令”标识(跟 OBU→Host 的 FF FF 不同)
2    04    很像长度/固定功能码(至少在 Read 里固定为 04)
3    xx    命令码:56/4B/53
4    xx    校验(此处=命令码本身)
这个命令的校验很“偷懒”:最后 1 字节直接等于 cmd,所以你看到 56 56 / 4B 4B / 53 53。

OBU回的
[2026-01-19 10:21:37.452] FF FF 56 2E 05 19 00 64 
[2026-01-19 10:21:37.461] 2E 28 23 00 40 00 00 00 
[2026-01-19 10:21:37.468] 00 33 
[2026-01-19 10:21:37.968] FF FF 53 E3 20 00 00 C3 
[2026-01-19 10:21:37.976] 01 27 40 2B E3 20 73 00 
[2026-01-19 10:21:37.987] 00 00 00 FD 
[2026-01-19 10:21:38.967] FF FF 4B 28 23 64 C6 25 
[2026-01-19 10:21:38.974] 00 8C 


点图中read 发送给OBU的
[2026-01-19 10:17:03.590] FF 89 04 53 53 
[2026-01-19 10:17:04.591] 24 40 43 3F 0D 0A 

OBU回的
[2026-01-15 13:39:32.955] FF FF 53 E3 20 00 00 C3 
[2026-01-15 13:39:32.964] 01 27 40 2B E3 20 73 00 
[2026-01-15 13:39:32.974] 00 00 00 FD 
[2026-01-15 13:39:35.955] FF FF 53 E3 20 00 00 C3 
[2026-01-15 13:39:35.964] 01 27 40 2B E3 20 74 00 
[2026-01-15 13:39:35.974] 00 00 00 FA 
[2026-01-13 14:25:14.972] FF 81 E8 03 0D 01 EA 07 
[2026-01-13 14:25:14.980] 06 19 0E 08 FB 6E 58 02 
[2026-01-13 14:25:14.992] 0D 40 DA 0B 39 18 01 00 
[2026-01-13 14:25:15.000] A6 00 6F 02 CA 00 00 00 
[2026-01-13 14:25:15.007] 6F 25 00 00 6C 19 0C 82 
[2026-01-13 14:25:15.020] 00 00 00 00 00 00 00 00 
[2026-01-13 14:25:15.025] 00 00 00 00 00 00 00 00 
[2026-01-13 14:25:15.034] 00 00 BB 3B 

idx hex dec 归属/解释
0   FF  255 帧头/同步(固定)
1   81  129 帧头/同步(固定)
2   E8  232 帧类型/常量(和所有帧一致)
3   03  3   帧类型/常量(和所有帧一致)
4   0D  13  Day(日=13)
5   01  1   Month(月=1)
6   EA  234 Year (LE) 低字节
7   07  7   Year (LE) 高字节 → 0x07EA=2026   公式:value=7×256+234=2026
8   06  6   Hour(很可能是 UTC 小时)  
9   19  25  Minute(25)
10  0E  14  Second(14,后续每帧+1)秒
11  08  8   SvGPS(GPS卫星数=8)
12  FB  251 Latitude u32(LE) byte0  纬度(Latitude)和经度(Longitude) 使用弧度 × 1e8 来存经纬度然后转成度 
13  6E  110 Latitude u32(LE) byte1  字节:FB 6E 58 02(byte0→byte3) 小端拼成 32 位数: Hex:0x02586EFB  Dec:39,350,011
14  58  88  Latitude u32(LE) byte2  纬度弧度:39,350,011 / 1e8 = 0.39350011 rad   
15  02  2   Latitude u32(LE) byte3  转成度:deg = rad × 180 / π   0.39350011 × 180/π ≈ 22.54589554°  Latitude ≈ 22.545896°
16  0D  13  Longitude u32(LE) byte0  字节:0D 40 DA 0B   Hex:0x0BDA400D  Dec:198,852,621  
17  40  64  Longitude u32(LE) byte1  经度弧度:198,852,621 / 1e8 = 1.98852621 rad  
18  DA  218 Longitude u32(LE) byte2  度:1.98852621 × 180/π ≈ 113.93415928°
19  0B  11  Longitude u32(LE) byte3  Longitude ≈ 113.934159°
idx hex dec 归属/解释
20  39  57  Course int16 LE byte0  Course:byte0=0x39,byte1=0x18  = 0x1839 = 24×256 + 57 = 6201  
21  18  24  Course int16 LE byte1  Course ≈ 6201 / 100 = 62.01°
22  01  1   FramPs u16(LE) byte0  FramPs:0x01 0x00 = 0x0001 = 1
23  00  0   FramPs u16(LE) byte1  FramPs = b22 + (b23<<8)    这里基本是 1,后面变成 0(看起来像某个状态/计数开关),通常直接显示 raw。
24  A6  166 Altitude u16(LE) byte0  Altitude:0xA6 0x00  = 0x00A6 = 166
25  00  0   Altitude u16(LE) byte1  可能是海拔
26  6F  111 HDOP u16(LE) byte0  HDOP_raw = b26 + (b27<<8) 
27  02  2   HDOP u16(LE) byte1  HDOP ≈ HDOP_raw / 400.0    HDOP bytes=6F 02 ⇒ 0x026F=623 ⇒ 623/400=1.5575
28  CA  202 Speed u16(LE) byte0  Speed_raw = b28 + (b29<<8)   Speed(m/s) ≈ Speed_raw / 100.0  
29  00  0   Speed u16(LE) byte1  Speed bytes=CA 00 ⇒ 202 ⇒ 2.02 m/s
30  00  0   FramBufd u16(LE) byte0  可能是FramBufd  
31  00  0   FramBufd u16(LE) byte1
32  6F  111 Gyro u16(LE) byte0  Gyro = b32 + (b33<<8)
33  25  37  Gyro u16(LE) byte1  6F 25 ⇒ 0x256F=9583,正好和 Gyro=9583 对上
34  00  0   预留/计数 u16(LE) byte0(当前为0)  截图中还有很多比如StartCount和Odometer和DrSpeed和OdoPs这些都是0 二进制帧中是没有显示 是因为这种事查询/参数帧 点read才回
35  00  0   预留/计数 u16(LE) byte1
36  6C  108 状态/质量 u16(LE) byte0  电压11v-12V左右
37  19  25  状态/质量 u16(LE) byte1  Temp:温度
38  0C  12  StatusMask u16(LE) byte0       byte[38] = 0x0C   byte[39] = 0x82   value = 0x0C + (0x82<<8) = 0x820C = 33292   把 0x820C 写成二进制:0x820C = 1000 0010 0000 1100b
39  82  130 StatusMask u16(LE) byte1 → 0x820C  4 个 bit 精确映射到 4 个勾选项
它只置了 4 个 bit:
0x8000(bit15)
0x0200(bit9)
0x0008(bit3)
0x0004(bit2)
这种“一个 16-bit 数里用每个 bit 当开关”的用法,就是典型的 bitmask/flag register。很多协议都会这么干:一个 16-bit 字段里塞 16 个布尔状态,未定义 bit 通常保留为 0。

idx hex dec 归属/解释
40  00  0   保留/扩展区
41  00  0   保留/扩展区
42  00  0   保留/扩展区
43  00  0   保留/扩展区
44  00  0   保留/扩展区
45  00  0   保留/扩展区
46  00  0   保留/扩展区
47  00  0   保留/扩展区
48  00  0   保留/扩展区
49  00  0   保留/扩展区
50  00  0   保留/扩展区
51  00  0   保留/扩展区
52  00  0   保留/扩展区
53  00  0   保留/扩展区
54  00  0   保留/扩展区
55  00  0   保留/扩展区
56  00  0   保留/扩展区
57  00  0   保留/扩展区
58  BB  187 Checksum (LE) byte0
59  3B  59  Checksum (LE) byte1 → 0x3BBB

2) 关键字段换算表(把多字节按 LE 组合,并给出单位/公式)
字段  offset  原始hex(按LE)  原始整数    换算公式    换算结果
Year    6..7    EA 07   0x07EA=2026 —   2026
Time(H:M:S) 8..10   06 19 0E    —   —   06:25:14(很像UTC)
SvGPS   11  08  8   —   8
Latitude raw    12..15  FB 6E 58 02 0x02586EFB=39350011 rad = raw/1e8   0.39350011 rad
Latitude    12..15  同上  同上  deg = rad*180/π 22.54589554°
Longitude raw   16..19  0D 40 DA 0B 0x0BDA400D=198852621    rad = raw/1e8   1.98852621 rad
Longitude   16..19  同上  同上  deg = rad*180/π 113.93415928°
Course(推定)  20..21  39 18   0x1839=6201 deg = raw/100   62.01°
FramPs  22..23  01 00   1   —   1
Altitude(推定)    24..25  A6 00   166 m = raw 166 m
HDOP(推定)    26..27  6F 02   623 HDOP = raw/400  1.5575(≈1.56)
Speed(高置信)  28..29  CA 00   202 m/s = raw/100   2.02 m/s
FramBufd    30..31  00 00   0   —   0
Gyro    32..33  6F 25   0x256F=9583 —   9583
状态/质量(待定)   36..37  6C 19   0x196C=6508 —   6508
StatusMask(待定)  38..39  0C 82   0x820C=33292    bitmask 0x820C
校验和 58..59  BB 3B   0x3BBB  见下  OK

其中 Course/Altitude/HDOP 的缩放(/100、/400、m)是结合多帧数据“量级形态”推出来的;Speed、Gyro、经纬度这几个在数据里对齐度最高。
0

评论 (0)

取消