一文了解汽车嵌入式AUTOSAR架构

AUTOSAR (Automotive Open System Architecture)是一个由丰田、宝马、大众、福特、戴姆勒、通用、博世和 PSA 等汽车巨头在 2003 年成立的的联盟,Autosar 旨在为汽车 ECU 提供标准化的开放软件架构。
在缺乏通用标准的情况下,ECU 软件开发在不同的平台上进行。不同供应商使用不同的软件架构为 OEM 设计 ECU 软件。这种方式会导致OEM 想要切换到新的供应商,变得比较困难。新供应商过去在理解 ECU 软件开发中使用的现有软件架构、硬件平台和标准方面可能不适用于当前OEM。

如下展示了AUTOSAR的目标、主要挑战和解决方案以及这些解决方案所带来的好处。

  • 处理与系统相关的快速增长的电气/电子复杂性;

  • 产品修改、升级和更新的实施灵活性;

  • 提高软件解决方案的可扩展性和交叉兼容性;

  • 提高系统的软件质量和可靠性;

  • 在早期开发阶段启用错误检测。

AUTOSAR 架构

AUTOSAR 是一个由汽车行业标准化的开放软件架构。Autosar 架构规定了应用软件和基本车辆功能之间的标准接口。旨在为成员提供标准的架构,以管理日益复杂的 E/E 车载环境。
Autosar 是一种分层软件架构,描述了一种自顶向下的 AUTOSAR 软件层次结构方法,并将基础软件模块映射到软件层,以及显示它们之间的关系。

Autosar架构的意义

现代车辆中电子/电气系统的数量和这些系统的复杂性正在增加。车辆网络日益复杂是 AUTOSAR 发展背后的动力。

现代车辆每辆都有 一百多个 ECU 。它们中的每一个都有大量的功能。不遵循标准,当ECU硬件设计改变时,软件开发最有可能要重写。

Autosar标准化组件交互使软件开发更加独立于硬件,标准软件的更具有可移植性。这意味着软件可以很大程度上独立于系统的底层硬件,并且在不同的车辆系统之间共享。在过去大多数组件软件都是根据硬件来开发的。AUTOSAR通过实现应用软件和硬件之间的标准化接口来减少这种限制,从而允许使用与硬件无关的组件软件。该标准接口允许应用软件利用虚拟功能总线(VFB)进行通信。
图1 VFB 与应用软件的通讯

AUTOSAR 的应用范围专用于汽车 ECU,并具有以下特性:

  • 与硬件(传感器和执行器)的强交互,

  • 连接到车辆网络,如 CAN、LIN、FlexRay 或以太网,

  • 计算能力和内存资源有限的微控制器。

  • 时间关键的系统和实时程序从内部存储器执行。

分层 Autosar 架构概述

AUTOSAR 架构在三个软件层之间的最高抽象级别上进行了区分:应用层,运行时环境,基础软件。

应用层

应用层是 AUTOSAR 软件架构的最顶层,支持自定义功能实现。该层由特定的软件组件和许多应用程序组成,它们是一组相互连接的 AUTOSAR 软件组件,并按照指令执行特定任务。

每个 AUTOSAR 软件组件都封装了完整应用软件的部分功能。AUTOSAR 没有规定 AUTOSAR 软件组件有多大。根据应用程序的要求,AUTOSAR 软件组件可能是一个小型的、可重复使用的功能,例如车道保持辅助、雨刷控制、自动门解锁等。

软件组件之间的通信是通过使用虚拟功能总线的特定端口实现的。这些端口还可以实现软件组件和 AUTOSAR 基础软件 (BSW) 之间的通信。

  • 客户端-服务端通信:客户端可以通过支持操作的服务端发起操作的执行,服务端执行操作并立即将结果提供给客户端(同步操作调用)。

  • 发送者-接收者通信:这是一种异步通信模式,其中发送者提供一个或多个接收者所需的数据。
运行时环境 (RTE)

RTE 层为应用软件组件提供独立于 ECU 的接口,为应用软件组件(SWC)提供通信服务。

SWC 接口完全独立于 ECU。它使 AUTOSAR 软件组件独立于到特定 ECU 的映射。SWC 之间的通信主要通过两种端口进行。
  • 客户端/服务端端口,其中服务端是服务的提供者,客户端是服务的用户。
  • 发送方/接收方端口,发送方将信息发送到一个或多个接收方。

AUTOSAR 基础软件 ( BSW ) 进一步分为三层:

  • 服务层,

  • ECU抽象层,

  • 微控制器抽象和复杂设备驱动程序 (CDD)。

每一层都有不同的功能模块,不同层之间的模块交互都是指定的。

微控制器抽象层 (MCAL)

微控制器抽象层是基础软件的最底层,这意味着 MCAL 模块可以直接访问硬件资源。MCAL 包含内部驱动程序,这些驱动程序是直接访问 µC 和内部外围设备的软件模块。

顾名思义,MCAL 层使上层独立于 HW(MCU)。

ECU抽象层
ECU 抽象层为微控制器抽象层 (MCAL) 的驱动程序接口抽象,如通信、内存或 I/O,它还包含 ECU 内外部设备的驱动程序,并为各种外围硬件提供抽象。
复杂设备驱动层
复杂设备驱动程序 (CDD) 层从硬件层到 RTE。CDD 满足操作复杂传感器和执行器所需的特殊功能和时序要求。
提供集成特殊用途功能的可能性。该层由 AUTOSAR 中未指定的设备驱动程序组成。
服务层
服务层是基础软件 (BSW) 的最顶层,它也适用于应用软件。它为应用软件提供了一个独立的微控制器 (MCU) 和 ECU 硬件接口。
服务层提供:
  • 操作系统功能
  • 车联网通讯及管理服务
  • 内存服务(NVRAM 管理)
  • 诊断服务(UDS、错误处理、内存)
  • ECU状态管理、模式管理
  • 逻辑和时间程序流监控(WdgM)

AUTOSAR COM模块详细说明

本节列出了 AUTOSAR COM 模块所有功能模块。有关 AUTOSAR COM 模块在通信堆栈中的放置,请参阅下图。

COM模块
AUTOSAR COM是位于RTE和PduR之间的服务层模块,主要用于与RTE之间的信号交互,对信号进行打包和解包。另外在该模块中还可以配置IPDU的通信周期、通信周期偏移量、IPDU Group等。
PduR模块
PduR的作用是为通信协议栈中的不同总线的IPDU提供路由路径。例如它将接收的IPDU路由至COM、Dcm等模块,或者将COM模块需要发送的IPDU路由至CanIf模块,最后传送至芯片的CAN Driver,将信号发送至总线。
CanTp模块
Tp表示传输协议。该模块是特定于总线,其配置取决于基础总线协议,可以是CAN、LIN、CANFD等总线。该模块主要用于长报文的分段发送,以及对分段报文进行重组。
Bus SM 模块
总线状态管理模块负责相应总线状态机的管理和总线故障的处理。它可以基于CAN总线的CanSM,或者是基于LIN总线的LinSM等。
Bus Trcv Driver模块
它是ECU抽象层的一部分。它可以是用于CAN收发器的CanTrcv,用于以太网收发器的EthTrcv,用于Flexray收发器的FrTrcv等。此模块用于对收发器进行初始化配置,它提供独立于控制器硬件的用于启动传输的服务和用于通知接收事件的回调函数。
Bus Driver

该模块是AUTOSAR MCAL层的一部分(例如:CanDrv,LinDrv,FrDrv),它实际上与ECU的底层硬件进行交互,并为其上层提供独立于硬件的接口。此模块取决于硬件,并且驱动程序代码可能会根据基础硬件而有所不同。BusIf是唯一可以访问此总线驱动程序的模块。

多核微控制器的分层软件架构

随着汽车领域对计算资源的需求越来越高,OEM和Tier 1正在逐步引入多核 ECU 在其电子架构中的使用。此外,这些多核 ECU为新功能的引入提供了基础, 例如功能安全要求的实施。

AUTOSAR 4.0 版引入了对多核嵌入式 RTOS 的支持。AUTOSAR 4.0 规范中引入了多核启动/关闭、核间通信 (IOC) 等新概念,以扩展单核操作系统规范。

改进后的 Autosar 架构如下所示:

在软件开发符合 AUTOSAR 的每个阶段,都涉及各种工具,以确保生成的界面符合标准。下面的流程图表示了一个简短的 Autosar 开发流程。尽管此图并未涵盖适用于所有软件模块的开发流程。

功能安全

系统的安全性取决于特定功能的预期操作。功能安全标准 ISO26262 源自 IEC-61508,指导我们采用基于汽车特定风险的方法来开发电气和电子 (E/E) 系统。功能安全的目标是正确执行预期操作,否则系统将发生故障并转移到可预测的安全状态。软件是影响系统级复杂性的参数之一。可以使用软件开发的新技术和概念来最小化复杂性,从而有助于实现功能安全。AUTOSAR R4.0 考虑了对现代汽车软件开发很重要的功能安全方面。

Autosar下有很多开发方法来检测和报告软件开发每个阶段的功能错误。即使功能安全在整个产品开发的每个阶段都适用并遵循,直到涉及到用户。

以下是导致 E2E 保护检测到的错误的典型干扰源列表:

SW相关来源:

S1。大多数生成的 RTE 中的错误,

S2。部分生成和部分手动编码的 COM 中的错误

S3. 网络堆栈错误

S4. 生成的 IOC 或 OS 出错

硬件相关资源:

H1。硬件网络故障

H2。网络电磁干扰

H3. 上下文切换期间或内核之间通信时的微控制器故障

开发 SWC 接口时采用的一个实用方法示例是为数据正确性提供端到端保护。

对于每个传输安全相关数据的 RTE Write 或 Read 函数(如 Rte_Write_<p>_<o>()),都有对应的 E2E 保护封装函数。

  1. 封装函数调用 AUTOSAR E2E 库。

  2. 包装函数是软件组件的一部分,最好是生成的。

  3. 封装函数与相应的 RTE 函数具有相同的签名,只是代替Rte_ 的是E2EPW_。

  4. E2EPW_ 函数由 SW-C 的应用逻辑调用,封装函数执行保护/检查并在内部调用 RTE 函数。

  5. 对于 ECU 间通信,通过 E2E 保护发送的数据元素是按字节数组。字节数组被复制到 COM I-PDU 而不做任何更改。

ECU 设计和配置方法

AUTOSAR 为系统开发步骤提供了一种通用的技术方法。该图显示了使用 AUTOSAR 技术构建 ECU 的设计步骤概览。这意味着必须为系统中的每个 ECU 执行这些步骤。

需要注意的是,AUTOSAR 没有规定执行开发活动的精确顺序。Autosar 既不讲述流程,也不讲述商业模式和“角色”和“责任”。

下图是通常遵循的工作流程的示例。下图分别描述了 BSW 和应用软件的开发流程。

此阶段的主要活动是从系统配置描述中提取特定于 ECU 的信息、ECU 配置以及可执行 ECU 软件的生成。以下部分将更详细地描述这些活动。

提取特定于 ECU 的信息

AUTOSAR ECU Configuration Extractor工具(例如 System Desk,Da-Vinci)从特定 ECU 所需的系统配置描述中提取信息。这是映射到此特定 ECU 的系统配置描述的所有元素的一对一副本。输出是系统配置的 ECU 摘录。网络数据库(例如 CAN.dbc)文件是生成 ECU 提取物 (.arxml) 的输入。

配置(BSW)ECU

ECU 配置主要处理RTE 和基础软件模块的配置。该配置基于系统配置的 ECU 摘录中可用的参数。可用 SWC 实现和 BSW 模块描述的集合。BSW 还包含供应商特定的 ECU 配置。这是必要的,因为输出 ECU 配置描述具有灵活的结构,在 ECU 提取时不定义固定数量的配置参数。

必须在 BSW 配置期间定义通信模块、MCAL、操作系统或 AUTOSAR 服务。

软件组件实现

SWC 的初始工作从提供软件组件描述 [SWCTempl] 的必要部分开始。即组件内部行为描述作为软件组件相关模板的一部分。内部行为描述了组件的调度相关方面,即可运行实体及其响应的事件。此外,行为指定组件(或更准确地说是哪个可运行组件)如何响应接收到的数据元素等事件。但是,它没有描述组件的详细功能行为。


(0)

相关推荐

  • 圈外人看E2E保护

    安全在每个领域都是一个永恒的话题,汽车也不例外,而随着最近几年汽车电动化.智能化和网联化的发展,汽车安全也越来越受到用户及开发人员的重视,安全的要素也是多方面的,例如用户可能关心在使用车机系统时的隐私 ...

  • 基于AUTOSAR架构的汽车诊断通信协议桟的开发

    来源:乔美昀 , 韦天文/上汽通用五菱汽车股份有限公司 随着现代汽气车上集成的ECU越来越多,整车网络戒来越复杂.诊断通信作为车载网络中的一个重要功能,开发周期和难度也不断增加.为了提高软件的复用率和 ...

  • 《论文翻译》汽车域控制器架构-一种大规模软件集成汽车系统的新方法

    本文共6780字,预计阅读时间17分钟 看大家最近都比较关注汽车域控制器,我这做硬件的也不是很懂这些东西,今天就翻译一篇德国-雷根斯堡应用科学大学的一篇论文 <Domain Controlled ...

  • AutoSar在自动驾驶开发中应用原理(二)

    Aimee 自2002年开始开发以来,AUTOSAR已在汽车行业确立了自己的地位,成为软件基础结构和系统描述的全球标准,具有连续的设计流程和标准的交换格式,供所有参与的开发合作伙伴使用.从2009年推 ...

  • 基于Autosar的SOA软件开发设计详解

    知圈 | 进"域控制器群"请加微13636581676,备注域 面向服务的架构SOA的出现可以打破车内静态交互模型,并且建立功能灵活治理的系统架构.确保新增功能的实现可以与车辆原有 ...

  • Autosar VFB简介

    虚拟功能总线是对AUTOSAR提供的所有通信机制的一种抽象,是所有软件组件进行交互的桥梁.通过虚拟功能总线,软件组件之间的通讯细节被抽象出来,软件组件通过AUTOSAR定义的接口对通讯进行描述,即可最 ...

  • AUTOSAR基础篇之EcuM

    前言 当你看到ECU从启动状态至正常运行状态,再从正常运行状态至休眠或关闭的过程时,你是否曾想过以下一些问题呢? ECU是怎么启动或关闭的呢? ECU启动方式有没有一般规律呢? 按照AUTOSAR标准 ...

  • 170页PPT充分了解AUTOSAR分层软件架构

    AUTOSAR经典平台架构在最高抽象层次上区分了运行在微控制器上的三个软件层:应用程序.运行时环境(RTE)和基础软件(BSW): 应用软件层主要与硬件无关: 软件组件之间的通信和通过RTE访问BSW ...

  • 汽车软件危机,准备好了吗?

    软件在汽车中正发挥着越来越重要的作用.但是对于汽车企业来说,开发软件和维护软件正变得越来越耗时,若放任不管迟早将爆发"软件危机".其中主要原因是软件变型的数量太多.因此,急需在软件 ...

  • 208份AutoSar官方文档

    什么是AUTOSAR? 介绍一下: - AUTOSAR是由150多家汽车制造商和汽车供应商企业组成的联盟. - 它是AUTomotive Open System Architecture的简称. - ...

  • 揭示汽车软件的复杂性

    在汽车新四化的背景下,软件无可置疑的是汽车发展的核心部分.然而随着功能的不断增加,潜在的软件复杂性也在逐渐的增长,但是由于软件的不可见性,导致工程人员对软件复杂性的重要性不能充分理解. 然而随着时间推 ...

  • AutoSar在自动驾驶开发中应用原理

    Aimee 汽车应用软件开发已成为汽车开发过程中最复杂,最关键的活动.AUTOSAR(汽车开放系统架构)为汽车电子控制单元(ECU)开发了标准化的开放软件体系结构,是主机厂.供应商以及工具和半导体供应 ...

  • OTA 更新 - AP AUTOSAR 平台有哪些优势?

    后台回复"R20-11',获取最新AUTOSAR R20-11标准 在车辆开发中,使用软件实现新功能显然很流行.已经上市的车辆越来越多地采用最新的功能进行改装,例如与自动驾驶相关的功能.与此 ...