繁体   English   中英

Canbus 冻结——如何忽略错误帧?

[英]Canbus freezes - how to ignore error frames?

我正在尝试通过 can 与车辆控制单元 (VCU) 通信。 我已经弄清楚了命令(索引、数据和频率),并且可以通过PCanView on Windows验证功能。 现在我正在使用带有python-can库的 Nvidia Xavier 系统来发送相同的命令,并且我可以使用candump验证命令。 然而,当我在发送这些命令的同时打开车辆引擎时,canbus 冻结(这是 VCU 开始期待我发送的 can 命令时,如果它没有收到它期望的数据,它会进入故障 state)

我过去曾成功地使用 python-can 与其他 can 设备通信,我对代码本身的正确性充满信心。 硬件连接也很好,因为我可以从车辆接收非 VCU 消息。 重启canbus后也能收到VCU消息。

什么可能导致巴士结冰? 有什么办法可以预防吗? (通过在 socket-can 层本身设置一些配置?)

请注意,重启公交车并不能解决问题,因为车辆一旦出现故障,不重启就无法恢复。

任何帮助将不胜感激!

好吧,原来是硬件问题。 CAN 电缆的长度有点过长。 车辆启动时总线接收大量数据传输,CAN 电缆充满数据。 我仍然不知道故障的机制,但减少电缆长度使一切正常。

电缆长度可能是原因,但要注意总线拓扑,尤其是 CAN 终端所在的位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM