Умный дом с помощью беспроводных сетей ZigBee

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

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

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

В настоящее время технология ZigBee широко применяться на практике для создания беспроводных датчиков, устройств учета ресурсов, систем управления и систем автоматизации здания. Сеть ZigBee обеспечивают гарантированную доставку пакетов и защиту передаваемой информации, но имеет небольшую скорость передачи информации. Скорость передачи данных вместе со служебной информацией в эфире составляет 250 кбит/c. Средняя пропускная способность узла для полезных данных в зависимости от загруженности сети и количества ретрансляций может лежать в пределах от 5 до 40 кбит/с.

Стандарт ZigBee занимает частотные диапазоны 868 МГц, 915 МГц и 2,4 ГГц. Наибольшие скорости передачи информации и хорошая помехоустойчивость достигаются в диапазоне 2,4 ГГц. Поэтому большинство производителей выпускают трансиверы ZigBee для этого диапазона. В частотном диапазоне 2,4 ГГц предусмотрено 16 каналов с шагом 5 МГц. Расстояния между узлами сети может составлять от десятков до сотен метров, в зависимости от радиочастотной обстановки в данной местности, наличия прямой видимости между устройствами и толщине перекрытий здания. За счет ретрансляции зона покрытия сети может значительно увеличиваться.

Ряд компаний выпускает законченные модули ZigBee. Которые представляют собой небольшие платы с установленным чипом трансивера, управляющим микроконтроллером и необходимыми дискретными элементами. В управляющий микроконтроллер прошивается либо полный стек протоколов ZigBee, либо иная программа, реализующая возможность простой связи между однотипными модулями. В последнем случае модули именуются ZigBee-готовыми (ZigBee-ready) или ZigBee-совместимыми (ZigBee compliant). Все модули очень просты в применении, содержат широко распространенные интерфейсы (UART, SPI, GPIO и ADC/DAC) и управляются с помощью набора несложных команд. Используя такие модули, разработчик избавлен от работы с высокочастотными компонентами, так как на плате присутствует ВЧ трансивер, вся необходимая «обвязка» и антенна. Модули ZigBee содержат цифровые и аналоговые входы, интерфейс RS-232 и, в некоторых случаях, свободную память для прикладного программного обеспечения.

Топология беспроводных сетей ZigBee

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

В сети ZigBee существует 3 типа узлов: координатор,  маршрутизатор, спящий и мобильный узел (конечные устройства).

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

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

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

В октябре 2007 года альянсом была принята спецификация ZigBee Pro Feature Set. В отличии от предшествующих версий спецификаций она обладает следующими преимуществами:

  1. Позволяет создавать сети с количеством узлов до нескольких тысяч. Это достигается благодаря стохастической(случайной) адресации, новым механизмам маршрутизации Many- to- One и Source Routing, а также возможности выявления асимметричных связей в сети.
  2. Для обеспечения совместимости устройств различных производителей в спецификации ZigBee PRO разработаны стандартные профили приложений и библиотека стандартных кластеров.
  3. Введен целый ряд новых механизмов, позволяющих сделать сеть ZigBee более защищенной и надежной.
  4. Значительно увеличен срок службы батарей конечных дочерних устройств за счет использования механизма, который позволяет родительским узлам представлять в сети дочерние устройства во время их сна.
  5. Предусмотрено автоматическое изменение частотного канала сети в случае возникновения помех.

Стек протоколов ZigBee

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

В качестве двух нижних уровней используется стандарт IEEE 802.15.4. MAC-уровень в сети ZigBee реализует механизм CSMA (прослушивания несущей и устранения коллизий), сетевой уровень NWK отвечает за маршрутизацию сообщений, а уровень поддержки приложений APS обеспечивает интерфейс с уровнем приложения.

Сектор ZDO (ZigBee Device Object), связывающий три верхних уровня, отвечает за определение роли устройства в сети (будет оно являться координатором или конечным устройством), инициализацию и реакцию на запросы соединения и обнаружения, за установление надежного и безопасного соединения между устройствами сети. Сектор SSP (Security Service Provider) осуществляет операции, связанные с обеспечением безопасности на сетевом уровне и на уровне поддержки приложения.

Совместимость устройств

Одна из основных идей разработки стандарта ZigBee состояла в том, чтобы обеспечить возможность совместной работы в одной беспроводной сети устройств различных производителей. Очевидно, что для обеспечения совместимости на уровне приложения устройствам ZigBee требуется некий стандартный язык общения. Для реализации этой задачи была разработана библиотека ZigBee-кластеров ZCL (ZigBee Cluster Library).

Кластер ZigBee похож на класс в объектно-ориентированном программировании и представляет собой совокупность:

  1. описания стандартного устройства ZigBee (осветительное устройство, диммер, выключатель, счетчик)
  2. описания стандартных атрибутов для этого устройства (включен/выключен, яркость, показания счетчика)
  3. описания стандартных команд для этого устройства (установить уровень яркости, считать показания, включить/выключить)

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

Библиотека ZCL группирует кластеры по функциональному признаку: общего назначения, для работы с датчиками, управления освещением, вентиляцией и т. п. Использование стандартных кластеров для пересылки сообщений является обязательным требованием новой спецификации ZigBee PRO Feature Set.

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

В настоящее время альянсом ZigBee опубликованы два стандартных профиля приложения Home Automation и Smart Energy.

Профиль Home Automation дает возможность производителям беспроводных систем домашней автоматизации во всем мире разрабатывать совместимые устройства класса Умный дом. Он регламентирует работу устройств автоматизации здания: управления осветительным оборудованием, управления энергопотреблением, системами кондиционирования, отопления, вентиляции и т. п.

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

Сети с большим количеством узлов

Для создания больших сетей новая спецификация ZigBee Pro Feature Set ввела новые механизмы маршрутизации сообщений Many-to-One и Source Routing, стохастическую адресацию узлов и механизм выявления ненадежных асимметричных связей в сети.

Механизм маршрутизации Source Routing предполагает, что маршруты в сети хранятся на узлах-источниках. Поскольку в сети ZigBee все сообщения обязательно сопровождаются ответным пакетом подтверждения доставки, то даже для односторонней передачи данных необходимо, чтобы в момент обмена данными оба узла (как источник, так и приемник) имели информацию о маршруте, связывающем их. Поэтому передача сообщения состоит из двух этапов. Сначала узел-источник посылает узлу-приемнику информацию о маршруте (пакет Route Record) и не ждет подтверждения о приеме, а затем уже посылает собственно пакет данных. Если узел-источник не получает подтверждения доставки пакета данных, то считает, что маршрут нарушен и начинает процесс поиска нового маршрута. Узел-приемник, в зависимости от соотношения количества своих источников и объема свободной оперативной памяти, может постоянно хранить в памяти информацию обо всех своих источниках (тогда источники могут не посылать служебный пакет с информацией о маршруте) или помнить только ограниченное количество маршрутов в течение заданного времени после обмена данными.

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

Механизм Source-Routing позволяет быстро найти новый маршрут или восстановить утерянный, но при этом его недостатком для централизованных систем является чрезмерная загрузка сети. Как известно, процесс поиска маршрута состоит в том, что узел-источник генерирует широковещательное сообщение о поиске маршрута к узлу-приемнику. Это широковещательное сообщение многократно повторяется другими узлами, пока не достигнет узла-приемника всеми возможными путями. При использовании механизма Source-Routing каждый удаленный узел при поиске маршрута генерирует широковещательные запросы к центральному узлу.

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

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

Спецификация ZigBee Pro Feature Set вводит механизм стохастической (случайной) адресации, при которой для каждого вновь присоединяемого узла адрес генерируется случайным образом и при этом автоматически проверяется, что в сети больше таких адресов не существует.

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

Такой асимметричный маршрут на деле не может быть использован, так как он не дает возможности передать пакет подтверждения доставки и в результате передача сообщения считается неуспешной. Новая спецификация ZigBee Pro Feature Set предписывает при поиске маршрута отбрасывать асимметричные пути и отдавать предпочтение маршрутам, у которых в обоих направлениях имеется приемлемое качество связи.

Новые механизмы защиты данных и смена частотного канала

Спецификация ZigBee Pro Feature Set ввела целый ряд новых механизмов, позволяющих сделать сеть ZigBee более защищенной и более надежной.

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

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

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