Files
AMI/docs/VCU状态反馈测试报告.md
T

6.0 KiB
Raw Blame History

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、dash 状态渲染、dash 后初始化、确认发送。实际修改已保存到根目录 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 编解码分别有已通过证据。

证据

绿色状态示例

解锁及 EBS 故障示例

发送预览:python scripts/send_vcu_status_can.py --task 2 --locked 1 --ebs-normal 1 --dry-run。完整帧规则和样例同步到 DBC 说明 与 CAN 报文 PDF。