电子电器架构车载软件 —— 集中化架构软件开发

news2024/11/19 23:16:19

电子电器架构车载软件 —— 集中化架构软件开发

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。

老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:

屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节能减排。
无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事.而不是让内心的烦躁、焦虑、毁掉你本就不多的热情和定力。

文章大体有如下内容:

1、AUTOSAR通过软件模块化助力车内软件开发迭代

2、从CP演化到AP以适应自动驾驶兴起和车载以太网

一、AUTOSAR通过软件模块化助力车内软件开发迭代

AUTOSAR 助力车内通信架构软硬解耦、降低软件开发复杂度、增强可扩展性。AUTOSAR(Automotive Open System Architecture/汽车开放系统架构)是一个汽车电子系统的合作开发框架, 由全球多家汽车制造商、零部件供应商以及研究服务机构共同参与,并建立了一个开放的汽车控制器( ECU)标准软件架构。 其核心功能之一为软硬件分离, 提供了符合车规的标准化应用编程接口( API),并具有很高的可扩展性。 AUTOSAR 将软件划分为可独立开发的模块, 再通过一个高度自动化、功能强大的配置工具将这些不同的功能模块组合在一起,从而大大简化软件开发难度和成本。

另外,AUTOSAR对汽车行业的作用主要体现在以下几个方面:

-> 标准化和开放性:AUTOSAR作为一个开放的软件架构标准,统一了汽车电子软件的开发标准,使得不同供应商的软件可以在同一平台上进行集成和交互,提高了软件的互操作性和可替换性。

-> 降低成本和复杂性:AUTOSAR简化了汽车电子软件的联合开发过程,降低了开发成本和复杂性。通过AUTOSAR的分层架构,可以将复杂的系统划分为不同层次的模块,降低了开发难度,提高了开发效率。

-> 提高软件质量和可靠性:AUTOSAR引入了模块化、标准化的软件开发流程,提高了软件的质量和可靠性。同时,AUTOSAR还提供了强大的故障处理和安全机制,进一步提高了系统的安全性和可靠性。

-> 促进供应链协同:AUTOSAR为汽车制造商和供应商提供了一个统一的沟通语言和标准,促进了供应链之间的协同和合作。通过AUTOSAR,各供应商可以更加高效地参与到整车电子系统的开发和集成中来,提高了整个供应链的效率和灵活性。

-> 推动技术创新:AUTOSAR的开放性和标准化特性,吸引了众多汽车制造商和供应商的参与,推动了技术创新和产业升级。通过AUTOSAR,各成员可以共同研发新的软件技术和解决方案,提高了整个行业的竞争力和创新能力。

image

AUTOSAR 可显著降低汽车软件的开发难度和开发成本。 AUTOSAR 提供的软件开发框架可促进车载软件的可移植性和可组合性。 通过标准化应用程序软件功能之间的接口和基本功能的接口、定义ECU软件参考架构、将分布式开发过程的数据交换格式标准化, AUTOSAR 能够优化车内通信网络,促进来自不同供应商的组件的集成,跨平台组件的使用,以及故障控制方式的系统化,从而促进整个行业效率的提升和技术进步。

二、从CP演化到AP以适应自动驾驶兴起和车载以太网

AUTOSAR CP的软件架构定义了三个于ECU上执行的软件层:应用层( SWC)、运行时环境(RTE)和基础软件(BSW)。

-> 应用层SWC独立于硬件,用于实现 ECU的功能,执行传感器/执行器功能;

AUTOSAR的SWC(Software Component)是AUTOSAR架构中的一个核心概念,它是一个功能独立的软件单元,可以在不同的ECU(Electronic Control Unit)上运行。SWC由AUTOSAR描述文件(ARXML)定义,并通过AUTOSAR的代码生成工具生成代码。

SWC的核心功能是通过输入和输出端口与其他SWC或底层软件组件(BSW)交互,同时也可以使用内部端口进行内部通信。每个SWC都具有一些特定的功能,如传感器数据处理、控制算法、用户界面等等。每个SWC都需要定义其输入输出接口,以及其它自述和控制接口,这些接口都要符合AUTOSAR定义的规范。

AUTOSAR的SWC是实现汽车电子软件模块化、标准化和开放性的重要基础,有助于提高软件的开发效率、质量和可靠性,促进供应链协同,推动技术创新和产业升级。

-> RTE是架构的通信媒介,SWC与其他SWC以及与 BSW模块通过RTE进行通信;此外 RTE 也是车辆应用软件访问ECU功能的网关;

AUTOSAR RTE(Run-Time Environment)是AUTOSAR软件架构中的一个关键模块,它是实现AUTOSAR虚拟功能总线(VFB)接口的实体。RTE主要提供基础设施服务,用于实现不同SWC(Software Component)之间的通信,以及SWC对BSW(Basic Software)资源的访问。

RTE通过提供标准化的接口和服务,使得不同的软件组件可以方便地进行通信和互操作。它实现了SWC间的通信和SWC的调度,同时也管理了Runnable的触发机制。在AUTOSAR架构中,RTE处于应用层和基础软件层之间,起到了连接两者的重要作用。

RTE不仅支持源码类型的SWC,也支持目标代码类型的SWC。不过,RTE并不支持运行时的重新配置,所有通信在配置生成后都是静态的。

AUTOSAR RTE的作用是实现AUTOSAR虚拟功能总线(VFB)的接口,从而为应用程序软件组件之间的通信提供基础设施服务,并促进对包括操作系统(OS)在内的基础软件组件的访问。

RTE位于AUTOSAR软件架构的中间层,介于应用层和基础软件层之间。它封装了基础软件层的通信和服务,例如操作系统的任务激活、等待等功能,基础软件模块管理、ECU状态管理等服务,实现了对软件生命周期的控制。

此外,RTE还抽象了ECU之间的通信,使用标准化的接口将其统一为软件组件间的通信,使得ECU间的通信如同ECU内部通信。为了满足实时性、可靠性以及数据的一致性要求,RTE向软件组件和基础软件提供两种机制:通信机制和并发机制。

-> BSW模块提供基本的标准服务,例如总线通信、存储管理、IO访问、系统和诊断服务等。

AUTOSAR BSW(Basic Software)是AUTOSAR软件架构中的基础软件层,为各软件模块提供服务,并不实际完成功能。BSW是标准软件层,为应用层提供基础服务,包括ECU抽象层、微控制器抽象层、复杂驱动等。

image

微控制器抽象层(MicroController Abstraction Layer)是对MCU芯片的抽象和封装,主要实现MCU外设驱动,如I/O驱动、Flash驱动、Can驱动、看门狗驱动、定时器驱动等。这一层与硬件打交道,高度依赖MCU硬件。

ECU抽象层使上层软件与ECU硬件设计无关,包含ECU板上外部设备的驱动,内部设备与外部设备的接口(I/O)服务。

服务层位于BSW的最上面,将各种基础软件功能以服务的形式封装起来,供应用层调用。服务层包括RTOS、通信与网络管理、内存管理、诊断服务、状态管理、程序监控等服务。

AUTOSAR将一些基础软件封装成包,使得用户只需要关注上层应用层的开发,从而提高效率。这种分层架构有利于提高软件复用度,便于软件的交换与更新,能减少开发错误,提高软件质量。

随着汽车SOA架构的广泛接受及车内EE架构的演化,自动驾驶和以太网等新概念的应用,AUTOSAR推出了全新的自适应平台以适配相应的软件发展需求。

image

AUTOSAR AP与AUTOSAR CP相互补充,但更加熟悉AP的整车厂和供应商将具备一定的竞争优势。AUTOSAR AP 的推出并不是为了替代AUTOSAR CP——它们针对不同的应用程序且相互补充。

-> AUTOSAR CP主要应用于具有硬实时要求和低带宽通信的安全关键系统,在低资源硬件上实施;

-> AUTOSAR AP则针对高性能、低关键性、具有高带宽和OTA要求的系统。

从目前趋势来看,AUTOSAR AP有望接管自动驾驶、连接和信息娱乐等领域,AUTOSAR CP仍将是动力总成和底盘等传统汽车领域的首选平台。而自动驾驶、智能座舱、车联网是智能网联汽车个性化、差异化及高价值量的关键,我们认为更加熟悉 AUTOSAR AP 开发方法和框架的企业有机会凭借更高效的开发效率和更低的开发成本在软件定义汽车的潮流中取得比较大的优势,获得较多的市场份额。

image

搁笔分享完毕!

愿你我相信时间的力量

做一个长期主义者!

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

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

相关文章

vulnhub靶场之DC-8

一.环境搭建 1.靶场描述 DC-8 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing. This challenge is a bit of a hybrid between being an actual challenge, and being a "proof of concept&quo…

机器学习入门知识

一、引言 机器学习是当前信息技术中最令人振奋的领域之一。在这门课程中,我们将探索该技术的前沿,并能够亲自实现机器学习的算法。 或许你每天都在不知不觉中使用了机器学习的算法。每次你打开谷歌或必应搜索你需要的内容,正是因为它们拥有出…

如何使用vite框架封装一个js库,并发布npm包

目录 前言介绍 一、创建一个vite项目 1、使用创建命令: 2、选择others 3、 模板选择library 4、选择开发语言 ​编辑 二、安装依赖 三、目录介绍 1、vite.config.ts打包文件 2、package.json命令配置文件 三、发布npm 1、注册npm账号 2、设置npm源 3、登…

深信服超融合HCI版本升级,6.0.0R5升级至6.8.0R2

超融合升级,需要满足以下条件及前期准备: 确认HCI的升级序列号有效升级时长大概在一个半小时,安全起见,需预留至少三至四小时窗口期升级前,需要将所有虚拟机关机,涉及到业务无法访问,需提前通知…

车规MCU开发之E2E协议

啥是E2E? E2E的原理: 1. 发送端:发送数据包添加E2E保护头 2. 接收端:接收数据包校验E2E保护头 E2E例子 - profile 11为例 E2E_P11ConfigType wk_stP11Cfg { .CounterOffset 8, .CRCOffset 0, .DataID …

opencv多张图片实现全景拼接

最近camera项目需要用到全景拼接,故此查阅大量资料,终于将此功能应用在实际项目上,下面总结一下此过程中遇到的一些问题及解决方式,同时也会将源码附在结尾处,供大家参考,本文采用的opencv版本为3.4.12。 首…

MT8766安卓核心板/开发板_MTK联发科4G安卓手机主板方案定制开发

MT8766采用台积电 12 nm FinFET 制程工艺,4*A53架构,Android 9.0操作系统,搭载2.0GHz 的 Arm NEON 引擎。提供了支持最新 OpenOS 及其要求苛刻的应用程序所需的处理能力,专为具有全球蜂窝连接的高移动性和功能强大的平板设备而设计…

ES 原理和使用场景

为什么不能使用数据库做搜索? 1、比方说,每条记录的指定字段的文本,可能会很长,比如说“商品描述”字段的长度,有长达数千个,甚至数万个字符,这个时候,每次都要对每条记录的所有文本…

第二百六十六回

文章目录 1. 概念介绍2. 分析与解决2.1 分析问题2.2 解决方案 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何修改CircleAvatar的大小"相关的内容,本章回中将介绍如何修改StatusBar中文字的颜色.闲话休提,让我们一起Talk Flutter吧。 1.…

三、ngxin虚拟主机

目录 什么是nginx虚拟主机修改端口 访问页面1、配置nginx.config 文件2、 添加配置给目录中写入内容检测nginx 是否有语法错误(nginx -t)重启 nginx查看配置结果 不同主机网卡 查看到不同的页面先添加一个临时ip修改ngixn配置文件创建目录文件检测nginx …

案例121:基于微信小程序的作品集展示系统设计与实现

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

MySQL进阶篇(五) 锁

一、概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问…

C#灵活的任务调度组件FluentScheduler

FluentScheduler是一个C#的灵活的任务调度组件,支持各类任务调度。网上有很多演示代码,此处记录下来,方便自己查找。 // See https://aka.ms/new-console-template for more information //Console.WriteLine("Hello, World!");us…

IP-Adapter:用于文本到图像扩散模型的文本兼容图像提示适配器

文章目录 一、IP-Adapter简介二、IP-Adapter与img2img的区分(一)结构上的区别(二)流程上的区别(三)输出上的区别(四)原理上的区别 三、IP-Adapter的网络架构(一&#xff…

Python教程16:使用海龟画图turtle画会动的时钟

---------------turtle源码集合--------------- Python教程36:海龟画图turtle写春联 Python源码35:海龟画图turtle画中国结 Python源码31:海龟画图turtle画七道彩虹 Python源码30:海龟画图turtle画紫色的小熊 Python源码29&a…

单例模式---JAVA

目录 “饿汉”模式 完整代码 “懒汉”模式 完整代码 单例模式:保证某个类在程序中只存在唯一一份实例, 而不会创建出多个实例。 单例模式可以通过实例创建的时间来分为两种:“饿汉”和“懒汉”模式。 “饿汉”模式 所谓的“饿汉”模式实则就是在类…

异常处理注解 @ExceptionHandler

今天记录下 SpringBoot 中 ExceptionHandler 的使用。 场景 有一个员工表(employee),且给表中的 username 属性设置了唯一性。 -- auto-generated definition create table employee (id bigint auto_increment comment 主键primary key,name va…

STM32F103_ESP8266基于RTOS移植MQTT

STM32F103_ESP8266基于RTOS移植MQTT 目录 STM32F103_ESP8266基于RTOS移植MQTT一、准备工作二、移植mqttclient代码三、编译包含mqttclient的工程四、编写ESP8266驱动程序1、ESP8266 AT命令代码框架2、UART硬件和抽象层相关代码3、AT命令发送和解析代码4、plat_sock网络层相关代…

【redis基础1】基础数据类型详解和应用案例

博客计划 ,我们从redis开始,主要是因为这一块内容的重要性不亚于数据库,但是很多人往往对redis的问题感到陌生,所以我们先来研究一下。 本篇,我们先看一下redis的基础数据类型详解和应用案例。 1.redis概述 以mysql为…

软件测试|Python requests库的安装和使用指南

简介 requests库是Python中一款流行的HTTP请求库,用于简化HTTP请求的发送和处理,也是我们在使用Python做接口自动化测试时,最常用的第三方库。本文将介绍如何安装和使用requests库,以及一些常见的用例示例。 安装requests库 首…