Множество RS232.
- Войдите на сайт для отправки комментариев
Пнд, 20/05/2019 - 14:11
Всем доброго времени суток.
Приношу свои извинения, если подобная тема уже поднималась,
честно говоря, я ее не нашел нужной информации поиску по форуму.
По существу вопроса.
Какое решение можно использовать для подключения к Ардуино большого количества переферии по RS232?
Ну скажем так, штук 10-12 устройство, которые работают по RS-232 и с котороым нужно обмениваться данными.
Возможно есть какие-то аппаратные решения для такой проблемы?
Что почитать, что поизучать на эту тему?
Если, положим, устройства не будут никогда ничего передавать, то связать их с ардуиной можно обычным шпагатом.
А дальше размышляйте - в каких данных Вы бы сами нуждались, чтобы дать адекватный ответ на вышеприведннный вопрос.
Организовать связь "кольцом" т.е.:
Tx1->Rx2->Tx2->Rx3->Tx3->Rxn->Txn->Rx1
А дальше размышляйте - в каких данных Вы бы сами нуждались, чтобы дать адекватный ответ на вышеприведннный вопрос.
Я писал о том, что устройствами нужен обмен данными.
А это означает, что данные нужны как принять, так и отправить.
Поэтому у меня собственно и возник вопрос, т.к. на arduino в общем-то не более 3 аппаратных UART (на Меги, если я не ошибаюсь, но это не суть)
Пока ответа на свой вопрос, я не нашел.
Организовать связь "кольцом" т.е.:
Tx1->Rx2->Tx2->Rx3->Tx3->Rxn->Txn->Rx1
Не пойдет, нужно иметь возможность работать с определенным портом.
Если в устройствах есть адресация, то возможно и будет параллельно работать, только нужно "монтажное ИЛИ" ипользовать на диодах.
Если в устройствах есть вход разрешения - то на управляющем контроллере предусмотреть необходимое количество выводов разрешения и всеравно использоват "монтажное ИЛИ"
Если устройства могут передавать то что приняли, при этом выбрав то что предназначено ему, то "кольцо".
Вобщем - что за устройства?
вы бы обьяснили ,что вам вообще надо , какие ограничения , почему именно uart , какие устройства должны между собой общаться а какие нет. нужно определить топологию соединения , возможна/нужна ли одновременная передача данных между устройствами или нет ?
а то тут можно предлагать массу вариантов и натыкаться "нет ,это не подходит"
А это означает, что данные нужны как принять, так и отправить.
Данные можно получать по запросу, что не требует сотен UART на МК, или же асинхронно, в случае чего получается бег по граблям.
Это как раз работа для ардуин. К каждому датчику ардуину, а их уже на одну шину с любым протоколом.
Предположим что у нас есть 8 портов.
4 из них мы настраиваем на прием данных от какого-то оборудования (не суть важно что за оборудование,
важно то, что оно выплевывает какие-то свои данные в RS232)
Полученные данные (поток данных постоянный) в реальном времени обрабатываем, парсим,
группируем и по каким-то критериями отправляет обработанную информацию в оставшиеся 4 выходных порта.
Упрощенно так.
Я надеюсь объяснил понятно.
PS: Ребят, я извинюсь если в каких-то местах я пишу глупости.
Я программист. Очень прикладной программист. Электроникой начал увлекаться недавно.
Как раз важно что за оборудование. Может ли оно выдавать данные по запросу ведущего (т.е. быть ведомым) или выдает постоянно само по себе.
Как раз важно что за оборудование. Может ли оно выдавать данные по запросу ведущего (т.е. быть ведомым) или выдает постоянно само по себе.
Данные по запросу выдавать не умеет. Выдает данные в RS232 постоянно
Боюсь, что у Вас проблема. Просто такая задача не решается, особенно на уровне начинающего. Самый простой путь - такой, каким его описал nik182
Это как раз работа для ардуин. К каждому датчику ардуину, а их уже на одну шину с любым протоколом.
можно чуть подробнее?
Боюсь, что у Вас проблема. Просто такая задача не решается, особенно на уровне начинающего. Самый простой путь - такой, каким его описал nik182
Я нигде не говорил про "просто.
Я спрашивал про конкретные способы реализации.
) В первую очередь вы должны понимать что RS232 - это интерфейс. Предназначен для соединения точка - точка. Вы же хотите несколько иного. Ага? Но тут сама физика не подразумевает иного! И что мы будем с этим делать?
Я спрашивал про конкретные способы реализации.
Конкретный способ: берёте N ардуин и N MaX232. Соединяете попарно, придумываете на чем сделать матрицу коммутации и алгоритм работы оной. Все ардуины присоединяете к матрице и нажимаете кнопку "пуск".
Существуют разветвители RS232, например 4 канальный MAX399.
) В первую очередь вы должны понимать что RS232 - это интерфейс. Предназначен для соединения точка - точка. Вы же хотите несколько иного. Ага? Но тут сама физика не подразумевает иного! И что мы будем с этим делать?
Я это понимаю.
Именно поэтому я и спрашиваю, как решить проблему с подключением большого количества rs232.
Существуют разветвители RS232, например 4 канальный MAX399.
Да, интересно.
Но, увы, в таком случае, как я понимаю, у меня нет возможности управлять портами, которые будут подключены через микросхему.
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).
У меня была абсолютно аналогичная ситуация. На датчиках стояли микросхемы max232 и был доступ внутрь датчиков. Я отпаял входы TTL от мах232 и повесил на них ардуиновские платы TTL-RS485 включенные в режим передачи. Плат было правда только 6 но по спецификаци 485 линии 20 она держит. На другом конце стоял переходник 485-USB сразу в комп. Платы иногда мешали друг другу, но это было видно по битым пакетам и легко обходилось. Если нет доступа внутрь датчиков, может быть помогут преходники 232-485 но я с такими не работал.
Но, увы, в таком случае, как я понимаю, у меня нет возможности управлять портами, которые будут подключены через микросхему.
управлять портами можно, но надо как то синхронизировать эти процессы, например циклично опрашивать порта, это зависит от того, что на другой стороне.
Как вариант, если денег много, у Mega2560 есть 4 аппаратных UART и один можно программный - итого = 5.
Первый - на каждую ардуину по 4 датчика а пятый UART использовать для создания кольца с другими ардуинами. Т.е. Головной модуль дает запрос первому периферийному он передает запрос дальше и добавляет ответ, последний модуль передает все пакеты на головной. Тем временем периферийные модули собирают с Устройств данные и складывают в буфер. При достаточной скорости работы кольца задержек передачи не будет.
Второй - на каждую ардуину по 5 датчиков, а с головным модулем связь через, допустим, IIC или SPI.
Именно поэтому я и спрашиваю, как решить проблему с подключением большого количества rs232.
Вы бы разъяснили обстановку. Расстояния, например. Как я понимаю вам 232 не обязателен? Вам лишь вы связать сеть из н-ного кол-ва датчиков, верно?
Ни spi ни i2c на десятки метров не работают. Кольцо из uart подразумевает 2 ком порта вход и выход и софт сериал нельзя здесь использовать из за ограничений приёма. Он сам на себя не работает ну соответственно теряет пакеты при одновременном приеме передаче. Плюс деньги. Плюс голова нужна, чтобы понимать что ты предлагаешь. Поэтому можно и мег поставить, но цена по сравнению с 485 будет как у спутника.
Естественно, на "спутнике" и дурак сделает. Обычно вопрос стоит в минимизации железа (и денег). Тогда минимальный вариант - сеть ардуин чисто на UART, т.е. без НИЧЕГО. Но здесь вопрос в расстояниях и скорости. Потому и вышеозвученный вопрос.
MAX14830
MAX14830
Простенько, но со вкусом.))) "И недорогаааая".)))
А я не понял. Как на ней сделать сбор 20 датчиков? У меня 6 было, кабель линии 485 по сложной линии около 50 метров от компа до последнего датчика. И датчики не равномерно сгруппированы были. На скорости 4800 всё нормально работает.
Да как! Мега + макс на 4 датчика. И так несколько. Затем этот кластер ещё с другим и т.д. Я ж говорю, что "простенько и со вкусом". Распил называется.)
А я предлагаю поставить RS232-TCP конверторы и завернуть всё на сервер ))
... и в облако.
Будете смеяться, но так оно и будет в скором времени.)
Good afternoon, dear gentlemen!
А я предлагаю поставить RS232-TCP конверторы и завернуть всё на сервер ))
... и в облако.
Будете смеяться, но так оно и будет в скором времени.)
)))
https://www.hackster.io/phpoc_man/a-single-arduino-uno-with-14-rs-232-po...
14 только, в чипе нет, но впечатляет!
https://www.hackster.io/phpoc_man/a-single-arduino-uno-with-14-rs-232-po...
^|^))))))))))))) Ace! Cool thing!
Dear sir wdrakula, I whish you a Good Mood!
sir nik182, Have a nice Day!