本文描述tester和ECU之间的通信数据流,主要有两部分:
— 请求
— 响应
了解UDS通信过程的对下图应该不陌生
tester通过SID 23服务,请在204813h开始的地址,请求都3个字节数据,ECU 在SID 63上返回数据。这个过程由Service, request ,response 和Parameters描述就可以完成,另外一种访问ECU的方式是通过诊断任务(diagnostic job),实际上,这个Job本身也是基于单个的Service服务组成,包含一个或多个services.通信过程所需的数据流如下UML所示:
(DIAG-COMM) 提供 (DIAGSERVICEs)和 jobs (SINGLE-ECU-JOBs)共同特征。定义了tester和ECU的诊断通信过程。在读ODX文件时,可以从DIAG-COMM(具体是其下的DIAG-SERVICE)这个元素入手,逐步发现ODX文件的诊断服务数据。
服务
UML表示的服务如下图:
DIAG-SERVICE 继承DIAG-COMM类的所有成员。IS-CYCLIC and IS-MULTIPLE属于DIAG-SERVICE,与相关的服务,请求或者响应有关。IS-CYCLIC表示此诊断服务周期性发送,默认是false。有的服务需要多条响应,比如,DTC,这时IS-MULTIPLE属性值设置为true;
有的服务可能需要多条正响应或者负响应,D -server会建立一个表,用到REQUEST-REF,POS-RESPONSEREFs,CODED-CONST and MATCHINGREQUEST等参数。
DIAG-SERVICE中有的POS-RESPONSE-SUPPRESSABLE 元素话表示抑制正响应。如下例子,
BIT-MASK 0x80与子功能ID 18进行或运算,0x92作为子ID被使用。
<DIAG-COMMS>
<DIAG-SERVICE ID="ExampleServiceID" ADDRESSING="FUNCTIONAL-OR-PHYSICAL">
<SHORT-NAME>ExampleService</SHORT-NAME>
<AUDIENCE/>
<REQUEST-REF ID-REF="ExampleRequestID"/>
<POS-RESPONSE-REFS>
<POS-RESPONSE-REF ID-REF="ExampleResponseID"/>
</POS-RESPONSE-REFS>
<POS-RESPONSE-SUPPRESSABLE>
<BIT-MASK>80</BIT-MASK>
<CODED-CONST-SNREF SHORT-NAME="ParamOfSubFunction"/>
</POS-RESPONSE-SUPPRESSABLE>
</DIAG-SERVICE>
</DIAG-COMMS>
<REQUESTS>
<REQUEST ID="ExampleRequestID">
<SHORT-NAME>ExampleRequest</SHORT-NAME>
<PARAMS>
<PARAM xsi:type="CODED-CONST">
<SHORT-NAME>SIDParam</SHORT-NAME>
<CODED-VALUE>15</CODED-VALUE>
<DIAG-CODED-TYPE BASE-DATA-TYPE="A_UINT32" xsi:type="STANDARD-LENGTH-TYPE">
<BIT-LENGTH>8</BIT-LENGTH>
</DIAG-CODED-TYPE>
</PARAM>
<PARAM xsi:type="CODED-CONST">
<SHORT-NAME>ParamOfSubFunction</SHORT-NAME>
<CODED-VALUE>18</CODED-VALUE>
<DIAG-CODED-TYPE BASE-DATA-TYPE="A_UINT32" xsi:type="STANDARD-LENGTH-TYPE">
<BIT-LENGTH>8</BIT-LENGTH>
</DIAG-CODED-TYPE>
</PARAM>
</PARAMS>
</REQUEST>
</REQUESTS>
参数
再回顾下图:
请求或响应包含一个或多个参数,类型如下:
⎯ VALUE;
⎯ RESERVED;
⎯ CODED-CONST;
⎯ PHYS-CONST;
⎯ LENGTH-KEY;
⎯ MATCHING-REQUEST-PARAM;
⎯ TABLE-KEY;
⎯ TABLE-STRUCT;
⎯ TABLE-ENTRY;
⎯ DYNAMIC;
⎯ SYSTEM;
⎯ NRC-CONST.
MATCHINGREQUEST-PARAM, DYNAMIC 和 NRC-CONST 仅用在响应中。
UML图表示的参数:
VALUE表示参数类型,它引用一个DOP,用来转换编码值到物理值或者物理值到编码值。在接收到的消息中,PHYSICAL-DEFAULT-VALUE用来做值的校验,收到的编码值被转换为物理值形式,再比较。例如,速度