之前我写过一篇CAN总线的调试,里面写了如何调试CAN总线,可点击链接查看。
在办公室调试时,使用CAN的调试工具调试并没有什么问题,数据也没有丢包,所以上车去调试,但上车调试就出现了问题,当车子启动的时候,接收CAN数据是没有问题的,但过段时间后出现了踩油门没有反映,死火,倒车影像闪烁的问题,接了CAN之后才出现了这些问题。后来对问题进行分析:
1、主板的CAN的H和L脚为1.6V,车上的CAN为2.5V,这个肯定是有问题的,已经把车上的CAN给拉低了,查阅资料得知,是硬件的芯片使用错误导致的,如下图,我们应该用的是TJA1042T,还好的pin to pin 的,更换就行,再测电平,2.5V则正常。
2、之后还是出现这个问题,检查原理图,将上面的一个120欧的电阻去掉,因为调试的时候120欧是有必要的,但车上本身已经有120欧的电阻,这样导致电阻并在一起,阻值变小,那也是会影响车上的其他数据。
全部改正之后跑了两圈,目前看来没有什么问题,后续还需要不断的测试来验证。
最后附上在Linux下CAN的代码示例程序,不同车的信号是不同的,所以这个要根据车行不同进行配置。