ZigBee-модули XBee Series 2 с поддержкой Mesh-топологии
MaxStream
О. Пушкарев
Новости Электроники 16, 2007
В октябре 2007 года компания MaxStream представила своим клиентам новые ZigBee-модули XBee Series 2. Они предназначены для построения полноценных ZigBee-сетей с топологией Mesh. В статье даны краткие технические характеристики новых модулей, отличия от предыдущей линейки и особенности их применения. Рассмотрена работа с отладочным комплектом и приведены практические примеры организации ZigBee-сети на основе новых модулей.
Компания MaxStream хорошо известна российским разработчикам своими радиочастотными модулями XBee/XBeePro [1] и корпусированными радиомодемами с диапазоном 2,4 ГГц. Радиомодули MaxStream используют как технологию ZigBee, так и собственный формат передачи данных, построенный на основе протокола с «прыгающими частотами». Продукты MaxStream завоевали широкую популярность благодаря отличным техническим характеристикам и упрощенному набору команд управления, что позволяет работать с серьезной системой беспроводной передачи данных даже неискушенному в этой области инженеру. Компания MaxStream уже несколько лет выпускает модули XBee/XBee-Pro, которые востребованы на рынке и не планируются к снятию с производства. Зачем же компании потребовалось осваивать новую линейку XBee Series 2? Для того чтобы правильно ответить на этот вопрос, нужно вспомнить эволюцию ZigBee-стандарта и историю поглощений компаний на этом рынке:
1. Начало выпуска XBee/XBeePro-модулей приходится на 2005 год, когда только-только появилась первая спецификация ZigBee-стандарта (далее ZigBee-2004). В момент выпуска модули поддерживали передачу данных по стандарту 802.15.4, который является нижним уровнем для построения ZigBee-сетей.
2. Компания MaxStream начинает разработку ZigBee-версии Firmware. Выпущена бета-версия ZigBee-прошивки, которая позволяет работать с Mesh-топологией ограниченной структуры (согласно спецификации ZigBee-2004). Прошивка построена на базе ПО от Freescale, которая в свою очередь сотрудничает с компанией Figure 8 Wireless. Независимая на тот момент компания Figure 8 Wireless поставляет свой стек ряду производителей ZigBee-трансиверов, в том числе имеет стек протоколов ZigBee для микропроцессора Freescale MC9S08GT60, являющегося основой модулей XBee/XBeePro [2].
3. В 2005 году компания Figure 8 Wireless поглощается компанией Chipcon и становится процессорно-зависимой компанией. Далее, в этом же году, компания Texas Instruments приобретает Chipcon. Как следствие, сворачивается поддержка версии собственного стека, ориентированная на продукцию теперь уже конкурирующих брендов.
4. В 2006 году ZigBee-альянс принимает новую спецификацию стандарта ZigBee (ZigBee-2006), который несовместим с предыдущей версией ZigBee-2004. Нужно отметить, что в связи с несовершенством ZigBee-2004 реальных продуктов на его основе было выпущено ничтожно мало. В 2008 году ожидается обнародование новой спецификации ZigBee PRO*, доступной сегодня только членам ZigBee-альянса.
Итак, что же компания MaxStream имеет на сегодняшний день? ZigBee-версия прошивки для модулей XBee/XBeePro существует, доступна для загрузки, но все еще находится в статусе «бета». Данная прошивка позволяет модулям работать в Mesh-сети, но имеет ряд ограничений:
- не поддерживает конечные устройства (End-device);
- соответствует уже устаревшему стандарту ZigBee-2004.
Согласно последней информации с сайта производителя, в связи с изменениями в аппаратной части доступные ранее бета-версии ZigBee-прошивок (8 х 13, 8 х 14 и 8 х 17) более не поддерживаются компанией MaxStream. Модули XBee/XBeePro c прошивкой (Firmware) 802.15.4 прекрасно подходят для построения сетей типа Точка-точка или Звезда, т.е. сетей без ретрансляции сообщений. Для увеличения дальности в такие сети можно добавлять «прозрачные» репитеры, которые представляют собой модуль XBee/XBeePro с замкнутыми выводами «Вход» и «Выход» UART. Модули XBee/XBeePro были и остаются эффективной платформой для построения сетей стандарта 802.15.4 и не планируются к снятию с производства.
Модули XBee Series 2. Общая информация
Новая серия модулей XBee Series 2 выступает в качестве аппаратно-программной платформы, полностью соответствующей спецификации ZigBee-2006 и, в дальнейшем, версии ZigBee PRO. Модули XBee Series 2 (рис. 1) совместимы по габаритам и выводам с модулями XBee, однако построены на однокристальном ZigBee-чипе EM250 компании Ember. Выбор данного решения был не случаен. Компания Ember имеет в своем арсенале как аппаратные (микросхемы EM2420, EM250, EM260), так и программные (ПО EmberZStack) решения. Компания входит в пятерку производителей-лидеров в области ZigBee, является промоутером ZigBee-альянса и активно участвует в разработке спецификации XBee Pro. На момент написания данной статьи потребителям доступны только маломощные (2 мВт) модули новой серии. Коммерческий выпуск модулей с повышенной мощностью ожидается в январе 2008 года. Технические параметры модулей XBee Series 2 приведены в таблице 1. Для сравнения приведены параметры модулей XBee и XBee Pro. Благодаря более высокой выходной мощности и чувствительному приемнику, модули новой серии обеспечивают большую дальность связи. Энергопотребление модулей в спящем режиме снижено с 10 до 1 мкА, что очень важно для устройств с батарейным питанием. Модули выпускаются в четырех вариантах подключения антенны. Для заказа нужного модуля на сайте MaxStream есть генератор обозначений http://www.maxstream.net/products/part-number-generator/xbee-module.php.
Рис. 1. Модули XBee Series 2
В качестве программного обеспечения для модулей XBee Series 2 выступает ZigBee-стек от компании Ember EmberZstack 2.5. Этот стек включает в себя отдельные элементы спецификации ZigBee Pro, например:
- Метод распределения адресов на основе случайных чисел. В отличие от предшествующего метода CSKIP (распределение адресов по дереву), новый алгоритм позволяет исключить вероятность нехватки адресов в одной ветви сети, при избытке в другом сегменте.
- В качестве единственного метода маршрутизации используется алгоритм оптимальной прокладки маршрута по запросу (п. 3.7.3 [3], см. также алгоритм AODV [4]).
- Нет жестких ограничений на число узлов (max_children, max_routers). Максимальная глубина ретрансляций (max_hops) ограничена только разумным временем ожиданием ответа.
Ключевое отличие модулей XBee Series 2 от модулей XBee лежит в области программного обеспечения. Модули XBee Series 2 предназначены для построения полноценных ZigBee-сетей с топологией Mesh (каждый с каждым). Однако модули XBee Series 2 не являются заменой старых модулей XBee. В зависимости от сложности проектируемой сети, в более выигрышном положении может оказаться любой из модулей. Использование модулей XBee предпочтительнее, когда необходимо строить простые сети типа «Звезда» (802.15.4). В последнем случае разработчик получает более полный контроль над сетью. Несмотря на единую скорость в радиоканале (250 кБит/сек), в сети ZigBee наблюдаются большие задержки, и реальная пропускная способность ниже, чем у сети 802.15.4.
Модули XBee Series 2. Структура ПО
Модули XBee Series 2 предназначены для построения сетей ZigBee с Mesh-топологией. Все необходимое ПО для формирования и поддержания работоспособности ZigBee-сети (ZigBee-стек) загружается при производстве модуля. В зависимости от сетевой функции узла
(Координатор/Роутер/Конечное устройство), модуль XBee Series 2 должен содержать соответствующую прошивку:
- Координатор;
- Роутер/Конечное устройство.
В связи тем, что для роутера/конечного устройства используется одна прошивка, выбор сетевой роли модуля определяется AT-командой «SM». Прошивки модулей также различаются по типу управления модулем:
- Прозрачный режим. Управление с помощью AT-команд;
- Пакетный режим. Управление с помощью API-фреймов.
Таблица 1. Технические параметры модулей XBee Series 2
Параметры | XBee Series 2 | Xbee | XBee-PRO | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | ![]() | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Топология сети | ZigBee Mesh | Точка-точка, Звезда, 802.15.4 | Точка-точка, Звезда, 802.15.4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Рабочая частота, ГГц | 2,4. 2,4835 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Радиус действия в помещении, м | 40 | 30 | 100 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Радиус действия в свободном пространстве, м | 120 | 100 | 1200 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Максимальная выходная мощность, мВт | 2 | 1 | 100 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Скорость передачи данных по радиоканалу, бит/с | 250000 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Скорость передачи данных по интерфейсу, бит/с | 1200. 230400 | 1200. 115200 | 1200. 115200 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Чувствительность, дБм | -98 (1% PER) | -92 (1% PER) | -100 (1% PER) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Напряжение питания, В | 2,1. 3,6 | 2,8. 3,4 | 2,8. 3,4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ток потребления в режиме передачи, мА | 38 | 45 | 270 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ток потребления в режиме приема, мА | 35 | 50 | 55 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ток потребления в режиме энергосбережения, мкА | 0): статус режима API «Координатор стартовал» отсылается из UART. 3. Параметр AI (Association Indication) будет установлен 0, что означает успешный запуск. 4. Параметр MY (16-битный адрес источника) равен 0 (16-битный сетевой адрес ZigBee Координатора). 5. После запуска, Координатор позволит присоединение к сети в течении времени NJ (Node Join Time). 6. Рекомендуется настроить в Координаторе строковый идентификатор NI (NI-строку). Эта NI-строка должна быть сохранена в постоянной памяти с помощью команды WR (Write).
Добавление дочернего устройства (Роутера) Рис. 3. Отладочный комплект 1. Определите список рабочих каналов (SC) и желаемый PAN ID для присоединения к сети (ID) (0xFFFF – для любой сети). По умолчанию, значение параметра SD (Scan Duration) должно быть достаточно. Если эти значения изменяются со значений по умолчанию, их необходимо сохранить в постоянной памяти с помощью команды WR (Write). 2. После включения Роутер попробует найти родительское устройство для присоединения на основе его параметров SC и ID. 3. Как только Роутер присоединился к родительскому устройству, Ассоциированный LED (если активирован (D5)), начнет мигать 2 раза в секунду. Параметры ID и CH будут содержать рабочий PAN ID и текущий канал. Параметр MY будет содержать 16-битный сетевой адрес Роутера. Команда MP возвратит 16-битный сетевой адрес родительского устройства Роутера (узла, к которому он присоединился). Если активирован API (параметр AP > 0): статус режима API «Присоединен» отсылается из UART. 4. Если Роутер не присоединился надлежащим образом, параметр AI (Association Indication) может быть считан для определения причины ошибки. Для устранения ошибки необходимо проверить, что PAN содержит Координатор или Роутер с соответствующим каналом (SC, CH) и PAN ID (ID) и разрешает узлам присоединяться к сети (параметр NJ). 5. Как только Роутер присоединился к PAN, Роутер позволит присоединение другим устройствам на основе параметра NJ. 6. Рекомендуется настрить в Роутере NI-строку. Эта NI-строка должна быть сохранена в постоянной памяти с помощью команды WR (Write). Подавляющее большинство настроек модулей уже выполнено для простого запуска ZigBee-сети, если речь идет о модулях, входящих в состав отладочного комплекта. Для развертывания простейшей сети ZigBee на базе отладочного комплекта XB24-BPDK достаточно проделать следующие действия: 1. Установите на ПК USB драйвер и программу X-CTU с приложенного CD-диска или с сайта MaxStream (http://www.maxstream.net/support/downloads.php) 2. Установите модули на переходные платы, подключите антенны 3. Подключите одну USB-переходную плату к ПК. Запустите программу X-CTU и, при необходимости, обновите FW модулей, что бы у вас был 1 координатор и 4 роутера с управлением AT-командами. 4. С помощью закладки Modem Configuration присвойте простой строковый идентификатор (NI) каждому модулю, например 1, 2, 3, 4, 5. Сохраните измененные параметры кнопкой «Write» в энергонезависимую память каждого модуля. 5. Перейдите в режим Terminal, нажмите на клавиатуре три раза «+» (без паузы). После того, как модуль ответит «OK», введите с клавиатуры ATNR0 и нажмите «Enter». Эта команда сбрасывает сетевые настройки модуля. Это необязательный пункт, но он может понадобиться, если в роутерах сохранены старые сетевые настройки. 6. Подключите координатор к ПК. Запустите программу X-CTU. На плате координатора начнет мигать светодиод с периодом один раз в секунду. Такая индикация означает успешный старт Координатора. 7. Поставьте красную заглушку на одну из переходных плат RS-232, например на которую установлен роутер с NI = «2». 8. Последовательно подайте питание на все роутеры (4 шт.). При возможности, подключите вторую USB-переходную плату с одним из установленных роутеров ко второму ПК (лучше, если это будет ноутбук). При успешном присоединении к сети на каждой плате роутеров будет 2 раза в секунду мигать светодиод. 9. Подайте команду (закладка Terminal) ATND на любой из плат, подключенных к ПК. Координатор будет опрашивать вашу сеть и через 6 секунд вы увидите список узлов с их 64-битными адресами и строковыми идентификаторами. 10. По образцу п. 5 подайте команду ATDN2. Тем самым будет проложен маршрут к роутеру «2». Перейдите на закладку Range Test, нажмите кнопку Advanced и увеличьте параметр Data Receive Timeout до 5000. Это может оказаться полезным, в случае если сеть сама будет перепрокладывать маршрут. 11. Запустите Range Test кнопкой Start. Если все сделано правильно, вы увидите возвращенные от роутера «2» пакеты. Естественно, для проведения теста не обязательно, что бы между координатором и нашим роутером «2», была прямая радиовидимость, информация может ретранслироваться другими узлами. ZigBee-модули XBee: вопросы практического примененияПрименение модулей XBee без внешнего микроконроллераВ данной статье речь пойдет исключительно о модулях XBee Series 2 (рис. 1), то есть полноценных ZigBee-модулях, поддерживающих спецификацию ZigBee-2007 и позволяющих построить mesh-сеть, включающую спящие и мобильные устройства. Основной режим работы модулей XBee — это работа под управлением внешнего микроконтроллера, управляющего модулем с помощью простых AT-команд или упорядоченных структур данных (режим API) [1]. Компания Digi разработала свой собственный фирменный (proprietary) ZigBee-профиль, позволяющий организовать прозрачную передачу данных между любыми узлами ZigBee-сети и предоставляющий доступ к цифровым и аналоговым портам ввода/вывода на удаленных узлах, работающих без хост-процессора. Какие задачи способен выполнять XBee-модуль при использовании его без внешнего микроконтроллера? Это, прежде всего, работа с внешними датчиками, которые выдают значения параметров в виде аналогового напряжения или имеют выходы с двумя состояниями — «включено/выключено». Модуль XBee имеет мультиплексированные аналоговые (4) и цифровые (12) порты. Для управления внешними устройствами, кроме цифровых выходов, можно использовать 2 вывода ШИМ (10 бит). Также XBee-модуль напрямую сопрягается с любыми устройствами, имеющими UART-интерфейс. При самостоятельной работе XBee-модуль может передавать данные по заданному расписанию, отправляя их через определенные промежутки времени, или по изменению состояния сигнала на цифровом порту. Эти варианты применения наиболее просты и требуют лишь общего понимания логики работы ZigBee-сети. Рассмотрим потенциальные варианты применения модуля XBee без использования внешнего процессора:
Для всех перечисленных примеров время, которое потребуется на разработку узла сетевой передачи данных, будет измеряться неделями или даже днями. Необходимо лишь выбрать необходимые параметры и сохранить настройки в энергонезависимой памяти используемых XBee-модулей. При автономном использовании модули XBee нельзя применять в тех устройствах, где требуется пусть даже минимальная обработка данных непосредственно на удаленном объекте. Внутренняя прошивка модулей не предоставляет возможностей по подсчету числа импульсов, накоплению во внутренней памяти аналоговых отсчетов, невозможен также учет реального времени и т. п. Для решения подобных задач необходимо применение внешнего микроконтроллера. Положительной стороной такого решения является то обстоятельство, что мощность и разрядность микроконтроллера определяется исключительно пользовательским приложением: все сетевые задачи берет на себя XBee-модуль. Например, для построения беспроводного счетчика потребления воды будет достаточно 8-битного маловыводного микроконтроллера стоимостью 20–30 рублей. При этом разработчик может выбрать хорошо известный ему процессор и использовать свои предшествующие программные наработки. Для управления модулем XBее с помощью внешнего микроконтроллера рекомендуется включить режим API, так как именно он обеспечивает доступ ко всем ресурсам модуля. При работе модуля в режиме API можно создавать сетевые узлы ZigBee, работающие с публичными профилями, утвержденными ZigBee-альянсом. В последнем случае XBee-модуль будет совместимым с ZigBee-решениями других производителей. Для использования модуля XBее на 100% разработчику необходимо изучить техническое описание модуля и набор всех управляющих команд, которое занимает 140 страниц документации [2]. Доступный русскоязычный перевод [3], хоть и относится к уже устаревшей версии (ZNet 2.5), все же может оказаться полезным, так как большое количество описанных команд работает без изменений и в более новых версиях firmware. Внешний процессор или загрузка приложения?В качестве альтернативы радиомодулям с предустановленным ПО, можно построить ZigBee-узел на основе однокристального решения (микроконтроллер+трансивер). Это предполагает загрузку и запуск конечного приложения на том же процессоре, где «крутится» ZigBee-стек. Выгоды такого решения очевидны — это, как правило, меньшая стоимость и меньшая занимаемая площадь печатной платы. Однако у такого похода есть и недостатки — это сложность программирования и длительное время разработки. Возьмем, для примера, используемый в модулях XBee ZB стек EmberZNet 3.x ZigBee-PRO. Описание его API-функций изложено в 922-страничном англоязычном документе [4]. Не исключено, что для понимания каких-то нюансов вам придется заглянуть в оригинальную спецификацию ZigBee [5, 6], а это еще 604+119 страниц технического текста. Если добавить к этому время на изучение архитектуры используемого в SoC процессора, то становится ясно, что разработка затянется на долгие месяцы, если вообще будет доведена до конца. Наверное, поэтому ведущие производители ZigBee-микросхем включили в свою линейку так называемые ZigBee-сопроцессоры, то есть кристаллы, включающие в себя ZigBee-стек и предназначенные для работы под управлением внешнего микроконтроллера. По идеологии применения радиомодуль XBee в чем-то похож на ZigBee-сопроцессоры EM260 компании Ember. Оба этих решения обеспечивают доступ к ZigBee-сети с помощью предоставляемого набора управляющих команд. При этом приложение пользователя избавлено от всех задач, связанных с работой ZigBee-сети. Микросхема EM260 стоит меньше, чем радиомодуль XBee, и предоставляет доступ к ZigBee-функциям нижнего уровня. Однако применение этой микросхемы требует определенных знаний в области СВЧ и наличие дорогостоящего измерительного оборудования для проверки радиочастотных параметров конечного изделия, куда запаивается этот трансивер. Кроме этого, модули ZigBee предлагают разработчику существенно более простой интерфейс управления. Подробную информацию о различиях между API для модулей XBee и API для EM260 можно найти в документе [7]. Компания Digi предоставляет возможность загрузки в XBee своего приложения вместо встроенного firmware. Это можно осуществить двумя способами — с помощью специального программатора через контактные площадки на верхней стороне модуля (рис. 2) либо через UART. При использовании своего ПО нужно следить за тем, чтобы случайно не уничтожить содержащийся в модуле оригинальный загрузчик Digi. В противном случае восстановить прошивку Digi будет нельзя. В документации [2] приводится таблица соединений микросхемы EM250 и рекомендации по инициализации аппаратных ресурсов модуля. Мифы и реальностьНесмотря на то, что с момента появления ZigBee прошло уже 5 лет, технология все еще находится на начальном этапе своего развития. С одной стороны, данную технологию поддерживают ведущие производители полупроводников, за прошедшие годы спецификация ZigBee была существенно переработана, появились публичные профили для решения достаточно важных и востребованных задач, среди которых домашняя автоматизация, управление потреблением энергии, автоматизация производства. С другой — на полках магазинов не видно ZigBee-устройств. Говорить о коммерческом успехе технологии пока рано. Число промышленных производителей конечных ZigBee-продуктов исчисляется десятками, мало и количество крупных инсталляций ZigBee-систем. Причин несколько — относительная дороговизна решения, высокая трудоемкость процесса разработки и, отчасти, существующие мифы и завышенные ожидания разработчиков и потребителей. Часто встречается заблуждение, что на базе ZigBee можно строить сети масштаба города, передавать звук (и даже видео!), создавать сети из десятков тысяч устройств и т. п. Для каждого постулата такого рода есть некое фактическое основание, тем не менее это ошибочные представления о возможностях технологии на данном этапе. Можно ли построить ZigBee-сеть из десятков тысяч устройств?В теории — да. Для сетевого адреса отводится 2 байта, что обеспечивает адресную емкость для 65 535 устройств. Но спецификация ZigBee определяет ряд других параметров (косвенно связанных с максимальным числом устройств в сети) таким образом, что реально можно говорить не более чем о нескольких сотнях устройств в одной сети. При числе устройств более 300 существенно возрастает служебный трафик и, соответственно, падает пропускная способность. Главные ограничивающие факторы для большого количества узлов — это затраты на разрешение возникающих конфликтов при случайном распределении адресов, снижение пропускной способности из-за растущей служебной активности, большие задержки при обнаружении устройств и прокладке маршрутов, ограничения ОЗУ для хранения больших таблиц маршрутизации. Передача звука и видеоСкорость передачи данных в радиоканале в ZigBee составляет 250 кбит/с, но, несмотря на это, реальная скорость передачи полезных данных может быть меньше на порядок. Главная же проблема, возникающая при попытке передачи звука через ZigBee-сеть с ретрансляцией сообщений, — это возникающие задержки, которые неизбежны и непредсказуемы. Величина этих задержек достигает нескольких секунд, что делает передачу «живого» звука абсолютно нереальной, если мы говорим о mesh-сети. Только на нижнем уровне (802.15.4.) достижимы реальные скорости (до 115 кбит/с) [8], позволяющие передавать звуковой поток в цифровом виде. Построение сетей масштаба городаМаксимально разумное число ретрансляций пакета в сети ZigBee не должно превышать 10–30 хопов. С учетом того, что вне помещений максимальная разрешенная мощность составляет 10 мВт [9], одной ZigBee-сетью можно покрыть площадь только одного небольшого района. Использование ZigBee для построения сети быстродвижущихся объектов (автомобили, самолеты)Несмотря на то, что ZigBee предусматривает наличие мобильных конечных устройств, о мобильности можно говорить лишь условно. Время вхождения устройства в сеть или переключения между роутерами составляет несколько секунд.
Пропускная способность сети и задержкиПри разработке mesh-сети нужно правильно задавать ключевые параметры стека, которые будут влиять на пропускную способность сети и возникающие в ней задержки. Довольно сложно ответить на вопрос о конкретных цифрах задержек и максимальной скорости передачи данных, так как подобные значения лучше всего проверять на практике — в процессе тестовых проверок в условиях, близких к реальным. Пропускная способность ZigBee-сети зависит от топологии сети, направления передачи информации, уровня сигнала и даже соотношения числа роутеров и конечных устройств. Для XBee-модулей ZB максимальная пропускная способность примерно равна 35 кбит/с. В таблице 1 приведены примерные цифры для различной конфигурации сети, полученные экспериментальным путем. При измерении пропускной способности пересылалось 100 000 байт при высоком уровне сигнала. Случаев потерь пакетов и перепрокладки маршрута отмечено не было. Несмотря на относительно невысокие скорости передачи, это не является критичным параметром для большинства тех применений, для которых, собственно, и разрабатывался этот стандарт. В системах сбора информации с беспроводных датчиков объем полезных данных составляет десятки байт: такой объем не предъявляет высоких требований к средней скорости передачи данных. Однако, кроме скорости передачи, в сетях с mesh-топологией данные будут доходить до узла сбора информации с переменной задержкой, которую необходимо учитывать при принятии решения о недоставке сообщения и, соответственно, повторных попытках передачи. Простая отдача команды на пересылку пакета приводит в действие сложный алгоритм работы стека ZigBee (рис. 3). В модулях XBee ZB (согласно спецификации ZigBee) широко используются задержки случайной величины — как в алгоритме доступа к среде (CSMA-CA), так и при формировании ответа каждого узла на команду обнаружения узлов. Рассмотрим основные параметры временных задержек для различных типов сообщений. При подаче команды на обнаружение всех узлов в сети (ND) в передаваемом пакете присутствует максимальная временная задержка, которую могут использовать узлы сети при отправке ответа. Эта задержка необходима для того, чтобы все узлы сети успели отправить ответные сообщения и эти сообщения не мешали друг другу. Данная задержка устанавливается командой NT и по умолчанию равна 6 секундам. При подаче запроса ND не следует предпринимать никаких действий, пока не пройдет время NT. Чем меньше узлов в сети, тем меньше может быть значение NT. Минимально допустимое время NT — 3,2 с. Не рекомендуется рассылать широковещательные сообщения чаще, чем 1 раз в 8 секунд. При отправке сообщения на удаленный узел используется параметр NH (максимальное число ретрансляций) для установки максимального времени ожидания ответа. По умолчанию значение NH = 0_1E, что эквивалентно 1,6 секунды на одну попытку отправки. С учетом того, что время передачи пакета между 2 соседними узлами составляет 50 мс и еще 100 мс необходимо на обработку данных, установленное по умолчанию значение NH определяет максимальную дальность в 8 ретрансляций (9 модулей в ряд). Если модуль отправляет сообщение и не получает ответа от удаленного узла за 1,6 секунды, то он автоматически делает еще 2 попытки. Таким образом, общее время, отводимое стеком на доставку (с подтверждением) одного сообщения, будет 4,8 секунды для сети глубиной в 8 ретрансляций. Если же сообщение отправляется на спящий конечный узел, то ко времени доставки еще необходимо добавить время сна (параметр SP), длительность которого может достигать десятков секунд. Последние обновленияНедавно компания Digi сообщила о новой версии внутреннего программного обеспечения (firmware) для модулей XBee ZB. Firmware v.2.x.6.x предоставляет разработчику больше возможностей по созданию недорогих и надежных беспроводных приложений. ПО построено на базе стека EmberZNet 3.3.1 ZigBee-PRO и содержит ряд новых опций:
ЗаключениеПри выборе решения для сети ZigBee разработчик должен четко понимать границы применимости данной технологии и правильно оценивать предстоящий объем работы. Использование радиомодулей XBee c собственным ZigBee-профилем Digi позволяет строить узлы ограниченной функциональности без применения внешнего микроконтроллера. Встроенный ZigBee-стек и простота настройки модулей существенно сокращают как время разработки, так и требования к квалификации разработчика. При использовании внешнего микроконтроллера на базе модулей XBee ZB можно производить устройства любой сложности, поддерживать публичные ZigBee-профили и создавать продукты, совместимые с ZigBee-устройствами других производителей. ZigBeeЧто такое ZigBee протокол в системе “умный дом” Xiaomi?У многих устройств и датчиков умного дома Xiaomi мы видим приписку ZigBee, что это за зверь, какие плюсы и минусы он несет, я разберу в этой статье. ZigBee – протокол передачи данныхНаверное все представляют что такое Wi-Fi сеть, которая есть почти в каждой квартире. Есть устройство передатчик (роутер) и приемники (телефон, ноутбук и другие устройства), их связывает единая сеть, которая создается на роутере. Схематично это выглядит так: Такой тип сети называется “Звезда”, из-за визуального сходства (Центральное устройство и лучи отходящее от него). Тут все кажется довольно просто. Как вы можете заметить, на схеме присутствуют устройства из системы “Умный дом” от Xiaomi. Получается, что на протоколе Wi-Fi можно построить свою систему автоматизации? Ответ – да, можно. А зачем тогда что-то придумывать? Если вы обратите внимание на схему, то заметите, что все устройства либо подключаются к розетке, либо требуют частой зарядки. Тут во всей красе предстает главный минус Wi-Fi сети в системе умного дома, а именно высокое энергопотребление. И если для устройств питающихся от розетки это не страшно, то для устройств и датчиков работающих от батарейки – это смертельно. Согласитесь, зачем нужен датчик, в котором нужно каждый день заряжать аккумулятор? Но ведь есть протокол передачи данных, с низким энергопотреблением, который нам давно известен и до сих пор активно используется. Вспомните фразу: “включи блютуз, я тебе перекину фотки.”. Да, именно Bluetooth, который раньше использовался для передачи данных, а сейчас занял нишу подключения беспроводных аудио-устройств и гаджетов, так же применяется в системе “Умный дом”. Чаще конечно идет в пару с Wi-Fi, но есть и устройства только с bluetooth, например чайник Mi Smart Kettle. Но и тут все не так гладко, как хотелось бы. Как и Wi-Fi, Bluetooth использует топологию “Звезда”. А что в этом страшного? Ответ прост, малая дальность действия и низкая отказоустойчивость. Основное устройство необходимо размещать максимально по центру помещения, чтобы обеспечить связь со всеми устройствами. И если для квартиры это не так критично, то в частном доме просто не получится обеспечить постоянную связь между устройствами, находящимися на заметном удалении друг от друга. Для решения этой проблемы были внедрены Bluetooth шлюзы. ZigBeeЛогично, что нужен был протокол передачи данных с низким энергопотреблением и надежностью соединения. Поэтому еще в 2003 году была ратифицирована спецификация ZigBee. Основное отличие от Bluetooth – это топология “Mesh”. В ней подразумевается наличие 3 типов устройств:
На схеме умного дома Xiaomi протокол будет выглядеть так: Ничего не понятно? Давайте попробуем разобраться. У нас на схеме есть шлюз Gateway 2, он выполняет роль координатора. К нему, в приложении MiHome мы подключаем все остальные устройства. Как и в Wi-Fi и Bluetooth, только стрелочек тут заметно больше. Все это потому, что розетки и выключатели выполняют роль “Роутера”, они принимают сигнал от головного устройства и транслируют его дальше по сети до конечных датчиков. Это позволяет масштабировать сети до уровня дома или даже большого производственного здания. А выход из строя одного из устройств-роутеров не скажется на работоспособности всей сети. Сравнительная таблица характеристик этих протоколов связи:
Из минусов можно отметить низкую скорость передачи данных – до 250 кбит/сек. Ради низкого энергопотребления, приходится чем то жертвовать, но это не критично для задач домашней автоматизации. Обратите внимание, если в вашей системе 2 шлюза, то это будет 2 разных, независимых ZigBee сети только в случае недосягаемости. А так второй и последующий шлюз подхватывает сеть первого. Но если вдруг один из шлюзов умрет, то датчики можно переподключить к другому. Значимость ZigBee в системе умного дома XiaomiНа конец 2017 года, в системе Xiaomi 22 устройства, которые используют ZigBee протокол. Wi-Fi используют около 80, а блютуз около 25. Да, самая маленькая доля устройств, но стоит отметить, что ZigBee устройства предназначены именно для автоматизации жилища, и их доля в вашей системе скорее будет доминировать. Если у вас появились вопросы, смело задавайте в комментариях. Радиомодемы Xbee для сетей ZigBee — что это такое?XBee – это радиомодемы для сетей ZigBee, предназначенных для максимально защищенной передачи данных, с минимальным уровнем электропотребления и невысокой скоростью. Эти устройства применяют в различных системах автоматики, что очень востребовано в «умном доме», ведь позволяет не только управлять удаленными устройствами, но и организовывать целые сети, регулирующие работу множества устройств. ZigBee и другие сетиВ отличие от Wi-Fi, Bluetooth и проводных сетей, предназначенных для передачи больших объемов информации и полностью отсутствующим шифрованием, сети ZigBee обеспечивают в десятки раз большую надежность.
Если, по каким-то причинам, будет нарушена связь между исполнительным устройством и блоком управления, то сеть обеспечит двухстороннюю передачу сигналов через другие устройства. Благодаря такой архитектуре, сети ZigBee отличаются высочайшей надежностью, что очень важно для систем управления умного дома. Из чего состоит ZigBee сетьZigBee сеть состоит из различных комбинаций следующих элементов:
Координатор выполняет функции управляющего центра, определяет настройки работы и безопасности, подключает и отсоединяет конечные устройства. Маршрутизатор определяет порядок связи между устройствами (маршрут), устраняет повреждения сети, создавая новые направления, управляет работой конечных устройств. В качестве конечных устройств могут использоваться компьютеры, отдельные датчики или исполнительные механизмы, а также целые автоматизированные системы. Радиомодемы, подключенные к соответствующему адаптеру, могут выполнять функции как маршрутизаторов, так и координаторов. Кроме того, ZigBee устройства могут использоваться не в составе организованной сети, а по принципу «каждый с каждым». Такое подключение снижает быстродействие сети, но повышает надежность. Еще одно назначение подобных сетей – максимальное энергосбережение. По сравнению с Wi-Fi, в рабочем режиме радиомодемы сетей ZigBee потребляют в десятки раз меньше электроэнергии, что очень важно для автономных устройств. Подключение к датчику движения Wi-Fi модема приведет к необходимости замены или зарядки аккумулятора один раз в 2–3 дня. Подключение этого датчика к сети ZigBee позволит увеличить срок работы до замены аккумулятора до 5–10 дней. Такая разница в энергопотреблении возникает из-за различных скоростей передачи информации (до 250 кбит/c). Ведь чем выше скорость передачи, тем больше энергопотребление и ниже надежность. Кроме того, переход от спящего к рабочему состоянию для ZigBee устройств составляет десятки миллисекунд. В Bluetooth и Wi-Fi сетях время на такой переход исчисляется сотнями миллисекунд, а иногда и секундами. Радиомодемы XBeeИзначально радиомодемы под маркой XBee производила компания Maxstream (первое поколение), затем их производством занялась фирма Digi International. В 2015–2015 году их производством занялось еще несколько компаний. Продукция разных поколений несовместима между собой, потому что выпускалась под стандарты ZigBee, существующие на тот момент. Стандарты каждые 2–3 года менялись, поэтому производители также меняли и свои устройства. Однако эти изменения не касались технических характеристик, таких как мощность сигнала, энергопотребление и так далее. Вот технические характеристики радиомодемов XBee и XBee pro:
|