文章目录
本文接上篇 CAN Arxml介绍——DataType 继续介绍。
1、 DataTypeMappingSets
ApplicationDataTypes与ImplementationDataTypes的映射,在文件没有ImplementationDataTypes时,是ApplicationDataTypes与CompuMethods的映射;
2、 Communications
2.1、 Frame
报文,通过引用PDU,PDU又引用Signal,来关联到对应的Signal;
SHORT-NAME:报文名;
FRAME-LENGTH:报文长度;
PUD-TO-FRAME-MAPPING:引用的PDU;
Frame如图3-1:
Frame中的信息与DBC文件的对应关系如表:
ARXML | DBC |
---|---|
PACKING-BYTE-ORDER | Byte Order |
MOST-SIGNIFICANT-BYTE-LAST | Intel |
MOST-SIGNIFICANT-BYTE-FIRST | Motorola |
FRAME-LENGTH | Length |
2.1、 Pdu
Pdu 是协议数据单元,也叫业务数据单元,承载了需传输的数据。
Pdu可以建立起Frame(Message)和Signal之间的联系。Pdu的Length单位是byte。
常见的Pdu有5种:
(1) N-PDU :
对应诊断报文,本身不包含信号,每个节点都会有对应的Diag_ReqPhy、Diag_ReqFun、Diag_resp
(2) CONTAINER-I-PDU :
包含的不是信号而是I-SIGNAL-I-PDU,通过PDU-TRIGGERINGS关联到I-SIGNAL-I-PDU;
(3) I-SIGNAL-I-PDU:
通过与I-SIGNAL的映射关系关联到I-SIGNAL,并有部分I-SIGNAL的属性;
(4) DCM-I-PDU:
没有对应的报文,它对应的是N-PDU;
(5) NM-PDU:
对应NmMessage,除了报文属性,其余跟I-SIGNAL-I-PDU没什么区别
2.1.1、 I-SIGNAL-I-PDU
通过与I-SIGNAL的映射关系关联到I-SIGNAL,并有部分I-SIGNAL的属性;
I-SIGNAL-I-PDU里面有一个Mapping的模块,映射了I-SIGNAL以及I-SIGNAL的部分属性:byte-order,start-bit,这里面的SHORT-NAME并不是I-SIGNAL的SHORT-NAME,而是映射名。
**CONTAINER-I-PDU-PROPS:**有这个属性,说明这个I-SIGNAL-I-PDU是属于CONTAINER-I-PDU的,里面的HEADER-ID-SHORT-HEADER是这个I-SIGNAL-I-PDU的标识ID。
I-SIGNAL-I-PDU如图:
PDU中的信息与DBC文件的对应关系如表:
ARXML | DBC |
---|---|
START-POSITION | Start bit |
TIME-PERIOD | GenSigStartValue(报文周期) |
2.1.2、 CONTAINER-I-PDU
CONTAINER-I-PDU可包含多个I-SIGNAL-I-PDU,他对应的是长度大的复合报文,CONTAINER-I-PDU是通过PDU-TRIGGERINGS来关联I-SIGNAL-I-PDU,这个在后面triggering部分介绍;
CONTAINER-I-PDU包含I-SIGNAL-I-PDU有两种方式:
**静态:**每8个字节对应一个I-SIGNAL-I-PDU;
**动态:**包含多个I-SIGNAL-I-PDU,他长度的前三个字节是子pdu的id标识,第四个字节是子pdu的长度,后八个字节是子pdu,以此类推第13-15字节是第二个子pdu的id…;
CONTAINER-I-PDU如图:
2.1.3、N-PDU
对应诊断报文,它本身没有信号,每个文件都会有一个功能请求、一个物理请求、一个物理响应。
它的属性category也说明了请求和响应,在DBC中有**diag_…**等属性做标识;
N-PDU如图:
2.1.4、 DCM-I-PDU
与N-PDU一一对应,它的DIAG-PDU-TYPE也说明了请求和响应:
DCM-I-PDU如图:
2.1.4、 NM-PDU
网络报文,在DBC中用NmMessage属性来标识,跟I-SIGNAL-I-PDU没什么区别;
NM-PDU如图:
2.2、I-SIGNAL和SystemSignals
2.2.1 SystemSignals
真正的signal,引用了对应的compuMethod,此处的SHORT-NAME即Signal Name
如图:
2.2.2 I-SIGNAL
I-SIGNAL不是真正的Signal,而是Signal的接口,包含了大部分signal的数据信息;还有ISignalGroup模块;
DESC: 对信号的描述;
INIT-VALUE: 信号的初始值;
LENGTH: 信号长度;
NETWORK-REPRESENTATION-PROPS: 是对单位unit和计算方法CompuMethd的引用;
SYSTEM-SIGNAL-REF: 引用了真正的信号
I-SIGNAL如图:
I-SIGNAL中的信息与DBC文件的对应关系如表:
ARXML | DBC |
---|---|
LENGTN | Signal size |
INIT-VALUE | Init value |
DESC | comment |
2.2.3 I-SIGNAL-GROUP和SystemSignalGroup
a) SystemSignalGroup
信号组: 包含部分信号,并不是所有的信号都有响应的信号组;
SYSYTEM-SIGNAL-REFS: 引用了所包含的信号;
如图:
b) I-SIGNAL-GROUP
SystemSignalGroup的接口;
I-SIGNAL-REF: 引用了所包含的I-SIGNAL
SYSTEM-SIGNAL-GROUP-REF: 引用其对应的SystemSignalGroup
如图:
2.3 I-SIGNAL-I-PDU-GROUP
通过IN/OUT属性定义了PDU的收发;
他就是分开了接收的和发送的pdu,做了一个分组,每个网段各有一个收发;
如图: