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的芯片,应用在一款物流车上,在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;