
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
> Was machst Du, wenn das Programm in der C-Control das erste Zeichen schneller verarbeitet als das > zweite ankommt und das zweite Zeichern schneller verarbeitet als das dritte ankommt? > > Dann schickt sie nach dem ersten Zeichen das "GO" für weitere 4 und nach dem zweiten Zeichen das > "GO" für nochmal 4, obwohl noch 6 in der Pipeline sind. Also dann mal ganz anders... Wenn folgendes für CC und Kommunikationpartner gilt: - 1 InfoByte + 4Byte Datenbyte = 5Byte Block - gesendet wird immer abwechselnd (so kann keiner den andeen im Takt "überholen") - gesendet wird erst nachem alles Angekommende (5Byte) abgearbeitet wurde (so bleiben beide in einem Takt) - Das Infobyte kodiert Sonderfälle. Es steht normalerweise fest z.B. auf 0. Wenn z.B. eine Seite nichts zu senden hat, wird das Infobyte z.B. 1 gesetzt und kein Datenbyte gesendet. Damit braucht der Empfänger nur das erste Byte verarbeiten und beschleunigt die Kommunikation. Des Start: - Durch eine Zufallszahl wird jeweils ermittelt, ob sich die CC/ Gegenüber als Anfänger der Kommunikation oder als Zweiter betrachtet. (gerade Zahl = Anfänger; ungerade = Zweiter) - Das wird dem Partner übermittelt (Infobit = 2 für gerade 3 für ungerade) - Ist einer Anfänger der andere Zweiter so löscht der Zweite alles ausm Buffer, bis er das Startsignal (Infobit = 4) findet und sendet es zurück. Er wartet ab jetzt auf die ersten Daten. Der Anfänger mach nun das gleiche. Findet er die 4 darf er die ersten Daten senden. Ab nun ist der Verkehr syncronisiert. Ist kein Anfänger oder Zweiter ermittelt wird neu "gelost". Puhh! Hab lange drüber nachgedacht. Kontrollier das mal kritisch. Wenn es was ist, kann man es vielleicht doch mal einsetzen. ;-) |
| Antwort schreiben |