Service Interaction Protocol
Read Data By ID
DATA_ACCESS
IDENTIFIER_WIDTH
MULTI_DID
Overview
“The client uses this service to request data record values from the server by one or more data identifiers.”
Unlike services with Sub-Functions (like 0x10 or 0x19), this service relies entirely on Data Identifiers (DIDs) to define the data content.
Default Behavior
Service 0x22 is available in all diagnostic sessions, including the Default Session (0x01). It does not use a sub-function byte; the data records are identified solely by their 2-byte Data Identifiers (DIDs).
Protocol Anatomy (Single DID)
◆ PROTOCOL ANATOMY
0x22 READ DATA BY ID
0x22 RESPONSE
Common Data Identifiers (DIDs)
Range | Category | Examples |
|---|---|---|
| 0xF180 - 0xF19F | Identification | VIN (0xF190), ECU Serial (0xF18C), Active Session (0xF186) |
| 0xF1A0 - 0xF1EF | Identification | Reserved / OEM Specific |
| 0x0100 - 0xEFFF | Vehicle Mfr | RPM, Speed, Temperatures, Torques |
| 0xF200 - 0xF2FF | Periodic | Grouped data for periodic transmission |
| 0xFA00 - 0xFEFF | System Specific | Development & Calibration data |
Lookup Logic
A single request can contain multiple DIDs. The ECU processes each identifier, fetches the data from the internal mapping engine, and concatenates the results in the response.
Workflow: Multiplexed DID Retrieval
4 steps
How the ECU resolves 16-bit identifiers to internal memory locations.
Request
22 F1 90> Get Vehicle Identification Number
Response
62 F1 90 31 42 41...> Returns '1BA...' (ASCII Encoded)
Request
22 12 34 56 78> Read DID 0x1234 AND 0x5678
Response
62 12 34 [Data1] 56 78 [Data2]> DIDs are interleaved with their data
Negative Response Codes
Error_Catalog