Модуль zigbee что это

Беспроводные сети ZigBee. Часть 2 [Работа с радиомодулями ETRX35X]

Модуль zigbee что это. Смотреть фото Модуль zigbee что это. Смотреть картинку Модуль zigbee что это. Картинка про Модуль zigbee что это. Фото Модуль zigbee что это

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

1. Модули ETRX357

Модуль zigbee что это. Смотреть фото Модуль zigbee что это. Смотреть картинку Модуль zigbee что это. Картинка про Модуль zigbee что это. Фото Модуль zigbee что это

Познакомимся с выбранной аппаратной платформой. Модули ETRX357 построены на базе микросхемы EM357 от компании Silicon Labs. Данная микросхема является системой на кристалле — процессорное ядро Cortex-M3 + ВЧ-приемопередатчик, работающий на частоте 2,4 ГГц.

Модули ETRX357 доступны в 4 модификациях:

Экспериментальные измерения дальности связи для модулей ETRX357 и ETRX357-LRS в условиях прямой видимости:

Ниже представлена сводная таблица по основным характеристикам модуля:

ХарактеристикиОписание
Процессорное ядроARM Cortex-M3
ВЧ-приемопередатчик2.4 ГГц
Объем Flash/RAM, Кб192 / 12
ЭнергопотреблениеTX: 42 мА @ +8 дБм
RX: 26.5 мА
«сон»: 400 нА
Рабочий диапазон напряжений2.1 — 3.6 В
Рабочий диапазон температур-40. +85 °C

Более подробную информацию по техническим характеристикам можно получить в документации на модули[1].

2. Встроенная прошивка

Все модули идут со встроенной прошивкой от производителя, и для начала работы достаточно подать питание на модуль, подключить линии TxD и RxD последовательного интерфейса UART, через который осуществляется взаимодействие с модулем с помощью AT-команд. Все команды можно условно разделить на 2 типа:

Также стандартная прошивка включает в себя набор функций, который позволяют в некоторых случаях обойтись без внешнего микроконтроллера или управляющего устройства. Полный перечень команд можно посмотреть в руководстве[2], ниже перечислены лишь наиболее часто используемые. Некоторые команды из этого списка потребуются нам для создания нашей системы сбора данных.

КомандаОписание
AT+PANSCANПросканировать эфир на наличие доступных для подключения сетей
AT+ENОрганизация сети
AT+JNПодключение к любой доступной сети
AT+DASSLПокинуть текущую сеть
AT+DASSR:Отправить удаленному устройству команду на выход сети

Максимальная длина сообщения: 72 байта.

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

Возможен побитовый доступ к встроенным S-регистрам. Для этого в команде на чтение/запись, после XX требуется указать номер бита, к которому необходимо обратиться. Например:

Модуль zigbee что это. Смотреть фото Модуль zigbee что это. Смотреть картинку Модуль zigbee что это. Картинка про Модуль zigbee что это. Фото Модуль zigbee что это

Теперь перейдем к более детальному рассмотрению процесса построения сети ZigBee. Работать будем с отладочными платами на которых установлен мезонинный радиомодуль и ZigBee-USB-шлюзом. На отладочных платах есть несколько аналоговых датчиков, о которых будет рассказано позже. С них мы будем снимать показания и отправлять на центральный узел сбора данных, где это все будет обрабатываться. Шаг за шагом мы будем создавать нашу систему сбора данных и разберём основные трудности, которые могут возникнуть в процессе.

Опишем будущую систему сбора данных:

Модуль zigbee что это. Смотреть фото Модуль zigbee что это. Смотреть картинку Модуль zigbee что это. Картинка про Модуль zigbee что это. Фото Модуль zigbee что это

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

Выше была упомянута команда AT+EN, которая позволяет организовать сеть. Устройство, которому данная команда была отправлена по последовательному интерфейсу, становится координатором сети. По умолчанию, координатор самостоятельно выбирает наиболее подходящий частотный канал, генерирует короткий и длинный адрес сети.

Ниже представлен список регистров, значение которых влияет на процесс создания ZigBee-сети:

Маска каналов – регистр S00. Данная маска определяет, какие каналы могут быть использованы. Напомним, спецификация технологии ZigBee определяет 16 частотных каналов (нумерация с 11 по 26). Регистр 2 байтный, поэтому установкой 0/1 можно разрешить/запретить использовать соответствующий канал. Эта установка действует как для координатора при создании сети, так и для всех остальных устройств, которые хотят присоединиться к доступной сети.

Выходная мощность приемопередатчика – регистр S01. Данный параметр применяется к радиомодулю при создании сети или при подключении к доступной сети, и действует в течение всего времени нахождения устройства в сети. В процессе работы в ZigBee-сети данный параметр поменять нельзя. Единственная возможность это сделать – покинуть сеть, поменять значение в регистре на новое, покинуть сеть и подключиться заново. Все возможные значения, которые можно записать в регистр S01, указаны в документации[2].

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

4. Безопасность сети

В сетях ZigBee за безопасность отвечает специальный узел – Trust-центр. Координатор по умолчанию является Trust-центром. Также Trust-центром может быть любой роутер (FFD-устройство), в случае, если сеть создавалась в режиме распределенного Trust-центра (об этом будет рассказано в конце данной главы).

Список обязанностей Trust-центра:

В сетях ZigBee используется два ключа:

Чтобы предотвратить потенциальную компрометацию данных, передаваемых в сети, можно использовать несколько вариантов:

В данной статье мы рассмотрим вариант с предустановленным Link Key. Минус данного подхода, это необходимость записи соответствующей конфигурации во все модули. Но для нашей маленькой сети это не критично. В стандартной прошивке модулей ETRX357 Link Key можно установить с помощью записи соответствующего значения в регистр S09. Кроме этого необходимо в регистре S0A установить в 1 следующие биты:

Установка битов 2 и 4 на всех узлах кроме координатора является необязательной процедурой. Плюсы данного подхода:

Укажем ещё на одну интересную возможность: в регистре S0A 9 бит отвечает за включение особой функции — создать сеть в режиме распределенного Trust-центра. В данном режиме работы любой роутер (FFD-устройство) может разрешить новым устройствам подключиться к текущей сети. Режим распределенного Trust-центра используется при развертывании больших сетей, чтобы избежать задержек на подключение всех беспроводных узлов. После того как сеть развернута, с помощью команды AT+BECOMETC выбирается Trust-центр, который будет заниматься регулированием политики безопасности. Чтобы обеспечить безопасность сети в данном режиме работы также необходимо позаботиться о предустановке/получении Link Key. В противном случае, пока не будет выбран Trust-центр, любое ZigBee-устройство потенциально сможет беспрепятственно подключиться к сети.

5. Типы ZigBee-устройств

В предыдущей статье были рассмотрены основные типы ZigBee-устройств. Напомним главные особенности и остановимся подробнее на типах конечных устройств:

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

Перечисленные устройства выступают в качестве родительских узлов для конечных устройств. Максимальное число дочерних узлов у роутера или координатора может достигать 32. Родительские устройства отвечают за прием и хранение(*) сообщений для конечных устройств, которые подключены к ним. Конечные устройства, в свою очередь, общаются с сетью через родителей. Каждый раз, когда новое конечное устройство подключается к сети или же когда старое переподключается, для него определяется родитель, который делает запись в специальной таблице дочерних устройств. В этой таблице хранится короткий и длинный адрес дочернего узла и его тип. Рассмотрим доступные типы конечных устройств:

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

спящее конечное устройство (SED) — сетевые обязанности для данного типа устройств аналогичны предыдущему типу. Отличие лишь в поддержке спящего режима, который объявлен в спецификации технологии ZigBee. Такие устройства большую часть времени проводят в режиме сна и могут работать от батареечного источника питания длительное время. Определение «длительного времени» здесь зависит от приложения, но если рассмотреть пример с беспроводным ZigBee-выключателем, то срок работы такого устройства от одного комплекта дисковых батареек может составить 2-3 года[3]. Такие устройства выходят из спящего режима только по какому-либо внешнему событию (по прерыванию от таймера, чтобы оцифровать показания датчика; по нажатию на кнопку и т.д.) или же когда пришло время отправлять пакет данных. Для того, чтобы получать сообщения от родительского узла, спящие узлы используют Polling-механизм. О нем мы поговорим чуть позже.

Пример сети ZigBee

Модуль zigbee что это. Смотреть фото Модуль zigbee что это. Смотреть картинку Модуль zigbee что это. Картинка про Модуль zigbee что это. Фото Модуль zigbee что это

Конечные устройства всегда подключаются через FFD-устройство, которое на момент подключения имело наилучший показатель качества связи. В процессе работы может возникнуть ситуация, когда роутер вышел из строя или его забрали на сервисное обслуживание. В таком случае, после нескольких попыток восстановить связь с родителем, конечное устройство начнет поиск нового родительского узла. На рисунке связь между мобильным узлом и родителем обозначена пунктирной линией. Через определенный промежуток времени MED-устройство может присоединиться к сети через другого родителя.

Polling-механизм

Данный механизм используется в нескольких целях:

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

По спецификации ZigBee для спящих конечных устройств, адресные сообщения хранятся родителем

7.68 секунды. Причем, если частота следования адресных сообщения для SED/MED-устройства выше указанного значения, то сообщения будут перезаписываться. Следовательно, для обеспечения надежной доставки данных спящее конечное устройство должно опрашивать родительский узел достаточно часто. В связи с этим для спящих конечных устройств существует два интервала опроса: Short Poll и Long Poll интервалы.

Short Poll интервал используется при ожидании подтверждения успешности транзакции, например, при отправке пакета с данными о показаниях датчика. Обычно данный интервал задается равным 1 секунде. После того, как подтверждение получено, устройство переходит в спящий режим и далее используется Long Poll интервал.

Long Poll интервал обычно задается в достаточно большим — от нескольких минут до нескольких дней. Это позволяет спящему конечному устройству сохранять место в дочерней таблице родителя. Родитель может вычеркнуть конечное устройство из своей таблицы, если оно не вышло вовремя на связь. В таком случае проспавшее свой момент конечное устройство обязано будет переподключиться к сети.

Более подробную информацию о Polling-механизме можно посмотреть в руководстве по ZigBee-стеку от Silicon Labs. В стандартной прошивке для модулей ETRX357 опрос родительского узла осуществляется по прерыванию от таймера/счетчика 0.

6. Создание сети сбора данных

Базовая теория рассказана, перейдем к практике. Для работы с радиомодулями ETRX357 будет использоваться модуль на Python. Все рекомендации по его использованию даны в сопутствующем README-файле.

6.1 Настройка ZigBee-устройств

Запишем в каждый узел соответствующую конфигурацию. Все три устройства — USB-шлюз и две отладочные платы — были подключены к компьютеру и каждое было соответствующим образом сконфигурировано:

Несколько комментариев по поводу настройки спящих конечных устройств. Для того, чтобы минимизировать энергопотребление радиомодуля, необходимо отключить всю неиспользуемую периферию: светодиодную индикацию и питание датчика освещения. Кроме этого необходимо все неиспользуемые выводы сконфигурировать на вход с подтяжкой или выход. За настройку портов ввода/вывода отвечает несколько 32-разрядных регистров:

Более подробную информацию по возможным настройкам портов ввода/вывода можно посмотреть в документации по AT-командам[2]. В конфигурационном файле для спящих узлов записано значение, которое отключает всю ненужную для нашей задачи периферию за исключением вывода, использующегося для питания датчика температуры, и входа АЦП. Для того, чтобы задействовать вход АЦП необходимо в регистре S15 установить бит 13 в 1 (задействование альтернативной функциональности вывода PB5). На отладочной плате установлен датчик температуры LM61.

Модуль zigbee что это. Смотреть фото Модуль zigbee что это. Смотреть картинку Модуль zigbee что это. Картинка про Модуль zigbee что это. Фото Модуль zigbee что это

6.2 Организация передачи данных на центральный узел сбора

Для того, чтобы спящие конечные устройства автоматически присылали данные на центральное устройство, воспользуемся встроенной функцией, которая может быть вызвана по прерыванию или событию. В нашей задаче мы хотим получать информацию о температуре через определенные интервалы времени. Поэтому необходимо воспользоваться одним из встроенных таймеров, который и будет вызывать встроенную функцию. Пусть прерывание от таймера/счетчика 7 будет возникать каждые 10 секунд. Для задания порога срабатывания таймера/счетчика 7 используется регистр S37. Пороговое значение в секундах определяется по следующей формуле:

Модуль zigbee что это. Смотреть фото Модуль zigbee что это. Смотреть картинку Модуль zigbee что это. Картинка про Модуль zigbee что это. Фото Модуль zigbee что это

Номер вызываемой по прерыванию от таймера/счетчика 7 функции записывается в регистр S38. Необходимая нам функция имеет номер 0110, которая отправляет данные о состоянии всех портов ввода/выывода, напряжении питания и оцифрованные значения АЦП на Sink-узел. Для того, чтобы она автоматически перезапускала таймер, необходимо старший бит (S38F) в регистре S38 установить в 1. Итоговое значение, которое необходимо записать – 8110. Об этой возможности встроенной прошивки можно почитать в документации[3]. Ниже дана краткая информация о том, что такое Sink-узел.

Sink-узлы

Каждое устройство в сети ZigBee имеет собственный уникальный короткий идентификатор (PANID). Координатор всегда имеет короткий адрес 0000 и очень часто именно его делают центральным узлом сбора данных. Однако, бывают случаи, когда координатором является устройство, не имеющее внешних интерфейсов (UART, SPI и т.д.) и требуется отправлять данный с датчиков на какой-то другой узел. Одно из решений – в собственном приложении, взаимодействующем с модулями ETRX357, вручную задать адрес устройства, которое будет собирать и обрабатывать поступающую информацию. Недостатки данного подхода:

Для того, чтобы упростить механизм отправки данных на определенные узлы в сети, в стандартной прошивке модулей ETRX357 имеется специальная надстройка — стать Sink-узлом — которую может задействовать любой роутер в сети. Чтобы сделать роутер Sink-узлом, 4 бит в регистре S10 необходимо установить в единицу. Во всех узлах, которые используют встроенные функции, отправляющие данные на Sink, или же желающие использовать специальную команду для отправки сообщений на Sink, необходимо установить 8 бит в регистре S10 или использовать команду AT+SSINK для осуществления поиска ближайшего Sink-узла. Sink-устройство периодически отправляет широковещательные сообщения в сеть и все узлы, получившие его, делают запись в своей адресной таблице. В случае большой сети, вводят несколько Sink-узлов, которые принимают данные от ближайших соседей. Устройства, отправляющие данные на Sink-узел, автоматически выбирают наиболее подходящий узел сбора данных, используя информацию о качестве связи. Это позволяет разгрузить устройства сбора данных, а также предотвратить сбои в получении данных, так как в случае выхода из строя одного из Sink-узлов сеть автоматически перестроит маршруты.

После этого можно отправлять данные на Sink с помощью команды AT+SCAST:

6.3 Снижение энергопотребления спящих устройств

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

Энергопотребление модулей в различных режимах

Модуль zigbee что это. Смотреть фото Модуль zigbee что это. Смотреть картинку Модуль zigbee что это. Картинка про Модуль zigbee что это. Фото Модуль zigbee что это

Пусть спящие устройства переходят в режим энергосбережения 2 при подключении к сети (регистр S28). Обратите внимание, что модули, находящиеся в режимах 2-4, не отвечают на команды, отправленные по последовательному интерфейсу UART. В связи с этим необходимо предусмотреть возможность перехода модуля в режим 0 и обратно, для того, чтобы была возможность внести изменения в конфигурацию устройства или в логику его работы. Однако, есть возможность настроить выход из сна с помощью отправки символа по интерфейсу UART (более подробно см. описание регистра S11). На отладочных платах есть 4 кнопки, каждая из которых может активировать определенную встроенную функцию по прерыванию. Мы будем использовать кнопки 1 и 2 (выводы PA0 и PA1). Команды для задания соответствующей конфигурации:

Ниже приведены графики энергопотребления для спящих конечных устройств в различных режимах работы:

Источник

Zigbee для самых маленьких. Пост номер 1

Модуль zigbee что это. Смотреть фото Модуль zigbee что это. Смотреть картинку Модуль zigbee что это. Картинка про Модуль zigbee что это. Фото Модуль zigbee что это
Около месяца назад попали в мое распоряжение модули Atmel ATZB-S1-256-3-0-C основанные на чипе ATmega256RFR2 объединяющим в себе 2.4Mhz трансивер, микроконтроллер AVX на 256 килобайт памяти и даже чип-антенну. Атмель обещали в свою очередь out of the box поддержку Zigbee для этих модулей и было принято решение строить наш mesh именно на них.

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

Звучит довольно просто, не так ли? На практике все оказалось намного прозаичнее. Основной проблемой оказалась недооценка технологической сложности атмелевского стека Zigbee, самого стандарта Zigbee, ну и переоценка собственных возможностей. Дело в том что сам я давно не програмировал на C, давно перешел на Matlab и Python, все указатели и другие средства управления ресурсами и процессами давно положил в тумбочку и выкинул ключ. Ну что-же… в мире ембеддед меня ждало много приятных неожиданностей.

Закатал я короче рукава, расчехлил модули, припаял батарейки, установил AtmelStudio, сел программировать, встал через три дня с пониманием того, что я до сих пор ни во что не врубаюсь. Ощущение неприятное, но делать нечего, проект сам себя не закончит и надо что-то делать. Первым шагом к исправлению ошибки был переход на другой микроконтроллер который тоже присутствовал в проекте — STM32 на который была уйма туториалов в интернете и который позволил мне более плавно влиться в мир embedded. Про STM32 я тоже написал подобную серию постов которая как мне кажется довольно подробно описывает работу с этим микроконтроллером для совсем начинающих. Данная серия постов — «Zigbee для самых маленьких» будет относительно продвинутой по сравнению с серией про STM32 как мне кажется, но все же я постараюсь разжевывать и представлять материал достаточно структурировано что-бы получилось, как можно более доступно и можно было повторить эксперимент дома.

Стандарт Zigbee

В этой части мы попробуем разобраться что же такое Zigbee. Рассмотрим стандарт в общих чертах, посмотрим что такое Zigbee application profiles, clusters и endpoints. В следующей части углубимся в технические подробности фрэйма, и безопасности в Zigbee (можно даже и не читать пока, а вернуться когда они понадобятся). После ознакомления с протоколом перейдем непосредственно к модулям Atmel и программированию.

Вступление

Итак, Who is Mr. Zigbee?

Во первых. ZigBee — спецификация сетевых протоколов верхнего уровня — уровня приложений APS (англ. application support sublayer) и сетевого уровня NWK, — использующих сервисы нижних уровней — уровня управления доступом к среде MAC и физического уровня PHY, регламентированных стандартом IEEE 802.15.4.

Если по-простому то Википедия по-моему очень емко выразилась на счет этого: «Сотрудничество между IEEE 802.15.4 и ZigBee подобно тому, что было между IEEE 802.11 и альянсом Wi-Fi».

А если разжевать, то все вместе работает примерно так:

APS(Zigbee) NWK(Zigbee) MAC(IEEE 802.15.4) PHY(IEEE 802.15.4)

1. PHY — physical layer. Физический уровень. Отвечает за передачу и прием битов нашим трансивером.
2. MAC — media access control. Подуровень управления доступом к среде. Для простоты запоминания можно сосредоточиться на механизме адресации. Все слышали про MAC адрес вот именно в этом подуровне он и появляется. Подуровень ответственный за то что бы бит был послан или принят не просто так, а по определенному адресу в сети.
3. NWK — network layer. Уровень управления сетью. Ответственный за передачу пакетов в сети — включает протоколы переадресации, раутинга и т.д.
4. APS — application support sublayer. Команды вызываемые непосредственно из приложения для пересылки в сети.

Во вторых. Zigbee так же включает в себя (из важных для понимания вещей) механизм стандартизации приложений включающий профили приложений и библиотеки стандартных кластеров. (Запомните этот твит!)

Механизм стандартизации приложений

Из этой части мы должны вынести несколько основных понятий:

Profile ID Profile Name
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)

Профили прежде всего нужны для того что бы устройства одного производителя работали с устройствами другого производителя в общей области применения. Интересно то, что устройства могут быть мультипрофильными и какая то лампочка может быть например сертифицирована и как (HA) и как (CBA). Профили не ограничиваются стандартными и производитель устройств может придумывать свои собственные. Также сообщения в Zigbee передаются внутри одного профиля с помощью profile id — то есть области применения разграничены не только в коде, в сертификации, логически и но и на канале связи.

В стандартных профилях придуманы стандартные типы устройств например для (HA) существуют следующие осветительные устройства:

Модуль zigbee что это. Смотреть фото Модуль zigbee что это. Смотреть картинку Модуль zigbee что это. Картинка про Модуль zigbee что это. Фото Модуль zigbee что это

Важно заметить что данное разделение является функциональным а не физическим то есть одна встраиваемая панель управления может быть одновременно и «Dimmer Switch» и «On/Off Light Switch». Как же ей это удается? С помощью концепции называющийся endpoints. В нашем железном-устройстве мы можем «зарегистрировать» несколько endpoints каждый из которых будет заниматься своим делом и даже не не будет знать про остальных. Таким образом совмещаются несколько устройств виртуальных на одном физическом.

Ну и на сладкое, Zigbee предоставляет специальные библиотеки ZCL — кластеры которые должны здорово помогать нам имплементировать различные устройства. Кластеры являются функциональными кирпичиками осуществляющими некие простые функции из которых можно создать целое рабочее устройство. Например стандартное устройство называющееся «Dimmer Switch» использует библиотеки/кластеры:

Модуль zigbee что это. Смотреть фото Модуль zigbee что это. Смотреть картинку Модуль zigbee что это. Картинка про Модуль zigbee что это. Фото Модуль zigbee что это

Но что это? Это самолет! Нет это птица! Нет это супермэн разграничение на сервер и клиент. Последнее основное понятие которое мы затронем сегодня это разграничение на сервер/клиент в коде и функционале устройства. Сервер это обычно то куда складывается информация/команды а клиент это тот кто посылает, таким образом «Dimmer Switch» он в основном клиент (посылает команды) а лампочка — сервер (выполняет команды). Заметим так же что у того же устройства «Dimmer Switch» есть и серверная сторона отвечающая видимо за настройку идентификации в этом самом выключателе. Почти все стандартные устройства имеют что-то на обоих частях и на серверной и на клиентской. Так же заметим из примера выше, что кластеры могут иметь как серверный так и клиентский функционал.

Все это разграничение и стандартизация по идее должны здорово помогать в разработке программного обеспечения.

Пример:
Завод изготовитель Zingbao ltd выпускает для Philips ltd систему состоящую из лампочки, датчика движения и интернет портала для них. Эта система конечно же работает и сертифицирована как Zigbee (HA). Это кстати значит что лампочка в системе умеет делать то что должно делать устройство Colour Dimmable Light (HA), а именно принимать команды цвета и свето-силы, датчик должен уметь делать то что положено Occupancy Sensor (HA) и т.д. Поэтому все части системы содержат код данного профиля Согласно своей функции. Далее лампочки с датчиками и выходом в интернет от Philips поставляются в офис крупной интернет компании Booble. Заметив это, предприимчивые китайские хакеры пишут свой Zigbee профиль «I want to know your secrets» (IWNYS) и договариваются с Zigbao ltd или ее сотрудником на внеочередной апдейт системы. После апдейта датчики движения кроме индикации движения начинают передавать еще и разговоры (благо датчик основан на микрофоне, а в прошивку добавлено новое устройство «Spy senor» опирающееся на хакерские кластеры «Big boss detector», «Speech transmitter», «Secret encoder» и конечно зарегистрированное как дополнительный endpoint в датчике движения) из офиса начальника Booble через профиль (IWNYS) без какой либо связи с (HA). Вот так например стандартный (HA) может отлично уживаться с фирменным профилем (IWNYS). Ну и для полноты примера, система отлично работает с лампочками от Osram так же сертифицированными как (HA) и установленными в Booble.

Ну вот вроде и все на сегодня. Напоминаю что в следующей части мы пройдемся по технической части протокола — по строению фрэйма и по настройкам и осуществлению безопасности. Если кому будет скучно эту часть можно пока пропустить. В последующих частях мы перейдем непосредственно к запуску Zigbee на модулях ATmega и разбору Atmel bitcloud SDK — пакету для работы с Zigbee и модулями ATmega.

Источник

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

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