Реализация стандартного профиля ZigBee Home Automation на базе платформы Ember. Часть 1

№ 3’2009
PDF версия
Одна из основных задач разработки спецификации ZigBee PRO — обеспечить возможность совместной работы устройств различных производителей в одной беспроводной сети. Для реализации этой идеи альянс ZigBee разрабатывает стандартные профили приложения, которые регламентируют правила взаимодействия беспроводных устройств. Первым опубликованным профилем приложения стал Home Automation, предназначенный для организации систем домашней автоматизации [1]. В течение прошедшего года более десятка компаний сертифицировали свои устройства на соответствие этому профилю. В данной статье описаны возможности платформы Ember и программы Application Builder для разработки устройств стандартного ZigBee-профиля Home Automation.

Кластеры и профили ZigBee

Спецификация профиля определяет набор стандартных устройств и все параметры, необходимые для их совместной работы на разных уровнях взаимодействия. На уровне стека протоколов ZigBee регламентируются, например, такие характеристики, как способы задания идентификационных параметров сети, режимы образования сети, режимы защиты данных. Совместимость на уровне стека позволяет устройствам работать в одной сети и обмениваться между собой сообщениями. Однако этого недостаточно для того, чтобы эти устройства понимали друг друга на уровне приложения. Для обеспечения совместимости на уровне приложения требуется некий стандартный язык общения между беспроводными устройствами одного и того же назначения. Для реализации этой задачи была разработана библиотека ZigBee-кластеров (ZCL-ZigBee Cluster Library) [2]. Этот документ вводит понятие стандартных типов устройств, стандартных команд для этих устройств, специфицирует наборы стандартных атрибутов, диапазоны значений этих атрибутов и типы данных для задания значений атрибутов. Набор связанных атрибутов и команд, определяющих свойства объекта и методы работы с ним, получил название кластер. Например, для стандартного устройства «лампочка» определен кластер «включить/выключить»(On/Off), содержащий следующие атрибуты и команды:

  • стандартный атрибут — состояние (горит/не горит);
  • стандартные команды — включить, выключить, изменить состояние на противоположное.

Кластер оказывается разделенным на две части — серверную и клиентскую. Две его части находятся на разных устройствах (рис. 1). Сервером является узел, который хранит значение атрибута (в нашем случае это лампочка), а клиентом — устройство, которое генерирует команду на изменение или считывание атрибута (в нашем примере это выключатель).

Клиент-серверная структура кластера ZigBee

Одно и то же устройство может содержать клиентские части одних кластеров и серверные части других. Например, выключатель в нашем примере может дополнительно содержать серверную часть кластера “On/Off switch configuration” (конфигурация выключателя), при помощи которого он будет получать информацию о режимах своей работы от конфигурирующего устройства (рис. 2).

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

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

 

Профиль Home Automation

Профиль Home Automation специфицирует стандартные типы устройств домашней автоматизации и стандартные типы сообщений, определяющие протокол взаимодействия между ними. Он регламентирует работу таких механизмов, как устройства управления осветительным оборудованием, системами кондиционирования, отопления, вентиляции и т. д., а также предусматривает возможность взаимодействия с другими стандартными ZigBee-профилями. Так, взаимодействие с профилем Smart Energy позволяет обеспечить беспроводную связь между устройствами домашней автоматизации и измерительной аппаратурой инфраструктуры коммунальной службы, занимающейся учетом потребления воды, газа, электрической энергии.

Списки некоторых кластеров и стандартных устройств, используемых в профиле Home Automation, представлены соответственно в таблицах 1 и 2.

Таблица1 . Кластеры профиля Home Automation
Кластеры общего назначения
Basic Базовый
Power configuration Настройка параметров питания/мощности
Device Temperature Configuration Температура устройства
Identify Идентификация
Groups Групповые настройки
Scenes Сценарий
On/Off Вкл./выкл.
On/off switch configuration Настройка состояний вкл./выкл.
Level control Управление уровнем
Alarms Тревога
Time Время
Освещение
Color control Управление цветом
Жалюзи
Shade Configuration Настройка параметров жалюзи
Отопление, вентиляция, кондиционирование
Pump Configuration and Control Настройка и управление насосами
Thermostat Термостат
Fan Control Управление вентилятором
Thermostat User Interface Configuration Интерфейс пользователя для настройки термостата
Таблица 2 . Стандартные устройства профиля Home Automation
Устройства общего назначения
On/Off Switch Переключатель
Level Control Switch Включатель с регулировкой уровня
On/Off Output Исполнительное реле
Level Controllable Output Исполнительное устройство с регулировкой уровня
Scene Selector Устройство управления сценариями
Configuration Tool Инструмент настройки
Remote Control Пульт управления
Combined Interface Устройство комбинированное интерфейсное
Range Extender Расширитель зоны охвата
Mains Power Outlet Сетевая розетка
Освещение
On/Off Lig Лампочка вкл./выкл.
Dimmable Light Лампочка-диммер
Color Dimmable Light Цветная лампочка-диммер
On/Off Light Switch Переключатель
Dimmer Switch Переключатель-диммер
Color Dimmer Switch Переключатель-«диммер» с регулировкой цвета
Light Sensor Датчик освещенности
Occupancy Sensor Датчик присутствия
Жалюзи
Shade Жалюзи
Shade Controller Устройство управления жалюзи

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

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

 

Программные средства компании Ember для разработки приложений, поддерживающих стандартные профили ZigBee

Компания Ember к своим приемопередатчикам предлагает набор программных средств для разработки устройств, реализующих стандартные профили ZigBee. Процесс разработки с использованием этого набора для системы на кристалле EM250 показан на рис. 3.

Профиль разработки приложений, реализующих стандартный профиль ZigBee, на базе кристалла EM250

Набор включает в себя следующие компоненты:

  • Стек EmberZNet — встраиваемая библиотека EmberZNet, реализующая все уровни стека ZigBee PRO.
  • Каркас приложений — исходные коды демонстрационных проектов, входящие в состав пакета EmberZNet, которые содержат реализацию всех стандартных устройств и кластеров профиля Home Automation. Существует механизм отключения-подключения необходимых кластеров при помощи директив препроцессора. Пакет EmberZNet содержит семь готовых проектов с соответствующими настройками конфигурационных файлов для устройств следующих типов: термостат, температурный сенсор, лампочка-диммер и переключатель лампочки-диммера, электрическая розетка, нагреватель/охладитель, пульт управления.
  • Application Builder — программа-генератор конфигурационных файлов [3]. Эта программа, используя каркас приложений, определяет, какие порции исходных кодов будут входить в проект для реализации требуемых стандартных операций, а какие нет. Результатом работы программы Application Builder являются конфигурационные заголовочные файлы и файлы проекта для соответствующего компилятора, в зависимости от используемой аппаратной платформы.
  • xIDE for EM250 — интегрированная отладочная среда (IDE) для кристалла EM250, которая содержит менеджер проекта, редактор текста, ассемблер, компилятор, линковщик и отладчик.

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

  • Использовать примеры готовых проектов и модифицировать их в среде xIDE.
  • С помощью программы Application Builder задать конфигурацию нового устройства и cгенерировать новый проект для xIDE.

Остановимся более подробно на втором варианте. Основное окно программы Application Builder (рис. 4) содержит 3 вкладки: ZCL cluster configuration, Stack configuration и HAL configuration. Вкладка ZCL cluster configuration позволяет производить настройки уровня приложения (тип ZigBee-устройства, кластеры, атрибуты). Во вкладке Stack configuration задается конфигурация стека (параметры, определяющие политику безопасности устройства, настройки радиоинтерфейса физического уровня, установки конечной точки, временные интервалы энерго сберегающих режимов для спящих устройств). Вкладка HAL configuration определяет настройки уровня аппаратной абстракции стека EmberZNet (выбор микросхемы приемопередатчика, для которой разрабатывается проект, конфигурирование входов и выходов, режим работы последовательного порта, выбор набора команд интерфейса командной строки).

 Основное окно приложения Application Builder

Текущая конфигурация и настройки могут быть сохранены в конфигурационном файле с расширением .isc. Т.е. при желании их можно загрузить в Application Builder и вновь использовать. После того как все конфигурационные параметры определены, посредством нажатия кнопки Generate генерируются два заголовочных файла с расширением .h и два файла проекта для среды разработки xIDE с расширениями .xip и xiw. Итоговый проект реализует все основные операции в сети ZigBee PRO, такие как образование сети, присоединение к сети, ретрансляция данных и прочее. Он также выполняет все операции, связанные с функционированием ZigBee-кластеров: формирование, обработка стандартных ZCL-команд, запись, изменение и чтение атрибутов, отправка и прием отчетов.

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

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

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

  • задание конфигурации (при помощи Application Builder);
  • генерация заголовочных фалов (при помощи Application Builder);
  • добавление пользовательского кода в среде xIDE for EM250;
  • компиляция исходных кодов со встраиваемой библиотекой EmberZNet.

 

Заключение

Устройства, разработанные описанным выше способом, могут быть использованы совместно с устройствами других производителей, поддерживающих профиль Home Automation. Однако право использовать логотип ZigBee на упаковке производитель получает только после того, как данная продукция пройдет сертификацию на соответствие технологии. Сертифицирующие организации тестируют устройства на совместимость с Zigbee PRO путем проверки их способности работать совместно в одной сети с устройствами-эталонами, выполненными на базе платформ, получивших статус Golden Suite. Платформа Ember имеет такой статус. Поэтому ее использование при разработке устройств позволяет пройти сертификацию на соответствие спецификации ZigBee PRO быстро и без проблем.

Окончание статьи.

Литература
  1. ZigBee Home Automation Public Application Profile, October 27, 2007, www.zigbee.org.
  2. ZigBee Cluster Library Specification, October 19, 2007, www.zigbee.org.
  3. Introducing AppBuilder. Application Note 5056. 23 September 2008, 120-5056-000B

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *