Der standardmäßige 9-polige RS232-Anschluss verfügt über 9 Stifte. Jene sind:
1 - DCD -
Datenträger erkannt 2 - RxD - Daten empfangen
3 - TxD - Daten senden
4 - DTR - Datenanschluss bereit
5 - GND - Signalmasse
6 - DSR - Datensatz Bereit
7 - RTS - Anforderung zum Senden von Daten
8 - CTS - Löschen zum Senden von Daten
9 - RI - Ringanzeige
- Wenn ich bidirektionale Kommunikation benötige, ist es offensichtlich, dass ich RxD und TxD verbinden sollte. Was soll ich mit anderen Signalen / Pins tun - mit Masse verbinden, offen lassen, sie mit geeigneten Signalen gemäß Protokoll ansteuern müssen?
- Wenn ich mich nur für eine unidirektionale Verbindung interessiere, kann ich dann nur RxD oder TxD anschließen?
- Was sind die Konsequenzen, wenn bestimmte Signale nicht verwendet / angeschlossen werden? Welche Software auf der PC-Seite erwartet diese Signale? Welche Funktionalität geht verloren?
ANMERKUNG 1: Ich verwende hier das Wort "Verbinden" im Sinne einer logischen Verbindung -> Für eine elektrische Verbindung würde ich eine Pegelumsetzerschaltung wie MAX232 benötigen. ANMERKUNG
2: Ich bin auf uC beschränkt - es macht mir nichts aus, irgendwelche Signale an die anzuschließen Brett (wie sie nach oben / unten ziehen).
Antworten:
Dies hängt von der verwendeten Software ab.
A) In meinem Fall habe ich bei der Entwicklung meiner eigenen PC-Software nie andere Pins verwendet, nur RxD, TxD und GND. In diesem Fall können Sie also andere Stifte offen lassen. Dies wird als Nullmodem ohne Handshake bezeichnet
B) Ja (unter der Annahme, dass GND in Betracht gezogen wird)
C) Auch dies hängt von der Software auf der PC-Seite ab. Einige Software, die Sie so konfigurieren können, dass sie sich nicht um die Hardwaresteuerung kümmert. Andere erfordern RTS / CTS-Handshake, sodass Sie ein Nullmodem mit Loop-Back-Handshake ausführen können
Quelle der Bilder: RS232 serielle Nullmodemkabelverkabelung
quelle
Sie müssen nur RxD und TxD und natürlich Masse verbinden. (Wenn Sie eine unidirektionale Kommunikation verwenden, ist nur Masse und RxD oder TxD erforderlich.) Die anderen Signale werden für die Kommunikation mit einem Modem verwendet. Die meisten UARTs auf Mikrocontrollern liefern diese Steuersignale nicht. Ich erinnere mich, dass ich es auf 1 oder 2 UARTs eines uC mit mehreren weiteren UARTs gesehen habe (obwohl ich mich nicht erinnere, welches uC es war).
Weitere Informationen zum Modem (FYI):
EIA-232 definiert DTE (Datenendgeräte, in diesem Fall Ihren PC oder SBC) und DCE (Datenkommunikationsgeräte, häufig ein Modem).
Sie haben verschiedene Möglichkeiten, die PCs anzuschließen.
quelle
Sie müssen mindestens Tx, Rx und Signalmasse haben. Während Sie theoretisch nicht senden müssen, wenn Sie nur empfangen, müssen Sie in vielen Situationen aus praktischen Gründen den Empfang der Nachricht bestätigen. Die anderen Pins werden zum "Hardware-Handshake" eines Berechtigungssystems verwendet, bei dem das sendende Gerät überprüft, ob das empfangende Gerät bereit ist. Sie können stattdessen Xon / Xoff verwenden (Software-Handshake). Einige Geräte, beispielsweise serielle Mäuse, verwendeten auch die Hardware-Handshake-Leitungen für die Stromversorgung.
quelle
Beachten Sie, dass es unter bestimmten Umständen möglich sein kann, ohne Verwendung des 232-Chips davonzukommen. Dies beruht auf einer gewissen Schlaffheit des Protokolls und dem Missbrauch einiger Stifte auf eine Weise, wie sie eigentlich nicht sein sollten. Leider kenne ich die Schaltung nicht genau, aber ich habe sie benutzt. Ich habe danach gesucht, als ich auf diese Frage gestoßen bin. Ich würde es nicht in der Produktion verwenden und ich weiß nicht, dass es für alle RS232-Verbindungsimplementierungen funktioniert, aber es war praktisch, als ich es verwendet habe.
quelle
Für eine minimale Anzahl von Signalen ist es durchaus möglich, eine UART-Schnittstelle mit nur zwei Drähten herzustellen - einer bidirektionalen Signalleitung und Masse. Erforderlich ist, dass die Leitungstreiber an jedem Ende deaktiviert werden können (dreifach angegeben) und dass die Software ein abwechselndes Protokoll implementiert. Oft sendet das Slave-Gerät nur, um eine Frage vom Master zu beantworten.
Bei einer Verbindung auf Logikpegel zwischen Mikrocontrollern (keine Leitungstreiber) ist die Hardware recht einfach, da Sie den Sende-Pin fast immer tristieren können (möglicherweise durch Zurückschalten in den GPIO-Modus).
Während die Technik an nahegelegenen Peripheriegeräten nicht sehr häufig verwendet wird, ist die Verwendung der Differenzsignalisierung als RS485 recht häufig und kann ein Netzwerk mit vielen Knoten anstelle von nur zwei umfassen. Software-Schemata, die für die Kommunikation mit einem bidirektionalen RS485-Paar entwickelt wurden, funktionieren jedoch problemlos zwischen zwei Geräten, die mit einer einseitigen (nicht differenziellen) Schaltung verbunden sind, vorausgesetzt, der Abstand / Rauschpegel erfordert keine differenzielle Lösung. Natürlich wäre dies nicht streng genommen RS232, sondern eine benutzerdefinierte Erweiterung davon.
quelle