Полная версия этой страницы:
Сеть с 30 модулей XBee Pro
Alex_1811
Mar 2 2011, 09:14
Поставили мне такую задачу.
Есть цех в котором будет стоять около 25 устройств.
Каждое устройство будет управляться своим пультом.
Вопрос: как мне организовать связь на модулях XBee Pro чтобы они не мешали друг другу.
Заранее все спасибо.
P.S. Разнести по каналам не вариант.
Bakradze
Mar 2 2011, 09:17
Сообщение начинать с позывного, у каждого устройства свой позывной. Услышав свой позывной - устройство готовится к приему последующей информации...
Alex_1811
Mar 2 2011, 09:26
Цитата(Bakradze @ Mar 2 2011, 13:17)

Сообщение начинать с позывного, у каждого устройства свой позывной. Услышав свой позывной - устройство готовится к приему последующей информации...
А как быть если одновременно подается команда с 20 пультов?
Bakradze
Mar 2 2011, 09:35
Ну, надобно установить порядок в этом...За пультом люди сидят?
Какова вероятность, что с все 20 (ну или хотя бы больше одного) пультов начнут передачу?
Alex_1811
Mar 2 2011, 09:51
Цитата(Bakradze @ Mar 2 2011, 13:35)

Ну, надобно установить порядок в этом...За пультом люди сидят?
Какова вероятность, что с все 20 (ну или хотя бы больше одного) пультов начнут передачу?
1. Пульт держит в руках человек. Передача может быть в обеих направлениях (команда с пульта или устройство может передавать данные о текущем состоянии).
2. Одновременная передача очень даже возможна. На реальных устройствах на такие грабли уже наступали.
Сразу в голову пришло 2 варианта:
Считаем что все устройства имеют свой "позывной" ну или свой адрес.
1. Передача данных на пульт о состоянии только по запросу - пока не пришел запрос с пульта, все устройства молчат. Пришел запрос на устройство - устройство передало данные состояний. Соответственно пульт в определенный интервал времени опрашивает все устройства. (Что то подобное реализовано в манчестере.)
2. Передача данных по разрешению: перед передачей данных о состоянии устройство посылает разрешающий запрос, после чего пульт блокирует передачу данных со всех устройств, кроме приславшего запрос, отсылает устройству разрешение на передачу и принимает данные, после чего отменяет запрет.
KARLSON
Mar 2 2011, 19:14
А что если протокол построить по следующему принципу? Перед посылкой проверять чистоту эфира. Первый байт адрес. Слейв отслеживает свой адрес и принимает что нужно. Если несколько мастеров одновременно передают адреса, то принятым адресом будет наименьший. Было бы ещё проще, если передатчик смог сразу проверить что он в эфир отправил. Упрощённый пример CAN протокола.
Чистоту эфира определить по тайм аутам, минимальному времени отсутствия эфира. Слейву ещё бы отправлять признак правильности принятия данных, например контрольную сумму.
Alex_1811
Mar 3 2011, 07:16
Цитата(Chapt @ Mar 2 2011, 20:08)

Сразу в голову пришло 2 варианта:
Считаем что все устройства имеют свой "позывной" ну или свой адрес.
1. Передача данных на пульт о состоянии только по запросу - пока не пришел запрос с пульта, все устройства молчат. Пришел запрос на устройство - устройство передало данные состояний. Соответственно пульт в определенный интервал времени опрашивает все устройства.
2. Передача данных по разрешению: перед передачей данных о состоянии устройство посылает разрешающий запрос, после чего пульт блокирует передачу данных со всех устройств, кроме приславшего запрос, отсылает устройству разрешение на передачу и принимает данные, после чего отменяет запрет.
Дело в том что для каждого устройства будет свой независимый пульт (20 устр - 20 пультов).
Смешные вы все.
Все это уже есть в IEEE 802.15.4, который реализован в XBee.
Документацию на модуль почитали бы.
Alex_1811
Mar 3 2011, 08:26
Цитата(acex2 @ Mar 3 2011, 11:29)

Смешные вы все.
Все это уже есть в IEEE 802.15.4, который реализован в XBee.
Документацию на модуль почитали бы.
С XBee до этого дела ни имел вообще.
Скажите, пожалуйста, в какую сторону рыть. Очень нужно.
Цитата(Alex_1811 @ Mar 3 2011, 11:26)

С XBee до этого дела ни имел вообще.
Скажите, пожалуйста, в какую сторону рыть. Очень нужно.
Почитайте про адресацию в мануале на модули. По большому счету, вам надо определиться с адресом каждого устройства и при передаче данных указывать какому устройству предназначается пакет. Все остальное сделает реализация MAC в стеке модуля.
XBee в России официально поддерживаются компанией Компэл. Почитайте их статьи на русском тут:
http://www.compeljournal.ru/enews/tag/zigbee
Alex_1811
Mar 3 2011, 10:01
Цитата(acex2 @ Mar 3 2011, 13:30)

www.compeljournal.ru/enews/tag/zigbee
Спасибо за линк.
Сеть лучше организовать как "точка - точка" (для каждого "устройство-пульт") или поставить 1 координатор для всех устройств?
Alex_1811
Mar 3 2011, 11:17
Вот нашел шикарный документ по XBee.
Alex_1811
Mar 21 2011, 08:16
Расскажите пожалуйста как использовать 16 битную адресацию.
При старте программы прописываю устройству MY=0x0001, но после того как он выдает статус что ассоциирован (0x02) MY становится 0xFFFE.
Как правильно инициализировать модем?
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.