李丹 郑红丽 回姝 顾莹
(1.中国第一汽车股份有限公司智能网联开发院,长春 130013;2.汽车振动噪声与安全控制综合技术国家重点实验室,长春 130013)
主题词:智能网联汽车 智能座舱 操作系统
缩略语
ADAS Advanced Driving Assistance System
V2X Vehicleto Everything
HUD Head Up Display
DMS Driver Monitoring System
OMS Occupancy Monitoring System
OS Operating System
E/E Electric/Electronic
HAL Hardware Abstract Layer
BSP Board Support Package
API Application Programming Interface
HMI Human Machine Interface
IO Input Output
KVM Keyboard Video Mouse
TOF Time Of Fly
IVI In-Vehicle Infotainment
OTA Over The Air Technology
SOTA Software Over The Air Technology
AI Artificial Intelligence
当前随着硬件、软件技术的不断创新发展,智能座舱从以功能需求出发,向“客户体验”为核心的理念不断演变,整体表现为更加安全、智能和舒适。主要体现为以下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、Android Auto、CarLife、Hicar、FAW-VW-LINK等。智能座舱操作系统演变过程见智能座舱发展概要(图1)。
图1 智能座舱发展概要
广义的OS由系统软件和功能软件2部分构成。自上而下可划分为APP算法软件、功能软件(库文件+中间件)和系统软件(HAL层+内核+中间件)以及硬件平台4个部分。
(1)硬件平台:硬件架构包括AI单元和驱动层,需支持芯片选型的灵活性、可配置拓展性、算力可堆砌性的优点,例如H3平台架构(图2)。
图2 H3平台架构[2]
(2)系统软件:针对智能座舱场景定制较为复杂的大规模嵌入式系统的运行环境,主要包含如下3层:
①硬件抽象层:包括Hypervisor(虚拟化技术,用于提供虚拟平台以便同时支持多操作系统)、BSP(板卡支持包)等。BSP包括了Bootloader(引导程序)、驱动程序、配置文档和HAL层。位于硬件电路与操作系统内核间的接口层用于将硬件抽象化,为操作系统提供虚拟硬件平台,使其与硬件解耦,并可以在多平台上移植。
②系统内核(Kernel):内核是操作系统最基本的组成部分,主要用于管理系统的内存、进程、设备的驱动程序、文件管理和网络系统,系统内核决定着操作系统的性能和稳定性。
③中间层:即应用程序服务器层,是处在应用和操作系统之间的软件,可提供标准的接口和协议,提升程序的可移植性,如自适应AutoSAR运行时的环境(中间件API接口)和分布式实时通信中间件等。
(3)功能软件:包含智能座舱的核心共性功能模块,如相关功能模块算法的编程框架。核心共性功能模块包括智能座舱通用框架、网联功能、云控平台、多模交互,功能软件结合系统软件,共同构成完整的智能座舱操作系统,支撑座舱智能化技术实现。
(4)应用算法软件:为实现具体座舱智能化功能、HMI交互、自动驾驶功能算法的软件。
图3 娱乐主机软件架构
从目前的发展方向上来看,由于单车软件全生命周期价格越来越高,推动汽车主机厂(OEM)大力扩充内部软件研发团队,降低外部软件供应成本,而且随着软件定义汽车的不断发展,行业的盈利模式也将随之改变,由新车制造/销售来获取利润向大规模软件+保有量收费(如客户端(C端)授权及流量收益等)的盈利模式转变,因此多数OEM都试图掌握未来智能汽车底层软件和硬件的控制权,同时掌握上层生态环境,在此阶段多数OEM倾向于采用中立、免费的操作系统,同时开展多方面的合作,利用丰富的开源软件资源,实现开发周期和开发成本的优化。
随着智能座舱功能越来越复杂,多任务执行需求量的增多,早期采用裸机程序的方式不得不引入大量的中断,保证功能的自如切换,可中断的引入使程序结构变得复杂,导致程序可读性变差,维护起来较难。
随着娱乐主机内应用和接口数量的增多,座舱软件使用了更为复杂操作系统。其中Linux和QNX只集成了学术定义上的操作系统和通讯协议栈;而Ubuntu则在Linux的基础上增加了中间件及桌面环境;Android系统则在Linux的基础上集成了中间件及桌面环境和大量的应用软件。现阶段娱乐主机的主流操作系统主要为QNX、Linux和Android。
4.1.1 QNX:非开源且安全实时
QNX系统是一款微内核、非开源、嵌入式、安全实时的操作系统。其内核内存不大于30 kB,QNX系统的驱动程序、协议栈、文件系统、应用程序都是运行在内核之外、并受内存保护的空间内,这样就可实现组件间的相互独立,即避免了因为程序指针错误造成的内核故障。QNX系统内核小,运行速度快,是一种独特的微内核架构,其安全和稳定性极高,不易受到病毒的破坏,也是全球首款通过ISO 26262 ASIL-D安全认证的实时操作系统。因此QNX系统通常用于对安全稳定性要求较高的仪表总成中。
但QNX为非开源系统,开发难度较大、应用生态较弱、商业收费高。由于QNX系统凭借现阶段智能座舱操作系统对安全稳定性、实时性的严苛要求,仍占据较大的使用率。
4.1.2 Linux:功能强大并开源
Linux系统是一款开源且功能强大的操作系统,具有内核紧凑且高效的特点,Linux系统可以充分发挥硬件的性能。Linux系统与QNX系统相比最大优势在于代码开源,具有较强的定制、开发的灵活性。基于Linux开发的操作系统是在Linux Kernel内核上集成了中间件、桌面环境和应用软件。Linux的功能较QNX更为强大,组件构成也更加复杂,因此Linux常用于支持更多应用和多接口的信息娱乐系统中。
4.1.3 Android:Linux的发行版本
Android是Linux的发行版本,其系统更加复杂,功能更加强大。Android是由Google公司和开放手机联盟在Linux的基础上开发的操作系统。Android一度被称为基于Linux开发的、最成功的产品之一,应用生态开发最为丰富,其主要应用于移动互联设备,因此,在国内车载娱乐系统常基于Android开发。Android系统具有开源、灵活、可以移植性强的优点。
但Android系统安全稳定性较差,系统漏洞可能给系统带来较高的风险,技术维护成本相对较高,且过度依赖于Google。
Android系统凭借国内丰富的应用生态切入汽车信息娱乐系统。虽然Android系统的安全稳定性欠佳,但由于车载娱乐系统对安全性要求相对较低,Android仍然凭借其开源、灵活、可以移植性强的优点在国内车载娱乐系统领域占据主流地位。
Hypervisor是一种基于硬件虚拟化的软件技术,运行在物理硬件与虚拟客户机之间。Hypervisor用于创建、运行和管理客户操作系统,虚拟操作系统可以访问(独占或共享)底层硬件资源,包括CPU、内存和外围设备。在每个虚拟客户机用户看来,所有已分配的硬件都可用于本机。Hypervisor还提供硬件设备共享功能,多个虚拟机可共享使用网络、存储和GPU外部设备。近年来,Hypervisor越来越多地应用在数据中心、复杂嵌入式系统领域,用于提高硬件系统的利用率、软件安全性。Hypervisor是实现跨平台应用、提高硬件利用率的重要途径之一。
虚拟化的主要类型如下:
(1)应用程序的虚拟化:比如JAVA VM,其本质是对二进制的转换;
(2)操作系统的虚拟化:比如容器/Docker技术,其本质利用对特定进程可用的算力、存储、IO资源的管理,几乎没有额外系统负担,操作系统的虚拟化在云服务中使用较多;
(3)硬件虚拟化:比如直接在硬件基础上运行的Xen、Opensynergy、QNX、ACRN等,在完整的OS上运行的KVM,对算力及IO的影响小,额外负担成本少。实现硬件虚拟化可以采用全虚拟化(Full-Virtualized)、半 虚 拟 化(Para-Virtualized)或 透 传(Pass through)的方式。
感知算法涉及语音、视觉、声学、多模交互融合方面。其中语音涉及单模语音交互技术,降噪、回声消除、语音识别,视觉涉及基于图像信息、ToF传感器算法的技术实现人脸识别、手势识别以实现驾驶员、乘客检测,如抽烟、情绪管理等。
智能座舱是典型的多模交互场景,而视觉基础技术是多模技术的基础,随着摄像头数量的增加、分辨率的提升,视觉基础技术由单帧感知走向时序感知、从平面感知变为立体建模、从单模态变为多模态学习,从监督学习走向自主学习。同时语音交互是多模态交互的重要部分,涉及多模、多音区定位、多模人声分离、多模语音识别、多模回声消除和降噪等技术。
与此同时,为实现人机共驾,对算法延迟的要求越来越高,快速、稳定、准确、对网络的低依赖是智能座舱未来的基本要求。基于此要求下势必增加传感器数量及能力,例如摄像头个数、分辨率、运行帧率、麦克风数量、AEC通道数量等,每一个因素都将对算法及上层应用产生影响,导致对算力的要求越来越高。
2020年量产的红旗H9及E-HS9的座舱域是基于Renesas Rcar-H3的虚拟化座舱域控制器平台,Rcar-H3是Renesas的汽车计算平台的第三代解决方案,提供强大的CPU计算能力、图像处理能力,适用于安全驾驶辅助系统和车载信息娱乐系统领域,Renesas提供稳定的BSP支持。
一汽和业界领先的OpenSynergy一起基于H3定制开发了Type-1型虚拟机COQOSHypervisor(图4),使其能够在一个R-Car H3芯片上同时执行多个操作系统:基于Linux系统的信息系统(仪表)是与安全相关显示组件以及基于Android系统的车载信息娱乐系统(IVI)。COQOSHypervisor与Android系统和Linux系统共享R-Car H3 GPU的处理能力,将应用呈现在多个显示屏上,进而实现强大且灵活的智能座舱系统。
图4 COQOSHypervisor软件架构
快节奏的现代生活,使人们更加重视高性能。启动速度快、界面切换迅速都成为了智能座舱系统评价打分的关键要点。系统性能受限于硬件及软件平台,需要在软件层面尽可能地优化,以最大化发挥硬件性能。
车载系统的安全关系到乘员生命和车辆及承载的财产,其重要性毋庸置疑。软件行业、互联网行业发展多年,各种新技术、新系统层出不穷,但与此同时,黑客技术也从未止步,如何保证安全性,是一个永恒的课题。
智能座舱系统的功能丰富多样、种类繁多,有如驾乘辅助类、娱乐类、工作类等。随着功能越来越丰富,系统越来越复杂,软件问题也层出不穷。需要有效、快速地解决软件问题,确保系统稳定。
现代社会对知识产权的保护非常重视。避免被竞争对手借助专利设卡,重视知识产权并通过知识产权保护自研技术是一项很重要的内容。
用户群体复杂,有年轻人和中老年人,有男性、有女性,每个人群、每个人偏好是不一样的。智能座舱操作系统需要注重考虑如何满足个性化需求。
采用低耦合设计方案,让软件平台化。系统软件可以方便、快速地移植到新平台。对于车企而言,能够投入更多精力精雕细琢,既降低了研发成本,也提升了软件质量。同时,低耦合设计使得软件的扩展和定制更为灵活,满足了个性化的需要。
严格实行软件规范化,制定一套软件代码规范。例如,采取可读性强的命名规则,采用易扩展维护的功能设计,借助专业代码质量检测工具(如SonarCube、LeakCanery等)进行代码质量检测。以规范化手段确保软件质量,保证系统稳定性。
支持OTA(系统升级)和SOTA(功能模块升级)2种远程升级方案。这2种方式给安全漏洞补丁、软件漏洞补丁及新功能的导入提供了基础性支持。
保持对新技术的关注,不断创新,在5G和AI时代持续进行产品导入,取得先机。
随着通信技术的不断发展,智能座舱操作系统稳步演变,通过对智能座舱系统演变进程的剖析,以及对一汽红旗H9、E-HS9车型智能座舱系统搭载的分析,提出智能座舱发展面临的挑战和应对措施,进而支撑以用户体验为导向的智能座舱开发方式,应对未来市场的挑战。
面向服务的架构(Service Oriented Architecture,SOA)作为一种面向服务的架构的组件模型。未来随着SOA的广泛应用,SOA可将不同的应用服务进行解耦,并通过预先定义好的接口进行调用,使得构建在不同的系统中的服务可以以一种统一和通用的方式进行交互,进而推进实现软件定义汽车。