шина RS-485 на несколько устройств без мастера взлетит ?

vde69
Offline
Зарегистрирован: 10.01.2016

вопрос на преспективу:

хочу объеденить несколько независимых NANO через RS-485, при этом они все должны быть равноправными и уметь обращатся друг к другу напрямую минуя центр (это надо для создания системы "автономных" модулей умеющих работать как независимо, так и "в команде").

Понятно, что RS-485 - это электрический стандарт, на который вешается софтверный протокол, наиболее распространенным является схема с Мастером и Слейвами.

Существуют-ли стандарты (и реализации в ардуине) без мастера?

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

RS-485 последовательная, помехозащищенная шина не требующая  ведущего для обмена данными. Ведущий или мастер может вводится для диспетчерезации обмена, уже на уровне обмена пакетами данных, для разруливания коллизий при одновременном вещании нескольких узлов. Стандартов высокоуровневого обсена на шине RS-485, как и на RS-232 или CAN не существует, по сути это потоки-носители позволяющие организовать взаимодействие. Так что без мастера будет работать передача данных. 

Как организован обменс мастером во главе. Он (ведущий) предоставляет в единый момент времени ответить только одному узлу. Слушать могут все, а вот начать передачу, только тот кому разрешит мастер, то есть слейв только отвечает на запросы или разрешения мастера.

vde69
Offline
Зарегистрирован: 10.01.2016

ну не изобретать-же велосипет?

самым распространенным протоколом является MODBUS, но на сколько я понимаю ему обязательно нужен один мастер?

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

Ну не изобретайте. Зачем тогда вопрос задаете ? Модбас можно запустить на любом носителе, было бы желание. Но без мастера - нельзя.

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016

vde69 пишет:
Существуют-ли стандарты без мастера?
Без мастера это когда все молчат, мультимастер наверно имеется в виду. Token ring или маркерное кольцо.

MacSim
Offline
Зарегистрирован: 28.11.2012

 

vde69 пишет:
Существуют-ли стандарты без мастера?

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

Logik
Offline
Зарегистрирован: 05.08.2014

Ваша хотелка - мультимастер. Если не удастся организоватьциклический обмен - а его как правило можна сделать задействовав пустые сообщения, т.е. если мастеру сказать нечего - он отсылает пустое, типа "я пасс, господа, следующий!!", то прейдется делать механизм разрешения конфликта на шине. Подходов тут несколько 1. Изучите CAN, там интересно 2.Контроль шины при начале вывода - подход проблемный (аналоговые измерения, зависит от конфигурации сети и т.д.), но конфликт выявляется быстро.  3.Выявление конфликта по отсутствию ответе или битой CRC (фактически конфликт приравнивается к просто помехе) 4. Занятие шины до основной передачи на случайное время, отпускание, проверка состояния, если занята - конфликт и надо обождать. 5. Создание искуственного главного, если достаточно долго (но с случайной составляющей в времени) нет обмена, то устройство у которого первого истек интервал говорит всем "я главное! Всем молчать пока я не спрошу и не разрешу!" и т.д.

Обилие методов как бы намекает что они все не идеальные. Чаще используют подходы 3 - контроль ошибок как бы всеравно нужен, так пусть он и рулит.

vde69
Offline
Зарегистрирован: 10.01.2016

Andy пишет:

vde69 пишет:
Существуют-ли стандарты без мастера?
Без мастера это когда все молчат, мультимастер наверно имеется в виду. Token ring или маркерное кольцо.

в принцепе - да, если кто знает готовую библиотеку для ардуино (или на крайняк стандарт) киньте плиз.... а то там заморочки возникают например при включении или при двух одинаковых ID, не хочется на грабли наступать.... 

 

ну и уж до кучи может кто знает есть какой стандарт для распиновки RS-485 на разьем RJ-45 ???

встречал в инете такую |+5|+5|_| A|B |_|GRD|GRD| но не уверен, что это гуд...

MacSim
Offline
Зарегистрирован: 28.11.2012

так не делайте два одинаковых.

 

vde69
Offline
Зарегистрирован: 10.01.2016

MacSim пишет:

так не делайте два одинаковых.

 

а как делать? и почему не делать по 2 ???

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

vde69 пишет:

в принцепе - да, если кто знает готовую библиотеку для ардуино (или на крайняк стандарт) киньте плиз....

Библиотека для работы в режиме multimaster: https://drive.google.com/file/d/0Bzb96ijbjcmkcEIzTzBXemZCZ28/view?usp=sh...

Сам не пробовал, скачал на будущее: сделана вроде добротно, судя по коду. Есть встроенный арбитраж. В комплекте - примеры.