# VCU 状态反馈测试报告 2026-10-03,屏幕接口 1.4,MCU CAN 接口 v2.4。按用户要求,当前任务、锁定、EBS 状态由 VCU CAN 反馈决定;确认发送只发任务请求,不直接显示为已执行任务。 ## 接口与页面行为 新增自定义标准帧 **0x183 / DLC 8 / 建议 100 ms**。该帧需要 VCU 实现;它不是从已有 VCU 文档确认的现成协议。两路使用相同布局,CAN1 500 kbit/s,CAN2 250 kbit/s。 | 字节 | 含义 | | --- | --- | | 0 | 实际当前任务,0 无,1~6 沿用任务编号 | | 1 | 锁定:0 已解锁,1 已锁定 | | 2 | EBS:0 故障,1 正常 | | 3 | 有效标志:bit0 任务、bit1 锁定、bit2 EBS;其余位为 0 | | 4 | 反馈计数 0~255,仅供观察,不作为请求 ACK | | 5~6 | 保留,必须为 0 | | 7 | 帧版本,固定 1 | 例如 `02 01 01 07 00 00 00 01`:直线加速、已锁定、EBS 正常,三项均有效。各有效标志为 0 时对应项立即未知;超过 500 ms 未收到合规反馈后三项均未知。其他 CAN 流量不能续期。错误枚举、DLC、版本、保留位或扩展/远程/FD 格式不更新状态、不刷新超时。 | 显示项 | 绿色 | 红色 | 灰色 | | --- | --- | --- | --- | | 当前任务 | VCU 反馈的任务 1~6 | VCU 反馈无任务 0 | 无反馈、无效或超时 | | 锁定 | 已锁定 | 已解锁 | 锁定未知 | | EBS | 正常,绿底白字 | 故障,红底白字 | EBS 未知,黑底灰字 | 屏内保留 current_task,新增 lock_state、ebs_state 和渲染缓存。任务状态 7 表示未知;锁定/EBS 屏内编码为 0 未知、1 绿、2 红。dash 后初始化和 100 ms 定时器渲染文字、颜色及任务按钮;离开页面时仍可更新全局状态,返回后重新渲染。CONFIRM 的确认事件已删除 `current_task=pending_task`,仍发送原六字节串口任务帧并清除待选任务。DEBUG 的 EBS 各路检测不自行决定主页面 EBS 汇总状态。 源码副本:[Program.s](../scripts/hmi/Program.s)、[dash 状态渲染](../scripts/hmi/dash-status-render.txt)、[dash 后初始化](../scripts/hmi/dash-postinit.txt)、[确认发送](../scripts/hmi/confirm-send.txt)。实际修改已保存到根目录 AMI.HMI。 ## 已通过的验证 | 验证 | 结果 | | --- | --- | | 官方 HMI 编译 | 0 错误、0 警告,编译输出 6,241,148 字节 | | MCU Release 编译 | Flash 16,428 字节,RAM 2,640 字节 | | ST-LINK 烧录及全量回读 | 16,428 字节逐字节一致 | | 两份 DBC 校验 | 12 条报文、49 个信号、84 个已知报文编解码检查通过;两路布局、源码/CubeMX 位时序、SDC 源布局一致 | | CAN1 → 实物 MCU | 43 项检查通过,CAN/UART 接收错误计数均为 0 | | MCU → COM4 9600 8N1 捕获 | 收到 4,898 字节,含 current_task、lock_state、ebs_state 的完整赋值指令及真实 FF FF FF | | COM4 注入任务请求 → CAN1 | 收到 `0x300: 01 05 00 01 A8 08 08 00`;实际任务保持 VCU 反馈的 2,不被请求的 5 覆盖 | | 官方模拟器键盘状态输入及事件模拟 | 15 项检查通过;该结果不等于物理串口屏测试 | 43 项 MCU 检查覆盖:上电未知、任务 0~6、全部 8 种有效标志、反馈计数 255→0、7 类非法字段、截短 DLC、错误扩展帧、远程帧、其他 CAN 心跳持续时 VCU 独立超时、反馈恢复、请求不改变实际任务、GPIO 与 0x182 回归、最终超时。非法帧测试持续发送超过 500 ms,确认其不能阻止状态过期,且反馈时间戳不被刷新。 15 项页面检查覆盖:上电未知、任务 0~6、解锁/EBS 故障、无效反馈、确认请求前后、跨页反馈、取消请求、最终未知。确认测试先设置 VCU 实际任务 2,选择 EBS 测试 5,执行真实确认事件后,画面仍为直线加速;`get current_task` 返回 `71 02 00 00 00 FF FF FF`。模拟点击使用按下及弹起两次事件,避免仅按下却没有执行确认脚本。 固件 SHA256:`A772BD9D1A278ED061B659E7996D276EBFA59FCC65260D0C7FC8A34F67BF0293`。已保存 HMI SHA256:`2F59E1E3D757A06BBD882CD92BB78ED4BFD0336EB14872E5B33A15EA6F69F65B`。此前 v2.3 BIN 保留为 AMI_Controller_v2.3_500k_250k.bin。 ## 尚未通过的整链路复测 CAN1 → 实物 MCU → USART2 → COM4 → 官方 HMI 模拟器首轮观察到 13 项画面颜色检查通过,包括七个任务编号、锁定/EBS 两种颜色和各项无效反馈。但尝试在用户 MCU 输入模式下通过鼠标确认请求时,未进入预期确认画面、未捕获对应 0x300,模拟器出现 `23 FF FF FF`。官方返回码对应“变量名称太长”;这里保留现象,尚未确定触发原因。 后续完整复测没有通过,PCAN 独立发送工具随后报 `Bus error: the CAN controller is in bus-off state`。未确认总线故障原因,不能将此前通过的局部检查写成稳定的整链路全部通过。实际 TJC 屏幕下载、触摸及车辆 VCU 实际发送仍待验证。当前页面逻辑与 CAN/UART 编解码分别有已通过证据。 ## 证据 - [43 项 MCU 检查及 UART 指令](evidence/2026-10-03/vcu-status/mcu-results.json) - [原始 UART 字节](evidence/2026-10-03/vcu-status/uart-capture.bin) - [15 项页面检查](evidence/2026-10-03/vcu-status/simulator-results.json) - [确认请求后仍显示 VCU 任务 2 的查询截图](evidence/2026-10-03/vcu-status/sim-current-task-query.png) - [编译记录](evidence/2026-10-03/vcu-status/compile.log) - [烧录回读](evidence/2026-10-03/vcu-status/flash-verified.json) - [DBC 校验](evidence/2026-10-03/vcu-status/dbc-verification.json) - [整链路复测未通过记录](evidence/2026-10-03/vcu-status/integration-unverified.json) ![绿色状态示例](evidence/2026-10-03/vcu-status/sim-task-2-green.png) ![解锁及 EBS 故障示例](evidence/2026-10-03/vcu-status/sim-unlocked-ebs-fault.png) 发送预览:`python scripts/send_vcu_status_can.py --task 2 --locked 1 --ebs-normal 1 --dry-run`。完整帧规则和样例同步到 [DBC 说明](AMI_CAN_DBC说明.md#vcu-状态反馈-0x183) 与 [CAN 报文 PDF](../output/pdf/AMI_CAN报文说明.pdf)。