↓↓关注回复“资料”,领取特斯拉专利技术解析报告↓↓随着智能座舱领域以及驾驶辅助功能的不断升级,必然伴随传感器数量的提高、芯片算力要求的提高,基于软件定义汽车的共识,芯片、操作系统、中间件、应用算法软件、数据是实现智能座舱的关键因素。对汽车的架构及座舱的实现方式进行梳理,同时结合一汽红旗H9、E-HS9 车型的实践,对汽车座舱操作系统的现状和趋势进行分析,探讨在新一轮科技和产业发展中的应对战略。当前随着硬件、软件技术的不断创新发展,智能座舱从以功能需求出发,向“客户体验”为核心的理念不断演变,整体表现为更加安全、智能和舒适。主要体现为以下3方面:(1)人机交互能力由功能性感知逐步向认知、主动式交互发展;(2)多屏、大屏、3D 和高清感官方面的创新正逐步成为座舱显示的新趋势;(3)软件的自定义编程实现场景个性化设定和自由组合。在技术层面,随着新一代E/E 架构的发展,座舱域正在进行深度的融合,整合部分ADAS 功能和V2X 系统,例如在集成仪表中控、后排娱乐、HUD 这些基础功能上进一步融合环视、DMS、IMS 和部分ADAS 功能, 由此座舱对算力的要求越来越高,推动芯片的制程工艺越来越先进,芯片的迭代速度越来越快,汽车产品的发布周期缩短,部分软件平台实现了标准化、可扩展、开放式的一体化基础软件平台,以实现软硬件解耦,达到软件功能快速迭代、实现场景服务和变更开发的快速升级迭代,从而实现个性化和差异化的座舱产品体验。这些技术变化对底层软件及操作系统提出了越来越高的要求。本文通过对智能网联时代汽车座舱操作系统发展带来的挑战进行阐述和分析,进而提出对座舱操作系统发展的对策以迎接操作系统发展的大趋势。操作系统(Operating System, OS)指控制和管理计算设备的硬件和软件资源的计算机程序,操作系统需要管理和配置内存,决定系统资源分配的优先次序, 同时控制输入、输出设备的基本功能,且操作系统需要提供一个让用户与系统交互的操作界面,需要合理地调动计算资源、组织计算机工作,以提供给用户和其它应用统一的接口和统一环境的程序集合。随着人们生活水平的提高,电话、电脑、智能穿戴、以及车载设备发展到一定程度后,均需要制定专门的操作系统,例如电脑对应的微软Windows 系统, 智能手机、平板对应的Android 系统和iOS 系统。智能座舱的OS 是从传统嵌入式汽车电子的基础软件不断演变而来的,而传统汽车电子可以分为2大类:(1)汽车电子类控制设备:通过直接向控制器发送控制命令,用以实现控制发动机、DCDC、变速箱 等协同工作的总成或部件。(2)车载信息娱乐设备:如仪表、中控、抬头显示(HUD)、流媒体后视镜(FDM)等。这类部件与用户体验强相关,但是此类设备不直接参与汽车行驶的控制与决策,对车辆行驶性能和安全不起到决定作用。汽车类的操作系统分为2大类型:注重开放性、兼容性、生态联合的智能座舱域OS 和注重安全、稳定的自动驾驶域OS。狭义上的OS 即为操作系统的内核(Kernel)。内核提供给OS 最基本的功能,内核主要负责管理系统的进程、内存、设备驱动程序和文件管理及网络系统, 内核的性能决定了系统的性能和稳定性。广义的 OS 按照对底层操作系统改造程度的不同,主要可以分为以下4 种:(1)基础型的汽车OS:是汽车底层的操作系统,包括系统内核、底层驱动层,一些OS 还包括虚拟机, 如 QNX、Linux、WinCE、ALIOS 等。(2)定制型的汽车OS:在基础型的OS 之上进行深度定制化的开发,定制内容包括内核定制、硬件驱动修改、运行时环境变更、应用程序框架适配。(3)ROM 型汽车OS:基于Linux、Android、ONX 等基础型操作系统的基础上进行定制化开发,但是并不涉及系统内核的更改,一般只修改基础型操作系统自带的应用程序。(4)超级APP:不是完整意义的汽车OS,指的是通过整合导航、多媒体、微信、语音功能为一体,来满足不同车主需求的APP,也称作手机互联,如CarPlay、An⁃ droid Auto、CarLife、Hicar、FAW-VW-LINK 等。智能座舱操作系统演变过程见智能座舱发展概要(图1)。图1 智能座舱发展概要广义的 OS 由系统软件和功能软件 2 部分构成。自上而下可划分为APP 算法软件、功能软件(库文件+ 中间件)和系统软件(HAL 层+内核+中间件)以及硬件平台 4 个部分。(1)硬件平台:硬件架构包括AI 单元和驱动层,需支持芯片选型的灵活性、可配置拓展性、算力可堆砌性的优点,例如H3 平台架构(图2)。(2)系统软件:针对智能座舱场景定制较为复杂的大规模嵌入式系统的运行环境,主要包含如下3层:①硬件抽象层:包括Hypervisor(虚拟化技术,用于提供虚拟平台以便同时支持多操作系统)、BSP(板卡支持包)等。BSP 包括了Bootloader(引导程序)、驱动程序、配置文档和HAL 层。位于硬件电路与操作系统内核间的接口层用于将硬件抽象化,为操作系统提供虚拟硬件平台,使其与硬件解耦,并可以在多平台上移植。图2 H3 平台架构②系统内核(Kernel):内核是操作系统最基本的组成部分,主要用于管理系统的内存、进程、设备的驱动程序、文件管理和网络系统,系统内核决定着操作系统的性能和稳定性。③中间层:即应用程序服务器层,是处在应用和操作系统之间的软件,可提供标准的接口和协议,提升程序的可移植性,如自适应AutoSAR 运行时的环境(中间件API 接口)和分布式实时通信中间件等。(3)功能软件:包含智能座舱的核心共性功能模块,如相关功能模块算法的编程框架。核心共性功能模块包括智能座舱通用框架、网联功能、云控平台、多模交互,功能软件结合系统软件,共同构成完整的智能座舱操作系统,支撑座舱智能化技术实现。(4)应用算法软件:为实现具体座舱智能化功能 、HMI 交互、自动驾驶功能算法的软件。图3 娱乐主机软件架构从目前的发展方向上来看,由于单车软件全生命周期价格越来越高,推动汽车主机厂(OEM)大力扩充内部软件研发团队,降低外部软件供应成本,而且随着软件定义汽车的不断发展,行业的盈利模式也将随之改变,由新车制造/销售来获取利润向大规模软件+ 保有量收费(如客户端(C 端)授权及流量收益等)的盈利模式转变,因此多数OEM 都试图掌握未来智能汽车底层软件和硬件的控制权,同时掌握上层生态环境,在此阶段多数OEM 倾向于采用中立、免费的操作系统,同时开展多方面的合作,利用丰富的开源软件资源,实现开发周期和开发成本的优化。随着智能座舱功能越来越复杂,多任务执行需求量的增多,早期采用裸机程序的方式不得不引入大量的中断,保证功能的自如切换,可中断的引入使程序结构变得复杂,导致程序可读性变差,维护起来较难。随着娱乐主机内应用和接口数量的增多,座舱软件使用了更为复杂操作系统。其中Linux 和QNX 只集成了学术定义上的操作系统和通讯协议栈;而Ubuntu 则在 Linux 的基础上增加了中间件及桌面环境;An⁃ droid 系统则在Linux 的基础上集成了中间件及桌面环境和大量的应用软件。现阶段娱乐主机的主流操作系统主要为QNX、Linux 和Android。QNX 系统是一款微内核、非开源、嵌入式、安全实时的操作系统。其内核内存不大于30 kB,QNX 系统的驱动程序、协议栈、文件系统、应用程序都是运行在内核之外、并受内存保护的空间内,这样就可实现组件间的相互独立,即避免了因为程序指针错误造成的内核故障。QNX 系统内核小,运行速度快,是一种独特的微内核架构,其安全和稳定性极高,不易受到病毒的破坏,也是全球首款通过ISO 26262 ASIL-D 安全认证的实时操作系统。因此 QNX 系统通常用于对安全稳定性要求较高的仪表总成中。但QNX 为非开源系统,开发难度较大、应用生态较弱、商业收费高。由于QNX 系统凭借现阶段智能座舱操作系统对安全稳定性、实时性的严苛要求,仍占据较大的使用率。Linux 系统是一款开源且功能强大的操作系统, 具有内核紧凑且高效的特点,Linux 系统可以充分发挥硬件的性能。Linux 系统与 QNX 系统相比最大优势在于代码开源,具有较强的定制、开发的灵活性。基于Linux 开发的操作系统是在Linux Kernel 内核上集成了中间件、桌面环境和应用软件。Linux 的功能较QNX 更为强大,组件构成也更加复杂,因此Linux 常用于支持更多应用和多接口的信息娱乐系统中。Android 是 Linux 的发行版本,其系统更加复杂, 功能更加强大[6]。Android 是由 Google 公司和开放手机联盟在 Linux 的基础上开发的操作系统。Android 一度被称为基于 Linux 开发的、最成功的产品之一, 应用生态开发最为丰富,其主要应用于移动互联设备,因此,在国内车载娱乐系统常基于 Android 开发。Android 系统具有开源、灵活、可以移植性强的优点。但Android 系统安全稳定性较差,系统漏洞可能给系统带来较高的风险,技术维护成本相对较高,且过度依赖于Google。Android 系统凭借国内丰富的应用生态切入汽车信息娱乐系统。虽然 Android 系统的安全稳定性欠佳,但由于车载娱乐系统对安全性要求相对较低,An⁃ droid 仍然凭借其开源、灵活、可以移植性强的优点在国内车载娱乐系统领域占据主流地位。Hypervisor 是一种基于硬件虚拟化的软件技术, 运行在物理硬件与虚拟客户机之间。Hypervisor 用于创建、运行和管理客户操作系统,虚拟操作系统可以访问(独占或共享)底层硬件资源,包括 CPU、内存和外围设备。在每个虚拟客户机用户看来,所有已分配的硬件都可用于本机。Hypervisor 还提供硬件设备共享功能,多个虚拟机可共享使用网络、存储和GPU 外部设备。近年来,Hypervisor 越来越多地应用在数据中心、复杂嵌入式系统领域,用于提高硬件系统的利用率、软件安全性。Hypervisor 是实现跨平台应用、提高硬件利用率的重要途径之一。(1)应用程序的虚拟化:比如JAVA VM,其本质是对二进制的转换;(2)操作系统的虚拟化:比如容器/Docker 技术, 其本质利用对特定进程可用的算力、存储、IO 资源的管理,几乎没有额外系统负担,操作系统的虚拟化在云服务中使用较多;(3)硬件虚拟化:比如直接在硬件基础上运行的Xen、Opensynergy、QNX、ACRN 等,在完整的 OS 上运行的KVM,对算力及IO 的影响小,额外负担成本少。实现硬件虚拟化可以采用全虚拟化(Full- Virtual⁃ ized)、半 虚 拟 化(Para- Virtualized)或 透 传(Pass through)的方式。感知算法涉及语音、视觉、声学、多模交互融合方面。其中语音涉及单模语音交互技术,降噪、回声消除、语音识别,视觉涉及基于图像信息、ToF 传感器算法的技术实现人脸识别、手势识别以实现驾驶员、乘客检测,如抽烟、情绪管理等。智能座舱是典型的多模交互场景,而视觉基础技术是多模技术的基础,随着摄像头数量的增加、分辨率的提升,视觉基础技术由单帧感知走向时序感知、从平面感知变为立体建模、从单模态变为多模态学习,从监督学习走向自主学习。同时语音交互是多模态交互的重要部分,涉及多模、多音区定位、多模人声分离、多模语音识别、多模回声消除和降噪等技术。与此同时,为实现人机共驾,对算法延迟的要求越来越高,快速、稳定、准确、对网络的低依赖是智能座舱未来的基本要求。基于此要求下势必增加传感器数量及能力,例如摄像头个数、分辨率、运行帧率、麦克风数量、AEC 通道数量等,每一个因素都将对算法及上层应用产生影响,导致对算力的要求越来越高。快节奏的现代生活,使人们更加重视高性能。启动速度快、界面切换迅速都成为了智能座舱系统评价打分的关键要点。系统性能受限于硬件及软件平台,需要在软件层面尽可能地优化,以最大化发挥硬件性能。车载系统的安全关系到乘员生命和车辆及承载的财产,其重要性毋庸置疑。软件行业、互联网行业发展多年,各种新技术、新系统层出不穷,但与此同时,黑客技术也从未止步,如何保证安全性,是一个永恒的课题。智能座舱系统的功能丰富多样、种类繁多,有如驾乘辅助类、娱乐类、工作类等。随着功能越来越丰富,系统越来越复杂,软件问题也层出不穷。需要有效、快速地解决软件问题,确保系统稳定。现代社会对知识产权的保护非常重视。避免被竞争对手借助专利设卡,重视知识产权并通过知识产权保护自研技术是一项很重要的内容。用户群体复杂,有年轻人和中老年人,有男性、有女性,每个人群、每个人偏好是不一样的。智能座舱操作系统需要注重考虑如何满足个性化需求。采用低耦合设计方案,让软件平台化。系统软件可以方便、快速地移植到新平台。对于车企而言,能够投入更多精力精雕细琢,既降低了研发成本,也提升了软件质量。同时,低耦合设计使得软件的扩展和定制更为灵活,满足了个性化的需要。严格实行软件规范化,制定一套软件代码规范。例如,采取可读性强的命名规则,采用易扩展维护的功能设计,借助专业代码质量检测工具(如SonarCube、LeakCanery 等)进行代码质量检测。以规范化手段确保软件质量,保证系统稳定性。支持OTA(系统升级)和SOTA(功能模块升级)2 种远程升级方案。这2 种方式给安全漏洞补丁、软件漏洞补丁及新功能的导入提供了基础性支持。保持对新技术的关注,不断创新,在5G 和AI 时代持续进行产品导入,取得先机。面向服务的架构(Service Oriented Architecture, SOA)作为一种面向服务的架构的组件模型。未来随着 SOA 的广泛应用,SOA 可将不同的应用服务进行解耦,并通过预先定义好的接口进行调用,使得构建在不同的系统中的服务可以以一种统一和通用的方式进行交互,进而推进实现软件定义汽车。转载自智能汽车开发者平台,文中观点仅供分享交流,不代表本公众号立场,如涉及版权等问题,请您告知,我们将及时处理。
-- END --