Welches ist besser, um zwei Mikros zu verbinden, UART oder RS232?

Ich versuche, zwei Geräte zu verbinden, die beide Pic Micro verwenden. Ich bin neugierig, die beste Verbindungslösung auszuwählen. Ich kann uart für die Verbindung zwischen ihnen verwenden und auch mit Hilfe von MAX232 könnte eine RS232-Verbindung verwendet werden. Hat jemand Erfahrungswerte Empfehlungen dazu? Welche ist besser und was sind ihre Vor- und Nachteile?

Wie weit sind die Geräte voneinander entfernt und wie sind sie verbunden (Leiterbahnen, Drähte)?
Zwei Meter getrennte Abschleppvorrichtungen und für Verbindungsdrähte werden verwendet.
UART ist ein Funktionsblock zur Implementierung serieller Kommunikation, nicht wirklich eine Protokoll- oder Signalspannungsspezifikation. Es wäre viel besser zu sagen "Logikpegel" vs. "RS232-Pegel". Auf jeden Fall wird wahrscheinlich ein UART (oder wie auch immer Ihr Anbieter es nennt - USART, UCI usw.) beteiligt sein. Die Frage ist, ob Sie auch eine externe Leitung verwenden Transceiver.

Antworten (3)

UART
Günstiger , da Sie keine zusätzliche Hardware benötigen.

EIA-232
(der Name RS-232 ist veraltet.) Bietet Ihnen eine bessere Störfestigkeit , da es höhere Spannungen verwendet und eine niedrigere Impedanz hat.

EIA-422
hat dank des symmetrischen Signals eine noch bessere Störfestigkeit, aber wenn Ihre Umgebung nicht extrem laut ist (denken Sie an elektrische Hochleistungsmaschinen mit mehreren kW), werden Sie es wahrscheinlich nicht brauchen. Sie würden differenzielle Transceiver und verdrillte Kabel benötigen.

Obwohl hier vielleicht nicht anwendbar, ist RS-422 nicht auch besser für lange Distanzen geeignet?

Der Kommentar von @chris-stratton ist richtig und ein wichtiger Punkt. Wenn Sie über die Verwendung von EIA-232 oder EIA-422 sprechen, sprechen Sie mit ziemlicher Sicherheit von der Verwendung eines UART als Funktionsblock, der die serielle Kommunikation durchführt. Und wie @stevenvh sagte, ist EIA-232 keine gute Wahl für ein neues Design. Müssen Sie also jedem Mikrocontroller einen EIA-422-Sender/Empfänger hinzufügen? Es gibt mehrere Dinge zu beachten.

Eine davon ist die Geschwindigkeit (Bits pro Sekunde). Bei hohen Geschwindigkeiten haben die UART-Ausgangspins Ihrer Mikrocontroller möglicherweise Probleme, die Kapazität von zwei Metern Kabel zu treiben. Der Mikrocontroller ist in der Lage, ein paar Zentimeter Kabel mit hoher Geschwindigkeit zu einem 422-Sender zu treiben. Wenn Sie also hohe Baudraten benötigen, sollten Sie 422 vielleicht nur aus diesem Grund verwenden.

Eine weitere Überlegung sind Gleichtaktspannungen. Wenn Sie die rohen UART-Pins verwenden, um die Mikrocontroller anzuschließen, müssen Sie auch die Masse der beiden Mikrocontroller verbinden. Abhängig von der physikalischen Situation und wie die Bretter mit Strom versorgt werden, können die Bodenniveaus der beiden Bretter unterschiedlich sein. Es könnte andere gute Gründe dafür geben, ihre Erdungen nicht miteinander zu verbinden, und wenn dies der Fall ist, können die Mikrocontroller durch die Verwendung eines differentiellen Signalisierungsschemas wie 422 miteinander kommunizieren, selbst wenn zwischen ihren Erdungspegeln mehrere Volt Unterschied bestehen.

Sie können 422-Empfänger und -Sender in relativ kleinen Paketen zu geringen Kosten erhalten, aber die Verwendung von 422 anstelle des direkten Anschlusses der UARTs hat Nachteile. Da 422 differentiell statt single-ended ist, benötigen Sie jeweils zwei Drähte für die beiden Richtungen des Informationsflusses und einen Abschlusswiderstand am Empfangsende, wo eine direkte Verbindung drei Drähte (Signale in beide Richtungen plus Masse) und keine Abschlusswiderstände erfordern würde . Der von einer 422-Verbindung verbrauchte Gleichstrom beträgt mehrere Milliampere, sodass der erhöhte Stromverbrauch (in der Größenordnung von 100 mW pro Sender) ebenfalls ein Problem für Sie darstellen könnte.

Sie sollten auch LVDS (Low Voltage Differential Signalling, EIA-644) in Betracht ziehen, das mit niedrigeren Spannungen arbeitet und viel weniger Strom verbraucht. Der Nachteil ist, dass die Gleichtaktreichweite reduziert ist, aber über 2 Meter dürfte das für Sie kein Problem sein.

Für 2 Meter benötigen Sie möglicherweise oder möglicherweise nicht MAX232, um Pegel umzuwandeln. Es kommt auf die Bitrate an. Ich denke , dass es für 2 Meter sicher ist, einen 0-5-V-Pegel für bis zu 9600 Bit / s zu verwenden. Für höhere Raten sollten Sie MAX232 verwenden. Beachten Sie, dass MAX232 die Spannungsdifferenz zwischen 0 und 1 von 5 V auf etwa 18-20 V (von -10 bis +10 V) erhöht.

Wenn Sie jedoch ein abgeschirmtes Kabel verwenden, können Sie TTL-Pegel für eine etwas höhere Bitrate verwenden, wenn Sie ein abgeschirmtes Kabel verwenden. Das einzige Problem wäre die Kabelkapazität. Wenn Sie kein Oszilloskop haben, um die Anstiegszeit zu messen, gehen Sie mit MAX232, um 100% sicher zu sein. Außerdem können Sie das Kabel später auf bis zu 15 m verlängern.

Alternativ (weil max232 viele Komponenten erfordert), wenn der Stromverbrauch kein so großes Problem darstellt (wenn er nicht batteriebetrieben ist), können Sie an den RX-Pins der MCU Widerstände von 470 Ohm bis 2k verwenden. Dadurch wird der Strom auf den Drähten erhöht und die Wahrscheinlichkeit von Störungen durch Rauschen verringert. Die Kabelkapazität wird immer noch ein Problem sein, seien Sie also vorsichtig bei höheren Geschwindigkeiten