您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



文章 咨询 工具 课程  
会员   
   
软件架构设计方法、案例与实践
9月24日-25日 北京+线上
AI辅助软件测试方法与实践
9月26日-27日 北京+线上
SysML和EA进行系统设计与建模
11月19-20日 北京+线上
   
 
 订阅
AUTOSAR AP & CP 开发的异同剖析
 
作者:不可说
  69  次浏览      5 次
 2025-9-9
 
编辑推荐:
本文主要介绍了AUTOSAR AP与CP 开发的异同剖析相关内容。希望对您的学习有所帮助。
本文来自于微信公众号汽车电子与软件,由火龙果软件Alice编辑、推荐。

一、AUTOSAR CP与AP架构的推出

AUTOSAR CP与AP架构当前都是行业热门话题,简单来说都是汽车电子软件标准中间件架构,适用于不同的场景;

其实,CP架构主要干了两件事:标准化接口与模块化设计:

标准化接口:AUTOSAR CP架构通过定义统一的软件架构和接口,使得不同供应商开发的ECU能够基于同一标准进行开发,从而提高了系统的可移植性和互操作性。这有助于减少因接口不一致导致的兼容性问题,降低系统维护的复杂性和成本。

模块化设计:AUTOSAR CP架构将汽车软件系统划分为不同的软件组件,每个组件都有明确定义的接口,易于模块化开发和维护。这种设计方式使得开发人员可以更加专注于各自领域的开发,同时也方便了系统的升级和扩展。

所以,在做新车型开发时,可以复用/重用之前的开发产出,即便是不同供应商完成的;可以大大的减少重复开发的工作量,提高了开发效率。不过,同步的,CP架构也在一定程度上保证了汽车电子软件的功能安全和信息安全。

既然有了CP 架构,为什么同一个组织又推出了AP架构呢?

我理解是最近5-8年左右,汽车软件系统的复杂性和功能需求急剧增加,比如适应时代需求的智慧座舱、智能驾驶等的发展。传统的CP架构虽然在一定程度上解决了汽车电子系统的标准化和模块化问题,但在面对高度灵活、高性能、动态通信等需求时显得力不从心。

所以AP架构的关键特点在于:动态、灵活,支持高性能计算,整体架构的设计思想与SOA(Service-Oriented Architecture,面向服务的架构)就是保持一致的,都是基于服务的动态配置、请求:

动态部署和配置:AUTOSAR AP架构支持应用程序的动态部署和配置,使得软件系统的更新和升级更加灵活和高效。这有助于OEM/Tire1快速响应市场需求和技术变化,提升产品的竞争力。

高性能计算:随着汽车智能化程度的提高,对计算性能的要求也越来越高。AP架构能够充分利用多核异构处理器的计算能力,为汽车软件系统提供强大的计算支持,满足复杂应用的需求。

CP架构与AP架构在现如今的汽车电子中是相互依存的,这也是由于他们的特性决定的,下面就从几个方面分析下不同特性的他们在开发SOA或非SOA架构过程有哪些异同点。

二、硬件层面

1)芯片

由于AP要求高算力,所以一般要求是芯片达到SoC或者MPU,算力要求一般高于18000 DMIPs,比如瑞萨的H3,英伟达的Xavier、高通的8155、8295、NXP S32G系列、芯弛G9Q、G9H等,或者是由高算力平台虚拟出来的硬件平台也是可以的,比较灵活;

CP对算力要求比较低,在一般的MCU上部署就可以了,如英飞凌的TC377、TC387,瑞萨的RH850等,也可以部署在高算力异构SoC的M核或者R核上;

2)硬件相关配置

因为CP架构的应用一般不一定伴随着SOA的应用,如果没有SOA,没有以太网应用,就可以不去配置Ethernet 信息,如通道路由、VLAN、IP,而AP的理念遵循面向服务的架构SOA设计范式,所以一般需要配置Ethernet 信息;

再一个就是Machine的配置,Machine的概念是在AP里才有的,Machine是指一个能够运行自适应应用程序的实体,它包含了必要的硬件资源(如处理器、内存等)和软件环境(如操作系统、运行时环境等)。Machine为自适应应用程序提供了一个运行平台,支持应用程序的动态部署、执行和管理。它允许应用程序在运行时动态地链接服务和客户端,实现功能的灵活扩展和更新。有点类似与虚拟机的概念,可以这么理解下。

所以,在AP中,需要配置Machine,并指定占用芯片的core、内存资源等;当然也要配置其所属功能组(FunctionGroup)与模式状态(MachineMode),这些都是AP专有的。

三、软件架构层

1)操作系统

CP AUTOSAR OS是基于OSEK标准的,蛮多都是RTOS。

AP AUTOSAR OS是POSIX OS,按照AUTOSAR官方文档说明,系统要包含POSIX 51子集,所以其实Linux、QNX、Android都可以部署AP架构;

2)架构Block

CP Block视图

CP架构有明显的层级关系,从上到下,依次是应用层SWC、RTE、BSW、微控制器层(HW);实际运行过程中也严格遵守这种层级关系;BSW模块是与硬件相关的以及通用系统功能,应用功能定义为独立的软件组件SWC,用RTE分离SWC和BSW。,在实际开发分工中也是与此架构层级有关,如应用层软件工程师、BSW开发工程师等;

AP Block视图

但是在AP中,并没有明显的层级关系,这些模块都称为功能集群(Functional Clusters, FC),大部分的功能模块都属于基础功能Foundation的部分,NM、SM、UCM模块是属于服务功能Service的部分。NM、SM在上图中的Runtime范畴中,UCM在上图中的Configuration范畴内;模块之间都是通过服务接口调用的,如下图NM、SM之间的交互(ARA(AUTOSAR Runtime for Adaptive Applications)):

四、系统层

1)系统调度

CP AUTOSAR OS采用了固定的任务调度配置策略,这一策略中,系统负责调度并管理OS Task中定义的、来自SWC(软件组件)的可运行实体(Runnable Entities)。这些可运行实体,例如标记为10ms Runnable和20ms Runnable的实体,按照预设的任务顺序进行执行。在同一SWC内部,不同的可运行实体还可以被进一步设定不同的优先级,以确保它们在执行时能够按照预期的优先级顺序进行处理。

AP AUTOSAR支持多进程机制,其调度策略是动态的,意味着系统能够根据实际情况灵活调整进程或线程的执行顺序。这种动态调度配置是在运行时完成的,即系统在运行过程中根据需求进行配置调整,而不是在编译时或系统启动前固定。

配置信息被记录在与状态管理(State Management, SM)相关的Manifest文件中。这些文件作为系统的元数据,详细描述了系统的配置状态,包括但不限于进程、线程、资源分配等关键信息。

在实现动态调度方面,AP AUTOSAR主要依赖于两个核心模块:执行管理(Execution Management, EM)和状态管理(SM)。执行管理模块负责具体的任务调度工作,确保系统内的各个任务(或称为Process、Thread)能够按照预定的或动态调整的策略执行。状态管理模块则负责监控和记录系统的状态信息,为执行管理提供必要的决策依据,同时也将配置信息和维护状态记录在Manifest文件中。

2)Manifest

CP中的配置都是静态定义好的,所以并不需要Manifest的概念;

在AP中,使用Manifest描述软件配置的关键组件,比如以下几种Manifest:

Application Design Manifest:

描述所有设计相关的建模,侧重于数据类型、服务接口、Persistency接口、序列化属性、服务接口等方面的定义。Application Design中定义的artifacts独立于特定的部署,方便在不同的部署场景下复用软件实现。

Execution Manifest:

用于提供将应用部署到AP所需的信息,使得应用软件代码尽可能独立于部署的环境,增加软件复用的几率。Execution Manifest控制应用的实例化,包括在同一台机器上实例化多次、将应用部署到多台机器上并在每台机器上实例化等。还定义了启动配置、资源管理(特别是分配Resource Group)以及面向服务通信的配置等。

Service Instance Manifest:

侧重于服务接口和实例的部署配置。定义一个服务如何在特定的通信技术(如SOME/IP)中表示,以及服务实例在特定通信技术中所需的凭据、E2E保护配置、安全保护配置、日志配置等。

Machine Manifest:

允许针对特定的硬件(Machine)配置AP实例。侧重于网络连接配置(如静态IP地址或DHCP配置)、服务发现配置、机器状态定义、功能组定义、FC实现配置(如操作系统提供的用户列表)、Crypto平台模块配置、PHM(Platform Health Management,平台健康管理)配置、时间同步配置以及可用硬件资源描述等。

五、软件层

1)开发接口

CP AUTOSAR常用的接口是Sender-Receiver,涉及服务的,如SOA服务会用到Client-Server;

基于AP AUTOSAR开发的是Service Interface类型;

CP AUTOSAR主要使用的是C语言,相关的标准是MISRA C。

AP AUTOSAR主要使用的是C++语言,当前支持C++11、C++14。

2)软件配置

AP AUTOSAR应用层需要进行Mapping配置,如,InstanceToMachineMapping:是把服务的实例与Machine关联上,指定服务实例运行的Machine;InstanceToPortProtoTypeMapping:指定服务实例对应的Port类型,即说明该服务通过该port是提供服务还是请求服务;这些在CP开发中是没有的;

另外,因为AP是通过进程进行应用管理的,所以需要配置Executable、Process等信息,可以类比为电脑的EXE执行文件的配置。

六、小 结

由上述的系列分析可以明确,CP与AP在开发过程及其所需环境方面展现出显著的差异,这些差异深植于它们各自成立时所设定的目标之中。鉴于两者都是当前汽车行业广泛采用的软件架构模式,作为该行业的从业人员,掌握如何更有效地学习和应用这些架构显得尤为重要。

   
69 次浏览       5
相关文章

中央计算的软件定义汽车架构设计
汽车电子控制系统中的软件开发过程
一文读懂汽车芯片-有线通信芯片
OTA在汽车上有哪些难点痛点?
相关文档

汽车设计-汽车的整体结构及动力系统
自动驾驶汽车软件计算框架
SysML在汽车领域的应用实践
电子电气架构-大陆汽车系统架构平台
相关课程

AutoSAR原理与实践
功能安全管理体系(基于ISO26262)
MBSE(基于模型的系统工程)
基于SOA的汽车电子架构设计与开发

最新活动计划
基于 UML 和EA进行分析设计 9-9[北京]
软件架构设计方法、案例实践 9-24[北京]
AI辅助软件测试方法与实践 9-26[北京]
代码质量标准与评审方法 11-6[北京]
OCSMP认证:OCSMP-MBF 11-18[北京]
Web应用安全、入侵检测 12-11[北京]
 
 
最新文章
ASPICE中配置管理是个什么东西?
了解软件安全分析与组件鉴定
掌握Autosar ComStack的精髓!
基于整车功能的正向诊断需求开发
搞定Autosar SWC开发秘籍,码住!
汽车OTA更新的系统性威胁评估
最新课程
基于SOA的汽车电子架构设计与开发
Auto SAR原理与实践
AUTOSAR架构与实践(从CP到 AP )
AUTOSAR架构建模方法与工具(EA)
ASPICE4.0核心开发过程指南
MBSE(基于模型的系统工程)
更多...   
成功案例
某知名车企 AUTOSAR应用设计与开发
吉利汽车 MBSE工程体系汽车建模及评估
某整车企业 《功能需求分析与设计》
富奥汽车零部件 建模工具EA
零跑汽车 建模工具EA及服务
北汽福田 建模工具EA
小鹏汽车 建模工具EA
更多...