我正试图通过can与车辆控制单元(VCU)进行通信。我已经计算出命令(索引、数据和频率),并可以通过PCanView on Windows验证其功能。现在,我使用带有python-can库的Nvidia系统发送相同的命令,并且可以使用candump验证这些命令。然而,当我在发送这些命令时为车辆引擎供电时,canbus就会结冰(这是当VCU开始期待我发送的can命令时,如果它没有收到预期的数据,它就会陷入故障状态)
我过去曾成功地使用python与其他can设备对话,并且我对代码本身的正确性很有信心。硬件连接也很好,因为我可以接收来自车辆的非VCU消息.我还可以在重新启动canbus之后接收VCU消息。
是什么导致公共汽车僵住了?有什么办法可以预防吗?(通过在套接字中设置某种配置,可以自己分层吗?)
请注意,重新启动总线将不会解决问题,因为车辆一旦出现故障就无法恢复,除非重新启动。
任何帮助都将不胜感激!
发布于 2022-02-15 22:09:16
好吧,原来是硬件问题。CAN电缆的长度有点太长了。当车辆开机时,总线接收大量的数据传输,而CAN电缆上则充斥着大量的数据。我仍然不知道故障的机理,但减小电缆长度使其全部正常工作。
发布于 2022-03-10 20:38:57
电缆长度可能是原因,但要注意总线拓扑,尤其是CAN终端所在的位置。
https://stackoverflow.com/questions/71026164
复制相似问题