Прибор для оценки дальности связи в сетях ZigBee

 

 

Каждый производитель ZigBee-чипов или радиомодулей предлагает разнообразные средства разработки, позволяющие быстро развернуть ZigBee-сеть или попробовать передачу данных в режиме «точка-точка». Подобные отладочные средства оказывают огромную помощь инженерам на этапе освоения беспроводной технологии, однако они недостаточно удобны, если необходимо производить измерения на реальном объекте. Платы от производителей обычно либо требуют подключения компьютера для отображения результатов измерений, либо имеют значительный размер, что затрудняет их размещение в той точке, где нужно производить измерения (рис. 1). Для облегчения процесса желательно иметь автономный компактный прибор, который позволяет измерять уровень сигнала в ZigBee-сети с его индикацией в графическом и числовом виде. Прототип такого прибора был разработан на базе модулей XBee (Series 2), которые содержат полный стек протоколов ZigBee Pro и позволяют строить сеть с полной mesh-топологией, т.е. такую, где любой узел может передавать данные любому другому, в том числе и с помощью ретрансляций через ряд промежуточных узлов.

          Проведение испытания дальности с помощью традиционных отладочных средств    Проведение испытания дальности с помощью традиционных отладочных средств

Рис. 1. Проведение испытания дальности с помощью традиционных отладочных средств

Радиомодули XBee со встроенным ZigBee-стеком очень удобны для построения беспроводных сетей в условиях ограниченных временных и инженерных ресурсов. Радиомодуль XBee позволяет организовать передачу данных в сетях со сложной топологией без долгого процесса изучения ZigBee-технологии. Простой набор команд, удобный интерфейс управления и низкая цена обеспечили радиомодулям XBee признание во всем мире. XBee-модули позволяют оценивать силу принимаемого сигнала (RSSI), а бесплатная программа X-CTU умеет отображать эти показания в удобном графическом виде на ПК. Однако не на каждый промышленный объект удобно ходить с ноутбуком. Отладочные комплекты для XBee-модулей включают в себя небольшие отладочные платы, на которых уровень принимаемого сигнала индицируется тремя светодиодами (рис. 2). Это позволяет использовать их и без подключенного ПК, хотя такая грубая оценка уровня принимаемого сигнала во многих случаях недостаточна.

 

Измерения дальности связи с помощью отладочных плат

 

Рис. 2. Измерения дальности связи с помощью отладочных плат

Для нашего измерительного прибора потребуется как минимум два модуля XBee, один из которых будет передавать сообщения, а другой - получать их и измерять силу принимаемого сигнала. Назовем их условно «передатчик» и «приемник».

 

Передатчик

XBee модули работают в сети ZigBee, где, как известно, на момент формирования сети обязательно должен быть координатор. Поэтому в сети ZigBee наш передатчик будет координатором, т.е. для него необходимо взять модуль с соответствующей прошивкой (ZIGBEE COORDINATOR API). В XBee-модуль можно свободно загружать любую прошивку, предназначенную для данного типа модуля, поэтому с помощью программы X-CTU модуль с прошивкой роутера легко превратить в координатор и наоборот. Для того, чтобы упростить передатчик и не использовать никаких дополнительных микросхем, мы воспользуемся встроенной в модуль XBee возможностью автоматически отправлять данные о сигналах на цифровых или аналоговых входах (I/O Sampling). Т.е. с помощью API-команд управления мы настраиваем модуль на отсылку широковещательного (т.е. предназначенного для всех узлов в ZigBee-сети) сообщения один раз в секунду. Конкретные данные, которые будет отправлять модуль, для данного прибора не играют никакой роли – нам достаточно принять любой пакет, чтобы измерить силу сигнала в точке размещения приемника. Согласно спецификации ZigBee Pro не рекомендуется отправлять широковещательные сообщения чаще одного раза в восемь секунд. Однако здесь мы проигнорируем это правило, т.к., с одной стороны, в нашей сети только два устройства (передатчик-координатор и приемник-роутер), и «широковещательного шторма» гарантированно не будет; с другой – при строгом следовании рекомендациям обновления показаний будут происходить очень редко (каждые 8 секунд), что существенно ухудшает удобство пользования прибором.

Итак, как превратить находящийся под рукой модуль XBee в передатчик для нашего прибора?

1. Для описываемого здесь передатчика подойдет только модуль серии 2, т.е. модуль, имеющий в своем названии латинскую букву «B» или «Z» после «XB24- xxxxxx» («XBP24- xxxxxx»), например XB24-BWIT-004, XB24-BSIT-004, XB24-Z7CIT-004, XBP24-BCIT-004, XBP24-BWIT-004 и т.д. Все эти модули отличаются только типами антенн, выходной мощностью и разными версиями прошивок. Тип антенны (проводная, чип или на разъеме SMA), разумеется, будет влиять на дальность связи, поэтому выбирайте именно тот вариант антенны, которую планируете впоследствии устанавливать в разрабатываемый прибор.

2. Если мы хотим измерять дальность действия маломощных модулей, то для передатчика следует взять модуль, начинающийся с «XB24-xxxxxx», а для оценки дальности мощных модулей следует взять модуль «XBP24-xxxxxx».

3. Если прошивка (firmware) модуля не является «ZIGBEE COORDINATOR API», то нужно загрузить в него эту прошивку с помощью программы X-CTU. Для этого модуль нужно подключить к ПК с помощью переходной платы XBIB-R или XBIB-U.

4. Включаем модуль, дожидаемся начала мигания светодиода «Статус». Эта индикация означает, что координатор стартовал и готов подключать другие устройства к своей сети.

5. С помощью программы X-CTU (закладка MODEM CONFIGURATION) установим значения DH=0 и DL=FFFF (папка Adressing). Данный адрес зарезервирован для рассылки широковещательных сообщений.

6. Выбираем в папке I/O settings значение «2-ADC» для порта D1. Таким образом, мы определяем, какие значения будет отправлять наш передатчик (здесь - напряжение на порту D1 модуля). Модуль отправляет сэмплы только в том случае, если для этих целей назначен хотя бы один из доступных портов. Для нашего устройства абсолютно неважно, что этот порт в реальности никуда не подключен – нам необходим только факт отправки пакета по радиоканалу. Его содержимое мы анализировать не будем.

7. Устанавливаем частоту отправки пакетов с сэмплами, задав параметр IR (папка I/O Sampling) равный 3E8 (1000 Dec). Это число миллисекунд в шестнадцатеричном виде. Наш передатчик будет отсылать сообщения один раз в секунду.

8. Сохранить наши настройки можно, нажав на кнопку «Write». Теперь всегда после включения питания наш передатчик-координатор будет один раз в секунду рассылать широковещательное сообщение с информацией о напряжении на порту D1. Именно его и будет принимать приемник и измерять уровень сигнала RSSI.

Схема передатчика очень проста и приведена на рис. 3. Светодиод HL1 индицирует текущий статус модуля (Associated Indicator). Питается передатчик от двух щелочных батарей типоразмера АА. Передатчик нужно поместить в подходящий корпус и разместить в месте предполагаемой эксплуатации - около электросчетчика, в водопроводной нише, на автомобиле и т.п.

Фото передатчика   Схема передатчика

Рис. 3. Фото и схема передатчика

 

Приемник

При приеме каждого пакета модуль XBee может выдавать значение RSSI двумя способами - либо через порт P0 в виде ШИМ-сигнала, либо в виде цифрового значения, доступного по АТ-команде DB. При использовании порта P0 к нему через простейшую RC-цепочку можно подключить соответствующим образом откалиброванный стрелочный прибор для измерения RSSI в виде напряжения. На переходных платах из отладочного набора уровень напряжения c выхода порта P0 с помощью компараторов сравнивается с заранее заданными значениями, что и приводит к зажиганию трех светодиодов индикатора RSSI. Более точное значение RSSI можно получить с помощью команды ATDB, в ответ на которую XBee-модуль возвращает уровень RSSI для последнего принятого пакета в единицах -dBm. Например, если возвращенное значение 0×50, то это означает, что последний пакет был принят с уровнем -80 dBm. Следует помнить, что если пакет ретранслировался несколько раз на пути от источника к приемнику, то модуль показывает уровень сигнала только на последнем участке маршрута.

Приемник имеет более сложную схему по сравнению с передатчиком (рис. 4). Взаимодействием с модулем и отображением информации занимается микроконтроллер PIC16F88. Для отображения уровня сигнала используется текстовый индикатор WINSTAR WH0802A-TMI-CT. Программа для приемника написана на ассемблере и кроме отображения уровня RSSI имеет множество других полезных функций: просмотр и изменение настроек XBee-модуля; поиск, отображение и сохранение в энергонезависимой памяти данных об узлах ZigBee-сети. В статье мы рассмотрим лишь тот функционал, который отвечает за прием пакетов и отображение RSSI.

Фото приемника Схема приемника

Рис. 4. Фото и схема приемника

При отображении уровня принимаемого сигнала приемник работает следующим образом (рис. 5):

1. После включения инициализируется периферия микроконтроллера, на ЖКИ-индикатор выводится первый пункт меню управления и ожидается реакция пользователя. При выборе меню «Прием пакетов» приемник переходит в режим ожидания входящих сообщений.

2. При включении передатчика на ЖКИ-индикатор выводится значение RSSI в dBm и шкала силы сигнала.

3. Если приемник в течение некоторого времени не принимает пакетов (вне зоны действия), то вместо шкалы силы сигнала выводятся бегущие символы. Прием очередного пакета восстанавливает индикацию п.2.

4. Кнопки SW1…SW3 используются для навигации по меню прибора.

 

Индикация в процессе измерения

 

Рис. 5. Индикация в процессе измерения

 

Данное оборудование использовалось при проведении измерений в различных помещениях и оказалось очень удобным для быстрой оценки зоны покрытия на разных объектах (рис. 6).

       Проведение измерений в цеху   Проведение измерений в цеху

Рис. 6. Проведение измерений в цеху

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

 

Заключение

XBee-модули предоставляют разработчику полный набор необходимых служебных возможностей, с помощью которых можно контролировать качество ZigBee-сети как на этапе проектирования, так и в процессе реальной установки оборудования в полевых условиях. Описанный в статье несложный прибор облегчает выбор требуемой мощности XBee-модулей, позволяет подобрать оптимальный тип антенн и проанализировать точки установки оборудования на реальных объектах, исходя из критерия максимального уровня принимаемого сигнала.

 

Литература

[1] Олег Пушкарев. Проверка дальности связи ZigBee-модулей MaxStream в условиях городской квартиры. Новости электроники №5/2006.

[2] Сергей Гринченко. Проверка дальности связи ZigBee модулей от Digi в условиях загородного коттеджа. Беспроводные технологии, №2/2009.

Получение технической информации, заказ образцов, поставка – e-mail: wireless.vesti@compel.ru