文/奚美丽 张远骏(东风商用车有限公司技术中心)
在软件定义汽车的大趋势下,汽车OS是传统汽车实现智能汽车升级的关键。E/E架构升级包括硬件、软件、通信架构三大升级,芯片+操作系统+中间件+应用算法软件+数据构建核心技术闭环,汽车操作系统是软件定义汽车生态循环发展的灵魂。
1 操作系统是实现软件定义汽车的灵魂
操作系统是指控制和管理整个计算系统的硬件和软件资源,并合理地组织调度计算机的工作和资源,以提供给用户和其它软件方便的接口和环境的程序集合。
传统汽车因不同域之间要求的实时性、安全性、通信带宽不尽相同,传统汽车主机厂/Tier 1供应商无法一步到位,他们多采用跨域融合方案(即3个域或5个域等)。所以,随着域的逐渐形成,域操作系统将逐渐形成。传统车企操作系统将由独立的多个操作系统/系统程序,向少数/一个操作系统发展。
图1为E/E架构由分布式-域控制-中央集中式不断升级的示意图。
图1 E/E架构由分布式-域控制-中央集中式不断升级
汽车操作系统是从传统汽车电子基础软件不断演变而来。传统汽车电子产品由汽车电子控制装置和车载电子设备组成,汽车电子控制装置包括发动机电控系统(EMS)、自动变速器控 制单元(TCU)、车身电子稳定系统(ESP)、电池管理系统(BMS)等涉及安全、行驶性能的装置;车载电子设备包括仪 表、中控、抬头显示(HUD)、流媒体后视镜等,这类装置与用 户体验有关,不涉及行驶、安全性能,见图2。
图2 汽车操作系统是从传统汽车电子基础软件不断演变而来
在软件定义汽车的大趋势下,汽车OS是传统汽车实现智能汽车升级的关键。
E/E架构升级包括硬件、软件、通信架构三大升级,(由下至上)芯片+操作系统+中间件+应用算法软件+数据构建核心技术闭环,汽车操作系统是软件定义汽车生态循环发展的灵魂。狭义操作系统专指内核(如Linux、QNX),提供内存管理、文件管理、CPU调度管理、输入输出管理功能;广义OS从下至上包 括从BSP、操作系统内核、中间件及库组件等硬件和上层应用之间的所有程序。从图3车载智能计算平台架构能清晰地看到广义操作系统和狭义操作系统的范围。
图3 车载智能计算平台架构
广义操作系统由功能软件和系统软件组成,系统软件是针对汽车场景定制的复杂大规模嵌入式系统运行环境。由硬件抽象层、操作系统内核和中间件组成。
硬件抽象层又可分为BSP和Hypervisor。BSP是内核与硬件 之间的接口层,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可以在多平台上移植;Hypervisor是硬件虚拟化技术,提供虚拟平台支持多操作系统。
操作系统内核即狭义操作系统,如Vxworks、RT-Linux等。提供操作系统最基本的功能,负责管理系统的进程、内存、设备驱动程序、文件和网络系统等。
中间件处于应用和操作系统中间的软件,实现异构网络环境下软件互联和互操作等共性问题,提供标准接口、协议,具有较高的移植性。
功能软件包括自动驾驶的核心共性功能模块,例如自动驾驶通用框架模块、网联模块和云控模块。
2 智能汽车操作系统的分类
图4 自动驾驶操作系统的组成
按照实时性和非实时性分为实时性操作系统(RTOS) 和非实时性操作系统。实时性操作系统即保证在一定时间限制内完成特定功能的操作系统,特点包括速度快、吞吐量大、代码精简、代码规模小等,除这些外,“实时性”才是RTOS的 最大特征,其它的都不算是,也就是指实时程序必须保证在严格的时间限制内响应。典型的实时性操作系统有VxWorks、QNX、RTLinux等。
非实时性操作系统又称通用操作系统,常用于支持更多应用和接口的信息娱乐系统中,相对于实时操作系统,功能更为强大,组件也更为复杂,最大的特点是开源,有很强的定制开发灵活空间,又可以充分发挥硬件的性能,像AGL、GENIVI等协会 或联盟,都致力于将开源Linux操作系统推广至汽车领域中。
操作系统的演化过程分为6步,见图5、图6。
图5 操作系统演化步骤
图6 操作系统演进示意图
①早期嵌入式开发:直接在裸机上写程序,没有操作系统。
②随着软件复杂度的上升,嵌入式OS逐渐形成。早期ECU 执行功能较为单一,早期嵌入式OS主要使用的基础软件程序或简单的嵌入式实时OS。