UDS Request Frame Format | UDS Response message Format
This page covers UDS Request Frame Format and UDS Response message Format. It describes fields used in UDS service request message,UDS positive response message and UDS negative response message.
UDS Request/Response Message
UDS is request and response based protocol based on client-server architecture. UDS is collection of number of diagnostic services having unique service identifier (SID). SID is one byte size with range from 0x00 to 0x3E.

UDS Request Message | Service Request Message
UDS service request message : { SIDRQ, SubFn, DID, Data_Record }
'M' stands for mandatory and 'O' stands for optional.
Using 'SID' field in service request message, server understands requested service by the client. Refer UDS specifications for meanings of various SID with numbers and their detailed services. SID is mandatory field and present in all the service request messages.
For example,
SID of 0x22 indicates "Read data by identifier".
SID of 0x31 indicates "Routine control"
"Sub Function" field tells service which sub functionality of service has been requested.
It is also 1 byte in size. This field exists only for certain selected services.
For example,
0x01 - Start the routine
0x02 - Stop the routine
0x03 - Results are requested by routine
DID field is 2 bytes in size. All the data elements are identified by unique numbers. In OBD (On Board Diagnostics) DIDs are standardized where as in UDS different car manufacturers define their own unique DIDs which can be understood by UDS tester tool. One service request message contains one or multiple DID elements.
'Data Record' field is optional field. For example, if DID is for 'write data by identifier' than after the DID the data values to be written is specified in the message.
UDS Positive Response Message
In UDS offboard diagnostics, tester acts as client and ECU acts as server. When server (i.e. ECU) receives service request message, it checks the message. If everything is fine in the received message, it executes requested service and responds to the client (i.e. tester) with positive response message.
UDS positive response message : { SIDPR, SubFn, DID, Data_Record }
Where,
SIDPR = SIDRQ + 0x40 , For example, for SIDRQ of 0x2E, SIDPR equals 0x6E
UDS Negative Response Message
In UDS offboard diagnostics, tester acts as client and ECU acts as server. When server (i.e. ECU) receives service request message, it checks the message. If server finds something is wrong than it responds with negative response message (of total 3 bytes). The reasons for server not to perform requested service are many such as requested message format is wrong, working conditions are not preferable etc.
UDS negative response message : { NR_SID, SIDRQ, NRC }
Where,
NR_SID is always 0x7F
SIDRQ is same as SID present in the service request message which is "SIDRQ" as above.
NRC is Negative Response Code
Standard defines various UDS NRC values with their meanings.
For example,
NRC of 0x01 indicates "General reject"
NRC of 0x11 indicates "Service not supported"
NRC of 0x12 indicates "Sub-function not supported"
NRC of 0x13 indicates "Invalid message length/format
UDS Protocol Related Links
Advantages and disadvantages of UDS Protocol UDS Protocol Stack architecture
Advantages and Disadvantages of other Sensor Types
Advantages and Disadvantages of other wireless technologies
What is Difference between
difference between OFDM and OFDMA
Difference between SC-FDMA and OFDM
Difference between SISO and MIMO
Difference between TDD and FDD
FDMA vs TDMA vs CDMA
FDM vs TDM
CDMA vs GSM