2016-10-26 3 views
0

Ich möchte zwei serielle Schnittstellen an eine serielle Schnittstelle anschließen. Angenommen, es gibt drei System A, B und C.Schließen Sie zwei serielle Schnittstellen an eine serielle Schnittstelle an.

enter image description here

A, B und C verbunden sind, miteinander unter Verwendung serielle Kommunikation (RS232-Port) wie Sternverbindung. Also, hier ist die Situation. Wenn System C Daten an System A und System B sendet, wird es an beide Systeme gesendet. Aber wenn System A oder System B Daten senden, wird es nicht von System C empfangen.

Ich möchte also wissen, wie man mit seriellen Geräten mit anderen seriellen Geräten (mehrere Geräte) kommunizieren kann.

+1

, die nicht funktionieren. RS-232 ist ein Punkt-zu-Punkt-Protokoll. Sie können ein Mehrpunktprotokoll wie RS-485 verwenden. Siehe http://www.embedded.com/design/connectivity/4023975/Serial-Protocols-Compared – sawdust

Antwort

1

Das kann einfach nicht funktionieren. Sie müssten zwei TX-Leitungen mit einer RX-Leitung verbinden, aber RS-232 (anders als z. B. Ethernet) ist kein Shared-Medium-Protokoll und kann TX-Kollisionen nicht erkennen (wenn zwei Geräte gleichzeitig versuchen, zu sprechen).

Sie müssen ein Gerät in der Mitte implementieren, das das, was es empfängt, an die anderen Geräte weiterleitet. Selbst dann müsste es das Protokoll kennen, das die anderen Geräte sprechen, um unterbrochene Nachrichten zu verhindern (z. B. nur an Newline-Zeichen anzuhalten).

-2

Ja, das kann durchaus funktionieren, zumindest mit gewissen Einschränkungen/unter genau definierten Spannungsbedingungen.

  • halten Ihre Verdrahtung für C: TX -> A: RX und B: RX

  • für die andere Richtung, verbinden die A + B TX Daten in ein Signal für das C: RX pin unter Verwendung eines "Halbduplex" -Schaltungsschemas mit einer Diode und einem Widerstand, wie beispielsweise in Lammert Bies' circuit for Half duplex RS232 spy/monitor/sniffer cable oder in dieser Spy Cable circuit gezeigt. Beide Varianten sollten im IMHO funktionieren, wenn A und B in den RS232-Spezifikationen übereinstimmen.

  • Einschränkung: A und B können keine Daten gleichzeitig senden, d. H. Nur "Halbduplex". Wenn A und B gleichzeitig senden, erhalten Sie undefinierte/Mülldaten.

Übrigens gibt es noch andere Stackoverflow posts that confirm this works. Überprüfen Sie die zweite Antwort, die zwei Upvotes erhalten hat.

+0

Die Dioden-/Widerstandslösung ist dokumentiert und wird auch in Industriegeräten wie diesem verwendet: http: //www.bb- elec.com/Products/Serial-Connectivity/Serial-Data-Tools-Adapters/Data-Taps.aspx. Natürlich, wenn Sie eine allgemeine Abneigung gegen Elektronik haben, resp. Dioden/Widerstände, und halten sie für zweifelhaft wie Barny - vielleicht bleiben Sie weg von der ganzen RS232/RS422/RS485-Bereich insgesamt. –

0

Sie könnten sie in einem Ring verbinden: Atx-> Brx, Btx-> Crx, Crtx-> Arx und dann jedes Gerät muss Nachrichten nicht dafür weiterleiten. Dies würde kein zweifelhaftes diody/resistory hokum pokum erfordern.

Ein großer Vorteil dieses Ansatzes besteht darin, dass es keine Einschränkungen auf dem Knoten nicht stellt nicht gleichzeitig zu kommunizieren :-)

Verwandte Themen