Files
AMI/docs/DEBUG十五路CAN测试报告.md

47 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# DEBUG 十五路 CAN 测试
本报告记录未定义映射的 v2.2 历史结果。随后按用户表和最终“低正常、高故障”极性完成 v2.3 固件与页面测试,见 [映射测试报告](DEBUG十五路CAN映射测试报告.md)。
2026-10-03。本次保持 AMI.HMI 与固件不变,使用 PCAN-USB 模拟标准 `0x6A6 / DLC 8`,在实物 MCU 上核对原始采样和 DEBUG 状态。官方 HMI 调试器保持“用户 MCU 输入”、COM4、9600 8N1;没有执行键盘状态赋值。
## 测试结果
**CAN 原始十五路接收通过,DEBUG 页面状态变化未通过。**
| 检查 | 结果 |
| --- | --- |
| PD0~PD14 每路置高、置低 | 30 项原始电平、变化掩码、源时间戳均符合预期 |
| 全零、全高、最终恢复全零 | 通过 |
| 保留 bit15 | MCU 屏蔽该位 |
| DLC 7、错误扩展 ID 0x6A6 | 被拒绝,原状态和源时间戳不被覆盖 |
| MCU `debug_state[0..15]` | 36 次快照始终全 0(未知) |
| 官方 HMI DEBUG 页面 | 全高和逐位注入后仍显示灰色“未知” |
| 串口接收计数 | 测试结束仍为 T:0 / L:0,MCU 到电脑的串口回传未得到验证 |
36 个测试阶段 PCAN 状态均为 `0x0`,MCU CAN / UART 软件接收错误计数均为 0。接收正确由每次发送的独特源时间戳和 SWD 快照共同确认;不能仅凭 CAN 发送成功判断 MCU 已接收。
## 当前接线与固件
初次沿用历史 CAN2 250K 设置,报文没有更新 MCU;持续探测产生 PCAN bus-off(`0x10`)。500K 探测的独特时间戳被 CAN1 接收,确认当前 CAN 盒实际接在 CAN1。随后重开并复位 PCAN 接口,完整 36 项测试均在 **CAN1 500 kbit/s** 进行。
从实物 Flash 完整回读 15880 字节,与 `output/firmware/AMI_Controller.bin` 逐字节一致。SHA256:`E73994418D346ADEF7E2ED5EE3C018C4CD3B74C4E4A2884CD8628218153BEA7F`,对应 v2.2。
## 页面无法转换状态的原因
当前 `ami_app.c` 收到 `0x6A6` 后仅保存 `sdc_gpio_state`、`sdc_gpio_changed`、`sdc_gpio_timestamp_ms`,没有写入 `display_state.debug_state[]`。没有定义 PD0~PD14 到 d0~d15 的对应关系,以及每路正常电平;旧 `0x280` 显示输入在当前固件中已停用。
屏幕接口实际为 16 个变量 d0~d15,其中 d1 同时驱动两个显示位置。十五路物理输入与十六个具名状态之间的关系不能按编号直接推定。
后续可提供真实输入映射及正常极性,或另设只更新显示的 CAN 测试报文。串口 PA2(MCU TX)到转串口 RXD 的回传链路还需单独核实。物理串口屏、真实 SDC 节点和车辆安全动作没有在本次验证。
## 证据
- [报文、源时间戳和 MCU 快照](evidence/2026-10-03/debug-can-retest/gpio-can-results.json)
- [串口界面计数](evidence/2026-10-03/debug-can-retest/mcu-input-ui-counters.json)
- [接线探测](evidence/2026-10-03/debug-can-retest/link-probe.json)
- [本次测试脚本](evidence/2026-10-03/debug-can-retest/test_gpio_can.py)
![全高采样后 DEBUG 仍未知](evidence/2026-10-03/debug-can-retest/mcu_all_high.png)
测试结束后停止 CAN 注入,原始采样恢复全零,保持 DEBUG 页面和用户 MCU 输入模式。