|
|
  |
2 MASTERA RS 485 и доминирующий |
|
|
|
Feb 3 2016, 20:45
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(zltigo @ Feb 3 2016, 23:20)  Я весь внимание! Слейвы офигивеют от такого напора, начинают не отвечать или отвечают с некорректными контрольными суммами. Мастера, не дождавшись корректного ответа с корректной контрольной суммой в обозначенное время, соображают, что это может быть коллизия! Тот который слабенький перестают обращаться к шине в течение 10 секунд после последнего принятого сообщения (он при этом продолжает подслущивать шину). Тот который сильный начинает обмен через 1 секунду после тотального "нехорошо". По уму он еще может послать слабаку некое послание, мол, давай поделай, что ты там хотел, только побыстрее, иначе я тебе такую коллизию устрою.
|
|
|
|
|
Feb 3 2016, 21:22
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (adnega @ Feb 3 2016, 22:45)  Слейвы офигивеют от такого напора.... Поздно. Цитирую "тезхадание" ТС: "Когда один Мастер вещает,подключая второй Мастер,первый замолкает." Так что предположения мастеров о наличии коллизии вызванные неответами слейвов это медленно для TC. А коллизии именно в момент передачи надежно на 485 не определить. О чем сразу и было сказано.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 4 2016, 07:36
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(adnega @ Feb 4 2016, 07:28)  Если нужно поверх RS485, то только с отслеживанием коллизий на уровне протокола. Да, во время коллизии переключение Мастеров будет не быстрым, но затем можно работать на полную катушку. Об этом и писал, ибо определить коллизию в этом случае можно только по приему\неприему транзакции. Как правило - это тестовая очень короткая транзакция, причем все остальные мастера в неактивном режиме "слушают" линию, если мастер не основной(которому все можно  ), при появлении в линии тестовой транзакции, затыкается на случайный интервал времени, основной пихает свои данные в любое время, "расталкивая" всех остальных... Как правильно заметили, требуется некоторое время на всю эту свистопляску, но ТС не регламентировал скорости и тайминги. ЗЫ. Ну а если ему нужна именно аппаратная реализация - то пусть коммутирует резюки, если так уж приперло или шимирование, но это уже другая тема
Сообщение отредактировал mantech - Feb 4 2016, 07:45
|
|
|
|
|
Feb 4 2016, 12:01
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(Сергей Борщ @ Feb 4 2016, 14:18)  А диоды зачем? Tx прибить гвоздями к земле, передаваемые данные завести на TxEN, резисторами растянуть шину к рецессивному уровню. Что я не учел? Это будет жесть какая-то, а не 485 Примерно как написать в спецификации на изделие "протокол Modbus" и вляпать туда самопальную функцию под номером 175 Интеграторы очень "любят" такие сюрпризы 3 страницы обсуждения BDSM ^) (доминирование и все такое)
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Feb 4 2016, 13:14
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (mantech @ Feb 4 2016, 09:36)  Об этом и писал, ибо определить коллизию в этом случае можно только по приему\неприему транзакции. Не совсем так - только по НЕОТВЕТУ на запрос. Так что описанный Вами ниже механизм не работает. QUOTE Как правило - это тестовая очень короткая транзакция, причем все остальные мастера в неактивном режиме "слушают" линию А если они вдуг НЕ слушают, а передают, то построенный карточный домик такого алгоритмя рушится  , посколюку неосновной так и не узнает, что ему оказывается надо заткнуться. QUOTE Как правильно заметили, требуется некоторое время на всю эту свистопляску, но ТС не регламентировал скорости и тайминги. Вообще то АБСОЛЮТНО ТОЧНО регламентировал - "слабый" в его терминологии мастер, должен прямо во время своей передачи заткнуться, в "сильный" как ни всем ни бывало передать. Гарантированное вклинивание одного мастера в 485 может быть только по следующему алгоритму: мастер, который хочет всех растолкать должен начать гнать непрепрерывно в линию символ (не фрейм!) трактуемый всеми, как "забой". Длительность передачи такого символа должна быть больше длительности передачи любого другого фрейма. Таким образом остальные мастера поймав последовательность таких символов могут знать, что сразу после окончания такой последовательности будет передан фрейм и надо ждать окончания этого фрейма. При этом надо, если таких срочных передатчиков не один, заниматься уже их арбитражем  .
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Feb 4 2016, 13:36
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(zltigo @ Feb 4 2016, 16:14)  При этом надо, если таких срочных передатчиков не один, Дальше можно не продолжать, ибо это что-то с чем-то превращается уже не в изврат, а мазохизм  Цитата(zltigo @ Feb 4 2016, 16:14)  А если они вдуг НЕ слушают, а передают, то построенный карточный домик такого алгоритмя рушится Перед началом передачи все мастера обязаны прослушать, чистая-ли линия, кроме самого главного. Если таковых несколько, то выше уже написал... Цитата(zltigo @ Feb 4 2016, 16:14)  Гарантированное вклинивание одного мастера в 485 может быть только по следующему алгоритму: И так тоже можно...Этакая "преамбула" пакета "все заткнитесь, главный пришел"
Сообщение отредактировал mantech - Feb 4 2016, 13:36
|
|
|
|
|
Feb 4 2016, 13:51
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (mantech @ Feb 4 2016, 15:36)  Перед началом передачи все мастера обязаны прослушать, чистая-ли линия, кроме самого главного. Если таковых несколько, то выше уже написал... Ну послушали. Все типа чисто, а на самом деле уже какой-то мастер уже байт запихнул и он бежит по проводам.... но узнают об этом все только после прихода стоп бита. Вот такой облом  с Вашим "обязаны послушать". QUOTE (mantech @ Feb 4 2016, 15:36)  И так тоже можно...Этакая "преамбула" пакета "все заткнитесь, главный пришел"  Так не можно, а только так и можно  . QUOTE (mantech @ Feb 4 2016, 15:36)  Дальше можно не продолжать, ибо это что-то с чем-то превращается уже не в изврат, а мазохизм  Вообще-то дальше особого уже мазохизма нет - самый главный будет с самой длиной "преамбулой"  . У кого больше, тот и будет передавать
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|