虚拟化技术在汽车行业的应用日益广泛。它提高了软件系统开发过程的效率,降低了开发和 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 传输大小