5IO 板载 CAN:FD 5M 三十分钟压测
测试对象为 RK3588 核心板 + LBM5-DIBAN-V01A 自研底板,通过 SocketCAN 和 Linux 6.1 回移 CAN 驱动,测试两个板载 CAN 控制器。
严格结论:未通过。 所有应用帧最终收齐,但每口 bus_error 累计增加 6,一个控制器出现 RX FIFO 异常。
驱动来源和配置
驱动主体来自 Linux 上游,本项目做 6.1 API 回移、RK3588 / BSP 与板级适配、模块隔离和位时序调优。模块须使用目标 BSP 配套头文件、配置和 Module.symvers 编译,内核版本号相同不保证 ABI 一样。
本次实验配置为 FD + BRS、仲裁 1M / 数据 5M;日常配置恢复普通 CAN 1M,FD 入口保留为实验用途。普通 CAN 1M 也保留了历史丢失、重复及勘误恢复失败记录,尚未完成零错误验收。
分阶段实测
| 阶段 | 活动时长 | 实收帧数 | 结论 |
|---|---|---|---|
| 基线 A → B | 15 秒 | 30,000 | 该阶段通过 |
| 基线 B → A | 15 秒 | 30,000 | 该阶段通过 |
| 标准 ID、64B,A → B | 600 秒 | 3,998,643 | 该阶段通过 |
| 标准 ID、64B,B → A | 600 秒 | 3,993,347 | 该阶段通过 |
| 扩展 ID,A → B | 180 秒 | 936,786 | 总线错误,失败 |
| 扩展 ID,B → A | 180 秒 | 912,146 | 总线错误,失败 |
| 混合双向 | 240 秒 | 2,486,022 | 总线 / RX FIFO 异常,失败 |
30 分钟压测合计 12,326,944 帧;另有 30 秒基线 60,000 帧。含基线总活动时间 1,830 秒,总计 12,386,944 帧。
没有缺失、重复、内容错误、乱序或接收 socket 丢弃,仍不能忽略总线与 FIFO 异常。短测通过不能覆盖后续失败。
吞吐与测量限制
标准 ID 阶段有效载荷约 3.41 Mbit/s,软件估算线占用约 99.33%。没有独立总线分析仪或示波器证据,不能宣称物理线速 100% 已独立测实。
发送端遇到队列满时保留同一序号重试,成功入队才计入已发。记录的 17,028,428 次背压尝试不是永久丢失的应用帧。
后续定位
结合实装收发器、线长、终端、差分波形与勘误恢复继续定位。两个控制器属于同一 SoC、共享时钟,未完成独立多节点、长线、EMC、温度或跨天稳定性验证。
另一块自研 USB CAN 板的短时通过不能改变本板的失败结论。
原始证据
本文引用 5IO 仓库固定提交 28562569d887253fdb72693d9c7b57fe6ca14164,本次 Wiki 重构没有重新向板卡发送测试帧。