汽车上看不见的软件系统|深度剖析

智能汽车设计 2024-05-30 07:44

引言:汽车软件系统同硬件系统一道实时获取、理解驾驶员需求,通过逻辑运算得出机械部件需要做出的响应并发出指令。软件、硬件相互合作,它们一同组成了汽车电子系统。
 
当你跨入汽车,按下启停键,你点燃汽车动力核心,仪表亮起。挂挡,踩满油门,你感受到十足的推背感。
 
高速上,打开自动巡航,汽车驾驶辅助系统为你接管大部分行驶功能。
 
到达目的地,按下自动泊车,汽车自主转动方向盘控制油门进入车位。
 
这些年来,你能感受到汽车新功能带来的驾驶乐趣和出行便利,你能看到驾驶室内日渐丰富的中控系统。而在汽车炫酷的外表下,你看不见的是:
 
  上百个电子控制单元中循环执行的代码功能块;
  在连接各电控单元的线束中不断穿梭的电子信号;
  终端执行器在接受电子指令后的精准运作;
  以及遍布汽车各个角落的传感器和实时传回的感知数据。
 
这套隐形而强大的系统就是汽车软件系统。
 
它同硬件系统一道实时获取、理解驾驶员需求,通过逻辑运算得出机械部件需要做出的响应并发出指令。软件、硬件相互合作,它们一同组成了汽车电子系统。
 
汽车电子系统

遥想1950年,当时豪华车搭载的电子设备屈指可数:启动机、电池、车灯、转向灯和火花塞。只要40根铜导线就可以满足整车的电子部件通信和电能供给。
 
随着汽车向“四化”不断推进,汽车软件系统的功能越发可靠和多样。
 
如今普及的大型车载互动屏幕在当时是不可想象的,那个年代收音机是车载娱乐系统的全部。为了力保这唯一的多媒体设备能够正常工作,外置收音天线成为整车中要求最高的一根电线:毕竟它要在车外风吹雨淋,工作环境严苛。
 
1980年代。随着IT技术的起步和兴起,在当时机械主宰的汽车行业内掀起了一场电子电气化革命。今天汽车标配的安全气囊、防抱死系统ABS、车辆稳定系统ESP、发动机电控系统和导航系统都集中诞生于那个年代。搭载软件系统的电子控制器开始在车上出现。
 
随着控制器数量逐渐增多,不同控制器之间的通信问题亟需解决,如今人们熟悉的CAN总线、LIN总线等应运而生。
 
1990年,用于发动机管理和防抱死系统的电子控制器成为所有汽车的标准配置,软件成为汽车的重要组成部分,整车厂也逐渐意识到因为通信总线不断延长而日益升高的成本。2000年奔驰S级轿车的电子系统已经拥有80个电控单元,1900条总长达4km的通信总线。2007年奥迪Q7和保时捷卡宴的总线长度突破6km。
 
(汽车各大系统的软件功能逐年快速增长)
 
从上图可以看到,以奥迪为例,汽车各大系统的软件功能逐年快速增长。软件系统越做越大,越做越复杂,硬件系统跟着齐头并进。
 
在这些硬件数量爆发的背后,究其根本原因是汽车业需要满足客户逐渐提高的驾驶性和舒适性需求,同时要满足一系列汽车安全性能行业标准。
 
下图可以看到软件系统最小单元“功能函数”的总数随着时间推进,迅速增长。但是电子控制器的数量却在2010年前后开始放慢增长。这是因为越来越多的控制器,急剧增加了整车成本。整车厂面对成本压力不得不开始考虑应对策略,逐步将小型控制器集成到一个大型控制器。汽车电子系统从分散化转向集中化,减少控制器数量,降低总线长度,从而降低成本。
(离不开硬件的软件)
 
要理解为什么软件、硬件不能分家,只有组合在一起才可以组成汽车电子系统,我们需要首先搞明白汽车是如何与驾驶员和环境互动的。
 
下图是一个抽象出来的控制模型。驾驶员通过方向盘、踏板和换挡杆等给出期望(W*)操控汽车。这一系列实实在在、看得见摸得着的期望被转化为抽象的电子信号(W)进入电控单元。随后电控单元通过比较驾驶员期望(W)和传感器传回的当前实际值(R)进行对比。若对比发现,期望与现实存在差距,电控单元中的软件程序会通过逻辑计算给出指令(U)操控执行器做出响应(Y)。控制对象在执行器的动作和环境的影响(Z)下,开始做出驾驶员期待的反应(X)。这一反应(X)又会通过传感器监控、感知,当前状态(R)将再次返回电控单元完成控制闭合回路。

(控制模型)
 
听起来十分复杂抽象,这里举一个刹车辅助系统的例子来说明。
 
紧急刹车时,如果驾驶员脚力不足或反应较慢,没有及时将刹车完全踩死、踩满会导致刹车系统无法全力工作,在这种情况下这套系统就将被激活。在驾驶员刹车踏板输入不变的前提下,自动提高制动力使汽车更快减速。
 
例如,行车中遇到紧急情况,驾驶员抬起油门后,快速用力地踩下刹车踏板期望汽车迅速减速(W*)。刹车踏板通过采集踏板值变化率、踏板受力等信号(W)得到驾驶员踩刹车踏板的轻重、缓急等信息,理解驾驶员意图。W作为电子信号传入相应的电控单元中。同样传入电控单元的还有传感器的实时测量数据(R),例如当前轮胎转速或车速。若软件通过比较发现,当前轮速高、车速快、减速度不足,驾驶员踩下的刹车踏板深度不足以让刹车系统发挥出最大功能,最终得出液压制动系统需要进一步刹车的结论(U)。
 
(电子控制单元)
 
位于轮胎附近的制动卡钳接到指令(U)开始工作让轮胎转速变慢。结果由于路面结冰的影响(Z)车轮在强制动力的作用下开始抱死打滑,一系列制动工作没有让汽车达到预期的减速效果。传感器将发生的这一切以电子信号的形式通过通信线束(R)实时传回电控单元。软件逻辑将因此激活防抱死系统ABS,操控制动系统做出响应并不断接受传感器的控制反馈,最终达到让汽车减速这一驾驶员期望。
 
这一次次的控制,在电控单元中以10ms甚至更快的速度循环进行着。

 
(电子控制单元及其剖面图)
 
以上是一个十分简单的电控例子,只有一个电控单元参与其中。而现如今许多复杂的汽车功能常常需要由多个电控单元、多个传感器联合控制才能实现。
 
例如自适应定速巡航功能ACC,驾驶员通过设定期望巡航速度、与前车保持的期望距离等实现驾驶辅助系统一定程度上接管汽车的功能。这一功能就需要多个电控单元协作完成并且通过总线让它们随时保持通信联系。ACC控制器、雷达控制器、发动机控制器、ESP控制器、变速箱控制器、人机交互控制器以及数不清的传感器和执行器都将参与其中。
 
可以说,软件和硬件系统相互合作,共同为汽车创造出一个个新的功能奇迹。

 
(自适应定速巡航功能ACC控制网络)
 
软件系统的出现
 
急剧攀升的软件代码量、庞杂的总线通信导致汽车电子系统日渐复杂。
 
根据ADAC(全德汽车俱乐部,德国最大的交通协会)统计,德国2004年有40%的车辆故障最终归咎于软件问题或电子部件故障。为此,必须在保证电子系统整体可控的前提下研发新功能,软件工程师绝不能容忍自己迷失在亲手创建的庞大系统中。
 
正如汽车行业的那句老话:Divide et Impera!维基百科对应的中文词条将它翻译为“分而治之”。德语将这句拉丁语翻译为Teile und beherssche!,直译中文是拆解和掌控。

首先,如上图所示将电子系统研发拆解为软件系统、硬件系统、传感器和执行器研发四大部分,经过V模型流程研发,最终再次集成。这个V模型涵盖了从系统层面到软件层面以及集成后的功能测试和系统测试等流程,是当今汽车行业广泛应用的开发流程。因为其形状如字母V而因此得名。
 
下面将以下图所示的软件系统开发为例,分步骤介绍V模型。
 
 
1、分析终端客户需求、定义逻辑系统架构
 
这一步是根据终端客户的需求以及法规需求定义出整车软件系统的逻辑架构。其中包含各大功能块的定义,功能块接口定义和功能块之间的通信定义。这一步仅考虑满足原始需求,不会涉及任何技术层面的具体分析。
 
2、分析逻辑系统架构需求、定义技术层面系统架构
 
逻辑系统架构为定义具体的技术层面系统架构提供了基础。在这一步中开始讨论具体的技术问题,哪些功能将通过软件实现、软件块分装在哪些电子控制单元以及电控单元之间采用什么通信协议等等。软件系统初现雏形。
 
3、分析软件需求、定义软件架构
 
这里开始具体到电控单元中对于软件本身的需求分析。根据需求,定义出合适的软件架构。同时,还要考虑电控单元存储资源的最优使用、为满足安全法规的冗余系统设计等等。这里,会把软件进一步细分为更小的软件部件,定义各个部件之间的接口、分层和边界。
 
4、定义软件部件
 
针对每个软件部件会继续定义出需求。这里的需求集中在功能层面,尚不考虑具体的软件实现方式等。
 
5、设计、实现及测试软件部件
 
依据具体的需求,工程师开始分别搭建不同的软件部件。在前面一系列的拆解、分析和定义后,终于抵达了软件最核心最具体的世界——代码。与人们熟知的程序员直接写代码稍有区别,传统的汽车软件研发采用的是基于模型开发。
 
如下图所示,逻辑运算通过模型的方式表达出来,相比于代码更加直观,便于日后的标定工作和维护。在一个电控单元中,有上千个这样的功能函数,如下图所示的功能模型组合到一起,会形成一份上万页的文件。这份文件是接下来所有流程的基础。
 

当然这套模型只是工程师之间便于交流的高级语言,最终它们会被人工或计算机转为代码进入控制器中工作。
 
早年间,模型到代码中间的转换工作由人工完成。这造成的问题是,代码无法统一化和标准化。面对一个软件逻辑模型,程序员可以用多种方法完成代码编译工作,达到同样的功能效果。
 
但是,代码运行所占用的硬件资源或严谨度会大不相同。因此,近年来转码工作逐渐被机器取代。软件工程师事先定义标准的编译规范,保证最终代码统一和标准。
 
每一个软件部件完成后,要进行相应的软件测试。这里还不会聚焦功能层面的测试,仅仅针对软件本身。
 
例如软件中是否因设计不当产生死循环、每个信号定义的范围是否恰当、会不会造成溢出错误或者会不会出现除以零的运算情况等等。针对这些,工程师要事先定义测试方案,由计算机进行全方位全覆盖的软件逻辑测试。例如,对于if, else语句需要把每一种可能的情况都测试检查到。
 
6、集成及测试软件部件
 
单一软件部件研发测试完成后,将它们集成到一起就形成了每个电控单元中完整的软件包。
 
这套软件包在集成后依然需要测试,检查各部件之间是否兼容,是否有开放接口等等。
 
7、系统集成及测试
 
当软件包集成测试结束,它们将被刷进每一个电子控制器中。每个控制器与相应的传感器、执行器等用线束相连,最后控制器之间接通总线通信。
 
这样整套电子系统终于诞生。如新生儿一般,这套系统依然十分脆弱和稚嫩,还有很大的潜力等待被开发。
 
系统集成后的第一批测试往往是问题重重。因为系统高度复杂,各个研发部件被分工研发,即便之前有严格的测试流程,仍会有许多漏网之bug。如果分工研发的各部门之间没有在开发过程中充分交流,集成后可能会出现各类兼容性问题。
 
针对每一个问题,工程师们都不会忘记前面提到的拆解和掌控。拆解表象问题,找到根源,修复软件bug,掌控整套系统。
 
8、标定
 
系统测试结束后将进入软件标定阶段,这也是软件开发中的重要阶段。在软件实现阶段,工程师会在软件中预留一些可标定参数而不是固定的数值,等待标定。
 
这是基于成本考量,车型繁多的整车厂不可能为每款车型单独开发一套软件系统。一般的解决方案是研发平台软件,适用于多款车型。然而每款车型都有自己的特点,平台软件无法让这些特点发光,标定可以。
 
通过改变不同的参数数值,可以让车辆实现不同的驾驶性能,这也给了标定工程师很大的发挥空间。
 
9、系统测试及接受度测试
 
标定完成后,就进入了整套流程的最终阶段。依据流程一开始提出的需求,忽略那些具体的技术实现手段,站在整个系统的高度检验它是否达到了终端客户的需求。
 
到了这一步,整套软件系统已经十分成熟。在正式进入量产前会从一个时间点开始,停止所有软件和标定变更,为最终量产做准备。
 
整套V模型走下来可以看到,左侧和右侧的每个环节相互对应。需求为定义测试方案提供基础,而测试结果又会带动进一步的开发和完善。
 

你或许会问,如果从V模型的左上角好不容易一路走到右上角,结果最后一步测试发现当初第一步的系统构架出了设计问题,那岂不是为时已晚?难道还要一切重新来过?的确,软件系统十分复杂,研发周期长。如果只是沿着V模型慢慢悠悠从左到右走一遍,等最后一步才发现问题,那确实一切都来不及了。
 
因此,在实际研发中会持续不断地集成、持续不断地测试,工程师们会把V模型从左到右重复走许多遍。
 

研发初期连原型车都还没有的时候,软件测试会依靠整车仿真系统在计算机中进行,发动机、变速箱、电子控制器、总线等都虚拟存在于工程师电脑中(SiL, Software in the Loop)。在仿真系统中,汽车可以如真实般开动,模拟各种工况提供给工程师测试。
 
随着车型研发推进,某些电子控制器研发完成,他们可以取代那些虚拟的电子控制器进入测试环境,但是其他部件仍为虚拟仿真(HiL, Hardware in the Loop)。
 
直到有一天,原型车研发完成,软件集成和测试进入试验台架。最终,原型车调试完毕落地,软件测试进入实车阶段。
 
可以说,软件开发的起始点非常早,从虚拟到现实一路走来,一直延续到最后的量产前夕。其实目的只有一个,通过不断集成和测试,尽可能发现所有问题,保证汽车的驾驶性、舒适性和安全性。
 
未来展望
 
毋庸置疑,汽车软件的蓬勃发展必将持续下去。
 
电动汽车的兴起,省去了机械加工复杂且精密的发动机,汽车厂商竞争的重点从机械中转移出来。为了让产品更有吸引力更能脱颖而出,软件因为其研发的灵活性,逐渐成为厂商间新的竞技场。
 
展望未来,大型中央控制器将成为主流以减少分散在汽车各个角落的小型控制器,降低总线长度。另外,速度更快、带宽更大、传输信息更有效率的总线将逐渐成为行业新标准。
 
5G通讯技术的兴起会让车联网和更加炫酷的车载娱乐成为可能,而这一切都要依靠软件的继续发展。电子控制器中的软件也将有可能在云端运行,与汽车实时互动沟通,这些都为软件工程师们打开了更广阔的空间。
 
而不变的是,为了让汽车能够经受住最严苛的环境考验,汽车软件工程师们将继续如极客般完成软件的标定和测试。
 
他们冬天穿梭在零下30度的北极圈内,与极光、麋鹿、雪松为伴。夏天在滚滚热浪中,面对太阳的炙烤,坐在尚未开发完成的原型车内,将电脑与车辆相连进行测试。汽车进入紧急状态,空调失效时有发生。但这些都无法阻挡他们不断突破科技极限、创造汽车未来的决心。
 
因为,当灯光亮起,幕布掀开,新车闪亮发布,世界为之鼓掌时,这一切努力都将显得意义非凡。

源汽车市场由消费者补贴驱动转向由双积分引导和消费需求升级的多重驱动,供给侧结构与竞争。

END

智能汽车设计 关注智能汽车发展,分享智能汽车知识!
评论
  • 每日可见的315MHz和433MHz遥控模块,你能分清楚吗?众所周知,一套遥控设备主要由发射部分和接收部分组成,发射器可以将控制者的控制按键经过编码,调制到射频信号上面,然后经天线发射出无线信号。而接收器是将天线接收到的无线信号进行解码,从而得到与控制按键相对应的信号,然后再去控制相应的设备工作。当前,常见的遥控设备主要分为红外遥控与无线电遥控两大类,其主要区别为所采用的载波频率及其应用场景不一致。红外遥控设备所采用的射频信号频率一般为38kHz,通常应用在电视、投影仪等设备中;而无线电遥控设备
    华普微HOPERF 2025-01-06 15:29 73浏览
  • 根据Global Info Research项目团队最新调研,预计2030年全球封闭式电机产值达到1425百万美元,2024-2030年期间年复合增长率CAGR为3.4%。 封闭式电机是一种电动机,其外壳设计为密闭结构,通常用于要求较高的防护等级的应用场合。封闭式电机可以有效防止外部灰尘、水分和其他污染物进入内部,从而保护电机的内部组件,延长其使用寿命。 环洋市场咨询机构出版的调研分析报告【全球封闭式电机行业总体规模、主要厂商及IPO上市调研报告,2025-2031】研究全球封闭式电机总体规
    GIRtina 2025-01-06 11:10 76浏览
  • 这篇内容主要讨论三个基本问题,硅电容是什么,为什么要使用硅电容,如何正确使用硅电容?1.  硅电容是什么首先我们需要了解电容是什么?物理学上电容的概念指的是给定电位差下自由电荷的储藏量,记为C,单位是F,指的是容纳电荷的能力,C=εS/d=ε0εrS/4πkd(真空)=Q/U。百度百科上电容器的概念指的是两个相互靠近的导体,中间夹一层不导电的绝缘介质。通过观察电容本身的定义公式中可以看到,在各个变量中比较能够改变的就是εr,S和d,也就是介质的介电常数,金属板有效相对面积以及距离。当前
    知白 2025-01-06 12:04 105浏览
  • PLC组态方式主要有三种,每种都有其独特的特点和适用场景。下面来简单说说: 1. 硬件组态   定义:硬件组态指的是选择适合的PLC型号、I/O模块、通信模块等硬件组件,并按照实际需求进行连接和配置。    灵活性:这种方式允许用户根据项目需求自由搭配硬件组件,具有较高的灵活性。    成本:可能需要额外的硬件购买成本,适用于对系统性能和扩展性有较高要求的场合。 2. 软件组态   定义:软件组态主要是通过PLC
    丙丁先生 2025-01-06 09:23 63浏览
  • 彼得·德鲁克被誉为“现代管理学之父”,他的管理思想影响了无数企业和管理者。然而,关于他的书籍分类,一种流行的说法令人感到困惑:德鲁克一生写了39本书,其中15本是关于管理的,而其中“专门写工商企业或为企业管理者写的”只有两本——《为成果而管理》和《创新与企业家精神》。这样的表述广为流传,但深入探讨后却发现并不完全准确。让我们一起重新审视这一说法,解析其中的矛盾与根源,进而重新认识德鲁克的管理思想及其著作的真正价值。从《创新与企业家精神》看德鲁克的视角《创新与企业家精神》通常被认为是一本专为企业管
    优思学院 2025-01-06 12:03 70浏览
  •     为控制片内设备并且查询其工作状态,MCU内部总是有一组特殊功能寄存器(SFR,Special Function Register)。    使用Eclipse环境调试MCU程序时,可以利用 Peripheral Registers Viewer来查看SFR。这个小工具是怎样知道某个型号的MCU有怎样的寄存器定义呢?它使用一种描述性的文本文件——SVD文件。这个文件存储在下面红色字体的路径下。    例:南京沁恒  &n
    电子知识打边炉 2025-01-04 20:04 62浏览
  • 自动化已成为现代制造业的基石,而驱动隔离器作为关键组件,在提升效率、精度和可靠性方面起到了不可或缺的作用。随着工业技术不断革新,驱动隔离器正助力自动化生产设备适应新兴趋势,并推动行业未来的发展。本文将探讨自动化的核心趋势及驱动隔离器在其中的重要角色。自动化领域的新兴趋势智能工厂的崛起智能工厂已成为自动化生产的新标杆。通过结合物联网(IoT)、人工智能(AI)和机器学习(ML),智能工厂实现了实时监控和动态决策。驱动隔离器在其中至关重要,它确保了传感器、执行器和控制单元之间的信号完整性,同时提供高
    腾恩科技-彭工 2025-01-03 16:28 166浏览
  • 光耦合器,也称为光隔离器,是一种利用光在两个隔离电路之间传输电信号的组件。在医疗领域,确保患者安全和设备可靠性至关重要。在众多有助于医疗设备安全性和效率的组件中,光耦合器起着至关重要的作用。这些紧凑型设备经常被忽视,但对于隔离高压和防止敏感医疗设备中的电气危害却是必不可少的。本文深入探讨了光耦合器的功能、其在医疗应用中的重要性以及其实际使用示例。什么是光耦合器?它通常由以下部分组成:LED(发光二极管):将电信号转换为光。光电探测器(例如光电晶体管):检测光并将其转换回电信号。这种布置确保输入和
    腾恩科技-彭工 2025-01-03 16:27 171浏览
  • 在智能家居领域中,Wi-Fi、蓝牙、Zigbee、Thread与Z-Wave等无线通信协议是构建短距物联局域网的关键手段,它们常在实际应用中交叉运用,以满足智能家居生态系统多样化的功能需求。然而,这些协议之间并未遵循统一的互通标准,缺乏直接的互操作性,在进行组网时需要引入额外的网关作为“翻译桥梁”,极大地增加了系统的复杂性。 同时,Apple HomeKit、SamSung SmartThings、Amazon Alexa、Google Home等主流智能家居平台为了提升市占率与消费者
    华普微HOPERF 2025-01-06 17:23 76浏览
  • 随着市场需求不断的变化,各行各业对CPU的要求越来越高,特别是近几年流行的 AIOT,为了有更好的用户体验,CPU的算力就要求更高了。今天为大家推荐由米尔基于瑞芯微RK3576处理器推出的MYC-LR3576核心板及开发板。关于RK3576处理器国产CPU,是这些年的骄傲,华为手机全国产化,国人一片呼声,再也不用卡脖子了。RK3576处理器,就是一款由国产是厂商瑞芯微,今年第二季推出的全新通用型的高性能SOC芯片,这款CPU到底有多么的高性能,下面看看它的几个特性:8核心6 TOPS超强算力双千
    米尔电子嵌入式 2025-01-03 17:04 41浏览
  • 物联网(IoT)的快速发展彻底改变了从智能家居到工业自动化等各个行业。由于物联网系统需要高效、可靠且紧凑的组件来处理众多传感器、执行器和通信设备,国产固态继电器(SSR)已成为满足中国这些需求的关键解决方案。本文探讨了国产SSR如何满足物联网应用的需求,重点介绍了它们的优势、技术能力以及在现实场景中的应用。了解物联网中的固态继电器固态继电器是一种电子开关设备,它使用半导体而不是机械触点来控制负载。与传统的机械继电器不同,固态继电器具有以下优势:快速切换:确保精确快速的响应,这对于实时物联网系统至
    克里雅半导体科技 2025-01-03 16:11 175浏览
  • 本文介绍Linux系统更换开机logo方法教程,通用RK3566、RK3568、RK3588、RK3576等开发板,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。制作图片开机logo图片制作注意事项(1)图片必须为bmp格式;(2)图片大小不能大于4MB;(3)BMP位深最大是32,建议设置为8;(4)图片名称为logo.bmp和logo_kernel.bmp;开机
    Industio_触觉智能 2025-01-06 10:43 68浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦