Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
vvodnaja_po_texnologii_z-wave [2014/10/03 11:28]
ansealk
vvodnaja_po_texnologii_z-wave [2014/10/03 11:28] (текущий)
Строка 1: Строка 1:
 +====== Вводная по технологии Z-Wave ======
  
 +===== Что такое Z-Wave? =====
 +
 +**Z-Wave** — это распространённый радио протокол передачи данных,​ предназначенный для домашней автоматизации. Характерной особенностью Z-Wave является стандартизация от физического уровня,​ до уровня приложения. Т.е. протокол покрывает все уровни OSI-классификации,​ что позволяет обеспечивать совместимость устройств разных производителей при создании гетерогенных сетей.
 +
 +Что позволяет делать технология 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 мкА в режиме сна.
 +
 +Более подробную информацию о чипах и модулях можно получить на сайте [[http://​z-wave.sigmadesigns.com/​|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), а также могут быть спящими или «часто слушающими». Типичное применение:​ датчики,​ исполнители,​ неподвижные пульты управления (датчик движения,​ кнопка включения на батарейках).
 +
 +==== Продвинутое дочернее маршрутизирующее устройство (Routing Enhanced Slave) ====
 +
 +Как и дочернее маршрутизирующее устройство,​ но хранящее маршруты ко всем узлам сети, а не только к 5. Такому прибору требуется энергонезависимая память EEPROM.
 +
 +Как мы видим, большинство узлов знает маршруты до некоторых узлов через своих соседей. Полные списки соседей всех узлов хранятся на контроллерах,​ которые полагаются на их достоверность при формировании маршрутов. Это означает,​ что все **устройства (кроме портативных контроллеров) не следует перемещать в пространстве**. Однако,​ с появлением функции Explorer Frame (см. ниже) это условие стало менее жёстким. После перемещения устройств сети нерабочие маршруты автоматически исправляются при первой необходимости.
 +
 +Контроллеры (как статические,​ так и портативные) могут иметь разные роли в сети:
 +  * **Первичный контроллер** — координатор сети. Это единственный узел, способный включать в сеть новые узлы и исключать существующие. Он же хранит самую свежую информацию о топологии сети и может обновлять списки соседей для всех остальных (вторичных) контроллеров и формировать маршруты во всех дочерних узлах. Первичный контроллер может быть только один в сети. Обычно первичным является тот контроллер*,​ с которого началось построение сети. Однако в дальнейшем первичный контроллер может включить в сеть новый контроллер,​ передав ему свою роль.
 +  * **Вторичными контроллерами** называются все остальные контроллеры в сети. Для нормально работы им следует периодически запрашивать информацию о топологии сети (соседях каждого узла) у первичного контроллера.
 +
 +==== Построение сети и сосуществование нескольких сетей ====
 +
 +Сеть Z-Wave определяется уникальным параметром Home ID (генерируется при создании сети генератором случайных чисел с шумом от радиоприёмника в качестве источника случайных числе или назначается Sigma Designs для старых контроллеров). На одной территории может сосуществовать несколько сетей Z-Wave с разными Home ID. При этом они не будут друг друга видеть и друг с другом взаимодействовать. Благодаря обязательному требованию скважности (не более 1% времени находится в состоянии передачи),​ эти сети не будут друг другу мешать.
 +
 +У каждого узла в сети есть свой уникальный Node ID, который присваивается первичным контроллером при включении устройства в сеть. Также при включении в сеть включаемое устройство запоминает Home ID первичного контроллера для дальнейшего общения. Сеть может содержать до 232 устройств.
 +
 +Включение происходит переводом контроллера в специальный режим Включения (Inclusion mode; обычно какой-то специальной кнопкой или комбинацией клавиш),​ а включаемого устройства в режим Обучения (Learn mode; обычно одинарным или тройным нажатием на кнопку). При этом контроллер и включаемое устройство должны находиться в прямой видимости. Многие современные (версии протокола 4.5x или 6.x) постоянно питающиеся (не спящие) устройства первые 3-5 минут после включения в сеть электропитания самостоятельно переходят в специальный режим обучения (Network Wide Inclusion, NWI), если они ещё не включены в сеть. При этом условие нахождения в прямой видимости уже не требуется. Это позволяет достаточно легко включать в сеть новые устройства,​ не бегая по дому.
 +
 +Исключение из сети происходит аналогично:​ контроллер переводится в режим Исключения (Exclusion mode), а дочерний узел в режим Обучения. После исключения Node ID и Home ID устройства сбросятся на 0 (для контроллеров NodeID сбросится на 1, а HomeID на заводское значение). Большинство устройств при исключении сбросит и все остальные пользовательские настройки на заводские значения.
 +
 +Стоит отметить,​ что устройство уже прописанное в одной сети не включится в другую сеть. Но исключить из сети может любой первичный контроллер (даже устройство не из своей сети).
 +
 +Контроллеры и дочерние устройства включаются в сеть и исключаются из неё одинаковым образом.
 +
 +При включение в сеть первичный контроллер получает информацию о типе включённого узла и его NIF (см. далее).
 +
 +===== Работа от батареек =====
 +
 +Большой плюс протокола Z-Wave — это возможность для устройств работать на батарейках. Существует два типа устройств,​ работающих от батареек:​
 +
 +  * **Спящие**. Такие устройства не будут участвовать в маршрутизации сети как ретранслятор,​ но сами могут использовать другие узлы для передачи своих пакетов. Оповещение о пробуждении,​ периоды просыпания и уход в сон регулируются Классом Команд Wakeup, т.е. на уровне приложения. Проснувшись,​ эти устройства сообщают,​ о своём пробуждении,​ ждут команд от других устройств сети, после чего засыпают назад. Чем раньше устройство уснёт, тем меньше будет израсходовано заряда батареек. При правильном управлении такими устройствами,​ они могут прожить на одном комплекте батареек год и более. Портативные контроллеры тоже являются спящими устройствами.
 +  * **Часто слушающие (FLiRS = Frequently Listening Routing Slave)* — это устройства просыпающиеся раз в 0.25 или 1 секунду на короткое время (несколько миллисекунд) для того, чтобы проверить,​ нет ли в эфире специального пакета «проснись» (wake up beam). Такой пакет им посылают другие устройства перед тем, как начать общение с ними. Данный пакет длится 0.25 или 1 секунду соответственно,​ занимает эфир на всё это время, и позволяет часто спящему устройству,​ ненадолго проснувшись,​ увидеть,​ что для него есть пакет. Увидев пакет «проснись»,​ оно полноценно просыпается,​ принимает предназначенные для него данные,​ обрабатывает их, возможно,​ посылает ответ, после чего засыпает назад. Такой механизм позволяет создавать устройства,​ доступ к которым должен всегда,​ но возможности провести сеть электропитания к месту их установки нет возможности. Типичный пример таких устройств:​ дверные замки, сирены.
 +
 +===== Commad Classes (Классы Команд) =====
 +
 +Все данные уровня приложения передаются в виде коротких пакетов следующего вида:
 +  - Command Class ID
 +  - Command ID
 +  - специфические данные для команды
 +
 +Сначала идёт класс команды,​ потом команда в этом классе,​ далее данные специфичные для этой команды. Благодаря строгому стандарту,​ описывающему Классы Команд,​ устройства разных производителей могут понимать друг друга без каких-либо проблем.
 +
 +Приведём пример популярных классов и опишем из назначение.
 +
 +**Basic** — самый популярный класс, позволяющий устройствам разного типа быть совместимыми на минимальном уровне. Например,​ выключатель умеет посылать команды Включить/​Выключить,​ которые диммер и реле будут интерпретировать как включение/​выключение света, термостат как переход между режимами нормальный/​энергосберегающий,​ а устройство управления жалюзи как ход/​остановка движения ставней.
 +  * Switch Binary / Switch Multilevel — используются для управления освещением (реле/​диммер),​ а также для управления моторами (для ставней или ворот).
 +  * Sensor Binary / Sensor Multilevel — для бинарного датчика (открытия двери, протечки,​ дыма, движения) и многопозиционного датчика (температуры,​ освещённости,​ влажности).
 +  * Meter — используется для снятия показаний и сброса накопленных значений счётчиков.
 +  * Association — позволяет устанавливать связи между устройствами. Например,​ на устройстве есть 3 кнопки. Для них есть 3 соответствующие кнопкам группы ассоциаций. При нажатии на кнопку посылаются команды Basic Set Включить соответствующей группе. Класс Association используется для ведения списка узлов в этой группе. Такой подход позволяет просто и эффективно настраивать прямые взаимосвязи между устройствами сети.
 +  * Configuration — позволяет менять некоторые заложенные производителем параметры устройств. Например,​ скорость диммирования света или чувствительность датчика движения.
 +  * Battery — позволяет запрашивать заряд батареек устройств.
 +  * Wakeup — для управление параметрами просыпания спящих устройств.
 +  * MultiChannel — используется для адресации к конкретной компоненте сложного устройства,​ состоящего из нескольких элементов. Обычные Классы Команд (Basic, Switch/​Sensor Binary/​Multilevel,​ Meter) инкапсулируются в команду данного класса с указанием номера элемента. Например,​ устройство может содержать два реле или три датчика (температуры,​ влажности и движения).
 +
 +Список поддерживаемых устройством Классов Команд содержится в пакете NIF (Node Information Frame — пакет описания устройства). Благодаря ему можно определить Класс Устройства (Device Class, см. ниже) и список возможностей устройства. Этот пакет приходи первичному контроллеру при включении устройства в сеть, а также при нажатии один или три раза на кнопку (у большинства устройств,​ см. документацию к конкретному устройству).
 +
 +===== Device Classes =====
 +
 +Каждое устройство характеризуется своим функциональным типом (Классом Устройства,​ Device Class). Каждый класс определяет обязательные Классы Команд,​ поддерживаемые устройством,​ и способы интерпретации их команд. Например,​ команды класса команд Basic могут совершенно по-разному интерпретироваться для различных классов устройств:​ для двухпозиционного реле Basic Set 0 выключает,​ 1-99 или 255 включают,​ в то время как для термостата могут интерпретироваться как температура в единицах или 1/10 градусов Цельсия,​ т.е. от 0 до 255 или от 0 до 25.5 градусов,​ соответственно. Все остальные Классы Команд чётко прописаны вплоть интерпретации каждой команды.
 +
 +===== Надёжность =====
 +
 +Z-Wave — это ячеистая сеть (mesh network), где каждый узел знает окружающие его узлы и может направлять через них пакеты. Использование маршрутизации позволяет успешно преодолевать препятствия между узлами,​ не позволяющие им общаться напрямую. Однако перестановки мебели и другие изменения в обстановке,​ а также выход из строя одного узла могут привести к появлению нерабочих маршрутов. Для этого их нужно периодически обновлять. Первичный контроллер может это делать профилактически раз в неделю или по запросу пользователя.
 +
 +Но в протоколе Z-Wave есть и другое средство для замены нерабочих маршрутов рабочими,​ появившееся в версии протокола 4.5. Если узел не смог достучаться до точки назначения,​ он посылает всем соседям специальный пакет Explore Frame. Те в свою очередь распространяют его дальше по сети, пока какой-нибудь узел не скажет,​ что искомый узел нашёлся у него в прямой видимости. Таким образом отправитель найдёт новый маршрут и запомнит его в своих таблицах. Данный метод менее экономный,​ чем централизованное обновление маршрутов всей сети: для обхода умершего узла требуется,​ чтобы каждый узел обновил каждый маршрут,​ идущий через нерабочий,​ путём посылки Explorer Frame. Кроме того, использование Explorer Frame занимает около 0.5-1 секунды,​ и на это время сеть забивается этими пакетами.
 +
 +На пути следования может содержаться до 4 узлов передатчиков. Учитывая предельные расстояния между устройствами 10-30 метров в прямой видимости (зависит от антенн),​ можно сказать,​ что предельная дальность доставки пакета — 40-120 метров. Естественно при прохождении перекрытий и стен мощность сигнала существенно падает,​ что приводит и к уменьшению дальности передачи. На практике 4 этажный дом с общей площадью в 500 квадратных метров — это предел одной сети протокола Z-Wave с качественной передачей данных.
 +
 +//​Вывод простой://​ обновляйте маршруты после изменения топологии сети и перестановок мебели или используйте только устройства,​ основанные на версиях протокола 4.5x и 6.x.
 +
 +===== Связь с ПК =====
 +
 +Естественно при создании хоть сколько-нибудь достойной автоматизации встаёт вопрос о связи с ПО, работающем на ПК. Существует несколько программных комплексов для этой цели:
 +
 +  * [[http://​en.z-wave.me/​content/​what-z-way|Z-Wave.Me Z-Way]] (универсальное ПО для Unix/​Linux/​Mac OS X/Windows с движком автоматизации и простым GUI, поставляется только B2B)
 +  * [[http://​micasaverde.com/​|Mi Casa Verde Vera]] (с движком автоматизации и простым GUI, работает на роутерах под клоном OpenWRT, продаётся в виде коробки-роутера)
 +  * [[http://​www.fibaro.com/​the-fibaro-system/​home-center-2|Fibaro Home Center (с движком автоматизации и простым GUI, работает собственном железе от Fibaro, продаётся в виде коробки)
 +  * [[Z-Wave.Me Z-Way]].C (библиотека C для работы со стеком Z-Wave под Unix/​Linux/​Mac OS X/Windows, есть недорогое расширение для Raspberry Pi)
 +  * [[http://​code.google.com/​p/​open-zwave/​|OpenZWave]] (библиотека C++ для работы с Z-Wave под Unix/​Linux/​Mac OS X/​(возможно)Windows,​ Open Source)
 +  * [[http://​homeseer.com/​|HomeSeer]] (под Windows, платный)
 +  * [[http://​z-command.com/​|Z-Command]] (под Windows, платный)
 +  * [[http://​www.linuxmce.com/​|LinuxMCE]] (ОС на базе Linux для медиа-центров)
 +
 +Кроме того, есть облачный сервис:​
 +  * Z-Wave.Me Z-Cloud (для Unix/​Linux/​Mac OS X/Windows, бесплатный)
 +
 +===== Создание новых устройств =====
 +
 +Sigma Designs продаёт не только чипы, но и DevKit — набор плат для прототипирования новых устройств. Считающие себя крутыми могут сразу делать прототипы на голых модулях ZM3102. Кроме того, для создания устройств Z-Wave вам понадобится SDK (Software Development Kit) от той же Sigma Desgins, которая имплементирует протокол Z-Wave вплоть до транспортного уровня включительно. Это сильно упрощает работу разработчиков,​ которым лишь нужно освоить этот API (с документацией на 500 страницах) и написать весь «пользовательский» код, реализующий прикладной уровень и поведение самого устройства (кнопки,​ экранчик,​ светодиоды и т.д.). Стоимость DevKit с SDK составляет $3000.
 +
 +В добавок к этом понадобится компилятор C51 от компании Keil (ныне принадлежит ARM). Ещё где-то $3000. И много-много терпения и навыков характерных для разработки emdedded устройств.
 +
 +===== Безопасность =====
 +
 +Естественно,​ будучи радио протоколом,​ Z-Wave достаточно легко прослушивается (ну, мы-то знаем, что на всю страну осталось совсем мало способных радиолюбителей :) Взломать можно любую систему — вопрос денег и времени. Став разработчиком железа,​ купив SDK и обретя много знаний можно сделать и не такое! Но учитывая,​ что это система домашней автоматизации света и климата,​ не думаю, что кому-то придёт в голову потратить пару сотен тысяч рублей на взлом вашей автоматизации. Лом стóит сильно дешевле!
 +
 +Но и здесь есть ответ параноикам:​ в Z-Wave есть полноценное шифрование AES с длиной ключа 128 бит. Естественно,​ шифрование накладывает свои ограничения:​ оно работает медленнее,​ т.к. уже не достаточно просто отправить пакет — надо до этого обменяться одноразовыми ключами (nonce). Потому шифрование реализовано пока только в оконных системах,​ дверных замках и ПК контроллерах.
 +
 +===== А как же другие технологии?​ =====
 +
 +Говорить здесь о проводных технологиях — смысла нет. У них совсем разные характеристики и применение. В готовых объектах,​ созданных без закладки проводов во все важные места квартиры,​ можно использовать только радио технологии автоматизации.
 +
 +Кто же ещё есть в беспроводном мире?
 +  * 433 МГц — дешёвая и широко распространённая технология.
 +    * Плюсы — дёшево и сердито,​ большая дальность (частота ниже), малая цена
 +    * Минусы — полная несовместимость устройств разных производителей (т.е. завязка на одном),​ нестыкуемость комплектов (полное отсутствие масштабируемости),​ обычно без маршрутизации,​ отсутствие правил со стороны регулятора по скважности сигнала,​ невозможность построения нескольких сетей рядом, полоса частот замусорена множеством устройств от бытовых до радиоуправляемых машинок.
 +  * EnOcean — похожий на Z-Wave стандарт автоматизации домов и зданий (868.3 МГц)
 +    * Плюсы — как и в Z-Wave есть стандартизация до прикладного уровня,​ возможность делать устройства без батареек на солнечных батареях и пьезо/​индукционных элементах
 +    * Минусы — нет подтверждения доставки пакета (особенно для устройств на пьезоэлементах,​ где энергии едва хватает на отправку,​ их ещё сложнее настраивать,​ т.к. долго они не могут принимать данные;​ в новых версиях протокола добавили обратную связь),​ частота не разрешена на территории РФ (разрешен к ввозу и использованию ограниченный список устройств нескольких компаний)
 +  * ZigBee — очень популярный промышленный протокол. Используется в некоторых странах как стандарт для сбора данных с счётчиков и доставки до концентратора
 +    * Плюсы — хорошо развит,​ имеет динамическую маршрутизацию (самоорганизующаяся сеть, где каждый узел хранит лишь таблицу с со списком кластеров и ближайшего соседа,​ который может доставить туда пакет — почти как в IP сетях),​ принят на вооружения многими телекомами и управляющими компаниями.
 +    * Минусы — использует более загруженную полосу 2.4 ГГц (есть полоса 868 МГц, но она реже используется),​ стандартизирован лишь до транспортного уровня,​ что делает устройства разных производителей несовместимыми на прикладном уровне.
 +  * ONE-NET, Bluetooth 3, Wifi,… на рынке нет готовых решений на базе этих протоколов. Думаю, в ближайшие годы они появятся.
 +
 +===== Организационно-правовые аспекты =====
 +
 +Сам протокол Z-Wave, а также патенты на используемые в протоколе решения,​ является собственностью компании Sigma Designs. Функции координации производителей,​ развития протокола и проведение рекламных и обучающих мероприятий возложены на [[http://​www.z-wavealliance.org/​|Z-Wave Aliance]] — консорциум производителей оборудования Z-Wave. Контроль совместимости возложен на сертификационные конторы (в США BuLogics и в Германии PepperoOne),​ которые сертифицируют все выходящие на рынок устройства,​ гарантируя полную совместимость между устройствами разных производителей. Только пройдя такую сертификацию можно нарисовать на своём устройстве логотип Speaks Z-Wave и продавать его как устройство,​ работающее на протоколе Z-Wave.
 +
 +Компания Sigma Designs и Z-Wave Aliance постоянно проводят семинары для технических специалистов разного уровня,​ помогая быстрее выйти на рынок с качественными устройствами.
 +
 +До недавнего времени Z-Wave не развивался в России из-за отсутствия разрешённой частоты. Европейская частота 868.42 МГц не была разрешена ГКРЧ, хотя правительство РФ и присоединилось к некоторым рекомендациям CEPT, применяемым к устройствам малого радиуса действия. С февраля 2012 года Sigma Designs выделила отдельную частоту 869.0 МГц для России. Данная частота попадает под решение ГКРЧ № 07-20-03-001 от 07.05.2007 (приложение 11). Для Российской частоты используется тот же чип, что и для Европы.
 +
 +===== Черпаем ещё инфу =====
 +
 +Достаточно много информации о протоколе можно получить из таких open source проектов,​ как [[http://​code.google.com/​p/​open-zwave/​|OpenZWave]],​ [[http://​z-wave.alsenet.com/​index.php/​Main_Page#​Alsenet_automation_soft|AZW]],​ [[http://​wiki.linuxmce.org/​index.php/​Z-Wave|Linux MCE]], а также из [[http://​wiki.zwaveeurope.com/​|этого wiki-сайта]] и следующих статей:​ [[http://​www.ledlighting-eetimes.com/​en/​how-to-develop-z-wave-devices.html?​cmp_id=71&​news_id=222908151|первая]],​ [[http://​www.drdobbs.com/​embedded-systems/​catching-the-z-wave/​193104353|вторая]],​ [[http://​www.digiwave.dk/​en/​programming/​an-introduction-to-z-wave-programming-in-c/​|третья]]
 +
 +===== Увидеть живьём =====
 +
 +Для тех, кто ещё не держал в руках оборудование Z-Wave, посмотреть и пощупать можно в [[http://​rus.z-wave.me/​blog/​2012/​09/​demo-stend/​|первом салоне МГТС по адресу Новый Арбат, дом 2]]
 +
 +===== Не охваченное ======
 +
 +В данной статье полностью опущены описания таких понятий протокола Z-Wave, как SUC/SIS, Zensor и многое другое устаревшее и не являющееся актуальным на взгляд автора. ​
vvodnaja_po_texnologii_z-wave.txt · Последние изменения: 2014/10/03 11:28 (внешнее изменение)
GNU Free Documentation License 1.3
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Яндекс.Метрика