首页 > 其他分享 >汽车软件开发模式的5个特点

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

时间:2024-01-31 13:56:27浏览次数:30  
标签:软件开发 车载 模式 特点 汽车 模块 整车 软件 联调

汽车软件开发属于较为复杂的系统工程,经常让来自不同知识背景的工程师在观点交锋时出现分歧。在解决复杂性和对齐讨论基准时,可以通过勾勒出讨论对象最关键的几个特征来树立典型概念。本文旨在通过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足够可靠之前,汽车软件不得不考虑其对生产的影响和生产对其的影响。

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

标签:软件开发,车载,模式,特点,汽车,模块,整车,软件,联调
From: https://www.cnblogs.com/digiproto/p/17999102

相关文章

  • 状态模式
    定义:允许一个对象在其内部状态改变时,改变它的行为类型:行为型适用场景:一个对象存在多个状态(不同状态下行为不同),且状态可以相互转换优点:将不同的状态隔离把各种状态的转换逻辑,分布到State的子类中,减少相互间依赖增加新的状态非常简单缺点:状态多的业务场景导致类数目增加,......
  • 访问者模式
    定义:封装作用于某数据结构(如List/Set/Map等)中的各元素操作补充定义:可以在不改变各元素类的前提下,定义作用于这些元素的操作类型:行为型适用场景:一个数据结构(如List/Set/Map等)包含很多类型对象数据结构与数据操作分离优点:增加新的操作很容易,即增加一个新的访问者缺点:增......
  • 使用IDEA打jar包三种方式 步骤(包含跳过测试模式)
    使用IDEA打jar包三种方式步骤(包含跳过测试模式)正文:方式一:网络最常见的打包方式。比较适用于普通项目打JAR包。方式二:比较适用于MAVEN项目打JAR包。方式三:maven界面。方式一:网络最常见的打包方式。比较适用于普通项目打JAR包。选中菜单栏中File–>ProjectStructure(文件–>项......
  • 设计模式一句话总结
    1.设计原则(SOLID原则)原则名字原则描述单一职责原则(S)功能只有一个开闭原则(O)开放扩展,关闭修改里氏替换原则(L)子类需要实现父类功能以保持兼容性接口隔离原则(I)不用的函数或者功能不要出现依赖倒置原则(D)细节依赖于抽象,约定优先迪米特法则只和朋友说话......
  • 边缘计算网关的功能、特点及应用-天拓四方
    传统的数据处理方式面临网络延迟、带宽限制和安全风险等问题。为了解决这些问题,边缘计算技术应运而生,而边缘计算网关作为其核心组件,正发挥着越来越重要的作用。边缘计算网关位于数据源和云数据中心之间。它具备数据采集、协议转换、数据处理、数据聚合和远程控制等功能。通过将数据......
  • [经验] 通联钱包是什么它的特点功能和使用方法有哪些
    随着现代人生活水平的提高以及互联网技术的不断发展,移动支付已经成为了一种趋势和生活方式。在众多移动支付应用中,“通联钱包”作为一款颇受欢迎的应用,备受消费者的青睐。首先,对于“通联钱包”,我们应该明确它的概念。通联钱包是一款依托中国银联,由通联支付推出的与银行卡完美结合的......
  • 双亲委派模式的优点
    一道面试题能不能自己写个类叫java.lang.System?答案:通常不可以,但可以采取另类方法达到这个需求。解释:为了不让我们写System类,类加载采用委托机制,这样可以保证爸爸们优先,爸爸们能找到的类,儿子就没有机会加载。而System类是Bootstrap加载器加载的,就算自己重写,也总是使用Java系统......
  • 设计模式相关介绍
    设计模式使用原则主要包括以下几点:单一职责原则:一个类只负责一项职责,即一个类应该只有一个职责,该职责由类的一个职责来定义。这样可以提高类的可维护性和可复用性。开闭原则:软件实体应当对扩展开放,对修改封闭。也就是说,软件的功能扩展应当通过增加新代码来实现,而不是通过修改已......
  • 关于SortableJS在handle模式下移动端无法拖拽的解决办法
    原因个人项目使用到了这个库,PC操作好好的,移动端一看不行,然后去官方github-issues查看搜mobile的issue,发现大家也会这样。找了一圈看了下,应该是handle(句柄)模式下,库没有做事件监听导致的。解决办法要么换个库,要么在移动端的时候,取消句柄模式即可。constwrapper:HTMLElement=......
  • csharp 发布订阅 设计模式
    event_learn\Program.csusingSystem;//定义一个发布者类,它有一个MyEvent事件publicclassPublisher{//声明一个事件,使用EventHandler委托类型publiceventEventHandlerMyEvent;//定义一个触发事件的方法protectedvirtualvoidOnMyEvent()......