一、Overview

AUTOSAR的全称是:AUTOmotiveOpen System Architecture(中文名称:汽车开放系统架构),最近十几年的时间最火的汽车电子软件开放架构标准,从2003年左右最早的AUTOSAR标准(一开始没有AP的概念,AP的概念最早是在17年正式出现的)诞生到今天不更新中,无论是国内做AUTOSAR工具的服务商还是国外的都在不断更新自己的方案

1、AUTOSAR致力于

  • 标准化ECU的软件架构
  • 将技术设计元素整合为一个标准
  • 硬件和软件将彼此独立
  • OEM与供应商之间的SW灵活交换
  • 平台定义的分层体系结构:应用程序–中间件–硬件

2、AP AUTOSAR产生的背景

  • 自动驾驶乃至无人驾驶的到来
  • V2X的应用
  • 车要与云端进行连接
  • 车内数据量的增加

3、AUTOSAR 官网

官网地址:AUTOSAR 

二、CP AUTOSAR

1、CP AUTOSAR的思想和方法论

2、CP AUTOSAR架构

下图基本涵盖了CP AUTOSAR整体架构的分层思想

在CP AUTOSAR架构(软件)里,主要分为三层:

  • Application Layer
  • AUTOSAR Runtime Environment (RTE)
  • Basic Software (BSW)

3、CP AUTOSAR主要功能模块

内容:

SCHM模块

SCHM模块集成在RTE内,调用每个BSW模块的主函数,并给临界区提供相关的函数。对于通过分区和内核边界的BSW分配(主卫星概念),SCHM可以提供和RTE模块基本相同的通信接口

SYS模块

1、BSWM

包含了车辆的模式管理和应用模式管理,处理来自于SWC模块和其他BSW模块的模式请求,同时根据模式请求的仲裁结果,执行模式转换或具体的行为等。同时BSWM可以与ECUM模块关联,控制ECU的启动和关闭,BSWM模块还可以协调多核系统的不同分区。

2、COMM

COMM模块根据应用程序的通信需求协调不同网络以及局部网络间的通信。对通信具有使能和禁用控制。

3、CSM

CSM模块提供接口用于SWC访问基础加密函数。个别加密算法在CRY模块通过软件或者硬件实现。

4、DBG

调试模块使得外部访问可以获得基础软件的内部信息,也用于修改内存数据。

5、DET

DET模块用于支持在软件开发过程中的错误调试。它提供了一个错误提示接口,这一接口会在错误发生的时候被对应的BSW模块调用。

6、DLT

DLT模块用于支持在软件开发过程中的错误调试,提供了一个错误提示接口,这一接口会在错误发生时被BSW模块调用。

7、ECUM

ECU状态管理负责ECU的启动和关闭,同时还管理ECU的唤醒机制。支持Fixed和Flex两个版本的配置。Fixed的配置ECUM管理一些预定义好的运行状态。通过Flex的配置可以在BSWM中定义运行的状态,实现特殊的节能状态和多种启动类型。多核系统中,ECUM还可以协调管理不同的内核。

8、STBM

同步时基管理可以确保时间的同步,从AUTOSAR 4.2开始,由时间主站提供的时间基准可以通过总线系统实现不同ECU之间的同步。

9、TM

TM模块用于测试函数运行时间和实现动态等待功能,可以提供从1微秒到4.9天的精度。

10、WDGM

看门狗管理模块监测ECU应用程序的可靠性和功能安全。包含对SWC和BSW正确执行的监测以及在需要的时间区间触发看门狗。WDGM模块还可以对多个升级阶段中潜在的错误行为进行反应。根据ISO26262标准,该模块有一个重要的安全相关的功能,即对关键任务正确执行顺序监测(逻辑监测)。对于功能安全相关的ECU,WDGM模块必须遵循ISO26262标准进行开发。

11、WDGIF

该模块为访问看门狗驱动(WDG)提供统一的服务,包括看门狗模式切换和启动。对于功能安全相关的ECU,WDGIF模块必须遵循ISO26262标准进行开发

DIAG模块

DIAG模块主要提供诊断相关的服务

XCP模块

XCP是一种上位机(PC工具)和下位机(ECU)之间的通信协议。它由ASAM组织提供规范,主要用于测量/标定/刷写和测试ECU

MEM模块

MEM模块主要提供内存操作相关的服务

COMMUNICATION模块

COMMUNICATION模块主要提供通信相关的服务

1、COM

COM模块给RTE提供了面向数据的信号接口。发送时,负责将信号放到特定报文的特定位置,并按照特定的报文发送方式将数据发送;接收时,直接将特定的PDU的特定位置的信号数据发送给SWC。该模块包含了对数据接收的监控机制,对数据发送的控制机制。

2、LDCOM

LDCOM模块负责优化大数据信号的路由,可以避免一些不必要的数据Copy。LDCOM模块常与SOMEIP/XF共同使用,用于数据序列化的转换。

3、IPDUM

该模块处理负责不同数据内容的PDU的复用。

4、NM

该模块提供了独立于总线方式的通用接口,访问具体的网络管理模块(CANNM/LINNM/FRNM/UDPNM)。此外,这一模块还负责同步不同网络上的ECU之间的通信系统关闭工作。

5、PDUR

PDU路由模块负责在总线系统和不同BSW模块之间分发通信包(PDU)。此外,该模块还负责不同总线间的PDU和TP-PDU的路由工作。

7、COMXF

该模块可以对RTE和COM模块的相互作用进行优化,实现对数据序列化和反序列化的操作。

8、SOMEIPXF

SOME/IP模块是一个远程进程调用和序列化协议,用于从其它ECU中调用服务,这些服务是通过SD模块事先从系统中获知。

9、E2EXF

通过E2ETransfer模块可以在RTE接口中,根据ISO26262标准,集成安全相关的信号的保护。相比于E2EPW,该模块使用了RTE标准的接口。

10、SECOC

SECOC模块可以用来发送和接收认证信息。那些未经认可的/重复的或被操作的信息可以被检测到。该模块是AUTOSAR加密方案的一部分

COMMUNICATION抽象模块

COMMUNICATION抽象模块主要对底层的通信驱动模块定义协议栈,参考“COMMUNICATION抽象层细化”

IOHWABS模块

I/O硬件抽象模块代表的是RTE和ECU I/O通信间的连接。它封装了I/O驱动,例如对ADC/DIO/PWM/ICU/OCU等MCAl模块的操作,通过该模块使得SWC能够访问I/O的信号

CDD

CDD是没有被AUTOSAR标准化的软件模块的统称,它可以访问BSW模块/RTE模块/MCAL驱动等

MCAL模块

MCAL模块主要提供诊断相关的服务,参考“MCAL模块细化”

  • COMMUNICATION抽象层细化

  • MCAL模块细化

三、Adaptive Platform(AP)

1、中间件

Adaptive Platform AUTOSAR是一个中间件

AP实现了 AUTOSARRuntime for Adaptive Applications (ARA),由两部分组成,Foundation 和 Service,主要针对自动驾驶和娱乐系统应用相关的标准;

2、标准化

  • 标准化了开发语言为C++。
  • 标准化了软件开发中使用到的接口等,如下图所示

总结如下:

AA:AdaptiveApplicaiton

1) AA之间或AA内部进程之间不得直接使用IPC(Inter Process Communication)进行通信

2) AA之间或AA内部进程之间的通信需要使用ara::com模块

3) AA可以使用PSE51接口

4) AA不可以使用非PSE51接口

5) AA与FoundationFC之间的通信使用ara::api(标准化了)

6) AA与ServiceFC之间的通信借助于ara::com

7) FC可以使用直接所有的OS接口

8) FC内部通过IPC(Inter Process Communication)进行通信

9) FC之间通过IFC(Inter Function Cluster)进行通信

3、Function Clusters

AP AUTOSAR的ARA由一系列的Function Clusters(FCs)组成。每个FC都有他们各自的功能,Foundation与Service部分都有各自包含的FC,软件平台概览如下图所示:

内容:

Foundation部分(11个)

Operating System Interface(OSI)

规范操作系统接口(POSIX PSE51/C++ STL)

Execution Management(ara::exec)

1、平台生命周期管理

2、应用程序生命周期管理

Communication Management(ara::com)

负责Application直接通信(面向服务的通信)

RESTful(ara::rest)

1、一个framework

2、建立Adaptive Application直接的通信路径

3、确保与非AUTOSAR的操作性(ara::rest可以与移动HTTP/JSON Client进行通信)

Diagnostics(ara::diag)

1、实现基于ISO 14229-1(UDS)和ISO13400-2(DoIP)的ISO14229-5(UDSonIP)

2、配置基于CP中的DEXT(诊断提取模板)

3、The Adaptive Autosar Diagnostic Manager is theequivalent of the Diagnostic Stack in Classic Autosar (DCM & DEM).

Persistency(ara::per)

1、为AP应用程序和其他FC提供了将信息存储在AdaptiveMachine的非易失性存储器中的机制

2、提供了方位非易失性存储器的标准接口

Time Synchronization(ara::tsync)

提供时间同步功能(CP是StbM)

Identity and Access Management(ara::iam)

1、为Service Interface,AP Foundation FC 以及Adaptive Application的请求提供访问控制framework

2、旨在在运行时强制执行对AUTOSAR资源的访问控制

Cryptography(ara::crypto)

用于通过加密操作和安全密匙管理

Log and Trace(ara::log)

负责记录AP AUTOSAR的日志

Platform Health Management(ara::phm)

对Application进行监督,并在发生故障时采取“补救措施”

Service部分(3个)

State Management(ara::sm)

负责AP运行状态的所以方面(处理传入事件,设置相应状态等)

Network Management(ara:nm)

1、协调“内部协调状态机”中基础网络的整车运行和总线睡眠模式之间的转换

2、通过状态管理进行控制(为状态管理提供一个服务接口)

Update and Config Management(ara::ucm)

提供处理软件更新请求的AP服务(AP要使用OTA)

4、 AP功能组依赖关系

四、参考文章

汽车电子与软件 - 系列分享
详解AUTOSAR分层架构与软件组件

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐