最近遇到一个问题,CANOE进行EOL测试,发现很多DID莫名其妙发生超时,没有规律,
从上面的现象看,22读写DID报文F110,返回的是一个多帧报文,异常的时候首帧都能发送出来,CANOE回完流控帧后,ECU的连续帧就发送不出来了,导致CANOE报错超时。Debug代码发现,CF在发送的时候会发送错误,跑进如下代码else分支,于是猜想,应该是发送Buffer的原因
对照Rx Basic的设置,RX采用了FIFO模式,发送则没有,于是将诊断报文的Basic发送邮箱设置改成FIFO模式,问题解决
问题解决后,每次读写DID F110都能正确的收到应答,CANOE也不会报超时错误。