Datenübertragung: Vorbereitung der zyklischen Daten, Maximierung des Datendurchsatzes, ≤ Maximale Segmentgröße (63 Bytes)
HINWEIS: Ab dem zweiten MTU-Block beginnen die seriellen Daten in TxByte1. Es sind keine weiteren Kontrollbytes vorhanden.
Schritt |
Aktion |
---|---|
1 |
Kopieren des ersten Blocks der seriellen Daten in TxByte2 bis TxByteX. |
2 |
Erstellen des Kontrollbytes in TxByte1. Angabe der Datenlänge und Setzen der Frame-Enderkennung = 1. |
3 |
Erhöhen der Sende-Sequenznummer in der OutputSequence. Das Modul kopiert die Daten während des nächsten Zyklus in den Sendepuffer. |
4 |
Bei Verwendung des Block Forward-Mechanismus werden die Schritte 1 bis 3 wiederholt, bis die seriellen Daten blockweise übertragen wurden. Mit dem letzten Block erkennt das Modul, dass das Frameende erreicht wurde, und gibt den Frame zum Senden frei. Im nächsten Zyklus kann dann direkt ein neuer Frame gestartet werden. |
5 |
Die zyklischen Quittierungen der übergebenen Sende-Sequenznummern der Blöcke in der InputSequence bestätigen, dass diese Blöcke empfangen wurden. Bleibt eine Sende-Sequenznummer ohne Quittierung, muss der Vorgang ab der ersten nicht quittierten Sequenznummer wiederholt werden. |
Flussdiagramm der Datenübertragung: Vorbereitung der zyklischen Daten, Maximierung des Datendurchsatzes, Framelänge ≤ Maximale Segmentgröße
Framelänge > Maximale Segmentgröße
HINWEIS: Ab dem zweiten MTU-Block beginnen die seriellen Daten in TxByte1. Es sind keine weiteren Kontrollbytes vorhanden.
Schritt |
Aktion |
---|---|
1 |
Kopieren des ersten Blocks der seriellen Daten in TxByte2 bis TxByteX. |
2 |
Erstellen des Kontrollbytes in TxByte1. Angabe der Segmentlänge, Kontrollbyte-Position = 1 und Frame-Enderkennung = 0. |
3 |
Erhöhen der Sende-Sequenznummer in der OutputSequence. Das Modul kopiert die Daten während des nächsten Zyklus in den Sendepuffer. |
4 |
Bei Verwendung des Block Forward-Mechanismus werden die Schritte 1 bis 3 wiederholt, bis die Daten des ersten Segments blockweise übertragen wurden. |
5 |
Wenn im ersten Segment nach wie vor nicht zugewiesene TxBytes vorhanden sind, startet das nächste Segment mit Kontrollbyte-Position = 1 direkt im ersten nicht zugewiesenen TxByte und die verbleibenden Bytes werden mit Daten gefüllt. Wenn die Kontrollbyte-Position = 0, dann startet das nächste Segment in der nächsten neuen MTU. |
6 |
Wiederholen der Schritte 1 bis 5 zur blockweisen Übertragung aller Framesegmente. Setzen der Frame-Enderkennung = 1 im Kontrollbyte des letzten Segments. Mit dem letzten Block des letzten Segments erkennt das Modul, das die Framelänge erreicht wurde, und gibt den Frame zum Senden frei. Im nächsten Zyklus kann dann direkt ein neuer Frame gestartet werden. |
7 |
Die zyklischen Quittierungen der übergebenen Sende-Sequenznummern der vorhergehenden Blöcke/Segmente in der InputSequence bestätigen, dass diese Blöcke empfangen wurden. Bleibt eine Sende-Sequenznummer ohne Quittierung, muss der Vorgang ab der ersten nicht quittierten Sequenznummer wiederholt werden. |
Beispiel: Aufteilung von Kontrollbyte und Sendedaten
Ein Frame mit 27 Bytes ist zu übergeben. Die Größe der MTU wird auf 7 Bytes festgelegt.
Im Gegensatz zur Abbildung in Datenübertragung: Vorbereitung der zyklischen Daten, Maximierung des Datendurchsatzes und Überwachung der einzelnen Schritte werden in diesem Fall zwei MTU-Zyklen für dieselbe Framelänge und MTU-Größe reserviert. Ein neuer Frame kann nach dem letzten MTU-Zyklus 4 gestartet werden.
Für die Vorbereitung oder Aufteilung der Sendedaten ist is irrelevant, ob der Block Forward-Mechanismus genutzt wird oder nicht:
oOhne Einsatz des Block Forward-Mechanismus wartet das Modul nach den einzelnen MTU-Zyklen zur Übertragung der Sendedaten auf Quittierung der Sende-Sequenznummer.
oBei Rückgriff auf den Block Forward-Mechanismus wird im nächsten Zyklus sofort der nächste Datenblock übergeben.
Um den verfügbaren Speicherplatz im letzten MTU-Frameblock für den nächsten Frame zu nutzen, wird die Kennung für die Kontrollbyte-Position im letzten Kontrollbyte des Frames = 1 gesetzt. Das erste nicht zugewiesene TxByte im letzten MTU-Block wird dann als Kontrollbyte für den nächsten Frame verwendet. Die MTU wird mit den seriellen Daten des neuen Frames gefüllt, bis das Ende der Daten erreicht ist. Die seriellen Daten im nächsten Zyklus starten in TxByte1.
Beispiel für die Aufteilung von Kontrollbyte und Sendedaten
Es sind zwei Frames mit 27 Bytes und 20 Bytes zu übergeben. Die Größe der MTU wird auf 15 Bytes festgelegt.