一、DLC
Autosar CanIf提供了可配置的DLC Check功能,如果对一个报文配置了CanIfRxPduDlc=8,那么当收到该报文的数据长度小于8时不再向上层传递,而大于等于8时则认为是正常的。
另外,Autosar没有规定但是工具提供商可能实现的,当收到的标准CAN报文数据长度大于8字节,或者CAN FD报文数据长度大于64字节,则不再将该报文向上层传递。
二、CANoe
使用CANoe时,可以对Network进行配置:
将CAN Controller的Mode配置为CAN时,只能接收总线上的标准CAN报文,同时也只能向总线上发送标准CAN报文;
将CAN Controller的Mode配置为ISO CAN FD时,可以接收总线上的标准CAN和CAN FD报文,同时也能向总线上发送标准CAN和CAN FD报文。
在Diagnostics/ISO TP Configuration菜单中,可以选择诊断报文是CAN报文还是CAN FD报文。
三、CanIdType
Autosar CanIf提供了配置项CanIfRxPduCanIdType,用于校验接收到的CAN报文类型:
将CanIfRxPduCanIdType配置为STANDARD_CAN,该报文可以是标准CAN也可以是CAN FD;
将CanIfRxPduCanIdType配置为STANDARD_FD_CAN,该报文只能是CAN FD;
将CanIfRxPduCanIdType配置为STANDARD_NO_FD_CAN,该报文只能是标准CAN。
当从总线上接收到的报文类型与配置不相符时,不再将该报文向上层传递。
四、中断&轮询
这里偷个懒,参考Autosar通信栈:Polling模式为什么容易引发丢帧? - 知乎 (zhihu.com)