> 技术文档 > ARXML文件解析-1

ARXML文件解析-1


目录

  • 1 摘要
  • 2 ARXML文件
    • 2.1 作用及典型应用场景
    • 2.2 ARXML文件的结构树
    • 2.3 TAG(XML元素
    • 2.4 ARXML文件关键元素解析
      • 2.4.1 XML声明与处理指令
      • 2.4.2 XML注释
      • 2.4.3 XML声明与根元素
        • 4.4.3.1 `xmlns`(默认命名空间)
        • 4.4.3.2 `xmlns:xsi`(XML Schema实例命名空间)
        • 4.4.3.3 `xsi:schemaLocation`(XSD文件关联)
      • 2.4.4 ADMIN-DATA元素
      • 2.4.5 语言相关元素
      • 2.4.6 AR-PACKAGE体系结构
      • 2.4.7 元素 (`ELEMENT`) 与属性
      • 2.4.8 引用机制
      • 2.4.9 数据类型定义
      • 2.4.10 数据转换框架
      • 2.4.11 SHORT-NAME命名规范
  • 3 总结

1 摘要

ARXML(AUTOSAR XML)文件 是汽车电子系统开发中的核心配置文件,基于AUTOSAR(汽车开放系统架构)标准定义,用于描述整车电子系统的软件架构、通信配置、资源分配及服务接口。在车载测试、开发等地方有着广泛的应用,因此掌握ARXML文件的作用、语法结构以及用法是非常重要的。

2 ARXML文件

ARXML(AUTOSAR XML)文件 核心作用是为汽车电子控制单元(ECU)的开发、集成和验证提供标准化的数据模型,确保不同供应商、工具链和团队之间的无缝协作。

2.1 作用及典型应用场景

1. 标准化系统描述
ARXML文件以XML格式定义整车电子系统的静态和动态行为,是AUTOSAR方法论中的唯一数据交换格式

  • 统一数据模型:所有AUTOSAR兼容工具(如建模工具、代码生成器、测试工具)均通过ARXML交换数据,避免格式碎片化。
  • 跨团队协作:主机厂、Tier1供应商和软件供应商基于同一ARXML文件协同开发,减少沟通成本。

示例

  • OEM提供整车通信矩阵(如CAN/LIN/以太网信号列表)的ARXML文件,供应商据此开发ECU软件。

2. 定义通信协议与网络拓扑
ARXML文件详细描述车内网络的通信协议、ECU连接关系和信号传输规则。

  • 通信协议栈配置:定义CAN、LIN、FlexRay、以太网等协议的参数(如波特率、帧格式、PDU封装)。
  • 网络拓扑:描述ECU、网关、交换机的物理连接和逻辑通信路径。
  • 信号映射:将应用层信号映射到物理总线(如CAN帧或以太网PDU)的具体位置。

示例

<EcuInstance> <SHORT-NAME>ADAS_ECU</SHORT-NAME> <MAC-ADDRESS>00:1A:2B:3C:4D:5E</MAC-ADDRESS> <IP-ADDRESS>192.168.10.20</IP-ADDRESS></EcuInstance><EthernetFrame> <SHORT-NAME>Camera_Frame</SHORT-NAME> <FRAME-ID>0x2001</FRAME-ID> <PDU-TO-FRAME-MAPPING> <PDU-REF DEST=\"PDU\">/Pdus/Camera_PDU</PDU-REF> </PDU-TO-FRAME-MAPPING></EthernetFrame>

3. 配置ECU软件组件
ARXML文件定义每个ECU的软件架构,包括:

  • 软件组件(SWC):描述功能模块的接口(Port)和内部行为(Runnable)。
  • 资源分配:CPU内核、内存、外设的分配策略。
  • 任务调度:配置Runnable的触发条件(周期/事件)和优先级。

示例

<SW-COMPONENT-PROTOTYPE> <SHORT-NAME>BrakeControl_SWC</SHORT-NAME> <PORT-PROTOTYPES> <SENDER-PORT>BrakeSignal_Out</SENDER-PORT>  <RECEIVER-PORT>WheelSpeed_In</RECEIVER-PORT>  </PORT-PROTOTYPES></SW-COMPONENT-PROTOTYPE>

4. 面向服务架构(SOA)支持
针对车载以太网和SOME/IP,ARXML文件定义服务化接口,支持SOA设计:

  • 服务接口(Service Interface):声明服务的方法(Method)、事件(Event)、字段(Field)。
  • 服务实例化:配置服务在ECU中的端口、IP地址和通信模式(单播/组播)。
  • 服务发现:定义服务实例的动态注册与订阅机制。

示例

<ServiceInterface> <SHORT-NAME>NavigationService</SHORT-NAME> <SERVICE-ID>0x3001</SERVICE-ID> <METHODS> <METHOD> <SHORT-NAME>UpdateRoute</SHORT-NAME> <METHOD-ID>0x01</METHOD-ID> <CALL-TYPE>REQUEST_RESPONSE</CALL-TYPE> </METHOD> </METHODS></ServiceInterface><ServiceInstance> <ENDPOINT-PORT>30490</ENDPOINT-PORT> <MULTICAST-ADDRESS>239.255.10.1</MULTICAST-ADDRESS></ServiceInstance>

5. 数据管理与标定
ARXML文件支持车辆数据的标准化管理:

  • 标定参数:定义可标定变量(如发动机MAP图)的地址、数据类型和物理转换规则。
  • 诊断配置:配置UDS(ISO 14229)服务的DID(数据标识符)和DTC(故障码)。
  • 传感器/执行器接口:描述ECU与物理设备的信号接口(如ADC采样精度、PWM频率)。

示例

<CALPRM> <SHORT-NAME>Engine_TorqueLimit</SHORT-NAME> <PHYSICAL-TYPE>uint16</PHYSICAL-TYPE> <SCALE>0.1</SCALE>  <UNIT>Nm</UNIT> <ADDRESS>0x80001000</ADDRESS> </CALPRM>

6. 自动化代码生成与集成
ARXML文件是AUTOSAR工具链的输入,驱动以下自动化流程:

  • RTE代码生成:生成运行时环境(RTE)代码,实现SWC间通信。
  • BSW配置:生成基础软件(如通信栈、OS、驱动)的配置代码。
  • ECU Extract:从整车ARXML中提取单个ECU的配置,供供应商开发使用。

工具链示例

  1. 设计工具:ETAS ISOLAR、Vector PREEvision。
  2. 代码生成器:EB Tresos、Matlab/Simulink。
  3. 测试工具:CANoe、dSPACE SystemDesk。

7. 验证与仿真支持
ARXML文件为测试和仿真提供结构化输入:

  • 静态验证:检查信号范围、ID唯一性、时序约束的一致性。
  • 动态仿真:导入CANoe等工具,模拟ECU节点间的通信行为。
  • HIL测试:基于ARXML配置硬件在环(HIL)测试环境。

示例场景

  • 在CANoe中加载ARXML文件,自动解析总线信号,实现车载网络流量监控和故障注入测试。

总结:ARXML的核心价值

维度 作用 标准化 统一汽车电子系统描述格式,打破工具链和供应商壁垒。 模块化设计 支持ECU软件组件的独立开发和灵活集成。 通信一致性 确保信号、服务和网络协议的全局一致,避免通信冲突。 自动化效率 驱动代码生成、测试和标定流程的自动化,减少手动错误。 可维护性 通过版本管理和向后兼容性设计,支持车辆电子系统的持续迭代升级。

2.2 ARXML文件的结构树

ARXML(AUTOSAR XML)文件 是AUTOSHAR(汽车开放系统架构)标准中使用的一种基于XML的文件结构,如下是关键元素示例:

  1. 根结构:
AR-PACKAGE (根包)├── SHORT-NAME (包名称)├── ELEMENTS (包含所有主要元素)│ ├── AR-PACKAGE (子包,可嵌套)│ ├── ECU-EXTRACT (ECU 提取定义)│ ├── SYSTEM (系统描述)│ ├── ECU-INSTANCE (ECU 实例)│ ├── COMPOSITION (组件组合)│ ├── COMPONENT-PROTOTYPE (组件原型)│ ├── CLIENT-SERVER-INTERFACE (客户端-服务端接口)│ ├── SENDER-RECEIVER-INTERFACE (发送者-接收者接口)│ ├── SOFTWARE-COMPONENT-TYPE (软件组件类型)│ ├── IMPLEMENTATION-DATA-TYPE (实现数据类型)│ ├── APPLICATION-PRIMITIVE-DATA-TYPE (应用原始数据类型)│ ├── APPLICATION-COMPOSITE-DATA-TYPE (应用复合数据类型)│ ├── CONSTANT-SPECIFICATION (常量规范)│ ├── SIGNAL (信号定义)│ ├── SYSTEM-SIGNAL (系统信号)│ ├── SYSTEM-SIGNAL-GROUP (系统信号组)│ ├── DATA-TRANSFORMER (数据转换器)│ └── ... (其他元素)└── ADMIN-DATA (管理数据)
  1. 主要分支详细解析:
  • 软件组件 (Software Component)
SOFTWARE-COMPONENT-TYPE├── SHORT-NAME├── PORTS│ ├── P-PORT-PROTOTYPE (提供端口)│ │ ├── SHORT-NAME│ │ ├── PROVIDED-INTERFACE-TREF (引用接口)│ │ └── ...│ └── R-PORT-PROTOTYPE (需求端口)│ ├── SHORT-NAME│ ├── REQUIRED-INTERFACE-TREF│ └── ...├── INTERNAL-BEHAVIORS (内部行为)│ ├── SHORT-NAME│ ├── EVENTS│ │ ├── INIT-EVENT (初始化事件)│ │ ├── TIMING-EVENT (定时事件)│ │ ├── DATA-RECEIVE-EVENT (数据接收事件)│ │ ├── OPERATION-INVOKED-EVENT (操作调用事件)│ │ └── MODE-SWITCH-EVENT (模式切换事件)│ ├── RUNNABLES (可运行实体)│ │ ├── SHORT-NAME│ │ ├── CAN-BE-INVOKED-CONCURRENTLY (并发调用标志)│ │ ├── MINIMUM-START-INTERVAL (最小启动间隔)│ │ └── ...│ └── ...└── ...
  • 数据类型 (Data Types)
IMPLEMENTATION-DATA-TYPE├── SHORT-NAME├── CATEGORY (类型类别: VALUE, ARRAY, RECORD, UNION)├── SW-DATA-DEF-PROPS (软件数据定义属性)│ ├── SW-CALIBRATION-ACCESS (标定访问权限)│ ├── SW-IMPL-POLICY (实现策略)│ └── ...├── SUB-ELEMENTS (子元素,适用于复合类型)│ ├── ARRAY-TYPE (数组类型)│ │ ├── ELEMENT (数组元素)│ │ ├── INDEX-DATA-TYPE (索引数据类型)│ │ └── SIZE-HANDLING (大小处理)│ └── RECORD-TYPE (记录类型)│ ├── ELEMENTS (记录元素)│ └── ...└── ...
  • 接口 (Interfaces)

  • 客户端-服务端接口 (Client-Server Interface)

CLIENT-SERVER-INTERFACE├── SHORT-NAME├── IS-SERVICE (是否为服务接口)├── OPERATIONS (操作)│ ├── SHORT-NAME│ ├── ARGUMENTS (参数)│ │ ├── DIRECTION (IN, OUT, INOUT)│ │ ├── TYPE-TREF (类型引用)│ │ └── ...│ ├── POSSIBLE-ERROR-REFS (可能的错误引用)│ └── ...└── ...
  • 发送者-接收者接口 (Sender-Receiver Interface)
SENDER-RECEIVER-INTERFACE├── SHORT-NAME├── DATA-ELEMENTS (数据元素)│ ├── SHORT-NAME│ ├── TYPE-TREF (类型引用)│ ├── IS-QUEUED (是否排队)│ └── ...└── ...
  • 2.4 ECU 配置 (ECU Configuration)
ECU-EXTRACT├── SHORT-NAME├── CONTAINERS (容器)│ ├── ECU-CONFIG (ECU 配置)│ │ ├── SHORT-NAME│ │ ├── ECU-VARIANT (ECU 变体)│ │ ├── MEMORY-MAPPINGS (内存映射)│ │ └── ...│ └── ...├── MODULE-CONFIGS (模块配置)│ ├── COM-CONFIG (通信配置)│ ├── OS-CONFIG (操作系统配置)│ ├── BSW-MODULE-CONFIG (基础软件模块配置)│ └── ...└── ...
  • 系统描述 (System Description)
SYSTEM├── SHORT-NAME├── COMMUNICATION (通信)│ ├── SIGNAL-TO-PDU-MAPPINGS (信号到PDU映射)│ ├── PDU-TO-FRAME-MAPPINGS (PDU到帧映射)│ └── ...├── ECUS (ECU实例)│ ├── SHORT-NAME│ ├── COMMUNICATION-CONNECTORS (通信连接器)│ └── ...├── SIGNALS (信号)│ ├── SHORT-NAME│ ├── DATA-TYPE-POLICY (数据类型策略)│ └── ...└── ...
  • 典型 ARXML 文件层次结构示例:
AUTOSAR (根元素)├── AR-PACKAGES (包集合)│ ├── AR-PACKAGE (包1, 如ServiceInterfaces)│ │ ├── SHORT-NAME: \"ServiceInterfaces\"│ │ ├── ELEMENTS│ │ │ ├── SERVICE-INTERFACE (服务接口)│ │ │ │ ├── SHORT-NAME: \"VehicleSpeedService\"│ │ │ │ ├── SERVICE-ID: 0x1234│ │ │ │ ├── METHODS (方法)│ │ │ │ │ └── CLIENT-SERVER-OPERATION│ │ │ │ │ ├── SHORT-NAME: \"GetSpeed\"│ │ │ │ │ ├── METHOD-ID: 0x0101│ │ │ │ │ └── CALL-TYPE: \"REQUEST_RESPONSE\"│ │ │ │ └── EVENTS (事件)│ │ │ │ └── EVENT│ │ │ │  ├── SHORT-NAME: \"SpeedUpdate\"│ │ │ │  └── EVENT-ID: 0x0201│ │ │ └── ... (其他服务接口)│ │ └── AR-PACKAGE (子包, 可选)│ ││ ├── AR-PACKAGE (包2, 如DataTypes)│ │ ├── SHORT-NAME: \"DataTypes\"│ │ ├── ELEMENTS│ │ │ ├── IMPLEMENTATION-DATA-TYPE (数据类型)│ │ │ │ ├── SHORT-NAME: \"UInt16\"│ │ │ │ └── BIT-SIZE: 16│ │ │ └── IMPLEMENTATION-DATA-TYPE (结构体)│ │ │ ├── SHORT-NAME: \"EngineStatus\"│ │ │ ├── CATEGORY: \"STRUCTURE\"│ │ │ └── SUB-ELEMENTS (成员)│ ││ ├── AR-PACKAGE (包3, 如ECUs)│ │ ├── SHORT-NAME: \"ECUs\"│ │ ├── ELEMENTS│ │ │ └── ECU-INSTANCE (ECU实例)│ │ │ ├── SHORT-NAME: \"EngineECU\"│ │ │ ├── MAC-ADDRESS: \"00:12:34:56:78:9A\"│ │ │ └── ETHERNET-INTERFACES (以太网接口)│ ││ └── AR-PACKAGE (包4, 如Communication)│ ├── SHORT-NAME: \"Communication\"│ ├── ELEMENTS│ │ ├── ETHERNET-FRAME (以太网帧)│ │ │ ├── SHORT-NAME: \"Speed_Frame\"│ │ │ └── FRAME-ID: 0x1001│ │ ├── I-SIGNAL-I-PDU (PDU)│ │ │ ├── SHORT-NAME: \"Speed_PDU\"│ │ │ └── SIGNAL-TO-PDU-MAPPING (信号映射)│ │ └── I-SIGNAL (信号)│ │ ├── SHORT-NAME: \"Speed_Signal\"│ │ └── LENGTH: 16│ └── ...│└── ... (其他全局配置)

关键结构说明:

  1. 根节点
    • 包含所有配置的入口,声明命名空间和版本。

ARXML 文件通常包含以下关键命名空间:

  • http://autosar.org/schema/r4.0 (根据版本不同而变化)
  • http://autosar.org/schema/implementationDataTypes
  • http://autosar.org/schema/applicationDataTypes

版本信息通常在根元素中指定:

<AUTOSAR xsi:schemaLocation=\"http://autosar.org/schema/r4.0 AUTOSAR_4-0-3.xsd\" xmlns=\"http://autosar.org/schema/r4.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">
  1. 包(AR-PACKAGE)

    • 功能划分:按逻辑功能分模块(如服务接口、数据类型、ECU配置)。
    • 嵌套支持:包内可嵌套子包(如ServiceInterfaces包下可定义SOME/IP子包)。
  2. 元素(ELEMENTS)

    • 服务接口(SERVICE-INTERFACE):定义SOME/IP服务的方法、事件、字段。
    • 数据类型(IMPLEMENTATION-DATA-TYPE):基础类型(uint8)或复杂类型(struct)。
    • ECU实例(ECU-INSTANCE):描述ECU的硬件属性(MAC地址、IP地址)。
    • 通信元素(ETHERNET-FRAME, PDU, SIGNAL):定义以太网帧格式和信号映射。
  3. 引用机制

    • 通过标签跨包引用元素(如/DataTypes/UInt16)。

示例:服务接口与PDU的引用关系

ServiceInterfaces ()└── SERVICE-INTERFACE ├── METHOD │ └── INPUT-ARGUMENTS │ └── ARGUMENT │  └── DATA-TYPE-REF -> /DataTypes/UInt16 └── EVENT └── DATA-TYPE-REF -> /DataTypes/UInt16Communication ()└── I-SIGNAL-I-PDU └── SIGNAL-TO-PDU-MAPPING └── I-SIGNAL-REF -> /Signals/Speed_Signal

设计原则

  1. 模块化:按功能拆分为独立包(如ServicesNetworkECUs)。
  2. 唯一标识:所有ID(SERVICE-IDMETHOD-ID)需全局唯一。
  3. 可读性:通过SHORT-NAME和注释说明元素用途。
  4. 兼容性:版本升级时保留旧字段,避免破坏现有通信。

通过此结构树,可快速定位ARXML文件中的配置模块,理解元素间的层级和引用关系。

2.3 TAG(XML元素)

在ARXML文件中,TAG(XML元素)的类型由AUTOSAR元模型(Meta-Model)严格定义,用于描述汽车电子系统的各个组成部分。以下是ARXML文件中所有常见TAG类型的分类及详细说明,涵盖从顶层结构到具体配置的完整体系:

1. 顶层结构标签

TAG名称 用途 示例 根元素,声明命名空间和XSD引用 xml 包含所有功能包的容器 xml ... 单个功能包,通过UUIDSHORT-NAME标识 xml ...

2. 元数据与管理标签

TAG名称 用途 示例 文件管理信息(版本、语言等) xml EN 文档修订历史 xml 1.0.0 声明支持的多语言 xml

3. 通信与网络相关标签

TAG名称 用途 示例 定义通信协议(CAN/LIN/Ethernet) xml CAN_Cluster 协议数据单元(信号组) xml EngineData 单个信号定义 xml RPM 接口信号(ECU间通信) xml BrakePressure

4. ECU配置与软件组件标签

TAG名称 用途 示例 ECU模块定义(软件组件) xml CanDriver 容器实例(配置参数集合) xml CanConfig 参数值容器 xml 100

5. 服务与数据转换标签

TAG名称 用途 示例 SOA服务接口定义 xml DiagnosticService 数据转换规则集合(如信号编码/解码) xml SignalEncoder 数据转换步骤链 xml CanToEth

6. 多语言支持标签

TAG名称 用途 示例 多语言描述容器 xml Description 短文本(名称、标签) xml EngineSpeed 长文本(详细说明、文档) xml This is a detailed description...

7. 引用与依赖标签

TAG名称 用途 示例 引用其他元素(通过UUID或路径) xml /Path/To/Element 条件编译或变体配置 xml ...

8. 特殊用途标签

TAG名称 用途 示例 标记未完成的配置 xml /ECUC/Placeholders/Unassigned 嵌入二进制文件(如校准数据) xml Calibration.bin

关键总结

  1. 严格分层:ARXML采用树状结构,从根元素到具体配置逐级展开。
  2. 工具链依赖:所有TAG需符合AUTOSAR XSD规范,否则工具(如Vector PREEvision)会报错。
  3. 多语言支持:通过/实现国际化。
  4. 唯一标识UUIDSHORT-NAME确保元素可被唯一引用。
    如需完整标签列表,请参考对应AUTOSAR版本的官方XSD文件(如AUTOSAR_4-2-2.xsd)。

2.4 ARXML文件关键元素解析

2.4.1 XML声明与处理指令

元素 - XML声明
作用:定义XML文档的基本属性,是每个ARXML文件必须的开头部分
完整语法

参数详解

  • version(必需):指定XML版本,目前只支持\"1.0\"
  • encoding(强烈推荐):字符编码方式,推荐值:
    • UTF-8(推荐):兼容性最佳,支持多语言。
    • UTF-16:大端/小端编码,需声明字节顺序标记(BOM)。
    • ISO-8859-1:仅支持西欧字符。
  • standalone(可选):定义文档是否依赖外部DTD
    • 作用:声明XML文档是否依赖外部资源(如DTD、XSD)。
    • standalone=\"yes\":文档独立,不依赖外部定义。
    • standalone=\"no\":依赖外部资源(如AUTOSAR XSD文件)。
    • 默认值:若未声明,默认值为 \"no\"
    • ARXML实践
    • AUTOSAR文件通常需引用外部XSD架构,因此建议显式声明 standalone=\"no\"
    • 若省略此属性,工具链可能默认按 \"no\" 处理。

使用规范

  1. 必须出现在文件第一行
  2. 前面不能有任何字符(包括空格)
  3. 在ARXML中必须指定UTF-8编码

注意事项

  • 若声明 encoding=\"UTF-8\",文件必须保存为UTF-8格式(无BOM)。
  • 若文件含中文注释或标签,必须使用UTF-8编码,否则解析器会报错或乱码。

2.4.2 XML注释

元素 - 注释
作用:为ARXML文件添加人类可读的解释说明
语法规则

特殊限制

  • 不能嵌套注释
  • 内容中不能包含连续两个连字符\"–\"
  • 不能出现在标签内部(如<tag >

2.4.3 XML声明与根元素

  • 必须声明根元素 ,并指定命名空间和XSD验证。
  • 命名空间xmlns 定义AUTOSAR标准的版本(如R4.0、R21-11)。
  • XSD引用xsi:schemaLocation 指向对应的XSD架构文件,用于语法验证。
4.4.3.1 xmlns(默认命名空间)
  • 作用:定义XML元素的默认命名空间,确保元素归属明确,所有未显式指定前缀的元素均属于此命名空间。
  • ARXML示例
    <AUTOSAR xmlns=\"http://autosar.org/schema/r4.0\">  <AR-PACKAGE>...</AR-PACKAGE></AUTOSAR>
  • 关键点
    • 命名空间URI(如http://autosar.org/schema/r4.0)唯一标识AUTOSAR版本。
    • 不同AUTOSAR版本需对应不同URI(如R21-11为http://autosar.org/schema/r4.0)。

AUTOSAR命名空间版本对照表:

AUTOSAR版本 命名空间URI R4.0 http://autosar.org/schema/r4.0 R4.1 http://autosar.org/schema/r4.1 R4.2 http://autosar.org/schema/r4.2 R21-11 http://autosar.org/schema/r4.0(同R4.2)
4.4.3.2 xmlns:xsi(XML Schema实例命名空间)
  • 作用:声明XML Schema实例(XML Schema Instance)的命名空间前缀(通常为xsi),用于关联XSD文件,启用XML Schema实例功能。
  • 示例
    <AUTOSAR xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"> </AUTOSAR>
  • 前缀约定
    • xsi 是通用前缀,不可自定义。
    • 用于后续的schemaLocation属性。
4.4.3.3 xsi:schemaLocation(XSD文件关联)
  • 作用:指定命名空间对应的XSD架构文件路径,供解析器验证XML结构,实现语法验证。
  • 语法xsi:schemaLocation=\"命名空间URI XSD文件路径\"
    (多个命名空间可依次列出,用空格分隔)
  • ARXML示例
    <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-0-3.xsd\">
    • 表示 http://autosar.org/schema/r4.0 命名空间的XSD文件为 AUTOSAR_4-0-3.xsd
  • 关键点
    • XSD文件需与XML文件在相同目录,或通过绝对/相对路径指定。
    • 若XSD文件未找到,工具链(如Vector PREEvision)会报错。

完整ARXML根元素示例:

<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-2-2.xsd\" > <AR-PACKAGES> <AR-PACKAGE> <SHORT-NAME>ECU_Config</SHORT-NAME> </AR-PACKAGE> </AR-PACKAGES></AUTOSAR>

2.4.4 ADMIN-DATA元素

元素
作用:存储文档管理元数据,包含三类核心信息:

  1. 文档创建和修改历史
  2. 工具链信息
  3. 配置管理数据

ADMIN-DATA 的典型结构:
ADMIN-DATA 通过 (Structured Data Group Set)定义多个结构化数据组(),每个组通过 GID(Group ID)标识数据类型,并通过 (Structured Data)存储具体值。
完整结构

<ADMIN-DATA> <SDGS>  <SDG GID=\"Docu\"> <SD>ECU Configuration</SD> </SDG>  <SDG GID=\"Revision\"> <SD>4.3.0</SD> </SDG>  <SDG GID=\"Created\"> <SD>2023-11-20T09:30:00</SD> <SDG GID=\"By\"> <SD>John.Doe@company.com</SD> </SDG> </SDG>  <SDG GID=\"Tool\"> <SD>Vector PREEvision 6.0</SD> <SDG GID=\"Settings\"> <SD>CodeGen=Autosar4.2</SD> </SDG> </SDG> </SDGS></ADMIN-DATA>

SDG参数详解

  • GID(必需):分组标识符,常见值:
    • “Created”:创建时间
    • “Modified”:修改记录
    • “Tool”:生成工具
    • “Revision”:版本号
    • “Owner”:所有者
  • SD:实际数据内容,可以是嵌套结构

常见 GID 类型与用途:

GID 说明 示例值 author 元素创建或修改的作者。 Alice Brown creationDate 元素的创建时间(ISO 8601 格式)。 2023-10-05T08:00:00Z modifiedDate 元素的最后修改时间。 2023-10-06T09:15:00Z modifiedHistory 修改历史记录(多行文本)。 2023-10-05: Initial creation tool 生成或修改该元素的工具名称及版本。 ETAS ISOLAR-A 4.3.0 version 元素的版本号(遵循语义化版本规范)。 1.2.0 comment 自定义注释或描述。 Added new event for fault codes

最佳实践

  1. 至少应包含创建时间和工具信息
  2. 使用ISO 8601格式记录时间戳
  3. 对重要修改保留历史记录

2.4.5 语言相关元素

元素
作用:声明文档的默认内容语言
语法用法

<LANGUAGE>EN</LANGUAGE>

语言代码规范

  • 必须使用ISO 639-1双字母代码
  • 常见值:EN(英语)、DE(德语)、JA(日语)、ZH(中文)

元素
作用:声明文档中实际使用的所有语言
语法

<USED-LANGUAGES> <USED-LANGUAGE>EN</USED-LANGUAGE> <USED-LANGUAGE>DE</USED-LANGUAGE></USED-LANGUAGES>

规则

  1. 必须包含中指定的默认语言
  2. 按使用频率排序
  3. 每个语言代码只能出现一次

元素
作用:提供多语言文本内容
完整语法

<L-10 L=\"EN\" xml:space=\"preserve|default\" xmlns:xhtml=\"http://www.w3.org/1999/xhtml\"> 文本内容</L-10>

参数详解

  • L(必需):ISO 639-1语言代码
  • xml:space(可选):空白处理方式
    • “preserve”:保留所有空白字符
    • “default”:按XML规范处理空白
  • xmlns:xhtml(可选):允许嵌入XHTML标记

与其他多语言标签的对比:

标签类型 用途 示例 短文本(名称、简短描述) CAN Signal 长文本(详细说明、文档) 如上文示例 中等长度文本(如错误消息) 较少使用

典型应用

<DESCRIPTION> <L-10 L=\"EN\" xml:space=\"preserve\"> Engine control module (ECM) manages the fundamental engine parameters. </L-10> <L-10 L=\"DE\"> Das Motorsteuergerät (ECM) verwaltet die grundlegenden Motorparameter. </L-10></DESCRIPTION>

2.4.6 AR-PACKAGE体系结构

元素
作用:根元素下的容器,作为所有AR-PACKAGE的根容器,用于组织多个(AUTOSAR包),形成层次化结构。
特性

  • 必须是元素的直接子元素
  • 可以包含多个
  • 在模块化ARXML中可能被拆分到多个文件,用于模块化设计(如按功能划分:通信、诊断、ECU配置等)。

元素
作用:AUTOSAR元素的主要组织单元
完整语法

<AR-PACKAGES>  <AR-PACKAGE UUID=\"d8a3f1e0-7b3a-11ed-a1eb-0242ac120002\"> <SHORT-NAME>ServiceInterfaces</SHORT-NAME> <ELEMENTS>  </ELEMENTS>  <AR-PACKAGE> <SHORT-NAME>SubPackage</SHORT-NAME> ... </AR-PACKAGE> </AR-PACKAGE></AR-PACKAGES>

关键子元素

  1. UUID:唯一标识符(推荐使用URN格式)
  2. SHORT-NAME:包名称(遵循AUTOSAR命名规则)
  3. ELEMENTS:包含实际AUTOSAR元素

UUID生成规范

  • 必须符合RFC 4122标准
  • 推荐格式:urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  • 生成工具:应使用标准UUID生成算法

2.4.7 元素 (ELEMENT) 与属性

元素表示 AUTOSAR 元模型中的对象(如服务、信号、ECU),通过属性定义其特性。

通用元素结构

<ELEMENT-TYPE UUID=\"...\"> <SHORT-NAME>ElementName</SHORT-NAME> <PROPERTY-NAME>value</PROPERTY-NAME> <REFERENCE DEST=\"TARGET-TYPE\">/Path/To/Target</REFERENCE></ELEMENT-TYPE>
  • UUID: 元素的唯一标识符(必填)。
  • SHORT-NAME: 元素名称(必填,同一包内不可重复)。
  • DEST: 引用目标类型(如 IMPLEMENTATION-DATA-TYPE)。

常见元素类型

元素类型 描述 SERVICE-INTERFACE 定义 SOME/IP 服务接口(方法、事件、字段)。 ECU-INSTANCE 描述 ECU 硬件属性(MAC 地址、IP 地址)。 IMPLEMENTATION-DATA-TYPE 定义数据类型(基础类型或结构体)。 I-SIGNAL-I-PDU 定义 PDU(协议数据单元)及其信号映射。 ETHERNET-FRAME 定义以太网帧格式。

2.4.8 引用机制

通过 路径引用UUID 引用 关联不同包中的元素。

1 路径引用

<DATA-TYPE-REF DEST=\"IMPLEMENTATION-DATA-TYPE\">/DataTypes/UInt16</DATA-TYPE-REF>
  • 路径格式: /Package/SubPackage/ElementName
  • DEST: 指定目标元素的元模型类型(必须与目标匹配)。

示例

<DATA-TYPE-REF DEST=\"IMPLEMENTATION-DATA-TYPE\">/DataTypes/UInt16</DATA-TYPE-REF><PDU-REF DEST=\"I-SIGNAL-I-PDU\">/Pdus/Speed_PDU</PDU-REF><I-SIGNAL-REF DEST=\"I-SIGNAL\">/Signals/Speed_Signal</I-SIGNAL-REF>

规则

  • 路径格式:使用/分隔包层级,如/DataTypes/UInt16表示根包下的DataTypes包中的UInt16类型。
  • DEST属性:必须与目标元素的类型严格匹配(如IMPLEMENTATION-DATA-TYPE对应数据类型)。

2 UUID 引用

<ECU-INSTANCE-REF DEST=\"ECU-INSTANCE\">d8a3f1e0-7b3a-11ed-a1eb-0242ac120002</ECU-INSTANCE-REF>
  • 适用场景: 跨文件引用元素。
  • 要求: 目标元素必须在同一工程的其他 ARXML 文件中定义。

2.4.9 数据类型定义

通过 IMPLEMENTATION-DATA-TYPE 定义基础或复杂数据类型

基础类型

<IMPLEMENTATION-DATA-TYPE UUID=\"...\"> <SHORT-NAME>UInt16</SHORT-NAME> <CATEGORY>VALUE</CATEGORY> <BIT-SIZE>16</BIT-SIZE></IMPLEMENTATION-DATA-TYPE>
  • CATEGORY: VALUE(基础类型)、STRUCTURE(结构体)、ARRAY(数组)。

结构体类型

<IMPLEMENTATION-DATA-TYPE UUID=\"...\"> <SHORT-NAME>EngineStatus</SHORT-NAME> <CATEGORY>STRUCTURE</CATEGORY> <SUB-ELEMENTS> <IMPLEMENTATION-DATA-TYPE-ELEMENT> <SHORT-NAME>RPM</SHORT-NAME> <TYPE-TREF DEST=\"IMPLEMENTATION-DATA-TYPE\">/DataTypes/UInt16</TYPE-TREF> <BYTE-POSITION>0</BYTE-POSITION> </IMPLEMENTATION-DATA-TYPE-ELEMENT> </SUB-ELEMENTS></IMPLEMENTATION-DATA-TYPE>
  • BYTE-POSITION: 结构体成员的起始字节位置(必须对齐)。

2.4.10 数据转换框架

元素
作用:容器元素,包含所有数据转换定义
结构要求

<DATA-TRANSFORMATIONS> <DATA-TRANSFORMATION-SET>...</DATA-TRANSFORMATION-SET> </DATA-TRANSFORMATIONS>

位置:通常位于

元素
作用:定义一组数据转换规则(如信号编码/解码、单位转换等)
关键点

  • UUID:唯一标识该转换集。
  • 通常用于SOA(面向服务架构)或信号后处理。

子元素

  • :转换集名称(如Transformer_Configuration)。
  • :引用具体的转换链(Transformer Chains)。

完整语法

 <DATA-TRANSFORMATION-SET UUID=\"e5f6g7h8-9012-3456-7890-abcdef123456\"> <SHORT-NAME>Transformer_Configuration</SHORT-NAME> <TRANSFORMER-CHAIN-REFS>...</TRANSFORMER-CHAIN-REFS> </DATA-TRANSFORMATION-SET>

关键参数

  • UUID:必须全局唯一
  • SHORT-NAME:遵循UpperCamelCase命名惯例

元素
作用:引用一个或多个转换链(Transformer Chains),定义数据转换的执行顺序。
典型子元素

  • :指向具体的转换链(通过UUID或路径引用)。

应用场景

  • 例如:将CAN信号转换为以太网信号需要多个步骤(缩放、字节序转换等)。

详细结构

<TRANSFORMER-CHAIN-REFS> <TRANSFORMER-CHAIN-REF DEST=\"TRANSFORMER-CHAIN\" DEST-NAME=\"SpeedConverterChain\" >/Transformers/SpeedProcessing</TRANSFORMER-CHAIN-REF></TRANSFORMER-CHAIN-REFS>

属性详解

  • DEST(必需):目标类型,固定为\"TRANSFORMER-CHAIN\"
  • DEST-NAME(可选):目标元素的SHORT-NAME
  • 内容:XPath格式的引用路径

2.4.11 SHORT-NAME命名规范

语法要求

<SHORT-NAME>ValidName</SHORT-NAME>

命名规则

  1. 长度限制:1-128个字符
  2. 允许字符:
    • 大写字母(A-Z)
    • 小写字母(a-z)
    • 数字(0-9)
    • 下划线(_)
  3. 禁止:
    • 开头或结尾使用下划线
    • 连续两个下划线
    • 使用XML保留字符(, &等)

行业惯例

  • 类型定义使用UpperCamelCase:EngineSpeedType
  • 实例命名使用lowerCamelCase:currentSpeed
  • 常量使用UPPER_SNAKE_CASE:MAX_SPEED_LIMIT

综合应用示例

<AUTOSAR xmlns=\"http://autosar.org/schema/r4.0\"> <ADMIN-DATA> <SDGS> <SDG GID=\"Created\"> <SD>2023-11-20T14:30:00Z</SD> <SDG GID=\"By\"> <SD>engineering@auto.com</SD> </SDG> </SDG> <SDG GID=\"Tool\"> <SD>ETAS ISOLAR-A 9.0.1</SD> </SDG> </SDGS> </ADMIN-DATA> <LANGUAGE>EN</LANGUAGE> <USED-LANGUAGES> <USED-LANGUAGE>EN</USED-LANGUAGE> <USED-LANGUAGE>DE</USED-LANGUAGE> </USED-LANGUAGES> <AR-PACKAGES> <AR-PACKAGE UUID=\"urn:uuid:1a2b3c4d-5e6f-7890-1234-56789abcdef0\"> <SHORT-NAME>VehicleData</SHORT-NAME> <DESCRIPTION> <L-10 L=\"EN\">Contains vehicle data transformations</L-10> </DESCRIPTION> <ELEMENTS> <DATA-TRANSFORMATIONS> <DATA-TRANSFORMATION-SET UUID=\"urn:uuid:aa11bb22-cc33-dd44-ee55-ff6677889900\"> <SHORT-NAME>SpeedTransformSet</SHORT-NAME> <TRANSFORMER-CHAIN-REFS>  <TRANSFORMER-CHAIN-REF DEST=\"TRANSFORMER-CHAIN\"> /Transformers/KmphToMphChain  </TRANSFORMER-CHAIN-REF> </TRANSFORMER-CHAIN-REFS> </DATA-TRANSFORMATION-SET> </DATA-TRANSFORMATIONS> </ELEMENTS> </AR-PACKAGE> </AR-PACKAGES></AUTOSAR>

3 总结

以上对ARXML文件的作用、应用场景以及关键元素进行了详细介绍,希望能对大家学习ARXML文件有所帮助,后续专题会继续对ARXML文件以及以太网通信矩阵进行介绍。