Vehicle Diagnostics

ISO-TP Diagnostics Guide

Understand how segmented diagnostic communication travels over CAN, how ISO-TP coordinates message exchange, and how to isolate transport failures from UDS behavior.

Engineering model

How ISO-TP fits together

ISO-TP governs the transport of diagnostic messages that do not fit into one CAN message. It depends on CAN for communication, on addressing and flow-control behavior for segmented transfers, and often carries UDS requests and responses between a diagnostic application and an ECU. Effective diagnosis separates CAN communication, ISO-TP transport, and UDS service behavior instead of treating every failed request as one problem.

Core concepts

The parts of a practical ISO-TP setup

01

Segmented transport

ISO-TP divides a diagnostic payload into multiple CAN messages when the payload exceeds the available single-message capacity, then reconstructs it at the receiver. The sender and receiver must agree on the transfer state and timing.

02

Flow control

Flow-control behavior regulates how a sender continues a segmented transfer. Incorrect handling can stop an otherwise valid diagnostic exchange even when CAN communication itself is present.

03

Diagnostic service payload

ISO-TP transports the payload used by UDS, while UDS defines the diagnostic meaning of the request and response. Keeping these layers separate helps distinguish a transport failure from a rejected diagnostic request.

04

AUTOSAR transport integration

CanTp provides an AUTOSAR implementation context for CAN transport behavior. Integration issues can arise when application, transport, and CAN configuration do not use compatible addressing or timing assumptions.

The engineering model

A diagnostic exchange is a chain of dependent layers. A failure at a lower layer can prevent the higher layer from producing any meaningful response.

  1. 01

    CAN carries the communication

    CAN provides the in-vehicle communication path on which diagnostic messages are transmitted.

  2. 02

    ISO-TP manages message size

    ISO-TP transports a diagnostic payload as one or more related CAN messages and reconstructs the payload at the receiving ECU.

  3. 03

    UDS interprets the payload

    UDS gives the reconstructed request and response their diagnostic meaning, such as reading data, handling a diagnostic session, or controlling a routine.

  4. 04

    The diagnostic application evaluates the result

    The application must distinguish a missing response, an incomplete transport exchange, and a valid UDS response that does not meet the expected behavior.

Single-message and segmented exchanges

The first useful distinction is whether the diagnostic payload fits within one CAN message or requires transport coordination.

A small diagnostic payload can be transferred without a multi-message exchange. A larger payload requires ISO-TP segmentation: the sender transfers portions of the payload, the receiver provides flow-control information, and the sender continues according to the agreed transfer conditions. The receiver then reassembles the payload before UDS interprets it.

Exchange characteristicSingle-message transferSegmented transfer
Payload sizeFits within one CAN messageExceeds the available single-message capacity
Transport coordinationNo multi-message flow-control exchange is requiredFlow-control behavior coordinates continuation
Primary evidenceOne diagnostic CAN message and its responseA sequence of related CAN messages with timing and continuation behavior
Typical failure focusCAN communication, addressing, or UDS interpretationAddressing, flow-control, timing, or incomplete reassembly

Addressing, timing, and flow control

Most ISO-TP communication failures are coordination failures: both endpoints may be present, but they do not agree on where or how the segmented exchange should proceed.

  • Verify that the diagnostic application sends to the intended ECU and that the ECU response is observed on the expected CAN communication path.
  • Check whether the receiver provides the flow-control behavior required for the sender to continue a segmented transfer.
  • Compare message timing in the recording with the expected transfer sequence; gaps, premature termination, or repeated waiting can indicate a transport-level issue.
  • Separate a missing flow-control response from a UDS response that contains a diagnostic rejection. They represent different layers and require different evidence.
  • When using CanTp, verify that application configuration and CAN transport configuration agree on addressing, transfer direction, and timing assumptions.

Timing observations should be interpreted with the complete exchange in view. A delayed message may reflect transport coordination, CAN bus activity, ECU processing, or an incomplete exchange; the recording alone may not identify the cause without the problem description and expected behavior.

A repeatable analysis workflow

Use a layered workflow so that each conclusion is supported by observable communication rather than by the final symptom alone.

  1. 01

    Define the expected exchange

    Use the problem description to record the request, expected ECU response, relevant diagnostic session, and the conditions under which the issue occurs.

  2. 02

    Confirm CAN evidence

    Inspect the BLF recording or ASC recording to determine whether the request and any ECU communication are present on the CAN path.

  3. 03

    Classify the payload transfer

    Determine whether the exchange is a single-message transfer or a segmented ISO-TP transfer.

  4. 04

    Check transport progression

    For a segmented exchange, examine addressing, flow-control behavior, ordering, and timing until the payload is either completed or shown to be incomplete.

  5. 05

    Evaluate UDS behavior

    Only after transport completion, assess whether the ECU produced the expected UDS response, a diagnostic rejection, or no response.

  6. 06

    Document the boundary of evidence

    Record what the communication proves, what remains uncertain, and which additional ECU or configuration observation would distinguish the remaining possibilities.

Observed resultMost relevant layerReasoning direction
No diagnostic communication is visibleCAN or integrationCheck communication path, addressing assumptions, and whether the diagnostic application transmitted the request.
Request is visible but segmented transfer stopsISO-TP or CanTpInspect flow-control behavior, timing, and transfer progression before analyzing UDS.
Complete request is visible but no UDS response followsECU or UDS behaviorCheck diagnostic session, request conditions, and whether the ECU was expected to answer.
A UDS response is received but is not positiveUDSInterpret the response at the diagnostic-service layer rather than labeling it an ISO-TP failure.

Using engineering data effectively

Recordings and definitions are evidence sources, but each has a different role in an ISO-TP investigation.

InputUseful roleLimitation
BLF recordingPreserves timestamped CAN communication for sequence and timing analysisShows observed communication, not necessarily the intended ECU configuration or expected response
ASC recordingProvides a text-based record that can be inspected for message order and timingMay require careful interpretation of the recorded CAN representation before transport conclusions are made
DBCDefines CAN messages and signals when those definitions are relevant to the communicationDoes not by itself establish that an ISO-TP exchange completed or that a UDS request was accepted
Problem descriptionSupplies symptoms, reproduction steps, context, and expected behaviorCan be incomplete or ambiguous if the expected diagnostic exchange is not stated
ECUProvides the communication endpoint for reproduction or testingObserved behavior may depend on diagnostic session and integration conditions

An engineering analysis should connect each finding to an observed exchange, a stated expectation, or a controlled test. Avoid treating a DBC as a complete description of diagnostic transport behavior when the actual question concerns ISO-TP progression.

Implementation and test considerations

A diagnostic application or automated test suite should expose transport outcomes separately from UDS outcomes so that failures remain actionable.

  • Represent incomplete ISO-TP transfers separately from UDS responses that are negative or otherwise unexpected.
  • Capture the request, response, message timing, and transfer status needed to reproduce a failure.
  • Test both payloads that fit within one CAN message and payloads that require segmentation.
  • Exercise missing or incorrect flow-control behavior as a transport test condition rather than as a UDS-service assertion.
  • Keep diagnostic session state explicit in test setup and result interpretation.
  • When integrating CanTp, verify that the application-level request and the transport-level transfer use compatible configuration assumptions.

From failure symptom to finding

The same visible symptom can result from different layers. Classify the evidence before assigning a cause.

ProblemEvidence to collectFinding to avoid
ECU not respondingWhether the request appears in the CAN recording, whether any transport progression follows, and whether the ECU is available for testingAssuming the ECU is inactive without checking the communication path and transport exchange
UDS request failsWhether the complete ISO-TP payload was transferred and whether the received response is a UDS responseCalling every unsuccessful diagnostic result an ISO-TP communication failure
ISO-TP communication failureAddressing, flow-control behavior, message order, and timing across the complete exchangeConcluding that payload content caused the failure before transport completion is established

The final engineering analysis should state the observed boundary: for example, whether communication was absent, transport stopped before completion, or UDS responded after a complete transfer. This keeps the finding proportional to the available evidence.

Engineering pitfalls

Common mistakes

  1. Treating CAN activity as proof that ISO-TP succeeded

    CAN messages may be present while a segmented exchange is incomplete. Verify transport progression, flow-control behavior, and timing before evaluating the diagnostic payload.

  2. Blaming UDS before checking transport completion

    A UDS request cannot be interpreted reliably if ISO-TP did not deliver the complete payload. Separate transport status from UDS response status.

  3. Ignoring diagnostic session context

    The same ECU may behave differently depending on the diagnostic session and request conditions. Include session state in the expected exchange and test setup.

  4. Using a DBC as the complete diagnostic specification

    A DBC defines CAN messages and signals, but it does not by itself prove ISO-TP completion or define the expected UDS result.

  5. Collapsing all missing responses into one cause

    A missing response may reflect absent CAN communication, incorrect addressing, stopped flow control, timing behavior, ECU conditions, or an integration defect. Preserve these distinctions in the analysis.

  6. Asserting only the final application result

    A test can report a failed UDS assertion while hiding the fact that transport never completed. Record transport and diagnostic outcomes separately.

FAQ

ISO-TP questions

What does ISO-TP add to CAN diagnostics?
ISO-TP provides segmented transport for diagnostic payloads that do not fit into one CAN message. It coordinates transfer progression and reassembles the payload so that UDS can interpret it.
How can I tell whether a failed UDS request is actually an ISO-TP failure?
Check whether the complete transport exchange occurred first. If addressing, flow-control behavior, ordering, or timing prevented payload completion, the primary finding is transport-related; if the payload completed and the ECU responded, evaluate the UDS result separately.
Why is flow control important in a segmented exchange?
Flow-control behavior tells the sender how the segmented transfer should continue. If it is absent, incompatible, or handled at the wrong time, the transfer can stop even though CAN communication is visible.
What should a diagnostic application report when no response is received?
It should distinguish no observed CAN communication, an incomplete ISO-TP transfer, and a completed request with no expected UDS response. These outcomes point to different investigation paths.
Can a DBC alone validate ISO-TP diagnostics?
No. A DBC can define relevant CAN messages and signals, but validating ISO-TP diagnostics also requires observing transfer progression, flow-control behavior, timing, and the resulting UDS exchange.

Engineering support

Discuss an ISO-TP Project

Need a focused way to inspect ISO-TP traces, separate transport failures from UDS behavior, or build repeatable diagnostic tests? Discuss the engineering scope and expected evidence for a diagnostic application, engineering analysis, or automated test suite.