feat(vd960Air): 帧校验统一 XOR+SUM(用户决策 2026-08-31)
- uart_app.lua: 接收状态机 RX_XOR/RX_SUM 双校验(从 LEN_H 起,不含 HEAD) 下行组帧加 XOR+SUM 两字节,与 DBN↔Loop 0x7F 完全一致 - config.lua/readme: 帧协议 v0.2 定稿标注,移除"待确认"
This commit is contained in:
@@ -83,13 +83,14 @@
|
||||
- JSON 解析失败时原样转发,不阻塞上行
|
||||
- 开关: `config.lua` `CFG_LINK_ENABLE`
|
||||
|
||||
## 3 UART 链路帧协议(设计稿 v0.2)
|
||||
## 3 UART 链路帧协议(设计稿 v0.2,校验已定稿)
|
||||
|
||||
```
|
||||
帧 = [HEAD 0x7D] [LEN_H] [LEN_L] [PAYLOAD...] [SUM]
|
||||
帧 = [HEAD 0x7D] [LEN_H] [LEN_L] [PAYLOAD...] [XOR] [SUM]
|
||||
- HEAD: 0x7D(避开 0x7F DBN↔Loop / 0x8F DBN 专有 / 0x9F OTA 已占用魔数)
|
||||
- LEN: uint16 大端, PAYLOAD(JSON) 字节数, ≤2048
|
||||
- SUM: uint8 累加和(HEAD+LEN_H+LEN_L+PAYLOAD 全字节取低 8 位)
|
||||
- XOR: XOR 校验,从 LEN_H 起到 PAYLOAD 末字节(不含 HEAD)
|
||||
- SUM: 累加和校验,范围同上
|
||||
- 双向对称
|
||||
```
|
||||
|
||||
@@ -108,13 +109,13 @@ vd960DBN 与地感 MCU 的串口逻辑(loop_uart_proto.c,UART2,0x7F 帧):
|
||||
|---|---|---|
|
||||
| LEN 字段 | **1B**,Value 0~64B(协议明确上限) | **2B**,≤2048B |
|
||||
| 魔数 | 0x7F | 0x7D |
|
||||
| 校验 | XOR + SUM(从 Addr 起) | SUM(设计稿;待定稿确认是否统一 XOR+SUM) |
|
||||
| 状态机 | IDLE→HEADER→VALUE→CHECK | 同构(IDLE→HEAD→LEN→DATA→CHECK) |
|
||||
| 校验 | XOR + SUM(从 Addr 起) | **XOR + SUM(从 LEN_H 起,用户决策 2026-08-31)** |
|
||||
| 状态机 | IDLE→HEADER→VALUE→CHECK | 同构(IDLE→HEAD→LEN→DATA→XOR→SUM) |
|
||||
| 用途 | 命令-响应短帧 | JSON 报文流(loop_data 数百字节) |
|
||||
|
||||
- 为什么不用 0x7F 帧: LEN 1B 上限 64B,装不下 MQTT JSON
|
||||
- 状态机同构 → vd960DBN 侧 UART1 通道可复用 `lup_feed_byte` 解析骨架
|
||||
- 待确认: 校验是否统一为 XOR+SUM(与 0x7F 风格一致)
|
||||
- 状态机同构 + 校验统一 → vd960DBN 侧 UART1 通道可直接复用 `lup_feed_byte` 解析骨架
|
||||
- ✅ **校验已定稿为 XOR+SUM**(2026-08-31 用户确认),与 0x7F 完全一致
|
||||
|
||||
## 4 文件结构
|
||||
|
||||
|
||||
Reference in New Issue
Block a user