楼主基于自动驾驶应用场景分别从E/E架构、通讯方式、软件架构和流程标准等方面谈下与当前模式相比可能加强的方面和涉及的变化,当我扯淡,欢迎拍砖。
汽车E/E架构:分布式->域集中->中央计算机
目前的汽车有多达几十甚至上百个电子控制单元并连接到多个总线上,Strategy Analytics的数据预测了各级别汽车控制器数量的增加趋势。平均来说,目前的汽车大约采用25个ECU,但一些高端车型已经采用超过100个ECU。将来若依然采用这种分布式E/E架构,会导致一个规模更大且复杂的车载网络和布线,另一方面也将影响整车的轻量化。
面对汽车功能和软件复杂度的提升,需要对汽车E/E架构进行重构,建立更加灵活的体系架构。在域集中架构下,整车的功能将会以特定的方式重新排列组合,典型的域有信息娱乐域、底盘域、动力域和车身域等。域控制器可控制总线系统中的多个区域从而大大降低控制器数量,而多核系统及Autosar等软硬件架构的出现使域集中式的E/E架构成为可能。目前BOSCH等供应商都已有相应的域控制器产品,但实现真正的域集中E/E架构依然还需要很长时间,毕竟这不是一己之力才能实现的,需要OEM、供应商等共同大力合作和推进才能实现。
举个例子:如下是包含两个160 MHz e200z4内核和一个80 MHz e200z2内核的多核控制器。
其多核设计和相关的特性集,支持单一架构中的多个应用,那么在不同内核及其相关资源之间的高度分离和隔离允许在应用级进行隔离。这意味着它可以专门指定一些MCU资源(例如内核、外设子集和存储器)用于一个应用,同时将具有外设和存储器子集的另一内核用于完全独立的另一应用,这样我们可将其应用于控制两个独立的域的域控制器:
一个网关域:处理传统的汽车开放系统架构(AUTOSAR)汽车网关功能,拥有专用CPU和相关的存储器和外设资源,几乎独立地运行IP域,但可以通过共享存储器和中断消息架构安全地交换数据。
一个IP域:连接至互联网,用于支持多种应用,例如在车载网络中分布场内下载,使用专用e200z4内核、专用系统RAM和一部分闪存阵列,运行其自己的操作系统(OS),此系统具有其自己的OS计时器、看门狗和系统资源。
高级自动驾驶汽车需要汽车知道周围的环境,环境模型通过传感器融合技术构建,传感器融合技术将摄像头、毫米波雷达、激光雷达及超声波数据糅合进单个模型,因单个传感器有自身的局限性和劣势,而不同的传感器技术则可相互互补,例如,不像雷达系统,摄像头系统当在无光条件下会失效。传感器融合技术会涉及大量数据的实时处理和分析。而到了中央计算机架构,这些复杂的计算将由中央计算机进行,中央计算机由异构的多核处理器构成,例如GPU、千兆以太网通道等,对于关键安全功能例如合理性检验、监控及结果检验等需要额外的安全核心集成在芯片上,或作为第二块处理器集成在板载设备上,例如ARM Cortex A50/A57,Renesas' R-Car H3,Cortex R7和Infineon Aurix等系统已存在。
中央计算机架构中另一个关键部件就是网关:它将用户接口域从动力域中分离出来并将汽车与OEM的后台系统互联,使用一种叫智能天线的组件。智能天线和网关的任务就是执行不同的安全层,如防火墙和入侵检测,并使用板载安全机制用于控制器之间的通讯。
与后台系统的互联使很多新功能的更新成为可能,例如可向汽车提供诸如道路状况,空停车位等环境信息,这些在线服务可让汽车制造商在汽车生命周期内不断获取收益,其次车辆互联能让OEM收集用户信息并获取零部件的使用和可靠性信息。软件和硬件的错误信息及产生错误时的环境信息可通过诊断接口检测,从而使软件可在供应商端升级并更新下载到车辆端,类似于智能手机的App更新。
汽车软件架构
与复杂的多核系统相反,十年前,很多控制单元还是16位的单核系统,对于供应商,技术的飞跃对软件的设计提出了更严苛的要求,未来软件才是汽车的核心价值,我想那些使用集成工具链进行系统设计、建模、代码生成和验证来管理增长的软件复杂度和成本的供应商会在这个过程中受益。
当前,很多控制单元都使用静态配置的操作系统,这些操作系统依据的是Atosar 或OSEK的标准,在配置期间,这些系统可定义调度和资源利用率,静态配置的优势就是能够轻松验证功能是否在确定的时间内被执行,例如安全气囊,在碰撞发生时,需在几毫秒内做出决策并弹出。
对于那些对时间要求较低的复杂多核系统,动态操作系统将体现优势,重要的应用场景有如下几种:
1、支持运行时的重新配置
2、基于面向对象的服务和通讯
3、部分软件更新
4、使用POSIX接口进行软件开发而不是基于XML接口描述文件的静态配置
在软件架构方面,多软件架构,诸如Autosar、Adaptive Autosar、ROS等将会耦合集成。
以太网和时间敏感网络—TSN作为通讯媒介
当前汽车具有多个能提供诸多功能的ECU。这些功能可能分布在多个ECU上,其中大多数是连接至一个或多个系统总线的网络节点。这些ECU控制多种功能,例如照明、空调、座椅、引擎或变速箱。控制器区域网络(CAN)、局域互联网络(LIN)和FlexRay等与其连接的各种总线系统构成当前汽车中的分布式网络。
而由于ADAS或自动驾驶应用场景的应用,会带来系统数据存储和通讯的大量提高。这就对网络带宽提出了更高的要求,此外由于域控制器的加入,整个系统需要通过速度更快的总线互联。从业界发展趋势中可发现,以太网将成为域网络的“主干网”并取代CAN。这样的话,控制器与传感器和执行器将通过以太网进行通讯,TSN作为AVB协议的一种扩展,将会被用于关键安全和可靠的通讯。TSN标准就是为高安全等级和高实时要求的系统而开发的,诸如ADAS和自动驾驶。另外,以太网则用于将娱乐信息系统连接到网络及OEM的后台系统。
FlexRay,CAN和CANFD(可变速率CAN)将依然用于传感器、执行器和小型输入输出控制器的连接。中心计算机的通讯则是通过面向服务的接口通讯,面向服务的接口由BMW在2011年制定,即车载以太网SOME/IP,它是基于以太网和TCP/IP协议的一套标准。
有哪些标准和流程会逐渐加强?
为了满足汽车软件开发高质量的标准,ASPICE 过程模型被建立,ASPICE是安全和保障的基础,楼主相信这是未来保证软件开发质量的一个重要方面,不管是供应商还是各大OEM都应逐渐应用起来。
ISO26262标准则在流程和方法论方面定义了系统开发中功能安全的影响,对于软件架构,功能安全是一个非常关键的因素,如何设计车内系统使其能符合功能安全标准要求是一个巨大挑战,特别是在日渐增加的应用复杂性以及产品上市时间的紧迫性的双重压力之下。电子系统面临的挑战是构建的系统需要能够防止危险故障的发生或至少在出现故障时能够有效地进行控制。功能安全标准已应用于车辆安全系统,如安全气囊或 ADAS。ISO26262是从IEC61508标准派生而来,针对道路乘用车车辆内的电气/电子系统。该标准应对架构、功能和程序方面的问题,包括汽车安全生命周期,以避免并控制系统错误以及随机硬件故障。ISO 26262指定了四个ASIL等级(A至D)以确定标准的必要要求以及用于避免不合理残余风险的安全措施,其中D表示最严格的安全等级,A表示最宽松的安全等级。通过考量任务数据中系统故障可能导致伤害的那部分(即出现概率);驾驶员应付系统故障并避免伤害的能力(即可控性);以及可控性操作失败会导致的人身后果(即严重程度) 这三点,进行车辆层面的危险分析和风险评估,确定适当的ASIL等级。
安全访问机制在汽车开发中已经存在相当长的时间了,像防盗器、电子钥匙和里程的安全存储等系统都已是标准的功能,然而,汽车互联的急速增长需要面临的新挑战,根据信息技术的基本规则“任何连接都会有受到攻击的可能”,系统的安全和用户隐私在汽车行业也将会变得非常重要。人们对车载网络安全的要求也越来也高,以防止未授权设备访问车载网络给车主带来危害。
总结
自动驾驶汽车的架构需求已经变得非常复杂,然而,通过结合标准化的架构和接口、功能安全、多核系统等技术,将大大简化和提升我们的开发效率;通过Aspice等流程标准则可保证我们开发的质量。
在电子电气系统方面,通过使用高集成度、高性能及广泛连接性的多核微控制器,将重塑现有汽车E/E架构,使其向域集中或中央计算机式发展,从而减少组件和布线的整体数量和复杂性,有助于减少汽车的重量,促进汽车的节能环保(降功耗)。
随着嵌入式存储增加并向规模更大的域控制器架构迁移,需要一个新的高速接口实现互联互通。以太网是高速网络的一个显而易见的选择,因为它在非车载应用中广泛使用,并已经用于量产汽车。以太网将在高带宽汽车应用中被广泛采用,但短期内不太可能取代现有的、特定的CAN、LIN、SENT和PSI5应用程序协议。