文章目录
- [1 Basic CAN和Full CAN区别](#1 Basic CAN和Full CAN区别)
- [2 Basic CAN和Full CAN使用场景](#2 Basic CAN和Full CAN使用场景)
1 Basic CAN和Full CAN区别
Basic CAN和Full CAN的定义在AUTOSAR_SWS_CANDriver中的描述如下,Basic表示一个HardwareObject可以处理多个L-PDUs,Full表示一个Hardware Object只能处理一个L-PDU。Basic和Full是针对CAN Controller的缓存架构来说的,Full CAN的特征是一个buffer对应一个ID的报文,且新的报文会覆盖旧的报文,不会被缓存,Basic CAN的特征是以FIFO buffer的方式缓存特定ID报文,可以缓存一定的历史报文。
2 Basic CAN和Full CAN使用场景
-
1. 应用报文
一般配置成Full CAN,一般不需要缓存历史报文,使用最新接收的数据即可。对于发送的应用报文,如果都配置成Full CAN,而RAM中发送硬件缓存数量最多为32,那么只能发送32帧报文,而项目中实际需要发送的应用报文一般大于32帧,此时可以将比较重要的报文配置成Full CAN,其他报文配置成Basic CAN。这样硬件发送缓存区Tx Buffers就采用Dedicated Tx Buffers 和 Tx FIFO结合使用的配置方式。
-
2. 诊断报文
-
配置成Basic CAN,因为诊断报文需要按照顺序进行处理,且数据不能被覆盖。
-
3. 网络管理报文
接收的配置成Basic CAN,因为一个节点接收的是一个区间内的NM报文;发送配置Full和Basic都可以,一般配置成Full,因为每个节点发送的NM报文的CAN ID是唯一的。
-
4. 标定报文
一般配置成Full类型。
参考:
[1]【AUTOSAR-CAN】CAN的 "BasicCAN架构" 和 "FullCAN架构"
[2] Autosar通信栈:FullCAN和BasicCAN基础