ISO-TP#
Protocol Basics (ISO 15765-2)#
ISO 15765-2, also known as ISO-TP (ISO-15765 Transport Protocol), is a communication protocol used in the automotive industry to transmit data over a Controller Area Network (CAN) bus. It is designed to provide a reliable and efficient way to transfer large amounts of data, such as software updates and diagnostic data, over the CAN bus.
The protocol defines a set of rules for the data transfer, including the format of the data frames, the flow control mechanisms, and the error handling. The data frames are divided into smaller segments, called segments, which are transmitted over the CAN bus. The protocol also defines a set of flow control mechanisms, such as flow control frames, to handle situations where the receiver’s buffer is full.
ISO 15765-2 uses a multi-frame format, where a large message is divided into multiple smaller frames and sent over the bus. Each frame is identified by a unique ID, which allows the receiver to reassemble the frames in the correct order and to detect missing or duplicate frames.
Summary
Transport protocol for data transfer over CAN, FlexRay, LIN and MOST
Point-to-point communication
Up to \(2^{32}-1\) byte payloads (4GB)
Flow-Control management
No re-transmission functionality
Protocol Control Information (PCI)#
ISO-TP defines four special frame type
Frame type 0: SF (Single Frame)
Frame type 1: FF (First Frame)
Frame type 2: CF (Consecutive Frame)
Frame type 3: FC (Flow Control Frame)
ISOTP-addressing#
The ISO-TP standard describes three different kinds of addressing: normal, extended, and mixed addressing [ISOCSecretary16a]. Dependent on the addressing mode, the AI (Address Information) is encoded in different fields of a CAN frame. Also, the position of the protocol control information field varies, depending on the used addressing scheme. For further references in this paper, all addressing schemes will be identified with a label from the table following.
Ref. |
Description |
---|---|
A1 |
Normal addressing, 11-bit CAN identifier |
A2 |
Normal fixed addressing, 29-bit CAN identifier |
A3 |
Extended addressing, 11-bit CAN identifier |
A4 |
Mixed addressing with 29-bit CAN identifier |
A5 |
Mixed addressing with 11-bit CAN identifier |
FC structure#
Flow-Control status (FS) codes:
0 = Clear to send
1 = Wait
2 = Overflow
Abbreviations:
AI: Address Information
PCI: Protocol Control Information
SA: Source Address
TA: Target Address
ISOTP addressing complexities#
Ref. |
||
---|---|---|
A1 |
\(2^{11}\) |
\(2048\) |
A2 |
\(2 \times 2^8 \times 2^8 = 2^{17}\) |
\(131072\) |
A3 |
\(2^{11} \times 2^8 = 2^{19}\) |
\(524288\) |
A4 |
\(2 \times 2^8 \times 2^8 \times 2^8 = 2^{25}\) |
\(33554432\) |
A5 |
\(2^{11} \times 2^8 = 2^{19}\) |
\(524288\) |
Padding#
The ISOTP communication can be with or without padding. With padding every CAN frame is always 8 bytes long, if not all 8 bytes are needed, the rest is filled up with a predefined byte. Normally a “0xA” is used as padding since it will produce no stuffing bits on the CAN.
FC examples#
The figure above highlights all ISO-TP communication parameters for addressing scheme A1. A FF (blue) message with SA 0x603 (green) and a packet size of 100 bytes (red) is sent on the CAN bus. An ISO-TP endpoint with TA 0x703 (orange) acknowledges the FF message with an FC message (blue). The CAN message length of 8 bytes indicates that this ISO-TP endpoint uses padding (brown). The addressing scheme can be determined by the position of the frame type identification (blue).
Another example of addressing schemes A3 or A5 is given in the figure above. In real-world scenarios, these two addressing schemes are not deducible from their communication traffic. On the other hand, for the ISO-TP endpoint identification, it does not matter which one is used. Source and destination ISO-TP endpoint addresses are still encoded in the CAN identifier. Additionally, extended address information is encoded in the first payload byte of each CAN packet (dark orange and dark green). The ISO-TP frame type information is moved to byte position two of the CAN packet payload. This ISO-TP endpoint does not require padding, which can be seen from the shorter CAN message length of the receiver flow control acknowledgment.
ISOTP communication#
First frame from sender
Sender waits for FC to send more data
Receiver sends FC after FF and if FC needs to update