Kann ich eine RS422-Schnittstelle mit den seriellen Pins von Arduino verbinden?

Ich habe eine kundenspezifische Schaltung, die über eine RS422-Schnittstelle mit und von der Außenwelt kommuniziert. Ich möchte mit einem Arduino, vorzugsweise UNO, damit kommunizieren. Der RS422 verwendet, ähnlich wie der RS485, zwei Leitungen sowohl für die Empfangs- als auch für die Sendeleitung (eine positive, eine negative). Nach allem, was ich im Internet finden kann, verwendet RS422 eine digitale 0-5-V-Kommunikation, die mit den seriellen Arduino-Pins identisch ist, oder?

Kann ich eine der Leitungen, die positive (?), sowohl für den TX als auch für den RX der RS422-Schnittstelle verwenden und sie mit den Pins 0 und 1 des Arduino verbinden? Oder müsste ich an den USB-Stecker des Arduino anschließen?


AKTUALISIEREN

Das Problem, mit dem ich konfrontiert bin, ist, dass ich bereits ein benutzerdefiniertes Arduino-Schild habe, das serielle Daten sendet und empfängt, und ich habe die RS422-Schnittstelle völlig vergessen. Ich kann die mehreren Geräte auf einem UART-Bus in der Software leicht aussortieren, aber ich war mir nicht sicher, ob Sie einfach eines der Differentiale des TX / RX eines RS422 an die seriellen Pins anschließen könnten oder nicht.

Antworten (3)

Sie müssen die RS422 richtig mit dem Arduino verbinden. Es gibt spezielle Chips, die das für Sie erledigen. Genauso wie Sie einen MAX232 (oder ähnliches) verwenden würden, um den Arduino mit einem RS232-System zu verbinden, müssen Sie die Spannungen auf die richtigen Pegel verschieben und die Differenzialpaare erstellen oder kombinieren.

Maxim (die Hersteller des MAX232-Chips) stellen eine Reihe von Chips für RS485- und RS422-Systeme her. Ihre parametrische Suche zeigt sie alle: http://para.maximintegrated.com/en/search.mvp?fam=rs485&hs=1

Andere Unternehmen stellen Chips her, die die gleiche Aufgabe erfüllen.

Also, kurze Antwort ist nein? Was passiert, wenn ich das tue?
Wenn eines Ihrer RS422-Signale zufällig 0-5 V mit 0 V = LOW und 5 V = HIGH beträgt und Sie die Masse zwischen den Systemen teilen, funktioniert es möglicherweise. Wenn nicht, riskieren Sie, den Arduino zu beschädigen.
Neben dem Risiko einer nicht gemeinsamen Masse besteht die Tatsache, dass RS-422 differentiell ausgelegt ist – dh wenn ein Signal hoch ist, ist das andere niedrig und umgekehrt. Außerdem sollen sie gleichzeitig zwischen den Zuständen wechseln. Wenn Sie die RS-422-Leitung ansteuern, können Sie den On-Chip-UART nicht verwenden, da Sie zwei verschiedene Pins gegenphasig ansteuern müssen (obwohl Sie den UART verwenden und den Pin zurückführen könnten zum Arduino mit einem Interrupt, um die invertierte Version des UART-Ausgangs zu erstellen, aber Sie würden immer noch mit einer Zeitverzögerung enden, bei der beide Pins den gleichen Wert haben.
Kurze Antwort ist: Mach es richtig. Die Treiberchips sind ziemlich billig. Maxim diejenigen sind gut, aber teurer als die meisten. Ich weiß nicht, wo Sie sich befinden, aber die üblichen Websites wie RS/Farnell (UK) oder Mouser/DigiKey (US) usw. führen eine Reihe von Herstellern.
@DavidSmith Ich habe die Frage mit ein paar weiteren Details aktualisiert. Um es kurz zu machen, ich habe bereits eine Leiterplatte entworfen und die RS422 vergessen. Ich muss einen Weg finden, es mit so wenig Änderungen wie möglich zu integrieren.
In diesem Fall können Sie dies "irgendwie" für Eingänge tun (indem Sie das "wahre" Signal direkt an den Arduino-Eingangsstift anschließen und das "invertierte" Signal ignorieren), aber Sie setzen sich einem Risiko aus Probleme mit Massedifferenzen und Signalausbreitungs-/Integritätsprobleme. Für Ausgänge denke ich, dass es wirklich ein "No-Go" ist, weil Sie wirklich beide Leitungen als Inverse voneinander ansteuern müssen. Wie wäre es mit einem DIP-Schnittstellenchip (z. B. MAX485CPA) auf einem Stück Veroboard (Stripboard)? Ich fürchte, dass alle möglichen Non-Respin-Lösungen "schmutzige Hacks" sind. :(

Ich stelle eine Schnittstelle mit zwei RS422-Geräten her. Auf einem höre ich nur zu und auf dem anderen sende und empfange ich Daten. Ein paar Widerstände, ein Lötkolben und eine kleine Experimentierplatine reichen in meinem Fall aus.

Können Sie weitere Details hinzufügen? Dies scheint im Moment ziemlich vage zu sein, ohne Einzelheiten darüber, wie Sie vorgegangen sind.