学习记录:AP & CP AUTOSAR
AP & CP AUTOSAR
一、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功能组依赖关系
四、参考文章
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)