FlexRay TP
Das Problem der Segmentierung stellt sich bei FlexRay in ähnlicher Form wie bei CAN. Theoretisch kann eine FlexRay-Botschaft zwar bis zu 254 Datenbytes enthalten, praktisch wird man die Botschaftslänge aber deutlich kürzer wählen – zumindest im statischen Segment. Daher hat Autosar einen Vorschlag für einen Transport-Layer für FlexRay vorgelegt, der auch als Basis für den ISO-Standard 10681-2 dient. Allerdings hat sowohl der Autosar-Standard als auch der Entwurf der ISO-Norm eine Reihe von Modifikationen erlebt, so dass es im Augenblick gewagt wäre zu sagen, dass der Transport-Layer für FlexRay bereits absolut stabil sei.
Das Botschaftsformat wurde gegenüber ISOTP für CAN nur geringfügig modifiziert. Zum Beispiel in Form der PCI-Information. Allerdings wollte man mit diesem Transport-Protokoll deutlich längere Botschaften darstellen können. Deswegen hat man den Single-Frame über eine andere Kennung in einen Single-Frame-Extended modifiziert. Hier ist das Feld für die Datenlänge so gewählt, dass man bis zu 250 Bytes in eine Botschaft packen kann.
Modifiziertes Botschaftsformat für AUTOSAR FR TP |
Dann gibt es einen First- und einen Consecutive-Frame, wie wir ihn von CAN kennen und des Weiteren eine Extended-Variation des First-Frames, bei der das Datenlängenfeld so gewählt ist, dass man insgesamt eine Datenlänge von bis zu vier Gigabyte adressieren kann. Bei CAN waren es dagegen nur vier Kilobyte.
Am Anfang der Transportbotschaften musste man bei FlexRay ein Feld für die Adressierungsinformationen einfügen, das es bei CAN so nicht gibt. Dort hat man diese über die CAN-ID kodiert. Bei FlexRay werden nun im ersten Teil der Nutzdaten einer FlexRay-Botschaft die Target- und Source-Adresse mitgeschickt. Der Sinn des Mitsendens dieser beiden Adressen für Quell- und Empfängersteuergerät ist, dass man bei FlexRay nicht für jede Kommunikation zwischen einem Sender und einem Empfänger einen separaten Slot in der Scheduling-Table reservieren will. Daraus ergibt sich: Wenn man einen Slot mehrfach benutzen will, dann muss es einen Mechanismus geben, der unterscheidet, wer Sender und wer Empfänger ist. Aus diesem Grund wird diese Information auf der Transportprotokollebene mitversendet.
Als letztes gibt es dann einen zusätzlichen Acknowledge-Frame, der vom Empfänger zum Sender gesendet wird, um zu bestätigen, dass die Daten auch korrekt angekommen sind. Das ist notwendig, da es im Gegensatz zu CAN bei FlexRay innerhalb der Botschaft keine Fehlerrückmeldung zwischen Empfänger und Sender gibt. Auf Applikationsebene muss im Fehlerfall eine Sendewiederholung eingeleitet werden, während der CAN-Controller hier das Versenden automatisch wiederholt.
Siehe auch