ISO-TP – ISO 15765-2
Previous transport protocols had limitations when transferring large amounts of data, as can occur particularly during programming and flashing. For this reason, ISO 15765-2 defined a new transport protocol (ISO-TP for short). The standard applies to various vehicle-specific bus systems such as the CAN bus, FlexRay, LIN, and MOST.
The ISO-TP layer covers Layers 3 and 4 of the OSI model and can transport up to 4,095 bytes of payload data in a single telegram. To do this, the payload data is divided into individual telegrams and supplemented with control data that enables the recipient to interpret it.
ISO-TP supports both addressing via the standard CAN identifier and addressing via extended addressing. With extended addressing, the first byte of a frame’s payload is also used to transmit additional address information. This is necessary when not every control unit has its own CAN identifier.
Every ISO-TP telegram always contains one byte for protocol information (PCI—Protocol Control Information). This byte carries the frame type, a counter, and status information.
| PCI Identifier | Telegram Type |
|---|---|
| 0x0 | Single Frame |
| 0x1 | First Frame |
| 0x2 | Consecutive Frame |
| 0x3 | Flow Control |
Overview
- The transmission process is initiated by the transmitter with a first frame.
- The receiver acknowledges the first frame using a flow control signal. With this flow control signal, the receiver also informs the transmitter of the maximum number of consecutive frames that may follow one another and the maximum time interval between them.
- The transmitter then sends the permitted number of consecutive frames. The receiver also acknowledges this block with a flow control message.
- This transmission of consecutive frame blocks is repeated until all data has been transmitted.

Structure of the Various Frame Types
1. Single Frame
If only 6 bytes (extended addressing) or 7 bytes (standard) need to be transmitted, no segmentation is required, and a single frame is sent.

Identifier: 0x0 – Identifier Single Frame
DL: Data Length (max. 6/7 Bytes)
2. First Frame
A first frame is sent when there is more data to be transmitted than can be contained in a single frame. In this case, the first frame does not initially carry any payload data, but only the total length of the data to be transmitted.

Identifier: 0x1 – Identifier First Frame
DL: Data Length (max. 4095 Bytes)
3. Consecutive Frame
After the first frame, all subsequent data is transmitted in consecutive frames. These frames also include a counter, which can be used to detect lost frames.

Identifier: 0x2 – Identifier Consecutive Frame
SN: Sequence Number (0-15)
4. Flow Control
A flow control frame can be used to specify how the transmission should take place.

Identifier: 0x3 – Identifier Flow Control
FS: Flow Status (0 – Clear to send, 1 – Wait, 2 – Overflow)
BS: Block size of the maximum possible consecutive frames
ST: Minimum separation time between consecutive frames
