Подписка на новости

Опрос

Нужно ли ввести комментарии к статьям? Комментировали бы вы?

Реклама

2007 №4

Построение ZigBee сети с Mesh-топологией на базе модулей XBee Series 2

Пушкарев Олег


В конце 2007 года компания MaxStream (с 2006 года входит в группу компаний Digi) выпустила новые ZigBee-модули популярной линейки XBee. Модули XBee Series 2 предназначены для построения полноценной ZigBee-сети в соответствии со спецификациями ZigBee-2006 и ZigBee-Pro. В статье рассматриваются особенности аппаратной и программной реализации новых модулей, даны краткие технические характеристики и рассмотрены практические вопросы организации ZigBee-сети с Mesh-топологией (ячеистая сеть, где каждое устройство может связываться с любым другим устройством как напрямую, так и через промежуточные узлы сети, именуемые маршрутизаторами).

Введение ZigBee-сети

Радиочастотная продукция компании MaxStream [1] хорошо известна российским и мировым разработчикам благодаря радиочастотным модулям XBee/XBeePro и законченным радиомодемам диапазона 2,4 ГГц. Компания MaxStream с 1999 года выпускает исключительно радиочастотные продукты для диапазонов 900 и 2400 МГц (рис. 1). В 2006 году компания MaxStream была приобретена компанией Digi, которая благодаря этому усилила свои позиции на рынке беспроводных устройств.

Радиочастотные продукты MaxStream

МахStream использует в своих продуктах как стандартные протоколы передачи данных (IEEE 802.15.4, ZigBee), так и собственный формат передачи данных, построенный на основе протокола с «прыгающими частотами». Идеология компании — предоставлять потребителям радиочастотные модули готовыми к работе «прямо из коробки». При поставке клиенту в каждый модуль устанавливается фирменное ПО от MaxStream, которое позволяет передавать данные в прозрачном режиме и управлять модулем с помощью упрощенного набора AT-команд. Полностью готовые радиочастотные модули MaxStream позволяют работать с серьезной системой беспроводной передачи данных даже не искушенному в этой области инженеру.

Компания MaxStream с 2005 года выпускает ZigBee модули XBee/XBee-Pro Series 1, которые позволяют строить беспроводные сети на основе стандарта IEEE 802.15.4. Модули XBee/XBee-Pro построены на базе трансивера MC13193 и микроконтроллера MC9S08GT60 от компании Freescale. Модули XBee очень популярны на рынке ZigBee-совместимых устройств, однако не имеют полноценной прошивки для построения сети с Mesh-топологией (рис. 2). В связи с изменениями в аппаратной части модулей XBee/XBee-Pro Series 1, доступные ранее Beta-версии ZigBee прошивок (8×13, 8×14 и 8×17) более не поддерживаются компанией MaxStream/Digi. При этом компания не планирует снимать модули XBee/XBee-Pro Series 1 с производства. Эти модули прекрасно подходят для построения систем передачи 802.15.4 с топологией «точка – точка» или «звезда» и обеспечивают бульшую пропускную способность и меньшие значения задержек по сравнению с ZigBee. Компания также предоставляет всю необходимую информацию по использованию модулей первой серии в качестве аппаратной части для разработки систем на базе оригинального ПО от компании Freescale — SMAC, 802.15.4, или BeeStack (ZigBee 2006). Сравнительные технические характеристики модулей серии 1 и 2 приведены в таблице 1. Бульшая выходная мощность и повышенная чувствительность новой серии обеспечивают большую дальность связи. Ток потребления в спящем режиме снижен с 10 до 1 мкА, что позволяет устройствам с батарейным питанием работать несколько лет от одного комплекта батарей. Сегодня в новой серии представлены только модули стандартной мощности. Массовый выпуск модулей XBee Series 2 повышенной мощности намечен на I квартал 2008 года.

Топология сети Mesh (ячеистая сеть)
Таблица 1. Сравнительные технические характеристики модулей Series 1 и Series 2
Сравнительные технические характеристики модулей Series 1 и Series 2

Особенности модулей XBee Series 2

Новые модули XBee Series 2 (рис. 3) построены на аппаратно-программной платформе компании Ember. Компания Ember является промоутером ZigBee альянса и активно участвует в разработке спецификации ZigBee Pro. Компания одной из первых разработала трансивер для 802.15.4 и имеет в своем портфеле несколько вариантов ZigBee стека. Модули XBee Series 2 выполнены на однокристальном чипе EM-250, который представляет собой трансивер IEEE 802.15.4 и 16-разрядный микроконтроллер на ядре XAP2b cо встроенной памятью 128 кбайт. Большой объем Flash-памяти позволил разместить в модуле как ZigBee-стек EmberZNet, так и собственное ПО от MaxStream, которое предоставляет доступ к стеку ZigBee c помощью упрощенного интерфейса в виде AT-команд, или так называемых API-фреймов. Модули XBee Series 2 совместимы по типоразмеру, функциям выводов (табл. 2) и радиоинтерфейсу с модулями XBee/XBeePro, однако отличаются набором управляющих команд и не могут работать в единой сети. Конструктивно модули выпускаются с четырьмя вариантами подключения антенны — чип-антенна, антенна в виде четвертьволнового штыря, без антенны с разъемом UFL или RPSMA. Модули не предусматривают загрузки собственного приложения разработчика поверх встроенного ZigBee-стека — для управления модулем необходимо иметь внешний хост-процессор, в качестве которого может выступать любой микроконтроллер — от простейшего 8-битного до 32-разрядного ARM или ПК. Основное управление модулем производится с помощью хост-процессора по последовательному UART-интерфейсу. Скорость обмена задается равной 9600 бит/c при производстве, но может изменяться пользователем. Порты ввода/вывода доступны для хост-процессора через соответствующие AT-команды (ATDx). Встроенное ПО поддерживает ряд служебных функций, реализованных на определенных выводах модуля, например, светодиод индикации успешного запуска и присоединения к сети, кнопка для отправки уведомления на координатор или выход аналоговой индикации уровня принимаемого сигнала.

Модули XBee Series 2
Таблица 2. Назначение выводов модулей XBee Series 2
Назначение выводов модулей XBee Series 2

Режимы управления и варианты прошивок

Модули поставляются заказчику с уже загруженным ПО (firmware), реализующим один из двух вариантов управления — с помощью AT-команд (прозрачный режим) или API-фреймов. Кроме этого, прошивка модуля также различается в зависимости от сетевой функции узла в ZigBee сети — координатор или роутер/конечное устройство. Таким образом, модуль может поставляться с одной из 4 возможных прошивок:

  • 1.0xx — прозрачный режим, координатор;
  • 1.1xx — управление API-фреймами, координатор;
  • 1.2xx — прозрачный режим, маршрутизатор/конечное устройство;
  • 1.3xx — управление API-фреймами, маршрутизатор/конечное устройство.

Каждый из модулей может быть перепрограммирован под любую сетевую роль и управление тем или иным методом. Это можно сделать с помощью бесплатно распространяемой программы X-CTU. Следует помнить, что все модули, работающие в рамках одной ZigBee-сети, должны иметь единый тип управления.

Прозрачный режим

Модули с версиями программного обеспечения 1.0xx (координатор) и 1.2xx (маршрутизатор/конечное устройство) поддерживают работу в прозрачном режиме. При работе в прозрачном режиме все последовательные данные, полученные через вывод DIN, будут отправлены в эфир, а полученные из эфира данные будут отправлены через вывод DOUT на хост-приложение. При этом узлы могут находиться вне прямой радиовидимости. В этом случае ретрансляцию сообщений будут осуществлять другие маршрутизаторы. Таким образом, в прозрачном режиме модули выступают как заменители последовательного интерфейса, предлагая вместо проводных линий беспроводный канал. В прозрачном режиме модули настраиваются с помощью AT-команд, для чего необходимо переключиться в специальный режим управления. Для перехода в режим управления необходимо подать специальную последовательность символов (по умолчанию «+++»), причем до и после подачи этой последовательности необходимо выдержать паузу заданной длительности. Данный механизм предотвращает случайный переход в режим управления, даже если в отсылаемых данных встречаются подряд три символа «+».

Управление с помощью API-фреймов

Режим управления с помощью API-фреймов позволяет более гибко управлять модулем и получать дополнительную информацию о принимаемых пакетах данных, например адрес отправителя или уровень сигнала для принятого пакета. Работа в режиме API упрощает многие операции, такие как:

  • передача данных на множество адресов без перехода в режим управления;
  • получение статуса о доставке для каждого из отправленных RF-пакетов;
  • идентификация исходного адреса для каждого полученного пакета.

Модули со следующими версиями программного обеспечения поддерживают работу в режиме API: 1.1xx (координатор) и 1.3xx (маршрутизатор/конечное устройство). Работа с API, основанная на фреймах, расширяет возможности хост-приложения по управлению модулем. Например, для отправляемых данных можно в самом теле фрейма задать адрес получателя или после каждой отправки данных можно получать специальный фрейм, уведомляющий об успешном или неуспешном прохождении информации до точки назначения через узлы ZigBee-сети. Фреймы данных на передачу, получаемые модулем через вывод DIN (вывод 3), включают:

  • фрейм данных для передачи другому узлу сети;
  • фрейм управления (эквивалент AT-команд).

Фреймы данных, принимаемые модулем, могут быть следующих типов:

  • фреймы приема RF-данных от другого модуля сети;
  • ответ модуля на фрейм управления;
  • оповещение — перезапуск, активация и деактивация ассоциирования и т. д.

Режимы пониженного энергопотребления

Модули XBee Series 2 могут работать в спящем режиме. В этом режиме конечное устройство находится в режиме низкого энергопотребления и выходит из него при необходимости получения или передачи данных. Работа конечного устройства в состоянии сна поддерживается его родительским устройством (координатором или маршрутизатором). Роди тельское устройство сохраняет RF-пакет, предназначенный для дочернего устройства, в течение максимального времени, установленного параметром SP. Параметр SP родительского устройства должен быть больше или равен наибольшему из параметров SP для всех его дочерних устройств, чтобы исключить потерю данных на родительском устройстве. Когда конечное устройство «просыпается», оно отправляет запрос родительскому устройству для получения информации о наличии ожидающих получения данных. После получения запроса родительское устройство отправит конечному устройству RF-ответ и сохраненные данные (если такие данные были получены во время сна дочернего устройства). После выхода из состояния сна конечное устройство каждые 100 мс будет отправлять запрос родительскому устройству для проверки наличия новых RF-данных. Продолжительность нахождения конечного устройства в этом активном состоянии можно задавать параметром ST.

Особенности стека и служебные функции

Встроенный ZigBee-стек отвечает за формирование и поддержание работоспособности беспроводной сети, а также за маршрутизацию сообщений. Формирование сети, присоединение устройств, прокладка и восстановление маршрутов происходят автоматически, без привлечения хост-приложения для этих задач. При этом разработчик имеет возможность вносить изменения в работу ZigBee-стека с помощью управляющих команд, например, задавать определенные частотные каналы, ограничивать время присоединения к сети, задавать продолжительность сна для спящих устройств и т. п. Встроенный стек позволяет организовать виртуальный прозрачный канал UART между любыми узлами сети. В качестве программного обеспечения для модулей XBee Series 2 выступает ZigBee-стек EmberZNet 2.5. Этот стек построен на основе спецификации ZigBee-2006 [2] и дополнительно включает в себя отдельные элементы новейшей спецификации ZigBee Pro, например:

  • Отсутствие жестких ограничений на топологию сети. Число узлов (max_children, max_routers) и максимальная глубина ретрансляций (max_hops) ограничена только разумным временем ожидания ответа.
  • Стохастический метод распределения адресов. В отличие от предшествующего метода CSKIP (распределение адресов по дереву), новый алгоритм позволяет исключить вероятность нехватки адресов в одной ветви сети при избытке в другом сегменте.
  • Отказ от маршрутизации по дереву. Маршрут всегда прокладывается оптимальным образом на основе алгоритма AODV [3]. Родительские и дочерние отношения не являются обязательными для маршрутизации данных.
  • Нечувствительность сети к сбоям координатора. После формирования сети координатор не играет никакой специальной роли, делающей его слабым узлом с точки зрения надежности всей сети (за исключением отдельных случаев сети с шифрованием).

Встроенное ПО предоставляет разработчику ряд служебных функций, заметно облегчающих работу с модулями XBee Series 2 при построении сети с Mesh-топологией. Список новых функций приведен ниже:

  • Поиск устройств в сети. Команда определения узла (ND) используется для поиска всех модулей, которые присоединились к ZigBee-сети. При выполнении команды ND-модуль отправляет в сеть широковещательный пакет с командой определения узла. Все устройства, которые получают команду, отправят RF- пакет с набор данных о себе: 64-битный адрес, 16-битный сетевой адрес и свой строковый идентификатор (NI). Команда ND удобна для составления списка адресов всех модулей в сети.
  • Настройка параметров узла сети по эфиру. В режиме управления с помощью API-фреймов есть возможность подавать AT-команды дистанционно на любой узел в сети. Команды в данном специальном фрейме можно использовать как для чтения, так и для настройки параметров удаленного модуля.
  • Проверка маршрута (программная петля данных). Диапазон и качество связи между двумя любыми узлами сети можно проверить с помощью функции «программной петли данных». Все данные, отправляемые на удаленный узел, будут отправляться этим узлом обратно. Это позволит проверить наличие связи с данным узлом. Хост-приложение при этом не задействуется.
  • Индикация присоединения к сети. Команда JN используется для автоматической отправки сообщения координатору при присоединении маршрутизатора или конечного устройства к сети. Можно также отправить информацию об узле сети вручную. Для этого достаточно подать высокий уровень на вывод 20-го модуля. Использование кнопки, подключенной к 20-му выводу модуля, обеспечивает простой механизм ручной идентификации модуля в любой момент времени.
  • Контроль напряжения источника питания. Команда %V используется для определения напряжения источника питания модуля. Эта команда также может быть отправлена удаленному устройству в режиме API для получения информации о состоянии его источника питания.

Заключение

Модули XBee Series 2 являются готовым решением для построения сети ZigBee c топологией Mesh. Применение модулей не требует изучения ZigBee-спецификации, компиляции приложения и программирования модулей. Благодаря встроенному стеку ZigBee и простому набору управляющих команд, создание рабочей сети возможно при минимальных затратах времени. Гарантией успешного завершения проекта выступает подробная документация (есть русскоязычная версия), удобные средства разработки и техническая поддержка on-line (на сайте www.maxstream.net).

Литература

  1. www.maxstream.net.
  2. Спецификация ZigBee-2006 (ZigBee-Specification-2006-Download.pdf, сайт www.zigbee.org).
  3. http://en.wikipedia.org/wiki/AODV.

Скачать статью в формате PDF  Скачать статью Беспроводные технологии PDF


Другие статьи по данной теме:

Сообщить об ошибке