汽车软件开发模式的5个特点

news2024/10/6 18:22:59

汽车软件开发属于较为复杂的系统工程,经常让来自不同知识背景的工程师在观点交锋时出现分歧。在解决复杂性和对齐讨论基准时,可以通过勾勒出讨论对象最关键的几个特征来树立典型概念。本文旨在通过5个典型特点的抽取,来勾勒出汽车软件开发模式的特殊性和变迁性。

01.车载与非车载软件的分类及差异

汽车软件是非常复杂的,种类繁多自是预料之内,首先需要解决分类这个最基本的问题。

1.1 带物理盒子的车载软件

最正宗的汽车软件当属ECU(Electronic Control Unit,电子控制器单元)里的软件,也就是车载软件。直观来看,就是固定在车上,并通过线束与电气系统或其他ECU连接起来的物理盒子。

ECU已经在汽车行业存在了近60年,但直到现在,ECU仍然是谈论汽车软件时的主要对象。只不过随着汽车电子电气架构的演变,ECU的功能越来越集中化——即现在炒得热火朝天的域控或中央计算。

无论如何,形式上来看,ECU或DCU(Domain Controller Unit,域控制器)都是嵌入在物理盒子里的车载软件产品

1.2 车载软件的内涵

除了形式,再看功能内涵。首先,基于这两年广泛流传的博世五域划分,可以将车上的电子软件功能进行分区,即动力域(车辆运动)、底盘域(安全)、车身域(车身电子)、座舱域(娱乐信息)和自动驾驶域(驾驶辅助)

这五域划分可以给出大框架的参考,但对于区分开发模式来说并不够友好。进一步的,车载软件可以划分为四类:

  • 第一类:与整车高度耦合或安全等级较高的模块,如发动机控制、电机控制、刹车控制、电子助力转向控制、车身稳定控制系统ESP、混动系统控制、安全气囊控制、电池热管理等。
  • 第二类:功能独立且安全等级较低的车身控制模块,如网关、照明控制、雨刮控制、车门车窗控制、无钥匙启动、天窗控制、座椅记忆控制、后视镜控制、功放控制等。
  • 第三类:智能驾驶,ADAS、AD及附属的雷达或摄像头传感器等。
  • 第四类:智能座舱或说车机,主要是以各类大屏为承载的软件。

1.3 非车载软件

除了车载软件,非车载类软件也广泛地存在于汽车行业的各个领域。包括云平台(如数据埋点后台、电池状态远程监控、OTA运营平台)、工具链软件、生产用下线电检软件(EOL,End Of Line)以及手机车联app车机上的第三方app

其中,云平台与app和互联网软件比较接近,车载软件和互联网软件则是完全不同类别的东西,谈论主体的不一致经常是两个行业背景的人产生分歧的原因之一。

当然,现在这些非车载软件还没有形成稳定及具规模的生态,所以本文仍然主要基于车载软件展开,但是V2X(Vehicle to Everything,车用无线通信技术)作为热点趋势仍值得被关注。

02.从代码到整车的5层集成

汽车软件种类繁多、模块众多,而且需要装在整车上跨模块、跨域体现功能,所以只要电子电气架构的集中化没有走到中央计算和云计算,只要供应链各方的软硬件自主权没有被收归一统,多层集成就不可避免。

按照当下的架构发展阶段可以把汽车软件的集成分为5个层次:

  • 将软件单元集成到一起
  • 将软件集成到硬件上
  • 将硬件集成到机械壳体上
  • 将ECU 集成到子系统中
  • 将子系统集成到整车上

03.联调与整车级评价

汽车软件开发是个各模块或功能域协作的过程。一直以来,大家习惯于在各自的电脑上、台架上完成开发与验证,然后在集成点处进行确认。“各人自扫门前雪”的协作惯例能让分工清晰,也会让几乎不可避免的问题延后暴露。

因此,部分与整车环境依赖关系比较紧密的模块(第一类)会提前进行联调,比如说安全气囊控制器:整车碰撞试验会花费高额的成本,一旦试验失效会造成时间和金钱的巨大浪费,前期的联调非常必要,比如安装方向、传感器位置、线束连接、电阻范围、DTC状态、软件版本及对手件响应等的联调确认。当然安全气囊太成熟、太传统,软硬耦合程度太深了,对于与其他模块或整车耦合程度没那么高的模块(第二类),其联调必要性就会减弱,比如简单的天窗控制模块和方向盘加热模块,可能台架上连接一个电机和加热垫就绰绰有余。智驾和座舱逐渐脱离了传统汽车软件开发模式,而二者之间也有些不同。

智驾的开发验证可以依赖一部分仿真模拟,但终归需要整车的调试标定,尤其需要运动控制部分的功能完善。智舱集成了大量的人机交互内容,无论是控制指令的发出还是反馈信息的投屏,大屏正在变成人与车的I/O口,这让座舱的开发颇为困难,所谓联调或者协同验证的意义和必要性也十分显著。

总之,这一趋势正逐渐显现:联调正伴随着架构的集成化逐渐演变为对整车整体的评价。

04.开发验证受制于实车环境

仿真是个非常古老的概念,其发展看起来始终有些缓慢,汽车开发的各层级开发验证,都难以离开真实的物理环境,也就是车。车很贵,工程车尤其贵,退而求其次,大家用模拟信号与负载、用简易台架加ECU、用白车身、用拼凑的实车......而求其次自然会求来软件版本不对齐、验证负载不充分、暴露问题不及时等等各类次的问题。

受制于样件和实车的环境是汽车开发的特点,特别地,在架构融合的过渡阶段,更耦合的功能、更多的交互,会让这种单一仿真环境凸显出更大的问题。

05.考虑生产

一切软件都需要进入整车,从整车层面解决客户需求,而进入的第一步和主要步骤还是通过生产装配,特别是对于第一类(与整车高度耦合或安全等级较高的模块)软件,所以汽车软件要关注制造、关注生产。原因有二:

  • OTA技术、流程和监管还不足够成熟,还不能自由OTA。
  • 现有的标准化生产方式仍然足够安全可靠。

同时,ASPICE还会一定程度地回归,会随着行业生态的恢复和产品方案的成熟逐渐体现出其必要的规范性意义,其分层意义可能会随着架构集中的进一步发展而减弱。

06.全文小结

本文因汽车软件所在行业与产品特殊性,首先区分了汽车软件的分类,最典型的当属车载软件,按照开发模式的差异性分成了4类,而行业的方向正在向非车载软件延展。

对于分布式架构和协同供应链下的车载软件,多层集成是其非常直接的特点,大体来看,从代码到整车可分为5层。

每个集成点都是一个接口,接口之间需要联调,尤其对于跨模块、多接口的复杂系统。而随着架构的集中化,这种趋向整车级的评价会是越来越突出的趋势。

在仿真足够真实之前,出于成本的考虑,开发始终会受制于实车环境。同样的,在OTA足够可靠之前,汽车软件不得不考虑其对生产的影响和生产对其的影响。

总得来说,汽车软件的特点与两个概念密切相关:软件架构的软硬耦合和整车电子电气架构的分布式。而伴随着软硬解耦和架构集中化,汽车软件的特异性会逐渐地演变,乃至消亡。

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

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

相关文章

Flask 入门2:路由

1. 前言 在上一节中&#xff0c;我们使用到了静态路由&#xff0c;即一个路由规则对应一个 URL。而在实际应用中&#xff0c;更多使用的则是动态路由&#xff0c;它的 URL是可变的。 2. 定义一个很常见的路由地址 app.route(/user/<username>) def user(username):ret…

STM32 IIC电量计LTC2944

1 描述 LTC2944 可在便携式产品应用中测量电池充电状态、电池电压、电池电流及其自身温度。宽输入电压范围允许使用高达 60V 的多节电池。精密库仑反向积分电流通过电池正极端子与负载或充电器之间的检测电阻器。 电压、电流和温度由内部 14 位无延迟 ΔΣ™ ADC 测量。测量结…

GBASE南大通用数据库对与例程相关联的对象的权限

数据库服务器检查是否存在任何被引用的对象&#xff0c;并验证调用该例程的用户是否拥有访问被引用的对象的必要权限。 由例程引用的对象可包括&#xff1a; • 表和列 • 序列对象 • 用户定义的数据类型 • 由该例程执行的其他例程 当例程运行时&#xff0c;定义有效的权…

第六篇:express路由拆分(模块化)

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! ​ 目录 &#x1f4d8; 引言&#xff1a; &#x…

elasticsearch的基本使用

使用postman进行测试 如下图所示&#xff1a; 需要进行验证&#xff0c;请选择Authorization中的basic auth,填写账号以及密码。 添加ik中文分词 安装 IK 分词器插件&#xff1a; 下载 IK 分词器插件&#xff0c;可以从 GitHub 上的 elasticsearch-analysis-ik 页面下载最好…

学习使用vite+vue3的所遇问题总结

组件中使用<script>标签忘记加 setup 这会导致Navbar 没有暴露出来&#xff0c;导致使用不了&#xff0c;出现以下报错 这是因为&#xff0c;如果不用setup&#xff0c;就得使用 export default …… setup 是后者的语法糖 在Vue.js中&#xff0c;你可以通过route对象…

Python学习--一个逻辑推理的猜数字的游戏

修订Pico Fermi Bagels猜数字游戏代码&#xff0c;仅用于学习Python。 运行界面如下&#xff1a; 修订的代码如下&#xff1a; # // # 提升逻辑思维猜数字小游戏 # BY&#xff1a;Al Sweigart alinventwithpython.com # 翻译&#xff1a;诚外无物 # 说明&#xff1a;一个逻辑…

微信小程序之下拉刷新事件、上拉触底事件和案例

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…

Android systemui 编译

目录 简介&#xff1a; 一、步骤 二、下载源码 三、环境配置 四、确定好需要编译版本 五、编译SystemUI 步骤1&#xff1a;进入源代码目录 步骤2&#xff1a;初始化编译环境 步骤3&#xff1a;选择目标设备 步骤4&#xff1a;编译SystemUI 步骤5&#xff1a;查找生成…

kubeadm安装K8S_v1.28.x容器使用docker

一&#xff0e;环境部署 1.1 基础环境配置&#xff08;只有1台服务器&#xff0c;作为masrer&#xff0c;也作为node使用&#xff09; [rootecs-cf5e ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [rootecs-cf5e ~]# uname -a Linux ecs-cf5e 3.10.0-11…

全志R128基础组件开发——显示与屏幕驱动①

RTOS 提供了一套完整的屏幕驱动&#xff0c;支持 RGB, i8080, SPI, DBI 格式的屏幕。 &#xff08;1&#xff09;RGB 接口 RGB接口在全志平台又称HV接口&#xff08;Horizontal同步和Vertical同步&#xff09;。有些LCD屏支持高级的功能比如 gamma&#xff0c;像素格式的设置…

【哈希】哈希表|除留取余法|哈希冲突(拉链法interv)|一致性哈希|虚拟节点

哈希 hash 散列函数&#xff08;将非常大范围的输入&#xff0c;通过一定的函数&#xff0c;可以转换到小规模的输出&#xff09; 什么是哈希&#xff1f; 广义上是一种思想&#xff0c;不是一个特定的东西&#xff0c;只要算法设计中使用到了哈希思想&#xff0c;就可以叫…

怎样选择多线程多进程和多协程?

有这么多可以实现并发的方式方法,那么,我们怎么确定在合适的时机采用合适的实现方法呢?这就需要我们对各个实现并发的方式方法有一个全面的概念性的理解,以及他们的内在执行逻辑优缺点有一个清晰的认识! 如下图所示,首先我们需要对单进程、多进程、多线程及多协程之间有…

【代码随想录-链表】两两交换链表中的节点

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

docker-compose Install HertzBeat

HertzBeat前言 HertzBeat 赫兹跳动 是一个拥有强大自定义监控能力,高性能集群,兼容 Prometheus,无需 Agent 的开源实时监控告警系统。 易用友好的开源实时监控告警系统,无需Agent,高性能集群,兼容Prometheus,强大自定义监控能力。​ 集 监控+告警+通知 为一体,支持对…

Redis -- 开篇热身,常用的全局命令

目录 Redis重要文件 启动停止脚本 配置文件 持久化文件存储目录 核心命令 set get 全局命令 keys exists del expire ttl 过期策略是如何实现的 定时器 type 小结 Redis重要文件 启动停止脚本 /usr/bin/redis-benchmark &#xff1a; 用于对Redis做性能基准…

故障诊断 | 一文解决,LSTM长短期记忆神经网络故障诊断(Matlab)

文章目录 效果一览文章概述专栏介绍模型描述源码设计参考资料效果一览 文章概述 故障诊断模型 | Maltab实现LSTM长短期记忆神经网络故障诊断 专栏介绍 订阅【故障诊断】专栏,不定期更新机器学习和深度学习在故障诊断中的应用;订阅

nodejs+vue+mysql大学生心理健康咨询预约评价管理系统1xmao

本课题要求实现一套高校大学生心理咨询管理系统&#xff0c;系统主要包括管理员模块和用户、咨询师模块功能模块。 系统根据现有的管理模块进行开发和扩展&#xff0c;采用面向对象的开发的思想和结构化的开发方法对高校大学生心理咨询管理的现状进行系统调查。采用结构化的分…

力扣之2619.数组原型对象的最后一个元素-JS

Array.prototype.last function () {const a this.length;if (a 0) {return -1;}return this[a - 1]; };const nums [null, {}, 3]; console.log(nums.last());说明&#xff1a; 在 JavaScript 中&#xff0c;Array.prototype 是每个数组对象的原型。通过在 Array.prototy…

故障诊断 | 一文解决,BiLSTM双向长短期记忆神经网络故障诊断(Matlab)

文章目录 效果一览文章概述专栏介绍模型描述源码设计参考资料效果一览 文章概述 故障诊断模型 | Maltab实现BiLSTM双向长短期记忆神经网络故障诊断 专栏介绍 订阅【故障诊断】专栏,不定期更新机器学习和深度学习在故障诊断中的应用;订阅