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

 
 
> Определение мастера в многомастерной сети
Славентий
сообщение Feb 21 2012, 07:26
Сообщение #1


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

Группа: Свой
Сообщений: 95
Регистрация: 11-01-09
Из: Москва, Севастополь
Пользователь №: 43 141



Добрый день.
Может не совсем правильно озаглавил тему, поэтому освещаю суть проблемы.

Имеется некоторое устройство, считающее значение фазы и формирующее на основании данного значения управляющие импульсы. Данное устройство должно работать как индивидуально, так и в группе с несколькими аналогичными устройствами. При работе в компании, одно из устройств должно быть ведущим и раздавать остальным рассчитанное значение фазы. Для организации сети планируется использовать один из вариантов: CAN или SCI(UART). CAN поддерживает аппаратный арбитраж, но может не удовлетворить по скорости передачи. SCI же удовлетворяет по скорости, но, как мне кажется, придется придется прибегать к привлечению человека в вопросе выбора мастера (допустим ставить перемычку в разъеме соединения блоков, куда выведены линии цифрового входа устройства, или ставить на каждый блок клавишу запуска/указания мастера).

Вопрос: какой из методов можно использовать, чтобы обеспечить работу устройства как в одиночном режиме, так и в сети, с минимальным набором действий и участием человека по указанию мастера в сети, а лучше вообще без участия человека?

Заранее благодарен за внимание.



Сообщение отредактировал Славентий - Feb 21 2012, 07:29
Go to the top of the page
 
+Quote Post
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 38)
Ruslan1
сообщение Feb 21 2012, 07:53
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Цитата(Славентий @ Feb 21 2012, 09:26) *
При работе в компании, одно из устройств должно быть ведущим и раздавать остальным рассчитанное значение фазы.

Если Вы в состоянии алгоритмизировать (полностью описать на понятном железу языке условие возникновения и обработки) эту ситуацию, то участие человека для втыкания перемычки не нужно, устройства сами по заданному Вами алгоритму выберут "ведущего". Если ситуация не подается полной алгоритмизации - то без человека не обойтись. Тип интерфейса тут совершенно ни при чем.
Go to the top of the page
 
+Quote Post
Славентий
сообщение Feb 21 2012, 08:57
Сообщение #3


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

Группа: Свой
Сообщений: 95
Регистрация: 11-01-09
Из: Москва, Севастополь
Пользователь №: 43 141



Выбор ведущего должен определяться по какому-либо свойству, программному или аппаратному. Аппаратное - перемычка, кнопка и т.п. Программное - число в памяти. В первом варианте необходимо контролировать перемычки/кнопки, а во втором в каждой прошивке изменять число. Может есть альтернативные варианты?
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Feb 21 2012, 12:42
Сообщение #4


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

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



QUOTE (Славентий @ Feb 21 2012, 16:57) *
Может есть альтернативные варианты?

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


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Feb 21 2012, 13:47
Сообщение #5


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(haker_fox @ Feb 21 2012, 16:42) *
...через случайный промежуток времени..


кстати о йожиках...

осталось понять откуда его красиво взять.
1) прошивать уникальный номер и привязываться к нему - возня с уникальностью при прошивке железа.
2) ацп шумы
???


(круглый)
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 22 2012, 06:26
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(kolobok0 @ Feb 21 2012, 17:47) *
2) ацп шумы

и если этот пин уже отдан под другую функцию... какой шум в кристалле (допустим, для 10бит разрешения)?
если еще с разводкой аналоговой земли "накосячить", то результат, наверное, должен быть неплохой sm.gif
Go to the top of the page
 
+Quote Post
zombi
сообщение Feb 22 2012, 08:31
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Если в устройстве есть RTC то при включении использовать его значение в качестве случ.вел.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 22 2012, 08:38
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(zombi @ Feb 22 2012, 12:31) *
Если

ключевое слово.
Go to the top of the page
 
+Quote Post
zombi
сообщение Feb 22 2012, 08:41
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(toweroff @ Feb 22 2012, 12:38) *
ключевое слово.

А наличие ацп сомнению не подвергается biggrin.gif
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 22 2012, 09:00
Сообщение #10


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Можно предусмотреть некоторую команду, по которой функции ведущего делегируются кому-то из ведомых. И никогда не поверю, что в системе нет проблем с динамическим назачением адресов - всё равно одна кнопка уже присутствует.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 22 2012, 09:38
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(zombi @ Feb 22 2012, 12:41) *
А наличие ацп сомнению не подвергается biggrin.gif

ну уж всяко чаще есть на борту, а вот RTC может и не быть... да даже если есть, то не используется laughing.gif
Go to the top of the page
 
+Quote Post
zombi
сообщение Feb 22 2012, 09:54
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(toweroff @ Feb 22 2012, 12:38) *
ну уж всяко чаще есть на борту, а вот RTC может и не быть... да даже если есть, то не используется laughing.gif

Вот и самое время использовать оный!

А вообще то я не совсем понимаю зачем нужен именно "случайный промежуток времени"?
Ведь включение это уже случайность.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 22 2012, 10:01
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(zombi @ Feb 22 2012, 13:54) *
Вот и самое время использовать оный!

Ведь включение это уже случайность.

если нет батарейки, то после включения всегда получим одно и то же значение
И где тут случайность? laughing.gif
Go to the top of the page
 
+Quote Post
zombi
сообщение Feb 22 2012, 10:21
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(toweroff @ Feb 22 2012, 14:01) *
если нет батарейки, то после включения всегда получим одно и то же значение
И где тут случайность? laughing.gif

Я имел ввиду не RTC без батарейки, а то что вкючить несколько устройств одновременно не возможно.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 22 2012, 10:41
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(zombi @ Feb 22 2012, 14:21) *
Я имел ввиду не RTC без батарейки, а то что вкючить несколько устройств одновременно не возможно.

нууу... спорно. Общий рубильник выкл/вкл, например
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Feb 22 2012, 10:46
Сообщение #16


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(zombi @ Feb 22 2012, 14:21) *
...вкючить несколько устройств одновременно не возможно.


если представим девайсы сидят на одной фазе... 220 стухло, потом появляется... с точки зрения скорострельности МК - тайминги будут копеечными. задача сводится к разведению фаз, перехода в активность на передачу, как можно дальше.

(круглый)
Go to the top of the page
 
+Quote Post
zombi
сообщение Feb 22 2012, 10:58
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(toweroff @ Feb 22 2012, 14:41) *
нууу... спорно. Общий рубильник выкл/вкл, например

Всё зависит от того какой интервал времени выбрать в качестве критерия одновременности ...г,д,ч,м,c,мс,мкс,нс,пс...
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 22 2012, 11:11
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(zombi @ Feb 22 2012, 14:58) *
Всё зависит от того какой интервал времени выбрать в качестве критерия одновременности ...г,д,ч,м,c,мс,мкс,нс,пс...

biggrin.gif biggrin.gif biggrin.gif ну г,д,ч,м,с можно смело фтоппко
а с остальными - это уж как может RTC выдавать
Хорошо, согласен, что с подобными временнЫми интервалами есть случайные величины - разброс емкостей питания, нарастание напряжения ядра, RTC,... есть некоторый разброс
Но, хорошо шумящий ADC, имхо, лучше
Go to the top of the page
 
+Quote Post
zombi
сообщение Feb 22 2012, 11:41
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(toweroff @ Feb 22 2012, 15:11) *
Но, хорошо шумящий ADC, имхо, лучше

Согласен на все 100%.

А по поводу случайного интервала :
если вероятность получения несколькими устройствами одинакового интервала не нулевая (теория вероятности), то это "ОЙ" произойдёт в самый не подходящий момент (это уже закон подлости).

Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 22 2012, 11:54
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(zombi @ Feb 22 2012, 15:41) *
это уже закон подлости

нет, Мерфи:
Цитата
Если есть несколько возможных вариантов исхода каждого из событий, и часть вариантов является нежелательной, причём в разной степени, то при возрастании количества испытаний вероятность выпадения наиболее нежелательного варианта стремится к единице.
Go to the top of the page
 
+Quote Post
Славентий
сообщение Feb 22 2012, 18:39
Сообщение #21


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

Группа: Свой
Сообщений: 95
Регистрация: 11-01-09
Из: Москва, Севастополь
Пользователь №: 43 141



Цитата(zombi @ Feb 22 2012, 11:31) *
Если в устройстве есть RTC то при включении использовать его значение в качестве случ.вел.

RTC - RealTimeClock?


Цитата(toweroff @ Feb 22 2012, 13:41) *
нууу... спорно. Общий рубильник выкл/вкл, например

если устройства работают в сети, то питание так и подается на все сразу

Цитата(toweroff @ Feb 22 2012, 14:11) *
biggrin.gif biggrin.gif biggrin.gif ну г,д,ч,м,с можно смело фтоппко
а с остальными - это уж как может RTC выдавать
Хорошо, согласен, что с подобными временнЫми интервалами есть случайные величины - разброс емкостей питания, нарастание напряжения ядра, RTC,... есть некоторый разброс
Но, хорошо шумящий ADC, имхо, лучше

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

значит все-таки не обойтись без кнопок\перемычек...
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Feb 22 2012, 20:42
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Цитата(Славентий @ Feb 22 2012, 20:39) *
значит все-таки не обойтись без кнопок\перемычек...

Джампер- самый лучший из вариантов, если условия эксплуатации позволяют.
Алгоритм, основанный на вероятностях- это яма, в которую Вы рано или поздно упадете, лучше ее вообще не выкапывать.
Go to the top of the page
 
+Quote Post
zombi
сообщение Feb 22 2012, 20:55
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(Славентий @ Feb 22 2012, 21:39) *
RTC - RealTimeClock?

Да часы или просто энергонезависимый счетчик RealTimeCounter.

Самый простой вариант это кнопка.
А чтобы сказать более точно возможно ли без оной обойтись, нужно более точно знать характеристики сети:
времянки, макс. кол-во устройств в сети, вообще предполагаемое кол-во выпущенных устройств и т.д.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Feb 23 2012, 03:00
Сообщение #24


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

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



QUOTE (Ruslan1 @ Feb 23 2012, 04:42) *
Алгоритм, основанный на вероятностях- это яма, в которую Вы рано или поздно упадете, лучше ее вообще не выкапывать.

А как же Ethernet? Там через случайный промежуток времени повторяется передача, если канал занят...


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 23 2012, 07:48
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(haker_fox @ Feb 23 2012, 07:00) *
А как же Ethernet? Там через случайный промежуток времени повторяется передача, если канал занят...

но там нет мастера. Здесь нужно однозначно назначить мастера автоматом

хотя... отсылать пакет мастеру, если его нет - в течение определенного интервала - автоназначить себя мастером...
в принципе, можно механизм придумать
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Feb 24 2012, 05:06
Сообщение #26


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

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



QUOTE (toweroff @ Feb 23 2012, 16:48) *
но там нет мастера. Здесь нужно однозначно назначить мастера автоматом

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

Я знаю, что в Ethernet нет мастера rolleyes.gif Я имел в виду, что там используется передача через случайный промежуток времени, если обнаружена коллизция. И этот метода работает по всему миру. Мои знания не устарели? rolleyes.gif
Это все к тому, что случайность - не такая уж и дыра, в которую можно попасть crying.gif


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
Sergey_Aleksandr...
сообщение Feb 24 2012, 09:43
Сообщение #27


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

Группа: Свой
Сообщений: 168
Регистрация: 8-10-08
Из: РФ Смоленск
Пользователь №: 40 764



Имеет ли каждое устройство свой уникальный серийный номер или иной идентификатор? Например, у кого больше (меньше), тот и мастер на шине.

UPD Тут подумал вот о чём. Если одно из устройств при работе в сети перезагрузится (помеха по питанию, сбой в ПО и т.п.), то оно "забудет", кто был ведомым, а кто ведущим и запустит механизм захвата шины. Произойдёт коллизия. Нужно уметь обрабатывать коллизии. Или ввести помимо механизма захвата шины механизм её удержания. Например, мастер периодически (раз в 10мс) шлёт пакет "мастер на шине есть". При отвале самого мастера пакет не генерируется и бывшие ведомые начинают по новой захватывать шину. Но при этом должна быть реализована задержка запуска механизма захвата шины, бОльшая интервала времени между пакетами мастера "шина захвачена".
Go to the top of the page
 
+Quote Post
Славентий
сообщение Feb 24 2012, 10:20
Сообщение #28


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

Группа: Свой
Сообщений: 95
Регистрация: 11-01-09
Из: Москва, Севастополь
Пользователь №: 43 141



Цитата(Sergey_Aleksandrovi4 @ Feb 24 2012, 11:43) *
Имеет ли каждое устройство свой уникальный серийный номер или иной идентификатор? Например, у кого больше (меньше), тот и мастер на шине.


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

Сообщение отредактировал Славентий - Feb 24 2012, 10:22
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Feb 24 2012, 10:40
Сообщение #29


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

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



QUOTE (Славентий @ Feb 24 2012, 18:20) *
спасибо за идею, была такая мысль. но в данном случае появляются заморочки при прошивке устройства. придется каким-то образом при прошивке контроллера помимо самой firmware в память записывать дополнительные данные

Это дело можно автоматизировать при помощи скрипта, который запускает прошивку МК. После прошивки номер инкрементируется. Можно отвести на номер 6 байт, не так много. Будет аналогия с MAC-адресом)))


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Feb 24 2012, 11:03
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Цитата(haker_fox @ Feb 24 2012, 07:06) *
Я знаю, что в Ethernet нет мастера rolleyes.gif Я имел в виду, что там используется передача через случайный промежуток времени, если обнаружена коллизция. И этот метода работает по всему миру. Мои знания не устарели? rolleyes.gif
Это все к тому, что случайность - не такая уж и дыра, в которую можно попасть crying.gif

дыра. по определению.
В какие только дебри народ согласен залезть, лишь бы джампер на плате не ставить sm.gif
Если для Вас заложить и поддерживать джампер сложнее, чем писать-отлаживать-имплементировать в устройство механизм разборки коллизий и всего что с этим связано- снимаю шляпу. Я в свое время почитал о том как езернет разруливает все нештатные ситуации- понял, что лучше это все обойти, чем влезать.
Кстати про езернет и мастеров- если вы захотите автоматически назначать адреса, то и там нужен специальный DHCP сервер, вольницы "сами все решим без главного" в сети не наблюдается.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Feb 24 2012, 13:38
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(Славентий @ Feb 24 2012, 14:20) *
спасибо за идею, была такая мысль. но в данном случае появляются заморочки при прошивке устройства. придется каким-то образом при прошивке контроллера помимо самой firmware в память записывать дополнительные данные (серийный номер или, может быть, время прошивки, или еще что-то уникальное) причем так, чтобы не лазить в коде, и чтобы процесс был автоматизирован (чтобы данные уникальности для каждого устройства автоматически изменялись после каждого процесса прошивки).

слабо поставить на каждую плату какой-нибудь даллас, типа DS1990, только в подходящем корпусе? rolleyes.gif
Go to the top of the page
 
+Quote Post
Sergey_Aleksandr...
сообщение Feb 24 2012, 14:21
Сообщение #32


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

Группа: Свой
Сообщений: 168
Регистрация: 8-10-08
Из: РФ Смоленск
Пользователь №: 40 764



Цитата(Ruslan1 @ Feb 24 2012, 15:03) *
Если для Вас заложить и поддерживать джампер сложнее, чем писать-отлаживать-имплементировать в устройство механизм разборки коллизий и всего что с этим связано- снимаю шляпу.

Жизненная ситуация №1: пользователь по ошибке вклчил в сеть с существующим мастером ещё одного мастера (забыл снять джампер).
Жизненная ситуация №2: в сети мастер отвалился (завис, сгорел и т.д.). Устройства как стадо баранов стоят и ждут "рассчитанное значение фазы", т.е. ничего не делают и при этом пользователь даже не догадывается о проблеме.

Даже с аппаратным определение мастера обязательно должна быть реализована детекция коллизий на шине.

По поводу автоматизации генерации уникального номера при прошивке - поищите в сети. Для AVR, например, существует тулза AVRDude, которая может самостоятельно инкриментировать серийный номер в ПЗУ при каждой перепрошивке. Для других МК, думаю, найдутся программы с подобным функционалом.
Go to the top of the page
 
+Quote Post
Славентий
сообщение Feb 24 2012, 14:29
Сообщение #33


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

Группа: Свой
Сообщений: 95
Регистрация: 11-01-09
Из: Москва, Севастополь
Пользователь №: 43 141



Цитата(Sergey_Aleksandrovi4 @ Feb 24 2012, 16:21) *
Жизненная ситуация №1: пользователь по ошибке вклчил в сеть с существующим мастером ещё одного мастера (забыл снять джампер).
Жизненная ситуация №2: в сети мастер отвалился (завис, сгорел и т.д.). Устройства как стадо баранов стоят и ждут "рассчитанное значение фазы", т.е. ничего не делают и при этом пользователь даже не догадывается о проблеме.

Даже с аппаратным определение мастера обязательно должна быть реализована детекция коллизий на шине.

По поводу автоматизации генерации уникального номера при прошивке - поищите в сети. Для AVR, например, существует тулза AVRDude, которая может самостоятельно инкриментировать серийный номер в ПЗУ при каждой перепрошивке. Для других МК, думаю, найдутся программы с подобным функционалом.


про "жизненные ситуации" это Вы прямо в точку! за наводку по софту спасибо, буду искать.
Go to the top of the page
 
+Quote Post
Sergey_Aleksandr...
сообщение Feb 24 2012, 14:31
Сообщение #34


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

Группа: Свой
Сообщений: 168
Регистрация: 8-10-08
Из: РФ Смоленск
Пользователь №: 40 764



ТС, а что за МК (или ПЛИС) вы используете? Дело в том, что некоторые МК имеют свой уникальный идентификатор, который вшит в них уже при производстве. Из известных мне, ID имеют XMEGA, STM8 и STM32.
Go to the top of the page
 
+Quote Post
Славентий
сообщение Feb 24 2012, 14:51
Сообщение #35


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

Группа: Свой
Сообщений: 95
Регистрация: 11-01-09
Из: Москва, Севастополь
Пользователь №: 43 141



система разрабатывается на TMS320F28069 от Texas Instruments, по даташиту внутреннего идентификатора не встречал
Go to the top of the page
 
+Quote Post
Andrew2000
сообщение Feb 24 2012, 20:14
Сообщение #36


Местный
***

Группа: Свой
Сообщений: 421
Регистрация: 25-12-04
Пользователь №: 1 675



Есть такой древний стандарт - Profibus (часть 2) - там вся эта многомастерность подробно и аккуратно расписана.
Go to the top of the page
 
+Quote Post
maksimp
сообщение Feb 25 2012, 05:50
Сообщение #37


Местный
***

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



Цитата(Славентий @ Feb 22 2012, 22:39) *
шумы ацп не получится использовать. в устройстве используется несколько каналов для измерений, а неиспользуемые выводы ацп посажены на аналоговую землю, для повышения точности измерений

Получится использовать. Все каналы АЦП всё равно шумят, и в том числе подключённые к земле. А значения измеряемых величин тем более можно рассматривать как случайные. Хотя объём случайности может быть и не велик - например по 1 биту с канала АЦП.
Взять значения всех каналов АЦП, составить вместе (то есть записать в последовательно расположенные элементы массива), по ним вычислить CRC или MD5 или что-то подобное чтобы смешать все каналы АЦП вместе. То что получится - случайное число. По этому числу определить время задержки до начала передачи. Начать передачу. Если коллизия - то может быть у другого блока такие же значения с АЦП - тогда ещё раз заново взять значения всех каналов АЦП и т.д.


Сообщение отредактировал maksimp - Feb 25 2012, 05:59
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Feb 25 2012, 05:57
Сообщение #38


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

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



QUOTE (Ruslan1 @ Feb 24 2012, 19:03) *
Если для Вас заложить и поддерживать джампер сложнее,

Прошу прощения, я не автор темы. Я вообще ничего закладывать и поддерживать не собираюсь rolleyes.gif
В своей сети на базе RS-485 я предподчитаю мастер задавать "дедовским способом", т.е. вручную.
Почему я предложил вариант со случайным временем? Да потому, что автор попросил что угодно. Вот я и предложил что угодно) Вариант с джампером уже был.

Я еще и прошивку идентификатора предложил выше, 6 байт, аналогия с MAC-адресом. Вроде на весь мир хватает)))


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Feb 28 2012, 21:45
Сообщение #39


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Цитата(haker_fox @ Feb 25 2012, 07:57) *
Прошу прощения, я не автор темы. Я вообще ничего закладывать и поддерживать не собираюсь rolleyes.gif
В своей сети на базе RS-485 я предподчитаю мастер задавать "дедовским способом", т.е. вручную.

Не, это я прошу прощения, чего-то меня не в ту степь понесло. У топикстартера несколько другое назначение устройства, названного мастером, чем я привык. У него это не строго определенный контроллер, а просто один из всех. То есть на каждом участке сети (любом изолированном участке) требуется обеспечить уникальность мастера. Если мастеров стало ноль (сломан/связь порвалась) - выбрать нового из всех подключенных слейвов. Если мастеров стало больше одного (два ранее независимых сегмента сети соединили) - нужно чтобы "выжил только один".

По мне я бы собрал систему на CAN, которая позволяет расставить приоритеты, и считал бы сообщением от мастера (фаза или что там) сообщение с максимальным приоритетом за время, равное интервалу сеанса связи. Тогда вообще париться не нужно, все предсказуемо и дубово, не нужно передавать никакие полномочия вообще.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 29th July 2025 - 04:11
Рейтинг@Mail.ru


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