【AutoSWQA】汽车虚拟软件平台白皮书

文摘   2024-08-12 17:16   上海  

虚拟化技术在汽车行业的应用日益广泛。它提高了软件系统开发过程的效率,降低了开发和 BOM 成本,缩短了产品上市时间。特别是在驾驶舱,制造商及其直接供应商使用基于管理程序的系统已有数年之久。在迈向新的解决方案概念的第一步时,目前正在经历另一种模式的转变:使用开放标准。它进一步增强了虚拟化的优势。完全虚拟化的客户操作系统可以在所有硬件上灵活部署和重复使用。只有这样,才能充分发挥虚拟化技术的潜力。

未来驾驶舱

本文内容说明:


整合越来越多的功能

新的驾驶员辅助系统、数字驾驶舱、乘客和后座显示屏正在流行。这些系统需要非常强大的硬件,但与此同时,越来越多的硬件组件又与汽车行业所宣称的制造更轻、更省油汽车的目标相冲突。虚拟化为整合功能和大幅减少 ECU 数量开辟了一条途径。这将降低成本、网络复杂性和汽车重量。

虚拟化架构的一个关键组件是管理程序。它直接在片上系统(SoC)处理器上运行,允许多个具有不同操作系统的虚拟机(VM)并行运行。每个虚拟机都与其他虚拟机隔离。这种隔离(ISO 26262称之为 "免于干扰")允许在单个 SoC 上运行多种不同的功能,即使这些系统被分配了不同的关键性(ASIL 级别,如 QM、A、B、C 和 D)。因此,Hypervisor 可使 Linux、Android、AUTOSAR 或其他实时操作系统等访客操作系统在单独的虚拟机中运行。

通过这种方式实现的功能整合需要高运算能力的处理器,许多芯片制造商已对此做出响应,如今已推出可提供高运算能力的片上系统 (SoC)。在这些 SoC 上还装有图形处理器(GPU)等协处理器,可以驱动大量像素,用于多个显示器。由于管理程序允许不同的应用程序共享相同的中央处理器,因此可以最大限度地利用这些处理器。这种处理器共享降低了所需的总体计算能力,从而降低了材料和开发成本、时间和风险。

不过,硬件制造商提供的操作系统都带有专用驱动程序解决方案,并以板卡支持包(BSP)的形式提供。每种操作系统的数量和版本都是有限的。因此,系统开发人员必须确保其应用程序能在芯片制造商支持的操作系统上运行。

因此,系统开发人员必须确保其应用程序能在芯片制造商支持的操作系统上运行。此外,硬件制造商通常只在有限的时间内支持其 SoC。这使得在现场更新车辆的软件和服务变得困难甚至不可能。

因此,原始设备制造商需要一种不同的解决方案:他们希望能够在车辆的整个生命周期内使用和更新操作系统,而这些操作系统往往是为他们的具体应用而量身定制的。他们希望在多个车系中重复使用相同的架构和软件构件,以节省更多的开发时间、成本和风险。具体来说,这意味着不同的功能集应在不同制造商、不同车型和多代汽车的软件系统和硬件上重复使用。

制造商还希望从多种渠道获得软件,如自己的内部软件公司和第三方供应商,而不是通常由一家供应商提供的系统软件。

此外,制造商还希望从多种渠道获取软件,如自己的内部软件公司和第三方供应商,而不是通常由一家供应商提供的系统软件。此外,空中软件更新和设备管理是所有新汽车系统的必备功能。这是修复功能、安全或保安漏洞的唯一途径,而且车主长期以来一直希望能在购车后增加新功能。因此,模块化软件更新是非常重要的。毕竟,原始设备制造商不希望在更新后对整个设备进行重新鉴定,而只希望对新增或更新的应用程序进行鉴定。


基于标准的虚拟化,更具灵活性

基于开放标准的虚拟化正是提供了这些所需的选项。在这里,操作系统使用的虚拟驱动程序是标准化的,因此独立于超级计算机和底层硬件。这些驱动程序负责相应的客户操作系统与硬件(如显示控制器、图形处理器、声音设备等)之间的通信。通常,虚拟机中运行的操作系统之一会充当物理设备管理器。设备管理器包含物理驱动程序,这些驱动程序由芯片供应商为实际硬件提供,或由客户开发或定制。此外,设备管理器中还有一个定制层,通过标准化接口提供物理驱动程序。在其他虚拟机中运行的操作系统使用虚拟驱动程序。它们通过物理设备管理器中的适配层提供的标准化接口访问物理设备。由于其他客户虚拟机中的虚拟驱动程序仅依靠标准化接口进行硬件访问,因此它们完全独立于特定于硬件的设备驱动程序。

如果能说服整个汽车行业使用这种符合同一开放标准的虚拟驱动程序,他们就可以自由选择软件系统的硬件、软件和驱动程序定制层。在其他硬件上重复使用现有的软件系统,或在现有硬件上部署其他软件也同样容易。

制造商可以从任何采用通用标准的公司获得硬件物理驱动程序和标准化虚拟驱动程序之间的适配层,甚至可以自己开发或适配适配层。MachineWare 提供了完整的虚拟化方案,欢迎后台私信联系我们。


虚拟 I/O 设备(virtio)正在进入汽车行业

开放式行业标准 VIRTIO

非常适合软件和硬件之间的解耦,并已在系列化生产中得到验证。VIRTIO 提供了一个非常成熟的框架,用于共享在包含超级显视器的一个或多个 SoC 上运行不同操作系统的设备。该标准于 2008 年制定,规定了虚拟机与输入/输出设备之间的接口,以及虚拟机与管理程序之间的交互。VIRTIO 设备通过虚拟驱动程序为客户操作系统提供抽象设备功能,而不是物理硬件。这些虚拟驱动程序已在所有主要操作系统中使用:Linux、Android、BSD 和 Windows,以及一些专有的实时操作系统。

该标准的正式名称为 "OASIS 虚拟 I/O 设备",由 OASIS 联盟负责推广和维护。

该标准得到了全球众多开发人员的支持,并不断扩展到汽车行业。得益于这一承诺,汽车行业所必需的新设备(如音频、传感器、支持 2D 和 3D 的 GPU、USB、CAN 等)目前都在根据该标准进行虚拟化。

如果汽车行业的软件公司将其现有设备更换为 VIRTIO 兼容设备,灵活性将大大提高。这些设备的 1.2 版本很快在汽车行业推出:

举例说明:VIRTIO 块设备

- 支持多队列的简单虚拟块设备

- 支持回写(缓存)和直写模式

- 支持 DISCARD 和 WRITE_ZEROES 命令

- 设备公开调整参数:

  • 硬件块大小

  • 闪存擦除块尺寸

  • 队列拓扑

  • 最佳 DMA 传输大小


由于虚拟驱动器的特性类似于直接内存访问 (DMA),因此实现的性能与硬件辅助 I/O 虚拟化模型相同或几乎相同。这是因为 VIRTIO 避免了代价高昂的内存复制操作。传输内存内容不仅速度慢,而且会给系统的通用计算内核带来过多负担。
VIRTIO 通过虚拟队列传输实际数据的引用。例如,在向物理闪存设备写入大数据块时,虚拟设备管理器只插入数据块所在内存的一个小引用。然后,物理设备管理器将大数据块直接从客户虚拟机传输到闪存设备控制器。
VIRTIO 满足高性能要求的一个示例是在驾驶舱控制器中共享 GPU。驾驶舱控制器控制多个显示屏,通常是仪表盘显示屏和信息娱乐显示屏。有时还包括附加屏幕,例如为驾驶员投射重要信息的平视显示屏,或为车辆前部或后部乘客投射的屏幕。为此,系统芯片上集成了大量不同的功能:从信息娱乐应用程序到驾驶员信息系统。所有这些在同一虚拟平台上运行的系统都可以共享可用的 GPU 性能,并将性能开销降至最低。
谷歌 Android TM 汽车操作系统的新版本将预先集成 VIRTIO 框架。这将使安卓汽车操作系统能够在所有支持 VIRTIO 的现有系统上运行。基于 VIRTIO 的 MachineWare 虚拟化平台 VPK 还能确保与其他操作系统(如 Linux、RTOS 或其他 Android 实例)安全共存。

全新设计方法的软件定义架构
未来,这项技术将为软件驱动的车载功能设计提供一种全新的方法:软件定义架构(SDA)。SDA 用于云计算和数据中心领域,使云计算应用更易于构建。为此,虚拟化隐藏了硬件、系统管理和协调。这种方法对于设计汽车软件架构也非常有用。
传统上,汽车制造商通常从汽车的各个组件开始设计车型。他们还在硬件的基础上开发汽车软件,或由供应商开发软件。这导致了特定硬件的软件堆栈和供应商锁定。
SDA 方法通过本文所述的虚拟化技术将硬件与应用软件分离开来。首先可以设计一个架构,其中包括系统(如驾驶舱)所需的所有功能。虚拟平台根据这一架构进行开发,而不考虑硬件或移植工作。只有在软件设计完成后,制造商才能决定使用哪些硬件,以及需要哪些或多少个 SoC 来提供必要的计算能力。这样,制造商就更容易在不同硬件配置的多个车系中使用相同的软件。因此,软件定义架构方法满足了人们对灵活性的现有需求:原始设备制造商可以自由选择硬件(SoC、MCU、GPU、传感器、存储解决方案和网络)和软件组件(操作系统和管理程序)。
基于软件定义架构并使用 VIRTIO 标准 1.1 的信息娱乐设备已经投入生产。更先进的 VIRTIO 设备(如单个 SoC 上的图形单元)的开发工作已经开始,并将在未来投入批量生产。

结论
这种从软件角度思考汽车开发的模式转变,是汽车行业向前迈出的一大步。现在是制造商和供应商从专有解决方案转向开放标准的时候了。这将使他们能够创造出伟大的创新,同时节省时间和材料成本。

ArtiAuto 匠歆汽车
匠歆会展是一家全球性的活动公司,通过会议和培训向汽车制造、出行、教育、生命科学等行业的领先商业、学术、政府和研究机构提供前沿信息。旗下品牌包括匠歆汽车(ArtiAuto)、匠歆出行(ArtiMobi)、匠歆教育(ArtiEdu)等。
 最新文章