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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> моноканальная сеть, идентификация новых устройств
toweroff
сообщение Jun 13 2009, 23:18
Сообщение #1


Гуру
******

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



Планирую использование RS485

Фактически, при включении slave-девайс будет отвечать только на широковещательный пакет идентификации (ну или некой энумерации). После обмена и присвоения ему некоего ID хостом, слейв будет работать в штатном режиме и хост будет опрашивать конкретно его

Вопрос - если НЕ энумерованных девайсов несколько?
Когда-то читал, что в этом случае на каждом подобном девайсе в случае широковещательного энумерационного пакета запускается некий _случайный_ таймер, по срабатыванию которого девайс "послушает" эфир и примет решение - пакет "предназначался ему" или нет.

Где можно это подробно почитать или, что, конечно, лучше smile.gif , - поиметь некие примеры кода в дополнение? Как вообще это грамотно реализовывается?
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Jun 14 2009, 05:27
Сообщение #2


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Если у слейвов есть серийные номера - посмотрите как это реализовано в 1-wire.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 14 2009, 05:51
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(HARMHARM @ Jun 14 2009, 08:27) *
Если у слейвов есть серийные номера - посмотрите как это реализовано в 1-wire.

Есть хорошие методы позволенные в изначально правильно построенных интерфейсах, хоть очень простых, как OW, хоть таких, как CAN. Проблема с теми многоточечными, которые кривые, как 485 не и не имеют доминирующего уровня - посему алготитмы основанные на возможности гарантированного "монтажного или" на обшей шине заложенное в основу, в том числе, и OW нормально не прокатывают.

Цитата(toweroff @ Jun 14 2009, 02:18) *
некий _случайный_ таймер, по срабатыванию которого девайс "послушает" эфир и примет решение - пакет "предназначался ему" или нет.

Ну так Вы все и описалию Девайс через случайное время с квантом больше времени передачи ответного пакета вылезает на линию и шлет то самое время в качестве своего врEменного идентификатора. По идентификатору уже посылается пакет с конфигурацией этого конкретного девайса. При совпадении "случайных" чисел рассчитывается (без 100% гарантий) на то, что наверное мастер примет из линии что-то "битое" повторит процедуру на которую откликнуся девайсы не получавшие конфигурации в прошлом цикле.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Jun 14 2009, 08:04
Сообщение #4


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Цитата(zltigo @ Jun 14 2009, 08:51) *
Есть хорошие методы позволенные в изначально правильно построенных интерфейсах, хоть очень простых, как OW, хоть таких, как CAN. Проблема с теми многоточечными, которые кривые, как 485 не и не имеют доминирующего уровня - посему алготитмы основанные на возможности гарантированного "монтажного или" на обшей шине заложенное в основу, в том числе, и OW нормально не прокатывают.

Ну, J1708 никто не отменял... Хотя это не "чистый" 485.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 14 2009, 08:55
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(HARMHARM @ Jun 14 2009, 11:04) *
Ну, J1708 никто не отменял... Хотя это не "чистый" 485.

И даже не "грязный" smile.gif И к тому-же его конкретно похоронил J1939 smile.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jun 14 2009, 09:30
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Все таки первично должно быть ТЗ на такую систему с указанием времени, за которое система должна организоваться после включения питания.
Даже в довольно сложных системах, например с LonWorks, не брезгуют включением устройств в сеть по очереди и последующим прописыванием адреса или установкой его на джамперах.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
toweroff
сообщение Jun 14 2009, 10:02
Сообщение #7


Гуру
******

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



Цитата(Dog Pawlowa @ Jun 14 2009, 13:30) *
Все таки первично должно быть ТЗ на такую систему с указанием времени, за которое система должна организоваться после включения питания.
Даже в довольно сложных системах, например с LonWorks, не брезгуют включением устройств в сеть по очереди и последующим прописыванием адреса или установкой его на джамперах.


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

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

Вот сижу и думаю - пусть заморачивается заказчик с прописыванием ИД в слэйвы, или заморочиться самому сейчас с энумерацией... а сроки поджимают smile.gif
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jun 14 2009, 10:39
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(toweroff @ Jun 14 2009, 13:02) *
Вот сижу и думаю...

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

У меня в одной системе после включения питания сообщения не отправляются, только после того, как мастер скажет. Разработчик мастера (из другой фирмы) не не захотел использовать эту возможность, но это его проблемы. Запас не помешает.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Qwertty
сообщение Jun 14 2009, 13:57
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527



Цитата(toweroff @ Jun 14 2009, 14:02) *
Вот сижу и думаю - пусть заморачивается заказчик с прописыванием ИД в слэйвы, или заморочиться самому сейчас с энумерацией... а сроки поджимают smile.gif

Автоматическая энумерация не есть гуд. Даже в тех интерфейсах, где она просто реализуется - типа OneWire. Если в сети устройства однотипные, то все равно без ручной "прописки" чаще всего не обойтись. Представьте сеть из 4-х термометров ds18b20, контролирующих температуру в разных зонах какого нибудь термошкафа. При автоматической энумерации можно получить 4 идентификатора, но как их привязать к зонам? Все равно придется включать по одному...
Go to the top of the page
 
+Quote Post
toweroff
сообщение Jun 14 2009, 14:55
Сообщение #10


Гуру
******

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



Цитата(Qwertty @ Jun 14 2009, 17:57) *
Автоматическая энумерация не есть гуд. Даже в тех интерфейсах, где она просто реализуется - типа OneWire. Если в сети устройства однотипные, то все равно без ручной "прописки" чаще всего не обойтись. Представьте сеть из 4-х термометров ds18b20, контролирующих температуру в разных зонах какого нибудь термошкафа. При автоматической энумерации можно получить 4 идентификатора, но как их привязать к зонам? Все равно придется включать по одному...


ну вот и я к этому пришел..

Но все равно всем спасибо, в любом случае в дальнейшем информация может оказаться полезной
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jun 14 2009, 17:19
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Qwertty @ Jun 14 2009, 16:57) *
Автоматическая энумерация не есть гуд. Даже в тех интерфейсах, где она просто реализуется...

Есть интерфейсы и есть интерфейсы.
Если сеть содержит все семь уровней, то все становится похоже на IP/MAC/DHCP.
Если все семь уровней втоптали в два-три, то конечно, зачем это все? smile.gif


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
defunct
сообщение Jun 14 2009, 18:13
Сообщение #12


кекс
******

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



Цитата(Dog Pawlowa @ Jun 14 2009, 20:19) *
Если сеть содержит все семь уровней, то все становится похоже на IP/MAC/DHCP.
Если все семь уровней втоптали в два-три, то конечно, зачем это все? smile.gif

Какой сервис (имея все 7 уровней) предлагаете пользовать для назначения MAC адреса?
Задача автора как раз в этом.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jun 14 2009, 18:55
Сообщение #13


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Какой сервис (имея все 7 уровней) предлагаете пользовать для назначения MAC адреса?


Пусть MAC будет уникальным. А назначать аля-IP методами аля-DHCP или аля-ZeroConf. Соответствующие схемы взаимодействия уровней в RFC обсосаны, можно изучать и делать свое.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
toweroff
сообщение Jun 14 2009, 19:42
Сообщение #14


Гуру
******

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



Нет-нет, мне нужно иметь уникальный ID девайса. Но действительно, после получения его хостом, будет невозможно понять - а какому именно слейву был назначен идентификатор, а это необходимо, т.к. в самом слейве изначально никакого уникального MAC и чего-то подобного нет.
Поэтому, т.к. этот самый MAC все равно прописывать придется, то какая разница? Пропишу сразу руками и ID, или только ID, а хост уже будет знать что это такое
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jun 14 2009, 20:03
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(toweroff @ Jun 14 2009, 22:42) *
Нет-нет, мне нужно иметь уникальный ID девайса...

Тут произошла подмена понятий, возможно по моей вине.
Да, в том, что предлагали Вы первоначально, действительно мало смысла.
В то же время, имея уникальный номер устройства (MAC-адрес) можно организовать раздачу сетевых адресов, и это имеет смысл для высокоуровневых протоколов, раз уж это придумали для TCP/IP, значит это кому-то нужно ? smile.gif


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post

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

 


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


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