реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Ведущий - ведомый, Как договориться по интерфейсу кто есть кто
sidy
сообщение May 8 2018, 05:46
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 275
Регистрация: 2-11-08
Пользователь №: 41 333



Добрый день.
Есть два устройства, связанные между собой по CAN-интерфейсу (не суть какой интерфейс может быть и RS485 протокол Modbus-RTU - например). Питание на устройства будет подаваться практически одновременно. Возник вопрос – как этим устройствам в программе договориться по интерфейсу кто из них будет ведущим, а кто ведомым?
Go to the top of the page
 
+Quote Post
Владивольт
сообщение May 8 2018, 06:06
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 166
Регистрация: 14-02-10
Пользователь №: 55 490



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


--------------------
#define TRUE (4==(2*2))
Go to the top of the page
 
+Quote Post
adnega
сообщение May 8 2018, 06:30
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 665
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(sidy @ May 8 2018, 08:46) *
связанные между собой по CAN-интерфейсу

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

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

Мультимастер в Modbus-RTU отсутствует, ровно как и в RS485.
Можно придумать свой протокол с передачей "мастерности" соседу,
но, не зная зачем вам это все нужно, сложно что-то советовать.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение May 8 2018, 08:05
Сообщение #4


Познающий...
******

Группа: Свой
Сообщений: 2 906
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



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

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


--------------------
Желаю всем гармонии с самими собой!
Go to the top of the page
 
+Quote Post
Priest_89
сообщение May 9 2018, 05:48
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 21-03-12
Пользователь №: 70 931



Выбор ведущего иногда делают по внешним состояниям и событиям - наличие/отсутствие определенного сигнала, подключенного устройства и т.п.
Go to the top of the page
 
+Quote Post
k155la3
сообщение May 9 2018, 09:55
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 101
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



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

Go to the top of the page
 
+Quote Post
jcxz
сообщение May 9 2018, 10:24
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 4 997
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



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

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

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

Для этого как минимум каждый должен знать какой SN у другого. Ну если только длина этого SN не влазит в длину адреса CAN - тогда автоматом. biggrin.gif
Go to the top of the page
 
+Quote Post
k155la3
сообщение May 9 2018, 10:48
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 101
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(jcxz @ May 9 2018, 13:24) *
. . .Для этого как минимум каждый должен знать какой SN у другого. Ну если только длина этого SN не влазит в длину адреса CAN - тогда автоматом. . . .
Владелец тапков смотрит кому их отдать или оставить себе, сравнивая SN или версии FW.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th August 2018 - 22:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.00898 секунд с 7
ELECTRONIX ©2004-2016