Ist eine Hardware-Flusskontrolle erforderlich?

Ich möchte über ein serielles Kabel mit einem Gerät kommunizieren, das RTS/CTS-Flusskontrolle und eine Geschwindigkeit von 115200 Baud verwendet. Ich möchte diesen Sparkfun TTL-zu-RS232- Adapter verwenden , aber er hat keine RTS- oder CTS-Pins. Was kann ich tun, um eine Hardware-Flusskontrolle zu erhalten, oder gibt es eine Softwarelösung?

Wow, diese Schaltung ist ein ziemlicher Hack. Kein Wunder, dass sie so wischiwaschi sind, wie schnell es wirklich gehen kann. Es ist lustig, wie sie sagen, dass es für den Fall ist, dass ein MAX232 nicht verfügbar ist, aber dies ist dennoch ein Kit, also könnten sie es einfach verfügbar machen. Für etwas mehr Geld, aber vollständig montiert und mit echten Spezifikationen, die nicht von den eingehenden Daten abhängen, sehen Sie sich meinen Logik-zu-RS-232-Konverter unter microchipdirect.com/ProductSearch.aspx?Keywords=TEMR an . Vollständige Spezifikationen finden Sie unter embedinc.com/products/rslink2/index.htm .
Wenn Sie uns mehr Informationen über das Gerät geben und was Sie kommunizieren möchten, können wir Ihnen dabei helfen festzustellen, ob RTS/CTS wirklich notwendig ist.
Den Testberichten und der Aussage „funktioniert super bis 38400 bps“ nach zu urteilen, sollte man sich eindeutig nach einem anderen Adapter umsehen.
Das Gerät, mit dem es verbunden wird, ist ein Z80-basierter selbstgebauter Mikrocomputer, der Daten für Tastatur und Display in beide Richtungen sendet. Infos hier: searle.hostei.com/grant/cpm/index.html

Antworten (3)

Die Softwarelösung heißt XON/XOFF flow control . Es besteht im Wesentlichen darin, ^S/DC3 (0x13) zu senden, um die Übertragung auszusetzen, und ^Q/DC1 (0x11), um sie fortzusetzen. Natürlich erfordert dies, dass die andere Seite dies unterstützt. Wenn also nur die Hardware-Flusskontrolle unterstützt wird, ist dies keine praktikable Lösung.

Wenn Ihr Gerät eine Hardware-Flusskontrolle erfordert, besteht ein Hack darin, sein RTS mit seinem eigenen CTS-Pin zu verbinden. Auf diese Weise teilt es sich selbst mit, dass das Senden in Ordnung ist. Der Hack ist, dass, wenn Sie seinen Eingabepuffer überlaufen, er stattdessen sein Senden unterdrückt. Wenn das Senden von Daten erforderlich ist, um seine eigene Eingabe zu verbrauchen (z. B. Input-Echoing oder Befehls-/Antwortsequenzen), können Sie in einem Deadlock enden, sodass Sie darauf achten müssen, dass Sie keine Daten zu schnell senden.

Wenn beide Enden immer schnell genug sind, um alle Sends des anderen Endes zu empfangen, besteht keine Notwendigkeit für eine Flusssteuerung. Dies ist häufig bei UART-Geschwindigkeiten der Fall.