This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28035做EV DRIVER,汽车过减速带时 CAN数据发生错误

Other Parts Discussed in Thread: TMS320F28035

您好,

有个问题需要咨询一下:

     TMS320F28035的芯片,应用在一款物流车上,在DSP发送状态的过程中,用了MBOX0邮箱,依次装3个不同的ID的帧:10ms定时发送ID=0x18FF0FEF 和ID=0x18FF10EF(与ID=0x18FF0FEF的帧间隔了3ms),以及隔100ms定时发送ID=0x18FF1EEF。

跑了有4000余公里都正常。

     异常情况:

     4500公里后,在车辆过减速带时,偶尔会出现一帧错误的帧到达应用层,附件截图中的序号为575516行(红色背景)的帧,数据完全错误,导致VCU做出了错误的危险动作。

     经过我们的数据分析,发现了575516行(红色背景)的帧的数据与前面的ID= ID=0x18FF10EF(黄色背景)的帧数据高度相似。    

     我们目前只能解释为过减速带时干扰过大导致,但客户不认可此说法,认为干扰的帧到不了CAN的应用层。 我们对此也很迷惑,请帮忙解释一下芯片的底层的收发机理,为什么会出现此帧,此帧为什么会到达应用层;以及可能的解决方式。

  附:

    我们的MBOX0的收发函数:

void SEND_MBOX0(U32 ID,U16 w1,U16 w2,U16 w3,U16 w4)

{

       if(ECanaRegs.CANTA.all == 0x0000001 )

       {           

              ECanaRegs.CANTA.all = 0x00000001;

       }

  

       ECanaRegs.CANME.bit.ME0 = 0;

       ECanaMboxes.MBOX0.MSGID.all = 0x80000000 | ID;    

       ECanaRegs.CANME.bit.ME0 = 1;

 

       ECanaMboxes.MBOX0.MDL.byte.BYTE0 = w1 & 0xff;

       ECanaMboxes.MBOX0.MDL.byte.BYTE1 = (w1 >> 8) & 0xff;

       ECanaMboxes.MBOX0.MDL.byte.BYTE2 = w2 & 0xff;

       ECanaMboxes.MBOX0.MDL.byte.BYTE3 = (w2 >> 8) & 0xff;

       ECanaMboxes.MBOX0.MDH.byte.BYTE4 = w3 & 0xff;

       ECanaMboxes.MBOX0.MDH.byte.BYTE5 = (w3 >> 8) & 0xff;

       ECanaMboxes.MBOX0.MDH.byte.BYTE6 = w4 & 0xff;

       ECanaMboxes.MBOX0.MDH.byte.BYTE7 = (w4 >> 8) & 0xff;

      

       ECanaRegs.CANTRS.all = 0x00000001;    

                    

}raw_err_data.rar