您好,
有个问题需要咨询一下:
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
Young Hu:有可能是程序中出现偶发的变量被修改,还是要保证传输数据的完整性
您好,
有个问题需要咨询一下:
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
Young Hu:有可能是程序中出现偶发的变量被修改,还是要保证传输数据的完整性
您好,
有个问题需要咨询一下:
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
Young Hu:有可能是程序中出现偶发的变量被修改,还是要保证传输数据的完整性
您好,
有个问题需要咨询一下:
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
Young Hu:有可能是程序中出现偶发的变量被修改,还是要保证传输数据的完整性
您好,
有个问题需要咨询一下:
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
Young Hu:有可能是程序中出现偶发的变量被修改,还是要保证传输数据的完整性
您好,
有个问题需要咨询一下:
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
user4634058:
回复 Young Hu:
请解释得更详细一点么?
您好,
有个问题需要咨询一下:
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
user4634058:
回复 Young Hu:
因为从应用层传递到ecan的驱动层(can协议实现层),用的是自定义的函数调用: void SEND_MBOX0(U32 ID,U16 w1,U16 w2,U16 w3,U16 w4),应不存在数据完整性的问题; 现在没高明白的是,为什么会在外部干扰的情况下,ecan的驱动层怎么会把数据发错(从采集的数据来看,是刚装了新的ID号(问题中的0x18FF1EEF),但数据 是还没装(保持了旧的上一次传输的数据,即 ID=0x18FF10EF的数据),ecan即把数据发送出去了—– 即如果是信号完整性问题,出现的地方应是在ecan的驱动层。
我想弄明白的问题是:1)ecan的驱动层发生这个的原因 ; 2)作为应用层,怎么做使得出现的概率变小; 3)万一发生了,应用层怎么检测。
您好,
有个问题需要咨询一下:
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
Young Hu:
回复 user4634058:
所以有可能是把ID写入了,然后来了中断把函数执行打断。我觉得(1)增加数据帧校验功能;(2)在执行关键数据操作的时候,将全局中断disable
您好,
有个问题需要咨询一下:
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
user4634058:
回复 Young Hu:
你的意思是说: 在调用SEND_MBOX0函数前要关中断,调用完再恢复?
您好,
有个问题需要咨询一下:
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
user4634058:
回复 user4634058:
其它地方碰到过类似现象没有?有无其它方法解决的经验?