https://lauftex.ru/product/lf-21060-lcw-tsifrovoy-signalnyy-protsessor

Адресация и профили ZigBee


PDF версия

В статье описан принцип адресации ZigBee. Рассмотрены типы узлов и объектов, определенные стандартом, а также профили работы устройств.

Типы узлов

В сети ZigBee определены три вида узлов: координатор (ZigBee Coordinator, ZC), маршрутизатор (ZR) и конечное устройство (ZED). Координатор ZigBee используется для формирования сети. Эту функцию может выполнять только он. Если сеть защищена, добавление новых узлов осуществляется с помощью координатора. Маршрутизаторы ZigBee нужны для расширения и разветвления сети. Как и координаторы, они осуществляют маршрутизацию пакетов и разрешают узлам подключаться к сети.

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

Когда RxOnIdle ложно, ZED периодически выходит из режима сна и проверяет, есть ли сообщения для него, после чего снова переходит в неактивное состояние. Когда RxOnIdle принимает значение «Истина», ZED мгновенно принимает сообщения. В обоих случаях устройство может в любой момент начать передачу. Свойство RxOnIdle используется, когда для работы приложения требуется большой объем ОЗУ или флэш-памяти.

Узлом сети может быть любое устройство, например датчик света или температуры, выключатель, термостат, электронный замок.

Адрес сети

Типы адресов ZigBee и диапазон их значений приведены в таблице 1. Адрес сети, обозначаемый NwkAddr, представляет собой 16-разрядное число, уникально определяющее узел в сети. Координатор всегда имеет адрес 0x0000. На одном канале могут существовать два координатора с одинаковыми адресами, поскольку они имеют разные PAN ID.

Таблица. 1. Адреса ZigBee

Название

Диапазон

Описание

Канал

11–26

Физическая часть РЧ–спектра

Идентификатор PAN

0x0000–0x3fff

Адрес сети в канале

Адрес сети

0x0000–0xfff7

Адрес узла в сети

Конечная точка

1–240

Адрес приложения в узле

Кластер

0x0000–0xffff

Объект внутри приложения

Команда

0x00–0xff

Действие внутри кластера

Атрибут

0x0000–0xffff

Единица данных внутри кластера

Расширенный PAN ID

0x0000000000000000–0xffffffffffffffff

Уникальный 64-разрядный идентификатор сети

Группа

0x0000–0xffff

Выбранная часть узлов сети

Идентификатор профиля

0x0000–0xffff

Профиль ZigBee

В стеке ZigBee (0x01) поле NwkAddr характеризует расположение узла в сети. Например, устройство с NwkAddr = 0x0001 является первым подключившемся к сети ZR, а узел с адресом NwkAddr = 0x796F — это первое конечное устройство. В стеке ZigBee Pro (0x02) адрес присваивается произвольным образом.

МАС-адрес

MAC-адрес — это расширенный адрес, представляющий собой уникальный 64-разрядный номер, присвоенный устройству. Между адресом МАС и NwkAddr нет связи. При отключении устройства от сети и подсоединении его к другой МАС-адрес обязательно останется прежним, а NwkAddr может измениться.

Приемники ZigBee не содержат MAC-адрес. Он назначается производителем и записывается во флэш-память МК, расположенного на плате. MAC-адрес может иногда использоваться вместо короткого адреса узла, например, если узел перемещается и меняет свой короткий адрес. Так, когда пульт дистанционного управления выходит из зоны охвата своего родителя, он ищет новое родительское устройство, чтобы быть доступным для узлов сети. МАС-адрес записывается от младшего бита к старшему, поэтому во флэш-память устройства он заносится в обратном порядке.

Адресация внутри узла

Мы рассмотрели параметры узла, необходимые для его определения в сети. Однако ZigBee обеспечивает также совместимость на уровне приложения за счет использования кластеров, конечных точек, команд, атрибутов и профилей. Каждый пакет должен содержать PAN ID (поле MAC), NwkAddr (поле NWK), адрес конечной точки приемника и передатчика, ID профиля и кластера (поле APS).

Конечные точки

Конечные точки позволяют относить один узел к различным профилям или объединять несколько ZigBee-устройств в узел. Каждый узел сети может содержать 1—240 конечных точек в соответствии с количеством выполняемых приложений. Номера конечных точек могут идти не по порядку.

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

Кластеры

Кластеры определяются 16-разрядным идентификатором и являются объектами приложения. В то время как NwkAddr и конечные точки относятся к адресации, кластер определяет назначение приложения. Например, кластер включения и выключения On/Off выполняет действие перевода устройства из одного состояния в другое. При этом тип исполнительного устройства неважен.

Кластеры содержат команды и атрибуты. Текущее состояние устройства определяется приложением по атрибуту внутри кластера. Некоторые кластеры, определенные в ZigBee, приведены в таблице 2. Кластеры определены только внутри конкретного профиля. Например, в одном профиле кластер 0x0000 может выполнять отключение сети (Off), а в другом — содержать основные установки (Basic). Кроме идентификатора кластеры имеют направление. В свойстве SimpleDescriptor конечной точки кластер обозначается как вход или выход.

Таблица. 2. Кластеры ZigBee

Наименование

ID

Basic (основной)

0x0000

Power Configuration (регулировка мощности)

0x0001

Temperature Configuration (настройка температуры)

0x0002

Identify (кластер распознавания)

0x0003

Groups (кластер группы)

0x0004

Scenes (кластер сцен)

0x0005

On/Off (включение/выключение)

0x0006

On/Off Configuration (настройка включения и выключения)

0x0007

Level Control (управление уровнем)

0x0008

Time (время)

0x000a

Location (местоположение)

0x000b

В стандартных профилях (Public profile) используется библиотека кластеров ZigBee (ZigBee Cluster Library, ZCL), содержащая команды и атрибуты. С помощью библиотеки легко получить или присвоить атрибут, используя общий набор команд.

Команды представляют собой 8-разрядное число и могут быть внутрикластерными или межкластерными. Кластерные команды зависят от номера кластера и обычно начинаются с 0x00. Например, 0x00 — команда выключения в кластере OnOff и команда движения к заданному уровню в кластере LevelControl.

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

Профили

Все запросы данных посылаются в профиль приложения. Для этого используются идентификаторы профиля — 16-разрядные числа в диапазоне 0x0000–0x7fff для стандартных профилей и 0xbf00–0xffff — для профилей, определенных производителем.

Профиль относится к приложению или устройству. Стандартные профили определяются альянсом ZigBee, индивидуальные — производителем.

Home Automation (автоматизация дома) — стандартный профиль для объединения в сеть бытовых устройств, в т.ч. осветительных приборов, выключателей, розеток, пультов управления, кондиционеров, термостатов, нагревателей (см. рис. 1). Другой пример — стандартный профиль Commercial Building Automation, который определяет такие устройства ZigBee как сложные осветительные приборы и многопозиционные выключатели, системы отпирания дверей без использования ключа и системы безопасности.

Рис. 1. Устройства ZigBee в профиле Home Automation

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

Таблица. 3. Стандартные профили ZigBee

ID профиля

Название профиля

0101

Industrial Plant Monitoring (IPM, мониторинг предприятия)

0104

Home Automation (HA, автоматизация жилых помещений)

0105

Commercial Building Automation (CBA, автоматизация коммерческих помещений)

0107

Telecom Applications (TA, телекоммуникация)

0108

Personal Home & Hospital Care (PHHC, амбулаторное или стационарное лечение)

0109

Advanced Metering Initiative (AMI, дополнительные измерения)

Профили позволяют соединять устройства различных производителей без дополнительной настройки. Индивидуальные профили, также называемые профилями производителей (Manufacturer Specific Profiles, MSP), не закреплены альянсом ZigBee. Они создаются для таких приложений, которые рассчитаны на взаимодействие с устройствами только одного производителя.

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

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

Идентификаторы устройств

Каждая конечная точка содержит идентификатор профиля и идентификатор устройства. Как мы уже говорили, одно физическое устройство может представлять собой несколько устройств ZigBee. Идентификаторы устройств ZigBee принимают значения от 0x0000 до 0xffff (см. табл. 4). Идентификаторы устройств имеют двойное назначение. Они позволяют отображать на дисплее пользователя иконки, соответствующие типу устройства, и в то же время помогают сделать инструменты ZigBee более совершенными.

Таблица. 4. Идентификаторы устройств для профиля Home Automation

Устройство

Идентификатор

Устройство

Идентификатор

Расширитель диапазона

0x0008

Датчик света

0x0106

Розетка электросети

0x0009

Затенитель

0x0200

Выключатель света

0x0100

Контроллер затенителя

0x0201

Лампа с регулируемой яркостью

0x0101

Нагревательно-охладительный элемент

0x0300

Выключатель света

0x0103

Термостат

0x0301

Регулятор яркости

0x0104

Датчик температуры

0x0302

Рассмотрим двухпозиционный переключатель и штепсельную розетку. В плане удаленного мониторинга и управления эти устройства идентичны. Они принадлежат одному кластеру — 0x0006 (OnOff). Однако, с точки зрения пользователя, розетка относится к инструменту для ввода в эксплуатацию электронных устройств, а переключатель позволяет включить или выключить свет.

Сеть ZigBee не устанавливает интерфейса между человеком и устройствами. Выключателем может быть кнопка, тумблер, пластина датчика электрического поля, датчик ускорения и т.д. Во всех стандартных профилях ZigBee содержится список устройств. Производители могут расширить его, используя поле Manufacturer Specific Extension, которое является частью интерфейса библиотеки кластеров ZigBee. Они также могут создать устройство в индивидуальном профиле (MSP), тогда оно будет взаимодействовать с устройствами из стандартного профиля через идентификаторы устройств и кластеры.

Simple Descriptor

Свойство Simple descriptor позволяет соединить все устройства в одну конечную точку. По сути, это полное описание конечной точки. Simple descriptor содержит поля, о которых мы уже говорили: ID конечной точки, ID профиля, ID кластера и ID устройства. Заметим, что в нем нет списка доступных в данном кластере команд или атрибутов. Предполагается, что возможности кластера прописаны в устройстве.

В коде программы описание конечной точки имеет следующий вид:

typedef struct zbSimpleDescriptor_tag

{

zbEndPoint_t endPoint;

zbProfileId_t aAppProfId;

zbDeviceId_t aAppDeviceId;

uint8_t appDevVerAndFlag;

zbCounter_t appNumInClusters;

uint8_t *pAppInClusterList;

zbCounter_t appNumOutClusters;

uint8_t *pAppOutClusterList;

} zbSimpleDescriptor_t;

Описание любой конечной точки можно запросить с помощью команды Simple_Desc_req. Одни кластеры обязательны, другие — опциональны. По свойству Simple descriptor любой узел сети может определить, поддержка каких кластеров необязательна. В списке присутствуют как входные, так и входные кластеры. Это позволяет ZigBee согласовывать устройства. Например, если на одной стороне выходной кластер (регулятор яркости), а на другой — такой же кластер, но входной (источник света с регулируемой яркостью), то устройства связываются.

Литература

1. Gislason D. ZigBee applications//www.eetimes.com.

2. Kinney P. ZigBee Technology: Wireless Control that Simply Works//www.zigbee.org.

Оставьте отзыв

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