arrow-down-a-zISO-TP (ISO 15765-2)

ISO-TP (ISO 15765-2) is a protocol used in automotive networks, specifically designed for transmitting larger data packets across CAN-bus systems. It enables the segmentation of messages into smaller frames, adhering to the CAN frame size limit of 8 bytes. This protocol establishes a method for sending messages that exceed this limit by breaking them into a series of sequential frames, ensuring efficient and reliable communication between electronic control units (ECUs) in vehicles.

Key Features of ISO-TP

  1. Segmentation and Reassembly: ISO-TP breaks down large messages into smaller frames, allowing seamless transmission over the CAN-bus. Each frame is then reassembled into the original message by the receiving ECU.

  2. Flow Control: The protocol includes a flow control mechanism to regulate the transmission rate, ensuring that the sender does not overwhelm the receiver.

  3. Error Handling: ISO-TP provides error detection and recovery processes to maintain data integrity during transmission.

  4. Compatibility: As an extension of the CAN protocol, ISO-TP is widely supported by most ECUs in modern vehicles, ensuring interoperability among different manufacturers' components.

Implementation Considerations

When implementing ISO-TP in an automotive application, engineers must consider the following:

  • Buffer Size: Ensure sufficient buffer size in the ECUs to handle segmented messages without data loss.

  • Timing Constraints: Adhere to specified timing intervals for message transmission and acknowledge receipt frames to prevent network congestion.

  • Network Load: Evaluate network capacity and adjust flow control parameters to optimize communication efficiency in high-traffic scenarios.

Understanding these key aspects of ISO-TP can significantly enhance the robustness and efficiency of in-vehicle networks.

Understanding ISO-TP

As CAN Bus supports only up to 8 bytes per frame. ISO-TP solves this by breaking down larger messages into smaller chunks (frames) and sending them sequentially.

Drawing
Flow Diagram - ISOTP

Frame Types and PCI Information

The first byte of every ISO-TP frame contains the PCI, which determines the frame type:

Frame Type

PCI Byte (Hex)

Description

Single Frame (SF)

0x00 - 0x07

Used for payloads ≤ 7 bytes.

First Frame (FF)

0x10 - 0x1F

Starts a multi-frame payload. Contains total payload length in the first two bytes(7 -4095).

Consecutive Frame (CF)

0x20 - 0x2F

Continues the multi-frame payload. Includes a sequence number (0–15).

Flow Control (FC)

0x30 - 0x32

Sent by the receiver to manage flow. Specifies block size and separation time.

How to Identify Frame Types

1

Single Frame (SF)

  • PCI: The first byte is 0x00 - 0x07.

  • Length: The lower nibble of the first byte indicates the payload length (1–7 bytes).

  • Usage: For small payloads that fit in one CAN frame.

  • Example Response of Request Seed(27 01):

    This means a 6-byte payload: 67 01 AA BB CC DD.

2

First Frame (FF)

  • PCI: The first byte starts with 0x10 - 0x1F.

  • Length: The total payload length is in the first two bytes.

    • Upper nibble: 0x10 indicates First Frame.

    • Lower nibble + next byte: Total payload length (e.g., 0x14 = 20 bytes).

  • Payload: Contains the first 6 bytes of the payload.

  • Example Response of Read by DID(F190):

    First Frame starts a 20-byte message: 62 F1 90 31 48 47.

3

Consecutive Frame (CF)

  • PCI: The first byte starts with 0x20 - 0x2F.

  • Sequence Number: The lower nibble increments for each frame (0–15).

  • Payload: Contains up to 7 bytes of the remaining payload.

  • Example of 1st Sequence:

    Sequence number 1 carries the next 7 bytes.

  • Example of 2nd Sequence:

    Sequence number 2 carries the next 7 bytes of the first sequence.

Retrieved VIN: "31 48 47 43 4D 38 32 36 33 33 41 31 32 33 34 35 36"

4

Flow Control (FC)

  • PCI: The first byte starts with 0x30 - 0x32.

  • Flow Control Information:

    • 0: Flow Status = "Continue to Send".

    • 1: Flow Status = "Wait"

    • 2: Flow Status = "Overflow"

    • Next bytes:

      • Block Size (BS): Number of frames allowed before requiring another FC.

      • Separation Time (STmin): Minimum time delay (in milliseconds) between frames.

  • Example:

circle-info

During UDS testing, use isotpdump to obtain all ISO-TP information for each frame.

Below is the candump result of retrieving VIN as above explained:

Last updated