Autosar Can 01

基础概念

以can报文发送作为例子。can报文的发送,数据流是从com-PduR-CANInterface-CanDriver。

这里我只是简单的介绍一下,配置can模块的时候,模块和模块之间的联系。

声明和引用的概念

在配置BSW模块的时候,经常是在某个地方声明,然后会到某个地方引用。举个例子

Com/ComIPDU建立了两个组Tx和Rx。

我们需要在IPDU的里面去引用。表明这个IPDU是发送还是接收的.

在ETAS中CAN配置流程

按照声明和引用的思路整理一下Can配置模块和模块之间的关系

EcuC/pduCollection

PduLength数据的长度。这里是CANFD 所以配置了64字节。

首先在EcuC模块里面有对PDU的定义。这里的PDU我理解的是,每一层之间交互的IPDU。就是我图片上面圆圈,画的这些。英文解释就是One Pdu flowing through the COM-Stack。其实看自动产生的名字就可以知道。

我们可以把这个理解成小车,每个模块之间的Pdu需要一个小车来帮忙运输。在这边声明了,后面需要在各个模块之间引用,来表明这个模块的PDU从哪里来,到哪里去。

Com模块

选择一个PDU(IDU_1_ETAS_CAN_Com2PduR),右击点击Find References。来查找一下,哪一些的地方引用了这个PDU

出现了两个引用,一个引用在Com模块,一个引用在PduR模块。其实从名字就可以看出来,从Com2pduR。

先看第一个COM模块

点击过后,就到了COM模块。

COM/ComIPdus这里面定义了COM的IPDU,这些IPDU就是DBC导入的ECU收发的报文,signal就是用意义的数据。比如,硬件温度,引脚电流。这些都是信号

在References栏目下面有几个关键的引用

ComPduIdRef:这里引用的就是EcuC/pduCollection。

这表明了,COM层的IPDU是搭载了哪一辆车,把快递装到了小车里面。IDU_1_ETAS_CAN_Com2PduR表示这个IPDU是从COM 发送到 PduR;CCU_PowerOn_ETAS_CAN_PduR2Com,这表明了我这个IPD是从PduR发送到COM。

ComIPduGroupRef: 表明这个IPDU是属于哪个组的

ComIPduSignalRef:这里面包含了,这个IPDU的信号

PduR

PduR模块的功能就是路由。和寄快递一个样子,我们快递单子上面需要写明寄件人的地址和收件人的地址。pduR的路由表中也需要写明PduRSrc和PduRdest 。

可以看到,在PduR/PduRRoutingTables'PduRRoutingTables"/pduRRoutingPaths。PduR维护了一张路由表,表中有路由的路径。

每一个Path里面都需要引用两个东西,

PduRSrcPduRef 表明这个路由的起始地址是哪里

PduRDestPduRef 表明这个路由的目的地是哪里

PduRSrcPduRef:引用源PDU eg:IDU_1_ETAS_CAN_Com2PduR

PduRDestPduRef:引用目的地PDU eg:IDU_1_ETAS_CAN_RduR2CanIf

这引用的是EcuC/pduCollection,表明了这个报文从哪个地方到哪个地方。直接把路由表,理解成快递单。

CanIf

CanIf层是对CanDriver的一层抽象。位于底层CAN驱动(CanDrv)、CAN收发器(CanTrcv)和上层通信服务层(CanSm、CanNm)、CAN传输协议(CanTp)、PDU路由器(PduR)之间。它表示上层通信层的CAN驱动程序服务接口。

CanIfCtrlDevCfgs: 这里面引用了Can Driver

CanIfRxPduCfgs: 包含了接收L-Pdu的配置参数

CanIfTxPduCfgs:包含了发送L-Pdu的配置参数

CanIfTxPduCfgs 配置

CanIfTxPduUserTxConf...ionUL:这里配置发送到CanIf的上层是哪个模块

CanIfTxPduRef:这里引用PDU。引用来自EcuC/pduCollection,表明这个IPDU是哪个模块送到CanIf的。

CanIfRxPduCfgs 配置

CanIfRxPduUserTxConf...ionUL:这里配置接收LPdu后把IPDU给到上层的哪个模块

CanIfTxPduRef:这里引用PDU。引用来自EcuC/pduCollection,表明这个接收LPdu后把IPDU给到上层的哪个模块。

Autosar 配置can,模块和模块之间的联系,就是通过声明和引用联系起来的,核心就是PDU的声明。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值