ARXML文件解析-1

打印 上一主题 下一主题

主题 1555|帖子 1555|积分 4667

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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)的具体位置。
示例
  1. <!-- 以太网ECU实例定义 -->
  2. <EcuInstance>
  3.   <SHORT-NAME>ADAS_ECU</SHORT-NAME>
  4.   <MAC-ADDRESS>00:1A:2B:3C:4D:5E</MAC-ADDRESS>
  5.   <IP-ADDRESS>192.168.10.20</IP-ADDRESS>
  6. </EcuInstance>
  7. <!-- 以太网帧与信号映射 -->
  8. <EthernetFrame>
  9.   <SHORT-NAME>Camera_Frame</SHORT-NAME>
  10.   <FRAME-ID>0x2001</FRAME-ID>
  11.   <PDU-TO-FRAME-MAPPING>
  12.     <PDU-REF DEST="PDU">/Pdus/Camera_PDU</PDU-REF>
  13.   </PDU-TO-FRAME-MAPPING>
  14. </EthernetFrame>
复制代码
3. 配置ECU软件组件
ARXML文件定义每个ECU的软件架构,包罗:


  • 软件组件(SWC):描述功能模块的接口(Port)和内部举动(Runnable)。
  • 资源分配:CPU内核、内存、外设的分配战略。
  • 任务调度:配置Runnable的触发条件(周期/变乱)和优先级。
示例
  1. <!-- 软件组件接口定义 -->
  2. <SW-COMPONENT-PROTOTYPE>
  3.   <SHORT-NAME>BrakeControl_SWC</SHORT-NAME>
  4.   <PORT-PROTOTYPES>
  5.     <SENDER-PORT>BrakeSignal_Out</SENDER-PORT>  <!-- 发送刹车信号 -->
  6.     <RECEIVER-PORT>WheelSpeed_In</RECEIVER-PORT> <!-- 接收轮速信号 -->
  7.   </PORT-PROTOTYPES>
  8. </SW-COMPONENT-PROTOTYPE>
复制代码
4. 面向服务架构(SOA)支持
针对车载以太网和SOME/IP,ARXML文件定义服务化接口,支持SOA计划:


  • 服务接口(Service Interface):声明服务的方法(Method)、变乱(Event)、字段(Field)。
  • 服务实例化:配置服务在ECU中的端口、IP地址和通信模式(单播/组播)。
  • 服务发现:定义服务实例的动态注册与订阅机制。
示例
  1. <!-- SOME/IP服务接口 -->
  2. <ServiceInterface>
  3.   <SHORT-NAME>NavigationService</SHORT-NAME>
  4.   <SERVICE-ID>0x3001</SERVICE-ID>
  5.   <METHODS>
  6.     <METHOD>
  7.       <SHORT-NAME>UpdateRoute</SHORT-NAME>
  8.       <METHOD-ID>0x01</METHOD-ID>
  9.       <CALL-TYPE>REQUEST_RESPONSE</CALL-TYPE>
  10.     </METHOD>
  11.   </METHODS>
  12. </ServiceInterface>
  13. <!-- 服务实例配置 -->
  14. <ServiceInstance>
  15.   <ENDPOINT-PORT>30490</ENDPOINT-PORT>
  16.   <MULTICAST-ADDRESS>239.255.10.1</MULTICAST-ADDRESS>
  17. </ServiceInstance>
复制代码
5. 数据管理与标定
ARXML文件支持车辆数据的标准化管理:


  • 标定参数:定义可标定变量(如发动机MAP图)的地址、数据范例和物理转换规则。
  • 诊断配置:配置UDS(ISO 14229)服务的DID(数据标识符)和DTC(故障码)。
  • 传感器/执行器接口:描述ECU与物理设备的信号接口(如ADC采样精度、PWM频率)。
示例
  1. <!-- 标定参数定义 -->
  2. <CALPRM>
  3.   <SHORT-NAME>Engine_TorqueLimit</SHORT-NAME>
  4.   <PHYSICAL-TYPE>uint16</PHYSICAL-TYPE>
  5.   <SCALE>0.1</SCALE> <!-- 物理值 = 原始值 × 0.1 -->
  6.   <UNIT>Nm</UNIT>
  7.   <ADDRESS>0x80001000</ADDRESS> <!-- ECU内存地址 -->
  8. </CALPRM>
复制代码
6. 自动化代码生成与集成
ARXML文件是AUTOSAR工具链的输入,驱动以下自动化流程:


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

  • 计划工具:ETAS ISOLAR、Vector PREEvision。
  • 代码生成器:EB Tresos、Matlab/Simulink。
  • 测试工具: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 (根包)
  2. ├── SHORT-NAME (包名称)
  3. ├── ELEMENTS (包含所有主要元素)
  4. │   ├── AR-PACKAGE (子包,可嵌套)
  5. │   ├── ECU-EXTRACT (ECU 提取定义)
  6. │   ├── SYSTEM (系统描述)
  7. │   ├── ECU-INSTANCE (ECU 实例)
  8. │   ├── COMPOSITION (组件组合)
  9. │   ├── COMPONENT-PROTOTYPE (组件原型)
  10. │   ├── CLIENT-SERVER-INTERFACE (客户端-服务端接口)
  11. │   ├── SENDER-RECEIVER-INTERFACE (发送者-接收者接口)
  12. │   ├── SOFTWARE-COMPONENT-TYPE (软件组件类型)
  13. │   ├── IMPLEMENTATION-DATA-TYPE (实现数据类型)
  14. │   ├── APPLICATION-PRIMITIVE-DATA-TYPE (应用原始数据类型)
  15. │   ├── APPLICATION-COMPOSITE-DATA-TYPE (应用复合数据类型)
  16. │   ├── CONSTANT-SPECIFICATION (常量规范)
  17. │   ├── SIGNAL (信号定义)
  18. │   ├── SYSTEM-SIGNAL (系统信号)
  19. │   ├── SYSTEM-SIGNAL-GROUP (系统信号组)
  20. │   ├── DATA-TRANSFORMER (数据转换器)
  21. │   └── ... (其他元素)
  22. └── ADMIN-DATA (管理数据)
复制代码

  • 主要分支详细解析:


  • 软件组件 (Software Component)
  1. SOFTWARE-COMPONENT-TYPE
  2. ├── SHORT-NAME
  3. ├── PORTS
  4. │   ├── P-PORT-PROTOTYPE (提供端口)
  5. │   │   ├── SHORT-NAME
  6. │   │   ├── PROVIDED-INTERFACE-TREF (引用接口)
  7. │   │   └── ...
  8. │   └── R-PORT-PROTOTYPE (需求端口)
  9. │       ├── SHORT-NAME
  10. │       ├── REQUIRED-INTERFACE-TREF
  11. │       └── ...
  12. ├── INTERNAL-BEHAVIORS (内部行为)
  13. │   ├── SHORT-NAME
  14. │   ├── EVENTS
  15. │   │   ├── INIT-EVENT (初始化事件)
  16. │   │   ├── TIMING-EVENT (定时事件)
  17. │   │   ├── DATA-RECEIVE-EVENT (数据接收事件)
  18. │   │   ├── OPERATION-INVOKED-EVENT (操作调用事件)
  19. │   │   └── MODE-SWITCH-EVENT (模式切换事件)
  20. │   ├── RUNNABLES (可运行实体)
  21. │   │   ├── SHORT-NAME
  22. │   │   ├── CAN-BE-INVOKED-CONCURRENTLY (并发调用标志)
  23. │   │   ├── MINIMUM-START-INTERVAL (最小启动间隔)
  24. │   │   └── ...
  25. │   └── ...
  26. └── ...
复制代码


  • 数据范例 (Data Types)
  1. IMPLEMENTATION-DATA-TYPE
  2. ├── SHORT-NAME
  3. ├── CATEGORY (类型类别: VALUE, ARRAY, RECORD, UNION)
  4. ├── SW-DATA-DEF-PROPS (软件数据定义属性)
  5. │   ├── SW-CALIBRATION-ACCESS (标定访问权限)
  6. │   ├── SW-IMPL-POLICY (实现策略)
  7. │   └── ...
  8. ├── SUB-ELEMENTS (子元素,适用于复合类型)
  9. │   ├── ARRAY-TYPE (数组类型)
  10. │   │   ├── ELEMENT (数组元素)
  11. │   │   ├── INDEX-DATA-TYPE (索引数据类型)
  12. │   │   └── SIZE-HANDLING (大小处理)
  13. │   └── RECORD-TYPE (记录类型)
  14. │       ├── ELEMENTS (记录元素)
  15. │       └── ...
  16. └── ...
复制代码


  • 接口 (Interfaces)
  • 客户端-服务端接口 (Client-Server Interface)
  1. CLIENT-SERVER-INTERFACE
  2. ├── SHORT-NAME
  3. ├── IS-SERVICE (是否为服务接口)
  4. ├── OPERATIONS (操作)
  5. │   ├── SHORT-NAME
  6. │   ├── ARGUMENTS (参数)
  7. │   │   ├── DIRECTION (IN, OUT, INOUT)
  8. │   │   ├── TYPE-TREF (类型引用)
  9. │   │   └── ...
  10. │   ├── POSSIBLE-ERROR-REFS (可能的错误引用)
  11. │   └── ...
  12. └── ...
复制代码


  • 发送者-接收者接口 (Sender-Receiver Interface)
  1. SENDER-RECEIVER-INTERFACE
  2. ├── SHORT-NAME
  3. ├── DATA-ELEMENTS (数据元素)
  4. │   ├── SHORT-NAME
  5. │   ├── TYPE-TREF (类型引用)
  6. │   ├── IS-QUEUED (是否排队)
  7. │   └── ...
  8. └── ...
复制代码


  • 2.4 ECU 配置 (ECU Configuration)
  1. ECU-EXTRACT
  2. ├── SHORT-NAME
  3. ├── CONTAINERS (容器)
  4. │   ├── ECU-CONFIG (ECU 配置)
  5. │   │   ├── SHORT-NAME
  6. │   │   ├── ECU-VARIANT (ECU 变体)
  7. │   │   ├── MEMORY-MAPPINGS (内存映射)
  8. │   │   └── ...
  9. │   └── ...
  10. ├── MODULE-CONFIGS (模块配置)
  11. │   ├── COM-CONFIG (通信配置)
  12. │   ├── OS-CONFIG (操作系统配置)
  13. │   ├── BSW-MODULE-CONFIG (基础软件模块配置)
  14. │   └── ...
  15. └── ...
复制代码


  • 体系描述 (System Description)
  1. SYSTEM
  2. ├── SHORT-NAME
  3. ├── COMMUNICATION (通信)
  4. │   ├── SIGNAL-TO-PDU-MAPPINGS (信号到PDU映射)
  5. │   ├── PDU-TO-FRAME-MAPPINGS (PDU到帧映射)
  6. │   └── ...
  7. ├── ECUS (ECU实例)
  8. │   ├── SHORT-NAME
  9. │   ├── COMMUNICATION-CONNECTORS (通信连接器)
  10. │   └── ...
  11. ├── SIGNALS (信号)
  12. │   ├── SHORT-NAME
  13. │   ├── DATA-TYPE-POLICY (数据类型策略)
  14. │   └── ...
  15. └── ...
复制代码


  • 典型 ARXML 文件层次结构示例:
  1. AUTOSAR (根元素)
  2. ├── AR-PACKAGES (包集合)
  3. │   ├── AR-PACKAGE (包1, 如ServiceInterfaces)
  4. │   │   ├── SHORT-NAME: "ServiceInterfaces"
  5. │   │   ├── ELEMENTS
  6. │   │   │   ├── SERVICE-INTERFACE (服务接口)
  7. │   │   │   │   ├── SHORT-NAME: "VehicleSpeedService"
  8. │   │   │   │   ├── SERVICE-ID: 0x1234
  9. │   │   │   │   ├── METHODS (方法)
  10. │   │   │   │   │   └── CLIENT-SERVER-OPERATION
  11. │   │   │   │   │       ├── SHORT-NAME: "GetSpeed"
  12. │   │   │   │   │       ├── METHOD-ID: 0x0101
  13. │   │   │   │   │       └── CALL-TYPE: "REQUEST_RESPONSE"
  14. │   │   │   │   └── EVENTS (事件)
  15. │   │   │   │       └── EVENT
  16. │   │   │   │           ├── SHORT-NAME: "SpeedUpdate"
  17. │   │   │   │           └── EVENT-ID: 0x0201
  18. │   │   │   └── ... (其他服务接口)
  19. │   │   └── AR-PACKAGE (子包, 可选)
  20. │   │
  21. │   ├── AR-PACKAGE (包2, 如DataTypes)
  22. │   │   ├── SHORT-NAME: "DataTypes"
  23. │   │   ├── ELEMENTS
  24. │   │   │   ├── IMPLEMENTATION-DATA-TYPE (数据类型)
  25. │   │   │   │   ├── SHORT-NAME: "UInt16"
  26. │   │   │   │   └── BIT-SIZE: 16
  27. │   │   │   └── IMPLEMENTATION-DATA-TYPE (结构体)
  28. │   │   │       ├── SHORT-NAME: "EngineStatus"
  29. │   │   │       ├── CATEGORY: "STRUCTURE"
  30. │   │   │       └── SUB-ELEMENTS (成员)
  31. │   │
  32. │   ├── AR-PACKAGE (包3, 如ECUs)
  33. │   │   ├── SHORT-NAME: "ECUs"
  34. │   │   ├── ELEMENTS
  35. │   │   │   └── ECU-INSTANCE (ECU实例)
  36. │   │   │       ├── SHORT-NAME: "EngineECU"
  37. │   │   │       ├── MAC-ADDRESS: "00:12:34:56:78:9A"
  38. │   │   │       └── ETHERNET-INTERFACES (以太网接口)
  39. │   │
  40. │   └── AR-PACKAGE (包4, 如Communication)
  41. │       ├── SHORT-NAME: "Communication"
  42. │       ├── ELEMENTS
  43. │       │   ├── ETHERNET-FRAME (以太网帧)
  44. │       │   │   ├── SHORT-NAME: "Speed_Frame"
  45. │       │   │   └── FRAME-ID: 0x1001
  46. │       │   ├── I-SIGNAL-I-PDU (PDU)
  47. │       │   │   ├── SHORT-NAME: "Speed_PDU"
  48. │       │   │   └── SIGNAL-TO-PDU-MAPPING (信号映射)
  49. │       │   └── I-SIGNAL (信号)
  50. │       │       ├── SHORT-NAME: "Speed_Signal"
  51. │       │       └── LENGTH: 16
  52. │       └── ...
  53. └── ... (其他全局配置)
复制代码
关键结构阐明:

  • 根节点:<AUTOSAR>

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

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


  • http://autosar.org/schema/r4.0 (根据版本差别而厘革)
  • http://autosar.org/schema/implementationDataTypes
  • http://autosar.org/schema/applicationDataTypes
版本信息通常在根元素中指定:
  1. <AUTOSAR xsi:schemaLocation="http://autosar.org/schema/r4.0 AUTOSAR_4-0-3.xsd"
  2.          xmlns="http://autosar.org/schema/r4.0"
  3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
复制代码

  • 包(AR-PACKAGE)

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

  • 元素(ELEMENTS)

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

  • 引用机制

    • 通过<REF>标签跨包引用元素(如<DATA-TYPE-REF DEST="IMPLEMENTATION-DATA-TYPE">/DataTypes/UInt16</DATA-TYPE-REF>
      )。

示例:服务接口与PDU的引用关系
  1. ServiceInterfaces (包)
  2. └── SERVICE-INTERFACE
  3.     ├── METHOD
  4.     │   └── INPUT-ARGUMENTS
  5.     │       └── ARGUMENT
  6.     │           └── DATA-TYPE-REF -> /DataTypes/UInt16
  7.     └── EVENT
  8.         └── DATA-TYPE-REF -> /DataTypes/UInt16
  9. Communication (包)
  10. └── I-SIGNAL-I-PDU
  11.     └── SIGNAL-TO-PDU-MAPPING
  12.         └── I-SIGNAL-REF -> /Signals/Speed_Signal
复制代码
计划原则

  • 模块化:按功能拆分为独立包(如Services、Network、ECUs)。
  • 唯一标识:所有ID(SERVICE-ID、METHOD-ID)需全局唯一。
  • 可读性:通过SHORT-NAME和注释阐明元素用途。
  • 兼容性:版本升级时保存旧字段,避免破坏现有通信。
通过此结构树,可快速定位ARXML文件中的配置模块,理解元素间的层级和引用关系。
2.3 TAG(XML元素)

在ARXML文件中,TAG(XML元素)的范例由AUTOSAR元模型(Meta-Model)严格定义,用于描述汽车电子体系的各个构成部分。以下是ARXML文件中所有常见TAG范例的分类及详细阐明,涵盖从顶层结构到具体配置的完整体系:
1. 顶层结构标签
TAG名称用途示例<AUTOSAR>根元素,声明命名空间和XSD引用xml <AUTOSAR xmlns="http://autosar.org/schema/r4.0"><AR-PACKAGES>包含所有功能包的容器xml <AR-PACKAGES>...</AR-PACKAGES><AR-PACKAGE>单个功能包,通过UUID和SHORT-NAME标识xml <AR-PACKAGE UUID="a1b2c3d4">...</AR-PACKAGE> 2. 元数据与管理标签
TAG名称用途示例<ADMIN-DATA>文件管理信息(版本、语言等)xml <ADMIN-DATA><LANGUAGE>EN</LANGUAGE>
</ADMIN-DATA><DOC-REVISIONS>文档修订汗青xml <DOC-REVISIONS><DOC-REVISION><REVISION-LABEL>1.0.0</REVISION-LABEL></DOC-REVISION></DOC-REVISIONS><USED-LANGUAGES>声明支持的多语言xml <USED-LANGUAGES><L-2 L="EN"/></USED-LANGUAGES> 3. 通信与网络相关标签
TAG名称用途示例<COMMUNICATION-CLUSTER>定义通信协议(CAN/LIN/Ethernet)xml <COMMUNICATION-CLUSTER><SHORT-NAME>CAN_Cluster</SHORT-NAME></COMMUNICATION-CLUSTER><DU>协议数据单元(信号组)xml <DU><SHORT-NAME>EngineData</SHORT-NAME></PDU><SIGNAL>单个信号定义xml <SIGNAL><SHORT-NAME>RPM</SHORT-NAME></SIGNAL><I-SIGNAL>接口信号(ECU间通信)xml <I-SIGNAL><SHORT-NAME>BrakePressure</SHORT-NAME></I-SIGNAL> 4. ECU配置与软件组件标签
TAG名称用途示例<ECUC-MODULE-DEF>ECU模块定义(软件组件)xml <ECUC-MODULE-DEF><SHORT-NAME>CanDriver</SHORT-NAME></ECUC-MODULE-DEF><ECUC-CONTAINER-VALUE>容器实例(配置参数集合)xml <ECUC-CONTAINER-VALUE><SHORT-NAME>CanConfig</SHORT-NAME></ECUC-CONTAINER-VALUE><ARAMETER-VALUES>参数值容器xml <ARAMETER-VALUES><INTEGER-VALUE><VALUE>100</VALUE></INTEGER-VALUE></PARAMETER-VALUES> 5. 服务与数据转换标签
TAG名称用途示例<SERVICE-INTERFACE>SOA服务接口定义xml <SERVICE-INTERFACE><SHORT-NAME>DiagnosticService</SHORT-NAME></SERVICE-INTERFACE><DATA-TRANSFORMATION-SET>数据转换规则集合(如信号编码/解码)xml <DATA-TRANSFORMATION-SET UUID="..."><SHORT-NAME>SignalEncoder</SHORT-NAME></DATA-TRANSFORMATION-SET><TRANSFORMER-CHAIN>数据转换步骤链xml <TRANSFORMER-CHAIN><SHORT-NAME>CanToEth</SHORT-NAME></TRANSFORMER-CHAIN> 6. 多语言支持标签
TAG名称用途示例<DESC>多语言描述容器xml <DESC><L-2 L="EN">Description</L-2></DESC><L-2>短文本(名称、标签)xml <L-2 L="EN">EngineSpeed</L-2><L-10>长文本(详细阐明、文档)xml <L-10 L="EN">This is a detailed description...</L-10> 7. 引用与依靠标签
TAG名称用途示例<ECUC-REFERENCE>引用其他元素(通过UUID或路径)xml <ECUC-REFERENCE DEST="ECUC-MODULE-DEF"><TARGET-REF>/Path/To/Element</TARGET-REF></ECUC-REFERENCE><VARIATION-POINT>条件编译或变体配置xml <VARIATION-POINT><ECUC-CONFIGURATION-VARIANT COND="DEBUG_MODE">...</ECUC-CONFIGURATION-VARIANT></VARIATION-POINT> 8. 特殊用途标签
TAG名称用途示例<LACEHOLDER>标记未完成的配置xml <LACEHOLDER><DEFINITION-REF>/ECUC/Placeholders/Unassigned</DEFINITION-REF></PLACEHOLDER><BINARY-FILE>嵌入二进制文件(如校准数据)xml <BINARY-FILE><SHORT-NAME>Calibration.bin</SHORT-NAME></BINARY-FILE> 关键总结

  • 严格分层:ARXML接纳树状结构,从<AUTOSAR>根元素到具体配置逐级展开。
  • 工具链依靠:所有TAG需符合AUTOSAR XSD规范,否则工具(如Vector PREEvision)会报错。
  • 多语言支持:通过<L-2>/<L-10>和<USED-LANGUAGES>实现国际化。
  • 唯一标识:UUID和SHORT-NAME确保元素可被唯一引用。
    如需完整标签列表,请参考对应AUTOSAR版本的官方XSD文件(如AUTOSAR_4-2-2.xsd)。
2.4 ARXML文件关键元素解析

2.4.1 XML声明与处理指令

元素<?xml ?> - XML声明
作用:定义XML文档的根本属性,是每个ARXML文件必须的开头部分
完整语法
  1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
复制代码
参数详解


  • 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" 处理。

使用规范

  • 必须出现在文件第一行
  • 前面不能有任何字符(包罗空格)
  • 在ARXML中必须指定UTF-8编码
注意事项


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

元素: <!-- --> - 注释
作用:为ARXML文件添加人类可读的解释阐明
语法规则
  1. <!--
  2.   多行注释示例:
  3.   这里可以包含任何说明文字,
  4.   但不能包含"--"或结束标记
  5. -->
复制代码
特殊限制


  • 不能嵌套注释
  • 内容中不能包含连续两个连字符"–"
  • 不能出现在标签内部(如<tag <!--错误--> >)
2.4.3 XML声明与根元素



  • 必须声明根元素 <AUTOSAR>,并指定命名空间和XSD验证。
  • 命名空间:xmlns 定义AUTOSAR标准的版本(如R4.0、R21-11)。
  • XSD引用:xsi:schemaLocation 指向对应的XSD架构文件,用于语法验证。
4.4.3.1 xmlns(默认命名空间)



  • 作用:定义XML元素的默认命名空间,确保元素归属明确,所有未显式指定前缀的元素均属于此命名空间。
  • ARXML示例
    1. <AUTOSAR xmlns="http://autosar.org/schema/r4.0">
    2.   <!-- 所有子元素默认属于AUTOSAR R4.0命名空间 -->
    3.   <AR-PACKAGE>...</AR-PACKAGE>
    4. </AUTOSAR>
    复制代码
  • 关键点

    • 命名空间URI(如http://autosar.org/schema/r4.0)唯一标识AUTOSAR版本。
    • 差别AUTOSAR版本需对应差别URI(如R21-11为http://autosar.org/schema/r4.0)。

AUTOSAR命名空间版本对照表:
AUTOSAR版本命名空间URIR4.0http://autosar.org/schema/r4.0R4.1http://autosar.org/schema/r4.1R4.2http://autosar.org/schema/r4.2R21-11http://autosar.org/schema/r4.0(同R4.2) 4.4.3.2 xmlns:xsi(XML Schema实例命名空间)



  • 作用:声明XML Schema实例(XML Schema Instance)的命名空间前缀(通常为xsi),用于关联XSD文件,启用XML Schema实例功能。
  • 示例
    1. <AUTOSAR xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    2.   <!-- 使用xsi前缀引用Schema实例属性 -->
    3. </AUTOSAR>
    复制代码
  • 前缀约定

    • xsi 是通用前缀,不可自定义。
    • 用于后续的schemaLocation属性。

4.4.3.3 xsi:schemaLocation(XSD文件关联)



  • 作用:指定命名空间对应的XSD架构文件路径,供解析器验证XML结构,实现语法验证。
  • 语法:xsi:schemaLocation="命名空间URI XSD文件路径"
    (多个命名空间可依次列出,用空格分隔)
  • ARXML示例
    1. <AUTOSAR
    2.   xmlns="http://autosar.org/schema/r4.0"
    3.   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4.   xsi:schemaLocation="http://autosar.org/schema/r4.0 AUTOSAR_4-0-3.xsd"
    5. >
    复制代码

    • 表示 http://autosar.org/schema/r4.0 命名空间的XSD文件为 AUTOSAR_4-0-3.xsd。

  • 关键点

    • XSD文件需与XML文件在相同目录,或通过绝对/相对路径指定。
    • 若XSD文件未找到,工具链(如Vector PREEvision)会报错。

完整ARXML根元素示例:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <AUTOSAR
  3.   xmlns="http://autosar.org/schema/r4.0"              <!-- 默认命名空间 -->
  4.   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <!-- Schema实例前缀 -->
  5.   xsi:schemaLocation="http://autosar.org/schema/r4.0 AUTOSAR_4-2-2.xsd" <!-- XSD关联 -->
  6. >
  7.   <AR-PACKAGES>
  8.     <AR-PACKAGE>
  9.       <SHORT-NAME>ECU_Config</SHORT-NAME>
  10.     </AR-PACKAGE>
  11.   </AR-PACKAGES>
  12. </AUTOSAR>
复制代码

2.4.4 ADMIN-DATA元素

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

  • 文档创建和修改汗青
  • 工具链信息
  • 配置管理数据
ADMIN-DATA 的典型结构:
ADMIN-DATA 通过 <SDGS>(Structured Data Group Set)定义多个结构化数据组(<SDG>),每个组通过 GID(Group ID)标识数据范例,并通过 <SD>(Structured Data)存储具体值。
完整结构
  1. <ADMIN-DATA>
  2.   <SDGS>
  3.     <!-- 文档标识信息 -->
  4.     <SDG GID="Docu">
  5.       <SD>ECU Configuration</SD>
  6.     </SDG>
  7.    
  8.     <!-- 版本控制 -->
  9.     <SDG GID="Revision">
  10.       <SD>4.3.0</SD>
  11.     </SDG>
  12.    
  13.     <!-- 创建信息 -->
  14.     <SDG GID="Created">
  15.       <SD>2023-11-20T09:30:00</SD>
  16.       <SDG GID="By">
  17.         <SD>John.Doe@company.com</SD>
  18.       </SDG>
  19.     </SDG>
  20.    
  21.     <!-- 工具信息 -->
  22.     <SDG GID="Tool">
  23.       <SD>Vector PREEvision 6.0</SD>
  24.       <SDG GID="Settings">
  25.         <SD>CodeGen=Autosar4.2</SD>
  26.       </SDG>
  27.     </SDG>
  28.   </SDGS>
  29. </ADMIN-DATA>
复制代码
SDG参数详解


  • GID(必需):分组标识符,常见值:

    • “Created”:创建时间
    • “Modified”:修改记录
    • “Tool”:生成工具
    • “Revision”:版本号
    • “Owner”:所有者

  • SD:实际数据内容,可以是嵌套结构
常见 GID 范例与用途:
GID阐明示例值author元素创建或修改的作者。Alice BrowncreationDate元素的创建时间(ISO 8601 格式)。2023-10-05T08:00:00ZmodifiedDate元素的末了修改时间。2023-10-06T09:15:00ZmodifiedHistory修改汗青记录(多行文本)。2023-10-05: Initial creationtool生成或修改该元素的工具名称及版本。ETAS ISOLAR-A 4.3.0version元素的版本号(遵循语义化版本规范)。1.2.0comment自定义注释或描述。Added new event for fault codes 最佳实践

  • 至少应包含创建时间和工具信息
  • 使用ISO 8601格式记录时间戳
  • 对紧张修改保存汗青记录
2.4.5 语言相关元素

元素: <LANGUAGE>
作用:声明文档的默认内容语言
语法用法
  1. <LANGUAGE>EN</LANGUAGE>
复制代码
语言代码规范


  • 必须使用ISO 639-1双字母代码
  • 常见值:EN(英语)、DE(德语)、JA(日语)、ZH(中文)
元素 <USED-LANGUAGE>
作用:声明文档中实际使用的所有语言
语法
  1. <USED-LANGUAGES>
  2.   <USED-LANGUAGE>EN</USED-LANGUAGE>
  3.   <USED-LANGUAGE>DE</USED-LANGUAGE>
  4. </USED-LANGUAGES>
复制代码
规则

  • 必须包含<LANGUAGE>中指定的默认语言
  • 按使用频率排序
  • 每个语言代码只能出现一次
元素 <L-10>
作用:提供多语言文本内容
完整语法
  1. <L-10
  2.   L="EN"
  3.   xml:space="preserve|default"
  4.   xmlns:xhtml="http://www.w3.org/1999/xhtml"
  5. >
  6.   文本内容
  7. </L-10>
复制代码
参数详解


  • L(必需):ISO 639-1语言代码
  • xml:space(可选):空缺处理方式

    • “preserve”:保存所有空缺字符
    • “default”:按XML规范处理空缺

  • xmlns:xhtml(可选):允许嵌入XHTML标记
与其他多语言标签的对比:
标签范例用途示例<L-2>短文本(名称、简短描述)<L-2 L="EN">CAN Signal</L-2><L-10>长文本(详细阐明、文档)如上文示例<L-4>中等长度文本(如错误消息)较少使用 典型应用
  1. <DESCRIPTION>
  2.   <L-10 L="EN" xml:space="preserve">
  3.     Engine control module (ECM) manages
  4.     the fundamental engine parameters.
  5.   </L-10>
  6.   <L-10 L="DE">
  7.     Das Motorsteuergerät (ECM) verwaltet
  8.     die grundlegenden Motorparameter.
  9.   </L-10>
  10. </DESCRIPTION>
复制代码
2.4.6 AR-PACKAGE体系结构

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


  • 必须是<AUTOSAR>元素的直接子元素
  • 可以包含多个<AR-PACKAGE>
  • 在模块化ARXML中可能被拆分到多个文件,用于模块化计划(如按功能划分:通信、诊断、ECU配置等)。
元素 <AR-PACKAGE>
作用:AUTOSAR元素的主要构造单元
完整语法
  1. <AR-PACKAGES>
  2.   <!-- 顶层包 -->
  3.   <AR-PACKAGE UUID="d8a3f1e0-7b3a-11ed-a1eb-0242ac120002">
  4.     <SHORT-NAME>ServiceInterfaces</SHORT-NAME>
  5.     <ELEMENTS>
  6.       <!-- 包内元素 -->
  7.     </ELEMENTS>
  8.     <!-- 子包 -->
  9.     <AR-PACKAGE>
  10.       <SHORT-NAME>SubPackage</SHORT-NAME>
  11.       ...
  12.     </AR-PACKAGE>
  13.   </AR-PACKAGE>
  14. </AR-PACKAGES>
复制代码
关键子元素

  • UUID:唯一标识符(保举使用URN格式)
  • SHORT-NAME:包名称(遵循AUTOSAR命名规则)
  • ELEMENTS:包含实际AUTOSAR元素
UUID生成规范


  • 必须符合RFC 4122标准
  • 保举格式:urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  • 生成工具:应使用标准UUID生成算法
2.4.7 元素 (ELEMENT) 与属性

元素表示 AUTOSAR 元模型中的对象(如服务、信号、ECU),通过属性定义其特性。
通用元素结构
  1. <ELEMENT-TYPE UUID="...">
  2.   <SHORT-NAME>ElementName</SHORT-NAME>
  3.   <PROPERTY-NAME>value</PROPERTY-NAME>
  4.   <REFERENCE DEST="TARGET-TYPE">/Path/To/Target</REFERENCE>
  5. </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 路径引用
  1. <DATA-TYPE-REF DEST="IMPLEMENTATION-DATA-TYPE">/DataTypes/UInt16</DATA-TYPE-REF>
复制代码


  • 路径格式: /Package/SubPackage/ElementName。
  • DEST: 指定目标元素的元模型范例(必须与目标匹配)。
示例
  1. <!-- 引用数据范例 --><DATA-TYPE-REF DEST="IMPLEMENTATION-DATA-TYPE">/DataTypes/UInt16</DATA-TYPE-REF>
  2. <!-- 引用PDU --><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 引用
  1. <ECU-INSTANCE-REF DEST="ECU-INSTANCE">d8a3f1e0-7b3a-11ed-a1eb-0242ac120002</ECU-INSTANCE-REF>
复制代码


  • 实用场景: 跨文件引用元素。
  • 要求: 目标元素必须在同一工程的其他 ARXML 文件中定义。
2.4.9 数据范例定义

通过 IMPLEMENTATION-DATA-TYPE 定义基础或复杂数据范例
基础范例
  1. <IMPLEMENTATION-DATA-TYPE UUID="...">
  2.   <SHORT-NAME>UInt16</SHORT-NAME>
  3.   <CATEGORY>VALUE</CATEGORY>
  4.   <BIT-SIZE>16</BIT-SIZE>
  5. </IMPLEMENTATION-DATA-TYPE>
复制代码


  • CATEGORY: VALUE(基础范例)、STRUCTURE(结构体)、ARRAY(数组)。
结构体范例
  1. <IMPLEMENTATION-DATA-TYPE UUID="...">
  2.   <SHORT-NAME>EngineStatus</SHORT-NAME>
  3.   <CATEGORY>STRUCTURE</CATEGORY>
  4.   <SUB-ELEMENTS>
  5.     <IMPLEMENTATION-DATA-TYPE-ELEMENT>
  6.       <SHORT-NAME>RPM</SHORT-NAME>
  7.       <TYPE-TREF DEST="IMPLEMENTATION-DATA-TYPE">/DataTypes/UInt16</TYPE-TREF>
  8.       <BYTE-POSITION>0</BYTE-POSITION>
  9.     </IMPLEMENTATION-DATA-TYPE-ELEMENT>
  10.   </SUB-ELEMENTS>
  11. </IMPLEMENTATION-DATA-TYPE>
复制代码


  • BYTE-POSITION: 结构体成员的起始字节位置(必须对齐)。
2.4.10 数据转换框架

元素 <DATA-TRANSFORMATIONS>
作用:容器元素,包含所有数据转换定义
结构要求
  1. <DATA-TRANSFORMATIONS>
  2.   <DATA-TRANSFORMATION-SET>...</DATA-TRANSFORMATION-SET>
  3.   <!-- 可包含多个SET -->
  4. </DATA-TRANSFORMATIONS>
复制代码
位置:通常位于<AR-PACKAGE>的<ELEMENTS>中
元素 <DATA-TRANSFORMATION-SET>
作用:定义一组数据转换规则(如信号编码/解码、单位转换等)
关键点


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


  • <SHORT-NAME>:转换集名称(如Transformer_Configuration)。
  • <TRANSFORMER-CHAIN-REFS>:引用具体的转换链(Transformer Chains)。
完整语法
  1. <DATA-TRANSFORMATION-SET UUID="e5f6g7h8-9012-3456-7890-abcdef123456">
  2.    <SHORT-NAME>Transformer_Configuration</SHORT-NAME>
  3.    <TRANSFORMER-CHAIN-REFS>...</TRANSFORMER-CHAIN-REFS>
  4. </DATA-TRANSFORMATION-SET>
复制代码
关键参数


  • UUID:必须全局唯一
  • SHORT-NAME:遵循UpperCamelCase命名惯例
元素 <TRANSFORMER-CHAIN-REFS>
作用:引用一个或多个转换链(Transformer Chains),定义数据转换的执行顺序。
典型子元素


  • <TRANSFORMER-CHAIN-REF>:指向具体的转换链(通过UUID或路径引用)。
应用场景


  • 比方:将CAN信号转换为以太网信号需要多个步骤(缩放、字节序转换等)。
详细结构
  1. <TRANSFORMER-CHAIN-REFS>
  2.   <TRANSFORMER-CHAIN-REF
  3.     DEST="TRANSFORMER-CHAIN"
  4.     DEST-NAME="SpeedConverterChain"
  5.   >/Transformers/SpeedProcessing</TRANSFORMER-CHAIN-REF>
  6. </TRANSFORMER-CHAIN-REFS>
复制代码
属性详解


  • DEST(必需):目标范例,固定为"TRANSFORMER-CHAIN"
  • DEST-NAME(可选):目标元素的SHORT-NAME
  • 内容:XPath格式的引用路径
2.4.11 SHORT-NAME命名规范

语法要求
  1. <SHORT-NAME>ValidName</SHORT-NAME>
复制代码
命名规则

  • 长度限制:1-128个字符
  • 允许字符:

    • 大写字母(A-Z)
    • 小写字母(a-z)
    • 数字(0-9)
    • 下划线(_)

  • 克制:

    • 开头或末端使用下划线
    • 连续两个下划线
    • 使用XML保存字符(<, >, &等)

行业惯例


  • 范例定义使用UpperCamelCase:EngineSpeedType
  • 实例命名使用lowerCamelCase:currentSpeed
  • 常量使用UPPER_SNAKE_CASE:MAX_SPEED_LIMIT
综合应用示例
  1. <?xml version="1.0" encoding="UTF-8"?><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>
  2.   <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文件以及以太网通信矩阵进行先容。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

南七星之家

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表