Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сеть с 30 модулей XBee Pro
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Rf & Microwave Design
Alex_1811
Поставили мне такую задачу.
Есть цех в котором будет стоять около 25 устройств.
Каждое устройство будет управляться своим пультом.
Вопрос: как мне организовать связь на модулях XBee Pro чтобы они не мешали друг другу.
Заранее все спасибо.

P.S. Разнести по каналам не вариант.
Bakradze
Сообщение начинать с позывного, у каждого устройства свой позывной. Услышав свой позывной - устройство готовится к приему последующей информации...
Alex_1811
Цитата(Bakradze @ Mar 2 2011, 13:17) *
Сообщение начинать с позывного, у каждого устройства свой позывной. Услышав свой позывной - устройство готовится к приему последующей информации...

А как быть если одновременно подается команда с 20 пультов?
Bakradze
Ну, надобно установить порядок в этом...За пультом люди сидят?

Какова вероятность, что с все 20 (ну или хотя бы больше одного) пультов начнут передачу?
Alex_1811
Цитата(Bakradze @ Mar 2 2011, 13:35) *
Ну, надобно установить порядок в этом...За пультом люди сидят?

Какова вероятность, что с все 20 (ну или хотя бы больше одного) пультов начнут передачу?

1. Пульт держит в руках человек. Передача может быть в обеих направлениях (команда с пульта или устройство может передавать данные о текущем состоянии).

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


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


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


Почитайте про адресацию в мануале на модули. По большому счету, вам надо определиться с адресом каждого устройства и при передаче данных указывать какому устройству предназначается пакет. Все остальное сделает реализация MAC в стеке модуля.
XBee в России официально поддерживаются компанией Компэл. Почитайте их статьи на русском тут: http://www.compeljournal.ru/enews/tag/zigbee

Alex_1811
Цитата(acex2 @ Mar 3 2011, 13:30) *
www.compeljournal.ru/enews/tag/zigbee

Спасибо за линк.

Сеть лучше организовать как "точка - точка" (для каждого "устройство-пульт") или поставить 1 координатор для всех устройств?
Alex_1811
Вот нашел шикарный документ по XBee.
Alex_1811
Расскажите пожалуйста как использовать 16 битную адресацию.
При старте программы прописываю устройству MY=0x0001, но после того как он выдает статус что ассоциирован (0x02) MY становится 0xFFFE.
Как правильно инициализировать модем?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.