BMW 如何使用亚马逊云科技通过虚拟 ECU 扩展 SDV 并实现自动化
"我们的 BMW 操作系统 9——宝马在亚马逊云科技上运行的基于安卓开源项目的完全虚拟化的 Android 开源项目信息娱乐系统——使我们首次无需访问目标硬件即可开始开发新的车载软件功能。软件开发过程中的这种向左移动还使我们能够使用虚拟设备以更低的成本更早、更频繁地进行测试。这极大地有助于实现我们降低成本、加快上市时间和改善客户体验的目标。"
宝马集团联网汽车平台副总裁席琳·劳伦特-温特博士
导言
宝马是全球领先的高档汽车和摩托车制造商,也是金融和出行服务的提供商。BMW Connected Company 是宝马旗下的一个部门,负责为宝马在全球拥有超过 2300 万辆汽车的互联车队以及车载信息娱乐系统和远程信息处理电子控制单元(ECU)开发和运营优质的数字服务。
软件定义汽车(SDV)是一个广泛的话题,需要解决整个汽车价值链。由于范围如此之广,目前没有关于 SDV 的跨 OEM 愿景和范围。但是,一个常见的趋势是使用云和云原生技术来帮助支持车辆及其软件的开发和运营。这还包括车辆与云端服务交互以帮助提供新的客户体验的功能。
虽然宝马和亚马逊云科技之间的部分合作已经在 2023 年柏林亚马逊云科技峰会和亚马逊云科技 All Things Automotive 系列上进行了展示,但在本博客中,我们将讨论使用亚马逊云科技帮助加快开发运营工作流程和提高 ECU 质量,同时显著降低开发成本的好处。
问题陈述
ECU 是控制车辆各个方面的嵌入式设备,从发动机管理、车身控制到高级驾驶辅助系统 (ADAS)、信息娱乐系统,包括与流媒体音乐提供商 Spotify 等第三方提供商的后端连接。我们介绍了 BMW 如何使用亚马逊云科技直接在 Amazon EC2 实例上帮助开发和运行汽车软件,无需仿真。
BMW 在亚马逊云科技上运行的软件与车辆中部署的软件采用相同的源代码构建。这使宝马工程团队能够在虚拟 ECU (VeCU) 上开发、调试和测试软件。它包括在云端提供操作系统(OS)映像,实现环境平等,以及包括 ECU 软件与其他 ECU 软件的相互作用。在云端,与使用物理 ECU 相比,这可以大规模完成,在协作模型中是不可能的。
开发 ECU 软件会带来各种挑战,例如实时要求(例如,在规定的时间范围内执行与安全相关的任务)、不同的操作系统、不同的网络协议以及支持不同的变体,包括特定的监管要求。
测试 ECU 功能对于实现高软件质量至关重要,这会导致花费大量资源来确保域或系统级别的足够覆盖。测试互连的 ECU 会使测试空间呈指数级增长,并且需要在不增加指数成本的情况下进行扩展。
软件在环 (SiL) 和硬件在环 (HiL) 测试旨在扩展汽车软件开发周期早期的测试流程,并提高后期测试的保真度。SiL 模拟除功能软件之外的所有软件层,因此开发人员无需硬件即可针对这些层测试其功能软件。这允许从很早的开发阶段开始扩展其软件程序逻辑的验证,但需要昂贵的工具,并且不涵盖与传感器、执行器或其他真实 ECU 等物理环境的交互。这是 HiL 的领域,可在以后进行软硬件集成测试,但成本高昂、受硬件限制且不可扩展。连续执行基于 SiL 和 HiL 的测试会延迟问题检测,其结果是成本呈指数级增长。正确的 SiL 测试执行策略对于避免过多 HiL 测试的瓶颈至关重要。要扩大测试规模,涵盖汽车软件开发所需的不同变体、版本和大量测试用例,同时避免高昂的成本,就必须将软件和硬件解耦并向左转移硬件测试。
SDV 的共同愿景
宝马和亚马逊云科技的愿景旨在从根本上改变车辆架构,帮助客户和宝马提供更好的体验,同时重塑开发和运营工作流程,在高效的工作流程中交付如此规模的汽车软件。
本博客特别关注与我们的讨论最相关的 SDV 愿景元素。
基本目标是通过将软件与底层硬件分离,为车辆创建更加模块化和灵活的软件架构。这种分层设计可以实现新功能的无缝车载和机外部署,为旧车型提供更新的功能。它还扩大了潜在的供应商基础和采购选择,并有助于促进软件的重复使用。持续的软件更新使车辆产品保持最新状态且更加安全。
具有云原生目标的虚拟开发人员工作空间旨在提高开发人员的工作效率,实现新的协作软件开发实践,并利用云实现经济实惠的大规模软件开发和测试。
扩展 ECU 开发的三步法
2022 年,宝马迈出了虚拟化单个 ECU 的第一步。第二步,宝马将虚拟化 ECU 连接到外部服务。最后,宝马虚拟化了多个 ECU,并将它们联网在一起。
图 2:宝马扩展 ECU 开发的三步法的可视化
第 1 步:虚拟化单个基于 Android 的 ECU
作为第一个 ECU,宝马选择了他们的信息娱乐系统,该系统建立在安卓开源项目 (AOSP) 之上。现有的谷歌安卓模拟器被用作基础。信息娱乐系统是为数不多的具有可视化界面的 ECU 之一,它为向其他利益相关者展示工作提供了简便的方式。
目标是就发展与实际目标相比的效率提高进行可行性研究。
图 3:完成第 1 步时亚马逊云科技上的 VeCU 平台架构
为了在亚马逊云科技上运行虚拟化信息娱乐系统,宝马必须解决一些挑战。宝马的定制安卓模拟器必须实现容器化,包括所需的实用程序和服务。宝马随后为安卓调试桥(ADB,用于调试基于安卓的设备)、VNC(使用远程帧缓冲协议远程控制另一台电脑的图形桌面共享系统)和 SSH(允许用户通过不安全的网络安全访问和管理远程电脑的网络协议)建立了安全的双向网络通信,用户的本地网络浏览器和运行在 Amazon EC2 实例上的用户特定 Docker 实例之间。这些实例只能从宝马网络内部访问,该网络使用 Amazon Direct Connect 安全地连接到亚马逊云科技。
宝马开发了一个基于 API 的自助服务门户,用于对负载均衡器、EC2 实例和 Docker 容器等所有必需资源进行完全自动配置(宝马品牌、veCU 软件版本、语言、用户、密码)、预置和取消配置。
此外,亚马逊云科技和 BMW 合作为每个 EC2 实例运行多个 Docker 容器实例。这是充分利用 EC2 裸机实例所必需的,这是由于支持 KVM(基于内核的虚拟机)所必需的。这有助于最大限度地降低成本并减少流程延迟,从而提供更好的用户体验。
可以通过标准的网络浏览器轻松访问虚拟化 ECU。它不需要额外的设置,并且 URL 可以在 BMW 公司网络内的多个用户之间共享。与用户界面的交互是无缝的,其功能类似于常规的物理信息娱乐单元。
图 4:虚拟化 BMW 信息娱乐系统中的导航和兴趣点搜索
除了简化 ECU 开发流程外,宝马的方法还带来了多项关键优势。最值得注意的是,它使宝马开发人员无需物理硬件原型即可体验到最初的代码构建中的完整用户界面。这使得宝马内部可以更早地对该软件的可用性进行反馈和迭代。虚拟化测试环境支持对作为 CI/CD 管道一部分的完整软件堆栈进行远程、可扩展和自动测试。然后,宝马团队可以运行包含超过 200 万次个人测试的 Android 兼容性测试套件,这是他们常规自动化测试的一部分,而对于物理硬件来说,这太耗时了。另一个好处是位置独立,因为宝马开发商、产品所有者或其他利益相关者可以在全球范围内即时访问这些 VECU。
第 2 步:端到端虚拟化
从 2023 年开始,宝马在 VeCU 之外启用了网络连接(图 2,中间图片)。这使虚拟信息娱乐系统能够与 Spotify 和 MapBox 等外部第三方内容提供商以及名为 ConnectedDrive 的宝马联网汽车后端进行安全通信。
这使宝马能够运行完全虚拟化的环境,从 My BMW 移动应用程序到 ConnectedDrive 后端再到包括第三方内容提供商在内的虚拟化信息娱乐系统。
图 5:完成第 2 步时亚马逊云科技中的 veCU 平台架构
第一个挑战是建立从虚拟化信息娱乐系统到 ConnectedDrive 后端的安全连接,因为它要求相互传输层安全(TLS)和每辆车的唯一证书。此外,每份证书仅与一个车辆识别码 (VIN) 和国家/地区相关联。所有这些要求和限制都已纳入自助服务用户门户后面的自动配置步骤中。
对于第三方内容提供商和应用程序的安全集成,主要挑战是在复杂的企业环境中识别和配置所需的安全网络路径。
图 6:使用 Mini 移动应用程序对虚拟化 Mini 信息娱乐系统中的背景图像进行个性化设置
第 2 步完成后,BMW 获得了多项额外好处。它通过纯软件促进了第三方应用程序和内容的集成测试。这使宝马能够有效地开发、调试和测试信息娱乐系统、移动设备、第三方应用程序和 ConnectedDrive 后端之间的交互。通过提供对相同软件版本和配置的访问权限,它还可以根据客户反馈进行更精确的根本原因分析。此外,宝马现在可以自动进行以前使用物理硬件无法进行的连接测试,例如在隧道通道等恶劣网络条件下测试重试和重新连接行为。
第 2 步使 BMW 开发人员能够从头到尾创建车辆应用程序功能,而无需访问物理硬件,直到最后阶段。
第 3 步:使用不同的操作系统虚拟化关联的 ECU
2024 年,宝马将多个 VECU 联网在一起(图 2,右图)。一个重要的目标是虚拟化运行其他汽车操作系统的 ECU,包括嵌入式 Linux(宝马的发行版)和 AUTOSAR。
宝马选择了运行嵌入式 Linux 的远程信息处理电子控制单元和运行 AUTOSAR classic 的 Climate ECU。这些 ECU 使用 SOME/IP(基于 IP 的可扩展服务型中间件)相互通信,这是汽车内部常见的网络协议。
这使宝马能够运行任何虚拟化 ECU,从而扩展了实时虚拟验证(例如验证从 My BMW 移动应用程序启动的不断变化的气候设置)的可解决用例。通过使用 Amazon EC2 实例,系统运行更具成本效益,扩展速度更快,解决了硬件验证瓶颈。
图 7:完成第 3 步时亚马逊云科技中的 veCU 平台架构
图 8:虚拟化 Mini 信息娱乐系统与气候电子控制单元的集成
上面的动画显示了两个不同的电子控制单元之间的相互作用,即基于安卓的信息娱乐系统 veCU 和用于执行各种功能的气候 VeCU。
成果
宝马的 veCU 平台已实现全球覆盖,在全球许多不同的宝马部门拥有超过 2,000 名内部用户。所提出的在 Amazon EC2 上虚拟化基于 AAOS 的 ECU 的方法对整个软件开发过程进行了重大改进,为开发人员和工程师提供了可扩展的虚拟化云解决方案。一些关键的改进是:
- 与闪存物理 ECU 的数小时相比,云端信息娱乐单元的设置时间缩短至仅 3 分钟。
- 在几分钟内配置支持的 AAOS vecU 的任何版本和变体,以帮助促进根本原因分析和测试错误修复。
- 促进针对云端第三方应用程序和服务进行软件测试。
- 同时测试多个版本,例如不同的国家/地区变体,从而提高测试效率并帮助改善质量保证。
- 通过减少早期阶段对原型的需求来缩短上市时间。
- 使所有利益相关者,无论其技术背景如何,都能从开发的最初阶段开始就与软件的全部功能进行互动和评估。
这些功能使宝马的一些开发人员能够主要在宝马的虚拟平台上开发和验证宝马车载信息娱乐系统的某些新功能,从而显示出缩短开发周期和节省大量资源的潜力。
到目前为止,我们的工作重点是质量改进以及这种方法为我们的全球开发人员和利益相关者团队解锁的新能力。对于宝马来说,事实证明,基于云的 VECU 不仅仅是物理设备的替代品。它们帮助实现了前所未有的全球协作,加速了发展并促进了协作。
因此,这些进步为汽车软件开发提供了新的模式转变,允许更灵活、更具协作性和更高效的流程,可以快速响应行业需求和技术创新。
在这段旅程中,宝马和亚马逊云科技获得了宝贵的见解,塑造了我们的 SDV 方法。我们了解到,机上和机外团队之间的跨职能合作对于成功至关重要。我们观察到汽车 OEM、供应商和独立软件供应商对 SDV 的不同愿景,这凸显了协调的必要性。
尽管上述结果是针对宝马的实施的,但业内其他公司的报告称,功能开发时间最多缩短了 70%,原型设计成本降低了 30%,突显了该领域的机遇。
展望和后续步骤
宝马正在重点进行多项技术改进,以增强其 veCU 平台在三个关键方向上的功能:
- 产品增强:根据宝马 2,000 多名内部用户的反馈以及超过 11,000 辆 VECU 的推出,宝马将不断改进和扩展产品供应。这方面的例子包括虚拟和物理 ECU 之间的时序平等、扩展对不同汽车网络协议(FlexRay、以太网、CAN 等)的支持,以及深化宝马平台与其 CI/CD 管道的集成。
- 用例扩展:探索虚拟 ECU 平台的新功能,包括载入更多 ECU 模型以涵盖更多车辆功能,长期目标是实现整个车辆软件系统的全数字化双胞胎。
- 人工智能集成:宝马正在努力整合人工智能,尤其是生成式人工智能,以帮助进一步加快其工作流程,包括提供架构指导和代码生成(包括汽车专用库),自动生成和执行测试用例和测试数据,以及通过自动分析和汇总通信消息和日志来支持根本原因分析。
向人工智能定义汽车的转型代表了汽车行业的又一次模式转变。通过开发其 veCU 平台以及宝马与亚马逊云科技在人工智能/生成式人工智能方面的合作,宝马将自己定位在这场革命的最前沿,准备迎接挑战,抓住未来出行的机遇。
如果您想进一步了解该主题以及宝马和亚马逊云科技如何代表客户进行创新,可以在此处观看这些视频并阅读有关具体用例的信息。
"宝马和亚马逊云科技之间的合作展示了云计算在汽车软件开发中的变革力量。通过虚拟化 ECU 和利用亚马逊云科技的可扩展基础设施,BMW 在效率、协作和创新方面取得了显著进步。这种方法不仅可以缩短上市时间,而且还有助于实现更敏捷和响应更快的开发流程,为软件定义汽车的未来铺平道路。我们很自豪能够在这段旅程中为宝马提供支持,并期待突破汽车技术可能性的界限。"
Yasser Alsaied,副总裁,亚马逊云科技解决方案物联网负责人