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波特率是不能通信的。

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