锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

当软件定义汽车成为趋势,未来汽车是否可以理解为四个轮子上的超级计算机?

时间:2022-08-14 07:00:01 abs轮速传感器各自的优缺点加速度传感器频率响应标定简易式压力变送器abs轮速传感器固定结构堆叠式卡连接器abs轮速传感器被动式002

文章目录

  • 谈汽车软件行业
  • 汽车软件的现状和发展方向
    • 本文首发于EE在微信微信官方账号搜索汽车会EE可查看汽车汇。
    • 简介:本文讨论了热门的汽车软件话题。我也试着回答三个我们更关心的问题。主要有三个方面:1)传统汽车是否有软件,为什么传统汽车行业看起来像是被动地开发汽车软件?2)新能源汽车的语音控制系统、自动停车、拥堵跟踪系统是否可以被视为革命性的汽车软件?3)汽车软件的前景如何?瓶颈技术和创新是什么?
  • 如何理解「定义汽车的软件」?
    • 传统汽车有什么问题?
    • **软件定义汽车,说白了,就是把车做成手机**
    • **为什么软件定义汽车?**
    • 软件如何定义汽车?
    • **3.如何实现汽车软件定义?**
  • 软件定义汽车(1)-汽车电子电气架构EEA
    • 帝国本身阻碍了帝国的成长。软件定义汽车的本质不是技术问题
    • 趣闻:量产过程不是自动驾驶工程师不努力,而是臣妾做不到。
    • 理论上,自动驾驶的研发周期不可能与整车的研发周期相一致!
    • **你以为结束了?汽车工程师的软件定义刚刚完成了第一步!**
  • 软件定义汽车(2)-软件中间(Autosar为例)
    • 操作系统、中间件、应用软件-各司其职,分工不同
    • **汽车软件中间件是什么?**
    • 汽车软件中间件有什么好处?
    • 汽车软件中间件有什么缺点?
    • 中间件的明星方案-AUTOSAR
    • AUTOSAR-Adaptive拯救AUTOSAR
    • 技术细节-AUTOSAR的分层设计
    • 技术细节-AUTOSAR ADAPTIVE架构介绍
  • 软件定义汽车(3)-SOA架构
    • 整车现在采用了什么机制?
    • 为啥要用SOA呢?用了SOA有什么好处?
    • SOA整车在架构下采用了哪些机制?一重境修为SOC(Service Oriented Communication) 基于服务的通信
    • SOA整车在架构下采用了哪些机制?二重境修为SORS(Service-Oriented Reuse-shared Design)基于服务的共享设计
    • SOA架构的开发思想梳理
    • **SOC(Service Oriented Communication) 设计细节**
    • **SORS(Service-Oriented Reuse-shared Design) 设计细节**
  • 软件定义汽车(4)-OTA升级
    • FOTA和SOTA的区别
    • OTA升级的意义
    • OTA升级流程
    • 客户导向的OTA设计原则
    • OTA短期体验问题
    • OTA长期体验问题
    • 总结
  • 汽车OTA哪家强?
    • **OTA赛道入场券**
    • 小鹏汽车
    • 蔚来
    • 理想
    • 特斯拉
    • ID.3
    • 奥迪
    • 长城WEY,哈弗
  • 汽车是如何开发的?-谈汽车开发过程
  • 在智能轨道上,如何看待新车制造力与传统汽车制造力之间的博弈?结局如何?
  • 汽车未来如何发展?随着电气化和智能化的加速,哪些跨境技术将应用于汽车作为最集成的载体?
    • 变色玻璃VS车窗
    • 投影仪VS激光LED车灯
    • 手机电池VS纯电汽车续航
    • 座椅VS汽车座椅的延伸
    • 耳机VS立体声与整车隔音
    • OLED曲面屏VS整车屏幕布置
    • 家用智能音箱VS车辆小助手
    • 手机传感器VS整车传感器
    • 手机变成了电脑VS汽车变成了家
    • 总结
  • 传感器攻防战-总结自动驾驶传感器
  • 汽车行业软件工程师的发展前景如何? IT 与行业或互联网行业的软件工程师相比?
  • 华为能成为下一个博世吗?
    • 本文首发于汽车之家,本人原创,转载请联系本人。

谈汽车软件行业

几天前,我回答了一个关于汽车行业编写代码的问题,这引起了很多争议。因此,今天我想谈谈汽车行业软件的现状。

之前有人问我,汽车行业有码农吗?

事实上,在过去的机械控制时代,汽车行业确实没有代码农民,但多年来,随着电气化和智能化的深入发展,汽车行业对软件工程师的需求越来越大。

汽车软件属于嵌入式软件开发,与互联网行业的软件开发大不相同。

汽车软件开发的特点

一、基于模型的开发MBD

MBD的全称是Model Based Design,基于模型设计可以节省开发时间和成本。MBD 主要优点是:

1, 图形化设计

大多数汽车软件都是基于模型的软件开发。这在大公司尤为明显,我们使用它Simulink将要实现的逻辑用图像的形式表现出来。图形设计逻辑清晰,交流维护方便。对于第一个代码作者和未来可能的作者,他们只需要理解图形,就可以知道代码实现了什么功能。而且如果不看图片,再看几千行代码是很费时的。

img图形设计

对于软件工程师来说,最重要的任务是实现算法。例如,我现在有一个自适应巡航系统。汽车需要根据前面的位置和速度来确定跟踪速度,以及是否切换跟踪目标。这些决策的过程是逻辑判断,需要软件工程师设计。

2, 自动生成代码

在模型开发中,图像算法最终依靠工具自动生成代码。代码效率显著提高,手动代码耗时长,容易出错。只要工具使用方便,自动代码就不会出错,质量高于手动代码。

二:代码书写标准统一

无论软件是自动代码生成还是手工书写,都需要遵循一定的标准。为了规范软件形式,汽车行业提出了许多统一的代码书写标准,如我们所知道的MISRA标准。

MISRA C Coding StandardC编程规范是工业标准,全称是 (The Motor Industry Software Reliability Association 汽车工业可靠性联合会) ,成员包括大多数欧美汽车制造商。

该标准包括大约100个C语言编码标准,旨在帮助汽车制造商开发安全可靠的嵌入式软件。一些编码标准让其他行业的代码农民看起来很荒谬,比如以下内容:

Rule 1: 三元操作符不得使用;

Rule2: 所有标识符不得超过31个字符;

Rule3:注释代码不得残留;

Rule4:不得使用goto以及continue;

如果你完全按照这个标准写代码,你的代码是可读的、可靠的、可移植的和易于维护的。遵循这个标准也可以管理代码的质量,但是Misra标准过于严格,一般企业会根据实际情况执行。

三、软件架构的统一

由规范编写代码,软件架构更加统一规范。

这就是AUTOSAR(AUTOmotive Open System Architecture 汽车开放系统架构)。

AUTOSAR该联盟由欧洲和美国的主要汽车制造商成立,致力于开发一套支持分布式、功能驱动的汽车电子软件开发方法和软件架构标准化方案,以应对越来越复杂的汽车电子系统。汽车在电气化、智能化的背景下ECU日益增多,迫切需要一套全新的整车软件设计标准来应对复杂的设计,使基本的软件元素,接口和总线系统能够实现标准化,降低开发成本。

通过AUTOSAR车车载网络、系统内存和总线的诊断功能进行深入管理。AUTOSAR主要有三个分层设计目标:

1, 建立独立于硬件的层软件架构

2, 提供方法论,包括制定无缝的软件架构堆叠流程并将应用软件整合至ECU

3, 制定各种车辆应用接口规范,作为应用软件整合标准,方便软件构件再不同汽车平台复用

AUTOSAR整体框架为分层式设计,以中间件RTE为界,隔离上层的应用层以及下层的基础软件层。

AUTOSAR三层架构

AUTOSAR的优点在于可以模块化设计,并将“配置”的理念深入到软件开发中,真正让软件变成可设计的,能即插即用的软件结构。

汽车行业与互联网行业软件开发区别

经常看到一些观点说汽车行业是传统行业,保守;互联网行业是新兴行业,创新有活力。

就连同为造车的新公司都忙着和传统汽车企业撇清关系,说我们是造车新势力,互联网公司。。

相比互联网行业软件能够快速迭代开发,远程升级;汽车行业只能按部就班走流程来设计软件,因此汽车嵌入式软件是为互联网的码农所不齿的,因为我们开发速度跟不上互联网速度。

想来想去,两个行业的软件最大的区别是什么?是代码数量还是架构不一样吗?这些只是技术层面的东西,我觉的是汽车软件更侧重安全和可靠性。

互联网的软件,如果有bug,只需要后台进行推送更新升级就行,顶多造成使用不方便,一般不会有人生事故和财产损失。而汽车软件是容不下一个Bug,以及任何有歧义的代码。软件有问题轻会影响汽车正常使用,重则会造成生命财产安全。

而且,软件造成的问题后期保养维护很麻烦,需要安排大量人力物力进行售后,这对于汽车公司都是巨大的财产损失。

所以汽车软件必须小心翼翼,按照以下方法来干活:

使用自动代码,因为机器往往比人靠谱,不太会犯错;

即使手工代码,也严格按照汽车行业标准来书写,保证没有歧义,没有意外的情况发生;

在开发过程中,我们也按照ASPICE流程来指导我们的开发和测试,保证软件符合需求,并且质量过关;

同时,汽车软件还有功能安全来进行冗余设计,防止软件可能的故障造成无可挽回的后果。

也就是因为汽车软件开发有这么多条条框框需要遵守,每一个软件使用前都有这么多流程需要走完,因此,汽车软件基本就跟“快速响应”,“迭代开发”这些名词无缘了。

所以我们一直被造车新势力称为“传统造车企业”。

汽车行业软件工程师都是些什么人

目前汽车行业无论是传统ECU开发,混动/电动控制器/自动驾驶都离不开软件工程师。不过汽车行业的码农不同于其他行业,这个行业要求码农们不仅仅要精通代码,还要有以下技能树:

1, 对汽车/受控系统要十分了解。无论是传统车还是自动驾驶系统,都需要对汽车有一定的了解,不然无法开发控制算法。而汽车又是个十分复杂的机械系统,不是临时看看资料就能了解的,因此汽车行业的码农都需要有一定的机械学科背景。

2, 电学知识。汽车软件要接收来自传感器的大量的外部信号输入,包括各种数字信号(开关信号),模拟信号(传感器值),软件工程师有时候需要对这些值进行滤波,计算,转换为自己有意义的输入。因此对于想加入汽车软件行业的初学者也需要一定的电学基础。

3, 需要标定能力。汽车软件很多算法是无法在开发软件的时候得到,需要后期在实车/Labcar上实验得到。所以汽车软件的标定功能是强于其他行业的,汽车软件工程师也需要一定的标定能力来测试和开发软件。

汽车软件行业趋势

1, ECU整合度将提升

早在去年,大众就宣布力争让汽车上只有一个ECU。在一些供应商巨头内部,确实也在这么做。特别是在ADAS和自动驾驶下,整合的ECU架构尤为重要。

2, ECU将承载更多的传感器

未来汽车将需要更多的传感器来感知环境,以及保证依靠传感器来保证冗余设计。这对ECU的能力来说也是考验。不过高级算法与机器学习的发展,有望取代一部分传感器,减少传感器数量。

3, 汽车以太网发展

长期以来,汽车ECU都是在一个封闭的网络环境下。不过随着智能汽车技术,物联网的发展,很有可能会催生汽车以太网,实现跨域通信。不过如何保证功能安全,这将又是对汽车软件的一大考验。

汽车软件的现状和发展方向

本文首发于EE汽车荟,在微信公众号搜索“EE汽车荟”可以查看。

如需转载,请联系本作者:汽车搬运工王先生。

简介:本文就目前比较热的“汽车软件”话题,做一些讨论。也试图回答大家比较关心的三个问题。内容主要有三方面:1)传统汽车是否有软件,为什么传统汽车业看起来像是被动地发展汽车软件?2)现在新能源车普遍拥有的语音控制系统,自动泊车,拥堵跟随系统,是否可以认为是革命性的汽车软件?3)汽车软件的前景如何?有哪些瓶颈技术以及创新?

一.传统汽车的软件现状如何?

互联网人看传统汽车的软件,就像普通观众去博物馆看看考古发掘。这么又老又笨的系统怎么还在世,还没被革命呢!在新四化的趋势下,传统汽车的软件发展仿佛是口诛笔伐的旧社会代表,被无数进步势力不断diss。然而,拥有这些老掉牙软件的传统汽车却像野草一样,不但没有没落,而且还在扩张领地。对于比较新潮的互联网软件,传统汽车似乎完全不搭界。

那么传统汽车真的有软件吗?如果有,这样的软件还有生命力吗?传统汽车的软件发展,怎么这么慢?

拿比较简单的空调系统来举例说一下。当天气比较热时候,这时候需要把空调的温度调低,比方说,从26度调到22度。我们看下汽车内部是怎么运作的:Step1: 驾驶员手动给空调旋钮一个信号,将温度调整到22度。Step2: 空调控制单元接收到信号后,从车外,出风口等地方收集信息,以决定下一步送风量。Step3: 空调控制单元给予风门控制器一个信号,把风门的角度变大。Step4: 空调控制单元给压缩机一个信号,让压缩机运转,保证后续冷风的供给。完成这个循环后,空调控制单元会重复Step2以决定后续的送风量,风门开启角度。

说明:1)其实Step3和Step4一般是同时进行的,为了简便将其分为两步。2)一般会在空调控制单元本身会附有室内温度传感器,以判定室内温度。这个信号也要传递给空调控制单元。3)手动空调没这么多传感器,主要靠人来感觉温度是否合适,不过其内部有一些经验值参数以及逻辑设定。

我们可以从这个图里面看到,空调控制单元是整个机构的“大脑”,它担负起把人的需求,转化成实际的动作,并检查这些动作是否满足了需求。而这个过程,就是通过软件实现的。其实在空调控制单元里面,有一个小的PCB板,它的上面集成了这些简单的控制程序。可能和我们认识可能有些差异,这个控制器也拥有内存和缓存,并且有处理器。比如德系的空调控制器有大约1MB的内存,用于存储程序(使用C语言编写而成),同时有128Kb的缓存,用来存储临时数据。除此之外,这个控制器内部还有一个处理器,其中一个就是32位的96 MHz的处理器,相对于处理任务来说,这个处理器的速度还是挺快的,原因就是处理器领域摩尔定律太厉害,这已经性价比很高的了。这一点看起来和我们电脑非常的像,只是处理器,存储容量的数量级差太多。这些系统,对互联网思维根深蒂固的现代人来说,就像拿着iPhone的现代人看着Nokia的塞班系统的感觉一样。不过从本质的原理上来说,即使是最传统的汽车,也具备了软件,只是这些软件没那么复杂,看起来还很初级。

如果我们去分析其他汽车的系统,复杂的如自适应巡航系统,甚至自动泊车系统,简单的如玻璃升降系统,灯光系统,我们会发现同样的结果,这些系统中都有所谓的控制器,也有内存,缓存,处理器,程序语言。所有这些共同构成了汽车的各个电控功能模块。只是这些系统独立分布于汽车的各个区域。

简单小结一下几个重要的事实:1)汽车的很多模块都有所谓的“软件”,除了上面举例说明的空调,玻璃升降,天窗等都是这样的小系统。2)这些系统之间很少通信,也就是他们之间不交流。相对而言,这些小而独立的系统,构成了复杂的汽车系统。3)正是由于这些系统的独立性,这些系统没必要协同,也就是说这些系统都是独立开发的。

汽车最复杂的系统就是发动机,发动机控制器叫ECU,号称整车的大脑,其实发动机主要负责行驶相关的事情,其他的系统有一定的简单联络。除此之外的事情它根本不管,从整体上来说,发动机的ECU只是一个比较大的山头而已。传统汽车里面的这些控制系统,以及其内部的软件系统,更像一个松散的组织,跟协会差不多。这和我们熟知的电脑完全不一样,它们都有一个核心的控制系统。与之相比,传统汽车像几十年前的服务器式电脑一样。那么,传统汽车为什么这么久也没有产生这个系统呢?

如果仔细观察传统汽车驾驶情况,就能看出,所有的指令发出,几乎都是人来发出,汽车极少自己做决定,而驾驶员在里面充当了我们电脑CPU的作用,由人来协调各个控制系统的运作,甚至反馈运作的好坏并修正。在传统汽车时代,驾驶员在车内,除了听听收音机,享受下空调,几乎没有任何娱乐活动,他主要的活动就是加油,刹车,看后视镜,转向,和现在的出租车驾驶员差不多。而各个系统不相互交互其实提升了可靠性和安全性。所以,从驱动力量上来说,汽车完全没有必要去发展架构更好的软件。现在伴随着娱乐活动的增多,在车里的无聊驾驶时间就显得弥足珍贵了,也是各大商业机构来争抢的蛋糕。所以大家都在研究怎么把驾驶时间给解放出来,把商业或者娱乐应用加进去。从这个角度说,汽车自身是无法进化出所谓的中央系统的,这个中央系统是外界所迫,而不是汽车的核心需求。

二.现在很多智能汽车的软件是革命性的吗?

在这几年的新能源汽车发展,催生了很多“智能”系统,比如语音控制系统,自动泊车系统,拥堵辅助系统。这些系统仿佛是新能源汽车的标配,好像有了这个系统一下子汽车变成了新物种,就是智能汽车了。为了和传统汽车划清界限,这些汽车连宣传卖点都变了。

下面我举语音交互系统的例子来分析一下其运作过程。Step1:语音交互系统待机,普通的启动方式一般是“小X,小X”。Step2: 驾驶者发出一条指令,为了方便期间,我们还拿空调做例子,比方说把空调调节到22度。Step3:麦克风接收指令,将指令转化为可以执行的命令,并将此命令发送给空调控制器。Step4:空调控制器发送指令给风门……我想后面的命令大家都很熟悉了,这个和传统车一模一样啊。Step5: 空调控制器指令发出后,反馈给驾驶员信息,表示已经开始执行命令。这里面最复杂是Step2,就是麦克风如何把语言转化为命令,我们简要分析下。

语音输入如何转化为命令,这和我们手机的语音识别比较类似。这里面涉及到一个语音库的内容,即在语音识别前,将常用的语音录进去,形成一个清单,一旦输入的语音和清单中相符,即启动清单相应的命令。随着语音能控制的范围增大,这个语音库也会不停扩充。目前市面上的语音识别,甚至和驾驶员能够做简单的聊天,这和聊天机器人挺像,不过这已经不是汽车控制领域内的事情了。

从简图中可以看到在语音转化为命令过程中,产生了一个所谓的输入,输出,反馈系统,这就再次形成了一个汽车内部系统。因此在车机里面,集成了语音识别软件,当然也有所谓的内存,缓存,处理器等。只是车机的处理任务,相比我们传统汽车的空调控制器来说,要复杂很多,语音除了可以控制空调,也能控制整车的娱乐系统,天窗和车门玻璃的开合。

目前应用比较广泛的智能系统,我们会发现这些都是偏信息娱乐类的,也叫汽车舒适域。一旦涉及到整车的动力/驾驶,就只有很少的车企涉猎,并建立控制系统。现在所说的智能系统,很多都是从传统车本身就有的自适应巡航,自动泊车改造而来。所以,可以这么理解,现阶段大部分所谓的智能汽车,实现比较多的是把手机搬到了车机的显示屏上,这样整车可以显示更多的信息,实现车主的娱乐需求,完成一些简单的车辆控制。而汽车的核心–驾驶系统,目前还独立在智能之外。只有自适应巡航,自动泊车这些所谓的智能软件的发展,才算触及到了汽车功能的底层,而真正的自动驾驶,才可以称作用软件重新定义了汽车。

在传统车的网络架构里面,舒适域和行驶域是通过网关隔开的,也就是说舒适域无法去指挥行驶系统,只能通过我们的肢体动作来影响车辆行驶。也就说,一个车怎么“娱乐”都不会影响到整车的驾驶。为了方便理解整车娱乐和整车行驶系统的区别,我们举例说明下自适应巡航系统的过程:Step1:汽车得到自适应巡航的指令;Step2:采集雷达信号;Step3:采集ESP和转速信号;Step4:根据采集到的参数计算,调节喷油量;Step5: 调节变速箱档位;Step6: 调节制动压力。这里面Step2/3基本是同步完成的,Step4/5/6也是基本同步完成。从这个系统中,我们看到软件系统,开始介入到整车最核心的底层,也就是发动机/制动机构的操作。我们可以说,这才是真正的汽车软件。这个系统的计算量,对安全性的要求,和娱乐系统相比,都要高出一大截。而且这个系统的“大脑”是整车最重要的ECU,它亲自指挥了这个系统,在重要性上,传统车的ECU高于一切,这就是整车运作的基础骨架。

小结一下现在汽车软件的情况:目前大部分软件已经基本进入了整车娱乐系统以及简单的控制系统,不过只有很少车企才开始涉及整车的核心–驾驶系统。汽车软件还不能说是革命性的,只是比以前有很大进步。

三.未来汽车软件发展的方向和瓶颈是什么?

未来的汽车软件会发展成什么样子呢?习惯互联网思维的人总是说,快鱼吃慢鱼,迭代。而这些似乎和汽车无关,汽车的软件仍然是肉眼不可见的蜗牛式的慢速发展。这里面到底有什么原因呢?是互联网行业颠覆不了汽车业,还是汽车业太保守?汽车原本是机械控制的机器,在汽车界少有码农说法。只是汽车有越来越多的电器,也有越来越多的所谓智能功能,汽车软件才被提出来。

先来分析下传统汽车软件和互联网软件的区别。传统汽车是功能优先,比如我们说的空调系统,要实现制冷,制热的功能,而里面的软件只是为了方便硬件之间的协同,才被开发出来,这叫嵌入式软件开发,也是传统汽车里面绝大部分系统的开发方式。伴随着汽车供应商的发展,各个汽车系统都有强有力的供应商把持。所以这个软件开发核心考虑的功能满足,至于是否节约精简,和其他软件如何协同,这就不是重要的因素了。所以这时汽车软件和互联网行业软件开发的第一个区别,出发点和平台不同。

从汽车的发展来说,汽车软件都是从嵌入式软件发展起来,可以说汽车行业是传统行业,也是比较慢的行业,完全不能和互联网相对比。为什么汽车软件无法实现快速的迭代升级,只能按部的开发。其主要原因在于汽车非常强调安全性,这里面包括各种我们默认的问题:1)软件是否会出错,如果出错,后果是什么,如何避免出错?2)软件出错,如何修正?3)如何追踪出错的软件?所以汽车软件的开发,不太可能有革命性的发展,永远是步步为营,因为安全永远是在第一位的。在传统汽车软件里面,我们可以看到很多的额外安全设定,就是为了避免意外。我们的手机软件出错了,最多死机,很快后台就会有程序更新,把Bug修复。而汽车的软件,尤其是驾驶相关,是不允许出错的,特别是行驶当中。因为一旦有了问题马上就出出现以下结果:造成人员伤亡,这是无法允许发生的。而后面的问题对主机厂也是一个难以面对的局面:责任判定,车辆维修和召回,不但有大量的经济损失,也会引起大量的社会恐慌。所以汽车软件还有功能安全来进行冗余设计,避免特殊情况下带来的危害,也就是说要保证汽车始终可控。这就是汽车软件与互联网软件的第二个区别:汽车的安全属性太强,以至于软件开发的原则,是安全性,而不是便利性。

不过伴随着四化的进展,汽车软件无疑受到了最大的冲击。在此背景下,汽车软件也发生了很大变化。我想汽车软件行业如果想变化,学习现有的互联网即可。在这里首先要解决两个技术瓶颈。

首先要有的就是,汽车软件编写要有自己的规则,如MISRA,这就是目前汽车界为了统一大家的编写语言架构制定的规范,考虑到汽车软件的复杂度,这个规范和互联网编程规范比起来,非常的简单幼稚。而我们熟知的手机APP的开发,目前主流的已经跟PC的软件开发框架融合的很好了,手机的操作系统主流的就是IOS和Android,还有winCE,这些操作系统发展的很成熟,开发框架已经逐渐和原有的PC这些主流编译和开发语言整合了,比如JAVA的体系已经把基础库都涵盖了不同操作系统的编译能力。

其次,汽车界有可能诞生新的编程架构和规范吗?这就是AUTOSAR(AUTOmotive Open System Architecture 汽车开放系统架构)。这是一家致力于制定汽车电子软件标准的联盟,由全球汽车制造商、部件供应商及其他电子、半导体和软件系统公司联合建立,各成员保持开发合作伙伴关系。自2003年开始,AUTOSAR架构致力于车辆电子系统软件的交换与更新,并为高效管理愈来愈复杂的车辆电子、软件系统提供了一个基础。这个规范,其实就是实现了现在互联网界的几个基础:软硬件分离,各软件之间使用统一语言交互,各种接口统一,便于通信。不过这个架构虽然公布了十多年了,不过鲜有革命性的成果,我估计是因为各个汽车厂都有自己的小算盘,大家都在憋大招,不想轻易把一些东西让出去,就像每个传统制造企业都想保护自己专利一样。所以,各个主机厂也在出自己的标准,也有很多供应商参与到这个工作中来。

解决了这两个基础问题,那么汽车行业的软件会向哪个方向发展呢?最重要的就是像互联网一样的整体架构,也就是架构设计。

个人觉得汽车的智能化属性越来越强,加上摩尔定律在硬件行业的持续作用。从长远来看,汽车软件必将面临整合。分布于汽车各个区域的分散的软件,将来会集中到某一个或几个ECU中,也就是软件层面上,汽车具备了“大脑”。另外,随着各种传感器,雷达的价格降低,性能提升,这些ECU会接管更多的传感器,并收集这些信息进行计算。除了汽车本身的软硬件发展,其相关的网络发展,如5G,车内网的发展会助力车内电器以及软件的互联,也就是说,软件的连接有更多的介质,而不是总依靠于信号线。

在这里我们可以参考下Tesla Model 3的电器架构来看新的的汽车软件发展。

相比于现在传统汽车分散的控制器以及软件,Tesla有三个核心的“处理单元”:自动驾驶和娱乐模块,左侧车身控制器,右侧车身控制器。第一个模块负责驾驶辅助/娱乐系统,也可以说这个系统可以深入到汽车控制的底层。后两个分管了汽车的车门,灯光,底盘系统。其实这个架构非常像电脑的架构,电脑有所谓的南桥北桥,也有CPU,在电脑上各个硬件的交互非常成熟,也非常流畅,有业内人士指出Tesla车身电器架构的设计之初就是借鉴了电脑的架构,所以从这个角度来说,Tesla的整车,更像行走的电脑。相比于现在其他主机厂的汽车,还是在汽车上增加电器的模式,如果Tesla的道路证明是成功的,那么现在来看,Tesla对于目前市面上的车来说,是一个革命性的存在。

除此之外,Tesla还有自己的电池管理系统,热管理系统,能源分配系统等,这里不是我们讨论的重点,就不再累述。除了以上架构的不同,Tesla在内部也启用了车内网。从实际的使用体验来看,Tesla有更多的人车交互,这带来的更多的乐趣。所以很多人评论说,Tesla更像一个Computer,而其他的汽车更像Machine。

从上面Tesla的例子来说,它至少实现了我们所说的几个未来趋势:软件整合,车内网以及更多的传感器的接管(在某些功能上Tesla其实不算传感器最多的,其他新能源车如小鹏有更多的传感器)。在可见的商业领域,Tesla可能代表了未来的趋势。从瓶颈上来说,还有三个技术难点:1)传感器,特别是激光雷达的技术革新和价格降低2)各种软件的进一步道路试验,已进行安全性的改进,如自动驾驶还需要更长里程的实验,以及各种场景的实验。3)如何用用更稳定的车内网来替代现有的信号线,以带来更大的硬件和软件空间。

从可见的将来来看,整车的智能化,会更快的上来,只是没有互联网所说的那些“迭代”那么快而已。第1点和3点,对业界来说都一样,大家的起点一致,也受限于几家硬件供应商。第2点,各个主机厂的准备情况和道路也都不一样,有Tesla的自己设计验证,也有大众投入巨大的MEB+VW.OS,通用的Cruise,谷歌的Waymo。有长于创新,制造出颠覆性产品的参与者;也有长于安全,制造出可靠产品的参与者;还有完全的非汽车行业的跨界者。最终的胜出,我想不是一个选择题,而是一个整合题。


泻药,回答这个问题我们首先要理解什么是“软件定义汽车”,为什么这个事有必要,并深入了解什么最终决定了"软定车”的成败。文章略长,由浅入深,可放心食用。

如何理解「软件定义汽车」?

只要你知道什么是手机就知道什么是“软件定义汽车”,以及为什么这个事有必要,却又为什么很难,必须上升到战略层面来看这个问题。

传统汽车到底出现了什么问题?

假设你有一手机,可以刷个弹幕,拍个照,吃个鸡。实现了多样化的功能,而这些功能的切换,更新往往在几分钟里面就完成了。
假设你有一汽车,可以听广播,你说那能不能,让这个车跳个舞吧,假设车厂认可你的需求,保守估计你得等个2年

客户爸爸已经越来越不能满足车辆功能的开发周期,期待更快的功能迭代,而车不能满足这个需求。当有一个车厂开始干了这个事情。其他车企就是隔代的竞争,这就是为什么会有“软件定义汽车”,核心是应对客户日益增加的迭代需求。

软件定义汽车,说直白点,就是把车做成手机

传统车辆上的结构就是以CAN网关为中心的多个独立小控制器,车厂的工作简单来说就是定义好要什么功能,然后一个功能让供应商给个小控制器,然后供应商告诉车厂,我的控制器要正常工作,什么信号进,什么信号出,然后车厂设计到整车DBC中**(后面我会讲,不要让DBC工程师随便改需求,他会杀了你的)**最后车造出来,你就可以用上这些功能了。

然而客户说明天我就要一个新功能,噩梦就开始了。

这里有几个关键点需要高亮出来:

  1. 控制器非常之多,且全部由供应商各自管理自己的软件和硬件
  2. CAN和CAN网关可以理解为是一个公共协议接口,任何调整都会影响到所有其他控制器
  3. 控制器都很难单独连接到互联网,都需要逐个单独连接进行更新。
  4. 一个功能,涉及到多个控制器一起调整,各种供应商会相互制约。

这些约束就导致了,车辆无法快速的进行功能迭代。

那手机软件又是如何做到如此快的功能迭代的呢?SOA架构又是什么?

软件定义汽车,虽然名字有软件,最先开刀的还是硬件,手机已经是一个满足软件定义的硬件系统了,除了一些基带芯片等专用芯片,大部分功能需要都集中在一个芯片里,而汽车完全不是,大大小小一堆,改变也不是一个纯粹技术问题,可以看我在专栏中的专题文章



这里提纲挈领的把核心观点总结下。**首先我们要看到传统汽车到底出现了什么问题?**假设你有一个手机,打个游戏每个颜,安装更新,一般几分钟里面就完成了。 但如果是一个汽车,你希望更新一个功能,从被甲方知道到实现,至少需要2年的时间。过去还好,但在新时代客户已经很难容忍这种开发周期,我们希望汽车的功能迭代能够像手机一样的方便。

因此,软件定义汽车,简单说,实际上就是想把汽车做成手机或者计算机的样子,我这里花了个草图比对下两者的差别

传统车辆电气结构就是以CAN网关为中心的多个独立小控制器,车厂的工作简单来说就是定义好要什么功能,供应商给个小控制器(VCU)实现,然后供应商告诉车厂,我的控制器要正常工作,需要什么信号进,要什么信号出,车厂把他设计到整车DBC中,形成一种CAN上大家互传信息的公共协议。所有功能基本就可以RUN起来。

然而当客户的更新需求越来越快的时候这个方法就不靠谱了。

如果客户要增加一个功能。控制器A要变化->CAN协议和链路要发生变化->用到这个协议的其他控制器也要变化->如果这个功能要增加一个新的控制器,则整个线束连接都要发生变化。然后供应商A,供应商B,供应商C排着队问车企要变更费用,要开发周期(半年-1年)更遭罪的,这种变更哪怕要更新软件,也要去4S店,或者压根不可能,下一次变更需要再等1年。这些零零散散的控制器相互耦合,导致了车辆无法快速的进行功能迭代。

而反观手机就没有这种问题,原因就是整个手机只拥有一套芯片,一套控制器,一套操作系统,软件在这个基础上的任意更改变得容易很多,并且不需要对硬件作出什么变更。再次说明了,软件定义汽车就是要让汽车变成手机,变成计算机,可以安装自己喜欢的软件,可以随时更新软件版本,便捷快速,即安即用。就如同题主说的,未来的智能汽车如果给你的感觉,是在一台“超级计算机”上安了四个轮子,那他就成功了。因为一个计算机就可以很好的更新功能。

总结下,**为什么会要做软件定义汽车?**因为需要解决客户爸爸日益增加的功能需求和缓慢的整车开发流程之间的矛盾。**软件定义汽车做了什么?,**让整个系统在硬件上拥有更高的集中度,在软件上拥有更广泛的灵活性。技术细节我写了四篇文章,需要专业分析的可以看下



1、为什么软件定义汽车?

  • 整车代码量和复杂度增加

对比于传统汽车的 “三大件”定义汽车,消费者关注于发动机、变速器和底盘。随着汽车不断走向智能化和网联化,消费者将开始关注差异化和科技感的配置,功能的实现严重依附于软件,因而汽车代码数量和复杂度也日益增加,软件在整车的研发成本也越来越高。

  • OEM研发模式的优化

站在OEM角度,需要OTA来实现功能的完善、算法的更新、BUG的修复和成本的优化等。另外在激烈的竞争下,硬件利润空间在不断压缩,OEM参考消费级产品靠售后的软件及服务收费分摊一次性硬件成本的模式,开始在售后软件生态、技术付费上进行探索,需要消费者来为自动驾驶等功能高额的软件开发成本买单。

  • 消费者需求的改变

站在消费者角度,靠传统硬件差异化配置有无,不足以满足差异化需求,需要更多的软件配置来提升使用体验生活,如:个性化界面显示、自动驾驶、智能音视频交互等,普通消费者需要花钱来感受更多的科技体验,等同于现在互联网付费服务。

2、软件如何定义汽车?

  • 软件定义汽车的功能和性能

智能驾驶、车联网、智能座舱等功能的实现,都主要由于软件来定义,如底层软件Autosar,操作系统QNX、Andriod等,安全软件OTA,还有娱乐化、智能化应用等。

软件决定产品的性能,类似于手机的操作系统,软件的可靠度将直接影响产品的性能。而且汽车还涉及到一些安全层面的功能,黑科技功能不断增加的同时,软件显得更加至关重要。

  • 软件缩短功能的迭代周期

传统汽车厂商的销售方式是以销售的实现为终点,“只管生不管养”的模式,依托车型的年改、中改、大改、换代来实现机械硬件更新,迭代周期和成本也很高。消费者对新技术的尝试只能换车,成本相对较高,传统汽车的软件更新几乎与汽车生命周期同步,极大地影响了用户体验。

特斯拉能够通过硬件升级+软件OTA做到常用常新,软件OTA降成本的同时,大大缩短功能的迭代周期,给消费者带来用户体验的极大提升,其功能付费升级模式也逐渐被传统OEM效仿,国产供应商的产品开发流程和售后维护提供新的思路。目前的传统OEM与特斯拉,有点像诺基亚与苹果的关系,但特斯拉是不是颠覆者还有待时间验证。

3、怎么实现软件定义汽车?

目前来看传统的OEM通过软件定义汽车还要一段路程要走,包括电子电气架构、半导体、硬件平台化与预置、自主开发与否等方面。

  • 整车电子架构的集中化

受到电子电气架构的制约,传统车企的 OTA 只局限于车载信息娱乐系统等特定功能,假如说一个车有60个ECU,分别由于不同的Tire1开发,有着不同的嵌入式软件和底层代码。这种分布式的架构在整车层面造成了相当大的冗余和BOM成本,而且整车企业并没有权限去维护和更新 ECU。

整车电子电气架构的集中化,使用中央处理器对不同的域处理器和ECU 进行统一管理,可以降低硬件的冗余、BOM成本和OEM对众多Tire1的依赖,模式是自主开发软件还是深度绑定Tire1/软件公司还有待进一步的摸索。

  • 半导体算力的提升

整车电子电气架构的集中化,需要半导体算力的满足,如自动驾驶的落地需要一颗小型化、算力强大的计算平台,而不是整个后背箱工控机,如Mobileye的Eye Q4/Q5、英伟达Drive系列、华为的MDC600、特斯拉的FSD,还需要与之配套的运存LPDDR4/5及大容量存储eMMC/UFS/SSD等用于数据的处理和保存。国产OEM厂商可能没有芯片自研能力,可以与供应商合作来满足自身域控制器的研发需求。

  • 硬件标准化与算力预置

软件决定产品性能,但是硬件决定产品的天花板,再强大的功能也要依托硬件的实现,软件定义汽车的前提是要做到硬件标准化,进而实现软硬分离。特斯拉提供的硬件升级服务,能从AP2.0/2.5升级为AP3.0,MCU1.0升级为MCU 2.0的服务,硬件的升级对芯片方案、接口平台化,底层软件兼容有较高的要求,要做到硬件的通用性和标准化,为国产供应商的产品开发流程和售后维护提供新的思路。

传统OEM的商业模式不考虑后续的升级需求,在成本压力巨大的竞争模式下,不可能预留芯片算力和存储空间、冗余的模块用于后续的升级,基本上都是刚刚好满足当前功能需求,想要增加功能或者算力,只能更换平台、方案或换件。有些功能可以通过软件优化来实现,但还是受到硬件能力上限的制约。像特斯拉自动驾驶功能的OTA升级,在AP硬件研发的早期就考虑到未来一段时间的软件及AI算力需求,当硬件不足以满足需求时,好的硬件标准化还能通过硬件升级,继续保证功能的实现。

  • 自主研发or合作共赢?

传统OEM更擅长的是对传统供应来的管控,对软件的把控能力需要进一步的提高,可能需要绑定一家Tire1合作开发。互联网造车出生就带有互联网的基因,对软件的把控方面可能会更有优势,但对整车产品力的打造和消费者的认可度方面还需要打磨。无论是汽车行业老兵、还是互联网入局新贵,各家有各家的玩法,但最终都要落地到可落地的产品上,需要有消费者为技术买单。


软件定义汽车(1)-整车电子电气架构EEA

汽车智能化、电子化程度的不断提高,这是大背景,这个大家肯定没异议。毕竟客户爸爸们现在很喜欢,未来会更喜欢。

这时候来了三批工程师要搞定这个事,他们首先要解决的就是咋么把车上这么多电子设备连接起来,这个设计过程就是电子电器架构

所谓「电子电气架构」,简单地说就是把汽车里的传感器、中央处理器、电子电气分配系统、软件硬件通过技术手段整合在一起。通过这种架构,可以将动力总成、驱动信息以及娱乐信息等,转化为实际的电源分配的物理布局、信号网络、数据网络、诊断、容错、能量管理等电子电气解决方案。

通俗来说,汽车是一个软硬件结合的产物,如果把它比作是一个人,「四个轮子+一个沙发」是身体,电子电气架构就相当于神经系统,负责完成各个部位的连接,统领整个身体的运作,实现特定功能。

首先是一群抱着**“机械定义汽车”**思维的传统车企工程师开始动作了。增加电子控制单元(ECU)、增加传感器、增加仪表。要连接了咋么办。哪两个东西之间有需求,就加根线呗。

传统的车上电气系统,大多采用点对点的单一通信方式,相互之间很少有联系

但随着系统变复杂情况不对了,布线系统变得异常庞大, 一辆传统连接的汽车中,导线总长度可以达到2000多米,电气节点可以达到1500多个。导致线束材料成本剧增,可靠性骤减。系统不可持续了。

又来了一群抱着**“硬件定义汽车”**思维的车企工程师开始寻思了,计算机硬件里不是有总线嘛,能不能借鉴下,大家都先连在几根粗线上。

总线技术可以简单理解为高速公路,路上所有的车(信息)都走一段高速,降低道路(线束)成本。

为简化线路连接,提高可靠性、利于各装置之间的数据共享,以汽车分布式控制系统为基础的车载网络总线技术发展起来了。

汽车总线技术的优点是在统一应用层协议和数据定义的基础上,可以使之成为一个“开放式系统”,具有很强的灵活性。对于任何遵循上述协议的供应商所生产的控制单元都可轻易添加入该网络系统中或者从网络系统中拆除,几乎不需要做任何硬件和软件的修改,这完全符合现代汽车平台式设计的理念。因此汽车电子控制采用网络化设计可大大降低设计成本。

当然行人或者自行车(数据)移动的过程对路(线束)的需求不同,不同设备之间的通讯也有不同需求,有些要高可靠,有些要大容量,有些要抗干扰。这也催生了大量的汽车网络如LIN,CAN,CAN FD, FlexRay,MOST,汽车以太网的百家齐放。

综合考虑功能和位传输速率等因素现有的汽车通信网络大致可划分为ABCDE类网络:
A类网络主要应用于低速场合,通信速率不超过10kb/s。目前A类网络中应用最广的是LIN总线。LIN总线标准是由LIN协会制定的专门用于低速网络的低成本
网络解决方案
B类网络主要应用于实时性要求不高的场合,通信速率一般为过10~125kb/s。以前有低速CAN,J1850和VAN等多种,目前低速CAN总线成为B类网络中的主流。
C类网络主要应用于实时性要求较高的场合,通信速率一般为125~1000kb/s。目前C类网络中主要有高速CAN,FlexRay其中仍属高速CAN使用较为广泛,普遍应用于动力、底盘、发动机等领域的控制。
D类网络主要面向多媒体、导航系统等领域,网络的数据传输速率为250kb/s~400Mb/s。目前的D类网络总线有IDB-1394和MOST。两者目前在量产中是并存关系。
E类网络主要面向成员的安全系统以及车辆被动安全领域。目前主要的E类网络主流为Byteflight,其最高传输速率10Mb/s。特点是强调高安全性。

可问题又来了,这高速公路是修了,成本也节省了,可这道路上的交规(总线协议)是几个山头(ECU供应商)定出来的,不允许你变化。最多两年变一次(整车开发周期)。还有一种情况是本来走自行车的现在要走卡车了,这路面又支持不了了,部分总线比如LIN,CAN并没有很高的容量扩展性。需求变化了,基本就只能让客户爸爸等两年换一辆车了。

这个时候抱着**“软件定义汽车”**思维的工程师跨步走来,看着他们好像要做软件了,实际他们第一件事还是尽可能的要折腾下硬件,就是在把尽可能多不同的总线合并(所有路都按照一个标准修建),另外尽可能多的合并控制器(哪有那么多山头,交通部全中国就一个),这样后面有个啥世博会,马拉松啥的,我可以根据需求统一变化,适应各种需求。

博世电子电器架构研究研究

这里还是要再专业点描述这个问题,在软件定义汽车思维下有三个重要的关注点

**硬件成本进一步降低:**相同功能需求下,减少 ECU(电子控制单元)数量,可以降低 ECU 物料成本,另一方面也进一步减少了整车线束使用量。Model S 线束约 3 公里长,而 Model 3 缩短了近 1 倍。

**硬件抽象:**此前的供应体系是供应商将「软件+零部件」打包卖给主机厂,软硬件的耦合很深,议价能力差,测试调试苦难。特斯拉的牛叉在于软件基本自己写,即便更换硬件供应商,也不会显著影响软件功能的部署。

**OTA升级:**在硬件抽象的基础上,特斯拉可以通过 OTA 的方式进行新功能的更新下放,以及对车辆状况进行良好监控,降低维修成本。整车软件开发变得更多样化,更简单。

一个最经典例子:特斯拉通过 OTA 解决制动距离过长的问题。彼时 Consumer Reports(消费者报告)发布的特斯拉 Model 3 测评中指出,这台车的 60mph-0 刹停距离并不理想,达到了 46.33 米,但是经过 OTA,Model 3 的刹车距离得到了显著提升。

刚才说了有三批工程师来解决这些问题,目前第二批工程师代表了主流的主机厂,而第三批工程师代表了Tesla等新兴的车企。主流主机厂看Tesla不眼馋嘛?家大业大干不过他?还真是。。。

阻碍帝国成长的是帝国本身,软件定义汽车本质就不是一个技术问题

表面上,车子都是整车厂造出来的,但这并不意味着车上的所有技术都是由整车厂研发的,供应商才是大部分技术的幕后功臣,而「整合」才是整车厂的重要任务。汽车工业百年发展,早已形成完备且复杂的供应商体系,比如我们常说的一级供应商、二级供应商、三级供应商。。。。

如此多供应商的加持,看起来更牛逼了。旧时代看着是一只军队,新时代里就变成了乌合之众。车企转型需要自身有足够强的研发能力,还得和供应商不断博弈,付出大量的人力物力财力,还需要经过一个比较长的磨合期,才能真正在量产车上落地。

**更重要的,欲练此功,必先自宫,主机厂们担心特斯拉的这种设计趋势会淘汰掉他们数十年来培育起来的零部件供应链。**谁能想到有一天,曾经让主机厂安逸发财的供应链成为阻碍其创新的绊脚石?

大众、丰田、上汽等传统整车厂,体量巨大。在电子电气架构上动刀子 , 如果不成功,谁来为负责?轻则影响公司未来几年产品的销量,重则事关生死。而且,难免会因此而触犯别人的利益,推行阻力很大。

特斯拉体量小得多,也没什么历史包袱,因此可以直接上手去做。而马斯克个人秉承的第一性原理的思维方式以及超强控制欲,多年以来,公司坚持创新自研、垂直整合,已经是这家公司的深刻烙印。特斯拉在电子电气和软件层面的优势,并不是偶然。

**传统车厂也在行动:**大众开发了自己的 MEB 纯电动平台,同时斥巨资成立软件中心,提升自己的软件能力,与此同时,大众设计了全新的 E3 电子架构,计划将 70 个 ECU 减少到 3 个域控制器。去年 5 月,通用汽车发布了新一代电子电气架构,支持整车 OTA。宝马也在全新一代产品(3 系、X5、X7)都已经可以支持整车 OTA,如果不是在电子架构层面做改变,这个特性是很难实现的。中国的头部 OEM 都在积极开发下一代的电子电气架构,并且在 2022 年左右实现新一代电子电气架构的平台化。

趣闻:量产过程,不是自动驾驶工程师不努力,而是臣妾做不到哈

如果你知道整车开发流程,一定知道“冻结”这个概念,关键接口,关键零部件在每个小迭代周期都会进行冻结,以维持各个块线的合作和同步推进,详细可见下面的回答。

许良:汽车是怎么开发出来的?-浅谈汽车开发流程576 赞同 · 62 评论文章

没有OTA或者域控制器之前,智能驾驶功能必须要等到底盘性能完全冻结才能开始进行标定、调教和测试,虽然多数时候会分多个迭代过程,进行多个周期的调试,但不管哪个周期,智能驾驶功能永远是拍在最后的。一旦前面的某些开发出现了延期,在量产前最着急最痛苦的就是智能驾驶工程师,因为压缩的基本都是他们性能提升和测试的时间。

自动驾驶的研发周期理论上就不可能和整车研发周期契合!

无论生物成长还是汽车制造基本都一个道理:简单构件往往会优先产生并投入工作,以支持复杂构建的产生,骨架,心肺,往往都会优先形成机能并支持大脑器官的发育,后者的成熟周期往往是最长的。不同器官需要处理的任务维度不同,因此复杂度也不同

就像小宝宝,如果它脑袋在出了娘胎后就不成长(传统电气架构),那牛津大学也要在娘胎里读了。虽然骨架,肌肉,心肺都可以在出生前健全,但10个月时间脑子的核心功能是好不了的,他需要对接外部环境。但如果可以后天学习,那ok了,差不多时候我就可以从娘胎里出来了。

OTA或者域控制器的产生,为自动驾驶等功能释放了更多空间和时间,让其开发周期和测试周期得到必要的保障。

你以为结束了?软件定义汽车的工程师刚刚完成了第一步!

把硬件折腾清楚了,充其量就是车的硬件基本可以和一台电脑或者一部手机相比较了,可这些东西可以真正工作起来还缺个操作系统哈(什么android,Windows,Linux),那汽车的操作系统是什么?

请看第二篇

殷玮:软件定义汽车(2)-软件中间件

软件定义汽车(2)-软件中间件(Autosar为例)

工程师们把硬件折腾的差不多了,嗯,是不是可以开始应用软件快乐的开发了,还不是哈,我们都知道手机,电脑啥的在应用之下,硬件之上,还有一个东西叫操作系统,车辆里也有类似的东西。

操作系统,中间件,应用软件-各司其职分工不同

操作系统-我负责对硬件,提供线程创建等服务,其他我不管
中间件-我负责和不同操作系统对接,并给上面应用提供通讯,资源管理等服务,其他我不管
应用软件-嗯,剩下都我的事,我管功能,不同系统,不同硬件的事我不管。

中间件(middleware)是基础软件的一大类,在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。在不同的技术之间共享资源并管理计算资源和网络通信。

另外中间件的定位不是操作系统,而是一套软件框架,虽然包括了RTOS,MCAL,服务通信层等协议和服务。两者看着很接近,但没有多少竞争关系。

操作系统的话题,我们另外一篇文章再聊,今天关注软件定义汽车的话题中心-中间件。

什么是汽车软件中间件?

随着汽车应用要求的不断提高,软件总量也随之迅速增长,这导致了系统的复杂性和成本的剧增,为了提高软件的管理性、移植性、裁剪性和质量,需要定义一套架构( Architecture );方法学( Methodology )和应用接口( Application Interface )。从而实现标准的接口、高质量的无缝集成、高效的开发以及通过新的模型来管理复杂的系统。

目前在汽车控制领域有多种总线标准,各侧重点有所不同。尽管总线通信速度越来越高,但是还没有通信网络可以完全满足未来汽车的所有成本和性能要求,因此需要兼容多种总线和底层协议的通信协议和规范。

中间件的核心思想在于“统一标准、分散实现、集中配置”。统一标准才能给各个厂商提供一个通用的开放的平台;分散实现则要求软件系统层次化、模块化,并且降低应用与平台之间的耦合度;不同模块来自不同的厂商,它们之间存在复杂的相互联系,要想将其整合成一个完善的系统,必须要求将所有模块的配置信息以统一的格式集中管理起来,集中配置生成系统。

这个架构还需要具备如下功能:解决汽车功能的可用性和安全性需求;保持汽车电子系统一定的冗余;可以移植到不同汽车的不同平台上;实现标准的基本系统功能作为汽车供应商的标准软件模块;通过网络共享软件功能;集成多个开发商提供的软件模块;在产品生命期内更好地进行软件维护;更充分地利用硬件平台的处理能力;可实现汽车电子软件的更新和升级等。

汽车软件中间件有什么好处?

所有把标准统一后的服务的优势都大同小异,总结主要几点

  • 跨配置,跨车型,跨平台,跨硬件适应
  • 提高了效率,软件开发聚焦差异化
  • 软件认证有标准可依
  • 方便行业软件互换,降低进入门槛
  • 更简单的集成已有工具链,支持从设计到代码全流程

对于Autosar,说实话,最有利的是OEM和基础软件公司,OEM可以标准化接口,自己做应用层或找软件公司开发应用,基础软件公司可以多卖软件。最不愿意的是tier1,因为增加了成本,还逐步可能沦为硬件生产商。但这个也不能说是autosar的锅,软件定义汽车下这个趋势的发展是必然的。

汽车软件中间件有什么缺点?

老实讲,这块大家讲的很少,都说这个很美好,但实际操作过程中,我觉得是软硬件一体设计上的阻碍。

值得注意的像Tesla这样的新兴企业并没有使用autosar这是为什么?所有平台性的软件,都有一个弊病,就是为了兼容一致性,会对软硬件协作的效率带来影响,autosar也不例外。

我感觉“Autosar就是汽车行业的塞班系统,看似很好,很标准,但是最终会被淘汰。就像当年的诺基亚一样,原因是最后会被一个软硬件集成度更好的iphone取代,iphone可不纠结能够给其他公司用自己的系统。

从商业和成本角度看

Autosar设计上已经有些落后,代码臃肿,对成本影响很大。打个比方,北美一个程序员一年的cost也就是15万美金,自己完成底层的开发就这个价,使用Autosar的工具链和代码臃肿带来的升级MCU开销远大于节省的这部分开发成本。细分Autosar的成本:

1.开发成本:首先需要购买autosar,本身就是成本,autosar包含的模块多,肯定要贵,但不一定所有的都会被用上。其次是人力投入,对于一个原来就有其他平台的新的第一个项目转换到autosar是增加人力的,对于新公司,购买autosar是降低人力的,很多模块不用自己开发了。对于建立平台以后的项目,实际差不多。

2.生产成本:首先是硬件成本,现在MCU越来越便宜,用不用autosar基本没区别,如果说存储空间特别小的MCU,比如防夹模块,本来也没要求autosar。其次是软件成本,这个才是问题,跟以前基础软件不同autosar现在收量产license费

从技术角度看

关于autosar的应用,autosar之前定义的主要就是BCM、TCU、EMS、ESP等要求实时控制的ECU。不是针对娱乐系统,自动驾驶MPU的,当然这些控制器里也有MCU,可以用运行autosar的MCU。autosar现在最擅长的是16bit MCU以及不

相关文章