车载软件架构 --- 基于AUTOSAR软件架构的ECU开发流程小白篇

news/2025/1/31 22:39:12/

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

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

简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身边有这样灵性的人,一定要好好珍惜他们眼中有神有光,干净,给人感觉很舒服,有超强的感知能力有形的无形的感知力很强,能感知人的内心变化喜欢独处,好静,清静,享受孤独,不打扰别人不喜欢被别人打扰,在自己人世界里做着自己喜欢的事。

时间不知不觉中,快要来到新的一年。2024结束,2025开始新的忙碌。成年人的我也不知道去哪里渡自己的灵魂,独自敲击一些文字算是对这段时间做一个记录。

在这里插入图片描述

一、背景信息

汽车ECU作为汽车电子控制系统的核心部件,其开发效率与质量直接关系到整车的性能与可靠性。然而,传统的ECU开发方法在系统级分析与建模方面存在诸多不足,如系统架构不够清晰、模块间耦合度高、扩展性差等问题。因此,引入AUTOSAR规范,以其层次化、模块化的系统架构,为解决这些问题提供了新的思路。

AUTOSAR(AUTomotive Open System ARchitecture)是一个开放且标准化的汽车电子软件架构,旨在提高汽车电子软件的可移植性、可重用性和可扩展性。其系统架构具有层次化和模块化的特点,通过明确的层间接口和模块间通信机制,实现了软件组件的高内聚低耦合。

二、AUTOSAR ECU开发流程总览

AUTOSAR系统架构与标准接口、基本方法与开发流程

1、AUTOSAR系统架构与标准接口

AUTOSAR(Automotive Open System Architecture)即汽车开放系统架构,由宝马、戴姆勒克莱斯勒、福特等主流汽车制造商,以及博世等零部件供应商和半导体、软件公司联合推出。它是一个开放的汽车电子系统架构标准,旨在提供汽车电子系统的标准化和模块化解决方案。

AUTOSAR的架构包括应用层、运行时环境(RTE)、基础软件(BSW)和硬件抽象层(HAL)等组件。其中:

应用层负责实现具体的功能。

-> RTE提供了应用层和BSW之间的接口,是AutoSAR架构中的一个重要组件,负责管理和协调汽车电子系统中的软件组件,包括通信管理、任务调度、事件触发、数据管理和错误管理等功能。

-> BSW提供了一系列的基础软件服务,如通信、诊断、操作系统等。

-> HAL提供了与硬件相关的接口和驱动程序。

此外,AUTOSAR还定义了多种类型的接口,包括标准接口、标准AUTOSAR接口和AUTOSAR接口,这些接口可实现操作系统和RTE、BSW模块和ECU内部之间的函数调用,以及软件组件之间的服务和数据交换。

2、AUTOSAR基本方法与开发流程

AUTOSAR为汽车电子软件系统开发定义了一套通用的解决方案,即AUTOSAR方法论。它描述了从系统层配置到ECU可执行代码的设计步骤,但并未规定要执行哪些活动,也没有定义“责任”和“角色”等。AUTOSAR方法论的开发流程通常包括以下几个步骤:

-> 需求分析:定义系统需求、功能需求以及性能需求,明确系统目标及各个模块的功能,确定软件组件(SWC)的功能,并根据需求编写需求文档。

-> 系统架构设计:设计系统的高层架构,包括硬件和软件组件的结构、ECU间的通信、资源分配等,定义系统架构(如SWC、ECU、通信等),设计BSW、RTE和OS的配置,以及ECU通信协议(如CAN、Ethernet等),并评估系统架构的可行性、性能和成本。

-> 软件组件设计与实现:开发符合功能需求的软件组件,并确保这些组件能够与其他系统模块无缝集成。这包括设计和实现SWC接口、实现业务逻辑和通信协议、开发组件的代码以及集成应用代码与底层软件框架。

-> ECU配置与基础软件配置:根据系统需求和软件组件,配置ECU硬件资源、BSW和中间件。

-> 代码生成与自动化:自动生成BSW、RTE、SWC集成代码,减少手动编码和集成的错误,并自动化测试和验证生成的代码是否符合需求。

-> 验证与测试:验证系统的功能和性能,确保系统符合设计需求。这包括软件单元测试、集成测试、硬件在环(HIL)测试和性能测试等。

-> 系统集成与调试:将所有的软件组件、基础软件和硬件集成在一起,进行调试和性能优化。

-> 功能验证与验收测试:确保系统按预期功能运行,并通过客户的验收测试。

-> 部署与生产:将系统部署到量产环境中,确保产品按计划投入生产。

-> 持续集成与维护:进行版本管理、持续集成,并根据需求进行后续维护。

3、符合AUTOSAR规范的汽车ECU软件开发解决方案

针对汽车电子系统日益复杂、软件代码量急速上升的问题,采用AUTOSAR架构可以显著提高ECU软件的可重用性、可扩展性和互操作性,从而降低开发和维护成本,并促进汽车电子系统的创新和发展。

在符合AUTOSAR规范的汽车ECU软件开发解决方案中,通常会采用一系列的工具和平台来支持开发过程。这些工具和平台包括但不限于:

-> 架构设计工具:如Vector PREEvision、Enterprise Architect、EB tresos Studio等,用于设计系统的高层架构和配置。

-> 集成开发环境(IDE):如Eclipse、Visual Studio等,以及AUTOSAR专用的开发工具,如EB tresos Studio、Vector DaVinci Developer等,用于软件组件的开发和实现。

-> 配置工具:如Vector DaVinci Configurator、EB tresos Studio等,用于ECU和基础软件的配置。

-> 代码生成工具:同样包括EB tresos Studio等,用于自动生成基础软件、RTE、SWC集成代码。

-> 测试工具:如Vector CANoe、dSPACE、EB Assist等,用于系统的验证和测试。

三、AUTOSAR系统架构与标准接口

分层的系统架构传统的汽车电控软件开发是以硬件为中心的,软件严重依赖于硬件平台, 如图所示, 硬件平台的改 变 将 导 致 软 件 维 护 成 本 剧 增。 而 AUTOSAR 的提出, 旨在为汽车电子软件行业提供一个统一的开放的软件架构标准, 以解决传统汽车电子软件可靠性、 重用性低的缺陷。 如图所示, 通过定义标准化的软件功能组件与软件功能组件接口, 将与硬件有关的基础软件进行标准化与平台化, 从而实现上层应用软件和与底层硬件有关的软件 相 互 独 立, 切 实 提 高 软 件 的 更 新 和 升 级能力。

在这里插入图片描述

由于 AUTOSAR 提供底层 ECU 抽象, 使得不再因更换 ECU 而需要对上层应用软件进行适应性修改; 用户可以拥有独立于硬件的、 自上而下的以软件为中心的软件平台, 缩减软件的维护成本, 特别是图 AUTOSAR软件与硬件分离

在这里插入图片描述

整车厂可以将精力集中放在上层应用程序的开发上, 专注于更有竞争价值的上层功能实现。具体地, AUTOSAR 将运行在底层硬件之上的软件划分为三大层, 即应用层、 运行时环境层与基础软件层, 如图所示。

1、应用层。 应用软件以软件组件(SWC) 的形式进行设计, 每个SWC 都封装一段运行在 AUTOSAR 基础软件架构上的可执行程序, 并具有标准化的应用程序接口(API) , 通过运行时环境(RTE) 进行通信。

2、运行时环境(RTE) 层。 RTE 提供基础的通信服务, 支持SWC 之间的、 以及SWC 与 BSW 之间的通信(包括 ECU 内部的程序调用、ECU 外部的总线通信等) 。 RTE 的思想是提供一个虚拟功能总线(VFB) , 从而允许SWC 请求任意的输入数据, 而不必知道这些数据是从哪个 ECU 传送过来的, 只需要向 RTE 发出请求即可。 RTE 使应用层软件完全脱离于具体的单个 ECU 和 BSW。

3、基础软件(BSW) 层。 BSW 层又被划分为3个子 层: 服 务 层、 ECU 抽 象 层、 微 控 制 器 抽 象 层(MCAL) , 还存在一个特殊的复杂驱动层。 每一子层又划分为不同的功能模块。

在这里插入图片描述

服务层分为系统服务、 内存服务、 通信服务等模块。 ECU 抽象层分为板载设备抽象、 内 存 设 备 抽象、 通 信 硬 件 抽 象 与 I/O 抽 象 等。 MCAL 分 为MCU 驱动、 内存驱动、 通信驱动与I/O 驱动等。MCAL 是 BSW 的 最 底 层, 包 含 了 访 问 MCU的驱动。 MCAL 使上层软件与 MCU 分离, 以便应用程 序 的 移 植。 ECU 抽 象 封 装 了 MCAL 以 及MCU 外围设备的驱动, 并且将 MCU 外围设备的访问进行了 统 一, 使 上 层 应 用 与 ECU 硬 件 相 剥 离。

服务层是 BSW 的最上层, 将各种基础软件功能模块以服务的形式封装起来, 供应用层调用。复杂驱动层可以直接访问 MCU, 以实现一些复杂的传感器和控制器操作, 比如喷油控制、 曲轴信号采集等。 复杂驱动层具有重要意义, 首先, 它可以用于实现 AUTOSAR 不支持或者尚未标准化的硬件驱 动; 其 次, 它 可 以 作 为 已 存 在 的 应 用 程 序 向AUTOSAR 过渡的接口。

三、AUTOSAR方法与开发流程

1、SWC(软件组件)在汽车电子开发中的应用

SWC(Software Component)作为汽车电子开发中的核心组成部分,封装了汽车电子系统的各种功能模块,包括应用软件、传感器/执行器、标定、服务、ECU抽象以及复杂设备驱动等。这些SWC通过VFB(Virtual Function Bus,虚拟功能总线)进行交互,共同构成了汽车电子系统的应用软件。

在这里插入图片描述

SWC的结构与功能

1、端口与端口接口:

SWC的对外表现形式是一系列的端口(Port)及对应的端口接口(Port-Interface)。

每个SWC都需要定义Port,通过Port和Port-Interface实现SWC之间的通信或SWC与BSW(Basic Software,基础软件)之间的通信。

2、运行实体:

SWC的内部行为通过运行实体(Runnable)表达,每个SWC由若干个运行实体组成, 每个运行实体由一组指令序列构成,与一个特定的RTE事件(RTEEvent)绑定。当绑定的RTEEvent发生时,对应的运行实体就会被触发。

3、功能与数据交互:

运行实体通过Port的数据或操作完成自身的功能,并把结果通过Port对外提供。这种交互通过RTE(Runtime Environment,运行环境)进行,使得运行实体的实现与平台无关,从而SWC也是与平台无关的。

在这里插入图片描述

SWC的开发与描述

1、代码实现:

SWC必须提供功能模块的代码实现,即源代码。代码实现可以通过建模工具进行设计并生成代码,也可手工编制。

2、描述文件:

描述文件用于描述SWC的外在属性,包括所使用的端口、端口接口、运行实体及对应的RTEEvent等。描述文件最终以扩展标记语言(XML)文件形式对外提供,方便集成和管理。

SWC的优势与应用

1、可移植性与重用性:

由于SWC与平台无关,因此具有良好的可移植性和重用性。这使得在不同的汽车电子项目中,可以方便地复用已有的SWC,降低开发成本和提高开发效率。

2、模块化设计:

SWC的模块化设计使得汽车电子系统更加清晰、易于管理和维护。开发人员可以专注于单个SWC的开发,而无需关注整个系统的复杂性。

在这里插入图片描述

3、支持复杂系统开发:

在复杂的汽车电子系统中,SWC的引入使得系统可以更加灵活地应对各种需求和变化。通过组合和配置不同的SWC,可以快速构建出满足特定需求的汽车电子系统。

SWC在汽车电子开发中发挥着重要作用,它封装了汽车电子系统的各种功能模块,并通过标准化的接口和交互机制实现了模块之间的通信和协作。通过采用SWC,可以显著降低开发成本、提高开发效率,并增强汽车电子系统的可移植性和重用性。

在这里插入图片描述

搁笔分享完毕!

愿你我相信时间的力量

做一个长期主义者


http://www.ppmy.cn/news/1568258.html

相关文章

【重生之我在学习C语言指针详解】

目录 ​编辑 --------------------------------------begin---------------------------------------- 引言 一、指针基础 1.1 内存地址 1.2 指针变量 1.3 指针声明 1.4 取地址运算符 & 1.5 解引用运算符 *** 二、指针运算 2.1 指针加减运算 2.2 指针关系运算 三…

PhotoShop中JSX编辑器安装

1.使用ExtendScript Tookit CC编辑 1.安装 打开CEP Resource链接: CEP-Resources/ExtendScript-Toolkit at master Adobe-CEP/CEP-Resources (github.com) 将文件clone到本地或者下载到本地 点击AdobeExtendScriptToolKit_4_Ls22.exe安装,根据弹出的…

Python爬虫学习第三弹 —— Xpath 页面解析 实现无广百·度

早上好啊,大佬们。上回使用 Beautiful Soup 进行页面解析的内容是不是已经理解得十分透彻了~ 这回我们再来尝试使用另外一种页面解析,来重构上一期里写的那些代码。 讲完Xpath之后,小白兔会带大家解决上期里百度搜索的代码编写,保…

智能家居监控系统数据收集积压优化

亮点:RocketMQ 消息大量积压问题的解决 假设我们正在开发一个智能家居监控系统。该系统从数百万个智能设备(如温度传感器、安全摄像头、烟雾探测器等)收集数据,并通过 RocketMQ 将这些数据传输到后端进行处理和分析。 在某些情况下…

实现B-树

一、概述 1.历史 B树(B-Tree)结构是一种高效存储和查询数据的方法,它的历史可以追溯到1970年代早期。B树的发明人Rudolf Bayer和Edward M. McCreight分别发表了一篇论文介绍了B树。这篇论文是1972年发表于《ACM Transactions on Database S…

通过 NAudio 控制电脑操作系统音量

根据您的需求,以下是通过 NAudio 获取和控制电脑操作系统音量的方法: 一、获取和控制系统音量 (一)获取系统音量和静音状态 您可以使用 NAudio.CoreAudioApi.MMDeviceEnumerator 来获取系统默认音频设备的音量和静音状态&#…

DeepSeek-R1:通过强化学习激励大型语言模型(LLMs)的推理能力

摘要 我们推出了第一代推理模型:DeepSeek-R1-Zero和DeepSeek-R1。DeepSeek-R1-Zero是一个未经监督微调(SFT)作为初步步骤,而是通过大规模强化学习(RL)训练的模型,展现出卓越的推理能力。通过强…

组合模式 - 组合模式的实现

引言 组合模式(Composite Pattern)是一种结构型设计模式,它允许你将对象组合成树形结构来表示“部分-整体”的层次结构。组合模式使得客户端可以统一地处理单个对象和组合对象,从而简化了代码的复杂性。本文将详细介绍如何在C中实…