Ich muss einen Konverter machen, um von RS422 Vollduplex zu meinem Arduino zu gehen. Ich habe viele verschiedene Chips gefunden, von denen ich denke, dass sie dies tun können, aber die Terminologie verwirrt mich etwas. Das RS422-Gerät ist ein Laser-Abstandssensor ( Micro-Epsilon optoNCDT 1302 ). Es hat RX+, RX-, TX+, TX-. Ich habe also zwei Zeilen für die Eingabe und zwei Zeilen für die Ausgabe.
Ich könnte zwei RS485-Leitungstreiber verwenden, um die von mir benötigte Vollduplex-Kommunikation zu erreichen. Dafür gibt es viele Chips.
Aber müsste ich dann auf meinem Arduino (Klon: Chipkit max32) zwei UART-Kanäle verwenden? Und wechseln Sie dann ab, an welches ich jedes Byte sende?
Das Gerät verwendet 4-Byte-Anweisungen. Wenn ich also eine Anweisung senden wollte, würde ich Serial1 (erstes Byte), dann Serial2 (zweites Byte), Serial1 (drittes Byte), Serial2 (viertes Byte) senden?
Und dann auf die gleiche Weise Daten empfangen? Ich habe das Gefühl, dass mir etwas fehlt und kann dies auf einem UART-Kanal tun, bin mir aber nicht sicher, wie.
Bei normalen seriellen Kommunikationsverbindungen benötigen Sie eigentlich zwei Drähte - einer ist das Signal und einer ist die Masse. Die Masse bleibt auf Null Volt und die Signalleitung schwingt zwischen 2 Spannungen, die die Datenbits 0 bzw. 1 darstellen (bei RS232 schwingt das Signal zwischen +25 Volt und -25 Volt).
Die Verwendung von Spannung als Signal eignet sich nicht für lange Kabel, die durch laute Umgebungen führen, da die Kabel wie Antennen wirken und die Spannungsdifferenz im Rauschen verloren gehen kann.
RS422 verwendet die Stromrichtung anstelle der Spannung, um Bits zu übertragen. Strom in eine Richtung ist eine 1, in die andere Richtung umgekehrt ist eine 0. Dies ist viel widerstandsfähiger gegen Rauschen.
RX+ und RX- sind die beiden Drähte, die diesen Strom für empfangene Daten liefern. Sie können sich das Senden von Daten über dieses Kabel vorstellen, indem Sie eine Batterie als Sender verwenden. Schließen Sie die Batterie in eine Richtung an, um eine 1 zu senden, oder drehen Sie sie in die andere Richtung, um eine 0 zu senden. Zwei Drähte, aber sie tragen ein Datenbit. Sie können dieses eine Datenbit mit einem einzelnen seriellen Eingang verbinden (unter Verwendung der richtigen Treiber, um die Stromrichtung auf den Drähten in eine Spannung umzuwandeln, um den Pin anzuzeigen).
Gleiches gilt für die TX+ und TX- Drähte. Sie tragen ein einzelnes Gebiss. Der Treiber nimmt ein einzelnes Datenbit, das als Spannung an Ihrem seriellen Sendestift dargestellt wird, und wandelt es in einen Strom um, der auf den beiden TX-Drähten in die eine oder andere Richtung fließt.
HINWEIS: Wenn Sie nicht viele davon herstellen, spielen Sie nicht mit Treiberchips herum (es sei denn, Sie möchten!). Sie können günstig vorverpackte Stromschleifen-Dongles erhalten, die Schraubklemmen haben und sehr einfach zu verwenden sind. Sie verwenden die gleichen Chips, die Sie sich ansehen, aber alle ersparen Ihnen die Mühe, alles herauszufinden. Wenn Sie einen erhalten, der TTL-Pegelsignale verwendet, können Sie ihn direkt an Ihren Ardunio anschließen und ihn als eine normale serielle Verbindung behandeln. Hier ist ein Beispiel von einem (ich habe dieses noch nie benutzt, sieht aber so gut aus wie jedes andere) ...
Benutzer1902893
Nick Alexejew
Benutzer1902893
Nick Alexejew
Nick Alexejew
Mäusez
Benutzer1902893