Полностью законченные ZigBee модули производства фирмы Radiocrafts
Встатье рассмотрены новые модули фирмы Radiocrafts (www.radiocrafts.com), представляющие собой готовое решение для построения сетей ZigBee.
Введение
В литературе технологии Wi-Fi, BlueTooth и ZigBee часто рассматриваются как конкурирующие. На самом деле каждая из упомянутых технологий имеет свои уникальные характеристики, обуславливающие их оптимальные области применения.
Изначально технология ZigBee разрабатывалась как средство передачи небольших объемов телеметрической информации на частоте 2,4 МГц с минимально возможным энергопотреблением и небольшой скоростью передачи и предназначалась для переносных устройств с батарейным питанием.
Базовыми направлениями деятельности фирм-основателей альянса ZigBee являются бытовая электроника, силовая электроника, мобильные телефоны, датчики, военные и промышленные персональные беспроводные сети. Нетрудно понять, что именно для этих областей применения и предназначена данная беспроводная технология. Поэтому ZigBee — это сугубо нишевое направление, стоящее особняком от других технологий. В настоящее время в альянс ZigBee входит более ста фирм из 22 стран мира.
Норвежская фирма Radiocrafts AS представляет на рынке устройств стандарта 802.14.4 полностью готовые к работе модули. В этой линейке выделяются две новые серии «RC2200 ZigBee ready» (модули с DSSS-манипуляцией) и «RC2200AT-SPPIO — ZigBee» — модули с поддержкой последовательного интерфейса и пользовательских входов-выходов. Модули содержат прошивку стека протоколов ZigBee, поэтому в их стоимость включена плата за пользование запатентованными технологиями.
Технология ZigBee и стандарт 802.15.4
Следует отметить, что название ZigBee и цифровое обозначение сопутствующего стандарта IEEE 802.15.4 — это не одно и то же. Первое обозначает саму технологию, протоколы верхних уровней, ноу-хау. Цифрами обозначают спецификации стандартов IEEE для связи на физическом уровне. Поэтому правильнее говорить, что технология ZigBee опирается на стандарт 802.15.4 [1, 2].
В таблице приведены данные об иерархических взаимоотношениях в технологии ZigBee и стандарте IEEE 802.15.4.
Сам стандарт IEEE 802.15.4 определяет только два нижних уровня: физический уровень (PHY) и уровень управления доступом к радиоканалу для трех нелицензируемых диапазонов частот: 2,4 ГГц, 868 и 915 МГц (MAC-layer).
Физический уровень протоколов 802.15.4 (PHY) определяет методы кодирования-декодирования и механизмы, которые используются для обеспечения требуемой скорости передачи в зависимости от среды передачи данных. Иными словами, на уровне PHY определяются параметры приемопередатчиков [3].
Вопросы регулирования совместного использования среды передачи данных определяются на МАС-уровне (Media Access Control—уровнь доступа к среде передачи данных). Именно на MAC-уровне устанавливаются базовые принципы взаимодействия сети из нескольких ZigBee-устройств.
Непосредственно в стандарте 802.15.4 оговариваются диапазон частот, тип модуляции, структура пакетов, правила формирования контрольной суммы, способы предотвращения коллизий и т. д.
Наиболее важные аспекты технологии ZigBee запатентованы. Они определяют такие конкретные параметры, как уровень сети, протоколы безопасности, структуры приложения. Реально в этом комплекте документации регламентируются алгоритмы и детальное программное обеспечение, управляющее работой различных ZigBee-устройств и их связью с другими внешними устройствами.
Разработка стандарта IEEE 802.15.4 как нового типа WLAN началась в 2000 году, а окончательный вариант этого стандарта был утвержден IEEE в мае 2003 года. Стандарт является открытым и доступен для любого пользователя [1, 2].
К сожалению, этого нельзя сказать о протоколах ZigBee Alliance. Они закрыты и доступны только членам альянса, отчисляющим в него ежегодные взносы. Рядовые пользователи могут только покупать необходимую им информацию.
Сетевой уровень ZigBee отвечает за конфигурацию сети, а также за обнаружение устройств и протоколы их взаимодействия между собой. На сетевом уровне в ZigBee поддерживаются три варианта топологии сети: «звезда», «кластерное дерево», «каждый с каждым» (mesh).
Следует особо подчеркнуть, что топология mesh-сетей является одним из основных преимуществ ZigBee (рис. 1).
В mesh-сетях отдельные узлы кооперируются для того, чтобы доставить сообщение по назначению. В случае неисправности одного из узлов данные посылаются по другому маршруту. Это свойство является исключительно важным в сетях, функционирующих на промышленных объектах в режиме жестких условий эксплуатации.
Профиль приложений пользователя поддерживает конкретные параметры прикладных устройств пользователя и узлов сети, а также их индивидуальные адреса и характеристики. Этот уровень является открытым в технологии ZigBee. Поэтому пользователь может использовать как свой собственный профиль, так и профили, закрепленные альянсом ZigBee (например, разработанный Philips профиль для контроля бытового осветительного оборудования HCL — Home Control Lighting).
В технологии ZigBee используются два типа устройств различной сложности.
Полностью функциональное устройство (FFD — Full Function Device) способно принимать и передавать данные, в том числе и чужие, по цепочке. При объединении FFD-устройств могут быть реализованы топологии «звезда», «каждый с каждым» и «кластерное дерево».
Устройство с ограниченным набором функций (RFD — Reduced Function Device) — это самый простой тип, который может только переговариваться с координирующим устройством. При объединении в сеть RFD может использоваться только в топологии «Звезда».
Кроме деления на FFD и RFD в спецификации ZigBee определены три типа логических устройств — координатор сети, маршрутизатор и оконечное устройство. Координатор инициализирует сеть, управляет сетевыми узлами, хранит информацию о настройках каждого сетевого узла, задает номер частотного канала и идентификатор сети PAN ID. Маршрутизатор отвечает за выбор пути доставки сообщения, передаваемого по сети от одного сетевого узла к другому.
Тип логического устройства при построении сети определяет сам пользователь на этапе выбора определенного профиля и программирования.
Каждый узел сети имеет уникальный адрес. В зависимости от вида адресации в сети может быть определено различное число логических получателей и источников информации (конечных точек). В технологии ZigBee предусмотрено использование нескольких видов адресации, начиная от стандартной 16-битной и заканчивая расширенной 64-битной.
Протоколы ZigBee разработаны с учетом максимального энергосбережения. Если устройство не задействовано, то оно переходит в режим ожидания с минимальным расходом энергопотребления. При необходимости координатор активизирует только конкретное устройство, которое нужно для передачи информации в данный момент.
В последнем варианте стандарта IEEE 802.15.4 регламентируются низкоскоростные радиосети (Low Rate Wireless Personal Area Network, LR-WPAN), за которыми закреплено 27 каналов в перечисленных ниже трех эфирных нелицензируемых диапазонах:
- 2,4 ГГц (16 каналов) — международный;
- 915 МГц (10 каналов) — США;
- 868 МГц (1 канал) — Европа.
Скорость передачи данных между устройствами зависит от числа занятых каналов и находится в диапазоне от 20 до 256 кбит/с.
Более подробно эти вопросы рассмотрены в соответствующих работах [2–5].
Серия RC220x — ZigBee ready
Для построения сетей ZigBee нужно иметь модули, включающие в себя трансивер, внешний микроконтроллер и стек протоколов ZigBee (набор управляющих программ). Как уже отмечалось выше, работа трансивера регламентирована открытым и полностью доступным международным стандартом IEEE 802.15.4. Что касается стека протоколов, то он доступен только членам ZigBee Alliance. Поэтому для разработки сетей беспроводной связи необходимо приобретать дополнительное дорогостоящее программное обеспечение и отладочные комплекты. Фирма Radiocrafts предлагает
Фирма Radiocrafts предлагает не тратить деньги и время на программное обеспечение и разработку, а воспользоваться ее готовыми решениями.
Серия «RC220x — ZigBee ready» — это законченные ZigBee-радиомодули с DSSS (Direct Sequence Spread Spectrum, технология уширения спектра методом прямой последовательности). В технологии DSSS для уширения спектра первоначально узкополосного сигнала в каждый передаваемый информационный бит (логический 0 или 1) встраивается последовательность так называемых «чипов». Каждый отдельный чип — это прямоугольный импульс, но его длительность в несколько раз меньше длительности информационного бита. Поскольку длительность одного чипа в n раз меньше длительности информационного бита, то и ширина спектра преобразованного сигнала будет в n раз больше ширины спектра первоначального сигнала. При этом и амплитуда передаваемого сигнала уменьшится в n раз.
Модули серии «RC220x — ZigBee ready» работают на частоте 2,45 ГГц нелицензируемого ISM-диапазона в соответствии со стандартом IEEE 802.15.4.
В состав серии входят три модели: RC2200, RC2202, RC2204, которые отличаются между собой объемом памяти, параметрами программирования и параметрами управления оконечными устройствами.
В базовой конфигурации RC220x имеют прошивку с поддержкой только двух нижних уровней PHY иMAC Chipcon firmware. Модули поставляются без прошивки верхних уровней стека протоколов ZigBee.
В данной конфигурации модули могут использоваться для передачи данных только в топологии «точка — точка» и «звезда» через последовательный порт.
Поскольку в модулях серии «RC2200 — ZigBee ready» можно использовать любые другие стеки протоколов, то пользователь вправе приобретать и прошивать самостоятельно ПО для ZigBee от других фирм (Airbee, Microchip, Millennial Net, Ember, Helicomm и др.).
Модули этой серии могут поставляться также и в комплекте отладочного блока с прошивкой ZigBee-стека «Chipcon/Figure 8 Wireless Z-stack, MAC». В стоимость модулей с прошивкой ZigBee стека включены отчисления за право пользования патентом. По требованию заказчика может быть предоставлена лицензия на использование стека протоколов от фирмы Chipcon. Естественно, что в этом случае цена модулей будет значительно выше.
Модули RC2200 содержат встроенный микроконтроллер Atmega 128. Пользователи могут самостоятельно создавать приложения верхнего уровня и записывать их поверх стека ZigBee-протоколов. Для этого достаточно использовать известные средства программирования микроконтроллеров Atmel: WinAVR/AVR GCC/Programmer’s Notepad и Atmel AVR Studio. Для загрузки программ во встроенный микроконтроллер понадобится также Atmel JTAG ICE mkll.
Технические характеристики модулей «RC2200 — ZigBee ready»:
- число каналов 16 (2,45 ГГц, ISM);
- чувствительность –94 дБм;
- скорость передачи 250 кбит/с;
- ток 30 мА в режиме RX;
- выходная мощность до 0 дБ/м (27 мА);
- память: Flash — 32/64/128 кбит (RC2202/RC2204/RC2200);
- 4 кбит EEPROM, 4 кбит SRAM;
- управление потоком CTS/RTS;
- интерфейсы UART-1, UART-2, SPI, JTAG, boot-loader;
- 32 цифровых и аналоговых входа-выхода;
- 8-канальный 10-битовый АЦП;
- 6 входов-выходов векторов прерывания;
- часы реального времени 32 кГц (RTC);
- антенный интерфейс 50 Ом;
- дальность действия: 110 м на открытом воздухе в зоне прямой видимости и 10–30 м в помещениях (в зависимости от материалов конструкции);
- габаритные размеры 16,5×29,2×3,5 мм;
- встроенная антенна или антенный разъем MMCX для внешней антенны;
- напряжение питания 2,7–3,6 В;
- SMD-корпус;
- соответствие требованиям EN 300 400 (Европа), CE по R&TTE.
Для загрузки программного обеспечения в модулях RC200x реализован интерфейс ISP (In-System Programming). Доступ к программируемым элементам памяти осуществляется через линии SCK, PDI/MOSI (input) и PDO/MISO (output).
Еще одно отличие моделей серии RC220x заключается в том, что в модулях RC2200 и RC2204 используются линии PDI и PDO (общие с интерфейсом UART), в то время как в RC2202 — MOSI и MISO (общие с интерфейсом SPI).
В моделях серии RC200x поддерживается также интерфейс JTAG, предназначенный для отладки программ пользователя и их записи во Flash и EEPROM. В базовой конфигурации модули поставляются со снятой защитой, что дает свободный доступ через JTAG для программирования. При этом будут задействованы четыре сигнальных линии TCK, TMS, TDI и TDO. Сигналы «reset» и «clock» можно не использовать.
Для работы в экономичном режиме в модулях предусмотрены шесть программируемых режимов ожидания.
К цифровым и аналоговым входам-выходам можно подключать самые разные оконечные устройства. При этом в приложениях, использующих удаленный контроль параметров различных систем, дискретные датчики соединяются с одним из входов-выходов прерывания модулей RC220x. Это позволяет в определенные моменты выводить модули из режима ожидания и передавать данные.
При использовании датчиков с непрерывно изменяющимися параметрами в моделях RC2200 и RC2204 может быть реализован режим, при котором датчики постоянно опрашиваются с частотой 32 кГц. В модели RC2202 этой возможности нет.
Поскольку ZigBee-MAC-уровень занимает объем около 16 кбит, то модуль RC2202 (Flash 32 кбит) может быть использован только в качестве RFD и оконечного устройства.
Модули RC2204 (Flash 64 кбит) и RC2200 (Flash 128 кбит) могут быть использованы как FFD и запрограммированы для работы в качестве координатора или маршрутизатора.
Модули серии RC220x являются полностью готовыми к работе устройствами. Для передачи данных через последовательный порт достаточно использовать любую коммуникационную программу. Установив в настройках значения «19200, 8, 1, N. No flow control», можно передавать данные между двумя модулями без всякого дополнительного программного обеспечения ZigBee.
В простейшем случае для передачи данных необходимы две линии (RXD, TXD), подключенные к внешнему микроконтроллеру. Для изменения конфигурации нужно будет задействовать еще одну линию «CONFIG».
Более подробную информацию о модулях серии RC220x можно найти в отдельных публикациях [6, 7].
Модули RC220x дают возможность разработчику также встраивать собственное программное обеспечение верхних уровней. Однако для этого нужно дополнительно приобретать ПО для стека протокола ZigBee. При этом с помощью модулей серии можно будет реализовать сети с более сложной топологией «каждый с каждым» и «кластерное дерево».
ZigBee-модуль RC2200AT-SPPIO
Новый модуль RC2200AT-SPPIO (рис. 2) дополняет рассмотренную выше серию RC220x. Модуль выполнен в SMD-корпусе и не требует дополнительных компонентов. Его габаритные размеры: 16,5_35,6_3,5 мм. Базовые технические характеристики модуля RC2200AT-SPPIO соответствуют характеристикам RC2200 и поэтому не рассматриваются в этом разделе.
Структурная схема модуля RC2200AT-SPPIO приведена на рис. 2 [5].
Модуль содержит приемопередатчик 802.15.4, управляющий микроконтроллер, UART, пользовательские порты входа-выхода, встроенную антенну.
Основным отличием, делающим новый модуль уникальным в своем классе подобных устройств, является профиль поддержки последовательного порта и управления пользовательским входом-выходом (SPPIO — Serial Port Profile Input Output mapping). Этот профиль относится к верхним пользовательским уровням (Application Profiles, Application framework) и обеспечивает связь оконечных устройств различного типа с ZigBee-модулем (рис. 3).
Другая важная отличительная черта нового модуля заключается в возможности программирования и управления модуля с помощью АТ-команд. Для RC2200AT-SPPIO имеется набор базовых команд, позволяющих реализовывать основные функции ZigBee-модуля по программированию и пересылке данных.
Профиль SPPIO является совместной разработкой фирм Radiocrafts и Airbee Wireless [8–10]. Данный профиль верхнего пользовательского уровня не является общепринятым и одобренным всеми членами ZigBee Alliance. Профиль SPPIO — это внутрифирменная разработка фирмы Airbee Wireless, базирующаяся на стеке протоколов Airbee-stack. Пользовательский уровень разработан с использованием программного продукта Airbee-ZNMS (Network Management System), который представляет собой вариант стандартного протокола SNMP. Программное обеспечение Airbee-ZNMS предназначено для управления ZigBee-сетями конфигурации «каждый с каждым». Это ПО также выполняет функции ZigBee IP-шлюза. Поэтому важной отличительной чертой нового модуля RC2200AT-SPPIO является возможность создания на его базе сетей с топологией «каждый с каждым» без дополнительного программного обеспечения.
Пользовательский профиль SPPIO Radiocrafts-Airbee позволяет реализовать следующие функции:
- прием-передачу данных в асинхронном режиме с буферизацией через UART;
- установку длины пакета, символа окончания или тайм-аута;
- связывание до 16 цифровых сигналов между двумя устройствами;
- связывание до 8 аналоговых сигналов между двумя устройствами;
- прием-передачу данных по событию, прерыванию или таймеру;
- адресацию пакетов на определенный узел;
- управление и программирование при помощи АТ-команд.
Для прикладных задач, связанных со сбором и обработкой данных, особый интерес представляют именно такие сети (mesh). Новый модуль RC2200AT-SPPIO может служить основой этих сетей, что предоставляет разработчикам уникальные возможности при проектировании сложных систем сбора и обработки информации от различных датчиков.
Характерной особенностью подобных сетей, построенных на базе модулей RC2200ATSPPIO, является отсутствие внешнего контроллера, осуществляющего управление процессом сбора и передачи информации. В данном варианте его функции возлагаются на сами модули RC2200AT-SPPIO.
Следует подчеркнуть, что профиль SPPIO, являющийся собственной разработкой фирмы Airbee Wireless, не поддерживается другими ZigBee-сетями, имеющими иные профили верхнего уровня. Поэтому модуль RC2200AT-SPPIO не сможет передавать данные в зоне покрытия другой ZigBee-сети. Для стыковки с иными сетями необходимо дополнительное согласующее устройство, роль которого может выполнять координатор сети на базе модулей RC2200AT-SPPIO.
Модуль может быть запрограммирован для работы в конфигурации с 8 аналоговыми и 8 цифровыми входами-выходами либо с 16 цифровыми входами-выходами. Логические уровни на линиях входа-выхода соответствуют КМОП 3,0 В.
Интерфейс модуля UART может быть использован для связи с внешним управляющим контроллером, для передачи данных и для конфигурирования модуля. По умолчанию скорость передачи данных через UART равна 19,2 кбит/с. Через UART к модулю может быть подключен либо внешний микроконтроллер, либо схема согласования уровней для интерфейсов RS-232/422/485. Процесс пересылки данных через UART можно регулировать путем программного изменения таких параметров, как UART_BAUD_RATE, UART_NUMBER_OF_BITS, UART_PARITY, UART_STOP_BITS, UART_FLOW_CTRL. Для аппаратного контроля потока дополнительно можно использовать параметры CTS, RTS. Параметр RXTX используется для управления драйвером интерфейса RS-485.
В зависимости от режима работы модуля UART может быть использован для передачи данных или для работы с АТ-командами. При включении модуль по умолчанию будет находиться в режиме «Data mode».
Для того чтобы перевести модуль в командный режим («Command mode») и работать с АТ-командами, нужно выполнить команду «+++». После отработки этой команды модем переходит в режим «offline», в котором становится доступным АТ-интерфейс.
С помощью АТ-команд можно менять параметры пересылки данных PACKET_LENGTH, PACKET_TIMEOUT, PACKET_END_CHARACTER.
В модуле имеются два порта (8 линий каждый), которые используются для контроля и управления пользовательскими входами-выходами. Входы-выходы первого порта могут быть сконфигурированы как аналоговые или как цифровые. Второй порт может быть использован только под цифровые входы-выходы. Направление передачи данных для каждой линии (вход или выход) определяется параметрами IO_MASK1 и IO_MASK2. Значение (1) соответствует входу, а значение (0) соответствует выходу. С помощью параметра AD_MASK для первого порта выбирается вид сигнала (1 — аналоговый, 0 — цифровой). Парные модули, МАС-адреса которых служат адресами назначения друг для друга, должны быть сконфигурированы комплементарно. Это значит, что вход одного парного модуля должен соответствовать выходу другого. Выбор типа сигнала (аналоговый или цифровой) должен быть одинаковым у обоих парных модулей.
Сигналы, поступающие на аналоговые входы, подаются затем на 10-разрядный АЦП. С аналоговых выходов снимаются сигналы с ШИМ-модуляцией. В модуле имеется возможность снимать сигналы, модулированные на частотах 4 и 32 кГц.
Наличие отмеченных характеристик позволяет использовать модули RC2200AT-SPPIO практически с любыми типами аналоговых и цифровых датчиков. Модули чрезвычайно просты в эксплуатации. Для их запуска в работу не нужно специальных знаний по технологии ZigBee, достаточно при помощи АТ-команд задать параметры работы модуля и подать питание.
На базе RC2200AT-SPPIO очень просто реализуется сеть ZigBee. Для этого нужно запрограммировать один модуль в качестве координатора, а все остальные модули как маршрутизаторы или оконечные устройства.
На следующем этапе задаются уникальные адреса каждого устройства (MAC-address). При использовании пользовательских входов-выходов предварительно программируются их параметры (направление передачи данных, схема передачи данных). После включения питания маршрутизаторы и оконечные устройства автоматически связываются с координатором и образуют сеть, в которой можно передавать данные между устройствами, объединенными в пары, а также выводить данные на последовательный порт или линии входа-выхода.
Дополнительную информацию о модулях RC2200AT-SPPIO можно найти в документах [11, 12].
Литература
- http://www.zigbee.org/en/index.asp
- www.ieee802.org/15/pub/TG4
- Пушкарев О. Кирпичики для построения сети ZigBee: трансиверы стандарта 802.15.4, трансиверы, микромодули и программные реализации стека // Беспроводные технологии. 2005. № 1.
- Агафонов Н. Технологии беспроводной передачи данных ZigBee, BlueTooth, Wi-Fi // Беспроводные технологии. 2006. № 2.
- Peder Martin Evjen. ZigBee-ready SPPIO application profile for wireless sensor and actuator networks. Radiocrafts AS.
- ZigBee-Modules: The Last Piece of the Puzzle. http://www.radiocrafts.com/download.html#notes
- RC220x Data Sheet (rev.1 0). 2005.
- AN003. Implementing ZigBee Solutions, v.2.0.
- http://www.airbeewireless.com/znms.php
- ZigBee-ready SPPIO Application Profile. http://www.radiocrafts.com/download.html#notes
- AN006. File transfer using SPPIO v. 1.0.
- RC2200AT-SPPIO Data Sheet. v. 04. 2005.