ISO-TP (ISO 15765-2)

ISO-TP is most commonly used for OBD diagnostic messages and UDS (Unified Diagnostic Services).

The following subset of the specification is supported:

  • ISO-TP Normal (11/29 bit) addressing mode (other addressing modes not supported)

  • Single-frame transmissions (with 4 and 8 bit length field)

  • Multi-frame transmissions (with 12 and 32 bit length field)

  • Segmentation with and without padding

  • Assembly of payloads up to 8192 bytes


Example (normal addressing)

Node A wants to transmit a 20 byte payload to Node B on a CAN-bus supporting 8 byte payloads. To do so, the payload needs to be segmented, transmitted and reassembled.

Below lists the normal-addressing configuration.

Transmit ID

Receive ID

Node A (A)

123

456

Node B (B)

456

123

The payload to transmit is: 000102030405060708090A0B0C0D0E0F10111213. The transmission of the segmented payload and the flow-control messages are listed below.

FF: First-Frame, CF: ConsecutiveFrame, FC: Flow-Control, DL: Data Length, SN: Sequence-Number

Direction

ID

Payload

Frame type

Info

A > B

0123

1014000102030405

FF

DL: 20, Segment: 000102030405

B > A

0456

300100

FC

FS: Continue-to-send, BS: 1

A > B

0123

21060708090A0B0C

CF

SN: 1, Segment: 060708090A0B0C

B > A

0456

300100

FC

FS: Continue-to-send, BS: 1

A > B

0123

220D0E0F10111213

CF

SN: 2, Segment: 0D0E0F10111213

Node-B reassembles the full payload once the final segment is received.