Прохоров А.С, Токарев А.А, Лукин И.А, Зыков Л.В.

Пермский национальный исследовательский политехнический университет, Россия

Разработка сети ZigBee

 Описание технологии ZigBee.

ZigBee — название набора протоколов высокого сетевого уровня, использующих маленькие, маломощные радиопередатчики, основанные на стандарте IEEE 802.15.4. Этот стандарт описывает беспроводные персональные вычислительные сети (WPAN). ZigBee нацелена на приложения, которым требуется большее время автономной работы от батарей и большая безопасность, при меньших скоростях передачи данных[1].

Во многих приложениях требуются беспроводные сети связи, не обладающие высокой скоростью передачи, но надежные и живучие (способные к самовосстановлению), простые в развертывании и эксплуатации. Важно также, чтобы оборудование таких сетей допускало длительную работу от автономных источников питания, имело низкую стоимость и было компактным[2]. Области применения данной технологии — это построение беспроводных сетей датчиков, автоматизация жилых и строящихся помещений, создание индивидуального диагностического медицинского оборудования, системы промышленного мониторинга и управления, а также при разработке бытовой электроники и персональных компьютеров[1].

Каждый элемент сети ZigBee выполняет свою роль. Координатор запускает сеть и управляет ею. Он формирует сеть, выполняет функции центра управления сетью и доверительного центра устанавливает политику безопасности, задает настройки в процессе присоединения устройств к сети, ведает ключами безопасности. Маршрутизатор транслирует пакеты, осуществляет маршрутизацию, восстанавливает маршруты при перегрузках в сети или отказе какого-либо устройства. При формировании сети маршрутизаторы присоединяются к координатору или другим маршрутизаторам, и могут присоединять дочерние устройства – маршрутизаторы и конечные устройства. Маршрутизаторы работают в непрерывном режиме, имеют стационарное питание и могут обслуживать «спящие» устройства. Маршрутизатор может обслуживать до 32 спящих устройств. Конечное устройство может принимать и отправлять пакеты, но не занимается их трансляцией и маршрутизацией. Конечные устройства могут подключаться к координатору или маршрутизатору, но не могут иметь дочерних устройств. Конечные устройства могут переводиться в спящий режим для экономии заряда аккумуляторов. Именно конечные устройства имеют дело с датчиками, локальными контроллерами и исполнительными механизмами[2].

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

Устройства ZigBee имеют небольшую цену и представлены в различных типах: от простых датчиков до многофункциональных устройств. Их небольшая стоимость позволяет работать с  технологией ZigBee даже в домашних условиях.

Спецификация ZigBee регламентирует стек протоколов  взаимодействия узлов сети, в котором протоколы верхних уровней используют сервисы, предоставляемые протоколами нижележащих уровней.В качестве двух нижних уровней (физического и уровня доступа к среде MAC) используется стандарт IEEE 802.15.4. MAC-уровень в сети ZigBee реализует механизм CSMA (прослушивания несущей и устранения коллизий), сетевой уровень NWK отвечает за маршрутизацию сообщений, а уровень поддержки приложений APS обеспечивает интерфейс с уровнем приложения. Сектор ZDO (ZigBee® Device Object), связывающий три верхних уровня, отвечает за определение роли устройства в сети (будет оно являться координатором или конечным устройством), инициализацию и реакцию на запросы соединения и обнаружения, за установление надежного и безопасного соединения между устройствами сети.  Сектор SSP (Security Service Provider) осуществляет операции, связанные с обеспечением безопасности на сетевом уровне и на уровне поддержки приложения.

Рисунок 1. Стек протоколов ZigBee

Безопасность в сети ZigBee

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

    Точно так же могли поступить и создатели стандарта IEEE 802.15.4, однако они все же ввели в стандарт некоторый набор базовых функций, обеспечивающих начальный уровень безопасности на МАС-уровне. Базисными сервисами в этом направлении стали: поддержка списков контроля доступа ACL (access control list) и криптографическое шифрование передаваемых данных.

    Способность выполнять простейшие действия по обеспечению безопасности не является обязательной, однако разработчики настоятельно рекомендуют использовать эти функции постоянно и во всех устройствах.

    Механизм шифрования, задействованный в данном стандарте, основан на применении симметричного ключа, который поставляется «сверху». Это значит, что вышележащие слои должны уметь определять, когда используются режимы безопасности на МАС-уровне, и формировать все основные параметры (в том числе и ключи) для работы сервисов защиты. Задачи создания и управления симметричными ключами ложатся на плечи разработчиков конкретных беспроводных чипов[5].

    Перечислим основные сервисы защиты, предусмотренные в IEEE 802.15.4:

-  Управление доступом с помощью списков контроля доступа ACL. Если устройство поддерживает данный сервис, оно должно иметь в своём списке перечень всех устройств, от которого оно ожидает получения данных.

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

-  Контроль целостности фрейма. Данный сервис использует специальный код целостности сообщения (MIC – Message Integrity Code) для защиты передаваемых данных от возможных изменений их устройствами, не «знающими»  криптографического ключа. Код этот также может быть общим для группы устройств или личным для пар устройств.

-  Sequential freshness – специальный сервис, предназначенный для обновления рассылаемых устройствам в сети симметричных ключей.

    В зависимости от режима, в котором работает беспроводное устройство, и выбранного режима безопасности, МАС-уровень обеспечивает различные сервисы защиты. В режиме с отключенной защитой (unsecured mode) они не задействованы вообще. В режиме ACL mode обеспечивается совместными усилиями надлежащих над MAC-уровнем слоев и сервисом управления доступом с помощью списков ACL. В третьем режиме – режиме защиты (secured mode) – могут быть активированы любые из вышеописанных сервисов, в зависимости от выбранного стандарта криптования.

    В таблице №1 приведены все поддерживаемые в IEEE 802.15.4 стандарты 32-, 64- , и 128-разрядного шифрования с указанием поддерживаемых сервисов защиты. Все алгоритмы обеспечения безопасности соответствуют стандарту AES (Advanced Encryption Standard). AES – это спецификация шифрования электронных данных, в том числе финансовой, телекоммуникационной и правительственной информации, предложенная Национальным институтом стандартов и технологий США (National Institute of Standards and Technology). AES пришел на замену морально устаревшему DES – самому распространенному криптоалгоритму в мире и сейчас уже заложен, например, в последних спецификациях семейства беспроводных стандартов IEEE 802.11 (Wi-Fi).

Таблица 1. Поддерживаемы стандарты шифрования

Создание сети ZigBee.

В наличии имеются 2 модуля беспроводной связи XBee-Pro S2B (рис.2)  и одноплатный миникомпьютер Raspberry Pi. Модули могут передавать данные на расстоянии до 3200 метров на открытой поверхности, а также имеют малое энергопотребление при работе на полную мощность (205 мА), встроенный температурный датчик, защиту от перегрева и повышенного напряжения питания.

Рисунок 2. Модуль беспроводной связи XBee-Pro S2B

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

Рисунок 3. Структура сети ZigBee

С помощью программы XCTU, которую предоставляет производитель модулей,  добавляем к координатору нашей сети конечное устройство, тем самым получаем готовую сеть, в которой уже можно обмениваться данными. Для обмена можно использовать AT-команды (модемные) или пакеты данных определенного формата (фреймы). Модули имеют аппаратное 128-битное шифрование АES, поэтому для обеспечения безопасности передачи данных можно его задействовать.

Передача данных в сети ZigBee.

Модули XBee могут работать в режиме управления с помощью AT-команд или в API-режиме [2,3]. Для управления с помощью внешнего микроконтроллера режим API гораздо более удобен, так как позволяет передавать и данные, и команды управления в общем потоке. Кроме того, некоторые возможности в режиме AT-команд просто недоступны. Например, послать по ZigBee-сети AT-команду удаленному модулю можно только в API-режиме. Работа с API-пакетами требует вычисления контрольных сумм, что не очень удобно при ручном формировании пакета в окне программы X-CTU, однако не представляет большой сложности при управлении XBee-модулем с помощью внешнего микроконтроллера. Для практических экспериментов с API-фреймами оказалось более удобным использовать программу-терминал «Terminal v1.9b» [4], которая позволяет заранее составить набор отсылаемых API-фреймов в виде макросов и отсылать их нажатием одной кнопки.

Например, чтобы обнаружить все узлы сети, нужно составить фрейм AT-команды «ND» и отослать его с любого модуля сети. Ниже приведены API-фреймы, полученные на выходе UART модуля XBee ZNet 2.5, с которого был отправлен запрос на обнаружение всех узлов сети. Всего было получено 4 ответа, Как видно из приведенных ответов, в сети было обнаружено 2 роутера и 2 конечных узла.

Рисунок 4. Создание и расшифровка фрейма API XBee

 

 Пример расчета сети ZigBee.

Входные данные: имеем здание высотой 150м (50 этажей по 3м) и основанием в виде квадрата со стороной 50м. На каждом этаже располагается ряд исполнительных устройств и датчиков, которые можно оснастить контроллерами с использованием чипов ZigBee. (Счетчики воды, электроэнергии, газа (импульсные  + контроллер с импульсным входом + чип ZigBee), управление светом (геркон, команды на замыкание по ZigBee), термостаты климат-контроля. На каждом этаже размещены счетчики воды, электроэнергии и газа, по 2 шт. каждых, по 10 исполнительных устройств управления светом и 10 термостатов климат-контроля.

Задача: Обеспечить связь, мониторинг и централизованное управление всех элементов системы с одного сервера.

Суть проблемы: Выяснить функциональную и экономическую целесообразность использования технологии ZigBee в концептуальном проекте по автоматизации здания.

В условиях ж/б конструкций дальность связи резко падает – с 700-1000м на открытом пространстве до 20-30м в помещении. Но даже в этом случае, при необходимости установить по 26 контроллеров на каждом этаже, нет необходимости устанавливать дополнительные координаторы и «дробить» сеть на части.

Каждый роутер может обслуживать до 32 «спящих» устройств,поэтому будет достаточно установки 1 роутера на этаж.

Роутеры должны находиться строго друг под другом, т.к. даже при наивысшей помехоустойчивости (для сбора данных нет необходимости в большой скорости передачи данных) и передачи на частоте 2,4 ГГц сигнал значительно ослабевает при переходе через перекрытия.

Таким образом, мы выяснили, что для организации мониторинга и управления зданием необходимо 26*50= 1300 мобильных узлов ZigBee и 50 роутеров. Управление 1350 устройствами происходит с помощью всего лишь одного координатора.

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

Эта же задача могла быть решена разными способами, к примеру, с помощью установки на каждом этаже нескольких контроллеров с GSM-модулями. Проблемы, и экономические издержки, которые возникают при таком варианте реализации, очевидны. Притом, что средние цены на OEM модули ZigBee сегодня приближаются к 30$, эта технология выглядит наиболее привлекательной для использования в проектах автоматизации, где необходимо использование недорогих беспроводных устройств сбора телеметрии.

Вывод.

Учитывая стоимость оборудования, доступность и понятность документации, технология ZigBee показывает себя довольно с перспективной стороны. Сейчас она стремительно развивается, производятся новые модули с различными функциональными возможностями и проектируются различные решения для  разных сфер деятельности человека.

Литература:

1. Telekomza, портал о связи, интернет-провайдинге, телекоммуникациях [Электронный ресурс], статья «Zigbee»

URL: http://wiki.telekomza.ru/wiki/Zigbee

2. Хабрахабр, коллективный блог [Электронный ресурс], статья «Сети ZigBee. Зачем и почему?»

URL: http://habrahabr.ru/post/155037/

3.  Амперка / Вики, Материалы, статьи, руководства [Электронный ресурс],

Статья «Настройка пары модулей XBee Series 2 для коммуникации друг с другом»

URL: http://wiki.amperka.ru/беспроводная-связь:настройка-xbee-series-2

4. Пушкарев О. Передача данных в ZigBee-сети с помощью модулей XBee ZNet 2.5 / Компэл вып.№3, 2008

5. Журнал «Компоненты и технологии» [Электронный ресурс], статья «ZigBee: взгляд вглубь»

URL: http://www.kit-e.ru/articles/wireless/2005_4_144