Датчик расстояния RS-422 с Arduino

Мне нужно сделать преобразователь для перехода с полного дуплекса RS422 на мой Arduino. Я нашел много разных чипов, которые, как я думаю, могут это сделать, но меня немного смущает терминология. Устройство RS422 представляет собой лазерный датчик расстояния ( Micro-Epsilon optoNCDT 1302 ). Есть RX+, RX-, TX+, TX-. Итак, у меня есть две строки для ввода и две строки для вывода.

Я мог бы использовать два линейных драйвера RS485 для обеспечения полнодуплексной связи, которая мне нужна. Для этого есть много фишек.

Но тогда на моем Arduino (клон: chipkit max32) мне нужно будет использовать два канала UART? А затем чередовать, на какой из них я отправляю каждый байт?

Устройство использует 4-байтовые инструкции. Итак, если бы я хотел отправить инструкцию, я бы отправил Serial1 (первый байт), затем Serial2 (второй байт), Serial1 (третий байт), Serial2 (четвертый байт)?

И затем получать данные таким же образом? Я чувствую, что что-то упустил и могу сделать это на одном канале UART, но не знаю, как это сделать.

Также IC используют термины RO, DI, A, B, Y, Z и т. д. и т. д. Как они соотносятся?
Вы хотите подключить только один датчик расстояния к одному Arduino, или таких датчиков будет больше одного?
Есть только один датчик расстояния. Есть и другие датчики с Arduino, но они не используют RS422. Таким образом, сторона RS422 будет одним узлом.
Вам не нужен 2-й канал UART. Вам нужен только один.
Что еще более важно, вам нужно серьезно изучить RS-422. Станет понятно, почему две линии TX и две линии RX. Достойным местом для начала чтения является техническое описание одного из приемопередатчиков RS-422 и соответствующие примечания по применению.
можно поинтересоваться, где вы взяли этот датчик? и какая цена была?
Это часть проекта, над которым я работаю на своей новой работе. Я думаю, что мы получили его от дистрибьютора микро эпсилон рядом с моей работой (Австралия). Если я правильно помню, они стоили около 1000 австралийских долларов.

Ответы (1)

В обычных каналах последовательной связи вам на самом деле нужно два провода: один для сигнала, а другой для земли. Земля остается при нуле вольт, а сигнальный провод колеблется между двумя напряжениями, которые представляют биты данных 0 и 1 соответственно (в RS232 сигнал колеблется между +25 вольт и -25 вольт).

Использование напряжения для подачи сигнала не очень хорошо для длинных проводов, проходящих через шумную среду, потому что провода действуют как антенны, и разница напряжений может потеряться в шуме.

RS422 использует направление тока, а не напряжение для передачи битов. Ток, идущий в одну сторону, равен 1, а в обратном — 0. Это гораздо более устойчиво к шуму.

RX+ и RX- — это два провода, по которым текут принимаемые данные. Вы можете визуализировать отправку данных по этому проводу, используя батарею в качестве передатчика. Подключите аккумулятор одним способом, чтобы отправить 1, или переверните его другим способом, чтобы отправить 0. Два провода, но они несут один бит данных. Вы можете подключить этот один бит данных к одному последовательному входу (используя правильные драйверы, чтобы изменить направление тока на двух проводах в напряжении, чтобы показать контакт).

То же самое касается проводов TX+ и TX-. Они несут один бит. Драйвер возьмет один бит данных, представленный в виде напряжения на вашем серийном выводе отправки, и преобразует его в ток, протекающий в том или ином направлении по двум проводам TX.

СОВЕТ: Если вы не делаете их много, не возитесь с микросхемами драйверов (если вы этого не хотите!). Вы можете дешево приобрести предварительно упакованные ключи токовой петли, которые имеют винтовые клеммы и очень просты в использовании. Они используют те же чипы, что и вы, но избавляют вас от необходимости разбираться во всем этом. Если у вас есть тот, который использует сигналы уровня TTL, вы можете подключить его напрямую к вашему Ardunio и рассматривать его как обычное последовательное соединение. Вот пример одного (я никогда не использовал его, но выглядит так же хорошо, как и любой другой)...

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

Ок, спасибо! Ну, пока это всего лишь один прототип, но в будущем он станет частью производства, поэтому использование чипов будет необходимо. Спасибо, еще раз!