Files
AMI/docs/CAN1_CAN2_v2.1测试报告.md
T

63 lines
5.4 KiB
Markdown
Raw 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.
# AMI v2.1 烧录与双 CAN 实物测试
2026-10-03,固件来源提交 `9120bd0`。实际链路为 PCAN-USB CAN 盒 -> 实物 AMI MCU -> USART2 PA2/PA3 -> CH340 COM4(9600 8N1)-> USART HMI 官方调试器。先测试 CAN1,通知用户切换接线并收到确认后,再测试 CAN2。
本报告为 v2.1 历史记录,对应 [归档 BIN](../output/firmware/AMI_Controller_v2.1_500k_250k.bin)。通用 `AMI_Controller.bin` 已更新为 v2.2,请勿把本报告的双 CAN 结果直接套用于后续版本。
CAN1 按 SDC 的 500 kbit/s 使用,CAN2 按 BMS 的 250 kbit/s 使用。此次用 CAN 盒模拟源报文,未连接真实 SDC/BMS 节点或物理串口屏;未同时连接两路。
## 烧录与实际位时序
- ST-LINK SN `37FF71064E573436188C1543`;目标 ID `0x467`,128 KB Flash,供电 3.28 V。
- 从 `0x08000000` 烧录发布的 15612 字节 BIN,烧录工具返回 `Download verified successfully`。
- 另行完整回读 15612 字节,逐字节与发布 BIN 相同。
- 固件 SHA256:`143BB0CF190A17DD3F8A251BD49FEF2AF19699D873951C58CB790B35764E3212`。
- HMI SHA256:`8A37E4961F90671F04E55BA94C173AE8FBFC5E30C2A3E74A2C37148157C3D16D`。
| 端口 | 实际 NBTP | Prescaler | TimeSeg1 / TimeSeg2 | 速率 | 采样点 |
| --- | --- | --- | --- | --- | --- |
| CAN1 | `0x00070C01` | 8 | 13 / 2 | 500 kbit/s | 87.5% |
| CAN2 | `0x000F0C01` | 16 | 13 / 2 | 250 kbit/s | 87.5% |
寄存器通过运行中的 MCU SWD 读取,按 64 MHz FDCAN 时钟计算。见 [烧录与寄存器记录](evidence/2026-10-03/v2.1-can1/flash-and-bit-timing.json)、[烧录日志](evidence/2026-10-03/v2.1-can1/flash.log)、[回读日志](evidence/2026-10-03/v2.1-can1/flash-readback.log)。寄存器记录中的 CAN2 待测标志是切线前的阶段记录,后续结果见下节。
## CAN1:500K,SDC 数据与任务
发送 SDC 心跳 `0x6A0`(100 ms)、ADC `0x6A1`(500 ms)、轮频 `0x6A2`(20 ms)和 GPIO `0x6A6`。ADC 显示经过 8.20 V、12.30 V、12.68 V,停止 ADC 后独立失效变灰,恢复后转白。轮频保持原始 Hz,不换算为 km/h;GPIO 未映射成具名安全状态。
最初 CAN1 回归还额外注入 BMS 格式数据,用于检查原有共享解码路径;该模拟注入不代表真实 BMS 工作于 500K。按用户说明,BMS 最终在 CAN2 250K 单独验证。
六个任务按钮分别确认和取消。每个确认均收到一条标准 `0x300 / DLC 8`,任务号为 1..6、序号为 0..5;六个取消均未出现任务请求。任务测试期间 CAN1 持续有有效输入。
五组 MCU 状态快照符合预期,CAN/UART 接收错误计数均为 0,PCAN 状态为 `0x0`。见 [状态核对](evidence/2026-10-03/v2.1-can1/sdc_bms_verified.json)、[发送记录](evidence/2026-10-03/v2.1-can1/sdc_bms_visual_results.json)、[任务回传](evidence/2026-10-03/v2.1-can1/sdc_bms_function_task_results.json)。
![CAN1 ADC 显示](evidence/2026-10-03/v2.1-can1/sdc_bms_recovered.png)
## CAN2:250K,仅 BMS 数据与任务
CAN2 测试仅发送 BMS 状态、温度以及故意构造的无效帧,没有发送 SDC `0x6A0..0x6A6`。MCU 快照确认 CAN1 接收时间为 0、CAN2 接收时间有效,数据来自 CAN2。
| 阶段 | BMS 输入 | HMI / MCU 结果 |
| --- | --- | --- |
| 标准帧 | `0x140`:400.0 V、+12.3 A;`0x156` 八路温度含一条 FF | 显示 400 V、12 A、有效最高温度 40 ℃ |
| 扩展帧 | `0x186040F3`:421.1 V、-69.5 A;`0x186140F3` 最高温度 23 ℃ | 显示 421 V、-70 A、23 ℃ |
| 全部温度 FF | 状态帧继续有效,八路温度均 FF | 历史温度保留并变灰,电压/电流仍有效 |
| 停止 BMS | 等待 3 秒 | 电压、电流和温度均失效变灰 |
| 恢复 | 54.5 V、0 A、最高有效温度 27 ℃ | 显示 55 V、0 A、27 ℃并转白 |
CAN2 单独测试前复位 MCU,且未注入 SDC ADC,因此低压电池为 0.00 V 灰色,ADC 原始值为 0。扩展 BMS 帧携带的低压字段没有覆盖该值。
错误 DLC、`0x140` 的错误扩展格式及旧 `0x180` 没有覆盖有效读数。六个任务确认均收到正确标准 `0x300 / 8`,六个取消均无任务请求,序号依次 0..5。CAN/UART 接收错误均为 0,PCAN 状态为 `0x0`。
初次切线后的 HMI 调试窗口滞留旧画面且没有发出任务。MCU 快照已正确解码 BMS;关闭该窗口后,直接读取 COM4 得到正确的 ASCII 指令和真实 `FF FF FF`,直接发送串口任务帧也收到 CAN2 回传。重新打开 HMI 调试器并连接 COM4 后,以上五阶段显示和六个按钮确认/取消全部复测通过。无需修改固件。
见 [状态核对](evidence/2026-10-03/v2.1-can2/bms_verified.json)、[发送记录](evidence/2026-10-03/v2.1-can2/bms_visual_results.json)、[任务回传](evidence/2026-10-03/v2.1-can2/bms_function_task_results.json)、[串口诊断](evidence/2026-10-03/v2.1-can2/uart-diagnostic.json)。
![CAN2 扩展帧显示](evidence/2026-10-03/v2.1-can2/bms_extended.png)
## 测试范围
已完成烧录校验、完整回读、两路分别接线的实际 CAN 收发、MCU 解码、串口通信、官方 HMI 调试器显示和任务回传。共十组状态快照、十二个任务确认、十二个取消通过。
物理串口屏、真实 SDC/BMS 节点、两路同时接入、LED 极性、车辆动作及安全互锁未在本次测试中验证。跨页面测试没有在本次重复;此前 v2.0 的结果见历史联调报告。任务回传证明请求已发出,不能作为 VCU 执行成功的证明。