什么是汽车行业的中间件?
中间件是汽车行业使用的一类软件,作用是作为桥梁,连接计算平台操作系统与其上运行的应用程序。
中间件在 IT 和其他行业中已经存在多年,但汽车行业面临一些独特的软件开发挑战,需要特别加以考虑。随着车辆发展成为日益复杂的软件定义设备,管理硬件和软件组件之间的通信和交互变得非常复杂。
尽管一直在为整合而加大努力,但如今的车辆拥有超过 100 个电子控制单元 (ECU) 的情况并不罕见。这些小型计算设备分别控制特定的功能,例如动力转向、温度控制和安全气囊。中间件弥合了多样化软件和硬件平台之间的差距,使得设计、构建、测试、部署和更新应用程序变得更加容易。
中间件在向软件定义汽车的过渡中至关重要。如果没有它,远程更新 就需要对这 100 多个电子控制单元 (ECU) 分别进行独立编程,这不仅不切实际且成本高昂。
中间件将软件从硬件中分离出来
中间件能够实现基于服务的架构,其中软件服务是模块化的,可以在不同的车型或平台上重复使用。通过分离软件和 输入/输出 (I/O),中间件使应用程序能够专注于高级功能,而不必顾及底层硬件细节,亦即实现了信号层与应用程序层的分离。
中间件在应用程序层和操作系统之间运行。这就是“中间件”中“中间”的含义。中间件利用这一位置将应用程序从硬件中抽离出来,这意味着开发人员在编写应用程序时不必编写与车辆各设备进行通信的指令。相反,开发人员创建的应用程序只需在更高级别与中间件的接口进行通信,然后由中间件处理其余工作。
可以将中间件想象为 USB 适配器;适配器连接的计算机就像车辆上的计算平台。无论连接到适配器的是何种设备,都不妨碍它遵循某些标准,安全地与计算机通信。由于端口都采用统一标准,用户可以使用适配器与各种设备连接。
中间件为开发人员提供同样的自由。它实现了车辆硬件和软件应用程序之间接口的标准化,并充当转换器,以确保应用程序可以与各种硬件系统有效通信,而无需针对每个特定组件进行定制。
应用程序通过中间件进行通信
车辆应用程序使用多种数据格式和标准进行通信。尽管 API 管理软件组件 之间的数据流,中间件管理不同系统之间的通信,确保 API 能够通过标准化协议有效地与硬件通信。
例如,OEM 可能想通过信息娱乐系统提供一个温度控制应用程序。当用户选择所需温度时,信息娱乐应用程序会将用户命令告知中间件,然后中间件根据特定的硬件和 I/O 转换这些命令,并将信号发送到适当的设备,例如压缩机、风扇和挡板。
信息娱乐系统不需要了解温度控制机制,因为中间件充当了中介。因此,开发人员可以专注于为消费者创造积极的用户体验,而无需关注集成。
不同操作系统通过中间件进行通信
汽车中间件对于实现车辆操作系统和应用软件之间的通信也至关重要。它能够实现车辆软件架构中不同组件之间的通信和数据交换:包括同一操作系统的不同应用程序之间、同一电子控制单元 (ECU) 上的不同操作系统之间,以及不同电子控制单元之间。
安波福的车辆中央控制器 (CVC) 可以同时运行多个操作系统,包括 Linux、AUTOSAR classic 和 实时操作系统, 例如 VxWorks。中间件使所有这些操作系统上运行的应用程序能够无缝通信。
中间件能够改进测试并加速开发和集成
由于中间件将软件和硬件开发分离,开发人员可以更早地开始测试软件。使用软件在环 的仿真测试可以在任何常规台式计算机上运行,从而使软件开发人员能够以更快的速度创建新功能。提前进行测试 还有助于更快地发现错误、降低成本并加快产品上市时间。
中间件可以促进 容器编排,使得开发人员能够以模块化的方式管理和更新应用程序,而不必担心系统内的依赖关系。与云环境类似,其中容器用于隔离应用程序并管理其部署,车载容器同样允许软件组件在隔离环境中运行。
借助车载容器编排器,应用程序可以彼此独立地部署、更新和测试,从而使软件开发生命周期更加敏捷。例如,开发人员可以为新功能创建独立的测试环境,实时模拟其行为并通过无线方式部署更新,而不会中断整个车辆系统。这种基于容器的方法可确保更快的集成和测试,因为它可以隔离潜在问题,也不必同时测试不同系统,因此降低了复杂性。
在此模式下,中间件充当管理容器和底层硬件之间通信的层,确保每个应用程序都能访问必要的资源,例如算力、内存或特定的硬件组件,如传感器和执行器。
中间件是端到端解决方案的一部分
安波福和风河将中间件、操作系统和虚拟机管理程序整合为一个集成解决方案,以加速软件开发并提高软件重用率,因此 OEM 可以花更少的时间进行集成,而花更多的时间去设计能够增加品牌竞争力的功能。