(二)系统软件1:硬件抽象层—Hypervisor 与 BSP1. Hypervisor:管理并虚拟化底层硬件Hypervisor 虚拟化技术可以有效实现资源整合和隔离。自动驾驶操作系统是基于异构分布硬件,应用程序如 AI 计算和实时安全功能可能分别依赖不同的内核环境和驱动,但在物理层面共享 CPU 等。图4:Hypervisor典型架构
(三)系统软件2:操作系统标准与 OS 内核1.车载OS分类:车控OS与座舱OS从功能实现角度,车载操作系统可以大致分为车控操作系统和智能座舱操作系统:(1)车控操作系统:主要对应自动驾驶域、动力域、底盘域,用于实现车身底盘控制、动力系统和自动驾驶;(2)智能座舱操作系统:主要对应于座舱域,用于实现车载娱乐信息系统功能以及实现HMI相应功能。在前述基础上,我们可以进一步划分车控操作系统:(1)嵌入式实时操作系统RTOS:用于传统的车辆控制,适用于动力系统与底盘控制等领域;(2)基于POSIX标准的操作系统,适用于自动驾驶所需要的高性能计算和高宽带通信。表6:车控操作系统分类
自动驾驶OS内核的格局较稳定,主要产品为QNX(Blackberry)、Linux(开源基金会)、VxWorks(Wind River System)。因打造全新OS需要花费太大的人力、物力,目前基本没有企业会开发全新的OS内核。目前Waymo、百度、特斯拉、Mobileye等企业都是在现有的OS内核基础上自研中间件和应用软件。此外,QNX系统生态较为封闭,Linux和VxWorks均是开源。Linux和VxWorks所有内核源代码都向客户开放,客户可做一定的裁剪。如果选择QNX内核,整车厂无法做裁剪,但客户可自己编写中间件和应用软件。2017年黑莓公司成立VAI(ValueAdded Integrator)项目,中科创达、诚迈科技作为以系统集成商的身份加入黑莓嵌入式合作伙伴计划VAI项目,将基于黑莓QNX嵌入式技术(包括黑莓QNX Neutrino实时操作系统、QNX管理程序、QNX无线架构、QNX认证操作系统等)提供集成服务解决方案,其应用包括汽车电子、医疗器械、智能电网、动力控制和工业自动化。从费用和开发难度看,QNX需要付费,不过开发难度较小,代码量也较少,Linux不需要收费,但是开发难度较大,容易出Bug。图9:主流OS内核对比
注:CAN、ETH、GMSL 等皆为内部通信方式,一般来说 ETH(以太网接口)可以连接到 4G 网络,车联网系统等,CAN 接口可以对接底盘 ECU,包括转向和动力 ECU 等。(二) CPU+ AI 芯片的三大流派1. AI芯片的主要分类:GPU/FPGA/ASICGPU仍属于通用性芯片。它与传统CPU有明显差异,CPU需要很强的通用性来处理各种不同的数据类型,同时对逻辑判断有较高要求,因此CPU的内部结构异常复杂。而GPU面对的则是数据类型高度一致、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。GPU采用了数量众多的计算单元和超长的流水线,但只有非常简单的控制逻辑并省去了Cache,而CPU不仅被Cache占据大量空间,而且还有有复杂的控制逻辑和诸多优化电路,相比之下计算能力只是CPU很小的一部分。图18:CPU VS GPU
ASIC属于定制化芯片,即应特定用户要求和特定电子系统的需要而设计、制造的集成电路。ASIC的特点是面向特定用户的需求,ASIC在批量生产时与通用集成电路相比具有体积更小、功耗更低、可靠性提高、性能提高、保密性增强、成本降低等优点。ASIC具有高性能、低功耗的优势,但它们包含的大部分算法——除了那些在软件内部处理器内核执行的——其余都是“冻结的”。FPGA,是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,FPGA最大特点在于,可以配置它的可编程架构来实现研发人员需要的数字功能组合。ASIC VS FPGA对比:(1)用途:FPGA主要用于要求快速迭代或小批量产品;ASIC用于设计规模大,复杂度较高的芯片,或成熟度高,产量较大的产品;(2)成本:小批量需求时,单片FPGA成本低于ASIC,随着产品量的增加,单片ASIC成本逐步降低;(3)功耗:在相同工艺条件下,FPGA要大于ASIC;(4)速度:FPGA内部是基于通用的结构,通用则导致冗余;ASIC是根据设计需求,最优化逻辑资源,并且做到最优布局走线,降低走线延迟;(5)面积:定制化的电路设计和工艺使用ASIC面积小于FPGA;图19:不同类型芯片对比