车载软件架构—CP和AP相同与不同

news2024/11/24 11:29:50

文章目录

  • 前言
  • 一、两者不同之处
  • 二、两者架构设计原则
  • 总结


前言

AUTOSAR(AUTmotive Open System ARchitecture) 是汽车电子E/E系统发展的一个重要的节点。该标准是由包括BMW、DAIMLER、GM、TOYOTA、福特等主机厂和包括博世、大陆等供应商牵头成立的一个标准发展组织定义的一个开放参考的ECU软件架构。

最初目的是为了避免反复重复开发功能相同相近的软件模块。使用独立于系统的标准软件平台,可缩短产品上市时间,减少开发工作,并可从同一组组件中开发出更多产品,提高产品质量,实现软件和硬件的解耦

无论是AP AUTOSAR还是CP AUTOSAR,提出该标准最初总体目标是一致的:

1、更好的管理数量增多,功能复杂度增加的汽车ECU; 

2、改善ECU软件质量和可靠性;

3、提升产品升级灵活性,缩短产品推向市场的时间;

4、可拓展的架构解决方案。

CP AUTOSAR与AP AUTOSAR标准提倡的内容是相同的:

1、汽车软件架构标准设计;

2、详细的底层软件模块设计;

3、汽车产品各域标准化数据描述;

4、适用于此架构的过程定义和软件工具链。

相同之处更多在于从宏观出发,落实到具体实现策略,则体现出不同之处。


一、两者不同之处

考量到两个软件架构主要的应用场景,对于芯片性能要求(实时性和算力):

CP AUTOSAR一般运行在8bit、16bit、32bit的微控制器(MCU)中,运行CP AUTOSAR 的芯片算力一般低于1000 DMIPs

AP AUTOSAR可以运行在64bit的高性能处理器(MPU)、CPU等中,,AP AUTOSAR也可以运行在虚拟硬件上,AP AUTOSAR可以运行在算力高于20000 DMIPs的芯片上。

CP AUTOSAR软件架构是分层的,有较为明显的上下层关系,详细可参考如下图所示:

如上图,体现的分层架构实现不同的功能(从下往上):

1、微控制器层(HW);

2、基础软件层(BSW):

  • 微控制器抽象层

  • ECU抽象层

  • 服务层

  • 复杂驱动

3、RTE层:体现了application的所有接口,软件模块间通过RTE交互,并通过RTE访问BSW;

4、Application层:不依赖于硬件。

 

对比CP AUTOSAR,AP AUTOSAR一般是指ARA(AUTOSAR Runtime for Adaptive Applications),主要由两部分组成:

  1. Foundation;

  2. Service。

具体示意如下图所示:

注:

所有的模块都称为功能集群(Functional Clusters, FC),蓝色的FC属于Foundation的部分,橘色的部分属于Service的部分。无论是Foundation部分的FC,还是Service部分的FC,都不是上下层关系。

 

二、两者架构设计原则

CP AUTOSAR架构设计原则为:

  • CP AUTOSAR将与硬件相关的以及通用系统功能定义为BSW模块

  • 应用功能定义为独立的软件组件SWC

  • RTE分离SWC和BSW

  • BSW可配置,并且可以被多个产品线的ECU重复使用

  • 不开源

AP AUTOSAR架构设计原则为:

  • 遵循面向服务的架构SOA设计范式(该理念非新创概念,原互联网中已使用成熟的应用理念,只是将应用场景变化到车载中)

  • 充分利用其他领域软件成熟技术,重用软件市场成熟组件,缩短开发周期

  • 充分利用各种开源软件(对比CP的不开源)

开发流程来看,CP与AP都主要都包括以下三个阶段:

设计阶段:设计ARXML;
代码生成:基于ARXML生成代码;
集成:集成Application,编译调试等

对于开发阶段,同样存在不同之处,详细如下::

AP AUTOSAR设计阶段,需要进行Service与Manifest的设计;CP AUTOSAR设计阶段,需要进行ECU配置设计,而AP没有ECU配置这个设计项。

CP 与AP开发流程如下图所示:

蓝色虚线框表示CP AUTOSAR的开发流程,绿色表示AP AUTOSAR的开发流程。

CP AUTOSAR是基于信号的通信,主要包括CAN、Lin、FlexRay等。

AP AUTOSAR是面向服务的通信,支持基于以太网的SOME/IP、IPC、RPC等。

CP AUTOSAR虽然可以支持SOME/IP,但是CP AUTOSAR中SOME/IP只不过是把Sender-Receiver的CAN通信转换成了Client-Server的以太网通信,整个通信链路仍是静态配置的,并不是真正的面向服务的通信。

PS: 传统嵌入式ECUs主要实现替代或增强电气系统的功能。这些ECUs中的软件主要根据输入的电气信号和来自车载网络上其他ECUs的输出信息来控制其输出的电气信号,它们在整个车辆寿命中往往不会发生明显变化。

而下一代的车辆运用,比如自动驾驶,将需求更复杂、更高计算资源的软件,并满足更严苛的integrity和security要求。这些软件需要实现比如环境感知、行为计划等功能,并需要将车辆融入到外部后台系统和基建系统中。随着外部系统的不断发展或改进的功能,要求车辆中的软件能够不断被更新。

 

Classic AUTOSAR(CP)满足了传统嵌入式ECU的需求,而上述ECU的需求无法满足。因此AUTOSAR指定了另外一个软件平台,即Adaptive AUTOSAR(AP)。AP更专注提供高性能计算和通讯机制,并提供灵活的软件配置,例如支持无线更新软件(FOTA)。

Adaptive AUTOSAR优势:

  • ECU更加智能:基于SOA通信使得AP中ECU可以动态的同其他ECU提供或获取服务,动态同其他ECU进行连接;

  • 更强大计算能力:基于SOA架构使得AP能够更好支持多核、多ECU、多SOCs并行处理,提供更强大的计算能力;

  • 更加安全:基于SOA架构使得AP中各个服务模块独立,可独立加载,IAM管理访问权限;

  • 敏捷开发:Adaptive AUTOSAR服务不局限于部署在ECU本地可分布于车载网络中,使得系统模块可灵活部署,并可后期灵活独立更新(FOTA);

  • 高通信带宽:基于Ethernet等高通信带宽的总线通信;

  • 更易物联:基于以太网的SOA通信,更易实现无线、远程、云连接,部署Car-2-X应用;

  • 系统兼容:通过SOME\IP等协议AP可以同CP/Non-AUTOSAR等ECU。

  • P AUTOSAR一般应用在对实时性要求高、对功能安全要求高、对算力要求较低的场景中,如引擎控制、制动系统等。

    AP AUTOSAR一般应用在对实时性有一定要求、对功能安全有一定要求,对算力要求较高的场景中,如:

    1、传感器融合处理、运行时动态更新

    2、自动驾驶中:

  • 与交通基础设施的通信

  • 与云服务器进行通信

  • 车身域

  • 娱乐域

  • 动力域

最近七八年,AUTOSAR软件架构这个topic一直很火,出现了很多基于该软件架构的解决方案供应商。靠着早入局,质量稳定等优势在业界大吃特吃。伴随着对协议解读越发通透,国内也出现了该方面的解决方案服务商,随着使用过程中不断优化(敏捷开发,快速迭代),早日实现关键技术不被卡脖子。话又说回来,特斯拉在电动车一骑绝尘,但是也没有采用AUTOSAR软件架构,基于自己团队软件能力,开发出属于自己的车载软件架构。车载软件嘛,只有基于自身软件架构实现其功能,又可以保证软件运行稳健性,就是王道。

 


总结

万里长征方起步,我辈需加倍努力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/116640.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

45页智慧交通数字化解决方案2022

【版权声明】本资料来源网络,仅用于行业知识分享,供个人学习参考,请勿商用。【侵删致歉】如有侵权请联系小编,将在收到信息后第一时间进行删除! 完整资料领取见文末,部分资料内容: 项目建设目标…

RabbitMQ简单模式

🍁博客主页:👉不会压弯的小飞侠 ✨欢迎关注:👉点赞👍收藏⭐留言✒ ✨系列专栏:👉Linux专栏 🔥欢迎大佬指正,一起学习!一起加油! 目录&…

20 个常用的 pandas 使用技巧

大家好,我是小寒。 今天来分享 20 个常用的 pandas 使用技巧。如果觉得不错,点赞、转发安排起来。 1、以 Markdown 格式输出 DataFrame import pandas as pddf pd.DataFrame({a: [1, 2, 3, 4],b: [5, 6, 7, 8]})# You can control the printing of th…

ATAC-seq分析:教程简介(1)

简介 本课程[1]介绍 Bioconductor 中的 ATACseq 分析。 该课程由 2 个部分组成。这将引导您完成正常 ATACseq 分析工作流程的每个步骤。它涵盖比对、QC、peak calling、基因组富集测试、基序富集和差异可及性测试。 环境准备 IGV IGV 可以从 BROAD 网站安装。 》 https://www.b…

mysql实现行转列作为临时表、以及字符分割行转列

1.需求:实现两个日期段转换为具体的日期天数(2022-10-23至2022-10-26得到一张2022-10-23、2022-10-24、2022-10-25、2022-10-26的临时表) SELECTDATE_FORMAT( DATE_ADD( 2022-10-23 22:00:00, INTERVAL ( help_topic_id ) DAY ), %Y-%m-%d …

微服务洞察,让微服务更透明

作者: 屿山 微服务作为云原生时代下一种开发软件的架构和组织方法,通过将明确定义的功能分成更小的服务,并让每个服务独立迭代,增加了应用程序的灵活性,允许开发者根据需要更轻松地更改部分应用程序。同时每个微服务可…

想不起来的python知识点(应该后续还会再补充)

目录数据类型Number随机生成一个[0,1)范围的实数随机生成一个[1,20)范围内的整数补String(字符串)字符串连接使用join运算符List(列表)由于没有书,利用博客对于Python的学习内容进行简要的记录!(应该是菁(j…

基于声网 Flat 构建白板插件应用“成语解谜”的最佳实践

前言 本文作者赵杭天。他参加了“2022 RTE 编程挑战赛”——“赛道二 场景化白板插件应用开发” , 并凭借作品“成语解谜”获得了该赛道大奖。“成语解谜”是一个基于互动白板 SDK 的互动小游戏应用。通过前端编码、调用白板 API 能力、定制化后端逻辑等&#xff0…

刷题记录:牛客NC17509挖沟[prim+kruskal算法详解]

传送门:牛客 题目描述: 胡队长带领HA实验的战士们玩真人CS,真人CS的地图由一些据点组成,现在胡队长已经占领了n个据点,为了方 便,将他们编号为1-n,为了隐蔽,胡队长命令战士们在每个据点出挖一个坑&#x…

Cocos Creator 3.61所有工具软件的使用

文章目录Tiled-地图绘制软件下载安装基本使用点点就会了导入cocos编辑动画注意cocos导入TiledBigShear-图片裁剪为plist形式下载安装使用TexturePacker-使用plist文件产生精灵图集下载安装Tiled-地图绘制软件 下载安装 官网免费 Tiled官方 安装无要求 基本使用 点点就会了 导…

UE5 Meerkat狐獴演示Demo分析

1.特效的生成方式 1.1临时特效的生成:使用了已生成轨道临时创建该特效(不用在场景中放入该特效,而是临时创建即可)、系统生命周期轨道设置该特效的播放时长 1.2长期特效的生成:特效时长为该镜头片段长度 2.特效的类…

软考高级哪个好考?

软考高级有5个科目。 开发方向的有系统分析师,系统架构师; 网络方向的有网络规划与设计师; 信息系统方向的有信息系统项目管理师; 信息化服务方向的有系统规划与管理师。 考试题型 上午是9:00 — 11:30考综合知识,…

ROBOGUIDE软件:FANUC机器人多层堆焊功能介绍与示教编程操作方法

目录 机器人多层堆焊功能介绍 机器人跟踪路径数据指令介绍 机器人多层堆焊指令介绍 机器人弧焊焊接工作站创建 机器人多层堆焊示教编程 仿真运行 机器人多层堆焊功能介绍 在厚板焊接中进行多层堆焊焊接,以便多次焊接相同的部位而增大焊接宽度。通常情况下&am…

Java池化技术

在我们平常的编码中,通常会将一些对象保存起来,这主要考虑的是对象的创建成本。比如像线程资源、数据库连接资源或者 TCP 连接等,这类对象的初始化通常要花费比较长的时间,如果频繁地申请和销毁,就会耗费大量的系统资源…

Java-String 类·上

Java-String 类上1. 创建字符串2. 字符串比较相等3. 字符串常量池4. 理解字符串不可变大家好,我是晓星航。今天为大家带来的是Java String字符串相关知识点的讲解!😀 1. 创建字符串 常见的构造 String 的方式 // 方式一 String str "…

轻量化网络ShuffleNet 旷视

CVPR2018 人脸识别 脸部特效 张翔宇 什么是分组卷积 我们可以回忆一下 普通卷积 feature map有几个 我们的对应的卷积核就需要几个channel 然后我们学习这个 分组卷积 如图所示,前两个channel 有一个2个channel的卷积核负责,两个与两个对应 来自这…

学习.NET MAUI Blazor(四)、路由

Web应用程序的可以通过URL将多个页面串联起来,并且可以互相跳转。Web应用主要是使用a标签或者是服务端redirect来跳转。而现在流行的单页应用程序 (SPA) ,则通过路由(Router)来实现跳转,如Vue 、React等。 提示 MAUI的…

C#一个网络小程序的逐步实现过程

经常要检测某些IP地址范围段的计算机是否在线。 有很多的方法,比如进入到网关的交换机上去查询、使用现成的工具或者编写一个简单的DOS脚本等等,这些都比较容易实现。 现在使用C#来完成。 1、简单上手 公用函数: public static long IPToLong…

传奇服务器容易受到什么攻击,怎么防御攻击?

有兄弟问明杰,说自己打算开服,听说攻击挺多的,就是想先了解一下开传奇用的服务器最容易受到什么类型的攻击,如果遇到了又改怎么防御呢?带着这个问题,明杰跟大家详细的说一下,常见的开区时候遇到…

Max Sum Plus Plus(DP 滚动数组优化)[HDU - 1024]

题目如下: 题目链接 Max Sum Plus Plus 题解 or 思路: 经典的动态规划问题 dp[i][j]dp[i][j]dp[i][j], 前 jjj 个物品, 我们分成题目要求的 iii 组 对于第 jjj 个物品, 我们可以将它分到 第 kkk 组中, 或者分到新的一…