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 and Response Frame Format

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 }
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 }
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

Capacitive    Inductive    Photoelectric    Ultrasonic    Infrared    Motion    Biometric    Force    Humidity    Temperature    Light    Barometer    Sound    pH    Soil Moisture   

Advantages and Disadvantages of other wireless technologies

IrDA    HomeRF    Bluetooth    Radar    RF    Wireless    Internet    Mobile Phone    IoT    Solar Energy    Fiber Optic    Satellite    GPS    RFID    AM and FM    LTE   

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

RF and Wireless Terminologies