CANFD调试(与CANoe调试不通的原因分析)

    上周有同事需要支持CANFD的CAN卡出差,本想试试自己做的CANFD盒子,结果CANoe回采回来错误帧,但明明之前两个同样的CANFD盒子是可以通信的,遂上周六借CANoe回家调试。由于没带逻辑分析仪回来,修改了大量CANFD参数,像SEG1、SEG2、SJW,试过官网例程,换过CAN收发器,换过CAN通道,更改供电电源,一连调了两天,仍无法通信。

    今天把逻辑分析仪带回来,采集数据并对比和CANoe的差别,结果发现CRC场不同,如下图所示。

后来查找资料,发现CANFD有两种标准,分别为ISO CANFD和非ISO CANFD,非ISO CANFD就是BOSCH制定的规范,目前主流推ISO CANFD。经过查找手册,发现CANFD寄存器默认是ISO CANFD,因此与CANoe通信时总是会报错误帧(CRC错误)。修改寄存器后对比波形,发现与CANoe的波形一致,应该可以通信了。

至此,折腾了四天的事终于搞定了,由于逻辑分析仪没有针对CANFD的解析,今天早上早早起床编写CANFD的解析协议,看来也没有浪费。以后调试硬件前,需要补充扩展相关背景知识。

上传几张采集的CANFD波形,供以后参考。

波特率:500K,CANFD格式,BRS = 0;

ID=0x455,DLC=8,DATA=55 01 02 03 04 05 06 55

 

/*************************************************2020-05-31************************************************************************/

后记,目前使用的can收发器型号为tja1042,tcan1042,这些都是可以支持canfd的,但在调试时发现使用的数字光耦1201arz最大支持2MHZ,对于5MHZ波特率是不能通信的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章