前言:在上一篇文章中,我们从架构、模块的角度对Autosar CP进行了一定解析,本文我们从配置、开发流程、工具链三个角度继续解读一下。
目录
[一、Autosar CP配置](#一、Autosar CP配置)
[1.1 配置流程](#1.1 配置流程)
[1.2 ARXML文件](#1.2 ARXML文件)
[3.1 Vector DaVinci](#3.1 Vector DaVinci)
[3.2 ETAS ISOLAR-A/B](#3.2 ETAS ISOLAR-A/B)
[3.3 EB tresos Studio](#3.3 EB tresos Studio)
[3.4 国产工具链](#3.4 国产工具链)
一、Autosar CP配置
AUTOSAR CP 的配置采用分层级 的系统配置方法,主要包括三个核心层级:系统配置(System
Configuration)、ECU 配置(ECU Configuration)和软件组件配置(Software Component
Configuration)。
系统配置:是AUTOSAR 配置的最高层级,它定义了整个车辆电子系统的架构。其功能主要是在资源和时序关系的前提下,把软件组件映射到各个 ECU 上,然后借助系统配置生成器生成系统配置描述文件。
ECU 配置:是系统配置的下一层级,主要是为特定 ECU 添加必要的信息和数据,如任务调度、必要的基础软件模块及其配置、运行实体及任务分配等,并将结果保存在 ECU 配置描述文件中。
软件组件配置:是配置体系的最底层,负责定义软件组件的内部行为和接口。
1.1 配置流程
系统配置阶段:
• 第一步:创建系统描述文件(System.arxml)
• 第二步:定义整车拓扑结构,包括 ECU 节点、总线类型、网络连接
• 第三步:进行通信设计,将信号映射到 PDU,再映射到物理报文
• 第四步:定义诊断服务和 DTC 列表
• 第五步:配置网络管理策略
ECU 提取阶段:
• 第一步:从系统描述中提取本 ECU 相关配置
• 第二步:使用 ECU Extractor 模块进行配置提取
• 第三步:生成 ECU 级别的配置文件
ECU 配置阶段:
• 第一步:配置微控制器和外设
• 第二步:配置基础软件模块(OS、COM、DCM 等)
• 第三步:配置任务调度和资源分配
• 第四步:生成 ECU 配置文件
软件组件配置阶段:
• 第一步:设计软件组件类型
• 第二步:定义端口和接口
• 第三步:配置内部行为(Runnable、Event 等)
• 第四步:生成 SWC 描述文件(.arxml)
配置工具链我们在第三节进行详细介绍。
1.2 ARXML文件
ARXML 文件本质上就是一个**"工程蓝图"** 或**"合同"**。它采用 XML 的格式,严格定义了 AUTOSAR 系统里有哪些零件(SWC)、零件上有哪些接口、数据类型是什么,以及它们是如何连接的。
ARXML 文件采用典型的分层包(Package)结构,最外层是根节点,内部按功能域划分为多个包,每个包又可嵌套子包。
ARXML文件的基本结构如下:
bash
ARXML (AUTOSAR XML)
├── 包 (AR-PACKAGE) ← 组织单元
│ ├── 元素 (ELEMENTS)
│ │ ├── 软件组件 (SWC)
│ │ ├── 数据类型 (DataTypes)
│ │ ├── 接口 (PortInterfaces)
│ │ └── 系统配置 (System)
│ └── 子包 (AR-PACKAGES)
└── 管理数据 (ADMIN-DATA) ← 版本/作者信息
你通常不需要手写 ARXML ,但必须看得懂!
这里展示一个简易例子:
- 定义一个温度类型(16 位数字)
- 定义一个通信接口,里面包含温度信号
- 定义一个软件组件:
- 有一个发送端口 → 发温度
- 有一个接收端口 → 收温度
bash
<?xml version="1.0" encoding="UTF-8"?>
<AUTOSAR xmlns="http://autosar.org/schema/r4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://autosar.org/schema/r4.0 autosar_4_3.xsd">
<!-- ========================================== -->
<!-- 1. 定义数据类型:一个温度信号 -->
<!-- ========================================== -->
<DATA-TYPE>
<SHORT-NAME>Temperature_Type</SHORT-NAME>
<BASE-TYPE>
<BASE-TYPE-ENCODING>2's complement</BASE-TYPE-ENCODING>
<BITS>16</BITS>
</BASE-TYPE>
</DATA-TYPE>
<!-- ========================================== -->
<!-- 2. 定义接口:Sender-Receiver 接口 -->
<!-- ========================================== -->
<SENDER-RECEIVER-INTERFACE>
<SHORT-NAME>Temp_Interface</SHORT-NAME>
<DATA-ELEMENT>
<SHORT-NAME>Temperature</SHORT-NAME>
<TYPE>
<DATA-TYPE-REF DEST="DATA-TYPE">/Temperature_Type</DATA-TYPE-REF>
</TYPE>
</DATA-ELEMENT>
</SENDER-RECEIVER-INTERFACE>
<!-- ========================================== -->
<!-- 3. 定义软件组件 SWC + 端口 -->
<!-- ========================================== -->
<APPLICATION-SOFTWARE-COMPONENT>
<SHORT-NAME>TempSensor_SWCD</SHORT-NAME>
<!-- 提供端口(发送数据) -->
<PROVIDED-PORT>
<SHORT-NAME>Temp_Send_Port</SHORT-NAME>
<INTERFACE>
<SHORT-NAME-REF DEST="SENDER-RECEIVER-INTERFACE">/Temp_Interface</SHORT-NAME-REF>
</INTERFACE>
</PROVIDED-PORT>
<!-- 需求端口(接收数据) -->
<REQUIRED-PORT>
<SHORT-NAME>Temp_Receive_Port</SHORT-NAME>
<INTERFACE>
<SHORT-NAME-REF DEST="SENDER-RECEIVER-INTERFACE">/Temp_Interface</SHORT-NAME-REF>
</INTERFACE>
</REQUIRED-PORT>
</APPLICATION-SOFTWARE-COMPONENT>
</AUTOSAR>
二、开发流程
AutoSar CP 的开发遵循一套严谨的 V 模型流程:
- 系统配置:定义系统架构、组件接口、通信矩阵,生成系统级 ARXML。
- ECU 配置:将系统配置映射到具体的 ECU,分配任务、调度表、资源。
- 代码生成:配置工具根据配置自动生成 RTE 代码和 BSW 配置代码。
- 应用开发:开发者编写 SWC 内部的功能代码,调用 RTE 提供的接口。
- 编译集成:将生成的代码、应用代码和基础软件库编译链接,生成最终的可执行文件。
三、工具链
国际上 AUTOSAR 三大工具链厂商分别是 Vector、ETAS 和 EB。
- Vector:基本上可以配合所有主流 MCU 芯片,工具链完整、技术实力雄厚、软件质量优异,在行业内处于领先地位。
- ETAS:偏向意法半导体、英飞凌和瑞萨,价格更有优势,在小型 ECU 开发中表现良好。
- EB:偏向瑞萨和 NXP 的 MCU,在特定芯片平台上有深度优。

3.1 Vector DaVinci
Vector DaVinci套件是市场领导者,它主要包括DaVinci Developer和DaVinci Configurator。
DaVinci Developer:用于实现和测试 AUTOSAR 应用程序,支持代码生成和仿真。
包括以下功能:
-
创建和维护 AUTOSAR ARXML 文件,用于软件组件、组合和系统描述
-
定义端口、接口、数据类型、runnables 和事件,包括校准参数
-
建模内部行为并通过基于服务和信号的通信连接组
DaVinci Configurator Pro:它是配置、验证和生成BSW和运行时环境(RTE)的核心工具,支持从系统设计到 ECU 配置的完整流程。
bash
DaVinci Configurator Pro
┌────────────────────────────────┐
│ • ECU配置 (ECU Extract)
│ • RTE生成
│ • BSW配置 (COM/NVM/OS/DEM...)
│ • 诊断配置 (DCM/DEM)
│ • 存储配置 (NVM/MemIf)
│ • 通信配置 (COM/PduR/CanIf)
└────────────────────────────────┘
DaVinci 工具链的优势:
-
统一的工作流程:Vector DaVinci 作为主流的 AutoSAR 配置工具,支持从系统级建模到具体 ECU 通信参数配置的全流程实现。Vector DaVinci 通过标准化的 ARXML(AUTOSAR XML)文件实现与其他工具链的数据交互,确保从系统设计到代码生成的无缝衔接。
-
广泛的格式支持:Vector 工具链支持 DBC、ARXML、ODX 等多种格式的直接导入,自动化程度高,对新手上手较为友好。
-
模型驱动开发:采用模型驱动架构,通过元模型实现配置即代码的开发模式。
3.2 ETAS ISOLAR-A/B
ETAS 作为博世集团子公司,提供了另一个主流的 AUTOSAR CP 工具链。
ETAS ISOLAR工具包括 ISOLAR-A 和 ISOLAR-B 两个部分。
ISOLAR-A:用于 AUTOSAR 架构配置与应用集成工具。它是一个设计 AUTOSAR 架构的工具,帮助用户设计应用层软件。
bash
─────────────────────────────────
ISOLAR-A (Architect)
---------------------------------------------------------------------------------------------------
• 系统级架构设计
• 网络拓扑设计 (CAN/LIN/Eth)
• 通信矩阵设计 (DBC/LDF)
• 诊断需求定义
• 系统映射 (SWC to ECU)
• 生成 System ARXML
─────────────────────────────────
ISOLAR-B:用于配置满足 AUTOSAR 标准的基础软件,以及用于生成和集成 ECU 软件的工具。它允许用户自动配置基本软件,以满足应用软件需求。
ETAS 工具链的特点:
- 成本优势:ETAS 工具链价格更有优势,在小型 ECU 开发中表现良好。
- 芯片兼容性:作为博世集团子公司,ETAS 偏向意法半导体、英飞凌和瑞萨等芯片平台。
- 安全分析集成:ETAS ISOLAR-AB 集成安全分析模块,自动生成 FTA(故障树分析)
3.3 EB tresos Studio
EB tresos Studio深度集成了英飞凌AURI芯片,具备强大的MCAL配置能力,完整的BSW堆栈。
核心模块:
bash
────────────────────────────────
EB tresos Studio
------------------------------------------------------------------------------------------------
• 项目配置管理
• 模块参数配置 (GUI/表格/脚本)
• 一致性验证
• 代码生成
───────────────────────────────
3.4 国产工具链
- NeuSAR(东软睿驰):2018 年,东软睿驰正式发布 NeuSAR 基础软件版本,率先实现国内 "-
AUTOSAR AP+CP + 中间件" 全栈软件平台产品量产落地,经过持续迭代,目前已升级至 AUTOSAR R21-11 版本。
- 普华基础软件:面向中国整车企业和一级供应商提供车用基础软件平台、开发工具以及本地化增值服务。普华基础软件成为 AUTOSAR 高级合作伙伴,成功通过 Automotive SPICE 3 级认证。