当前位置: 首页 > article >正文

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

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

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

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

时间不知不觉中,快要来到新的一年。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.kler.cn/a/526267.html

相关文章:

  • 如何将DeepSeek部署到本地电脑
  • 创建 priority_queue - 进阶(内置类型)c++
  • 【编译原理实验二】——自动机实验:NFA转DFA并最小化
  • NoSQL与SQL比较
  • MySQL中的读锁与写锁:概念与作用深度剖析
  • mysql.sock.lock 导致mysql重启失败
  • 【腾讯云】腾讯云docker搭建单机hadoop
  • 窥探目标文件
  • Git进阶之旅:.gitignore 文件
  • PostgreSQL技术内幕24:定时任务调度插件pg_cron
  • 告别页面刷新!如何使用AJAX和FormData优化Web表单提交
  • 集合的奇妙世界:Python集合的经典、避坑与实战
  • 35【VS工具和c语言的关系】
  • INCOSE需求编写指南-附录 C: 需求模式
  • SystemVUE安装与入门
  • 论文阅读(十一):基因-表型关联贝叶斯网络模型的评分、搜索和评估
  • C++并发:设计基于锁的并发数据结构
  • Chrome浏览器编译系统研究与优化分析
  • 小米CR6606,CR6608,CR6609 启用SSH和刷入OpenWRT 23.05.5
  • 【NEXT】网络编程——上传文件(不限于jpg/png/pdf/txt/doc等),或请求参数值是file类型时,调用在线服务接口
  • 前端AI— Language User Interface(语言用户界面,简称LUI)
  • 26_DropDown使用方法
  • C++并发编程指南08
  • 4 Spark Streaming
  • Vue3.0教程004:ref和reactive对比
  • 霍尔电流传感器