智能汽车软件架构介绍

昂辉科技 2024-10-02 11:31:01 阅读 64

一、汽车智能化推动汽车软件开发需求爆发式增长

回顾汽车产业发展历史,汽车产业经历了从机械时代到电子时代到如今向软件时代迈进的发展历程。上个世纪 80 年代以来 ECU 开始不断上车,汽车行业以 Tier1 为 中心通过增加 ECU 来提升车辆功能,这一过程中汽车软件以和硬件深度耦合的方式得到发展;现如今,各汽车企业生产的不同车型的硬件配置已逐渐趋同,成本和功能改善空间有限,而新能源和智能化逐渐获得成功,汽车软件开始成为车企打造差异化的核心要素,汽车行业逐渐迈向软件定义汽车(Software Defined Vehicles, SDV)的时代。

不同于传统汽车,智能汽车通过全新的软件技术,能够为车主创造丰富的可感知价值和更安逸的驾驶体验。近年来,全球越来越多的整车厂、零部件厂商以及科技公司开始投入智能化汽车的研发中来,智能汽车正在快速抢占汽车市场。

一辆“数字”汽车(2015 年)的软件代码量能够达到 1 亿行,远高于 Facebook、战斗机、人造卫星等高科技产品的代码量。而随着智能座舱、自动驾驶等智能化模块的发展,汽车软件代码量仍在以超过 20%的年增长率剧增。一辆 2025年生产的智能汽车代码量预计将达到 7 亿行, 相较于 2020 年增加了 2.3 倍。由此可见,汽车制造的技术壁垒也由传统三大件以及零部件的集成能力转变为代码研发的能力,随着汽车智能化不断升级以及软件生态的逐渐繁荣,汽车软件开发需求将爆发式增长,整车软件成本占比将大幅提升。

1、EE 架构升级成为硬件基础

智能化与网联化必须建立在电子电气架构核心的计算能力上,没有硬件基础无法实现软件定义汽车,汽车 EE 架构的变革主要体现在一下 4个方面:

计算性能:汽车芯片由 MCU 转向 SoC。MCU 芯片通常只包含一个 CPU 处理器单元、存储和接口单元,算力一般仅几百 DMIPS;而SoC是系统级芯片,一般采用“CPU+AI芯片(GPU\FPGA\ASIC)”架构方案,如英伟达 Orin X 算力高达 254TOPS。智能座舱和自动驾驶对汽车的智能架构和算法算力带来了数量级的提升需要,以 MCU 为主的汽车芯片将无法满足这些需求,转向搭载算力更强的 SoC 芯片;

通讯带宽:车载以太网成为汽车骨干通讯网络。传统的分布式架构中 ECU 之间大多通过 CAN 通讯、LIN 通讯、Flex Ray 等通讯,数据的传输速度非常有限,一般只有几兆每秒。随着车内传感器数量增加,数据传输体量和速率要求大幅提高,未来车载以太网将成为汽车骨干网,在单对非屏蔽双绞线上可实现 100Mbit/s,甚至 1Gbit/s 的传输速率。

软硬解耦实现 OTA 升级。软件不再是基于某一固定硬件开发,汽车原有 ECU 软件烟囱式垂直架构转变为通用硬件平台+基础软件平台+各类应用软件的水平分层架构,实现软硬件的解耦。硬件预埋,软件后部署,通过不断 OTA 实现软件功能迭代推动整车功能升级。

更好的成本管控。目前在高端车型与智能化程度高的车型中主要 ECU 的数量 达到 100 多个,加上一些简单功能的 ECU 总数可以超过 200 个,ECU 增加对应线束增加带来成本提升,通过域控集成方式可较大幅度减少 ECU 数量;此 外,ECU 由不同供应商提供,任何功能修改涉及多个控制器重新开发、验证,耗时耗力,且软件逻辑被供应商把控,主机厂无法对软件功能实现高效管理。

在智能化、网联化变革趋势下,软件和硬件在零部件层面解耦,软件独立成为核心零部件产品。汽车软件产品获得的多维的车辆数据和控制权限,实现复杂的功能和任务执行。汽车软件的越来越复杂,行数快速提升,逐步形成系统 OS 和应用软件的架构,汽车软件开发难度提升。

2、SOA 是软件定义汽车的软件趋势

SOA 将车端不同功能及硬件能力划分为服务,并按整车的原子能力将服务拆分为颗粒度更小的接口。各服务组件的接口进行标准化封装,可通过既定协议互相访问、 拓展组合;SOA 的核心要素包括松耦合、标准化定义、软件复用等。SOA 使应用层功能可在不同车型上复用,且能够基于标准化接口快速响应用户新的功能需求, 软件工程师在修改或新增某一软件功能时,只需对上层相对应的服务组件进行代码编写,而无需进行基础软件层、运行环境层和其他软件组件的重新编译和重复开发, 这极大地减少了软件升级的复杂度和成本,提高了效率。

从长期来看,汽车企业将引入大量算法供应商、软件开发商和服务厂商共同搭建 SOA,为智能化的汽车软件提供优质的运行平台,也为客户提供全覆盖的软件服务。因此,各大汽车企业逐渐将工作重心转移到 SOA 的合作开发,汽车产业将迎来 SOA 的量产高峰期。

二、汽车软件架构

智能汽车软件分为三层架构,包括:

底层系统软件层,包括 BSP、虚拟机、系统内核、中间件组件等;功能软件层:包括库组件、中间件等,位于操作系统、网络和数据库之上,应用软件的下层,为应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件;层应用算法软件层,包括智能座舱 HMI、ADAS/AD 算法、网联算法、云平台等,用于实际实现对于车辆的控制与各种智能化功能。

1、系统软件层——狭义操作系统

汽车操作系统是管理和控制智能汽车硬件和软件资源的底层,提供运行环境、通信机制和安全机制等。按照对底层操作系统改造程度以及能力深度的不同,主要可以分为以下几种∶

基础型操作系统:如 QNX、Linux、WinCE 等,包含全新底层操作系统和所有 系统组件,如系统内核、底层驱动等,有的还包括虚拟机。

定制型操作系统:指在基础型操作系统之上进行深度定制化开发(包括修改内核、硬件驱动、运行时环境、应用程序框架等),最终实现座舱系统平台或自动驾驶系统平台。

ROM 型汽车操作系统:基于 Linux 或安卓等基础型操作系统进行有限的定制化开发,不涉及系统内核更改,一般只修改更新操作系统自带的应用程序等。大部分车企一般都选择开发 ROM 型操作系统。

超级 APP:又称车机互联或手机映射系统,不是完整意义上的汽车操作系统, 其借助手机的丰富功能映射到汽车中控,以满足车主对娱乐的需求。

(1)底层 OS:决定系统性能,是软件定义汽车的关键

操作系统内核又称为“底层 OS”,提供操作系统最基本的功能,负责管理系统的进程、内存、设备驱动程序、文件和网络系统,是系统软件层的核心。由于开发难度最大且安全性要求最高,其市场竞争格局较为稳定,主要以 QNX、Linux、Android、 WinCE 为主。

(2)BSP 层

BSP(板级支持包)是内核与硬件之间的接口层,一般认为它属于操作系统一部分。BSP 中主要包括 Bootloader(以基础支持代码来加载操作系统的引导程序)、HAL (硬件抽象层)代码、驱动程序、配置文档等。对于具体的硬件平台,与硬件相关 的代码都被封装在 BSP 中,由 BSP 向上提供虚拟的硬件平台,与操作系统通过定 义好的接口进行交互,使之能够更好的运行于硬件主板。其目的在于为操作系统提 供虚拟硬件平台,使其具有硬件无关性,可以在多平台上移植。

(3)虚拟层(Hypervisor)

为了让不同类型的操作系统运行在一个计算平台上,最直接的技术路径就是虚拟化 (Hypervisor),虚拟化技术可以模拟出一个具有完整硬件系统功能、运行在一个完全隔离环境中的计算机系统,此时供应商不再需要设计多个硬件来实现不同的功能需求,而只需要在车载主芯片上进行虚拟化的软件配置,形成多个虚拟机,在每个 虚拟机上运行相应的软件即可满足需求。因此,车载虚拟化操作系统要求具备使用资源分区技术严格隔离和分配资源、灵活高效的实时和非实时任务调度机制、进程间通信,实现消息在虚拟机之间通信三点技术要求。

(4)中间件:软件开发的关键“纽带”

在中间件出现之前,系统软件是直接基于操作系统开发,导致软硬件高度耦合。随着车内代码量的增长导致系统的复杂性和成本剧增,为了提高软件的管理性、移植性、裁剪性和质量,需要定义一套标准的接口、高质量的无缝集成、高效的开发以及通过新的模型来管理复杂的系统。中间件将软件、硬件进行分离,对下层硬件资 源进行抽象、利用,对芯片进行驱动并优化操作系统,对上层软件提供服务接口, 为不同算法提供不同类型的插件。解决数据传输、应用调度、系统集成和流程管理等问题,可大幅提升应用层软件的开发效率。

经典中间件设计标准:AUTOSAR。汽车电子软件标准主要包括 AUTOSAR、 OSEK/VDX 等,其中 AUTOSAR 标准发展了十多年,已经形成复杂的技术体系和广泛的开发生态,是汽车中间件主流设计标准。AUTOSAR 规定了分层架构、方法论和应用接口规范,使得汽车嵌入式系统控制软件开发者,得以在 ECU 软件开发与 验证过程中,摆脱对硬件系统的依赖,实现了软硬件的分离。

AUTOSAR 整个架构从上到下分层依次为:应用层(Application Software Layer),运 行时环境(Runtime Environment,RTE),基础软件层(Basic Software Layer,BSW), 微控制器(Microcontroller)。每层之间为保持独立性,每一层只能调用下一层的接 口,并为其上一层提供接口。

2、功能软件层

在汽车软件架构中,功能软件主要包含自动驾驶的核心共性功能模块。核心共性功能模块包括自动驾驶通用框架、网联、云控等,结合系统软件,共同构成完整的自动驾驶操作系统,支撑自动驾驶技术实现。

在功能软件领域,与供应商合作的模式有助于满足车企自身对于智能汽车产品功能研发的需求。相比于车企,各大供应商开发的软件模块经过不同情景、在不同产品上的检验,质量更具有保障。且一些软件供应商可根据车企自身特色,提供更适合车企的解决方案,加快研发效率。例如为研发能力比较强的车企提供功能模块方案,开放干净的接口,让车企自己去控制整个用户体验和产品定义。而面向软件能力还不完善的车企,可以提供软硬件集成交付方案,大大缩短车企研发周期。

3、应用软件层

应用层软件运行在广义操作系统之上,具体负责功能实现。主要包括面向自动驾驶算法、地图导航类、车载语音、OTA 与云服务、信息娱乐等。典型的计算平台,在装载运行系统软件和功能软件构成的操作系统后,向上支撑应用软件开发,最终实现整体功能实现。上层的应用软件层是 OEM 重点研发打造差异化的领域,比如座舱 HMI、自动驾驶等。因此,目前整车厂、传统 Tier1、初创企业、科技巨头以及独立的软件企业等在上层软件领域都在积极发力。

从长期来看,上层应用与算法价值量最大。在短期内,汽车软件领域内企业若想真正落地 SOA 软件架构,虚拟化技术、系统内核及中间件(AUTOSAR)等系统软件至关重要。但从长期来看,在 SOA 架构以及广泛的操作系统框架构建成熟后,丰富的上层应用生态与算法将具备更大的价值空间。

来源:综合自网络



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。