|
моноканальная сеть, идентификация новых устройств |
|
|
|
Jun 13 2009, 23:18
|

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

|
Планирую использование RS485 Фактически, при включении slave-девайс будет отвечать только на широковещательный пакет идентификации (ну или некой энумерации). После обмена и присвоения ему некоего ID хостом, слейв будет работать в штатном режиме и хост будет опрашивать конкретно его Вопрос - если НЕ энумерованных девайсов несколько? Когда-то читал, что в этом случае на каждом подобном девайсе в случае широковещательного энумерационного пакета запускается некий _случайный_ таймер, по срабатыванию которого девайс "послушает" эфир и примет решение - пакет "предназначался ему" или нет. Где можно это подробно почитать или, что, конечно, лучше  , - поиметь некие примеры кода в дополнение? Как вообще это грамотно реализовывается?
|
|
|
|
|
 |
Ответов
|
Jun 14 2009, 22:06
|

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

|
Цитата(Dog Pawlowa @ Jun 15 2009, 00:03)  Тут произошла подмена понятий, возможно по моей вине. Да, в том, что предлагали Вы первоначально, действительно мало смысла. В то же время, имея уникальный номер устройства (MAC-адрес) можно организовать раздачу сетевых адресов, и это имеет смысл для высокоуровневых протоколов, раз уж это придумали для TCP/IP, значит это кому-то нужно ?  Цитата(defunct @ Jun 15 2009, 00:18)  А если устройства до безобразия однотипные - скажем модемы, и хосту не важно кто есть кто? Хосту важно найти и подключить устройства в общий пул, чтобы потом пользовать первый попавшийся свободный. Для такой задачи энумерация (раздача MAC адресов) не выглядит бессмысленной. действительно, для однотипных (с точки зрения хоста) девайсов подход в раздаче ID - очень хорошая вещь. Но у меня немного иная цель - каждый девайс будет жестко закреплен за неким участком и вся статистика привязывается именно к участку... Теперь, если представить ситуацию, что все не-энумерованные девайсы включились сразу, а это возможно и их может быть порядка 200, то определиться кто где будет крайне затруднительно Но тут еще обдумывал это все дело много раз... ведь можно в девайс вкрутить какой-нибудь 1-Wire Dallas с 64-битным ID и пользовать его. Просто лепить на девайс стикер с его номером (ID), пусть в базу хоста вносят и привязывают куда и к чему хотят, а тот будет опрашивать по этому ID
|
|
|
|
|
Jun 15 2009, 00:14
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(toweroff @ Jun 15 2009, 01:06)  Но у меня немного иная цель - каждый девайс будет жестко закреплен за неким участком и вся статистика привязывается именно к участку...
Теперь, если представить ситуацию, что все не-энумерованные девайсы включились сразу, а это возможно и их может быть порядка 200, то определиться кто где будет крайне затруднительно
Но тут еще обдумывал это все дело много раз... ведь можно в девайс вкрутить какой-нибудь 1-Wire Dallas с 64-битным ID и пользовать его. Просто лепить на девайс стикер с его номером (ID), пусть в базу хоста вносят и привязывают куда и к чему хотят, а тот будет опрашивать по этому ID Тогда без сожалений забудьте про энумерацию. Разделите адресное пространство на служебные адреса 0x00 и рабочие адреса - 0x1-0xFF. Пусть все устройства всегда стартуют в служебном режиме (режим конфигурирования) со служебным адресом и миганием светодиода, или другим способом показывают пользователю, что они в служебном режиме. Пусть сконфигурированные устройства переходят в рабочий режим по заданному таймауту, а несконфигурированные устройства так и остаются в служебном режиме и никогда не переходят в рабочий режим. Host, управляющий системой, пусть никогда не опрашивает служебные адреса. Тогда все становится просто. Включаете систему - видите какие девайсы "не в теме", поочереди конфигурируете их специальной программой которая работает со служебным адресом "0x00". Для перекофигурации системы, отлючаете от системы Host, подключаетесь вместо него той же специальной программой и поочереди - передергиваете устройства, которые надо переконфигурировать. Будет просто и достаточно удобно. Кстати этот подход позволит Вам в будущем добавить и автоматическую энумерацию. Т.к. известен адрес несконфигурированных устройств.
|
|
|
|
|
Jun 15 2009, 00:46
|

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

|
Цитата(defunct @ Jun 15 2009, 04:14)  Тогда все становится просто. Включаете систему - видите какие девайсы "не в теме", поочереди конфигурируете их специальной программой которая работает со служебным адресом "0x00". Для перекофигурации системы, отлючаете от системы Host, подключаетесь вместо него той же специальной программой и поочереди - передергиваете устройства, которые надо переконфигурировать. Будет просто и достаточно удобно.
Кстати этот подход позволит Вам в будущем добавить и автоматическую энумерацию. Т.к. известен адрес несконфигурированных устройств. вот тут-то как раз затык ИБО  отключить девайс - разорвать 485 сеть (планируется по 2 параллельных RJ45), но все-то остальные опрашиваются в реал-тайм, все сидят на одной линии технарь также не будет работать круглосуточно фактически - остается только опрос "битых" девайсов хостом по 485 интерфейсу кстати, 2 allкто-нибудь пользовал подобные вещи - MAX3075 ? Как они себя ведут при максимальном количестве трансиверов? На какой скорости при длине кабеля 5-й категории метров 100-150?
|
|
|
|
Сообщений в этой теме
toweroff моноканальная сеть Jun 13 2009, 23:18 HARMHARM Если у слейвов есть серийные номера - посмотрите к... Jun 14 2009, 05:27 zltigo Цитата(HARMHARM @ Jun 14 2009, 08:27) Есл... Jun 14 2009, 05:51  HARMHARM Цитата(zltigo @ Jun 14 2009, 08:51) Есть ... Jun 14 2009, 08:04   zltigo Цитата(HARMHARM @ Jun 14 2009, 11:04) Ну,... Jun 14 2009, 08:55    Dog Pawlowa Все таки первично должно быть ТЗ на такую систему ... Jun 14 2009, 09:30     toweroff Цитата(Dog Pawlowa @ Jun 14 2009, 13:30) ... Jun 14 2009, 10:02      Dog Pawlowa Цитата(toweroff @ Jun 14 2009, 13:02) Вот... Jun 14 2009, 10:39      Qwertty Цитата(toweroff @ Jun 14 2009, 14:02) Вот... Jun 14 2009, 13:57       toweroff Цитата(Qwertty @ Jun 14 2009, 17:57) Авто... Jun 14 2009, 14:55       Dog Pawlowa Цитата(Qwertty @ Jun 14 2009, 16:57) Авто... Jun 14 2009, 17:19        defunct Цитата(Dog Pawlowa @ Jun 14 2009, 20:19) ... Jun 14 2009, 18:13 Rst7 ЦитатаКакой сервис (имея все 7 уровней) предлагает... Jun 14 2009, 18:55 defunct Цитата(Rst7 @ Jun 14 2009, 21:55) Пусть M... Jun 14 2009, 20:18 toweroff Нет-нет, мне нужно иметь уникальный ID девайса. Но... Jun 14 2009, 19:42 Dog Pawlowa Цитата(toweroff @ Jun 14 2009, 22:42) Нет... Jun 14 2009, 20:03     defunct Цитата(toweroff @ Jun 15 2009, 04:03) все... Jun 15 2009, 01:15      toweroff Цитата(defunct @ Jun 15 2009, 05:15) Гм..... Jun 15 2009, 01:31       defunct Цитата(toweroff @ Jun 15 2009, 04:31) (кс... Jun 15 2009, 06:17        toweroff Цитата(defunct @ Jun 15 2009, 10:17) Посм... Jun 15 2009, 08:23         defunct Цитата(toweroff @ Jun 15 2009, 11:23) спа... Jun 15 2009, 18:00          SeriouSerg Если еще актуальна задача, посмотрите в сторону ма... Jun 15 2009, 22:16 toweroff Не совсем "оно"... Девайс ОБЯЗАН поднять... Jun 15 2009, 00:24 defunct Цитата(toweroff @ Jun 15 2009, 03:24) Не ... Jun 15 2009, 00:30 Altemir Решал схожую задачу на RS-485. Использовал MAX1344... Jun 20 2009, 08:39
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|