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

 
 
 
Reply to this topicStart new topic
> Растолкуйте про адресацию Xbee модулей., Xbee pro series 2
subver
сообщение Sep 25 2010, 11:38
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 185
Регистрация: 4-06-05
Из: Омск
Пользователь №: 5 726



Мне нужно сделать передачу от нескольких устройств к одному устройству (топология звезда). Хочу назначить всем устройствам логические адреса, или хотя бы одному.
В ДШ написано так:

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

Как записать в устройство свой адрес?
Go to the top of the page
 
+Quote Post
Deka
сообщение Sep 25 2010, 16:42
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 248
Регистрация: 18-07-06
Из: Сочи
Пользователь №: 18 890



Когда "игрался" с простыми (не про) модулями первой версии всю конфигурацию модулей (как и апгрейд прошивки) делал через фирменную утилиту X-CTU. Всё замечательно управлялось и прописывалось. Адресация у меня была короткая.
Go to the top of the page
 
+Quote Post
subver
сообщение Sep 26 2010, 04:02
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 185
Регистрация: 4-06-05
Из: Омск
Пользователь №: 5 726



Похоже я не ту версию дш читал )
в новом про запись в MY нет ни слова. Вроде разобрался.

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

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

Одновременно "плевать" могут до 8 устройств. Но эти 8 не обязательно одни и те же.
Go to the top of the page
 
+Quote Post
Deka
сообщение Sep 28 2010, 10:01
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 248
Регистрация: 18-07-06
Из: Сочи
Пользователь №: 18 890



Насколько я помню как такового присоединения к сети нет. По крайней мере для модулей первой версии. Модуль включается, оценивает занятость канала и если он свободен начинает передачу. Передача может быть как с подтверждением так и без. Что-то типа TCP и UDP. При одновременной посылке восьми девайсов придётся бороться с коллизиями. Можно бороться средствами самого модуля (там вроде есть число повторов при неудачной передаче) или средствами верхнего слоя софта. Борьба с коллизиями стандартная. Можно попробовать разнести девайсы по разным каналам, но тогда понадобится несколько приёмников.
Go to the top of the page
 
+Quote Post
afad
сообщение May 17 2011, 09:53
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 212
Регистрация: 26-08-04
Пользователь №: 545



Цитата(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, я так понял) - сообщение тоже приходит к координатору.
Не понятно - это широковещательная передача или нет?
Go to the top of the page
 
+Quote Post
afad
сообщение May 17 2011, 11:18
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 212
Регистрация: 26-08-04
Пользователь №: 545



Докопался, можно указать 64-битный адрес 0х00000000, тогда передача будет по 16-битному адресу.
Но вот что непонятно.
Когда одно конечное устройство - все работает отлично (передача происходит раз в полминуты, остальное время конечное устройство спит). Включаю второе устройство, одно из устройств (может быть любое) работает нормально, от второго сообщение может приходить примерно 1 раз из 5-10. Вероятность одновременной передачи сообщений минимальна. Причем это происходит, если конечные устройства на некотором удалении от координатора, когда близко - такого нет.
В чем может быть проблема???
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 13:31
Рейтинг@Mail.ru


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