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?
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.
Olin Lathrop
Pericynthion
Benutzer207421
Benutzer60684