客户用S32K312,在做CAN的busoff实验测试中发现,在干扰S32K312的CAN发送过程中,有一帧间隔时间比较长,正常情况下发送不成功CAN会重发,直到发送错误计数满255,导致busoff,应用软件间隔50ms再重新初始化CAN。
客户用的RTD 3.0.0 P01,
测试截图如下,这是一次测试过程中,有出现不正常时间间隔的情况,也有正常时间间隔的情况。
请帮忙分析下,谢谢。
Hi@huangmingsong
我感觉这并没有什么问题阿,如果在传输过程中有干扰,发送节点会等待一段时间后重新发送数据,延迟时间可以在毫秒至微秒之间,一般CAN 收发器会有这样的功能,并不一定是S32K312的CAN控制器决定的。
您的意思是收发器引起的这个延时吗?这个不应该是CAN控制器控制发信号出来吗?
客户用的是TJA1042,帮忙看下这个收发器有这个功能吗?
车厂要求间隔不能超过1ms,正常情况下都是300us左右。
Hi@huangmingsong
我也不确定,只是怀疑。
我下周可以帮你测评一下,你让客户提供可以复现问题的工程,测试的方法,我要先复现问题才能帮你排查,不好复现的话我不好给你建议。
关于busoff的问题,S32K312有没有相关的demo可以参考的啊?
测试原理就是K312通过CAN发送报文,测试设备就干扰发送,CAN这帧报文发送不成功,发送错误计数器会增加,硬件有自动重发机制,每次重发都进行干扰,当发送错误计数器到255时就发生busoff,在这一帧发送过程中理论上不应该有出现发送间隔增大的(因是硬件自动完成的重发)。
我和同事讨论了下,我们先定位问题,
让客户用逻辑分析仪或者示波器同时捕捉MCU端和收发器输出端,定位这个问题是MCU端的还是收发器端的,如果在MCU端和收发器输出端都测到这个周期异常波形,那么问题可能就是MCU端,我们就要排查软件问题,是不是高优先级的事件中断干扰了重发送过程,如果只有收发器发送端出现了周期异常而MCU发送正常,那么我们可以定位是收发器。