智能汽车驾驶演进:虚拟ECU种类与优劣分析

news2024/9/29 21:21:31

现代汽车更安全、更舒适、更智能的代价是车载ECU(Electronic Control Unit)数量的迅速增长,与之相对应的是ECU上规模软件越来越大、软件开发成本在整车制造成本中的占比越来越高。车企可以从规则与方法两个角度入手来解决上述问题:

  • 一手抓规则:汽车开放系统架构AUTOSAR;

  • 一手抓方法:通过仿真建模技术搭建虚拟ECU,实现汽车的“数字孪生”。

本文将以此为基础,分析虚拟ECU在智能汽车驾驶演进过程中,基于AUTOSAR架构的多个种类以及个中优劣。

01.汽车开放系统架构AUTOSAR

AUTOSAR(AUTomotive Open System ARchitecture)源自2003年,是由全球知名汽车制造商、零部件供应商及其他电子、半导体和软件系统公司联合建立的汽车开放系统架构联盟,该联盟所推出的规范被称为AUTOSAR规范,通过对汽车基础软件进行标准化定义,提升汽车ECU的兼容性、复用性与可靠性。

AUTOSAR遵循的是一种自上而下的开发方式,即先进行系统设计,再分别进行开发实现,最终进行系统集成。主要做了以下三件事:

  • 对应用软件与底层软件之间以及应用软件之间的接口进行标准化;

  • 给出一个控制器软件参考架构;

  • 规范分布式开发流程中的交换格式。

根据AUTOSAR GBR. AUTOSAR layer software architecture R4.4.0的资料显示,其整体框架呈分层式设计,以中间件RTE(Runtime Environment,RTE)为界,隔离上层的应用层(Application Layer,APPL)与下层的基础软件(Basic Software,BSW)。

▲AUTOSAR软件架构

在20年的长久发展之下,AUTOSAR架构已趋于成熟,汽车嵌入式系统软硬件的耦合度大大降低,截至目前,AOTOSAR已被广泛应用于ECU软件开发和汽车电子设计,如汽车底盘控制系统开发、底层通信软件设计、整车电子电气架构设计、汽车电子诊断系统开发及电机控制系统设计等领域,为满足用户日益增长的智能驾驶需求提供了新解决方案。

02.虚拟ECU种类及优劣分析

根据AUTOSAR框架的不同层次,虚拟ECU可以分为以下四个大类:

▲虚拟ECU分类

第一类:仅包含ASW和RTE(RTE中可能会包含一个OS)

  • 只仿真RTE环境,仅能测试ASW的基本功能,忽略了基础软件中的通信细节。

  • 如果ASW的代码是AUTOSAR兼容的,则可以对ASW代码进行测试。

**此类虚拟ECU因为不涉及硬件,所以构造较为简单,但无法保证与真实ECU同样的执行行为。

第二类:包含ASW,RTE和虚拟的BSW。

  • 此类虚拟ECU相比第一类更加真实,可以对ASW、RTE代码进行测试。

  • 虚拟BSW的作用是将底层硬件的特性和复杂性进行抽象和封装,为上层应用软件提供简化的接口和功能,从而实现对底层硬件的虚拟化。

**无法测试真实硬件的一些实际执行行为。

第三类:上述基础上外加OS及一个虚拟的MCAL(Microcontroller Abstraction Layer)。

  • 相比第二类更加真实,可以测试任务调度以及BSW的功能。

  • 虚拟MCAL负责封装底层硬件的访问,通过软件模拟来完成硬件相关的功能,提供统一的接口给上层软件,使得软件开发人员可以更方便地编写应用程序,无需担心底层硬件的差异。

**值得注意的是,虚拟MCAL也会带来一些问题:

性能损失:由于虚拟MCAL是通过软件模拟来实现底层硬件功能虚拟化的,可能导致仿真性能相对较低于直接访问实际硬件,尤其是在对实时性要求较高的应用场景下——可能会出现延迟问题。

适配性问题:因其需要针对不同的底层硬件进行开发和适配来实现仿真,原有的虚拟MCAL大概率无法完全涵盖所有的底层硬件特性和功能,一旦涉及定制化开发就会导致成本上升。

复杂性和维护成本:虚拟MCAL的开发和维护可能需要投入大量的人力和资源。虽然虚拟MCAL可以提供抽象和统一的接口,但其底层实现与硬件相关,需要工程师对硬件规格有着深入理解以落实维护,开发和维护的复杂性和成本也会随之上升。

功能限制:由于虚拟MCAL的仿真实现很有可能无法完全复现所有底层硬件的功能,在一些复杂功能上会有所受限,无法满足所有应用场景的需求,尤其是在一些复杂的硬件功能和特性方面。

灵活性较差:此类虚拟ECU也无法直接运行真实ECU的二进制代码,对于复杂设备驱动(Complex Device Drivers,CDD)支持也较为欠缺。 

第四类(最佳):与第三类相同,但MCAL为真实硬件MCAL。

  • 实现了完全仿真,能够实现几乎相同的真实硬件行为。

  • 可通过完全模拟ECU处理器、相关外设及总线等设施实现【真实ECU相同的二进制代码】的直接运行。

  • 可在此基础上实现真实硬件无法达成的故障注入,以测试软件的安全性与可靠性。

  • 灵活性较强,可以增加CDD的建模仿真。

**由于需要模拟硬件的技术细节,因此存在一定的建模工作量和建模周期;同时,为了确保具备一定的实时性,该类虚拟ECU的搭建往往具有较高的技术难度。

基于SkyEye的虚拟ECU解决方案

国产自主可控的天目全数字实时仿真软件SkyEye,作为基于可视化建模的硬件行为级仿真平台,支持搭建第四类虚拟ECU,可高度仿真真实控制器。除了第四类虚拟ECU原有的优势外,基于SkyEye的虚拟ECU解决方案还有着以下特点:

  • 可以将开发任务从路测和台架转移到Windows/Linux PC上,以实现ECU软件的高效软件在环(SIL)开发。

  • 系统本身同时也是一个强大的实验环境,可通过协同仿真总线平台工具与多种工具(包括通过标准化的FMI接口运行MATLAB/Simulink和其他多种工具)的仿真模型进行数据交互。

  • 虚拟ECU的相关配置可以快速复制拓展,复制成本低、比真实硬件也容易得多。

  • 每位工程师都能拥有个人开发环境,不会占用HIL台架或测试车辆之类的稀缺资源,避免因硬件资源紧张引起的研发周期过长问题,更多工程师能从中受益。

总体而言,基于SkyEye的虚拟ECU解决方案有着如下优势:

  • 可以在早期开发阶段进行软件开发、集成和测试,加速整个开发过程,提高开发效率。

  • 减少实际车辆测试的需求,降低测试成本和时间,同时减少由于实际车辆测试带来的风险和损失。

  • 提供可视化的仿真结果,帮助开发人员更直观地理解控制系统的行为和性能。

  • 可以在模拟环境下进行测试,提高测试的精度和可重复性,并减少测试中的人为误差。

虚拟ECU作为一种创新性的技术,对于ECU软件开发具有重要的现实意义。其不仅提高了汽车软件的开发效率与可重用性,为系统集成与验证带来了便利,还为软件开发和测试提供了更好的环境,对汽车ECU软件的安全性与隔离性起到了至关重要的保障作用。虚拟ECU将在未来的汽车电子系统开发中发挥越来越重要的作用,推动汽车行业迈向更智能、更安全的未来。

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

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

相关文章

ES6新增的语法

ES6实际上是一个泛指,泛指 ES2015 及后续的版本 1,let用于声明变量的关键字 let 声明的变量只在所处于的代码块内有效 if (true) { let a 10 } console.log(a) // a is not defined 2, let 不存在变量提升 console.log(a) // a is not deined let a 1…

元素2D转3D 椭圆形旋转实现

椭圆旋转功能展示 transform-style: preserve-3d;(主要css代码) gif示例(背景图可插入透明以此实现边框线的旋转) 导致的无法点击遮挡问题可以参考我的另一个文章 穿透属性-----------------------css穿透属性 实时代码展示

如何与 Boot Barn 建立 EDI 连接?

Boot Barn 专注于提供各种高品质的靴子、鞋类和西部服饰。其经营范围广泛,为广大顾客提供最新潮流和经典款式的选择。 Boot Barn 的使命是成为顾客在西部风格时尚领域的首选购物地点。多年来,Boot Barn 凭借卓越的服务和优质的产品赢得了众多客户的信赖和…

LabVIEW使用DSA技术从X射线图像测量肺气容量

LabVIEW使用DSA技术从X射线图像测量肺气容量 相衬X射线(PCX)成像技术利用相邻介质之间折射率的微小差异来增强传统X射线成像通常不可见的物体的边界。事实证明,这一进展在一系列生物医学和材料科学中非常有益于材料表征、疾病检测以及解剖形…

Hive 中把一行记录拆分为多行记录

背景 业务场景:统计每个小时视频同时在线观看人数,因后台的业务数据是汇总之后的,只有开始时间、结束时间,没有每小时的详细日志数据,无法直接进行统计,所以需要对每条业务数据进行拆分,来统计…

【redis】能ping通虚拟机但是telnet不通

问题 虚拟机上有redis,能ping通虚拟机的ip,但是telnet已启动的redis6379端口失败 基本情况 虚拟机网络模式是NAT模式,linux防火墙firewalld已关闭,没有iptables,主机和虚拟机能互相Ping通,主机telnet re…

后端进阶之路——Spring Security构建强大的身份验证和授权系统(四)

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★前端炫酷代码分享 ★ ★ uniapp-从构建到提升★ ★ 从0到英雄,vue成神之路★ ★ 解决算法,一个专栏就够了★ ★ 架…

鸿蒙的初项目

经过这几天的了解,我还是决定挑战一下自己用ets语言去写一个鸿蒙的程序! 先创建了一个ets的项目,然后我发现这里面有一个组件叫Flex,跟css里面的弹性布局好像差不多,但是用法略有差异,这个Flex是在&#xf…

Python---Numpy

文章目录 1.Numpy是什么?2.ndarray2.1 什么是ndarray?2.2 ndarray的属性2.3 ndarray的类型 3.Numpy基本操作3.1 生成0或1的数组3.2 从现有数组生成数组拓展:浅拷贝和深拷贝 3.3 生成固定范围的数组3.4 生成随机数组3.4.1 正态分布3.4.2 均匀分布 3.5 形…

网络安全(黑客)工具篇

大家好,我是白菜。这篇文章给大家盘点那些年,我们一起玩过的网络安全工具。 一、反恶意代码软件 1.Malwarebytes 这是一个检测和删除恶意的软件,包括蠕虫,木马,后门,流氓,拨号器,…

3D视觉算法工程师的工资,真是离谱!

小凡:「与其服务一个公司,不如服务一个行业」 一 我的从业经历 大家好,我是小凡,「3D视觉从入门到精通」知识星球的星主。 这里简单介绍下的我的从业经历。 本科主要是做机械出身,研究生入行3D视觉,这里…

SSM(Vue3+ElementPlus+Axios+SSM前后端分离)--搭建Vue 前端工程[二]

文章目录 SSM--搭建Vue 前端工程--项目基础界面实现功能02-创建项目基础界面需求分析效果图思路分析 代码实现项目前后端分离情况项目前后端分离情况如图 注意事项和细节 SSM–搭建Vue 前端工程–项目基础界面 实现功能02-创建项目基础界面 需求分析 效果图 思路分析 使用V…

.Net6 Web Core API 配置 Autofac 封装 --- 依赖注入

目录 一、NuGet 包导入 二、Autofac 封装类 三、Autofac 使用 四、案例测试 下列封装 采取程序集注入方法, 单个依赖注入, 也适用, 可<依赖注入>的地方配置 一、NuGet 包导入 Autofac Autofac.Extensions.DependencyInjection Autofac.Extras.DynamicProxy 二、Auto…

【Linux】——信号量、线程池

目录 POSIX信号量 信号量的原理 信号量的概念 信号量函数接口 信号量与互斥锁 二元信号量 二元信号量模拟实现互斥功能 基于环形队列的生产消费模型 空间资源的数据资源 申请和释放资源 两个原则 Linux线程池 线程池的概念 线程池的应用场景 线程池的实现 线程…

【ASP.NET MVC】使用动软(二)(10)

一、添加动软生成工程 按前文添加动态到工程 双击动软 完成新建数据库服务器后 &#xff0c;需要关闭重新打开 选择简单三层&#xff0c;注意保存位置 注意切换数据库&#xff1a; 生成后拷贝五个文件夹到工程目录 注意目录结构&#xff1a; 添加四个项目到原来的工程&…

Python接口自动化之cookie、session应用

以下介绍cookie、session原理及在接口自动化中的应用。 HTTP 协议是一种无状态协议&#xff0c;即每次服务端接收到客户端的请求时&#xff0c;都是一个全新的请求&#xff0c;服务器并不知道客户端的历史请求记录&#xff1b;Session 和 Cookie 的主要目的就是为了弥补 HTTP 的…

数学知识(二)

一、裴蜀定理 对于任意整数a,b&#xff0c;一定存在非零整数x,y&#xff0c;使得 ax by gcd(a,b) #include<iostream> #include<algorithm>using namespace std;int exgcd(int a,int b,int &x,int &y) {if(!b){x 1,y 0;return a;}int d exgcd(b,a %…

adb 调试oppo k11过程记录

学习使用appium工具&#xff0c;自动化测试andriod应用程序。 过程记录 背景交代 手机&#xff1a;oppo k11 系统&#xff1a; macOS 手机开启use调试 具体细节&#xff0c;可百度 安装软件 adbappiumappium-inspector adb安装 下载adb工具包platform-tools, 解压。 直…

SpringBoot3---核心特性---1、快速入门II

星光下的赶路人star的个人主页 要活出自己之后再被人理解 文章目录 1、核心技能1.1 常用注解1.1.1 组件注册1.1.2 条件注解1.1.3 属性绑定 1.2 YAML配置文件1.2.1 基本语法1.2.2 示例1.2.3 细节1.2.4 小技巧&#xff1a;lombok 1.3 日志配置1.3.1 简介1.3.2 日志格式1.3.3 记录…

Qt视频播放器

一、设置好ui界面二、打开文件槽函数1.QDir::homePath()作用介绍2.QFileDialog::getOpenFileName()介绍3.QFileInfo介绍4.player 指针解释5.打开文件槽函数完整代码 三、视频播放器初始化1.QMediaPlayer()函数2.设置时间间隔的作用3. QGraphicsScene介绍4.QGraphicsVideoItem介…