Задать вопрос
@ivan58

Можно наладить связь между устройствами по проводам с помощью интерфейса RS485 не используя протокол передачи данных например Модбас??

Два устройства , например Ардуино , общаются между собой через проводной интерфейс RS485 . Текст набирается на клавиатуре одного , а его появление читается на экране другого Ардуино . И наоборот . Причем в программе не указано Master и Slave , что может и не обязательно ( не знаю) , но передача и прием данных работает . То есть как я понял работает вообще без протокола и если текст набирать на одновременно на двух клавиатурах , то произойдет передача данных стразу в обе стороны . Вылетит микросхема в модуле RS485 ? И можно общаться без протокола ? То есть когда нет этого модбасовского пакета с битами .
https://www.youtube.com/watch?v=vG89PSj8vZw
  • Вопрос задан
  • 318 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 3
@pfg21
ex-турист
передача данных одновременно в обе стороны в RS485 не получится, ибо интерфейс на такое не рассчитывался. изучи RS422.
в RS485 нету мастер/слейв, это функциональность более "высокого" протокола. в RS485 на одну шину можно повесить кучу устройств.
бегом в школу изучать что такое протокол :)
без протокола общаться просто и элементарно: посылаешь байтики - принимаешь байтики.
аппаратный уровень RS485 устойчив к коллизиям одновременной передачи - говоря проще микросхема не сгорит. микросхеме 485 вообще пофиг до всех байтиков что ты пересылаешь.
Ответ написан
@Indemsys
Если на RS485 одновременно передают несколько устройств, то такую передачу никто принять на сможет.
При этом сами микросхемы из строя не выйдут сразу, но станут перегреваться.
При длительном перегреве они выйдут из строя. Современные микросхемы при перегреве отключаться.
Включаться снова когда достаточно остынут через какое-то время.

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

Но когда обмен ведется всеми устройствами на шине и очень интенсивно, то проще всего сделать MODBUS.
Для работы по протоколу MODBUS сам пользователь должен решить кто у него будет мастер на шине.
Только мастер решает кто на шине и когда работает на прием или передачу. И только мастер может никого не спрашивая неожиданно включаться на передачу (если все предыдущие сеансы обмена закончены).
Слэйвы всегда по умолчанию работают на прием и слушают команды мастера. И только когда им приходит от мастера команда что-то передать они включаются на передачу и передают строго заданный объем данных в строго заданном интервале времени. Если они это правило нарушают, то это считается аварией или ошибкой разработчика.

Вот так и решается проблема коллизий с одновременной передачей на RS485 c протоколом MODBUS.
Но это не единственный способ борьбы с коллизиями.
Ответ написан
Микросхема в ограничение тока должна уйти, если она нормальная. Они держат и кз и противовключения.

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

М.б. вам даже интересней будет rs422 и две витых пары. Тогда можно простым уартом пользоваться, не думая о протоколах.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы