Latenzen im Ethernet-zu-RS232-Adapter

646
lerner1225

Voraussetzung: Auf meinem Windows läuft eine Software, die über einen RS232-Port an ein externes Gerät kommuniziert. Die Hardware empfängt die vom PC gesendeten Befehle und antwortet dem PC zurück. Bei Verwendung eines einfachen Kabels zwischen Computer und Hardware ohne Adapter ist die Übertragung und der Empfang in etwa 50 ms abgeschlossen. Bei Verwendung eines Ethernet-zu-RS232-Adapters beträgt die gesamte Kommunikationszeit (50 + x) ms mit einer Latenz von x ms.

Es gibt viele Produkte online verfügbar, ich habe einige Produktdatenblätter durchgesehen. Es gab Informationen über Ethernet- und serielle Kommunikationsparameter wie Datenbits, Baudrate und Geschwindigkeit, aber nirgends konnte ich die Latenzinformationen finden.

Bisher habe ich einen Adapter (max. Baudrate 230,4 kbps) verwendet, um meine Software zu testen, aber ich kam in die Ausnahme "Serial Port Timeout".

Frage

Von welchen Kriterien hängt diese Latenz ab?

Ist die Latenzzeit von der Baudrate abhängig?

Was muss ich in den DataSheets nachprüfen, um die Latenz zu ermitteln?

Stellen Hersteller Informationen zur Latenzzeit zur Verfügung?

2
Latenz ist ein Effekt und bezieht sich auf die Zeitspanne zwischen dem Beginn und dem Abschluss eines Prozesses. Als solches variiert es je nach Perspektive und ist nie eine entworfene / spezifizierte Sache (obwohl dies oft unvermeidlich ist), daher ist es nicht etwas, das ein bestimmtes System angeben kann. Es ist nicht wie ein bestimmtes Kabel aus den meisten Perspektiven eine bestimmte "Latenz". Die Übertragungsverzögerung ist am nächsten und bezieht sich auf die Zeit, die ein Signal benötigt, um von einem Ende eines Mediums zu einem anderen zu gelangen. Dies ist jedoch in den Spezifikationen für Netzwerkstandards wie 802.3 / Ethernet oder in Ihrem Fall RS-232 integriert. Frank Thomas vor 7 Jahren 2
Nach meinem Verständnis konvertieren Sie ein RS232-Signal in einen Ethernet-Datenstrom und zurück in ein RS232-Signal, richtig? Als solches wäre es zumindest die Verzögerung, die für die Konvertierung benötigt wird, was als Befehl eines Pakets definiert / entpackt wird ... zweimal (einmal für jedes Ende). Seth vor 7 Jahren 0

1 Antwort auf die Frage

0
user650881

Von welchen Kriterien hängt diese Latenz ab?

Pufferung, Datenrahmung, Übertragung, Protokoll und Timeout würde ich als die wichtigsten erachten.

Wie in anderen Kommentaren erwähnt, gibt es mindestens Verzögerungen bei der Protokollübersetzung. Sie müssen die Endpunkt- und Bridge-Datenpufferung, -codierung, den Protokolloverhead und die Übertragungszeit berücksichtigen. Die Latenzzeit wird davon beeinflusst, ob vor der Übertragung ein vollständiger Datenrahmen gepuffert wird oder wie die internen Zeitüberschreitungen aussehen. Diese können in einigen Geräten konfiguriert werden.

Es hängt auch davon ab, ob das Ethernet-Protokoll UDP, TCP oder ein benutzerdefiniertes Protokoll verwendet. Es hängt davon ab, ob das Protokoll die erneute Übertragung unterstützt und ob es zusätzliche Integritäts- oder Signalisierungsinformationen hinzufügt. Wieder können diese in einigen Geräten konfiguriert werden. Ohne nachgeschaut zu haben, würde ich vermuten, dass Low-End-Geräte dazu neigen, UDP ohne jegliche Integrität oder erneute Übertragung zu verwenden, und dazu neigen, einen vollständigen UDP-Datenrahmen mit einem internen Timeout zu puffern, um einen Teilrahmen zu senden, wenn der Datenfluss stoppt.

Ist die Latenzzeit von der Baudrate abhängig?

Es hängt wirklich davon ab, welche Latenz Sie messen. Der Unterschied bei den seriellen Datenraten beeinflusst Ihren Durchsatz wahrscheinlich stärker als Ihre Latenz . Ja, es wirkt sich zwar auf die Latenz aus, aber bedenken Sie, dass ein Byte bei 9600 Bit / s etwa 1 ms für die Übertragung benötigt.

Was muss ich in den DataSheets nachprüfen, um die Latenz zu ermitteln?

Stellen Hersteller Informationen zur Latenzzeit zur Verfügung?

Bridges für industrielle Anwendungen liefern manchmal Informationen über Latenz und / oder Durchsatz. Eine solche Produktseite gibt beispielsweise eine Latenz von 2ms an. Es gibt auch einige vom Unternehmen gesponserte Testberichte wie diesen Wettbewerbsvergleich 2003 oder diesen Bericht 2002, in dem die Latenzzeiten für mehrere Geräte verglichen werden. Die Latenzen in ihrem Test reichen von wenigen Millisekunden bis zu einem Durchschnitt von 861 ms.

Wie dem auch sei, es scheint, dass Ihr zugrunde liegendes Problem eher ein Timeout der seriellen Schnittstelle als ein Latenzproblem ist. Nach allem, was Sie gesagt haben, vermute ich vorläufig einen Software- oder Konfigurationsfehler. In einer seriellen Schnittstellenbibliothek sind in der Regel mehrere Timeouts angegeben, z. B. Interbyte-Timing, Lese- und Schreibzeit für mehrere Bytes. Es gibt auch Pufferüberlauffehler, wenn die gepufferten Daten nicht schnell genug geleert werden. Wie Sie vielleicht wissen, können Sie normalerweise jedes Timeout in Ihrem seriellen Client anpassen oder deaktivieren.

Ich würde zunächst feststellen, wo der Fehler entsteht. Sie können auch die Geschwindigkeit auf 9600 reduzieren, da billige Adapter bei ihren angegebenen Maximalwerten nicht immer gut funktionieren.