autosar详细介绍(vector的文档_AUTOSAR架构的CAN Interface

本文介绍了AUTOSAR架构中CAN Interface的角色,它作为CAN Driver和上层通讯服务层之间的桥梁,负责CAN通讯、UDS服务和XCP服务。详细阐述了发送操作中CanIf_Transmit函数的工作流程,接收操作中CanIf_RxIndication函数如何处理接收到的数据,并详细讨论了ID的映射关系,强调了配置过程中ID对应的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

上篇文章 “ AUTOSAR架构的CAN Driver” (可点开) 简介了AUTOSAR架构的CAN Driver模块,本文将更进一步,来了解CAN Driver模块对接的唯一上层模块--CAN Interface。

CAN interface

CAN Interface,顾名思义,CAN接口模块,位于下层的CAN设备驱动(CAN Driver,CAN收发器驱动)和上层的通讯服务层(CAN传输协议层,Pdu Router等)之间,如下图1所示。

7f90de94cf1346e34a24a9b4bda45185.png
图1 AUTOSAR CAN Layer Model,引自[1]
引自[1]:
CAN接口模块由所有与CAN硬件无关的任务组成,这些任务属于相应ECU的CAN通讯设备驱动程序。这些功能在CAN接口模块中执行一次,以便底层CAN设备驱动程序只专注于访问和控制相应的特定CAN硬件设备。
CAN接口模块满足PDU路由器和上层通信Com模块的主控制流和数据流要求:发送请求处理、发送确认/接收指示等。它的数据处理和通知API是基于CAN L-SDU,而用于控制和模式处理的API提供了一个与CAN控制器相关视角。

对于CAN Driver来说,与上层模块通讯的唯一接口就是CAN接口模块,通过这个模块可实现我们熟知的3个ECU通讯功能:

  • CAN通讯,通过接口层到PDU Router模块;(路径:CanDrv--CanIf--PduR--Com)

  • UDS服务,通过接口层到CANTp模块;(路径:CanDrv--CanIf--CanTp--PduR--Dcm)

  • XCP服务,通过接口层到XCP模块。(路径:CanDrv--CanIf--XCP)

e9d7f080a81aae029071fed519d62c3e.png
图2 通讯功能相关模块

本文关注的是CAN通讯功能,继续采用上篇文章menghuyouyou:CAN通讯系列--AUTOSAR架构的CAN Driver6 的思路来介绍CAN接口模块。

考虑到本文主要基于参考[1]而来,不打算对某些细节展开说明,将主要介绍CAN发送和接收相关的函数。若真有需要研究CAN通讯在CAN接口模块的具体实现,则肯定需要对实现细节一一研究,比如上篇文章提到的CAN接收和发送的前提条件有哪些,是什么。接下来我们来CAN接口模块的发送和接收操作:

1

 发送操作

由前面内容可知

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值