【技术进阶】|一文掌握Autosar ComStack的精髓!

目录

 

往期推荐

Autosar ComStack概述

区分I-PDU, N-PDU和 L-PDU

SDU 与 PCI

常见的AUTOSAR通信协议

AUTOSAR架构中的CAN通信栈

AUTOSAR Com Stack各模块的角色

Com模块:“将信号打包成PDU”

PduR模块:“将PDU路由到不同的通信协议”

 CanTp模块:“执行大PDU的分段”

CAN TP模块提供的基本服务包括对负载超过8字节的消息进行分段,流控制下的消息传输,以及在接收端重新组装分段消息。

 CanIf模块:“将PDU映射到对应的CAN ID”

CAN接口(CANIF)是ECU抽象层中的一个模块,负责传输请求、传输确认、接收指示、控制器模式控制和PDU模式控制等服务。

 Can模块:“访问微控制器寄存器以在物理总线上发送实际的CAN帧”

该模块是MCAL层的一部分,为上层服务提供硬件访问,并为上层提供与硬件无关的接口。CANIF是唯一可以访问CAN驱动程序的模块。

AUTOSAR通信组件的常见使用场景

AUTOSAR通信(COM)模块在汽车软件开发中发挥着几个重要作用:

AUTOSAR COM信号

交互层--PDU接收

AUTOSAR COM信号组

COM中信号组传输的简化模型

COM中信号组接收的简化模型

PDU组(协议数据单元)

 信号网关

 Large Data Type

通信管理关键模块和通信状态

 ComM(通信管理器)

ComM 在system stack中的主要功能概览:

 ComM_RequestComMode:

 PDU 路由器模块

PDU 从应用层通过 AUTOSAR 通信栈层的简化示例:

 CanSM (控制器局域网状态管理器)

BSWM (基本软件模式管理模块)

EcuM (ECU 管理模块)

通信模式

完全通信(Full Communication)

静默通信(Silent Communication)

 无通信(No Communication)


往期推荐

  1. ETAS工具链自动化实战指南<一>
  2. ETAS工具链自动化实战指南<二>
  3. ETAS工具链自动化实战指南<三>
  4. AUTOSAR工程师必读:Artop的核心功能
  5. Vector工具链自动化实战指南<一>
  6. isolar高手秘籍| ECU Configuration三分钟速成!
  7. 掌握核心步骤:RTA-BSW以太网配置全解析
  8. 一文详解TC399 CAN MCAL 配置
  9. LSL常见应用场景及示例<一>
  10. LSL常见应用场景及示例<二>
  11. LSL常见应用场景及示例<三>
  12. 为什么Autosar钟情arxml而非json?大揭秘!

Autosar ComStack概述

在AUTOSAR的分层架构中,通信栈(ComStack)促进了车载网络通信。因此,ComStack可以定义为一个为基础软件模块和应用层/应用软件提供通信服务的软件栈。

 一个典型的AUTOSAR通信栈的模块分布在基础软件层的三个子层中:

  • 服务层
  •  ECU抽象层
  • 微控制器抽象层 (MCAL)

在AUTOSAR中,通信栈是一组模块,如:

  • COM模块(服务层)
  • PDU路由器模块(服务层)
  • 特定总线接口模块(ECU抽象层),如CanIf、LinIf、FrIf等
  • 外部总线驱动程序(ECU抽象层)
  • 内部总线驱动程序(MCAL层)

图片

ECU通过不同的网络(如CAN、LIN、FlexRay等)发送消息,这些消息被称为PDU(协议数据单元)。

图片

应用程序发送或接收的数据项被映射为signals。

图片

区分I-PDU, N-PDU和 L-PDU

在各层之间传输PDU时,PDU会根据所在的层被赋予相应的名称。PDU的名称包括I-PDU(交互层PDU)、N-PDU(网络层PDU)和L-PDU(数据链路层PDU)。

  • 当PDU位于通信硬件抽象层之上时,称其为I-PDU。

  • 当PDU位于PDUR以下且通信驱动程序层之上时,称其为N-PDU。

  • 当PDU位于通信硬件抽象层之下时,称其为L-PDU。

SDU 与 PCI

SDU是服务数据单元(Service Data Unit)的缩写,PCI是协议控制信息(Protocol Control Information)。

SDU代表要传输的数据。在传输过程中,SDU与PCI一起从上层移动到下层。在接收时,SDU从下层提取并转发到上层。PCI包含有关SDU下一个目的地的重要信息,主要包括SDU的源和目的地的详细信息,指示PDU(协议数据单元)应传递到的下一个层级。

简单来说,PDU在上层和下层之间传输,包含SDU和PCI。

图片

常见的AUTOSAR通信协议

CAN(Controller Area Network)是一种广泛使用的汽车通信协议,以其高速和可靠性著称。它通常用于安全关键的应用,如刹车和转向控制。

FlexRay是一种高速汽车通信协议,以其确定性和鲁棒性而闻名。它通常用于需要高带宽和保证消息传递的应用,如动力总成和底盘控制。

LIN(Local Interconnect Network)是一种低成本的汽车通信协议,通常用于不需要高带宽的应用,如气候控制系统和信息娱乐系统的控制。

MOST(Media Oriented Systems Transport)是一种高速汽车通信协议,通常用于音频和视频应用。

Ethernet以太网是一种广泛使用的网络技术,在汽车应用中越来越受欢迎。它通常用于需要高带宽和与外部网络连接的应用,如远程信息处理系统和信息娱乐系统。

AUTOSAR通信栈可以支持多种通信协议,具体取决于应用的需求。这使得AUTOSAR通信栈可以用于各种配置不同的车辆。

选择通信协议时需要考虑以下因素:

  • 需要传输的数据类型:某些协议比其他协议更适合某些类型的数据。例如,CAN非常适合传输小而简单的消息,而FlexRay则更适合传输大而复杂的消息。

  • 带宽要求:系统的带宽要求将决定通信协议必须支持的最大数据传输速率。

  • 可靠性要求:系统的可靠性要求将决定通信协议必须提供的错误检测和纠正级别。

  • 硬件成本:实现通信协议的硬件成本也是选择过程中的一个因素。

如下所示:是不同车载网络协议的汇总比较信息:

图片

AUTOSAR架构中的CAN通信栈

当目标总线类型为符合AUTOSAR的软件是CAN时,ComStack实现会针对CAN总线进行执行。从接口(IF)和状态管理器到低级驱动程序,这些模块都需要为CAN总线进行配置。

CAN通信栈的不同模块列表:

  • AUTOSAR COM(服务层)

  • PDU Router(服务层)

  • CAN State Manager(服务层)

  • CAN Network Manager(服务层)

  • CAN Transport Protocol (服务层)

  • CAN Interface(ECU抽象层)

  • CAN Transceiver Driver(ECU抽象层)

  • CAN Driver(MCAL层)

图片

AUTOSAR Com Stack各模块的角色

  1. Com模块:“将信号打包成PDU

AUTOSAR COM是RTE和PDU路由器之间的一个模块。它基于OSEK COM规范,提供一个统一的CAN网络接口。它负责为应用层提供信号级访问,并为底层提供PDU级访问,无论协议如何。在发送端,它将信号打包成PDU;在接收端,它解包接收到的PDU,以提供信号级访问。COM在PDU级别负责对PDU进行分组,并启动/停止PDU组。

  1. PduR模块:“将PDU<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值