1、概述
规范基于《AUTOSAR_SWS_CANInterface.pdf》,配置工具基于ETAS的ISOLAR-AB
2、配置介绍
2.1 配置界面总览
导图如下:
配置如下:
规范里面的描述
2.2 CanIfPublicCfg
配置CanIf的公共信息,能对各个模块产生影响的部分,本文档只描述部分我们关注的点。
2.2.1 CanIfMetaDataSupport
CanIfMetaDataSupport:是否使能动态ID处理L-SDU Metadata。
个人理解:也就是说Basic CAN的时候使能这个开关,批量操作范围内的CANID,CANID越小优先级越大。
2.2.2 CanIfPublicCancelTransmitSupport
规范描述
但是ETAS尚未实现
2.2.3 CanIfPublicHandleTypeEnum
Can_HwHandleType表示CAN的硬件单元,当邮箱数大于255的时候,需要是UINT16的数据类型,
这个点是必须选择的。
2.2.4 CanIfPublicIcomSupport
这点是非常不理解的,伪网络是什么?后面文章描述,意思上是为了节能,减少总线上的负载。ETAS尚未实现此功能
2.2.5 CanIfPublicReadRxPduDataApi
此函数便于读取CAN的SDU信息
接口描述
函数原型
CanIfRxSduId参数表示如下
表示RX的PDUID
2.2.6 CanIfTriggerTransmitSupport
COM层面要是由触发传输,此处应该开启
2.3 CanIfCtrlDrvCfg
配置下层和CanDrv相关联的地方
2.4 CanIfDispatchCfg
Dispatch:调度,本配置包含项,主要是配置回调函数。
2.4.1 CanIfDispatchUserCtrlBusOffName
这个意思是假设CanIfDispatchUserCtrlBusOffUL选择为CANSM,那么这接口不用去填写了,直接就是CanIf_ControllerBusOff();
解释一个地方
UL表示upper layer
上述归CANSM管理是非常正常的流程。
2.5 CanIfPrivateCfg
私有配置项,其中DLC检查就在这里配置的,外部有一个DLC检查的回调函数。
这块非常重要,分为四个模块
各个部分含义
2.6 CanIfInitCfg
2.6.1 CanIfTxPduCfg
配置发送CAN Message的信息,包含 CANID CANIDType 发送方向之类的,如下图
上述在DBC导入的时候就会存在,赘述一下。
注意一个配置项
2.6.2 CanIfRxPduCfg
主要的关注点是
PduR_CanIfRxIndication 函数名是固定的
2.6.3 CanIfInitHohCfgs
主要配置属于哪一个CAN的硬件object,属于哪一个CAN的Node
2.6.4 CanIfBufferCfgs
主要是给发送Message开辟一个缓存器。
FullCan的时候CanIfBufferSize配置为0