UDS · ISO 14229-1

Diagnostic services

The 23 services defined by the UDS protocol, grouped by functional unit. Select a service to see its request, response and negative response codes.

Introduction

Unified Diagnostic Services (UDS) is a communication protocol defined by the ISO 14229 standard, widely used in the automotive industry to enable diagnostic communication between an external test equipment (client) and the electronic control units (ECUs) embedded in a vehicle (server).

UDS operates on top of transport protocols such as CAN, DoIP (Diagnostics over IP), or FlexRay, and provides a standardized set of services for tasks like reading and clearing diagnostic trouble codes (DTCs), accessing ECU data by identifier, controlling I/O, uploading or downloading data, and managing diagnostic sessions and security access.

In the vast majority of cases, UDS is used over CAN (Controller Area Network). However, a standard CAN frame is limited to 8 bytes of payload, which is often insufficient for UDS messages. To overcome this limitation, the ISO-TP (ISO 15765-2) transport protocol is used as an intermediate layer between CAN and UDS. ISO-TP handles segmentation and reassembly of messages: when a UDS message exceeds 8 bytes, ISO-TP splits it into multiple CAN frames (First Frame, followed by Consecutive Frames), and uses Flow Control frames to manage the transmission rate between sender and receiver. For messages that fit within a single CAN frame, ISO-TP uses a Single Frame with a one-byte header indicating the payload length.

Communication follows a request-response model: the client sends a request message identified by a Service ID (SID), and the server replies with either a positive response (SID + 0x40) containing the requested data, or a negative response (0x7F) with a Negative Response Code (NRC) indicating the reason for failure.