[DoCAN] Vehicle Diagnostic Communication Part 57 [UDS 18]

[DoCAN] Vehicle Diagnostic Communication Part 57 [UDS 18] 車両診断通信
[DoCAN] Vehicle Diagnostic Communication Part 57 [UDS 18]

Click here for back issues.


Explanation of ISO 14229, UDS.
In this article, the messages of the ReadDataByIdentifier service will be explained.

Request message for ReadDataByIdentifier service

The request message for ReadDataByIdentifier service is shown below.

PositionParameter NameValue
1ReadDataByIdentifier Request SID0x22

The dataIdentifier is called DID (shortened to DID), and the parameters to be read are determined based on this.

The message structure shows that multiple DIDs can be requested as the same message.
Well, there may be an error due to the manufacturer-dependent limitation on the number of DIDs or the length of the response message.

One DID can be a message of long length, but if the number of DIDs is many, the message length required becomes longer.
As a result, if the message length exceeds the size of the transmission buffer contained in the ECU or the 4095 bytes specified in ISO 15765-2, an error occurs.

Response message for ReadDataByIdentifier service

The response message is as follows.

PositionParameter NameValue
1ReadDataByIdentifier Response SID0x62

The table may not give you a clear image of what it looks like.
The DID is followed by the data to be referenced (dataRecord), and if multiple DIDs are requested, the number of DIDs will be as many as necessary to make the sequence.

What determines the length of this dataRecord?
As per ISO14229-1, it is not determined.
It is freely determined for each DID by the manufacturer.

If multiple DIDs are requested, it will be difficult to know which DID is the next DID in the response message.
However, it is assumed that the off-board tester knows this.

The off-board tester needs to include a specification that reads another definition file, etc., to know the dataRecord length.
Because of this, tools often do not request multiple DIDs.


  • Explanation of the request message for the ReadDataByIdentifier service.
    • Multiple DIDs can be set.
    • There may be a limit on the number of DIDs that can be set, and it is an error if the number is exceeded.
    • It is also an error if the response message exceeds 4095 bytes.
  • Explanation of the ReadDataByIdentifier service response message
    • Combination of DID and dataRecord.
    • In case of multiple DIDs, the above combination is placed in one message.

Click here for back issues.