Latenzzeit FTDI COM-USB

OP #4247891
Lesenswert?

Hallo,

ich habe eine Elektronik, auf der ein FTDI USB-Seriell Wandler verbaut 
ist. Um mal eine Abschätzung für dessen Latenzzeit zu erhalten, setze 
ich ein Port-Pin, sende ich ein paar Zeichen, sende bei Empfang dieser 
Zeichen sofort etwas zurück und lösche das Port-Pin bei Empfang in der 
Elektronik. Auf dem Rechner läuft ein kleines Programm, dass ich in .NET 
geschrieben habe. Die Daten lese ich per Event aus. Mal davon abgesehen, 
dass die ermittelten Zeiten um den Faktor 5-6 streuen (2,5ms bis etwa 
15ms), möchte ich gern wissen, ob ich das Ergebnis auch auf andere 
(ähnliche?) Rechner übertragen kann oder ob die Bedienung des Ports von 
der Performance der Hardware und irgendwelchen 
Betriebssystemeinstellungen äbhängt. Ich habe gerade keinen anderen 
Rechner zur Hand. Windows XP oder neuer würde ich mal als Betriebssystem 
voraussetzen.

Grüße, Alex
#4247968
Lesenswert?

Alexander H. schrieb:
> ob die Bedienung des Ports von der Performance der Hardware und
> irgendwelchen Betriebssystemeinstellungen äbhängt.

Da gibt es zum Beispiel SerialPort.ReadTimeout (und entsprechende 
Einstellungen bei allen anderen Sprachen, Treibern, und 
Betriebssystemen).

Wenn dein Rechner gerade nichts zu tun hat, schläft die CPU; das 
Aufwecken würde aber nicht mehrere Millisekunden dauern.

Das Problem ist nicht so sehr die Geschwindigkeit des Rechners, sondern 
wie schnell er dazu kommt, dein Programm auszuführen. Du könntest 
probieren, Process.PriorityClass hochzudrehen.
OP #4248008
Lesenswert?

Hallo Clemens,

vielen Dank für die Antwort. Ich möchte die Zeit gar nicht verbessern. 
Grundsätzlich benötige ich eine Abschätzung für die Zeit vom Verlassen 
des UART der Elektronik bis die Daten in der PC-Software angekommen 
sind. Das ist sozusagen meine Unschärfe, mit der ich leben muss. Da ich 
das nicht messen kann, habe ich den oben beschriebenen Weg gewählt und 
Daten hin und her gesendet. Dabei habe ich nun festgestellt, dass die 
Zeit ziemlich stark variiert und mich nun gefragt, ob das bei anderer 
Systemkonfiguration des Rechners noch schlechter/besser wird. Momentan 
bin ich bei einem zehntel dessen, was ich verschmerzen kann, hin und 
zurück wohlegemerkt. Soweit ist ers mal alles gut.

Grüße, Alex
#4248012
Lesenswert?

Alexander H. schrieb:
> Dabei habe ich nun festgestellt, dass die
> Zeit ziemlich stark variiert und mich nun gefragt, ob das bei anderer
> Systemkonfiguration des Rechners noch schlechter/besser wird.

Wenn dein Programm lange nichts gemacht hat und gerade ein Backup oder 
Virenscanner läuft, dann ist es möglich, dass dein Programm auf die 
Platte ausgelagert wurde. Wegen der anderen Plattenzugriffe könnte es 
dann vielleicht erst nach mehreren Sekunden wieder ausgeführt werden.
#4248026
Lesenswert?

Du kannst dem PC kein spezifisches Zeitverhalten zusagen. Weshalb ist 
die Zeit wesentlich, und was soll das Ganze?

Allenfalls muss man der externen Hardware erweiterte Funktionalitaet 
zuschreiben.

Wenn meine (selbstgebaute) externe Hardware mit dem PC kommuniziert, so 
gehe ich von gar keinem Timing aus. Die Hardware muss ihre 
Funktionalitaet von selbst erfuellen, der PC dient nur dem Interface 
zwischen Mensch und Maschine. Falls es eine Sicherheitfunktion 
erfordert, zB dass eine Heizung nicht immer laeuft, so hat die Hardware 
eine Timeoutfunktion. Wenn sich der PC nicht innerhalb meldet wird 
abgeschalten. Der PC kann ja auch keine Zeit haben, am Booten sein, oder 
sonstwas.
OP #4248144
Lesenswert?

So richtig prall finde ich das auch nicht, ist aber Kundenwunsch. In der 
Hardware läuft im uC ein Timer, der durch eine recht präzise RTC extern 
getaktet wird. Wunsch ist, dass beim Reset des Timers per UART ein 
Kommando an den Rechner gesendet wird, damit "Synchronität" besteht. Man 
könne mit 200ms Versatz leben. Deshalb die Frage nach der Latenzzeit des 
FTDI. Mit dem Dokument von Wolfgang und dem, was ich probiert habe, kann 
ich zumindest auf die Umstände hinweisen.

Grüße, Alex

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren