我正在尝试通过 can 与车辆控制单元 (VCU) 进行通信。我已经弄清楚了命令(索引、数据和频率),并且可以通过PCanView on Windows
. 现在我正在使用带有python-can
库的 Nvidia Xavier 系统来发送相同的命令,并且可以使用candump
. 但是,当我在发送这些命令时打开车辆引擎电源时,canbus 冻结(这是当 VCU 开始期待我发送的 can 命令时,如果它没有收到预期的数据,它将进入故障状态)
我过去曾成功使用 python-can 与其他 can 设备通信,我对代码本身的正确性充满信心。硬件连接也很好,因为我可以接收来自车辆的非 VCU 消息。重启canbus后也能收到VCU消息。
什么可能导致公共汽车冻结?有没有办法阻止它?(通过在 socket-can 层本身中设置一些配置?)
请注意,重新启动巴士并不能解决问题,因为车辆一旦出现故障就无法恢复,无需重新启动。
任何帮助将不胜感激!