ARXML = AR+XML
首先,让我们分解ARXML的名称:
AR:这代表了AUTOSAR(AUTomotive Open System ARchitecture),一个致力于为汽车行业提供开放且标准化的软件架构的全球性合作倡议。AUTOSAR的目标是通过定义一套通用的软件接口和架构,来促进不同供应商之间汽车电子控制单元(ECU)的开发和集成。
XML:全称为eXtensible Markup Language,即可扩展标记语言。它是一种基于文本的标记语言,旨在以一种易于理解和处理的方式来表示数据。XML的设计初衷是为了使数据的交换和共享变得更加容易,它允许开发者定义自己的标签(或“元素”)来精确地描述数据内容。这种灵活性使得XML成为了一种广泛应用于互联网和各种数据交换场景中的文本格式。
现在,让我们聚焦于ARXML:
ARXML文件:专为AUTOSAR标准设计的XML文件格式。它充分利用了XML的灵活性和可扩展性,为AUTOSAR架构下的汽车ECU开发提供了一种标准化的数据表示方式。ARXML文件通常用于描述ECU的软件架构、配置信息、通信接口(如CAN、LIN、FlexRay等)以及诊断数据等关键信息。
用途:在汽车ECU的开发过程中,ARXML文件扮演着至关重要的角色。它们不仅有助于开发者清晰地定义ECU的软件架构和配置,还促进了不同开发团队之间的协作和数据共享。此外,ARXML文件还为工具链中的自动化代码生成和配置管理提供了基础。
综上所述,ARXML作为一种专为AUTOSAR标准设计的XML文件格式,在汽车ECU开发中发挥着举足轻重的作用。它结合了AUTOSAR的开放性和标准化理念以及XML的灵活性和可读性优势,为汽车行业的软件开发和数据交换带来了极大的便利。
1. XML简介
XML,全称为EXtensible Markup Language,即可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言。XML文件因其跨平台性,不受特定编程语言或操作系统的限制,展现出极高的灵活性。它广泛应用于信息的记录和传递,是互联网数据传输的重要媒介,常被用作“配置文件”和“数据库”的存储格式。
1.1 XML文件格式详解
标签的自定义性
XML文件的一个显著特点是其标签的自定义性。与HTML等具有固定标签集的标记语言不同,XML允许开发者在遵循XML命名规则的前提下,根据实际需求自定义标签。这种灵活性使得XML能够适用于各种领域和场景,满足不同信息结构的表达需求。
根元素的重要性
在XML文件中,必须包含一个根元素。这个根元素扮演着所有其他元素的父元素角色,是整棵文档树的起点。它确保了XML文件的结构完整性和层次性。
文档树的构建
XML文件中的元素通过嵌套关系形成了一棵文档树。这棵树从根元素开始,逐步扩展到各个子元素,形成了一种层次分明的数据结构。每个元素都可以包含子元素,从而构建出复杂的信息结构。这种树状结构使得XML文件能够清晰地表示数据之间的层级和关联关系。
更好的描述
为了更好地理解XML文件格式,我们可以将其比作一棵精心设计的家族树。在这棵树上,根元素代表家族的始祖,而各个子元素则代表始祖的后代。每个元素都有其独特的名称(即标签),并可能包含其他子元素作为其后代。通过这棵家族树,我们可以清晰地看到家族成员之间的层级和关联关系,同样地,通过XML的文档树结构,我们也可以清晰地理解数据之间的层级和关联关系。这种结构化的表示方式使得XML文件在数据交换和共享方面具有极高的价值。
XML文件是树形结构
从上面的文件中可以看出,从根部到底端,有root-child-subchild和root-teacher-student两个分支。
我们再根据一个XML文档的示例,来介绍下XML的基本语法规则。
XML文档示例
第1行:XML声明
XML文件的声明部分必须放在第一行、第一列,在声明语句之前,不能有任何的空格和注释。
声明用于指定XML文档的版本和字符编码方式。其中,version通常是1.0,表示符合XML 1.0规范;encoding是指定文档的字符编码方式,例如"UTF-8"、"GB2312"或"ISO-8859-1"等。其中,"UTF-8"是一种非常常见的字符编码,能够表示包括中文在内的多种字符,编码信息不区分大小写。
第2行:根元素
元素是XML文档的基本构建块,它们由开始标签和结束标签构成,用于定义数据的内容和结构。即元素是由开始标签、元素内容和结束标签组成。
XML可以有多个元素,但是有且仅有一个根元素,根元素是指没有被其它元素包围的元素。
这里的根元素是books,开始标签是<books>、结束标签是</books>。
这里要注意的是XML中的标签区分大小写,对应的开始标签和结束标签必须大小写一致。
第3行:注释
注释的写法为:<!—注释内容-->,注释不像元素,它是不能嵌套使用。
第4行:属性
属性是一种用于提供关于元素的额外信息的机制,它们是附加在元素上的名称/值对,用于描述元素的特性。通常把不适合作为元素内容的数据作为属性,比如图书的编号。
此行中的id=”book_1”表示属性。属性也可以认为是针对该元素的另一种表示方式。
属性的格式由属性名称和属性值组成,属性值可以放在引号中(单引号或双引号),但这不是必需的,除非值包含空格或特殊字符。
第5~7行:元素
一个XML元素可以包含文本、属性、子元素或者它们的组合。元素是XML文档的核心组成部分,它们共同构成了文档的结构和内容。
实际的项目当中,第4~8行这部分经常是重复的。即在根元素下,可以存在多个并列的元素。
根元素下存在多个并列元素,如boot_1、boot_2
1.2 XSD简介
XML的格式一般使用DTD和XSD(XML Schema)来定义语义约束。比如ARXML文件就是使用XSD进行约束。
XSD是XML Schema Definition的缩写,表示XML结构定义。它是DTD的替代者,不仅可以定义XML文档的结构,还可以规范XML文档的内容。
XML Schema(XML模式)是一种用于定义XML文档结构和内容的语言。它的主要作用包括:
定义结构:XML Schema可以详细描述XML文档的结构,包括元素和属性的顺序、数量、数据类型等。例如,它可以规定某个元素必须包含哪些子元素,或者某个属性必须是整数。
数据验证:通过XML Schema,可以验证XML文档是否符合预期的结构和规则。这有助于确保数据的完整性和一致性。例如,如果一个XML文档声明它遵循某个Schema,那么解析器可以检查文档是否符合该Schema的定义。
数据类型支持:XML Schema支持多种数据类型(如字符串、整数、日期等),这使得XML文档可以包含更丰富和精确的数据描述。
文档交换:在不同系统之间交换数据时,XML Schema提供了一种标准化的方法来描述数据格式,从而确保不同系统能够正确理解和处理数据。
文档生成:开发者可以根据XML Schema自动生成XML文档的模板,简化文档的创建过程。
总的来说,XML Schema在确保XML文档的正确性和一致性方面起着关键作用,是XML技术体系中的重要组成部分。
XSD本身也是XML文档。 XSD采用XML文档来定义语义约束,比DTD要复杂一些,但是功能强大的多。它可以定义如下内容:
- 定义可出现在文档中的元素;
- 定义可出现在文档中的属性;
- 定义哪个元素是子元素;
- 定义子元素的次序;
- 定义子元素的数目;
- 定义元素是否为空,或者是否可包含文本;
- 定义元素的数据类型;
- 定义元素和属性的默认值以及固定值。
简单来说,XSD是定义XML数据格式的规范,而XML则是遵循这个规范生成的数据文档。
XSD文件本身是也一个XML文档,它符合XML语法结构,可以用通用的XML解析器来解析。
.xsd文件示例
2.ARXML文件简介
了解了XML文件的基本格式,再去理解ARXML文件就比较容易了。由于ARXML文件是基于XML文件格式制定的,所以与XML一样,ARXML文件同样具有可读性强、易于维护和跨平台等优点。
只是ARXML是专门为汽车电子软件系统的配置和架构描述而设计的,用在AUTOSAR架构的软件中,因此它的元素都是关于汽车软件系统中的各种元素,如软件组件、接口、数据类型和配置参数等信息。
在汽车软件系统中,ARXML是一个通用的配置/数据库文件,主要用于ECU之间的通信。
用在汽车ECU中的ARXML文件,我们称之为ECU.arxml描述文件。ECU.arxml描述文件即是ECU 参数定义文件 (Parameter Definition file)。基于.arxml文件,就可以利用第三方提供的配置工具,将该文件作为输入导入配置工具进行相关的配置.
比如:将BMS控制器的.arxml导入Vector的DavinciDeveloper软件中,可以自动生成相关的配置,全部配置好后即可生成代码文件,这样就可以免去手写代码的时间,提高开发效率。
2.1 ARXML文件类型
针对AUTOSAR开发,共有五种类型的ARXML,分别为
- System Configuration
- ECU Extract
- ECU Configuration
- SWC Description
- BSW Module Description
ARXML在系统开发中可分为5种类型
- System Configuration包含多个ECU的描述信息,它描述的是ECU之间的发送或接收信息以及跨ECU组件的接口和端口描述信息,另外还包含ECU的硬件资源信息。System Configuration从整车系统的角度描述ECU之间的交互信息。
- ECU Extract属于System Configuration的子集,它描述单个ECU发送或接收的信息,同样它包含了单个ECU内部包含的SWC以及SWC的详细信息,如接口定义和port定义等,ECU Extract与我们当前使用的通讯矩阵一致。
- ECU Configuration属于单个ECU范畴,它描述了SWC Description、ECU Extract和BSW模块等配置之后所有的信息。
- SWC Description描述了所有用户自定义的设计信息,包含SWC定义、运行实体、接口、端口数据类型的定义。
- BSW Module Description属于标准模块信息,模块信息与代码包有关,不同供应商可能存在差异,但都符合AUTOSAR标准定义。
2.2.ARXML文件示例
下面我们通过AUTOSAR CP中的ECU configuration文件规范示例来大致了解下.arxml文件中的内容。
ARXML文件示例
示例中标注的内容定义的是ADC模数转换模块的配置参数。在实际项目中,一般是不需要详细查阅ARXML文件的,只需要大致了解格式规则即可。
3.ARXML文件的主要应用场景
ARXML文件的在汽车中的用途很广泛,比如传统汽车软件开发中常用的CAN通讯数据库dbc文件,诊断数据库CDD或ODX文件都可以采用ARXML文件格式来替代。ARXML还可以制作成符合XCP标定协议的数据库文件。
在基于模型的开发方式中,可以在simulink中导入ARXML文件,生成应用模型和代码。
也可以先在Simulink中先搭建满足AUTOSAR标准配置的模型,再生成Arxml文件,生成的文件可以集成到其它AUTOSAR运行环境中。
在ECU的功能测试中,在测试工具(如Vector的CANOE)中导入ARXML文件后,可以建立测试工程。
ARXML文件是专业服务于AUTOSAR软件的开发,因此在需要符合AUTOSAR标准的软件开发中会经常用到。
AUTOSAR的CanIf层,NVM模块或者IOHWAB等BSW模块都需要依赖MCAL底层驱动设备的详细信息,需要将MCAL中的ARXML导入到BSW配置工程中,以便BSW模块能获取到相关MCAL驱动设备索引等信息,常见的应用场景如下:
1)CAN驱动中的Mailbox ID需要与CAN If层建立Mapping关系;
2)如果模拟EEPROM功能的Fee模块位于MCAL中,那么位于BSW配置工具中的NVM模块就需要与Fee模块的Block块之间建立映射关系;
3)如果使用到BSW模块中的IoHwAb,那么Dio,Adc,PWM等驱动的索引就需要被IoHwAb用到。
总之,由于MCAL层需要与BSW模块的硬件抽象层交换信息,因此在BSW配置工具中就必须要通过ARXML来传递此类信息。
4.小结
ARXML文件,作为汽车电子系统开发中的核心文档,其重要性不言而喻。它不仅深刻体现了AUTOSAR标准的精髓,更是汽车电子系统软件和硬件架构描述的得力助手。
在系统架构设计的初级阶段,ARXML文件便发挥着举足轻重的作用。它协助开发者明确系统的各项需求、功能以及所需提供的服务,进而精心构建和配置ECU(电子控制单元)的服务接口、互通性、软件组件以及SWC(软件组件)端口等关键要素。这一过程中,ARXML文件仿佛是一位精准的导航者,引领着开发者在系统设计的海洋中稳健前行。
步入软件开发阶段,ARXML文件的价值更是得到了淋漓尽致的展现。它不仅是代码框架生成的得力助手,更是软件详细设计不可或缺的参考依据。开发者可以依据ARXML文件中的标准化描述,轻松生成符合AUTOSAR标准的代码框架,从而大幅提升开发效率和质量。
更为值得一提的是,ARXML文件所具备的标准化和模块化特性,使得汽车电子系统的开发过程变得更为高效和协同。它如同一座坚实的桥梁,连接着不同的开发环境和工具,让开发者能够轻松共享和处理系统的各类信息。这不仅提升了系统开发的整体效率,更确保了系统各个部分之间的无缝对接和协同工作。
此外,ARXML文件的结构化描述方式还为系统的模块化和可重用性奠定了坚实的基础。各个系统部分可以独立进行开发和测试,从而大大降低了系统集成的复杂度和风险。这种模块化的开发方式不仅提升了系统的灵活性和可扩展性,更为后续的维护和升级工作带来了极大的便利。
综上所述,ARXML文件无疑是汽车电子系统开发中的瑰宝。它以其标准化、模块化和结构化的描述方式,为汽车电子系统的开发、集成和维护提供了全方位的支持和保障。作为AUTOSAR标准中不可或缺的一部分,ARXML文件正引领着汽车电子系统开发的未来发展方向。
转载自: