最近开始学习CAN Arxml方面的东西,下面是总结的部分内容:
文章目录
DataType
1、 BaseType
信号的基本数据类型,BOOLEAN、UINT、SINT等;
UINT: unsigned int(无符号);
SINT: signed int(有符号);
2、 Units
信号的单位;
SHORT-NAME : 单位的名称;
DISPLAY-NAME : 单位符号;
3、 CompuMethod
计算方法,在DBC文件中有计算信号值的偏移量offset和系数factor。
在Arxml文件中定义了CompuMethod来计算信号内部值到物理值得映射;
两种类型:
Linear :线型
内部值到物理值的计算方式是:
Dbc : y = factor(x) + offset
Arxml : y = (n1+n2x)/d , n : COMPU-NUMERATOR,分子,d : COMPU-DENOMINATOR,分母
Texttable :离散型
dbc文件中的值列表(Value_table),通过value ->description的映射 来定义信号值的意义;
Arxml中的UPPER/LOWER-LIMIT就是value;
属性和元素:
COMPU-INTERANL-TO-PHYS:
内部值到物理值的映射
如图:
对应LOWER/UPPER LIMIT属性,linear类型的值是最大最小值,texttable类型则是值列表中的value;
UNIT-REF:
对unit的引用;Arxml文件并不会将一个元素的所有属性放在一起,而是会采取引用的方式,去引用其他的元素,引用的内容是元素的 地址;
4、 ApplicationDataType
ApplicationDataType就是在arxml中索引到信号对应compuMethod中的物理值得计算方法。
如图:
5、 ImplementationDataType
ImplementationDataType是对ApplicationDataType的实现;
ApplicationDataType于ImplementationDataType是有一对一的映射关系的,反之不成立;
ImplementationDataType有三种类型:VALUE、TYPE_REFERENCE、STRUCTURE;
VALUE: 引用基本数据类型;
TYPE_REFERENCE: 引用VALUE类型的ImplementationDataType;
STRUCTURE: 引用多个TYPE_REFERENCE类型的ImplementationDataType;
如图: