Множество RS232.

ardonew
Offline
Зарегистрирован: 20.05.2019

Всем доброго времени суток.

Приношу свои извинения, если подобная тема уже поднималась,

честно говоря, я ее не нашел нужной информации поиску по форуму.

По существу вопроса.

Какое решение можно использовать для подключения к Ардуино большого количества переферии по RS232?

Ну скажем так, штук 10-12 устройство, которые работают по RS-232 и с котороым нужно обмениваться данными.

Возможно есть какие-то аппаратные решения для такой проблемы?

Что почитать, что поизучать на эту тему?

sadman41
Offline
Зарегистрирован: 19.10.2016

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

А дальше размышляйте - в каких данных Вы бы сами нуждались, чтобы дать адекватный ответ на вышеприведннный вопрос.

anatoli_nik
Offline
Зарегистрирован: 17.01.2019

Организовать связь "кольцом" т.е.:

Tx1->Rx2->Tx2->Rx3->Tx3->Rxn->Txn->Rx1

ardonew
Offline
Зарегистрирован: 20.05.2019

Цитата:
Если, положим, устройства не будут никогда ничего передавать, то связать их с ардуиной можно обычным шпагатом.

А дальше размышляйте - в каких данных Вы бы сами нуждались, чтобы дать адекватный ответ на вышеприведннный вопрос.

Я писал о том, что устройствами нужен обмен данными.

А это означает, что данные нужны как принять, так и отправить.

Поэтому у меня собственно и возник вопрос, т.к. на arduino в  общем-то не более 3 аппаратных UART (на Меги, если я не ошибаюсь, но это не суть)

Пока ответа на свой вопрос, я не нашел.

 

ardonew
Offline
Зарегистрирован: 20.05.2019

anatoli_nik пишет:

Организовать связь "кольцом" т.е.:

Tx1->Rx2->Tx2->Rx3->Tx3->Rxn->Txn->Rx1

Не пойдет, нужно иметь возможность работать с определенным портом.

anatoli_nik
Offline
Зарегистрирован: 17.01.2019

Если в устройствах есть адресация, то возможно и будет параллельно работать, только нужно "монтажное ИЛИ" ипользовать на диодах.

Если в устройствах есть вход разрешения - то на управляющем контроллере предусмотреть необходимое количество выводов разрешения и всеравно использоват "монтажное ИЛИ"

Если устройства могут передавать то что приняли, при этом выбрав то что предназначено ему, то "кольцо".

Вобщем - что за устройства?

mixail844
Offline
Зарегистрирован: 30.04.2012

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

а то тут можно предлагать массу вариантов и натыкаться "нет ,это не подходит" 

sadman41
Offline
Зарегистрирован: 19.10.2016

ardonew пишет:

А это означает, что данные нужны как принять, так и отправить.

Данные можно получать по запросу, что не требует сотен UART на МК, или же асинхронно, в случае чего получается бег по граблям.

nik182
Offline
Зарегистрирован: 04.05.2015

Это как раз работа для ардуин. К каждому датчику ардуину, а их уже на одну шину с любым протоколом. 

ardonew
Offline
Зарегистрирован: 20.05.2019

Предположим что у нас есть 8 портов.

4 из них мы настраиваем на прием данных от какого-то оборудования (не суть важно что за оборудование,

важно то, что оно выплевывает какие-то свои данные в RS232)

Полученные данные (поток данных постоянный) в реальном времени обрабатываем, парсим,

группируем и по каким-то критериями отправляет обработанную информацию в оставшиеся 4 выходных порта.

Упрощенно так.

Я надеюсь объяснил понятно.

 

PS: Ребят, я извинюсь если в каких-то местах я пишу глупости.

Я программист. Очень прикладной программист. Электроникой начал увлекаться недавно.

anatoli_nik
Offline
Зарегистрирован: 17.01.2019

Как раз важно что за оборудование. Может ли оно выдавать данные по запросу ведущего (т.е. быть ведомым) или выдает постоянно само по себе.

 

ardonew
Offline
Зарегистрирован: 20.05.2019

anatoli_nik пишет:

Как раз важно что за оборудование. Может ли оно выдавать данные по запросу ведущего (т.е. быть ведомым) или выдает постоянно само по себе.

Данные по запросу выдавать не умеет. Выдает данные в RS232 постоянно

sadman41
Offline
Зарегистрирован: 19.10.2016

Боюсь, что у Вас проблема. Просто такая задача не решается, особенно на уровне начинающего. Самый простой путь - такой, каким его описал nik182

ardonew
Offline
Зарегистрирован: 20.05.2019

nik182 пишет:

Это как раз работа для ардуин. К каждому датчику ардуину, а их уже на одну шину с любым протоколом. 

можно чуть подробнее?

ardonew
Offline
Зарегистрирован: 20.05.2019

sadman41 пишет:

Боюсь, что у Вас проблема. Просто такая задача не решается, особенно на уровне начинающего. Самый простой путь - такой, каким его описал nik182

Я нигде не говорил про "просто.

Я спрашивал про конкретные способы реализации.

Green
Offline
Зарегистрирован: 01.10.2015

) В первую очередь вы должны понимать что RS232 - это интерфейс. Предназначен для соединения точка - точка. Вы же хотите несколько иного. Ага? Но тут сама физика не подразумевает иного! И что мы будем с этим делать?

sadman41
Offline
Зарегистрирован: 19.10.2016

ardonew пишет:

Я спрашивал про конкретные способы реализации.

Конкретный способ: берёте N ардуин и N MaX232. Соединяете попарно, придумываете на чем сделать матрицу коммутации и алгоритм работы оной. Все ардуины присоединяете к матрице и нажимаете кнопку "пуск".

ata3d
Offline
Зарегистрирован: 24.05.2017

Существуют разветвители RS232, например 4 канальный MAX399.

 

ardonew
Offline
Зарегистрирован: 20.05.2019

Green пишет:

) В первую очередь вы должны понимать что RS232 - это интерфейс. Предназначен для соединения точка - точка. Вы же хотите несколько иного. Ага? Но тут сама физика не подразумевает иного! И что мы будем с этим делать?

Я это понимаю.

Именно поэтому я и спрашиваю, как решить проблему с подключением большого количества rs232.

ardonew
Offline
Зарегистрирован: 20.05.2019

Цитата:

Существуют разветвители RS232, например 4 канальный MAX399.

 

 

Да, интересно.

Но, увы, в таком случае, как я понимаю, у меня нет возможности управлять портами, которые будут подключены через микросхему.

strarbit
Offline
Зарегистрирован: 12.06.2016

The industry standard way of making a UART able to communicate with multiple devices is through converting it to a standard bus system, such as EIA-422 or EIA-485 (AKA RS-422/RS-485).

 

nik182
Offline
Зарегистрирован: 04.05.2015

У меня была абсолютно аналогичная ситуация. На датчиках стояли микросхемы max232 и был доступ внутрь датчиков. Я отпаял входы TTL от мах232 и повесил на них ардуиновские платы  TTL-RS485 включенные в режим передачи. Плат было правда только 6 но по спецификаци 485 линии 20 она держит. На другом конце стоял переходник 485-USB сразу в комп. Платы иногда мешали друг другу, но это было видно по битым пакетам и легко обходилось. Если нет доступа внутрь датчиков, может быть помогут преходники 232-485 но я с такими не работал. 

ata3d
Offline
Зарегистрирован: 24.05.2017

ardonew пишет:

Но, увы, в таком случае, как я понимаю, у меня нет возможности управлять портами, которые будут подключены через микросхему.

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

 

anatoli_nik
Offline
Зарегистрирован: 17.01.2019

Как вариант, если денег много, у Mega2560 есть 4 аппаратных UART и один можно программный - итого = 5.

Первый - на каждую ардуину по 4 датчика а пятый UART использовать для создания кольца с другими ардуинами. Т.е. Головной модуль дает запрос первому периферийному он передает запрос дальше и добавляет ответ, последний модуль передает все пакеты на головной. Тем временем периферийные модули собирают с Устройств данные и складывают в буфер. При достаточной скорости работы кольца задержек передачи не будет.

Второй - на каждую ардуину по 5 датчиков, а с головным модулем связь через, допустим, IIC или SPI.

Green
Offline
Зарегистрирован: 01.10.2015

ardonew пишет:

Именно поэтому я и спрашиваю, как решить проблему с подключением большого количества rs232.

Вы бы разъяснили обстановку. Расстояния, например. Как я понимаю вам 232 не обязателен? Вам лишь вы связать сеть из н-ного кол-ва датчиков, верно?

nik182
Offline
Зарегистрирован: 04.05.2015

Ни spi ни i2c на десятки метров не работают. Кольцо из uart подразумевает 2 ком порта вход и выход и софт сериал нельзя здесь использовать из за ограничений приёма. Он сам на себя не работает ну соответственно теряет пакеты при одновременном приеме передаче. Плюс деньги. Плюс голова нужна, чтобы понимать что ты предлагаешь. Поэтому можно и мег поставить, но цена по сравнению с 485 будет как у спутника. 

Green
Offline
Зарегистрирован: 01.10.2015

Естественно, на "спутнике" и дурак сделает. Обычно вопрос стоит в минимизации железа (и денег). Тогда минимальный вариант - сеть ардуин чисто на UART, т.е. без НИЧЕГО. Но здесь вопрос в расстояниях и скорости. Потому и вышеозвученный вопрос.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

MAX14830

Green
Offline
Зарегистрирован: 01.10.2015

brokly пишет:

MAX14830

Простенько, но со вкусом.))) "И недорогаааая".)))

nik182
Offline
Зарегистрирован: 04.05.2015

А я не понял. Как на ней сделать сбор 20 датчиков? У меня 6 было, кабель линии 485 по сложной линии около 50 метров от компа до последнего датчика. И датчики не равномерно сгруппированы были. На скорости 4800 всё нормально работает. 

Green
Offline
Зарегистрирован: 01.10.2015

Да как! Мега + макс на 4 датчика. И так несколько. Затем этот кластер ещё с другим и т.д. Я ж говорю, что "простенько и со вкусом". Распил называется.)

sadman41
Offline
Зарегистрирован: 19.10.2016

А я предлагаю поставить RS232-TCP конверторы и завернуть всё на сервер ))

Green
Offline
Зарегистрирован: 01.10.2015

... и в облако.
Будете смеяться, но так оно и будет в скором времени.)

strarbit
Offline
Зарегистрирован: 12.06.2016

Good afternoon, dear gentlemen!

sadman41 пишет:

А я предлагаю поставить RS232-TCP конверторы и завернуть всё на сервер ))

Green пишет:

... и в облако.
Будете смеяться, но так оно и будет в скором времени.)

)))

https://www.hackster.io/phpoc_man/a-single-arduino-uno-with-14-rs-232-po...

 

nik182
Offline
Зарегистрирован: 04.05.2015

14 только, в чипе нет, но впечатляет!

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

^|^))))))))))))) Ace! Cool thing!

strarbit
Offline
Зарегистрирован: 12.06.2016

Dear sir wdrakula, I whish you a Good Mood!

sir nik182, Have a nice Day!