RS232 Timeout

Gast #2034339
Hallo zusammen.

Ich habe folgendes Problem. Ich sende Daten vom PC an ein FPGA welcher 
darauf antwortet.
Beim betrachten der Signale ist aufgefallen, dass der PC nach jedem 
Frame ca. 100ms auf Antwort wartet, obwohl die Antwortzeit < 1ms ist. 
Also versuchten wir in einem Python Skript den timeout der Seriellen 
Schnittstelle auf 10ms zu setzen. Dann kommt der PC allerdings nicht 
mehr ganz mit.

Kann es sein, dass das Empfangsreister des PC nur alle 100ms abgefragt 
wird? Bracuht er also diese Pause, oder sollte er durchaus schneller 
können?

Danke
Sim
Gast
Es handelt sich um die onboard Schnittstelle. Es gibt keine 
Datenflusssteuerung in diesem Sinn. Es wird über einen RS232/RS485 
Pegelwandler auf eine Buspysik gesendet. Die Busarbitrierung wird anhand 
der Inhalte des Frames gemacht.

Aber die Frage war ja eigentlich auch nur, ob man beim PC eine min. 
Timeout Zeit einhalten muss.

Gruß Sim
Gast
Hallo,

das Problem ist vermutlich, dass der Empfang erst am Ende des Timeouts 
stattfindet (vom Standpunkt des Skripts aus). Die serielle Software muss 
ja wissen, wann ein Frame zu Ende ist, und das ist u.U. eben nach Ablauf 
des Timeouts. Wenn die Frames durch ein bestimmtes Zeichen wie CR oder 
EOT beendet würden, bestünde dieses Problem nicht, dann würde der Frame 
unmittelbar nach Empfang dieses Zeichens übergeben.

Timeout als Frame Delimiter ist nie eine gute Idee.

Gruss Reinhard
Gast
Leider brauche ich einen Timeout, da es sich um eine Buskommunikation 
handelt und ich mit dem FPGA einen einzelnen Host darstelle. D. h. es 
kommt nicht auf jedes Frame eine Antwort, sondern nur wenn dieses für 
das FPGA relevant ist.

Gruß Sim
Gast
sim schrieb:
> Leider brauche ich einen Timeout, da es sich um eine Buskommunikation
> handelt und ich mit dem FPGA einen einzelnen Host darstelle. D. h. es
> kommt nicht auf jedes Frame eine Antwort, sondern nur wenn dieses für
> das FPGA relevant ist.
>
> Gruß Sim

Klar, das brauchst du immer, nur hat das mit dem von mir angesprochenen 
Problem garnichts zu tun, da ging es um die (möglichst schnelle) 
Frame-Ende-Erkennung. Aber wenn du dir den zeitlichen Ablauf nicht 
vorstellen kannst, vergiss es einfach.

Gruss Reinhard

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.