虚拟ECU:彻底改变汽车软件开发与测试
汽车开发领域有着垂直性较强的一系列需求,其中最为瞩目的需求之一就是对安全高效的软件测试方法的需求。传统的汽车开发偏向使用硬件原型与真实ECU进行软件测试,但由于硬件设备往往在开发周期的中后阶段才生产完成,给汽车开发带来了成本与时间方面的挑战。最近一项研究表明,约60%的开发项目遇到没有真实硬件可用的情况,10%的工程师被迫在真实车辆上进行测试。
真实硬件的缺失及搭建虚拟硬件的高昂成本正带来一系列困境:
- 测试能力有限。
- 只有在真实测试时才能发现集成中的缺点。
- 无法在开发阶段验证设计,也无法提供快速更新。
- 无法应对当前市场中不断缩短的开发周期。
汽车开发的最优解:在某一模块开发完成或发生调整之后,进入下一流程前,即刻进行全系统测试。伴随“软件定义汽车”概念的深入,为实现这一目的,使用虚拟ECU来进行测试与验证已成为行业内的共识,业界已逐渐意识到虚拟ECU的潜力、优势及其在塑造未来移动出行方面的潜能。
01.什么是虚拟ECU验证?
虚拟ECU验证(通常称为vECU)是一种突破性的方法,可以在暂无硬件原型的情况下测试软件功能。通过创建独立于硬件的虚拟环境,开发人员可以在PC机上使用仿真模型闭环执行ECU、模拟各种场景,并在早期阶段评估软件功能、与环境模型的交互以及组件模型。这种安全且高效的方法使得道路、台架测试得以转移至PC机,支持在开发阶段进行全面测试,以最有效和最可行的方式确保ECU软件的可用性。
其优点有:
- 及早发现集成问题:虚拟ECU验证有助于及早发现与集成相关的缺陷,使工程师能够在进入下一个开发阶段之前及时解决这些问题。通过消除对硬件原型的依赖,可以更有效地识别和解决潜在问题,从而节省时间和资源。
- 可扩展的环境:虚拟ECU平台提供了一个可扩展的环境,可以适应特定的测试要求。开发人员可以在相同的时间内运行更多测试,从而提高生产力并加快整个开发进程。
- 减少验证工作:由于减少了对物理原型的需求,最大限度地减少了验证工作量和相关成本,开发人员可以专注于测试软件堆栈的复杂性,而不受硬件可用性的限制。
- 稳定可靠的测试环境:虚拟ECU平台提供稳定可靠的测试环境,不受物理原型的不确定性和限制。这种受控设置可以对软件功能进行精确测试和准确评估,确保在实际场景中具有强大的性能。
- 重用可用的硬件测试用例:通过将软件测试与硬件原型分离,虚拟ECU验证允许重用可用的硬件测试用例,不会丢失有价值的测试场景。

02.虚拟ECU是如何工作的?
虚拟ECU不依赖硬件,通过虚拟化环境来测试软件堆栈的复杂性,从而帮助开发人员构建ECU。通过连接外部环境模型的输入和输出信号,虚拟ECU得以使应用软件读取传感器值并设置执行器,并且可在相同时间内运行更多测试。

根据其使用情况,虚拟ECU有着不同的利用率级别:
- 0级vECU(控制器模型):最简单的vECU 类型,由控制器模型或由其生成的 C 代码组成,主要用于测试控制算法本身。
- 1级vECU(应用级):包含特定于虚拟ECU的应用软件代码,无需使用总线或网络。
- 2级vECU(模拟BSW):在1级的基础上提供模拟底层软件(BSW)功能,可以在信号级别以及总线或网络级别进行通信。
- 3级vECU(生产BSW):不仅包括应用软件,还包括用于测试目的的底层软件(BSW),能够评估真正ECU的硬件独立软件,并作为在各种测试级别测试BSW的手段。
- 4级vECU(目标二进制文件):以真实ECU编译的代码为代表。作为实时系统最接近的表示形式,4级vECU包括硬件依赖性,允许评估潜在的故障和问题。
*其中,4级又分为4a和4b级,分别指代部分未仿真和全栈仿真ECU。

03.移动出行的未来
虚拟ECU提供的协作属性使得汽车OEM和供应商能够在相同的工件(虚拟ECU)下无缝协作。vECU测试提供的真实可视化功能使其用户友好,并有助于不同利益相关者接受验证结果。这种方法不仅节省了时间和成本,使制造商能够投入更多时间部署新功能,也使ECU软件能够达到更高的成熟度水平。
随着自动驾驶、移动出行以及OEM对软件功能投资的增加,汽车行业已准备好迎接由汽车虚拟ECU等数字技术推动的重大转型。
04.工具推荐
SkyEye,中文全称天目全数字实时仿真软件,是基于可视化建模的硬件行为级仿真平台,能够为汽车嵌入式软件提供满足AUTOSAR标准的ECU虚拟化运行环境,实现故障诊断系统的预模拟。除了能够提前进行故障诊断的相关验证外,SkyEye还具备测试用例执行时间远低于实际硬件的优势,是车厂研发团队的最佳伴侣。
参考链接
https://www.cyient.com/blog/virtual-ecu-validation-validating-software-without-hardware-prototypes
相关文章:
虚拟ECU:彻底改变汽车软件开发与测试
汽车开发领域有着垂直性较强的一系列需求,其中最为瞩目的需求之一就是对安全高效的软件测试方法的需求。传统的汽车开发偏向使用硬件原型与真实ECU进行软件测试,但由于硬件设备往往在开发周期的中后阶段才生产完成,给汽车开发带来了成本与时间…...
【SQL Server001】SQLServer2016常用函数实战总结(已更新)
1.熟悉、梳理、总结下SQL Server相关知识体系。 2.日常研发过程中使用较少,随着时间的推移,很快就忘得一干二净,所以梳理总结下,以备日常使用参考 3.欢迎批评指正,跪谢一键三连! 总结源文件资源下载地址&am…...
51单片机简单控制180度舵机
代码: 链接:https://pan.baidu.com/s/1K9dg2NwRhy49db_O_hqv-g?pwd1234 提取码:1234 一、路线 我在了解这个舵机之前最像想看到的是一个完全的路径。 比如我想学习b站上那个智能门锁,那就得每个模块的基本代码都会才能结合各…...
PCL 常用小知识
文章目录 一、时间计算二、实现类似`pcl::PointCloud::Ptr`和`pcl::PointCloud`的两个类相互转换三、查找点云的x,y,z的极值四、知道需要保存点的索引,从原点云中拷贝点到新点云五、从点云里删除和添加点六、对点云进行全局或局部变换七、链接两个点云字段(两点云大小必须相…...
rbd块设备数据IO流程(client端)
一、rbd内核驱动写入流程 1)初始化 首先是rbd驱动的初始化工作:包括验证libceph的兼容性,分配内存,在sysfs中创建块设备控制文件、创建工作队列rbd_wq并调用INIT_WORK初始化它 module_init(rbd_init); static int __init rbd_i…...
数据仓库、数据中台、大数据平台之间的关系
数据行业经常会出现数据仓库、数据中台、大数据平台等概念,容易产生疑问,它们中间是相等,还是包含的关系? 数据中台和数据仓库概念的关系 数据中台概念是包含数据仓库的,数据仓库是数据中台中的一部分,包含…...
python写页面自动截图
from selenium import webdriver def take_screenshot(url, file_path):driver webdriver.Chrome()driver.get(url)driver.save_screenshot(file_path)driver.quit() if __name__ __main__:take_screenshot(http://baidu.com, D:\桌面\wang.png)要安装selenium还要安装google…...
【Qt 学习笔记】Qt常用控件 | 布局管理器 | 空白项Spacer
博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt常用控件 | 布局管理器 | 添加空白Spacer 文章编号:Qt 学…...
es问题汇总--待完善
1. 查询某个索引库中数据总量 方式一: CountRequest 鄙人喜欢这种方式 public long getTotalNum(String indexName) throws IOException {CountRequest countRequest new CountRequest(indexName);// 如果需要,你可以在这里添加查询条件// countReques…...
python 线性回归模型
教材链接-3.2. 线性回归的从零开始实现 c实现 该博客仅用于记录一下自己的代码,可与c实现作为对照 from d2l import torch as d2l import torch import random # nn是神经网络的缩写 from torch import nn from torch.utils import data# 加载训练数据 # 加载训…...
pcl::transformPointCloud()用法及注意事项
函数用法 #include <pcl/common/transforms.h> pcl::transformPointCloud(const pcl::PointCloud<PointT> &cloud_in, pcl::PointCloud<PointT> &cloud_out, const Eigen::Matrix4f &transform) 其中cloud_in, cloud_out的类型为pcl::PointClo…...
图像超分辨率重建相关概念、评价指标、数据集、模型
1、图像超分辨率概念 1.1 基本定义 超分辨率(Super-Resolution),简称超分(SR)。是指利用光学及其相关光学知识,根据已知图像信息恢复图像细节和其他数据信息的过程,简单来说就是增大图像的分辨…...
中移物联OneMO Cat.1模组推动联网POS规模应用
在第三方支付蓬勃发展和消费模式不断革新的时代背景下,新型联网POS终端以其智能化、便捷化的特点丰富人们生活便利度。在这一变革浪潮中,中移物联OneMO Cat.1模组ML307R凭借其卓越的性能和成本效益,成为推动联网POS规模应用的重要力量。 性能…...
二.常见算法--贪心算法
(1)单源点最短路径问题 问题描述: 给定一个图,任取其中一个节点为固定的起点,求从起点到任意节点的最短路径距离。 例如: 思路与关键点: 以下代码中涉及到宏INT_MAX,存在于<limits.h>中…...
LabVIEW高温往复摩擦测试系统中PID控制
在LabVIEW开发高温往复摩擦测试系统中实现PID控制,需要注意以下几个方面: 1. 系统建模与参数确定 物理模型建立: 首先,需要了解被控对象的物理特性,包括热惯性、摩擦系数等。这些特性决定了系统的响应速度和稳定性。实验数据获取…...
配置yum源
以下是在 Linux 系统中配置新的 yum 源的一般步骤和命令示例(以 CentOS 系统为例): 备份原有 yum 源配置文件:mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak 创建新的 yum 源配置文件(…...
深入理解数仓开发(二)数据技术篇之数据同步
1、数据同步 数据同步我们之前在数仓当中使用了多种工具,比如使用 Flume 将日志文件从服务器采集到 Kafka,再通过 Flume 将 Kafka 中的数据采集到 HDFS。使用 MaxWell 实时监听 MySQL 的 binlog 日志,并将采集到的变更日志(json 格…...
C++语言学习(六)—— 类与对象(二)
目录 一、对象数组 二、对象指针 三、this 指针 四、类类型作为参数类型的三种形式 4.1 对象本身作为参数 4.2 对象指针作为参数 4.3 对象引用作为参数 五、静态成员 5.1 静态数据成员 5.2 静态成员函数 六、友元机制 6.1 友元函数 6.2 友元类 七、类的组合 八、…...
3d选择模型后不能旋转什么原因?怎么解决?---模大狮模型网
在3D建模和渲染的过程中,旋转模型是常见的操作。然而,有时在选择了模型后,却发现无法进行旋转,这可能会让许多用户感到困扰。本文将探讨3D选择模型后不能旋转的可能原因,并提供相应的解决方法。 一、3D选择模型后不能旋…...
感知与建图,为什么不能只跑一个 SLAM Demo?
一、核心问题机器人要稳定工作,需要把视觉、激光、IMU、模型结果和ROS2协同整合到一条完整链路里,而不是只依赖单一的SLAM Demo。二、为什么SLAM Demo不够用?Demo的局限性:SLAM Demo只能证明单点功能能跑,无法覆盖实际…...
OpenAI 与 Anthropic 财务大比拼:一家亏损求上市,一家盈利逆袭在望!
57亿 vs 48亿5月中旬,两家AI巨头同时亮出底牌,OpenAI秘密提交IPO申请,Anthropic拿出首个盈利季度财务预测。OpenAI第一季度营收57亿美元,每赚1美元亏1.22美元;Anthropic同期营收48亿美元,落后近10亿&#x…...
GEO获客工具如何选择?
随着AI智能搜索全面普及,越来越多的企业开始关注GEO获客工具。面对市面上涌现的各类产品,如何理性、客观地做出选择?本文从技术适配性、操作落地性、数据透明度三个维度,结合惠搜GEO获客系统的实际设计逻辑,提供一套可…...
森林The Forest - 服务器开服
对于想要自建游戏服务器的玩家,云鸢互联是一个不错的专业联机平台选择。它提供稳定、低延迟且724小时在线的服务器环境,助你轻松打造专属游戏世界。平台主打极致的新手友好——全图形化控制面板,无需编写代码,也无需掌握Linux命令…...
零经验想投运营?3分钟AI生成高匹配简历,告别海投无效!
“我一个零经验小白,简历怎么写才能打动运营岗HR啊?!!” “海投了快100份简历,一个面试都没有,我是不是不适合运营?” 相信这是大部分想转行或者刚毕业,对运营岗有点心动但完全没经…...
DS4Windows终极指南:如何让PlayStation手柄在Windows上完美运行
DS4Windows终极指南:如何让PlayStation手柄在Windows上完美运行 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 想在Windows电脑上畅玩所有游戏,却只有PlayStation…...
为OpenClaw智能体工作流配置稳定可靠的大模型后端
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为OpenClaw智能体工作流配置稳定可靠的大模型后端 在构建基于OpenClaw的自动化工作流时,一个稳定、可管理的大模型后端…...
软件测试行业还有未来吗?从业者该何去何从?
前几天某软出现了稍具规模的维权活动,据说当事人是测试同行,感觉当前从业环境越来越恶劣了,然后我把各大招聘平台(如BOSS直聘、拉勾、智联招聘、猎聘等)上“软件测试”相关岗位爬了一遍,并做了深度数据挖掘…...
asnumpy - 让昇腾NPU和NumPy无缝对接
刚学深度学习那会,最顺手的是 NumPy。各种矩阵运算、广播机制、索引操作,闭着眼睛都能写。 后来跑昇腾NPU,发现 NumPy 代码没法直接跑——torch.tensor 和 np.ndarray 不能混用,数据要手动转来转去,烦死了。 直到我发…...
trae 提示 测到模型循环,请求已被中断。请重试或新建任务。怎么处理?
这个提示是 Trae 的防死循环保护机制,核心原因是:模型陷入了「重复执行无效操作 → 无法推进任务 → 又重复执行」的循环,系统主动中断请求,避免资源浪费和任务卡死。下面给你拆解常见原因和对应的解决办法,按从高到低…...
