docs(协议): variation 值域勘误 V1.07 — ±8388607 → −8388608 ~ +8388607

统一为 3B 补码标准值域 (-2^23 ~ +2^23-1), 对齐代码负向饱和边界 0x800000
- DLD960Loop_串口通信协议.md: variation 字段值域修正 + 修订记录 V1.07
- variation-analysis.md: 头部版本引用/§1/§5.1 表格/§5.6.3 口径小注同步
- devlog.md: 2026-08-25 条目追加勘误说明
代码无改动 (main.c 饱和边界本就正确)
This commit is contained in:
wangfq
2026-08-25 09:49:11 +08:00
parent 1ec4a39d92
commit e919ff477a
3 changed files with 18 additions and 6 deletions
+4 -4
View File
@@ -2,7 +2,7 @@
> 分析对象:`uart_report_packet_loop_acs()` 中上报的 **变化量 variation**
> 涉及文件:`src/main.c`(组包)、`src/TaskLoop.c`(基线/IIR 更新)、`inc/TaskLoop.h`(参数宏)
> 协议版本:与《DLD960Loop_串口通信协议.md》**V1.05** 同步(2026-07-14variation 无符号 2B → **有符号 3B**,见 §5
> 协议版本:与《DLD960Loop_串口通信协议.md》**V1.07** 同步(2026-07-14 V1.05variation 无符号 2B → **有符号 3B**,见 §52026-08-25 V1.07:值域表述勘误统一为 **8388608 ~ +8388607**
> 结论层次:物理层 → 信号层 → 数据层 → 上报调度层
---
@@ -38,7 +38,7 @@ g_pkg_uart_report.pkg[i++] = (uint8_t)((variation >> 16) & 0xFF);
```
- **带符号带方向**:正 = 检测裕量方向(与旧版有车时的数值语义连续),负 = 反向漂移
- 3 字节小端补码,值域 ±2²³−1,发送端 **饱和限幅,不会回绕**
- 3 字节小端补码,值域 2²³ ~ +2²³−1,发送端 **饱和限幅,不会回绕**
- 旧版(≤V1.04)为 2B 无符号绝对值,缺陷与变更动机见 **§5**
---
@@ -136,7 +136,7 @@ variation: | | | | ← 锯齿波!
|---|---|---|
| 计算式 | `\|Origin CAPVD\|` 取绝对值 | `Origin CAPVD` 带符号 |
| 编码 | 2 字节无符号,小端 | **3 字节有符号补码**,小端 |
| 值域 | 0~65535**溢出回绕** | ±8388607**发送端饱和限幅** |
| 值域 | 0~65535**溢出回绕** | 8388608 ~ +8388607**发送端饱和限幅** |
| 方向信息 | 无 | 正 = 车/金属进入,负 = 反向漂移 |
| 每通道单元 | 11 字节 | **12 字节** |
| 帧 Len / 总长(4 路无分包) | 0x2F=47 / 52B | **0x33=51 / 56B**(仍 < `BUFF_STACK_SIZE=64`,缓冲安全) |
@@ -182,7 +182,7 @@ if (v & 0x800000) v |= 0xFF000000; // bit23 = 1 → 负数,符号扩展
1. **Loop 与 DBN 固件必须同版本发布**。单元步长 11↔12 死绑定,任一端用旧固件,4 通道数据整体错位。**且帧级 XOR/SUM 校验依然通过**(校验的是整帧,不感知单元边界)——这是**静默数据损坏**,不会报错,只会得到一堆"看起来合理"的错值。
2. 上位机若想兼容新旧固件,可用 **Len 字节区分**4 路无分包时 Len=0x2F(47) 为旧格式(2B 无符号),Len=0x33(51) 为新格式(3B 有符号),按帧动态选解析器。
3. 口径小注:协议文字写值域 ±8388607,代码负向饱和到 −8388608(0x800000)。解析端符号扩展后无歧义,且实际物理量远到不了该量级(CAPVD 全量程才 ~1310723B 有 **~64 倍余量**),不构成问题,仅作记录。
3. 口径说明(V1.07 已勘误):协议文字与代码统一为 **8388608 ~ +8388607**0x800000 是合法负边界)。解析端符号扩展后无歧义实际物理量远到不了该量级(CAPVD 全量程才 ~1310723B 有 **~64 倍余量**),边界仅作记录。
### 5.7 对分析工作的直接增益