Могу ли я использовать интерфейс RS422 для последовательных контактов Arduino?

У меня есть специально разработанная схема, которая обменивается данными с внешним миром через интерфейс RS422. Я хочу общаться с ним с помощью Arduino, предпочтительно UNO. RS422, как и RS485, использует две линии для приема и передачи (одна положительная, одна отрицательная). Из того, что я могу найти в сети, RS422 использует цифровую связь 0-5 В, которая такая же, как последовательные контакты Arduino, верно?

Могу ли я использовать одну из линий, положительную (?), как для TX, так и для RX интерфейса RS422, и подключить их к контактам 0 и 1 Arduino? Или мне нужно будет подключиться к USB-разъему Arduino?


ОБНОВЛЯТЬ

Проблема, с которой я столкнулся, заключается в том, что у меня уже есть специально разработанный шилд Arduino, который отправляет и получает последовательные данные, и я совершенно забыл об интерфейсе RS422. Я могу легко разобраться с несколькими устройствами на одной шине UART в программном обеспечении, но я не был уверен, можно ли просто подключить один из дифференциалов TX/RX RS422 к последовательным контактам или нет.

Ответы (3)

Вам необходимо правильно подключить RS422 к Arduino. Есть специальные чипы, которые делают это за вас. Точно так же, как вы использовали бы MAX232 (или аналогичный) для подключения Arduino к системе RS232, вам нужно сместить напряжения на правильные уровни и создать или объединить дифференциальные пары.

Maxim (производитель микросхемы MAX232) выпускает ряд микросхем для систем RS485 и RS422. Их параметрический поиск показывает их все: http://para.maximintegrated.com/en/search.mvp?fam=rs485&hs=1

Другие компании также производят чипы, которые выполняют ту же работу.

Итак, короткий ответ - нет? Что произойдет, если я это сделаю?
Если один из ваших сигналов RS422 имеет значение 0–5 В, где 0 В = НИЗКИЙ, а 5 В = ВЫСОКИЙ, и вы используете общую землю между системами, тогда это может сработать. Если нет, то вы рискуете повредить Arduino.
Помимо риска несовпадения, существует тот факт, что RS-422 спроектирован как дифференциальный, т. е. если один сигнал высокий, другой низкий, и наоборот. Кроме того, они должны переходить между состояниями одновременно. Когда вы управляете линией RS-422, вы не сможете использовать встроенный UART, потому что вам нужно будет управлять двумя разными контактами в противофазе (хотя вы можете использовать UART и подавать контакт обратно). к Arduino с прерыванием, чтобы создать инвертированную версию выхода UART, но вы все равно получите временную задержку, когда оба контакта имеют одинаковое значение.
Короткий ответ: делайте это правильно. Драйверные чипы довольно дешевые. Максим хорошие, но дороже большинства. Я не знаю, где вы находитесь, но на обычных сайтах, таких как RS/Farnell (Великобритания) или Mouser/DigiKey (США) и т. д., есть ряд производителей.
@DavidSmith Я обновил вопрос, добавив еще несколько деталей. Короче говоря, у меня уже есть разработанная печатная плата, и я забыл о RS422. Мне нужно найти способ включить его с минимальными изменениями.
В этом случае, да, вы можете «вроде» сделать это для входов (подключив «истинный» сигнал непосредственно к входному контакту Arduino и проигнорировав «инвертированный» сигнал), но вы подвергаете себя риску проблем с перепады грунта и проблемы с распространением/целостностью сигнала. Что касается выходов, я думаю, что это действительно «запрещено», потому что вам действительно нужно управлять обеими линиями как обратными друг другу. Как насчет использования микросхемы интерфейса DIP (например, MAX485CPA) на кусочке картона (стрипборда)? Боюсь, что все возможные решения без респинов - это "грязные хаки". :(

Преобразователи TTL в RS485 очень дешевы и их легко купить. Вот один за 7 долларов от NewEgg...

http://www.newegg.com/Product/Product.aspx?Item=9SIA4SR1T52538&nm_mc=KNC-GoogleMKP-PC&cm_mmc=KNC-GoogleMKP-PC- -pla- -Electronics-_-9SIA4SR1T52538&gclid=CjwKEAjw56moBRD8_4-AgoOqhV4SJADWWVCco_vnIRyl08e2ifXOBH_v86voUoQ0z_zgjA2TuOBc4RoCrSHw_wcB&gclsrc=aw.ds

Есть много других.

Я делаю интерфейс с двумя устройствами RS422. Один я просто слушаю, а другой отправляю и получаю данные. Пара резисторов, паяльник и небольшая экспериментальная печатная плата делают это в моем случае.

Можете ли вы добавить некоторые подробности? На данный момент это кажется довольно расплывчатым без каких-либо подробностей о том, как вы это сделали.