Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Растолкуйте про адресацию Xbee модулей.
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Wireless/Optic
subver
Мне нужно сделать передачу от нескольких устройств к одному устройству (топология звезда). Хочу назначить всем устройствам логические адреса, или хотя бы одному.
В ДШ написано так:

Short 16-bit addresses. The module can be configured to use short 16-bit addresses as the
Source Address by setting (MY < 0xFFFE).

Однако у меня не получается ничего записать в регистр MY.

Оба устройства прошиты как ZNET 2.5 ROUTER/END DEVICE

Как записать в устройство свой адрес?
Deka
Когда "игрался" с простыми (не про) модулями первой версии всю конфигурацию модулей (как и апгрейд прошивки) делал через фирменную утилиту X-CTU. Всё замечательно управлялось и прописывалось. Адресация у меня была короткая.
subver
Похоже я не ту версию дш читал )
в новом про запись в MY нет ни слова. Вроде разобрался.

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

Или для такой задачи что то другое стоит применить?

Одновременно "плевать" могут до 8 устройств. Но эти 8 не обязательно одни и те же.
Deka
Насколько я помню как такового присоединения к сети нет. По крайней мере для модулей первой версии. Модуль включается, оценивает занятость канала и если он свободен начинает передачу. Передача может быть как с подтверждением так и без. Что-то типа TCP и UDP. При одновременной посылке восьми девайсов придётся бороться с коллизиями. Можно бороться средствами самого модуля (там вроде есть число повторов при неудачной передаче) или средствами верхнего слоя софта. Борьба с коллизиями стандартная. Можно попробовать разнести девайсы по разным каналам, но тогда понадобится несколько приёмников.
afad
Цитата(subver @ Sep 26 2010, 07:02) *
... Смысл - включилось устройство, по быстрому сплюнуло пакетик и выключилось.
Одновременно "плевать" могут до 8 устройств ...
Аналогичная задача. Делал широковещательную передачу, когда одно конечное устройство - работает, при включении нескольких конечных устройств некоторые посылки теряются. Сделал передачу конкретному координатору (с указанием 64-битного адреса), с подтверждением ACK - вроде заработало.
Использовал пакет API 0x10, но там задается 64-битный адрес координатора (я так понял - это серийный номер, который нельзя изменить) и 16-битный адрес. Но допустим координатор сломался, его заменили (вместе с модулем), соответственно 64-битный номер сменился, и что, перешивать все конечные точки? Или как-то можно сделать НЕ широковещательную передачу (с подтверждением ACK) используя только 16-битный адрес???
В команде API 0x10 нужно указывать и 64-битный адрес и 16-битный, вот в чем проблема.

В продолжение темы.

Хм...
Указываю 64-битный адрес 0x00000000 - сообщение приходит к координатору.
Указываю 16-битный адрес не 0х0000 (у координатора всегда 0x0000, я так понял) - сообщение тоже приходит к координатору.
Не понятно - это широковещательная передача или нет?
afad
Докопался, можно указать 64-битный адрес 0х00000000, тогда передача будет по 16-битному адресу.
Но вот что непонятно.
Когда одно конечное устройство - все работает отлично (передача происходит раз в полминуты, остальное время конечное устройство спит). Включаю второе устройство, одно из устройств (может быть любое) работает нормально, от второго сообщение может приходить примерно 1 раз из 5-10. Вероятность одновременной передачи сообщений минимальна. Причем это происходит, если конечные устройства на некотором удалении от координатора, когда близко - такого нет.
В чем может быть проблема???
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.