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

1元 10元 50元





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



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   模型库  
会员   
   
DeepSeek大模型应用开发实践
6月12-13日 厦门
基于 UML 和EA进行分析设计
6月23-24日 北京+线上
人工智能、机器学习 TensorFlow+Keras
6月30日-7月1日 直播
   
 
 订阅
ARXML文件解析-2
 
作者:车载测试工程师
  19  次浏览      2 次
 2025-6-11
 
编辑推荐:
本文主要介绍了ARXML文件的注意事项、常见问题以及解读与编辑相关内容。 希望对您的学习有所帮助。
本文来自于CSDN,由火龙果软件Linda编辑、推荐。

1 摘要

本文主要对ARXML文件的注意事项、常见问题以及解读与编辑进行详细介绍。

上文回顾: ARXML文件解析-1

2 常见ARXML文件注意事项以及常见问题

2.1 注意事项

语法规则

起始符:<?xml(严格小写,无空格)。

属性顺序:version → encoding → standalone(顺序不可调换)。

引号:属性值必须用 ASCII双引号 " 包裹。

结束符:?>(无空格)

ARXML文件的特殊要求

工具链兼容性:

ARXML常用于汽车软件架构(如AUTOSAR),需确保工具链(如Vector PREEvision、ETAS ISOLAR)能解析该声明。

编码一致性:

若文件含非英文字符(如中文注释),必须保存为UTF-8且声明匹配,否则会乱码。

格式验证:

建议通过XML验证工具(如Notepad++ XML插件、在线校验器)检查语法。

工具链注意事项

语言切换:

工具(如Vector PREEvision)会根据<LANGUAGE>显示默认语言的文本。

若未找到匹配语言,可能回退到EN或显示空值。

版本兼容性:

AUTOSAR R4.0+ 强制要求 <ADMIN-DATA>,但部分旧工具可能忽略其内容。

验证规则:

<L-2> 中的语言代码必须在 <USED-LANGUAGES> 中声明,否则可能报错。

工具验证建议

XML语法检查:

使用 XMLSpy 或 Oxygen XML Editor 验证文件格式。

在线工具:https://www.xmlvalidation.com/

编码检测:

通过 Notepad++ → 「编码」菜单确认文件编码。

AUTOSAR工具链验证:

在Vector PREEvision或ETAS ISOLAR中导入文件,检查是否报错。

TAG的命名规则

大小写敏感:

所有TAG名称区分大小写(如<SHORT-NAME>不能写成<short-name>)。

命名风格:

使用大写字母+连字符(如<ECUC-CONTAINER-VALUE>)。

唯一性:

同一父元素下,<SHORT-NAME>必须唯一。

如何查看完整的TAG类型?

AUTOSAR官方XSD文件:

下载对应版本的XSD(如AUTOSAR_4-2-2.xsd),所有合法TAG均在其中定义。

工具链文档:

Vector PREEvision/ETAS ISOLAR的文档会列出支持的TAG类型。

实例文件参考:

通过工具生成的ARXML文件学习实际用法。

提示:具体TAG类型需参考AUTOSAR版本对应的规范文档,不同版本(如R4.0 vs R21-11)可能有差异。

2.2 常见问题

错误1:XML parsing failure: Invalid byte 1 of 1-byte UTF-8 sequence

原因:文件实际编码与声明的encoding属性不一致。

错误2:XML declaration allowed only at the start of the document

原因:XML声明前有空格、注释或其他内容。

错误3:Invalid content starting with 'AR-PACKAGE'

原因:元素顺序不符合XSD要求(如AR-PACKAGE必须位于AR-PACKAGES内)。

错误4:Undefined UUID reference

原因:引用的UUID未在文件中定义。

错误5:Encoding mismatch

解决:确保文件实际编码与XML声明的encoding一致(推荐UTF-8无BOM)。

错误6:Unbound namespace prefix 'xsi'

原因:未声明xmlns:xsi命名空间。

解决:添加 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"。

错误7:SchemaLocation Warning: No XSD found

原因:xsi:schemaLocation指定的XSD文件路径错误。

解决:确保XSD文件存在,并修正路径(如使用绝对路径 C:\AUTOSAR\AUTOSAR_4-2-2.xsd)。

错误8:Element not allowed in namespace

原因:元素未在默认命名空间或指定命名空间中定义。

解决:检查命名空间URI是否与AUTOSAR版本匹配。

错误9:未定义的TAG

<!-- 错误示例 -->
<MY-CUSTOM-TAG> <!-- 非AUTOSAR标准TAG -->
  Value
</MY-CUSTOM-TAG>

 

后果:工具链报错(如Unknown element 'MY-CUSTOM-TAG')。

错误10:TAG顺序错误

<!-- 错误示例 -->
<AR-PACKAGE>
  <ELEMENTS>...</ELEMENTS> <!-- 必须在SHORT-NAME之后 -->
  <SHORT-NAME>Com</SHORT-NAME>
</AR-PACKAGE>

 

解决:遵循XSD中定义的子元素顺序。

其他错误表格示例:

2.3 答疑

Q1: 能否省略<ADMIN-DATA>?

答案:不建议。AUTOSAR规范要求保留该节点(内容可为空),否则工具可能警告。

Q2: 如何添加自定义语言(如法语)?

<USED-LANGUAGES>
  <L-2 L="FR" xml:space="default"/>  <!-- 新增法语 -->
</USED-LANGUAGES>
<DESC>
  <L-2 L="FR" xml:space="default">Configuration Réseau</L-2>
</DESC>

 

Q3: xml:space="default" 能否省略?

答案:可以省略(工具通常默认处理为default),但显式声明可提高可读性。

Q4: UUID是否可以手动指定?

答案:可以,但需确保全局唯一性。推荐使用工具(如Vector PREEvision)自动生成。

Q5: <SHORT-NAME>能否重复?

答案:同一父元素下不能重复,但不同包内可以同名(如两个<AR-PACKAGE>均可包含<SHORT-NAME>Comunication)。

Q6: 如何定义具体的转换链(Transformer Chain)?

答案:需在另一个<AR-PACKAGE>中定义<TRANSFORMER-CHAIN>,并通过<TARGET-REF>引用其路径或UUID。

Q7: <L-10>能否嵌套其他标签?

答案:通常不允许,其内容应为纯文本。若需结构化内容,应使用其他专用标签(如<DESC>中的<P>段落标签,需工具支持)。

Q8: 为什么工具不显示<L-10>的内容?

可能原因:

未在<USED-LANGUAGES>中声明对应语言。

工具未激活多语言切换功能。

标签名称不兼容(如工具期望<LONG-TEXT>而非<L-10>)。

Q9: 如何提取所有语言的<L-10>文本?

方法:

使用XPath查询(示例):

//L-10[@L='EN']/text()  <!-- 提取英文文本 -->
//L-10[@L='CN']/text()  <!-- 提取中文文本 -->

 

3 ARXML解读/编辑指南

3.1 解读ARXML文件的步骤

步骤1:确定目标内容

通信配置:查找EthernetFrame、PDU、Signal相关标签。

服务接口:搜索SERVICE-INTERFACE、METHOD、EVENT。

ECU信息:定位ECU-INSTANCE、ETHERNET-INTERFACE。

步骤2:理解元素属性

关键属性示例:

<SERVICE-ID>0x1234</SERVICE-ID>:服务唯一标识符(16进制)。

<METHOD-ID>0x01</METHOD-ID>:方法ID,与服务内唯一。

<START-BIT>0</START-BIT>:信号在PDU中的起始位。

步骤3:追踪引用关系

通过<REF>或<TYPE-TREF>追踪跨元素的依赖:

<SIGNAL-TO-PDU-MAPPING>
  <I-SIGNAL-REF DEST="I-SIGNAL">/Signals/SpeedSignal</I-SIGNAL-REF>
</SIGNAL-TO-PDU-MAPPING>

步骤4:验证逻辑一致性

检查ID唯一性(如SERVICE-ID不可重复)。

确认信号映射的位范围不重叠(如两个信号不能占用PDU的同一段比特位)。

3.2 编辑ARXML文件的方法

方法1:使用专业工具(推荐)

工具示例:

Vector PREEvision:图形化编辑通信矩阵和服务接口。

ETAS ISOLAR:AUTOSAR兼容的完整开发环境。

Elektrobit Tresos:专注于基础软件配置。

优势:自动处理引用关系、语法验证和版本兼容性。

方法2:手动编辑(需谨慎)

文本编辑器:使用VSCode、Notepad++等支持XML高亮和折叠的工具。

注意事项:

备份文件:编辑前复制原始文件以防错误。

修改属性:直接调整标签内的值(如更改<CYCLE-TIME>100</CYCLE-TIME>为200)。

添加元素:遵循现有结构插入新节点(如新增METHOD)。

处理引用:确保新元素的ID唯一,且引用路径正确。

示例:手动添加一个方法

<METHODS>
  <CLIENT-SERVER-OPERATION>
    <SHORT-NAME>NewMethod</SHORT-NAME>
    <METHOD-ID>0x02</METHOD-ID>
    <CALL-TYPE>FIRE_AND_FORGET</CALL-TYPE>
  </CLIENT-SERVER-OPERATION>
</METHODS>

 

方法3:脚本自动化

Python + XML库:使用xml.etree.ElementTree解析和修改ARXML。

示例脚本:批量修改服务端口号

import xml.etree.ElementTree as ET
tree = ET.parse('example.arxml')
root = tree.getroot()
for elem in root.findall(".//ENDPOINT-PORT"):
    elem.text = "30500"  # 修改所有端口为30500
tree.write('modified.arxml')

 

3.3 验证与调试

验证工具:

XML Schema验证:使用AUTOSAR提供的XSD文件检查语法。

xmllint --schema AUTOSAR_4-2-2.xsd example.arxml

AUTOSAR工具链:如ISOLAR的完整性检查功能,检测逻辑错误。

常见错误处理:

ID冲突:重复的SERVICE-ID或METHOD-ID导致通信失败。

引用失效:删除被引用的元素后未更新相关引用。

位映射错误:信号超出PDU长度或位重叠。

4 总结

ARXML文件通过分层包和元素描述汽车电子系统,解读需关注模块功能及引用关系,编辑推荐使用专业工具或谨慎手动调整,并始终验证文件正确性。本专题相关介绍有利于更好地理解ARXML文件。

   
19 次浏览       2
 
相关文章

CMM之后对CMMI的思考
对软件研发项目管理的深入探讨
软件过程改进
软件过程改进的实现
 
相关文档

软件过程改进框架
软件过程改进的CMM-TSP-PSP模型
过程塑造(小型软件团队过程改进)
软件过程改进:经验和教训
 
相关课程

以"我"为中心的过程改进(iProcess )
iProcess过程改进实践
CMMI体系与实践
基于CMMI标准的软件质量保证

最新活动计划
DeepSeek大模型应用开发 6-12[厦门]
人工智能.机器学习TensorFlow 6-30[直播]
基于 UML 和EA进行分析设计 6-23[北京]
嵌入式软件架构-高级实践 7-9[北京]
用户体验、易用性测试与评估 7-25[西安]
图数据库与知识图谱 8-23[北京]
 
 
最新文章
iPerson的过程观:要 过程 or 结果
基于模型的需求管理方法与工具
敏捷产品管理之 Story
敏捷开发需求管理(产品backlog)
Kanban看板管理实践精要
最新课程
基于iProcess的敏捷过程
软件开发过程中的项目管理
持续集成与敏捷开发
敏捷过程实践
敏捷测试-简单而可行
更多...   
成功案例
英特尔 SCRUM-敏捷开发实战
某著名汽车 敏捷开发过程与管理实践
北京 敏捷开发过程与项目管理
东方证券 基于看板的敏捷方法实践
亚信 工作量估算
更多...