Что позволяет делать технология Z-Wave?
- Управление освещением (реле/диммеры), шторами, рольставнями и воротами
- Управление жалюзи и другими моторами (10-230 В)
- Включение/выключение любых нагрузок до 3.5 кВт (модуль в розетку или встраиваемое реле)
- Дистанционное управление с ПДУ
- Управление обогревом (электрические тёплые полы с защитой от перегрева, электро котлы и радиаторы, термостаты для водяных клапанов радиаторов)
- Управление кондиционерами (через ИК интерфейс имитируя пульт)
- Детектирование тревожных событий (датчики движения, открытия двери/окна, протечки, сухие контакты)
- Мониторинг состояния (датчики температуры, влажности, освещённости)
- Управление A/V аппаратурой (по протоколу Z-Wave или через ИК интерфейс имитируя пульт)
- Связь с любым программным обеспечением через ПК контроллер
- Сбор данных со счётчиков
Какие задачи лучше всего решает Z-Wave?
Протокол Z-Wave был разработан для квартир и небольших домов. Обычно такие системы содержать от 5 до 100 устройств. Основная особенность Z-Wave состоит в том, что он относится к формату "сделай сам" (DIY), т.е. установку и настройку системы владелец жилья может сделать самостоятельно. Протокол разрабатывался специально для управления такими устройствами как свет, жалюзи, ворота, термостаты и другими путём передачи коротких команд, требующих небольшого энергопотребления. Типичные небольшие задачи, решаемые при помощи Z-Wave — это установка проходных выключателей, перенос выключателей на более удобный уровень, дистанционное управление воротами и жалюзи, включение света по датчикам движения. Все эти задачи не требуют перекладывания проводов. Существуют и более сложные проекты автоматизации квартир, не уступающие по сложности промышленным системам автоматизации.
Протокол передачи данных
Пройдёмся по всем уровням модели OSI (кроме отсутствующего представительного) и опишем основные характеристики Z-Wave.
Физический уровень
Передача данных осуществляется на частоте 869.0 МГц (Россия), 868.42 МГц (Европа, страны CEPT, Китай, Сингапур, ОАЭ, ЮАР), 908.42 МГц (США, Мексика), 921.42 МГц (Австралия, Бразилия, Новая Зеландия), 919.8 МГц (Гонконг), 865.2 МГц (Индия), 868.2 МГц (Малайзия), Япония (951-956 и 922-926 МГц). Модуляция FSK (частотная манипуляция). Скорость передачи: 42 кбит/с, 100 кбит/с и 9.6 кбит/с (для совместимостью со старыми устройствами). Скважность не более 1%. Предельная мощность передачи 1 мВт.
Канальный уровень
Используются пакеты с контролем целостности данных (контрольная сумма) и адресацией получателя и отправителя. В качестве получателя может использоваться multicast адрес или broadcast (в этом случае пакет принимается всеми участниками сети с включенным радио-модулем).
Сетевой уровень
Протокол Z-Wave определяет алгоритм маршрутизации, позволяющий передавать данные между устройствами вне прямой видимости. Все постоянно работающие узлы сети (бывают ещё спящие и "часто слушающие" узлы) могу участвовать в пересылке пакетов между другими участниками сети. Z-Wave использует механизм Source Routing, т.е. маршрут следования определяется отправителем. Broadcast и multicast пакеты не маршрутизируются. При невозможности найти нужный узел по маршрутам, записанным в памяти, существует механизм поиска узла по всей сети путём посылки специального пакета Explorer Frame (см. ниже) всем узлам сети. После успешного нахождения узла новый маршрут записывается отправителем в память для последующего использования.
Транспортный уровень
На данном уровне Z-Wave гарантирует подтверждение доставки и повторную отправку в случае, если пакет не был доставлен до получателя. Каждый узел, участвующий в пересылке, подтверждает факт получения сообщения. Для уменьшения загрузки эфира в Z-Wave используется механизм "молчаливых подтверждений": узел (А), передавший пакет следующему узлу (Б) на пути следования пакета не ждёт подтверждения от него, а видит, что Б отправил пакет дальше узлу С и воспринимает это как факт подтверждения успешной пересылки пакета от А к Б. Получив пакет, конечный узел передаёт назад подтверждения доставки, которое путешествует назад тем же маршрутом до исходного отправителя. Таким образом отправитель всегда знает, дошёл ли пакет до точки назначения или нет.
Сеансовый уровень
Используется только при использовании шифрования, где определяются короткие сеансы с одноразовым ключом.
Прикладной уровень
Z-Wave также определяет алгоритм интерпретации получаемых на прикладном уровне команд. Данный уровень описан набором Классов Команд (Command Classes). Для некоторых Классов существует несколько вариантов интерпретации команд, которые зависят от Класса Устройства (Device Class), определяющего тип устройства.
С 2012 года физический и канальный уровни протокола Z-Wave вошли в стандарт ITU-T G.9959 (рекомендации сектора стандартизации электросвязи Международного союза электросвязи).
Уровни от транспортного до канального реализованы в программном коде Sigma Designs и поставляются в прекомпилированном виде (в комплекте SDK). С одной стороны проприетарный код — это минус, но в закрытости данного протокола есть и свои плюсы: ни один производитель не может изменить нижние уровни протокола, что позволяет легче обеспечивать совместимость — все устройства основаны на одном хорошо отлаженном коде.
Все команды в Z-Wave предельно компактно упакованы. Это нужно для уменьшения размера пакета, что положительно влияет на занимаемое в эфире время, а также на уменьшение потерь при передаче. Z-Wave предназначен для передачи коротких команд без открытия сессии, т.е. совсем не подходит для потоковой передачи потоковых данных. Максимальный полезный размер передаваемых данных составляет 46 байт (размер данных прикладного уровня без шифрования).
Решение на одном чипе
Теоретически реализовать протокол Z-Wave можно было бы на любом железе, но и здесь производитель протокола Sigma Designs (ранее Zensys, вошедшая в структуру Sigma Designs) предлагают собственное решение.
Все устройства Z-Wave основаны на чипах одной серии от двух производителей (Sigma Designs и Mitsumi). Данные микросхемы доступны в двух вариантах: собственно чип и модуль, содержащий минимальный необходимый набор компонентов для роботы радио-модуля. Для многих устройств ещё может понадобиться дополнительно микросхема энергонезависимой памяти EEPROM, однако она не является обязательным компонентом. Чипы семейства Z-Wave — это ZW0201, более новый и 100% совместимый с предыдущим ZW0301, SD3402. На их базе сделаны модули ZM2102, ZM3102, ZM4101 и ZM4102. Все упомянутые чипы основаны на ядре Inventra, совместимом с Intel 8051.
Чипы ZW0201 и ZW0301 имеют 2 Кб ОЗУ, 32 Кб ПЗУ, встроенные аппаратные SPI, UART, TRIAC, WUT, GPT, WatchDog, четыре 12-битных АЦП, ШИМ (PWM), 2 входа прерываний, а также Digital I/O ноги.
Четвёртое поколение чипов SD3402 имеет 16 Кб ОЗУ, 64 Кб ПЗУ, 64 байта NVRAM, встроенные аппаратные SPI, UART, TRIAC, WUT, GPT, WatchDog, USB, IR-контроллер с обучающей функцией, аппаратный шифровальный модуль AES 128 бит, сканер 128 кнопок.
Sigma Designs анонсировала выход следующего 5 поколения чипов на первый квартал 2013 года.
Стоит отметить, что каждое следующее поколение чипов отличается не только увеличенным набором встроенных аппаратных средств, но и меньшим энергопотреблением. Например, самый популярный модуль ZM3102 потребляет 36 мА в режиме отправки данных, 23 мА в режиме приёма и всего 2.5 мкА в режиме сна.
Более подробную информацию о чипах и модулях можно получить на сайте Sigma Designs.
Большинство устройств Z-Wave не содержат больше никаких микроконтроллеров, кроме модуля Z-Wave от Sigma Desgins и EEPROM (опционально). Это существенно упрощает разработку новых устройств и уменьшает их себестоимость.
Типы узлов
Выше мы уже упоминали о наличии маршрутизации в протоколе. Здесь стоит отвлечься и рассказать о разных типах узлов в Z-Wave.
Портативный контроллер (Portable Controller)
Устройство, хранящее информацию о соседях всех узлов сети (топологию сети) и способное на базе этой информации найти маршрут к любому узлу сети. Кроме того данное устройство может перемещаться в сети и способно достучаться до всех узлов сети из любой точки сети (конечно при условии, что сеть односвязна). К устройствам данного типа нельзя обратится, т.к. они не фигурируют в таблице маршрутизации (будучи портативными) — им можно только отвечать на их запрос. Возможное применение: пульт дистанционного управления. Такому прибору требуется энергонезависимая память EEPROM.
Статический контроллер (Static Controller)
Аналогичен портативному, но он не должен перемещаться в пространстве и призван быть всегда доступным другим участникам сети. Типичное применение: контроллер ПК, исполнитель. Такому прибору требуется энергонезависимая память EEPROM.
Дочернее устройство (Slave)
Устройство, способное только ответить на пришедший к нему запрос, т.к. не знает топологии сети и не хранит никаких маршрутов. Такие устройства могут быть только датчиками, питающимися от сети и опрашиваемыми другими узлами, или исполнителями. Они не умеют инициировать отправку данных самостоятельно (отправлять непрошенные пакеты — unsolicited packets). Таких устройств уже не производят, но на рынке они ещё остались.
Дочернее маршрутизирующее устройство (Routing Slave)
Устройство, способное хранить до 4 маршрутов для 5 узлов (так называемые "обратные маршруты"). Эти устройства могут инициировать отправку данных (отправлять непрошенные пакеты — unsolicited packets), а также могут быть спящими или "часто слушающими". Типичное применение: датчики, исполнители, неподвижные пульты управления (датчик движения, кнопка включения на батарейках).