Построение беспроводной Mesh-сети в диапазоне 868 МГц

№ 3’2012
PDF версия
В статье рассмотрены специальные возможности модуля XBee 865/868LP диапазона 868 МГц, которые делают его хорошим кандидатом для использования в качестве сетевого решения беспроводной системы.

Новый радиомодуль XBee 865/868LP диапазона 868 МГц [1] представляет собой хорошее решение для создания беспроводной Mesh-сети, например для сбора данных со счетчиков энергии в многоквартирных домах или для управления уличным освещением (рис. 1).

Модули XBee 865/868LP

Рис. 1. Модули XBee 865/868LP

Во-первых, данный модуль имеет максимально разрешенную мощность 25 мВт, что позволяет «пробивать» десяток этажей даже в железобетонном здании и осуществлять передачу данных на расстояние до 4 км при прямой видимости. Во-вторых,  сетевое программное обеспечение модуля делает возможным построение сложных протяженных сетей с ретрансляцией пакетов и устойчивых к отключению отдельных узлов. В-третьих, уникальной особенностью встроенного протокола DigiMesh является возможность использования синхронно спящих ретрансляторов (роутеров), что позволяет создать отказоустойчивую Mesh-сеть (рис. 2), где все узлы могут работать от батарей в течение нескольких лет. Рассмотрим специальные возможности модуля XBee 865/868LP, которые делают его хорошим кандидатом для использования в качестве сетевого решения для беспроводной системы.

Топология сети DigiMesh

Рис. 2. Топология сети DigiMesh

 

Устойчивость к помехам и надежность доставки сообщений

Модуль XBee 865/868LP поддерживает несколько механизмов, повышающих вероятность успешной доставки сообщения при наличии мешающих факторов. Наличие нескольких частотных каналов (таблица) предотвращает отказы, связанные с узкополосными помехами. Особенностью работы модуля является быстрый автоматический переход передатчика на новый частотный канал в случае наличия помех. Смена частотного канала передатчиком не требует отдельных действий по перестройке частоты приемника. Приемник модуля успевает просканировать все доступные частотные каналы за время передачи преамбулы и принять пакет данных на любой рабочей частоте. Быстрая перестройка каналов облегчает выполнение требований ГКРЧ по ограничению времени работы передатчика на одной частоте (Duty Cycles — «рабочий цикл»).

Таблица. Частотные каналы для России

Номер канала

Частота, МГц

Примечание

0

863,15

Беспроводное аудиооборудование — устройства малого радиуса действия, используемые для передачи данных между акустическими системами, наушниками, микрофонами и др. Максимальная выходная мощность 15 мВт.

1

863,35

2

863,55

3

863,75

4

863,95

5

864,15

Неспециализированные (любого назначения) устройства — малого радиуса действия, общего применения, включая устройства дистанционного управления и передачи телеметрии, телеуправления, сигнализации, передачи данных и т. п.

Максимальная выходная мощность 25 мВт.

6

864,35

7

864,55

8

864,75

9

864,95

28

868,75

29

868,95

Надежная передача сообщений обеспечивается встроенным в модуль механизмом подтверждений и повторной отправкой пакетов. По умолчанию, в случае отсутствия подтверждения о доставке сообщения от получателя модуль выполняет до 10 дополнительных попыток передачи пакета (настраиваемый параметр «RR»).

Возможность выбора набора частотных каналов из 30 доступных позволяет организовать работу нескольких сетей в одном месте (осуществляется с помощью команды CM — «маска каналов»). Однако расширенные методы фильтрации пакетов позволяют нескольким сетям работать даже на общих или частично пересекающихся частотных каналах. Модуль будет принимать пакеты только от тех узлов, на которых установлены одинаковые значения преамбулы «HP» (Preamble ID) и идентификатора сети «ID» (Network ID).

Гарантированная защита информации достигается с помощью встроенного шифрования AES-128.

 

Автоматическая маршрутизация сообщений

Одна из задач, выполняемая протоколом DigiMesh (как и любым сетевым Mesh-протоколом), — прокладка маршрута от узла отправителя к узлу-приемнику через ряд промежуточных узлов. В сети DigiMesh, как и в ZigBee, для этого используется алгоритм широковещательной рассылки (Broadcast), когда в процессе прокладки маршрута в сети возникает множественная ретрансляция пакетов, приводящая к тому, что сообщение в итоге доходит до каждого узла в сети, в том числе и до узла, к которому нужно проложить маршрут. Прокладку маршрута может инициировать любой узел сети, если ему неизвестно, куда нужно отправить пакет, или когда отправленные по старому пути данные не смогли достигнуть адресата. Широковещательные рассылки создают повышенную нагрузку на сеть, что может тормозить прохождение полезных данных на время «широковещательного шторма». Классический метод прокладки маршрута (от отправителя к получателю) плохо подходит для сетей сбора данных со счетчиков энергии, где есть множество источников информации (счетчики) и один центральный узел (концентратор), куда стекается вся информация. Специально для такой сетевой топологии в модулях XBee 865/868LP предусмотрен режим автоматической прокладки множества маршрутов к концентратору (Building Aggregate Routes). Для построения множества маршрутов необходимо отправить специальную команду AG на XBee-модуль, который будет играть роль концентратора. Концентратор сделает специальную широковещательную рассылку, в результате которой на всех узлах сети будут прописаны маршруты к точке сбора данных. Рекомендуется отправлять команду AG периодически, чтобы поддерживать таблицы маршрутизации на узлах сети в актуальном состоянии. Эта же команда AG позволяет быстро перенастроить адрес получателя информации (значения «DH», «DL») на всех узлах сети, что может быть очень полезно при смене концентратора или при пусконаладочных работах, когда необходимо принимать данные на специальный тестовый ноутбук вместо регулярного концентратора.

 

Оценка качества связи и построение карты сети

При развертывании и обслуживании Mesh-сети, состоящей из десятков и даже сотен узлов, необходимо иметь инструменты диагностики. Как минимум, должна быть возможность оценки уровня сигнала в месте размещения модуля. Проверка на устойчивость связи между двумя узлами будет очень полезной при выявлении проблем с доставкой сообщений. Для оценки надежности сети полезно знать количество ближайших соседей для конкретного узла. Малое количество узлов в зоне прямой радиовидимости затрудняет перепрокладку маршрута в случае пропадания связи с соседним узлом вследствие его поломки, помех или отключения питания. Для анализа прохождения сигнала и построения карты сети в модуле XBee 865/868LP предусмотрены различные служебные команды.

Network Discovery (ND)

Команда ND (обнаружение всех устройств в сети) может быть отправлена с любого узла. Широковещательный запрос достигает каждого узла в сети, в ответ на который узел посылает отправителю информацию о себе — адрес, текстовое имя и некоторые другие данные. Ответ каждого узла происходит со случайной задержкой, чтобы избежать коллизий, которые неизбежно возникли бы, если все узлы отвечали одновременно. Тем не менее команда ND не может гарантированно обнаружить все узлы в силу возможных накладок пакетов в эфире. Для повышения надежности обнаружения можно подать команду ND несколько раз. Выделяемое на ответы время можно изменять (параметр «NT», значение по умолчанию 13 с). Рекомендуется увеличивать временное окно сбора ответов на команду ND для больших сетей (более 30 устройств или число ретрансляций более пяти). Команда ND может быть послана только локально — через UART модуля (команду нельзя подать по эфиру на другой модуль), список обнаруженных узлов будет выведен также на локальный интерфейс.

Neighbor Polling (FN)

Команда FN (обнаружение ближайших соседей) похожа на команду ND, однако ответы приходят только от узлов, находящихся в зоне прямой радиовидимости (от «соседей»). В отличие от предыдущей данная команда может быть подана удаленно (по эфиру), то есть с одного конца сети можно проверить «соседей» узла, расположенного на другом конце. Для каждого соседнего узла команда возвращает также уровень сигнала RSSI.

ATID12

Команда ATID12 предназначена для проверки связи с конкретным узлом сети. Прохождение пакетов до конкретного узла может быть проверено с помощью петли связи, для активации которой нужно подать команду ATID12 на узле А. После этого отправляемые на адрес узла Б пакеты будут возвращаться обратно (без вывода на UART узла Б). Узел Б при этом может работать в своем обычном режиме — выполнять возложенные на него полезные функции, например быть подключенным к счетчику энергии и функционировать в штатном режиме.

Проверка надежности связи между двумя соседними узлами

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

  • число успешно доставленных пакетов;
  • число имевших место попыток повторных отправок пакетов на MAC-уровне;
  • три значения уровня сигнала RSSI — максимальный, минимальный и средний.

Route Information (RI)

Функция отслеживания маршрута движения пакета RI позволяет «увидеть» маршрут движения данных, т. е. узнать адреса всех промежуточных узлов, через которые проходит пакет.

Energy Detect (ED)

Команда ED (оценка зашумленности частотных каналов) в течение заданного времени оценивает энергетический уровень помех на каждом частотном канале и возвращает усредненные значения в — дБм.

Счетчики ошибок

В модуле присутствует несколько автоматических счетчиков событий, анализ которых позволяет сделать вывод о надежности функционирования сети, подсказать методы ее оптимизации или выявить ошибки установщиков. Параметр «GD» (Good Packets Received) увеличивается на 1 с каждым успешно принятым пакетом. Значение «UA» (MAC Unicast Transmission Count) хранит число успешно доставленных пакетов. Счетчик «ER» (Received Error Count) хранит число принятых пакетов, содержащих ошибки. Если конкретная попытка адресной передачи закончилась неуспешно (не получено подтверждение ACK), то это приводит к инкрементированию счетчика «EA» (MAC ACK Timeouts). Если модуль исчерпал все повторные попытки отправки, но пакет так и не был доставлен получателю, то это событие фиксируется в счетчике «TR» (Transmission Errors). Если спящий модуль при очередном пробуждении не получает синхронизирующего пакета, то это фиксируется в счетчикe «SQ» (Missed Sync Count).Обновление ПО по эфиру

Радиомодули XBee 865/868LP допускают обновление внутреннего программного обеспечения по эфиру (Over-the-Air). Наличие достаточной буферной памяти обеспечивает безопасность данного процесса, который происходит в три этапа. Сначала с помощью стандартной команды WRITE файл прошивки (firmware) объемом около 55 кбайт передается по эфиру с любого узла сети на тот узел, где необходимо произвести обновление. Процесс передачи образа не обязательно должен происходить непрерывно. Более того, рекомендуется заполнять буферную память небольшими порциями, чтобы данный процесс не сильно нагружал сеть. Например, передача файла прошивки блоками по 128 байт каждые 30 с позволяет другим узлам обмениваться пакетами в обычном режиме. Загруженный файл прошивки далее проверяется на целостность (функция FIRMWARE_VERIFY), и только в случае правильной доставки происходит перезапись Flash-памяти в течение 8 с.

 

Батарейное питание

Модули XBee 865/868LP позволяют построить «спящую» сеть из сотен устройств, способную годами работать от батарей, однако расчет продолжительности работы сетевого узла при батарейном питании не является тривиальной задачей. Не вызывает проблем расчет потребления устройства в спящем режиме, так как время сна и ток потребления в этом режимы фиксированы и известны. Радиомодуль XBee 865/868LP потребляет в спящем режиме 1,7 мкА, что требует от батареи емкости всего лишь 15 мА/ч в год. Исходя из емкости AAA/AA-батарей в 1000–2500 мА/ч потреблением модуля в режиме сна можно просто пренебречь при расчетах в первом приближении. Сложнее просчитать потребление узла в активном режиме, то есть когда узел не спит и отправляет/принимает сообщения (потребление 26–48 мА). Дело в том, что в Mesh-сети используется несколько методов, повышающих вероятность доставки сообщения, которые приводят к тому, что продолжительность активной работы узла не является фиксированной и зависит от топологии сети (число ретрансляций), наличия помех (повторные отсылки сообщения) и стабильности работы отдельных узлов (частота перепрокладки маршрутов). На энергопотребление влияет число передаваемых в пакете полезных байт (до 256) и общее количество узлов в сети. Максимальное время нахождения модуля в активном режиме определяют следующие параметры модуля, задаваемые разработчиком:

  • MT (Broadcast Multi Transmit) — число повторений широковещательной (безадресной) рассылки. Значение по умолчанию — 3.
  • RR (Unicast Mac Retries) — число повторных попыток адресной отправки пакета соседнему узлу. Значение по умолчанию — 10.
  • MR (Mesh Unicast Retries) — число повторных попыток отправки сообщения через Mesh-сеть (отправитель и получатель могут не находиться в зоне прямой радиовидимости). Значение по умолчанию — 1.
  • BH/NH (Broadcast Hops/Network Hops) — число ретрансляций широковещательной/адресной рассылки. Значение по умолчанию — 32/7. Фактически определяет «глубину» сети. Параметры не ограничивают максимальное число ретрансляций, но используются модулем при расчете тайм-аутов, то есть предельного времени, после которого выдается сообщение о неуспешной транзакции (недоставка сообщения, ошибка прокладки маршрута и т. п.).

Высокие значения параметров MT, RR и MR повышают надежность доставки сообщений, но приводят к большему энергопотреблению в том случае, когда сообщение не может быть доставлено адресату в принципе (узел неисправен или питание отключено). Отработка множества попыток доставки сообщений может на порядок увеличить время нахождения модуля в режиме потребления максимального тока. В документах [2, 3] приведены формулы для расчета максимальных времен при различных сетевых транзакциях. Для «тонкой» оценки оставшейся емкости батареи можно использовать специальную диагностическую команду BC (Bytes Transmitted), которая возвращает счетчик переданных на физическом уровне байт.

 

Заключение

Встроенное программное обеспечение радиомодулей XBee 865/868LP позволяет использовать их в составе сложных сетей благодаря заложенным алгоритмам интеллектуальной маршрутизации, методам контроля и повышения надежности доставки сообщений. Встроенные механизмы оценки качества работы будут полезны как на этапе развертывания, так и в процессе эксплуатации беспроводной сети. Гибкие настройки позволяют оптимизировать работу модуля при батарейном питании и обеспечить многолетнюю работу синхронно «спящей» Mesh-сети.

Литература
  1. Пушкарев О. И. Новинка Digi: радиомодуль XBee 868LP для диапазона 868 МГц // Беспроводные технологии. 2012. № 2.
  2. XBee® 865/868LP RF Modules. www.digi.com
  3. DigiMesh Network Discovery With an Emphasis on Proper Parameter Selection. Внутренний документ компании Предоставляется по запросу.

Добавить комментарий

Ваш адрес email не будет опубликован.