Diagnostic services
Defined request and response operations let a tester change sessions, read data, inspect faults, execute routines, control communication, or support programming workflows.
Vehicle Diagnostics Guide
A practical overview of how Unified Diagnostic Services fits into ECU diagnostics, transport, diagnostic sessions, data identifiers, DTC handling, testing, and engineering workflows.
Engineering model
Unified Diagnostic Services defines application-level requests and responses used by a tester to interact with an ECU. A working diagnostic workflow also depends on addressing, transport, the underlying network, ECU state, diagnostic data, and the test environment. The useful engineering model is therefore a connected stack, not a list of service identifiers in isolation.
Core concepts
Defined request and response operations let a tester change sessions, read data, inspect faults, execute routines, control communication, or support programming workflows.
An ECU session controls which services and timing behavior are available. A request can be correctly formed yet invalid in the current session.
DIDs identify diagnostic data records. Correct interpretation depends on the ECU implementation and diagnostic database, including data layout, scaling, and access conditions.
DTC services expose fault records and status maintained by ECU diagnostic software. They support investigation but do not themselves detect the physical or software fault.
Routine Control starts, stops, or requests results from ECU-defined routines, usually with explicit session, security, and operating-condition prerequisites.
Security Access and related safeguards restrict sensitive diagnostic operations. Authorization does not replace other session, sequence, or vehicle-state conditions.
UDS application messages can be carried through ISO-TP on CAN or through DoIP on Ethernet. Each transport adds its own addressing, segmentation, timing, and routing concerns.
Tools such as CANoe combine diagnostic databases, request execution, network traces, test modules, and automation so behavior can be reproduced and validated.
UDS specifies the diagnostic application conversation; it does not replace the transport and network layers beneath it.
Diagnostic application
↓
UDS request / response
↓
ISO-TP or DoIP
↓
CAN / Ethernet
↓
ECUWhen a diagnostic exchange fails, the first engineering task is to locate the failing layer. An unanswered UDS request may originate in ECU availability, network routing, transport configuration, addressing, session state, or the service implementation itself.
A tester sends a service request to an ECU, and the ECU returns a positive response, a negative response, or no observable response.
| Element | Engineering role | Typical question |
|---|---|---|
| Tester | Constructs requests and evaluates responses | Is the correct channel and target configured? |
| ECU | Implements services and maintains diagnostic state | Is it powered, awake, and in the required session? |
| Addressing | Selects one ECU or a functional group | Do request and response addresses match the architecture? |
| Transport | Carries messages across CAN or IP | Were segmentation, timing, and routing completed? |
| Diagnostic data | Defines supported services and data interpretation | Does the database match this ECU software variant? |
A response must be interpreted in the context of the requested service, addressing mode, active session, prior requests, and current ECU or vehicle state. The same payload can be valid in one workflow and rejected in another.
Practical diagnostic applications organize services by engineering purpose rather than treating every service as an isolated command.
A DID identifies a diagnostic data record, while the ECU and diagnostic description define what its bytes mean.
Use diagnostic data that matches the ECU software and variant to identify the intended record.
Construct the service payload with the correct DID and any session or access prerequisites.
Confirm the service and identifier, then decode length, byte order, scaling, units, and enumerations from the diagnostic definition.
A DBC describes CAN messages and signals; it is not a substitute for an ODX or OEM diagnostic definition. Diagnostic payload interpretation and normal network-signal decoding are related engineering activities with different data models.
The ECU's diagnostic software detects and stores fault information; UDS provides services for accessing and managing that information.
Capture the vehicle state, network evidence, and operating conditions associated with the reported behavior.
Query the supported records and retain status, occurrence context, and available snapshot or extended information.
Relate stored fault information to measurements, network traces, ECU logs, and the system's fault-detection logic.
Clear diagnostic information when the test plan calls for it, then verify whether the condition and code return.
The UDS application concept remains request and response based, while the communication path changes with the vehicle architecture.
| Path | Underlying network | Transport concerns |
|---|---|---|
| UDS over ISO-TP | CAN or CAN-FD | CAN identifiers, addressing mode, segmentation, flow control, padding, and timing |
| UDS over DoIP | Automotive Ethernet / IP | Discovery, logical addresses, routing activation, TCP connectivity, and gateway paths |
A diagnostic application should keep service-level intent separate from transport-specific configuration. During debugging, however, traces from both layers are needed to distinguish an ECU service response from a transport or routing failure.
Repeatable diagnostic tests validate positive responses, negative-response behavior, timing, session transitions, and recovery across software versions.
Given: ECU is available in the required vehicle state
And: diagnostic addressing and transport are configured
When: the tester sends a defined service request
Then: validate response type, payload, timing, and resulting ECU stateEngineering pitfalls
A missing ECU, wrong network state, or broken route cannot be resolved by changing the diagnostic service payload.
Physical and functional requests, response identifiers, and DoIP logical addresses must match the actual architecture and tester configuration.
A supported service may still be unavailable before the correct session, security level, vehicle condition, or preceding request.
The NRC is structured evidence about why the ECU did not provide the expected positive response and should guide the next check.
ISO-TP and DoIP configuration can fail independently of UDS service logic, so transport evidence needs its own validation.
DBC data describes CAN messages and signals; diagnostic databases describe services, identifiers, parameters, and diagnostic interpretation.
FAQ
Engineering support
I can help with diagnostic communication, ECU and network traces, CANoe-based tests, automation, or a focused investigation of a failing workflow.