ISO-TP – ISO 15765-2
Die bisherigen Transportprotokolle wiesen Einschränkungen bei der Übertragung größerer Datenmengen auf, wie sie insbesondere bei der Programmierung und beim Flashen auftreten können. Aus diesem Grund wurde durch die ISO 15765-2 ein neues Transportprotokoll (kurz ISO-TP) definiert. Die Norm findet Anwendung für verschiedene fahrzeugspezifische Bussysteme wie den CAN-Bus, FlexRay, LIN oder MOST.
Die ISO-TP-Schicht deckt die Layer 3 und 4 im OSI-Modell ab, und kann bis zu 4095 Bytes Nutzdaten in einem Telegramm transportieren. Dazu werden die Nutzdaten auf einzelne Telegramme aufgeteilt, und um Steuerdaten ergänzt, die eine Interpretation durch den Empfänger ermöglichen.
ISO-TP ermöglicht sowohl die Adressierung über den üblichen CAN-Identifier, als auch die Adressierung mittels Extended Addressing. Beim Extended Addressing wird zusätzlich das erste Byte der Nutzdaten eines Frames genutzt, um eine weitere Adressinformation zu übertragen. Dies ist erforderlich, wenn nicht jedes Steuergerät über einen eigenen CAN-Identifier verfügt.
In jedem ISO-TP-Telegramm ist grundsätzlich ein Byte für die Protokoll-Informationen (PCI – Protocol Control Information) enthalten. Hier werden der Frame Typ, ein Zähler und eine Statusinformation übertragen.
| PCI Identifier | Telegramm-Typ |
|---|---|
| 0x0 | Single Frame |
| 0x1 | First Frame |
| 0x2 | Consecutive Frame |
| 0x3 | Flow Control |
Ablauf
- Der Sendevorgang wird vom Sender mit einem First Frame gestartet.
- Der Empfänger bestätigt den First Frame durch ein Flow Control. Mit diesem Flow Control teilt er dem Sender außerdem mit, wie viele Consecutive Frames aufeinander folgen dürfen, und wie der zeitliche Abstand zwischen diesen sein darf.
- Der Sender übermittelt daraufhin die zulässige Anzahl an Consecutive Frames. Dieser Block wird ebenfalls wieder vom Empfänger mit einem Flow Control bestätigt.
- Dieses Senden von Consecutive Frame Blöcken wird wiederholt, bis sämtliche Daten übertragen wurden.

Aufbau der verschiedenen Frame-Typen
1. Single Frame
Müssen lediglich 6 (extended Adressing) oder 7 (Standard) Bytes übertragen werden, ist keine Segmentierung erforderlich und es wird ein einzelner Frame geschickt.

Identifier: 0x0 – Identifier Single Frame
DL: Data Length (max. 6/7 Bytes)
2. First Frame
Ein First Frame wird gesendet, wenn mehr Daten zu senden sind, als durch einen Single Frame aufgenommen werden können. In diesem Fall transportiert der First Frame zunächst noch keine Nutzdaten, sondern lediglich die Gesamtlänge der zu übertragenden Daten.

Identifier: 0x1 – Identifier First Frame
DL: Data Length (max. 4095 Bytes)
3. Consecutive Frame
Nach einem First Frame folgen alle weiteren Daten in Consecutive Frames. Diese führen außerdem einen Zähler mit. Über diesen können verloren gegangene Frames erkannt werden.

Identifier: 0x2 – Identifier Consecutive Frame
SN: Sequence Number (0-15)
4. Flow Control
Durch einen Flow Control Frame kann die Art und Weise festgelegt werden, in der die Übertragung erfolgen soll.

Identifier: 0x3 – Identifier Flow Control
FS: Flow Status (0 – Clear to send, 1 – Wait, 2 – Overflow)
BS: Blocksize der maximal möglichen folgenden Consecutive Frames
ST: min. Separation Time zwischen aufeinander folgenden Consecutive Frames
