Skip to content

ISO 15765-2 ISO-TP (Transport Protocol)

CAN Protocol

Allows for more than 8 bytes of data to be sent over a CAN bus. Breaks the message into multiple frames with added metadata (CAN-TP Header).

Can carry up to bytes of payload.

Most commonly used in diagnostic messages with OBD-2 equipped vehicles.

One or more byte of the 8 byte CAN payload is replaced by metadata, this is called the Protocol Control Information or PCI, which is typically 1-3 bytes.

Protocol Control Information

ISO-TP metadata uses a dynamic size header defined by the first 4 bits of the header. This Protocol Control Information contains a value declaring the header to be one of 4 types of PCI headers, as well as the size of the data following the header.

  • Single Frame (SF, first byte is 0x0X)
  • First Frame (FF, first byte is 0x1X)
  • Consecutive Frame (CF, first byte is 0x2X)
  • Flow Control Frame (FC, first byte is 0x3X)

ISO-TP Frame Types

TypeCodeDescription
Single Frame (SF)0A complete payload (7 bytes max)
First Frame (FF)1Indicates more messages expected, contains the length of the full packet
Consecutive Frame (CF)2Contains the next data
Flow Control Frame3The response from the receiver, with FC Data

Padding

The data payload in the CAN message can be padded to 8 bytes with arbitrary values (0xCC, 0xAA, 0x00).

CAN-TP Header

CAN 2.0A Frame

ISOTP Data Payload

Flow Control

Bit Offset7..4 (byte 0)3..0 (byte 0)15..8 (byte 1)23..16 (byte 2)
DescriptionTypeIf the transfer is allowedBlock SizeSeparation Time (Minimum Delay Between Frames)
SingleType = 30 = Continue, 1 = Wait, 2 = Abort0 = "Remaining Frames" to be sent before next FC<= 127ms ST
SingleType = 30 = Continue, 1 = Wait, 2 = Abort> 0 = Send number of frames before waiting for the next FC frame100-900ms ST

FC dictates how many frames to send before expecting another FC frame.

Sequences

Control Flow Diagram