本页定义了整个 Android Automotive OS (AAOS) 软件定义型车辆 (SDV) 文档中使用的关键术语,并将标准汽车行业概念映射到相应的 AAOS SDV 概念。
将汽车行业概念映射到 AAOS SDV
下表将标准汽车行业架构、协议和规范与最接近的相应 AAOS SDV 概念进行了对照:
| 行业标准或概念 | 对应的 AAOS SDV 概念 | 角色和文档 |
|---|---|---|
| 汽车开放系统架构 (AUTOSAR) 软件组件 (SWC) 或自适应应用 | 服务包 | 可独立部署的网域模块 (.apex),用于封装相关的业务逻辑和通信端点(RPC 服务器、客户端、发布者和订阅者)。请参阅逻辑架构。 |
AUTOSAR Adaptive ara::com 接口定义 |
VSIDL (.vsidl) 和协议缓冲区 (.proto) |
由 vsidlc 编译为 Rust 客户端库绑定的声明性服务和消息架构。请参阅 VSIDL 和中间件概览。 |
| 基于 IP 的可伸缩面向服务的中间件 (SOME/IP) 和 SOME/IP 服务发现 (SD) | SOME/IP 传输和 ISomeIpStack |
通过自定义合作伙伴堆栈(ISomeIpStack 稳定 AIDL)或 Connected Vehicle Systems Alliance (COVESA) vsomeip 支持跨 ECU 远程过程调用 (RPC) 和发布-订阅传输。请参阅 SOME/IP 集成概览。 |
| COVESA 车辆信号规范 (VSS) | VHAL 属性和 VSIDL 目录 | 通过车载硬件抽象层 (VHAL) 在车载信息娱乐系统 (IVI) 上公开并桥接到 SDV 服务的标准化车辆信号。请参阅在 IVI 上使用 SDV 网关。 |
| 电子控制单元 (ECU) | 在管理程序上的虚拟机 (VM) 中运行的 AAOS SDV 实例 | 运行无外设 AAOS SDV 核心配置文件的隔离客户机虚拟机,通过 VirtIO 套接字 (vsock) 或以太网进行通信。请参阅 AAOS SDV 系统架构。 |
| ISO 26262 / ASIL 仪表板和指示灯管理器 | 显示安全性和高可用性渲染器 (HAR) | 用于安全关键型仪表盘指示灯和后置摄像头视图的隔离渲染流水线和 DriverUI 架构。请参阅显示安全性。 |
术语表术语
- Android Automotive OS (AAOS) SDV 核心配置文件
- 一种轻量级无头系统,包含连接和编排功能以及核心汽车服务。
- Android OS
- 移动设备(例如手机和平板电脑)中使用的 Android 操作系统。
- 目录
- 包含所有用于定义车辆服务接口的 protobuf 和 VSIDL 文件的目录。VSIDL 编译器接受目录作为输入,并为其中的所有文件生成代码。
- 依赖项目录
- 依赖项目录用于指定 VSIDL 或 protobuf 文件中定义的外部定义的位置。不会为依赖项生成任何代码。VSIDL 编译器将依赖项目录路径作为输入。
- 电子控制单元 (ECU)
- 控制车辆子系统(例如发动机、车身或连接)的模块。其计算部分可以像小型微控制器一样简单,也可以像完整的 Linux 计算机一样先进,有时甚至包含多个 SoC。如需了解详情,请参阅电子控制单元。
- 中间件客户端库
- 一个客户端库(也称为 clientlib),可提供用于与 SDV 通信堆栈交互的高级 API。此库隐藏了服务注册和发现的详细信息,使开发者能够专注于主题和渠道。clientlib API 旨在与从 VSIDL 代码生成工具 (
vsidlc) 生成的端点描述符配合使用,从而显著减少手动设置错误并加快开发速度。 - 协议缓冲区 (protobuf)
协议缓冲区是一种与语言和平台无关的可扩展机制,用于描述和序列化结构化数据。
Protobuf 文件的扩展名为
.proto,用于定义服务之间交换的消息(数据)的结构。这些文件还指定了消息中的数据类型、字段和关系。- SDV 代理
在 SDV 系统上运行并提供核心 SDV 功能的特权应用。SDV 代理的行为类似于 Linux 守护进程,即在操作系统整个生命周期内运行并提供一些低级功能的应用。每个核心 SDV 组件都可以提供零个、一个或多个代理。
- SDV 实例 (SDV 虚拟机)
AAOS SDV 核心配置的单个实例,在芯片上系统 (SoC) 或虚拟环境中的虚拟机 (VM) 中运行。在大多数情况下,单个汽车车辆中会运行多个 SDV 实例,这些实例共同构成完整的 AAOS SDV 部署。
- SDV 软件包
可更新的最小 SDV 软件单元。一个 SDV 软件包可以包含多个服务包。
- SDV 平台
SDV 平台,包含 SDV 核心配置文件,可作为服务开发人员构建服务和运行服务的平台。
- SDV 平台开发者
负责集成、配置和维护底层 AAOS SDV 核心配置文件、虚拟机和系统基础架构的工程师,类似于车载信息娱乐 (IVI) 系统上的 Android 平台开发者。主要职责包括:
- 为 SDV 服务配置进程和虚拟机隔离机制、安全政策和资源调度。
- 集成传输堆栈(例如 SOME/IP 或 VirtIO),并确保 ECU 和虚拟机之间的网络可寻址性。
- 管理 SDV 编排器如何配置、加载和更新服务软件包(
.apex软件包)。
- SDV 服务开发者
在 SDV 平台上构建特定于网域的模块化车辆功能服务包的工程师,类似于 IVI 系统上的 Android 应用开发者,但创建的是无头车辆服务,而不是界面 (UI) 应用。主要职责包括:
- 使用 VSIDL (
.vsidl) 和协议缓冲区 (.proto) 定义服务接口和数据结构。 - 使用生成的 Rust 客户端库绑定(RPC 服务器、客户端、发布者和订阅者)实现网域业务逻辑。
- 独立于底层平台映像打包、测试和部署服务软件包。
- 使用 VSIDL (
- 服务包
一个可独立部署的相关业务逻辑模块,用于封装特定网域功能并强制执行严格的授权边界。
- 服务发现
一种 SDV 代理,可用于发现服务和通信端点。
- 面向服务的架构 (SOA)
一种计算机软件样式,其中应用组件通过网络上的通信协议向其他组件提供服务。
- 服务单元
在服务软件包中声明的 SDV 通信堆栈(例如 RPC 服务器或主题发布者)的基础端点实体。中间件客户端库会自动处理服务单元注册和发现。
- 主题
面向数据的消息(发布/订阅)的命名通信路径。 主题由字符串标识,并携带特定类型的消息。 主题支持多对多通信,允许同一主题有多个发布者和订阅者。
- 频道
RPC 服务的命名通信路径。渠道可用于区分同一服务类型的多个实例(例如
main-control、high-priority)。- 软件定义汽车 (SDV)
代码和文档中面向外部的解决方案术语。如需参考,请参阅软件定义型汽车:开源如何推动创新。
- 系统芯片 (SoC)
一种集成电路,可将计算机或其他电子系统的所有组件集成到单个芯片中。这些组件通常包括中央处理单元 (CPU)、内存、输入/输出端口和辅助存储空间。如需了解详情,请参阅系统芯片。
- 远程信息处理控制单元 (TCU)
负责车载通信外围设备(如 GSM/LTE、Wi-Fi、GNSS 或蓝牙)的 ECU。如需了解详情,请参阅远程信息处理控制单元。
- 车辆服务接口定义语言 (VSIDL)
VSIDL 是一种领域专用语言,旨在定义车辆软件系统内服务之间的接口和互动。
VSIDL 文件描述了服务包、它们的功能以及它们交换的消息。它们定义了车辆软件架构的结构。
VSIDL 文件的扩展名为
.vsidl。