ARXML,您一定听说过
在进行基于AUTOSAR的开发时,最先接触到的文件格式就是ARXML。扩展名为.arxml的这种文件是AUTOSAR XML的缩写,是AUTOSAR标准中为数据交换而定义的基于XML的文件格式。
初次接触时看起来很复杂,但ARXML的作用很明确:定义车载软件架构、描述ECU配置、规范软件组件之间的接口。简单来说,可以将它理解为AUTOSAR世界中承载设计信息的通用容器。
为什么需要ARXML?
制造一辆汽车所涉及的组织远不止一两家。OEM、Tier1、Tier2以及各种工具供应商,这些组织各自使用不同的工具,但要想一致地交换设计信息,就需要一个通用格式。这个通用格式就是ARXML。
AUTOSAR联盟专门定义了ARXML序列化规则(AUTOSAR_TPS_ARXMLSerializationRules)。得益于这些规则,A公司工具创建的ARXML文件在B公司的工具中打开也能得到相同的解释,这正是工具间互操作性的基础。
举个例子:Tier1用ARXML定义软件组件的接口并交付给OEM。OEM接收这些ARXML文件,导入系统集成工具并反映到ECU配置中。在这个过程中不需要传递Excel或Word文档,因为这是一种机器可读的标准化格式。
ARXML文件包含哪些内容?
ARXML承载的信息范围相当广泛。主要内容整理如下。
软件架构
定义整个系统的软件结构。描述有哪些软件组件(SWC)、各组件通过哪些端口进行通信、组件之间的连接关系如何。
ECU配置(Configuration)
存储各ECU的配置信息,包括在每个ECU上部署哪些软件、如何进行内存映射、OS任务设置如何等。
通信协议
定义CAN、LIN、Ethernet等车载通信总线的配置和信号映射。描述哪些信号映射到哪些PDU、通过哪些帧进行传输。
软件组件接口
这是实际工作中最常处理的领域。包括端口定义(Provide Port、Require Port)、接口类型(Sender-Receiver、Client-Server)、数据类型定义等。
Runnable规范
定义软件组件内部执行的Runnable实体的规范。描述Runnable的执行周期、触发事件、I/O数据访问方式等。
状态管理(State Management)
定义模式管理和状态转换。例如,ECU的启动-运行-关闭状态转换、诊断模式切换等行为都通过ARXML来描述。
Classic Platform和Adaptive Platform的ARXML
AUTOSAR有Classic Platform(CP)和Adaptive Platform(AP)两个平台。两个平台都使用ARXML,但包含的内容有所不同。
Classic Platform的ARXML主要以静态配置为中心。由于所有配置在编译时确定,因此ECU配置、BSW(Basic Software)模块配置、RTE(Runtime Environment)配置等都有详细描述。R4.4.0和R4.3.1等不同发布版本的Schema略有不同。
Adaptive Platform的ARXML反映了面向服务的架构(SOA)。包括服务接口定义、清单(Manifest)配置等。例如,在Adaptive Platform上定义服务接口需要在ServiceInterface元素中描述方法、事件、字段,并将其与SOME/IP绑定配置连接。R20-11、R19-11、R19-03等发布版本各自支持不同的功能范围。
ARXML编辑为什么困难?
ARXML基于XML,所以可以用文本编辑器打开。但实际上几乎没有人这样操作,这是有原因的。
第一,单个文件的大小往往达到数千行甚至数万行。大型项目中需要同时管理数百个ARXML文件。
第二,AUTOSAR Schema的结构层次深且复杂。需要考虑XML命名空间、引用(Reference)关系、继承结构等。一个拼写错误就可能破坏整个配置。
第三,不同平台版本和发布版本的Schema各不相同。在CP R4.4.0中有效的结构在R4.3.1中可能无效。
因此,专用编辑工具是必不可少的。业界有多种广泛使用的商用ARXML编辑工具。
与Model-Based Design的结合
ARXML并非只能单独使用。可以将ARXML文件导入Simulink,用于模型基础设计(Model-Based Design)。将ARXML中定义的软件组件接口信息映射到Simulink模型的输入输出端口,再将模型生成的代码集成回AUTOSAR框架——这就是整个工作流程。
这种方式在控制算法开发中尤为常见。控制逻辑在Simulink中建模,软件架构和ECU配置则用ARXML管理。由于双方需要保持同步,ARXML的准确性直接关系到整个系统的正确性。
ARXML管理的现实挑战
随着项目的推进,ARXML管理的难度会不断增加。
版本管理问题:ARXML文件是文本格式而非二进制格式,因此可以用Git管理。但如果自动生成的XML标签顺序因工具不同而不同,即使没有实质性变更,diff也会产生大量差异。
引用完整性:当A.arxml引用了B.arxml中的元素,修改B.arxml时可能会导致引用断裂。文件数量增多后,手动追踪这些引用关系变得非常困难。
有效性验证:需要验证Schema有效性、引用有效性以及是否符合AUTOSAR规则。手动执行几乎是不可能的。
多供应商协作:当多个供应商同时修改同一系统的ARXML时,合并(merge)冲突会频繁发生。
高效ARXML工作的工具选择
ARXML工作的效率很大程度上取决于使用的工具。选择工具时需要考虑以下几点。
平台支持范围:需要确认工具是否仅支持Classic Platform,还是也支持Adaptive Platform。如果项目涉及两个平台,则需要同时支持两者的工具。
发布版本兼容性:必须确认工具是否支持您正在使用的AUTOSAR发布版本。
有效性验证功能:除了Schema验证之外,是否提供AUTOSAR语义规则级别的验证也很重要。
可访问性:工具是安装型还是Web端会影响团队的协作方式。Web端工具无需安装,可直接在浏览器中使用,更有利于协作。
AutoSAR.io:基于Web的ARXML编辑器
PopcornSAR的AutoSAR.io是专为ARXML编辑打造的工具。同时支持Classic Platform(R4.4.0、R4.3.1)和Adaptive Platform(R20-11、R19-11、R19-03),提供Easy Design和Directive Design两种设计模式。
在Easy Design模式下,即使不了解ARXML的复杂结构,也可以通过直观的UI定义软件组件和接口。在Directive Design模式下,可以进行直接操作ARXML Schema级别的详细编辑。内置的有效性验证功能可以实时检测编辑过程中产生的Schema错误和引用错误。
同时支持安装型和Web端,可根据项目环境灵活选择。
用AI缩短ARXML工作时间
ARXML编写中最耗时的部分是重复性的结构生成。需要创建数十个相似模式的软件组件,或按照通信矩阵逐一配置信号映射——这些工作大量消耗工程师的时间。
PopcornSAR的PAIO是一款利用AI自动化这些重复性工作的AUTOSAR设计工具。用自然语言输入需求,即可从Network Topology到BSW配置自动生成ARXML结构,还能分析现有ARXML文件以识别构成要素,并提供特定标签和配置的搜索功能。将原本需要6小时的ARXML生成工作缩短至30分钟,可减少70%以上的开发时间。
总结
ARXML是AUTOSAR开发的起点和核心轴。在软件开发流程中,从架构定义到ECU配置、通信协议、组件接口,所有设计信息都通过ARXML流转。准确编写并高效管理ARXML,直接决定了项目的质量和速度。
如果您想改善ARXML工作环境,请了解AutoSAR.io。如果您对基于AI的自动化感兴趣,请查看PAIO。如有具体问题,请通过咨询页面随时与我们联系。