Netzwerkmodem und Serial-Ethernet-Converter
Begriffserklärungen
Bei der Entwicklung wurde großes Augenmerk auf die Kompatibilität des „virtuellen“ seriellen Treibers mit dem Standard-Treiber gelegt.
Dennoch ergeben sich durch das Ethernet kleine Einschränkungen.
- Es wird nicht Byteweise auf das Netzwerk gesendet, sondern Ethernet-Blöcke werden gebildet. Dadurch treten kurze Verzögerungen auf.
- Es treten Laufzeit - Verzögerungen auf. (Ethernetlaufzeit)
Aus sequenziellen seriellen Daten müssen Ethernetblöcke gebildet werden.
Die Funktion der Blockung hat primär keinen Einfluss auf die Applikation, kann jedoch die Netzlast verringern helfen.
Windows API
Das Application Programing Interface (API) des Treibers ist mit dem des seriellen Treibers von Windows identisch. Dadurch können alle Applikationen, die dieses Interface verwenden, mit ipEther232 arbeiten. Es können alle Funktionen verwendet werden. Jedoch kann das Timing abweichen da es zu Verzögerungen durch die Ethernetlaufzeit kommt.
UART
Der UART unterstützt Übertragungsgeschwindigkeiten von 2400 Baud bis 115200 Baud. Bei höheren Baudraten können bei kontinuierlichen Datenströmen Datenverluste auftreten.
Es können 7 oder 8 Datenbits verwendet werden.
Die Paritäten keine, gerade, ungerade, 1 und 0 werden unterstützt.
Bei 7-Bit Daten kann die Parität keine nicht verwendet werden (7N1).
Senden
Zwischen dem Aufruf WriteFile in der Applikation und dem Erscheinen des ersten Bytes auf der Schnittstelle vergehen ca. 5 Millisekunden. Alle folgenden Bytes des Auftrags werden lückenlos auf der Schnittstelle ausgegeben. Bei synchronem Schreiben kehrt der Aufruf ca. 5 Millisekunden nach dem Erscheinen des letzten Bytes auf der Schnittstelle zurück. Für jeden Aufruf der Funktion WriteFile geht mindestens ein Paket auf das Ethernet. Nach Möglichkeit sollten immer Blöcke geschrieben werden.
Empfangen
Bei dem Empfang von seriellen Daten müssen Ethernetblöcke gebildet werden.
Dafür gibt es zwei Timeout - Parameter.
- Total Read Timeout
- Char Distance
Bei zeitkritischen Applikationen kann es notwendig werden, ein "Feintuning" vorzunehmen.
Nach dem Empfang des ersten Bytes beginnt der Timeout - Parameter Total Read Timeout zu laufen. Nach Ablauf dieser Zeit werden alle bis dahin empfangenen Zeichen an den Server versendet. Dieser Wert darf nicht kleiner sein als die benötigte Laufzeit des UDP - Paketes im Ethernet zu dem Server.
Zur Ermittlung der Laufzeit kann das Tool ping verwendet werden.
Per Default steht dieser Wert auf 100 ms.
Die Char Distance ist der maximale Abstand (Lücke von xxx ms im Datenstrom; 0=deaktiviert) zwischen zwei empfangenen Zeichen. Wird diese Zeit überschritten, werden alle bis dahin empfangenen Zeichen/Daten an den Server gesendet, auch wenn der Parameter Total Read Timeout noch nicht abgelaufen ist. Per Default steht dieser Wert auf 10 ms.

Laufzeit + 10ms = minimaler "Total Read Timeout"
hier <10ms + 10ms = 20ms
|