ISO 15765-2 ISO-TP (Transport 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
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
Type | Code | Description |
---|---|---|
Single Frame (SF) | 0 | A complete payload (7 bytes max) |
First Frame (FF) | 1 | Indicates more messages expected, contains the length of the full packet |
Consecutive Frame (CF) | 2 | Contains the next data |
Flow Control Frame | 3 | The 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 Offset | 7..4 (byte 0) | 3..0 (byte 0) | 15..8 (byte 1) | 23..16 (byte 2) |
---|---|---|---|---|
Description | Type | If the transfer is allowed | Block Size | Separation Time (Minimum Delay Between Frames) |
Single | Type = 3 | 0 = Continue, 1 = Wait, 2 = Abort | 0 = "Remaining Frames" to be sent before next FC | <= 127ms ST |
Single | Type = 3 | 0 = Continue, 1 = Wait, 2 = Abort | > 0 = Send number of frames before waiting for the next FC frame | 100-900ms ST |
FC dictates how many frames to send before expecting another FC frame.