ED BMSdiag
组件和用品
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
应用和在线服务
![]() |
|
关于这个项目
意图
我正在驾驶一辆电动车——一款智能两用电动车。牵引电池的健康至关重要,由电池管理系统 (BMS) 维护。它将在充电/放电过程中监控所有 93 节电池,并关注相同的电压电平平衡。通常只有服务工具才能从这个ECU读取信息。
该车配备了 GSM 调制解调器,用于访问充电状态 (SOC)、可用范围和其他简单信息等状态数据。在一段时间内,调制解调器处于扩展模式,收集有关汽车的诊断信息。对我试图嗅探 CAN 总线以了解传输的内容的内容感到好奇。
受到其他电动汽车类似项目的启发——比如 Nissan Leaf——我在驾驶或给汽车充电时记录了完整的 CAN 总线流量。第一个嗅探到的流确实包含了那些诊断数据 - 但如何对其进行解码?
您将在此处的另一篇文章中找到有关 CAN 总线嗅探和逆向工程的详细信息。
需要什么
获取所需的硬件。在现代汽车上,物理层是通过 CAN 总线完成的。至少有两个 CAN 总线屏蔽可用 - 请参阅组件列表。您必须连接到汽车诊断端口 - OBD 连接器,因此请购买电缆或自己制作。注意:OBD 到 DSUB-9 电缆有两种标准 - 选择正确的一种!见下图:




当您制作自己的电缆时,最好使用旧的双绞线网络电缆。为 CAN-H 和 CAN-L 使用这些成对电线之一。这将提高信号完整性。长度也不要超过 1 m,以尽量减少信号反射。
开始使用
第 1 步
准备硬件并为电路板找到一个合适的外壳。
第 2 步
从我的 github 存储库下载项目。有关安装,请参阅此处的详细信息。编译代码并烧写到Arduino。
第 3 步
连接到汽车并为其通电。启动诊断会话并获取有关电池组的有用信息...


第 4 步
使用电子表格程序并找出相关数据。例如,将 SOC(充电状态,来自仪表板)与来自 BMS 的真实 SOC 进行比较。或者绘制电池电压并查看某些电池在充电时限制电池组,因为它们首先达到了截止限制...


步骤 5
如果您愿意,可以改进代码 - 进行自己的黑客攻击。 Spakfun shield 有一个 SD 卡读卡器,因此您可以构建自己的 CAN 总线记录器。
或者你构建了一个很好的前端/应用程序来显示数据......
我希望这个工具会有所帮助 - 玩得开心!
代码
ED_BMSdiag Arduino 软件
https://github.com/MyLab-odyssey/ED_BMSdiag.git示意图
用于 Sparkfun CAN 总线屏蔽

制造工艺