1. Adaptive AUTOSAR与DaVinci平台概览
Adaptive AUTOSAR 是 AUTOSAR 组织为应对高性能计算、动态部署与车云协同需求而提出的第二套标准体系。它并不是 Classic AUTOSAR 的升级版本,而是面向不同问题域的另一条技术路线。理解这一点,是进入 DaVinci Adaptive 开发流程的前提。
核心理念:面向服务的动态软件架构
Adaptive AUTOSAR 的核心是面向服务通信(SOA)与动态运行环境。应用以进程形式运行在 POSIX 兼容操作系统(如 Linux、QNX)之上,通过 ara::com 提供的服务代理(Proxy)与骨架(Skeleton)进行通信,不再依赖静态配置的 RTE 与信号级 VFB。软件可以在运行时启动、停止、更新,支持 OTA 与功能动态部署。
其关键机制包括:
- ara::com:服务发现与事件/方法/字段通信,支持 SOME/IP、DDS 等绑定。
- 执行管理(EM):按 Manifest 描述启动、监控、终止进程。
- 状态管理(SM):管理 Machine 与 Function Group 状态迁移。
- 持久化(PER)、诊断(DM)、加密(Crypto)、更新配置(UCM)等平台服务。
- Manifest:以 ARXML 描述应用、服务、执行与机器配置,是部署的核心输入。
与 Classic AUTOSAR 的差异
Classic 面向深嵌入式、硬实时、静态配置的 ECU,以 RTE + BSW + MCAL 分层,通信以信号和 PDU 为中心,任务调度在编译期确定。Adaptive 面向高性能控制器与中央计算平台,以 C++14/17 应用、服务接口、动态调度为特征。二者在实时性、内存模型、通信抽象、更新能力上差异显著,但并非互斥:在同一整车架构中,Classic 处理安全关键的小控制回路,Adaptive 承担感知融合、网关、OTA 等任务,二者通过 SOME/IP 或信号网关互通。
DaVinci 工具链在 Adaptive 开发中的定位
Vector 的 DaVinci 系列覆盖 Classic 与 Adaptive 两条产品线。在 Adaptive 开发中,主要涉及:
- DaVinci Adaptive:编辑 ARXML 模型,包括服务接口、应用 Manifest、执行 Manifest、Machine Manifest。
- DaVinci Configurator:生成平台配置代码与 Manifest 文件。
- vVIRTUALtarget / 目标板:用于运行与验证 Adaptive 应用。
- MICROSAR Adaptive:Vector 提供的 Adaptive 平台实现,与 DaVinci 工具链配套。
整体工作流可概括为:在 DaVinci Adaptive 中建立服务接口与应用模型 → 配置执行与机器 Manifest → 生成代码与配置 → 在目标环境编译部署 → 通过日志与 ara::com 监控运行状态。下图展示了这一工作流中模型、工具与运行环境之间的关系。
从模型到部署:一个最小示例
假设要开发一个车速服务:应用 A 发布 VehicleSpeed 字段,应用 B 订阅。在 DaVinci Adaptive 中,首先定义服务接口 VehicleSpeedInterface,包含一个 speed 字段(类型 uint16,单位 km/h)。随后在应用 Manifest 中声明 A 为 Skeleton 提供者、B 为 Proxy 消费者,并指定服务实例 ID 与通信绑定(如 SOME/IP 端口 30501)。执行 Manifest 中为两个进程分别配置可执行文件路径、启动依赖与重启策略。生成后得到 C++ 头文件与 Manifest ARXML,编译部署到目标板,通过 ara::com 的 FindService 与 Subscribe 即可完成通信。