Перейти к содержанию

Ведущий - ведомый

Добрый день.
Есть два устройства, связанные между собой по CAN-интерфейсу (не суть какой интерфейс может быть и RS485 протокол Modbus-RTU - например). Питание на устройства будет подаваться практически одновременно. Возник вопрос – как этим устройствам в программе договориться по интерфейсу кто из них будет ведущим, а кто ведомым?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
CSMA/CA -
Ключевой момент -- "останавливает передачу на отрезок времени случайной длины и затем повторяет попытку".
Осталось реализовать в устройствах генератор случайных чисел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(sidy @ May 8 2018, 08:46) <{POST_SNAPBACK}>
связанные между собой по CAN-интерфейсу

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

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

Мультимастер в Modbus-RTU отсутствует, ровно как и в RS485.
Можно придумать свой протокол с передачей "мастерности" соседу,
но, не зная зачем вам это все нужно, сложно что-то советовать.

Поделиться сообщением


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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Выбор ведущего иногда делают по внешним состояниям и событиям - наличие/отсутствие определенного сигнала, подключенного устройства и т.п.

Поделиться сообщением


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

Поделиться сообщением


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

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

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

Для этого как минимум каждый должен знать какой SN у другого. Ну если только длина этого SN не влазит в длину адреса CAN - тогда автоматом. biggrin.gif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(jcxz @ May 9 2018, 13:24) <{POST_SNAPBACK}>
. . .Для этого как минимум каждый должен знать какой SN у другого. Ну если только длина этого SN не влазит в длину адреса CAN - тогда автоматом. . . .
Владелец тапков смотрит кому их отдать или оставить себе, сравнивая SN или версии FW.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти