Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ведущий - ведомый
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
sidy
Добрый день.
Есть два устройства, связанные между собой по CAN-интерфейсу (не суть какой интерфейс может быть и RS485 протокол Modbus-RTU - например). Питание на устройства будет подаваться практически одновременно. Возник вопрос – как этим устройствам в программе договориться по интерфейсу кто из них будет ведущим, а кто ведомым?
Владивольт
CSMA/CA -
Ключевой момент -- "останавливает передачу на отрезок времени случайной длины и затем повторяет попытку".
Осталось реализовать в устройствах генератор случайных чисел.
adnega
Цитата(sidy @ May 8 2018, 08:46) *
связанные между собой по CAN-интерфейсу

Дайте им разные ID и можете передавать когда угодно.
Мультимастер - это норма для CAN.

Цитата(sidy @ May 8 2018, 08:46) *
RS485 протокол Modbus-RTU

Мультимастер в Modbus-RTU отсутствует, ровно как и в RS485.
Можно придумать свой протокол с передачей "мастерности" соседу,
но, не зная зачем вам это все нужно, сложно что-то советовать.
haker_fox
QUOTE (sidy @ May 8 2018, 13:46) *
Добрый день.
Есть два устройства, связанные между собой по CAN-интерфейсу (не суть какой интерфейс может быть и RS485 протокол Modbus-RTU - например). Питание на устройства будет подаваться практически одновременно. Возник вопрос – как этим устройствам в программе договориться по интерфейсу кто из них будет ведущим, а кто ведомым?

Если они могут договориться кто будет ведущим, а кто - ведомым, то почему бы им не упростить задачу, и не назначить одного постоянно ведущим, а другого - постоянно ведомым. Как будто-то бы они так случайно договорились?)))
Priest_89
Выбор ведущего иногда делают по внешним состояниям и событиям - наличие/отсутствие определенного сигнала, подключенного устройства и т.п.
k155la3
Цитата(Priest_89 @ May 9 2018, 08:48) *
Выбор ведущего иногда делают по внешним состояниям и событиям - наличие/отсутствие определенного сигнала, подключенного устройства и т.п.
Если ТС всерьез написал про CAN, то есть некоторая вероятность, что, зная работу этого интерфейса на физ. уровне и канальном (?),
необходимость в мастер-слейв может вообще отпасть, тк при двухточечном соединении и первый и второй могут быть мастерами вполне законно и комфортно.
(об этом упоминалось выше - "CSMA" и "мультимастер" ).
Ну, а если уж нужно выделить "ведущего" на шине - то тот, который имеет более новый серийный номер (и свежее FW) - тот и мастер.

jcxz
Цитата(k155la3 @ May 9 2018, 12:55) *
Ну, а если уж нужно выделить "ведущего" на шине - то тот, который имеет более новый серийный номер (и свежее FW) - тот и мастер.

Не очень понятно в чём именно затруднения? И какое именно назначение требуется? Динамическое, при каждом включении заново?
Алгоритмов назначения мастера можно придумать кучу + ещё маленькая тележка. В зависимости от характера их взаимодействия.
Например: "Кто первый встал того и тапки".

Цитата(k155la3 @ May 9 2018, 12:55) *
Ну, а если уж нужно выделить "ведущего" на шине - то тот, который имеет более новый серийный номер (и свежее FW) - тот и мастер.

Для этого как минимум каждый должен знать какой SN у другого. Ну если только длина этого SN не влазит в длину адреса CAN - тогда автоматом. biggrin.gif
k155la3
Цитата(jcxz @ May 9 2018, 13:24) *
. . .Для этого как минимум каждый должен знать какой SN у другого. Ну если только длина этого SN не влазит в длину адреса CAN - тогда автоматом. . . .
Владелец тапков смотрит кому их отдать или оставить себе, сравнивая SN или версии FW.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.