一、E/E系统
直到在1970年代,大多数车辆很少有电子电气零部件。在使用汽油发动机的情况下,通常只有启动装置、车灯(前灯、转向灯)和点火系统,有些汽车甚至连收音机都没有。
后来,汽车制造商开始逐步引进小型电力系统,例如无钥匙进入系统。这意味着用户无需再在黑暗中或风雨中摸索钥匙,并寻找钥匙孔,而是可以轻松地进入汽车。这些小型电气系统使用电子控制单元(ECU,Electronic Control Unit)进行控制,ECU(其实就是一个单片机终端系统)是一个关键术语,后续会反复提及。ECU能够进行一些数学计算和逻辑控制,例如控制某些事情的开启和关闭。ECU通过线束连接传感器、电机、及其他执行器,如车灯、喇叭等,从而提供各种功能。
但是每个传感器/执行器/连接器/线束都意味着汽车成本和重量的增加。汽车越重,启停、加速就越困难,油耗也会越高,从而导致成本上升。如果在生产过程中增加昂贵的零部件,就需要更多的线束,这会导致车主在购置汽车时支付更多的费用。而在设计一辆汽车时,通常需要尽可能的降低成本。
于是开始考虑是否可以将ECU连接在一起,假设有一个刹车ECU,能够检测到车轮是否锁死或打滑,并向发动机ECU发送信号,请求发动机减少功率输出,因为车轮在打滑,功率减少,可能车轮就会停止打滑,这就是牵引力控制。由此可见,通过共享数据信息可以为车辆增加新的特性和功能,不过前提条件是共享数据。现在无需为每一个需要共享的信息单独安装一根导线,因为ECU可以通过网络(CAN/LIN/FlexRay/Ethernet)发送和接收数据。
在20世纪80年代中期,排放相关法规相继出台,规定ECU必须检测并报告(诊断)可能引起过度排放的问题。这就是ODB(On-Board Diagnostics)。诊断是是ECU的工作之一,今天的诊断已经不再局限于OBD。汽车上所有电气部件都有诊断。例如中控锁系统的ECU可以检测并报告(诊断)某个门锁是否正常工作,刹车系统的ECU可以检测并报告(诊断)车轮是否正常转动。当我们认为车辆有问题并开去修理时,维修人员会通过诊断仪连接车辆,了解车辆状况,并解决问题。
为了降低成本,汽车制造商开始寻找在不同但相似的车辆上使用同一个ECU的方法,因为这样可以降低开发成本,同时通过提高采购量来降低采购成本。这就是标定(Calibration)概念出现的原因。对一个ECU进行微小的调整,从而使得这个ECU可以在不同的车辆上工作。以刹车系统为例,车辆之间可能会有少许不同,也许是前后车轴的重量分类略有差异,但是你想在不同的车辆上使用同一套刹车系统来降低成本,所以需要通过调整刹车系统来适应不同车辆的差异(调整刹车系统ECU的控制参数,使适应当前车型)。标定工具(常运行在PC端)和ECU内置的标定服务程序就是用来完成这一操作的。
随着计算机科学的进步,人们不断提升ECU的“思考能力”。从早期的单核单任务8位机,到现在车辆上普遍使用的多核32位处理器+多任务操作系统。类似手机/PC的发展趋势,开始很简单,现在却很复杂,因为人们想要把诸如人工智能之类的功能添加到车辆里。从而处理视频流、雷达、激光雷达的数据,了解周围环境并指挥车辆进行应对。由于车辆内ECU的处理能力受限,一些车辆甚至开始使用车外计算资源(车联网)。例如通过GPS卫星获取数据来知道车辆的位置,之后通过互联网与服务器进行通信,不只有一辆车这么做,而是有很多车辆与服务器通信,然后服务器进行计算,自动告诉车辆如何躲避拥堵,等等。这意味着车辆不仅仅包含网络,也是网络的一部分,所以复杂性继续上升。
回到汽车内部,想想现代汽车电子电气系统的复杂性,我们会发现什么?上面我们举的例子很简单,只有一两个ECU。而实际上每辆现代化汽车中拥有100种以上的ECU、5000根以上的导线和连接器、车载网络中可能同时存在15000个以上的信号,再加上传感器、执行器、保险丝、其他元件等,电子器件总数很容易就会超过50000。要开发这玩意,需要管理好成千上万个部件,确保它们能正确地组合在一起,并且能够被维护。即为汽车电子电气系统架构设计。
二、ECU
1、什么是ECU

在现代社会中,几乎所有东西都是以某种方式内置电子设备。这类东西有个共有名称,即嵌入式系统。由于电子产品是内置在某东西中的,所以称之为嵌入式。嵌入式系统通过专门的嵌入式软硬件执行特定的工作。所以嵌入式系统不同于电脑/智能手机/平板,因为后者可以做很多事情,还可以安装额外的软件。而嵌入式系统却是做专门特定的事情,当消费者购买嵌入式系统产品时,它自带嵌入式软件,可以通过升级来修复BUG,但是不能轻易添加额外的软件。因为这需要额外的大量工作,对于普通人来说非常困难。
我们身边就有很多嵌入式系统产品,如空调、洗衣机、冰箱、烘干机、微波炉等。当然,汽车E/E系统中也含有嵌入式系统,车内的嵌入式系统就是ECU。ECU是现代汽车E/E系统的组成部分,它们本身就是嵌入式系统。E表示Electronic,C表示Control。控制是一门工程学科,目的是达到期望的性能水平,通常是通过应用规则(逻辑)来实现。
规则(逻辑)经常被用来表达为【希望某事如何或何时工作】。例如进入一辆汽车,如果汽车启动,按下车窗开关,那么车窗电机就会运转。可以表达为:如果发动机正在运转且车窗开关被按下,则操作车窗电机运转。这一个控制功能逻辑可以把它放进车身控制ECU中,用来控制车窗。仅仅像这样简单的规则是不够的,还可能需要执行一些数值转换,例如可以直接测量轮速(车轮每分钟转数),但是无法直接测量车速。可以通过轮速计算车速,车速(km/h) = 轮速(rpm)*3.6。得到计算结果后就可以将其用于规则(逻辑)中去。例如,逻辑控制当车速超过5km/h时,则锁上所有车门。
汽车中的嵌入式软件提供控制功能。在车辆行驶过程中,我们可以和其进行交互。此外,标定和诊断等功能也是由嵌入式软件提供的。所有这些都在一个盒子(Uint)中,这就是ECU(电子控制单元)。和家用电脑使用的CPU不同,ECU使用一种特殊的芯片,即微控制器(MCU(单片机))。MCU和家用电脑中的CPU的主要区别是MCU内置内存和存储空间。家用电脑可以升级内存和硬盘,但MCU不能更改其硬件特性,是做好的一个完整的芯片。一般来说,MCU的功耗很低,尤其是和家用电脑/智能手机里面的微处理器相比。
接下来参见这几篇文章即可:
电子设计之硬件初探 电子设计之软件初探 浅谈软件开发方向之嵌入式
2、ECU能做什么
ECU需要和车内的其他部件交互工作,例如按钮/电机/灯/喇叭等。比如用户进行了某种错误操作,ECU就会进行相应的报警处理,并控制执行器(报警的执行器应该是个喇叭或蜂鸣器)执行。ECU还会使用网络(总线),与其他ECU进行大量的数据交互工作。
ECU的规则(逻辑)执行由MCU上运行的嵌入式软件控制,这些嵌入式软件,通常根据功能分为若干层,这样更有助于理解。例如之前提到的车窗控制,在发动机运转且车窗按钮按下时,期望车窗电机正常运转。这些在MCU上运行的软件被称为应用程序,应用程序处理所有的数字信号。硬件负责将电子信号转换为数字信号,这个过程是由一些特殊的软件来管理的,即基础软件(如硬件驱动程序等)。基础软件和Windows/Linux/Unix类似,有点像操作系统。应用程序在基础软件之上,并通过基础软件和硬件交互。基础软件提供应用程序所需的数字信号,并根据数字信号输出电子信号,从而驱动相关车辆设备。基础软件和应用程序通过运行时环境(RTE)结合在一起。RTE很特殊,它工作时简化基础软件的工作。例如车辆中很多控制功能都需要车速信息,如落锁功能、音量随速调节等,我们不想因为很多功能需要车速信息就重复计算车速,所以RTE的工作就是:基础软件只需计算一次车速信息,RTE负责将车速信息传递给任何需要它的地方。网络功能也是如此,RTE将控制功能的输入传递给基础软件,基础软件负责实现我们想要的车辆行为。
这样,我们将ECU内部的嵌入式软件划分为基础软件、RTE、应用软件。作为车辆的使用者,我们和应用程序进行交互。比如当按下按钮时,操作电信号先到达基础软件,基础软件解析信号后将数字信号传递给对应的控制应用程序,应用程序按照逻辑进行计算和响应,并把处理结果的数字信号传递给基础软件,基础软件把数字信号转换成启动车窗电机的电信号。
3、更新ECU软件
ECU除了包含基础软件、RTE、应用软件,它的内部还有一个很特殊的软件,负责启动ECU。这个软件就是Flash Bootloader(FBL)。每次ECU启动或重启是,FBL都会运行。正常情况下,FBL检查ECU软件主程序,并跳转到主程序(ECU开始执行)。FBL偶尔还需要做其他事情,如更新ECU软件。
ECU软件存储在非易失性内存(NVM)中。这意味着当断电时,数据不会丢失,这种永久性存储类似于电脑的硬盘。如果将文件保存到硬盘上,下次启动电脑时文件还在那里。NVM也一样。FBL提供诊断服务,允许整个NVM被擦除和重写(刷写),这可以通过车载网络实现。FBL会对写入NVM的数据进行确认(是否正确)。重要的一点是ECU中所有存储数据都将被清除,例如配置数据。也就是说配置数据会丢失,除非将数据读取出来并存储,然后重新写回ECU中。如果不进行上述操作,配置数据就会丢失。
ECU主程序运行过程中不能进行软件刷写,因此需要在刷写之前跳转到FBL。这意味着ECU刷写时处于非正常状态,所以不能一边开车,一边进行ECU的刷写。通常,对NVM进行操作的软件(内存驱动程序)并非FBL的一部分,而是在刷写过程中下载到ECU中。刷写ECU需要按照一定的步骤执行,FBL必须按照规定的顺序执行,如果顺序不对,ECU可能会变砖。汽车制造商会定义精确地顺序、数据格式以及其他要求。
需要注意的是,当对NVM进行操作的时候,需要保持ECU的电压的稳定(在一定范围内)。如果电压不稳定,FBL将拒绝刷写请求。还要满足车辆处于静止状态、变速箱处于停车档位等等。
在汽车行业,OTA是一个新事物,可以借助网络和服务器对车辆(ECU)进行远程刷写。当使用OTA时,某些ECU需要使用冗余的存储空间,这意味着ECU需要2~3倍的存储空间。假设有两个存储空间,空间1负责运行程序,空间2进行刷写,刷写失败也没关系,因为空间1里面的程序可以正常运行。甚至可以在空间1运行的时候进行刷写空间2。当空间2刷写完成且通过验证,则进入激活状态,并在ECU重新启动时被使用。下一次进行刷写时,将对空间1进行刷写。以上都是在后台和MCU上进行的。当进行OTA时,经常需要最小化传输数据,这样可以节省带宽、节约成本。由于车辆生命周期内,可能进行多次OTA,所以可能会将内存驱动程序放在FBL里面。当然,这会导致FBL占用更多的NVM空间。所以把软件(主程序)空间放大2~3倍同时,也要增加FBL的空间。也有一些例外,某些远程更新策略不要求FBL包含内存驱动程序,另一些远程更新策略则不需要冗余存储。
通常情况下,传统的FBL从网络获取数据,并存储在本地。当完成一组数据接收工作后,开始进行写操作。当完成一组数据的写操作后,FBL会要求传送下一组数据。而管道刷写可以在写操作的同时接收数据。通常验证是在所有的数据写操作完成之后进行的,而管道验证可以在接收数据或将数据写入NVM的同时进行,进而加速整个过程。如果进一步加速,甚至可以考虑将数据压缩后传输给FBL,在这种情况下,FBL将支持实时解压缩,将接收到的压缩数据进行解压缩,然后写入NVM。为了保护刷写过程,可以进行身份验证,以防止未经授权的软件更新。为了防止他人窥视或监视更新包,试图对更新包进行逆向工程,找出其中的内容,我们希望将加密数据传输给FBL,FBL在将数据写入NVM之前进行实时解密。最后,我们甚至可能需要安全启动,这意味着我们计算主程序的签名,并将其存储在ECU内的安全存储中。ECU每次启动时,都会重新计算签名并进行对比,判断软件是否被篡改,如果软件被篡改,FBL会阻止启动。这是一个高级特性,并非每个FBL都有。
所有ECU软件都会在生命周期中发生变更,无论是在开发过程中引入新功能,还是修复bug。FBL和刷写工具一起提供了通过车载网络修复问题软件的能力,无需为了更新软件而从汽车中取出ECU。根据OTA的总体策略,OTA所使用的FBL可能与传统的FBL大不相同,也可能相同。某些决定可能会使得FBL变得更加复杂,但是可以使刷写操作更快或更安全,或者两者兼而有之。我们甚至可以阻止未经授权的软件在ECU上运行。所有这些(包括刷写序列等特性)由每个汽车制造商单独定义的。当你试着编写一个ECU刷写程序时,如果不知道正确的顺序,就可能把ECU变成砖头。这意味着需要测试整个刷写过程,以了解ECU为何会变成砖块,然后想办法减少这种情况的发生。
三、网络
为什么汽车上要有网络?汽车内ECU之间的连接,可以创建(提供)更多的新功能。但是需要更多的线束用于连接ECU。在20世纪80年代,人们意识到网络可以减少车辆线束。标准线束通常用于连接传感器和执行器,以及通信总线/网络。现代车辆中大约有15000个信号,想像一下,15000根导线,连接到大约100个ECU,几乎无法实现。每根导线都意味着成本和重量。
而网络(协议)则允许ECU快速而精确地共享数据,降低未检测到错误的风险。这一点非常重要,内燃机点火系统在上世纪80年代的汽车上很常见,但是现在已经不再使用。因为点火系统会产生电子干扰,可能会干扰到敏感的电子设备。这就意味着需要在汽车上使用特殊的网络技术来抵御这种干扰。干扰是什么?在电闪雷鸣时听收音机,就会听到很多杂音,那就是干扰。在火花塞点火的内燃机里,每秒会有成千上万个“人工闪电”。所有的爆裂声(干扰)都可能会传递到导线里。我们不希望出现这种情况,所以努力解决这个问题。数字信号可以自动检测和纠正某些故障(错误)。当发生故障时,我们可以决定如何处理。例如选择忽略,或者当数据丢失时采取某种应对措施。
但是如果不知道数据来源是否有问题,就会非常麻烦,如果只是改变了一个电压,导致线路上出现问题或干扰,电压的变化在我们看来是正常的,然后按照(预设)逻辑做该做的事情。根据输入,并按程序进行输出。这就是它们的工作方式,比较笨。数字信号是如何工作的?在汽车E/E系统中,ECU通过网络实现串行通信。串行通信意味着只有一个“流”,一次只做一件事。
例如ABS检测到车轮打滑,通知发动机ECU,请减少功率(输出)。这就是牵引力控制,检测车轮打滑并通知发动机减少功率输出。此外,还可能把当前车速发送给发动机,然后让发动机停止减少功率输出。所以是按照顺序(周期性)在网络上发送信息。ECU是如何实现这一点的呢?答案是网络(线束)上的电压。我们将不同的电压值定义为不同的二进制数值(0/1),电压不断发生变化,在某个水平(电压值),表示1;在另一个水平,则表示0。这样就可以得到一串由0和1组成的数字,软件可以对这串数字进行解释并获取所需的数据,然后执行相应的操作。通常使用bps(比特/秒)来衡量网络的通信速度。
大多数情况下一辆车会使用许多不同类型的网络。CAN(Controller Area Network)于20世纪80年代早期开发,传输速率1Mbps。第一辆装备CAN的车是在20世纪90年代早期生产的,现在装备CAN的车非常普遍。不仅仅是自动化行业,还有卡车/公共汽车/飞机/汽车/船舶/洗衣店/机器/机器人/工厂/卫星/太空等等。在20世纪90年代末,人们开始意识到,CAN有点贵,和许多其他东西一样,快的东西往往比慢的东西更贵。所以着手开发了速度更慢,但成本更低的技术用以替代部分CAN,即LIN(Local Interconnect Network)。LIN的速率是20kbs。在开发/实现LIN的过程中,人们意识到CAN无法满足所有汽车的(通信)需求,有些系统运行速度非常快,对时间要求非常严格,需要在(输入产生后)某个特定时刻做出响应。这种情况下如果输入不是在本地发生,那么需要立刻(或者在规定时间内)将输入传送到需要的地方。因此开发了FlexRay,容错性更好,速率更快(10Mbps)。事实上FlexRay速率可以达到20Mbps。如果同时使用FlexRay的两个通道,可以将发送数据翻倍。
接下来是车载以太网(Ethernet),现在汽车中开始使用以太网,和家用/办公中的以太网接口不同,汽车中使用的以太网网线和导线比较类似。以太网首先进入汽车娱乐系统,用于传输音视频数据,以太网在汽车中的传输速率是100Mbps。ADAS系统使用视频、雷达/激光雷达数据,每秒都要发送海量数据,所以ADAS系统普遍使用以太网。以太网还可以用于其他场景,CAN/LIN/FlexRay都是基于信号的通信技术,负责将信号(例如车速)发送到网络上,不管是否有ECU需要,任何网络上的ECU都可以接收该信号。以太网支持面向服务的架构(SOA),这意味着需求方可以向提供方发送请求从而获得数据。因此,这更像是一种“临时性”网络,而不是预先定义所有内容,因此可以更容易地给汽车添加新功能。
不管是轿车/卡车/公共汽车,一般不会是一个单独的CAN网络,而是会有5~6个CAN网络,可能还有以太网和LIN(例如开关/雨刷电机等数据传输量较小的部件)。所以现代汽车中有很多网络,它们通过网关(Gateway)连接在一起。网关从一个网络中选择数据并将其转发到另一个网络中。
四、诊断
如果我们感到不舒服或受伤了,就会去看医生。医生会询问并测量体温/心率等数据。在此基础上,医生试图建立对我们的身体的认知。这些请求(医生的望闻问切)不仅与我们当下的感受有关,还包括我们第一次注意到自己不舒服的时候的状态,或者当我们受伤的时候我们在做什么。医生根据我们的响应判断我们的症状,从而决定采用药物治疗、物理治疗或其他方式,让我们好转康复。
如果汽车的某个零部件坏了,我们或者维修人员需要对已经发生或正在发生的事情有所了解,以便能够决定如何修理,让汽车恢复正常。由于汽车中的ECU与网络相连,因此可以通过一些特殊的软件向ECU发送诊断请求,并接收ECU的诊断响应,以帮助我们建立这种理解。这种请求之后跟随相应响应的模式,就是服务。ECU提供诊断服务。
汽车诊断可以追溯到上世纪80年代,当时的OBD法规要求汽车必须对排放控制系统相关的请求做出响应,包括结构和内容。OBD的一切都是标准化的,可以直接购买OBD工具,然后找一辆车,做OBD诊断,就可以弄清楚排放控制系统中发生了什么。一切都是标准化的,可以买到标准的商业工具,插到任何一辆车里,然后就可以看到汽车的信息。这是关于排放控制系统的,但汽车不仅有排放控制系统。
现代汽车的排放控制主要是发动机,但如果是柴油车,还需要后处理,例如废弃再循环系统、空调系统等。如果是混动车,混动系统会影响汽车的排放,如果出现问题,可能会增加排放。OBD内容很多,但并非全部。对于一般的请求和响应,有一个ISO标准---ISO 14229-1(UDS),定义了请求和响应的结构。汽车制造商定义结构中的内容,所以数据的实际解释方式是由汽车制造商定义的,还包括发送请求的方式和时间,必须遵守定义好的顺序。所以购买的ISO标准的诊断工具,实际上并不能获得诊断一辆车所需的所有信息,某些信息将来自汽车制造商。
在某些情况下,对于卡车、挖掘机、公路机械、农用车辆的诊断使用另一种标准---SAE J1939,J1939和UDS相似,我们不会涉及太多不同标准的差异,只要知道它们的存在就好了。如果有一辆车,我们可能想从车里读取数据,所以我们可能想知道ECU的序列号,因为可能某个批次的ECU有问题需要更换,或者其他信息,如零部件编号,软件版本等。也许我们可以进行软件更新,修复已知问题。我们也可能想写数据,这也是一种软件更新。我们也可以通过这种方法打开提供额外功能的选项。
比如在购买车辆时,在经销商那里获得一个选项列表,并决定选哪些额外功能,经销商通过诊断打开这些付费选择的功能。我们可能还想通过读取ECU的IO数据来判断线束是否有问题。可能我们按下了一个开关,但是ECU的输入却没有开关信号。或者可以让ECU输出(某个信号),判断(马达或灯)是否有问题。我们还能够运行特殊的功能,以便能够检测系统中的问题。
此外,ECU能在检测到故障时保存信息,这就是故障存储(Fault Memory)。我们可以从故障存储中读取信息,即DTC(诊断故障代码),也称故障代码。在汽车维修店,会常听到“发动机DTC”或者“刹车DTC”之类的话。这意味着ECU检测到故障,并当维修人员连接诊断仪到车辆时进行主动报告。所以诊断设计必须从整体出发,考虑会出什么问题以及怎么出问题。还需要考虑其他的数据,因为这些数据可能会帮助我们区分造成某种问题的不同原因。除此之外,还需要考虑如何维护汽车,甚至是在生产汽车时可能想做的事情。所以不仅仅是在车辆发生故障时,诊断涵盖了车辆生命周期中的大部分过程,还有大量数据。
ECU内部发生了什么呢?除了控制功能,ECU的应用程序还包括确保所有事情正常运行的监控功能。如果监控功能被一些不寻常的东西触发,那么基础软件就记录这个事件以及与该事件相关的数据。当然,监视功能需要能够读取ECU的IO,这意味着在涉及诊断时,需要考虑硬件可能出现的问题。为什么呢?如果想要监控一个输出,实际上需要一个内部输入。软件如何判断输出正常工作:通过板载的一些特殊电路检测输出,然后作为输入反馈给MCU。如果想知道电压或电流,同样需要硬件中的特殊电路。没有硬件,我们无法测量任何东西。所以诊断设计如果推迟,可能就无法实现所需的诊断。
基础软件负责接收网络数据(请求),并发送网络数据(响应)。有时,这些请求与基础软件有关,所以像故障存储之类的事情都是在基础软件中处理的。当然,有时候请求也会和应用程序有关,例如运行一个特殊功能。如果需要更新有问题的软件,无论是应用程序还是基础软件,实际上大多数ECU的应用程序和基础软件是一个整体。您不可能只更新一部分,只能全部更新。这是通过UDS和ECU中的一个专用软件来实现,即Flash Bootloader(FBL)。
OBD、UDS、J1939提供从ECU获取信息,或执行特殊命令/任务的方式,以便用于查明车辆问题并进行维修。ECU的诊断功能由基础软件和应用程序提供:基础软件负责网络连接和故障存储,应用程序包含监控功能,并为相关人员提供其他功能,帮助他们完成工作。当然,诊断会占用大量的ECU存储空间,所以可能因为需要故障存储而选择一个具有更大的存储空间的MCU。
五、标定
什么是标定?严格的说,标定是指将测量值与标准值进行比较的行为。假设生产了100万个螺丝。制造螺丝的机器会随着时间的推移而磨损,所以最后一颗螺丝和第一颗螺丝尺寸完全一致吗?标定就是比较这两者,但是不包括任何的后续调整。然而,在汽车开发的世界中,标定往往也意味着调整,所以我们一般会说“测量和标定”,也就是观察测量值,并对其进行调整。
为什么在开发汽车或部件时需要标定呢?汽车开发成本非常昂贵,很多汽车制造商都有多个不同但是相似的品牌,同时车辆类型可能是SUV、小型/中型家庭轿车、跨界车、跑车、面包车等。因此汽车制造商通过平台化实现设计和工程的共享,保证主要部件可以在多个车型之间通用。我们无需为每个车型单独开发主要部件,而是通过平台化实现共享。为每个车型开发独特的组件是非常昂贵的,这是平台化的主要原因。
那么为什么需要标定呢?同样的发动机可能用在不同的车型上,我们希望这些车辆有不同的特点。相同的发动机如何表现出与众不同呢?答案是控制发动机的电子控制单元(ECU)使用不同的参数或值。跑车应该比货车加速更快,但货车应该承载更重的载荷。即使在不同的跑车中,也可能使用相同的发动机,但是ECU的参数是不同的。另一个例子是转向助力,时速70迈(约110公里/小时)只需要很小的助力,停车时则需要较大的助力,如果是SUV,则比轿车需要更大的助力,因为SUV更重。我们可以使用相同的ECU,但是根据情况(车速、车重等)选择不同的控制参数。因此,标定是指测量和改变ECU的内部数值,从而更好地适应车辆的需要。
如何进行标定并改变(ECU内部)的数值呢?在一辆车中,有来自不同公司的不同ECU,因此需要一种通用的测量和标定(调整)方法。我们需要很多组件来实现这个任务,包括:①测量和标定软件,②连接ECU的车载网络,③从软件到ECU的接口,④定义如何实现(标定流程)的标定协议,以及ECU描述文件。
这是一个车载网络例子,有三个ECU,分别负责刹车(ABS)、变速箱和发动机。每个ECU都有很多参数和信号。其中一部分(不是所有)通过总线传输给其他ECU,周期可能是100/500/50/250毫秒,一部分信号被发送出去,但不是所有的信号都被发送出去。发动机ECU可能会有10000个信号,但不是所有的信号都会被发送到总线上供其他ECU使用。那么如何访问这些隐藏组件(信号或值)呢?这就是测量和标定的任务。
测量和标定是如何工作的呢?有两个主要的协议:CCP(CAN Calibration Protocol)和XCP(Universal Measurement and Calibration Protocol)。这些协议确定如何与ECU进行交流并获取数据。所以需要一个测量和标定系统,一个ECU,以及标定协议。软件中需要有CCP/XCP(驱动),包括电脑端和ECU端。然后还需要一个ECU描述文件(A2L文件),它告诉我们变量的位置和名称,以及如何对变量解读(单位、度数等)。
如上图所示,Calibration Tool是标定工具,下方是硬件接口,上方是A2L文件。然后通过车载网络和ECU进行通信。报文(消息)被发送到网络软件(Network SW),然后传递给CCP/XCP软件。CCP/XCP软件会指向一个地址,从该地址获取数据,然后将其发送回标定工具。ECU通过内部的定时器来实现将数据重复传送给标定工具。这就是测量ECU内存的方法。我们可以用一个非常相似的过程来发送一个报文,改变某个地址中的值,然后通过测量观测效果。
在汽车行业中,标定是通过测量和调整数值来提高性能的方法。从而实现在不同的车型上使用相同的系统(硬件)的目的。
六、网关

网关的用途就两个,一个是数据通讯,一个是诊断。先来看诊断接口,诊断调试口连接过去就是网关。网关在上图电路图中的标号是j533。汽车网关类似于我们家用的路由器。路由器有无线部分和有线部分。比如笔记本是无线网卡,台式机是有线网卡。路由器会先通过无线协议接收笔记本传输过来的信息,然后把这些信息再封装成有线协议,通过网线传给台式机。网关的作用就是在多种不同的协议之间交互数据。
Audi A6L的网关,是一个复杂的交互模块。速腾电气架构简化了很多,为什么会存在两种不同的协议需要转换呢?最简单的例子就是动力总线部分,如发动机和变速箱,对实时的工况要求是很高的,所以带宽要求就会很高,可能带宽是500Kbps以上。但如果转到只控制四个车门,那带宽要求就比较低,可能100Kbps就足够了。当500K的动力总线信息,要传给四个车门的舒适便捷总线区域的时候,它就要通过网关去转换。
当车辆发生正向碰撞的时候,先由加速度传感器检测到有一个负向很大的加速度,这个时候它会把信号传递给气囊控制单元,气囊控制单元把气囊爆出来,以保护驾驶者。这时候信息是在总线驱动内扩散和传播的。比如发动机收到这个消息后,它会首先停止供油,并且熄火发动机。当这个消息传到网关的时候,网关会把这个消息进行解码,因为这个消息的优先级太高了。解码之后,把这个消息转换到其他的总线控制区域,比如说转换到舒适便捷总线控制区域,舒适便捷控制区域的控制单元向四个车门发送,车门控制单元收到这个消息后就会把四个车门开锁,并把车内照明灯打开,以便车内驾驶人员更好的逃生。网关还会把碰撞的消息通过编码之后,传递到信息娱乐总线控制区域,这个区域可能会有GPS定位和手机通讯,这个时候通过拨打120,可以把发生事故的地点向上汇报。这样整个一套逃生和救援的事件处理链就闭环了。
有读者这时候就会考虑到,信息这样传来传去的效率是不是很低,如果用导线连接每个控制单元,这样效率是不是会更高?当车的智能程度不高的时候,车内的控制单元少,用导线去连接每个控制单元,用导线连接是没有问题的。但是随着控制单元越来越多,如果都使用导线连接,则线束会变得特别复杂。所以后来智能化程度越高的车,通讯的时候往往使用总线方式,
七、安全
为什么工程师需要确保汽车E/E系统不会给车内乘客和车外人员带来意外?如何实现这一点?全球每年约有130万人死于道路交通事故,大约每24秒就有一个人死亡。道路交通事故中一半以上的死亡是行人、骑自行车或者骑摩托车的人。当然车内的人也有危险,不过在车外或者骑自行摩托车危险性更大。据估算,每年还有多达5000万人在道路上受伤,大概每秒钟有1.5人受伤。这些伤亡都是应该去避免的。
以上是当前的背景,那么汽车能为此做些什么呢?首先,车辆可能会做一些令人讨厌或不便的事情,例如发出烦人的噪音或者需要多次按下按钮才能正常工作。汽车可能对根本不存在的问题发出警告或指示。警告响起,下车查看时却发现没有问题,这让人很恼火。车辆在正常使用时可能会损坏,也可能在没有任何预期的情况下损坏。例如连接传感器或执行器的线缆可能会断裂,这就意味着车内某些设备无法工作,传感器或执行器可能出现故障,ECU/HPC(High Performacne Computing 汽车高性能计算机)也可能出现故障。这样将导致车辆发生故障,无法正常使用(行驶),需要进行修理。这就产生了另一种不受欢迎的现象。当车辆发生问题时,如果无法找到故障或问题的原因,就无法进行维修。也就是说,无法诊断等于无法维修。更令人沮丧的是,有时可能找到了问题所在,但还是无法维修,甚至无法更换(发生故障的部件)。很明显,这是一个不受欢迎的情况。更糟糕的是,车辆可能会对人员造成伤害,甚至死亡。比如当应该停车时,车辆却仍然移动,反之亦然。刹车可能需要的时候不工作,或者反之在不需要的时候工作。这同样适用于转向系统。动力转向系统可能会突然启动,导致车辆损坏,或者当您试图转向的时候却发现动力系统没有反应。这对于您和其他道路上的行人都是糟糕透顶的事情。
除了车辆之外,某些人可能会泄漏(或偷取)本应保密的车辆数据。例如,有人可能非法获取您用于下载应用的用户ID和密码,或者用来自动付费的相关信息。如果经常通过收费站,您可能会设置车辆以某种方式自动支付通行费。获取您的付款信息就可以拿走您所有的钱。这很糟糕。有些人可能通过某种手段(例如黑客攻击)控制车辆,对车内人员或路上行人造成伤害,这种攻击方式可能是远程实现。对于连接网络的车辆来说这是一个很大的风险,需要采取应对措施。
接下来介绍安全(Safety)。当考虑安全时,通常会考虑系统对可能受其行为影响的人的风险水平,包括车内人员(司机和乘客)和车外人员(行人、骑车的人以及维修人员)。建造工厂,生产汽车、卡车、公共汽车的工人,也可能受到系统行为的影响。我们需要评估风险水平是否合理。特别是汽车E/E系统,我们应该考虑它所带来的风险水平是否可以接受。① 不管是正常运行状态,还是被以可预见的方式滥用。② 如果能够预见到有人会用胶带把开关固定在某个位置,那么在设计时应该考虑到这一点。③ 与此同时,在发生故障时,电气系统所面临的风险水平必须是可接受的。当传感器/执行器/ECU出现故障时,应该确保车辆E/E系统对于车内人员和车外人员产生的风险尽可能低。上述三种情况中的前两种都是通过"SOTIF(预期功能安全)"保证。最后一种情况则是需要"Functional Safety(功能安全)"。
还有其他与汽车E/E系统相关的风险,例如前面提及的对于联网车辆的远程攻击。与此同时, 请不要忽略本地攻击的可能性。例如在洗车或者停车的时候可能有人偷窃您的付款信息,这和远程攻击一样糟糕。付款信息被偷了,您可能还不知道。2015年,Charlie Miller和Chris Valasek演示了对车辆的真实远程攻击。将攻击的可能性降到最低,或至少将攻击的影响降到最低,这是网络安全需要面临的问题。如果没有充分的网络安全,攻击者可能获得机密信息的访问权,例如保存在车辆内的支付数据,还可以控制车辆。无论攻击者是否有意,都可能导致车内人员或车外人员受伤或死亡。没有网络安全,就不可能有功能安全,两者相辅相成。
每年全球有数百万人因道路交通受伤甚至死亡。车辆E/E系统的不良行为可能是造成这种伤害的原因之一。在正常运行和误用时,通过SPTIF提高系统的安全性。汽车E/E系统可能变得不安全或可能通过网络攻击泄露机密。在设计过程中考虑网络安全,可以缓解和管理这些问题。关于功能安全和网络安全有很多资料,ISO发布了大量这方面的规范,这里仅仅列举一部分:① ISO 21448,Road vehicles-Safety of the intended functionality。② ISO 26262分为12个部分,Road vehicles-Functional safety。③ ISO 21434,Road vehicles-Cybersecurity engineering。④ ISO/TR 4804,Road vehicles-Safety and cybersecurity for automated driving systems Design,verification and validation。这四种可能是最广为人知的,当然还有其他ISO标准。以及其他标准化组织发布的标准。
八、HPC
高性能计算平台,简称HCP。也称高性能计算机,简称HPC。为什么需要HCP?一些车辆使用网络来传输大量数据,并通过评估这些数据来构建环境的“图像”,对可能发生的事情做出预测。然后根据这些预测识别物体,并从众多数据源中确定关于物体的相关信息。例如,雷达/激光雷达/摄像头/视频流以及其他数据。这种评价需要更高性能的计算平台,ECU的性能明显不足。所以HCP被用于汽车上,提供(这种分析)所需的性能,满足这种以数据为中心的处理需求。
某些常见的车辆环境可能需要非常快速的数据评估。例如,在一条繁忙的高速公路上,有车辆在变道,这可能会导致其他人踩刹车。我们不希望与另一辆车高速相撞,这对我们和另一辆车里的人都很不利。另一种可能是在高峰期的繁忙的十字路口,一个行人突然走到马路上。在这种情况下,我们不希望撞到行人,而是希望能够注意到行人出现在道路上并采取一些行动来保护他们。这不仅仅是为了保护车里的我们,也是为了保护车外的人。这就是需求产生的原因。
当快速处理大量数据时,可能需要做几件事。可能需要连接到高带宽网络(如以太网),以便能够发送和接收数据。可能在处理数据的时候需要有很大的内存来保存数据。可能需要使用GPU(图像处理单元)来处理数据。为什么是GPU?GPU将任务分成数千个部分,然后并行执行,这使得GPU能够非常快速地执行复杂的任务。
像AUTOSAR Classic Platform这种软件,专门针对简单数据/简单任务进行优化,所以AUTOSAR Classic Platform的优势在于处理传感器和执行器。所以ECU是以硬件为核心,为软件提供与汽车硬件进行交互的方式,像开关、传感器、电机、灯和其他车内的东西,给它们传递指令。ECU中的AUTOSAR Classic Platform可以通过以太网实现面向服务的通信,事实上ECU可以和任意设备连接。
现在我们需要并行执行,因此需要不同的软件,我们考虑使用POSIX,这是IEEE的标准。您可能对Linux很熟悉,Linux兼容POSIX标准。POSIX是一个规范,我们可以说“符合POSIX”。多次提及的以太网也是IEEE的标准。针对现代汽车的需求(例如HCP),AUTOSAR开发了新的规范,即AUTOSAR Adaptive Platform,能够在POSIX操作系统上运行。例如AUTOSAR Adaptive Platform可以在Linux上运行。重要的一点,ECU不会被完全取代,现代汽车中不会只有一个HCP。现代汽车需要以硬件为中心的能力,同时也需要以数据为中心的能力(HCP)。一辆装备HCP的汽车可能有100个ECU,ECU还会存在很长时间。
汽车发展的方向是自动化,终极目标是基于评估车辆环境的能力的自动驾驶。这就需要并行执行以及快速处理大量数据。HCP利用硬件实现并行处理/并行执行,当然还有高带宽网络与动态通信的结合,都将使得我们从车辆的新一代硬件中获得最大收益。ECU使用AUTOSAR Classic Platform,AUTOSAR Adaptive Platform则满足其他需求。所以HCP可以做其他事情,并且做得很好。HCP以数据为中心的能力,是对ECU以硬件为中心的补充。一辆汽车可以同时拥有HCP和许多ECU。值得一提的是,HCP上的软件是以数据为中心的,与硬件关系不大。所以对于HCP来说,软件测试更加独立。比如CANoe用于系统级和ECU级的测试,CANoe4SW用于测试软件。
九、T-Box
Tbox(Telematics BOX)是汽车上的一个盒子,远程通讯终端,集成车身网络和无线通讯功能的产品,可提供Telematics业务。一般安装在仪表盘下方。Tbox是一个基于Android、Linux操作系统的带通讯功能的盒子,内含一张SIM卡,与这个盒子配套的硬件还有GPS天线,4G/5G天线等。车机要联网必须有Tbox设备才能实现。
车联网系统包含四部分:主机、车载T-BOX、手机APP、后台服务器。主机主要用于车内的影音娱乐以及车辆信息显示;车载T-BOX主要用于和后台服务器及手机APP通信。当用户通过手机端APP发送控制命令后,TSP后台会发出监控请求指令到车载Tbox,车辆在获取到控制命令后,通过CAN总线发送控制报文并实现对车辆的控制,最后反馈操作结果到用户的手机APP上,仅这个功能就可以帮助用户远程启动车辆、打开空调、调整座椅位置等。
汽车T-BOX与主机通过CANBUS总线通信,实现指令与信息的传递,从而获取到包括车辆状态、按键状态等信息以及传递控制指令等;通过音频连接,实现双方共用麦克与喇叭输出。与手机APP是通过后台系统以数据链路的形式进行间接通信(双向)。T-BOX与后台系统通信还包括语音和短信两种形式,使用短信形式主要实现一键导航及远程控制功能。
汽车T-BOX可深度读取汽车CAN总线数据和私有协议,T-box终端通过OBD模块和MCU,采集汽车的总线数据和对私有协议的反向控制;T-box同时可以通过GPS模块对车辆位置进行定位,使用网络模块通过网络将数据传出到云服务器。 车主可以在手机APP端通过网络从云服务器中获取车况报告、行车报告、油耗统计、故障提醒、违章查询、位置轨迹、驾驶行为、安全防盗、预约服务、远程找车等信息,还可以在手机APP端通过网络与服务器的连接,间接与网络模块交互,继而通过网络模块与MCU之间的渠道,最终使用MCU提供控制汽车门、窗、灯、锁、喇叭、双闪、反光镜折叠、天窗、监听中控警告和安全气囊状态等服务。
此外Tbox还可以配合车机实现OTA(Over The Air)升级(OTA升级指空中下载技术固件和软件升级)功能。FOTA(Firmware Over-The-Air)是一种通过云端升级技术为具有联网功能的设备提供固件升级服务的方法。SOTA(Software Over-The-Air)升级通常指的是车载信息交互系统的软件更新。这种升级涉及到修复漏洞、改进功能和提升性能。
十、ADAS
ADAS(AdvancedDriverAssistanceSystem)高级驾驶辅助系统。是众多主动安全功能的总称。首先明确一点,ADAS不等于自动驾驶,甚至可以说研究重点和自动驾驶完全不同。ADAS的核心是环境感知(终极目标是替代驾驶员的感知器官---眼睛耳朵肢体等),而自动驾驶的核心是人工智能(终极目标是替代驾驶员的思考器官---大脑)。ADAS之于自动驾驶如手脚之于大脑。
ADAS利用各种传感器,收集汽车内外的环境数据和车辆状态数据,然后进行数据处理和驾驶决策,帮助让驾驶员做出更及时更准确更安全的驾驶行为。我们熟知的传统的车辆安全系统主要有安全带、安全气囊、吸能式车身等,这些都是被动安全,是当事故发生时帮助减轻伤害的系统。而ADAS技术的设计主要是主动式安全,它通过车辆上安装的不同传感器,比如雷达、摄像头、超声波雷达等等来感知周围环境,从而可以检测车辆周围各个目标的状态信息。比如速度、距离、角度等等,当可能发生潜在的碰撞风险时,主动地参与车辆控制,帮助司机及时控制车辆和纠正操作失误。
ADAS有非常多的主动安全功能,除了主动安全的提升外,也加入了很多舒适性功能,比如新一代的高速公路主动巡航,它可以自动控制车辆在车道线里自主巡航,保持和前后车的距离,主动控制车辆制动和加减速,使得驾驶员可以轻松的驾驶车辆。自动泊车系统则解放了患有停车困难症的驾驶员,无论是侧方停车还是倒车入库,自动泊车系统都可以满足你的需求。
前面说过ADAS是众多主动安全功能的总称,下面我们列举一下这些主动安全功能。
大类 | 名称 | 释义 |
IA Assist) | DFM | (Driver Fatigue Monitoring)驾驶员疲劳监测 |
DAM | (Driver Attention Monitoring)驾驶员注意力监测 | |
TSR | (Traffic Signs Recognition)交通标志识别 | |
ISLI | (Intelligent Speed Limit Information)智能限速提示 | |
CSW | (Curve Speed Warning)弯道速度预警 | |
HUD | (Head Up Display)抬头显示 | |
AVM | (Around View Montoring)全息影像监测 | |
NV | (Night Vision)夜视 | |
FDM | (Front Distance Monitoring)前向车距监测 | |
FCW | (Front Collision Warning)前向碰撞预警 | |
RCW | (Rear Collision Warning)后向碰撞预警 | |
FCTA | (Front Cross Traffic Alert)前方横向来车碰撞预警 | |
RCTA | (Rear Cross Traffic Alert)后方横向来车碰撞预警 | |
LDW | (Lane Departure Warning)车道偏离预警 | |
LCW | (Lane Changing Warning)变道碰撞预警 | |
BSD | (Blind Spot Detection)盲区监测 | |
SBSD | (Side Blind Spot Detection)侧面盲区监测 | |
STBSD | (Steering Blind Spot Detection)转向盲区监测 | |
RTCA | (Rear Traffic Cross Alert)后方交通穿行提示 | |
FTCA | (Front Traffic Cross Alert)前方交通穿行提示 | |
DOW | (Door Open Warning)车门开启预警 | |
RCA | (Reversing Condition Assist)倒车辅助 | |
MALSO | (Maneuvering Aid For Low Speed Operation)低速行车辅助 | |
CA (Control Assist) 控制辅助类 | AEB | (Automatic Emergency Braking)自动紧急制动 |
EBA | (Emergency Braking Assist)紧急制动辅助 | |
AES | (Automatic Emergency Steering)自动紧急转向 | |
ESA | (Emergency Steering Assist)紧急转向辅助 | |
ISLC | (Intelligent Speed Limit Control)智能限速控制 | |
LKA | (Lane Keeping Assist)车道保持辅助 | |
LCC | (Lane Centering Control)车道居中控制 | |
LDP | (Lane Departure Prevention)车道偏离抑制 | |
IPA | (Intelligent Parking Assist)智能泊车辅助 | |
ACC | (Adaptive Cruise Control)自适应巡航控制 | |
FSRA | (Full Speed Range Adaptive Cruise Control)全速自适应巡航 | |
TJA | (Traffic Jam Assist)交通拥堵辅助 | |
ICA | (Integrated Cruise Assist)集成式巡航辅助 | |
AMAP | (Anti-maloperation for Accelerator Pedal)加速踏板防误踩 | |
ADB | (Adaptive Driving Beam)自适应远光灯 | |
AFL | (Adaptive Front Light)自适应前照灯 | |
FCTB | (Front Cross Traffic Brake)前方横向来车碰撞制动 | |
RCTB | (Rear Cross Traffic Brake)后方横向来车碰撞制动 |
十一、AUTOSAR
AUTOSAR Classic Platform(简称AUTOSAR CP), AUTOSAR Adaptive Platform(简称AUTOSAR AP)。我们已经讨论了软件,但还没有真正讨论车辆中可预测行为的需求。这种需求可能源自在车上,在车辆附近或在路上。在ECU内部,以软件形式存在的功能或任务按照预定的调度表周期性运行,这是嵌入式软件工程技术的基础知识。这意味着任务按照调度表周期性运行。当任务运行时,会检查与任务先关的输入,并根据这些输入控制输出。任务必须在规定的时间内执行,这意味着任务必须在截止时间之前完成。原因很简单,假设车轮开始打滑,但是ABS软件发生故障,无法在规定时间内执行完毕,这对于乘客和车辆都是巨大的灾难。因此,截止时间很重要,任务调度和截止时间通常以毫秒为单位。
对于电机控制,任务调度的单位是毫秒,即百万分之一秒。一个任务超时将产生连锁反应,这意味着其他任务将无法再截止时间之前完成,所以每一项任务都必须在截止时间前完成,否则就会导致所有任务超时。这种通过可预测的执行来满足严格时间限制的要求被称为硬实时。硬实时行为意味着没有任务可以错过时间期限。硬实时行为可能非常重要,经常基于AUTOSAR CP,即使有了AUTOSAR CP的帮助,还是有很所事情要做,包括调度表和高效编程,确保任务满足时间期限。AUTOSAR CP不是解决一切问题的灵丹妙药。
可预见性只是一个需求,现代汽车还有其他需求。ACES是一个缩写,A表示自动化或自动驾驶。C表示车联网。E表示电动化(新能源),主要是减少排放,保护环境。S表示共享,包括共享汽车和共享数据,汽车可以与其他汽车或者基础设备通信,解决诸如交通堵塞之类的问题,这也是一种数据共享。还有OTA,OTA不是ACES的一部分,而是互联的一部分,是连接(共享)的一部分,OTA对于ACES非常重要。HCP是高性能的计算平台,为汽车提供ACES功能。
HCP(软件)运行在POSIX环境中,如Linux。同时还有运行AUTOSAR CP的ECU。AUTOSAR CP提供我们所需的硬实时行为,确保任务在可以接受的时间期限内执行。ACES处于更上一层,通过动态的面向服务的通信来提供其他功能。设想沙漠公路或者繁忙的城市街道,这些场景需要ACES功能处理动态的进行和数据。所以我们选择POSIX。AUTOSAR AP采用一部分POSIX特性(子集),即PSE51。可以在POSIX规范中找到PSE51的相关描述。

AUTOSAR AP依赖操作系统,而AUTOSAR CP本身就包含操作系统,这一点差别很大。AUTOSAR AP定义了API,应用程序可以通过API访问HCP中的功能集群以及Adaptive Platform服务。API和Adaptive Platform服务一起为应用程序提供AUTOSAR运行时(ARA)。在AUTOSAR CP中有RTE,应用程序运行在RTE之上,ARA和RTE的含义几乎等同。
什么是功能平台?让我们看看功能集群。这是一组相关的功能,例如访问网络数据(接收或发送数据),在本地保存和检索数据(Persistence),当出现问题时执行内部记录(日志)。这是一组相关的东西,例如通信功能集群,处理网络数据。我们还有存储(Persistence)功能集群,日志和跟踪功能集群,以及其他集群。一个应用程序可能不需要用到所有集群,平台服务提供一种标准化的方式来访问AUTOSAR AP提供的功能,例如了解平台当前的状态。平台服务中还有网络管理功能集群,能够了解网络是否处于活动状态或者为了节省能源而关闭。这些一起组成ARA。与AUTOSAR CP有很大不同,AUTOSAR AP内容很少,只规定了API,而将行为以及功能集群和服务之间的通信留给开发人员自行实现。

AUTOSAR CP定义了超过100个模块,包括行为以及彼此之间的交互通信,这些都被定义好了。Adaptive平台则不一样。Adaptive平台还允许使用面向对象的编程语言开发Adaptive应用程序(如C++)。这与Classic平台不同。Classic平台主要基于信号(当然,也可以基于服务),所以使用C语言。Adaptive平台允许使用高级功能库,如ACES所需的目标识别。如果需要识别一个目标并描述该目标的属性,面向对象的编程语言(以及库)会更加合适。Adaptive平台利用POSIX系统的特性,可以在运行过程中更新、添加或删除应用程序(像手机/PC一样)。您可以在智能手机/平板电脑/PC上添加/更新/删除应用程序,且无需重启。这是因为Adaptive应用程序作为独立的进程运行。每个应用程序都可以单独关闭和重启,单独更新和删除,单独对它们做任何事。而传统的ECU软件更新(FBL),必须完全停止所有应用程序(软件),Bootloader接管权限并进行刷写,这是AUTOSAR CP和AP的重要差异。
十二、常见名词
典型的划分方式把全车的电子电气架构分为五个域:动力域、底盘域、车身域、座舱域、自动驾驶域。
域 | 名词 | 解释 |
动力域 | VCU | 整车控制器 |
BMS | 电池管理系统 | |
OBC | 车载充电机 | |
MCU | 电机控制单元 | |
TCU | 自动变速箱控制单元 | |
EMS | 发动机管理系统 | |
GCU | 增程式发电机控制器 | |
CCU | 离合控制器 | |
车身域 | BCM | 车身控制模块 |
PEPS | 智能进入及启动系统 | |
AC | 空调制冷系统 | |
PTC | 加热器 | |
SRCU | 安全提示灯 | |
TPMS | 轮胎智能检测系统 | |
SCU | 换挡控制模块 | |
底盘域 | EPS | 电子助力转向 |
EPB | 电子驻车制动系统 | |
ESP | 车身电子稳定系统 | |
EBooster | 电子助力制动系统 | |
ECAS | 电子控制空气悬架系统 | |
ACU | 安全气囊控制器 | |
SAS | 车身稳定系统 | |
ABS | 机动车辆刹车防抱死系统 | |
EBD | 电子制动力分配系统 | |
ECSS | 汽车悬架电子控制系统 | |
座舱域 | IPC | 车载网络摄像机 |
IVI | 车载信息娱乐系统 | |
AMP | 功放 | |
CAMERA | 照相机 | |
DA | 车载中控屏 | |
RADIO | 收音机 | |
自动驾驶域 | ADAS | 高级驾驶辅助系统 |
ultrasound | 超声波雷达 | |
Radar | 毫米波雷达/红外雷达 | |
Lidar | 激光雷达 | |
CARERA | 照相机 | |
GPS | 卫星导航 | |
IMU | 惯性导航 |