您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



文章 咨询 工具 课程  
会员   
   
基于AI的性能测试工程
3月9-10日 北京+线上
需求分析与管理
3月18-19日 北京+线上
嵌入式C高质量编程
3月25-26日 北京+线上
     
   
 订阅
ARXML:汽车电子架构的“终极协议”与开发者实战指南
 
作者:车软开发王老师
  30   次浏览      4
 2026-3-6
 
编辑推荐:
本文主要介绍了汽车电子架构的“终极协议”与开发者实战指南ARXML相关内容,希望对你的学习有帮助。
本文来自于汽车嵌入式学堂,由火龙果软件Alice编辑,推荐。

现代汽车研发中,软件是车辆竞争力的核心,高端电动汽车代码量超1亿行,80%以上与电子系统相关。核心问题是如何在OEM、Tier 1、Tier 2间高效无歧义传递系统工作指令。传统用Excel、Word、邮件沟通的方式,存在沟通成本高、错误率高、追溯难的弊端。ARXML应运而生,它并非普通配置文件,而是AUTOSAR标准规定的汽车电子系统架构唯一官方语言。

本文将从工程师实际需求出发,解析ARXML核心内容,助力开发者快速上手。

ARXML不是工具的“配置文件”,而是系统的“唯一真相源”

很多开发者对ARXML存在误解,认为它是Vector、EB或ETAS工具生成的一个“配置文件”,为此感到困惑:为什么同一个工具,不同项目的ARXML文件结构千差万别?

核心洞见:ARXML = AUTOSAR Model + XML Serialization

ARXML的本质是AUTOSAR架构模型的“序列化”格式。它把抽象的系统架构——软件组件、ECU、通信、端口、数据类型——通过一套标准化的XML标签“翻译”成一个物理文件。

这套XML标签是严格遵循AUTOSAR标准定义的Schema的,不能随意更改。

因此,ARXML文件的根本作用,是在所有参与方之间建立一个“单一事实源”(Single Source of Truth, SSoT)。

  • 对于OEM:它定义了系统的整体架构、功能分配和通信需求。

  • 对于Tier 1供应商:它是构建ECU软件的“设计规格书”。配置工具必须依赖ARXML来生成代码和配置。

  • 对于测试工程师:它提供了测试用例所需的完整接口和数据模型。

  • 对于集成工程师:它是分析总线负载、检查通信冲突、验证硬件资源分配的唯一依据。

开发者须知

  • 你不能指望“看懂”所有ARXML文件。它是一个庞大的、分层的、动态的模型。你只需要关注与你当前工作相关的信息。

  • “读懂ARXML”不等于“看懂XML文本”。任何正规工具(如DaVinci Developer、EB tresos Studio)都会提供图形化界面,将模型可视化,这才是你日常工作的主要界面。

  • 不要试图在XML文本文件里做手动修改。修改应在工具中进行,工具会自动维护XML结构和语义,避免人为引入错误。

ARXML的底层结构与关键元素详解

ARXML文件是一个遵循特定Schema的XML文档。它的结构是高度分层的,每个层级都对应AUTOSAR标准中的一个模型包(Package)。

1. 顶级结构:AUTOSAR Root

所有ARXML文件都以一个<AUTOSAR>元素作为根节点开始。它包含两个最重要的属性:

  • xsi:schemaLocation:指明了该文件所依据的AUTOSAR标准版本(如http://autosar.org/schema/r4.3.0)。

  • xmlns:xsi和xmlns:定义了命名空间(Namespace),用于区分不同版本的标准。

2. 核心包(Packages)

在<AUTOSAR>下面,会包含多个<AR-PACKAGE>,每个包代表一个特定的模型域(Domain)。对于应用开发者而言,最相关的几个包是:

  • SWC-Types: 定义所有软件组件(Software Component, SWC)的类型。这是应用软件逻辑的载体。

  • ECU-Extracts: 包含部署在特定ECU上的所有模型元素的“快照”。它是位于“系统级”与“ECU级”之间的关键桥梁。

  • Communication: 包含通信相关的所有定义,如信号(Signal)、PDU(Protocol Data Unit)、帧(Frame)、总线(Bus)等。

  • DataType: 定义了所有基础数据类型和复合数据类型,如UINT8、INT32、Struct、Array等。

3. 核心元素解析

下面深入剖析几个对开发者至关重要的元素:

3.1 软件组件(SoftwareComponentType)

这是应用软件的最小单元。一个<SOFTWARE-COMPONENT-TYPE>包含:

  • <SHORT-NAME>: 组件的短名称,如EngineControlSWC。

  • <PORTS>: 组件的所有端口。端口是组件与外部世界交互的“接口”,分为发送端口(PROVIDED-PORT)和接收端口(REQUIRED-PORT)。

<SOFTWARE-COMPONENT-TYPE>
<SHORT-NAME>EngineControlSWC</SHORT-NAME>
<PORTS>
<P-PORT>
<SHORT-NAME>EngineSpeedOut</SHORT-NAME>
<INTERFACE-REF DEST="SENDER-RECEIVER-INTERFACE">
/Interfaces/EngineSpeedInterface</INTERFACE-REF>
</P-PORT>
<R-PORT>
<SHORT-NAME>ThrottleIn</SHORT-NAME>
<INTERFACE-REF DEST="SENDER-RECEIVER-INTERFACE">
/Interfaces/ThrottleInterface</INTERFACE-REF>
</R-PORT>
</PORTS>
</SOFTWARE-COMPONENT-TYPE>

关键点在于<INTERFACE-REF>,它指向一个定义好的接口(Interface),这个接口才是真正定义了数据结构和语义的地方。

3.2 接口(Interface)

接口定义了端口之间传递的数据格式和语义。最常用的是Sender-Receiver Interface。它包含一个或多个<DATA-ELEMENT>,每个元素定义了一个数据项。


<SENDER-RECEIVER-INTERFACE>
    <SHORT-NAME>EngineSpeedInterface</SHORT-NAME>
     <DATA-ELEMENTS>
        <VARIABLE-DATA-PROTOTYPE>
            <SHORT-NAME>EngineRPM</SHORT-NAME>
            <TYPE-TREF DEST="DATA-TYPE">/DataTypes/UINT16</TYPE-TREF>
        </VARIABLE-DATA-PROTOTYPE>
    </DATA-ELEMENTS>
</SENDER-RECEIVER-INTERFACE>

这里,EngineRPM是一个UINT16类型的数据。它描绘了“发送方在发送什么,接收方在接收什么”。

3.3 ECU Extract(ECU配置摘要)

这是开发中最常接触的包。它不是一个“真实”的ECU,而是一个包含该ECU上所有部署信息的模型快照。它包含了:

  • 该ECU上所有被部署的软件组件(SWC)。

  • 这些SWC的所有端口所连接的通信接口。

  • 与通信相关的帧(Frames)、PDU、信号(Signals)的细节。

  • 与底层驱动(BSW)模块(如Diag、Com、Rte)的配置。

3.4 通信配置(Com、PDU、Frame)

从应用层的接口,到物理层的CAN报文,ARXML精确地描述了这个映射过程。其核心流程为:

  • Signal (信号): 定义了单个数据项(如EngineRPM),并赋予它最大值、最小值、单位、分辨率等物理属性。

  • PDU (Protocol Data Unit,协议数据单元): 定义了如何将一个或多个信号“打包”进一个数据块。一个PDU可以包含多个信号,不同信号可以被“打包”到不同的PDU中。

  • Frame (帧): 定义了如何将一个PDU“打包”进一个物理报文(如CAN报文),并指定报文的ID、周期、长度等物理属性。

<FRAME>
    <SHORT-NAME>EngineFrame</SHORT-NAME>
    <FRAME-TRIGGERING>
        <CAN-FRAME-TRIGGERING>
            <IDENTIFIER>0x100</IDENTIFIER>
            <CAN-FRAME>
                 <FRAME-LENGTH>8</FRAME-LENGTH>
                <PDU-TRIGGERING-REFS>
                 <PDU-TRIGGERING-REF DEST="PDU-TRIGGERING">
/ECUs/MyECU/Communication/PDUs/EnginePDU</PDU-TRIGGERING-REF>
            </PDU-TRIGGERING-REFS>
        </CAN-FRAME>
    </CAN-FRAME-TRIGGERING>
   </FRAME-TRIGGERING>
</FRAME>

开发者实战要点

  • 不要过度关注“接口”本身。看接口是为了理解数据的“是什么”和“在哪里”。真正的“工作”是看这些接口在通信包中如何映射到具体的信号、PDU和帧。

  • ECU Extract 是你的“工作台”。在工具中打开ECU Extract,你能看到该ECU上所有软件、所有通信、所有硬件资源的视图。这是排查通信问题、分析资源占用、验证部署方案的第一手资料。

开发者必知的ARXML使用实践

1. 如何在项目中定位信息

假设你需要知道“发动机转速信号EngineRPM”的传输周期。操作步骤如下:

1.全局搜索:在工具中(如DaVinci Developer)搜索EngineRPM。

2.定位到Signal:找到EngineRPM Signal的定义。

3.上溯到PDU:找到该Signal所属的PDU。

4.上溯到Frame:找到该PDU所属的Frame。

5.查看帧周期:Frame中通常有<CYCLE-TIME>字段,即为该信号的传输周期。

这个过程体现了AUTOSAR的“分层”和“追溯”思想。

2. 修改ARXML的正确方式

  • 永远在图形化工具中进行修改。直接修改XML文本是极其危险的,很容易破坏结构或语义,导致工具无法识别。

  • 遵循工具的“模型规则”。工具会自动校验你的修改是否符合AUTOSAR标准,例如,不能将一个无符号整数类型的数据赋给一个有符号整数类型的端口。

  • 进行模型一致性检查(Check)。在完成修改后,务必运行工具的“Check”功能。它会检查模型中是否存在潜在的配置错误,如端口未连接、资源不足等。

3. 理解“部署图”(Deployment)

部署是将软件组件分配到物理ECU的过程。在ARXML中,它体现在<ECU-EXTRACT>中。通过部署图,你可以:

  • 规划资源:查看某个ECU上部署了多少个SWC,占用了多少CPU和内存资源。

  • 分析负载:查看该ECU上的通信负载(总线负载率),判断是否需要优化或调整。

  • 进行版本管理:不同的车型或配置可能对应不同的部署方案。ARXML可以精确描述这些差异。

4. 与代码生成的联动

所有的代码生成工具(如DaVinci Configurator Pro, EB tresos Studio)的核心输入就是ARXML。你所做的每一个配置,最终都会转化为C代码。例如:

  • 一个发送端口P-PORT会被生成为一个函数调用,如
    Rte_Write_EngineControlSWC_
    EngineSpeedOut_EngineRPM(value)。

  • 一个接收端口R-PORT会被生成为一个函数调用,如
    Rte_Read_EngineControlSWC_
    ThrottleIn_Throttle(value)。

  • 通信协议栈(Com、PduR)的配置会生成相应的配置表。

因此,理解ARXML,就是从源头理解你最终看到的那些C代码是如何生成的。

   
30 次浏览       4
相关文章

中央计算的软件定义汽车架构设计
汽车电子控制系统中的软件开发过程
一文读懂汽车芯片-有线通信芯片
OTA在汽车上有哪些难点痛点?
相关文档

汽车设计-汽车的整体结构及动力系统
自动驾驶汽车软件计算框架
SysML在汽车领域的应用实践
电子电气架构-大陆汽车系统架构平台
相关课程

AutoSAR原理与实践
功能安全管理体系(基于ISO26262)
MBSE(基于模型的系统工程)
基于SOA的汽车电子架构设计与开发

最新活动计划
基于模型的数据治理 3-10[北京]
基于AI的性能测试工程 3-9[在线]
需求分析与管理 3-18[北京]
配置管理方法、实践、工具 3-11[北京]
嵌入式C高质量编程 3-25[北京]
嵌入式软件测试 3-27[上海]
GPU图像处理基础 4-22[北京]
 
 
最新文章
ASPICE中配置管理是个什么东西?
了解软件安全分析与组件鉴定
掌握Autosar ComStack的精髓!
基于整车功能的正向诊断需求开发
搞定Autosar SWC开发秘籍,码住!
汽车OTA更新的系统性威胁评估
最新课程
基于SOA的汽车电子架构设计与开发
Auto SAR原理与实践
AUTOSAR架构与实践(从CP到 AP )
AUTOSAR架构建模方法与工具(EA)
ASPICE4.0核心开发过程指南
MBSE(基于模型的系统工程)
更多...   
成功案例
某知名车企 AUTOSAR应用设计与开发
吉利汽车 MBSE工程体系汽车建模及评估
某整车企业 《功能需求分析与设计》
富奥汽车零部件 建模工具EA
零跑汽车 建模工具EA及服务
北汽福田 建模工具EA
小鹏汽车 建模工具EA
更多...