DCU_APP SPI 通信 ID(按注册命令展开,三行直观图)
按 device/spi/app_spi_command.cpp 注册顺序组织;每个命令均可展开查看 payload,并用“序号 / 组合 / 说明”三行显示。
⚠ 单帧 payload 最大 123 字节(kTxBufSize=128 - 协议开销 5 字节),超过将被 AppSpiCommand::processCommand() 拒收。
Boot Request
注册函数:registerSpiBootRequestCommand
展开查看 ID / payload / 功能
| 命令/响应 | 符号 | 值 |
| 命令帧类型 | kTypeBootReq | 0xB0 |
| 成功响应 | kRspAck | 0x80 |
payload 直观图
功能:请求进入 Boot 状态,回 ACK。
OTA Wait
注册函数:registerSpiOtaWaitCommand
展开查看 ID / payload / 功能
| 命令 | 符号 | 值 |
| OTA 请求 | kTypeOtaReq | 0x01 |
| OTA 数据 | kTypeOtaData | 0x02 |
| OTA 取消 | kTypeOtaCancel | 0x03 |
| 响应 | kRspWait | 0x81 |
response payload 直观图
功能:OTA 占位/流控,占位/流控。
App Ping
注册函数:registerSpiAppPingCommand
展开查看 ID / payload / 功能
| 命令/响应 | 符号 | 值 |
| 命令帧类型 | kTypeAppPing | 0xA1 |
| 响应 | kRspAck | 0x80 |
response payload 直观图
[2..5]
APP_VER
MAJOR/MINOR/PATCH/BUILD
功能:读取版本与 uptime。
CAN Bridge
注册函数:registerSpiCanBridgeCommand
展开查看 ID / payload / 功能
| 命令/响应 | 符号 | 值 |
| 命令帧类型 | kTypeCanSend | 0xC0 |
| 成功响应 | kRspAck | 0x80 |
| 错误响应 | kRspError | 0x82 |
request payload 直观图
[1..4]
can_id
CAN ID(32bit)
response payload 直观图
错误码:E0=payload 不足,E1=通道非法,E2=发送忙/失败。
功能:ESP32 透传 CANFD 发送帧,校验后发送。
CAN Feedback (ID Snapshot) / Set Mode
注册函数:registerSpiCanFeedbackCommand
展开查看 ID / payload / 功能
| 命令 | 符号 | 值 |
| 反馈查询(分页) | kTypeCanFeedback | 0xC1 |
| 模式切换 | kTypeCanSetMode | 0xC2 |
| 成功响应 | kRspAck | 0x80 |
| 错误响应 | kRspError | 0x82 |
0xC1 request payload 直观图(分页请求)
0xC1 response payload 直观图(统计头 + ID 快照条目)
应答变长,最大 123 字节。固定头 25B + 条目逐条拼接。
固定头(25 字节)
[2]
total_count
ID 条目总数(0~16)
[5..8]
snapshot_seq
快照序号(LE)
[9..12]
rx_count
通道累计接收(LE)
[13..16]
tx_count
通道累计发送(LE)
[17..20]
rx_drop_count
通道丢帧(LE)
[21..24]
error_count
通道错误(LE)
条目区(从 [25] 开始,逐条拼接,变长)
[+5]
flags
bit0=FD bit1=BRS bit2=ESI
条目大小 = 8 + dlc 字节。标准 CAN (dlc=8):14B/条,每页最多 8 条。CANFD (dlc=64):72B/条,每页最多 1 条。
total_count = 实际不重复 ID 数(0~16,不满 16 就是实际值)。total_count ≤ 8 时 page=1 的 entry_count=0。
ESP32 每轮:每通道发 page=0 和 page=1 两次请求(共 6 次 SPI/s),拉完整张表。
0xC2 request payload 直观图
0xC2 response payload 直观图
错误码:E0=payload 不足,E1=参数非法(含非法通道),E3=页号非法。
注:E2=快照不可用 仅用于 0xC3,不在 0xC1/0xC2 中返回。
ID Snapshot(仅 ID 快照表)
注册函数:registerSpiIdSnapshotCommand
展开查看 ID / payload / 功能
| 命令/响应 | 符号 | 值 |
| 命令帧类型 | kTypeIdSnapshot | 0xC3 |
| 成功响应 | kRspAck | 0x80 |
| 错误响应 | kRspError | 0x82 |
0xC3 request payload 直观图(分页请求)
0xC3 response payload 直观图(轻量快照头 + ID 条目)
应答变长,最大 123 字节。固定头 4B + 条目逐条拼接。
固定头(4 字节)
[2]
total_count
ID 条目总数(0~16)
条目区(从 [4] 开始,逐条拼接,变长)
[+8..+11]
rx_count
该 ID 累计接收(LE)
[+13]
flags
bit0=FD bit1=BRS bit2=ESI
[+16..+N]
data
报文数据(dlc 字节)
条目大小 = 16 + dlc 字节。标准 CAN (dlc=8):24B/条,每页最多 5 条。CANFD (dlc=64):80B/条,每页最多 1 条。
total_count = 实际不重复 ID 数(0~16,不满 16 就是实际值)。total_count ≤ 8 时 page=1 的 entry_count=0。
ESP32 行为:当前代码实现了 0xC3,但主链路主要通过 0xC1 拉取“统计头 + ID 快照表”。
错误码:E0=payload 不足,E1=通道非法,E2=快照不可用,E3=页号非法。
公共响应 / 协议常量
来源:app_spi_command_defs.h、app_spi_command.cpp
展开查看公共 ID / payload
公共帧头与响应
公共响应 payload 长度与含义由各命令自行定义。