RS-422 Abstandssensor mit Arduino

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.

Auch die ICs verwenden die Begriffe RO, DI, A, B, Y, Z usw. usw. Wie ordnen sich diese an?
Möchten Sie nur einen Abstandssensor an einen Arduino anschließen, oder wird es mehr als einen solchen Abstandssensor geben?
Es gibt nur einen Abstandssensor. Es gibt andere Sensoren mit dem Arduino, aber sie verwenden RS422 nicht. Die RS422-Seite der Dinge wäre also ein einzelner Knoten.
Sie brauchen den 2. UART-Kanal nicht. Sie brauchen nur einen.
Noch wichtiger ist, dass Sie sich ernsthaft mit RS-422 vertraut machen müssen. Es wird deutlich, warum es zwei TX-Leitungen und zwei RX-Leitungen gibt. Ein anständiger Ort, um mit dem Lesen zu beginnen, ist ein Datenblatt für einen der RS-422-Transceiver und zugehörige Anwendungshinweise.
Darf ich fragen woher du diesen Sensor hast? und was war der preis?
Dies ist Teil eines Projekts, an dem ich in meinem neuen Job arbeite. Ich glaube, wir haben es von einem Micro-Epsilon-Distributor in der Nähe meiner Arbeit (Australien) bekommen. Wenn ich mich recht erinnere, kosteten sie ungefähr 1000 AU $.

Antworten (1)

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) ...

http://www.amazon.com/INBOARD-RS422-DRIVER-ET-MINI-SHIPPING/dp/B00EXUGRUK/ref=sr_1_1?ie=UTF8&qid=1392255264&sr=8-1&keywords=ttl+rs422

Ah okay, danke! Nun, im Moment ist es nur ein Prototyp, aber in Zukunft wird es Teil einer Produktion sein, also wird die Verwendung der Chips notwendig sein. Danke nochmal!