12.10.4.3 Synchronisieren
Beim Synchronisieren wird ein Kommunikationskanal geöffnet. Es muss sichergestellt sein, dass ein Modul
vorhanden und der aktuelle Wert des SequenceCounters beim Empfänger der Nachricht hinterlegt ist.
Der Flatstream bietet die Möglichkeit Vollduplex zu kommunizieren. Beide Kanäle/Kommunikationsrichtun-
gen können separat betrachtet werden. Sie müssen unabhängig voneinander synchronisiert werden, so-
dass theoretisch auch simplex kommuniziert werden könnte.
Synchronisation der Output-Richtung (Steuerung als Sender)
Die korrespondierenden Synchronisationsbits (OutputSyncBit und OutputSyncAck) sind zurückgesetzt.
Aus diesem Grund können momentan keine Nachrichten von der Steuerung an das Modul per Flatstream
übertragen werden.
Algorithmus
1) Steuerung muss 000 in OutputSequenceCounter schreiben und OutputSyncBit zurücksetzen.
Steuerung muss High-Nibble des Registers "InputSequence" zyklisch abfragen (Prüfung ob 000 in OutputSequenceAck und 0 in OutputSyncAck).
Modul übernimmt den aktuellen Inhalt der InputMTU nicht, weil der Kanal noch nicht synchronisiert ist.
Modul gleicht OutputSequenceAck und OutputSyncAck an die Werte des OutputSequenceCounters bzw. des OutputSyncBits an.
2) Wenn die Steuerung die erwarteten Werte in OutputSequenceAck und OutputSyncAck registriert, darf sie den OutputSequenceCounter inkremen-
tieren.
Die Steuerung fragt das High-Nibble des Registers "OutputSequence" weiter zyklisch ab (Prüfung ob 001 in OutputSequenceAck und 0 in InputSyn-
cAck).
Modul übernimmt den aktuellen Inhalt der InputMTU nicht, weil der Kanal noch nicht synchronisiert ist.
Modul gleicht OutputSequenceAck und OutputSyncAck an die Werte des OutputSequenceCounters bzw. des OutputSyncBits an.
3) Wenn die Steuerung die erwarteten Werte in OutputSequenceAck und OutputSyncAck registriert, darf sie das OutputSyncBit setzen.
Die Steuerung fragt das High-Nibble des Registers "OutputSequence" weiter zyklisch ab (Prüfung ob 001 in OutputSequenceAck und 1 in InputSyn-
cAck).
Hinweis:
Theoretisch könnten ab diesem Moment Daten übertragen werden. Es wird allerdings empfohlen, erst dann Daten zu übertragen, wenn die Out-
put-Richtung vollständig synchronisiert ist.
Modul setzt OutputSyncAck.
Output-Richtung synchronisiert, Steuerung kann Daten an Modul senden.
Synchronisation der Input-Richtung (Steuerung als Empfänger)
Die korrespondierenden Synchronisationsbits (InputSyncBit und InputSyncAck) sind zurückgesetzt. Aus
diesem Grund können momentan keine Nachrichten vom Modul an die Steuerung per Flatstream übertra-
gen werden.
Algorithmus
Modul schreibt 000 in InputSequenceCounter und setzt InputSyncBit zurück.
Modul überwacht High-Nibble des Registers "OutputSequence" - erwartet 000 in InputSequenceAck bzw. 0 in InputSyncAck.
1) Steuerung darf den aktuellen Inhalt der InputMTU nicht übernehmen, weil der Kanal noch nicht synchronisiert ist.
Steuerung muss InputSequenceAck und InputSyncAck an die Werte des InputSequenceCounters bzw. des InputSyncBits angleichen.
Wenn das Modul die erwarteten Werte in InputSequenceAck und in InputSyncAck registriert, inkrementiert es den InputSequenceCounter.
Modul überwacht High-Nibble des Registers "OutputSequence" - erwartet 001 in InputSequenceAck bzw. 0 in InputSyncAck.
2) Steuerung darf den aktuellen Inhalt der InputMTU nicht übernehmen, weil der Kanal noch nicht synchronisiert ist.
Steuerung muss InputSequenceAck und InputSyncAck an die Werte des InputSequenceCounters bzw. des InputSyncBits angleichen.
Wenn das Modul die erwarteten Werte in InputSequenceAck und in InputSyncAck registriert, setzt es das InputSyncBit.
Modul überwacht High-Nibble des Registers "OutputSequence" - erwartet 1 in InputSyncAck.
3) Steuerung darf InputSyncAck setzen.
Hinweis:
Theoretisch könnten bereits in diesem Zyklus Daten übertragen werden.
Es gilt: Wenn das InputSyncBit gesetzt ist und der InputSequenceCounter um 1 erhöht wurde, müssen die Informationen der aktivierten Rx-Bytes
übernommen und bestätigt werden (siehe dazu auch Kommunikation in Input-Richtung).
Input-Richtung synchronisiert, Modul kann Daten an Steuerung senden.
X20 System Anwenderhandbuch 4.30
Zusätzliche Informationen
247