Как работает технология ZigBee и виды сетей на ее основе


Обычно многие люди путают два термина XBee и ZigBee, большинство из них используют их как синонимы. Но на самом деле это не так: ZigBee — стандартный протокол беспроводной сети, а XBee — это продукт, который поддерживает различные протоколы беспроводной связи, включая ZigBee, Wi-Fi (модуль Wi-Fi), 802.15.4, модуль 868 МГц и т. д. В этой статье мы будем в основном ориентироваться на RF-модуль Xbee/Xbee-PRO ZB, который использует прошивку ZigBee.

Что такое технология/протокол Zigbee?

Хотя сейчас технология ZigBee переживает далеко не лучшие времена и постепенно вытесняется такими технологиями как LoRa и NB-IoT, тем не менее, сейчас во всем мире работает достаточно много беспроводных устройств на ее основе. Также ее по прежнему включают в прошивки современных универсальных беспроводных модулей. На нашем сайте мы рассматривали использование технологии ZigBee в следующих проектах:

Как работают современные беспроводные протоколы

Большинство современных сетевых протоколов используют концепцию уровней (так называемая 7-уровневая модель OSI, хотя в ряде случаев ее называют 4-уровневой) для разделения различных компонентов программного обеспечения на независимые модули, которые могут собирать различные производители отдельно друг от друга. Возможно, придется потрудиться, чтобы получить глубокое понимание архитектуры Xbee, но мы постараемся сделать этот процесс максимально простым для вас.

Начнем с некоторых основных терминов, таких как маршрутизация, предотвращение коллизий и подтверждение. Чтобы понять первый термин, просто взгляните на его название «маршрут», что означает отслеживание или определение пути. В сети маршрутизация означает обеспечение направления данных от узла источника к узлу назначения. Когда два узла в сети пытаются осуществлять передачу одновременно, возникает ситуация, называемая коллизией. В современных беспроводных сетях, как правило, используется метод множественного доступа с контролем несущей и предотвращением конфликтов (CSMA/CA), который позволяет избежать конфликтов. По сути, в нем узлы разговаривают так же, как и люди, они проверяют, что никто не разговаривает, прежде чем начать отправлять данные.

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

Архитектура ZigBee

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

Архитектура ZigBee

Уровень приложения определяет различные объекты адресации, включая профили, кластеры и конечные точки. Вы можете увидеть уровни стека ZigBee на рисунке выше.

Сетевой уровень: добавляет возможности маршрутизации, которые позволяют пакетам радиочастотных данных проходить через несколько устройств (несколько «прыжков») для маршрутизации данных от источника к месту назначения (одноранговая сеть).

Уровень MAC  управляет транзакциями радиочастотных данных между соседними устройствами (точка-точка). MAC включает в себя такие услуги, как повторная попытка передачи и управление подтверждением, а также методы предотвращения конфликтов.

Физический уровень: определяет, как устройства подключаются в сеть; он определяет выходную мощность, количество каналов и скорость передачи. Большинство приложений ZigBee работают в диапазоне ISM 2,4 ГГц со скоростью передачи данных 250 кбит/с.

Большинство устройств XBee имеют встроенные линии управления потоком, ввода-вывода, аналого-цифрового преобразования и индикаторов, которые можно настроить с помощью соответствующих команд. Аналоговые выборки возвращаются как 10-битные значения. Аналоговое показание масштабируется таким образом, что 0x0000 соответствует 0 В, а 0x3FF = 1,2 В. (Аналоговые входы модуля не могут считывать более 1,2 В)

Чтобы преобразовать показания АЦП в мВ, сделайте следующее:

Передача данных в ZigBee

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

Обычно передача данных пакетами ZigBee может осуществляться двумя способами: одноадресной и широковещательной рассылки.

Широковещательная передача (рассылка)

Широковещательные передачи отправляются на многие или все устройства в сети. Широковещательные передачи по протоколу ZigBee распространяются по всей сети, так что все узлы получают эту передачу. Для этого координатор и все маршрутизаторы, получившие широковещательную передачу, повторно передают пакет три раза.

Принцип широковещательной рассылки в ZigBee

Одноадресная передача

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

Механизм однонаправленной передачи в ZigBee

Принципы работы сетей Zigbee и типы узлов в них

Что вам нужно, чтобы добраться до дома вашего друга? Вам просто нужен его адрес. Аналогично, для отправки данных из одного модуля Xbee в другой вам понадобится его уникальный адрес. Как и у людей, у Xbee даже есть несколько адресов, каждый из которых играет определенную роль в сети. Существует два типа адресов в технологии ZigBee: статический адрес (64-битный адрес) и динамический адрес (16-битный адрес) .

Адреса в ZigBee

64-битный адрес универсален; он встроен производителем в модуль Xbee. Ни одна другая радиостанция ZigBee в мире не будет иметь такой же статический адрес. На задней стороне каждого модуля xbee вы можете увидеть этот адрес, как показано на рисунке ниже, и, в частности, верхняя часть адреса «0013A200» одинакова для каждого модуля xbee.

64-битный адрес на модуле XBee

Устройство получает 16-битный адрес, который должен быть уникальным локально при подключении к сети ZigBee. 16-битный адрес 0x0000 зарезервирован для координатора. Все остальные устройства получают случайно сгенерированный адрес от маршрутизатора или устройства-координатора, который разрешает подключение. 16-битный адрес может измениться если обнаружено что два устройства имеют одинаковый 16-битный адрес или устройство покидает сеть и позже присоединяется (оно может получить другой адрес).

Идентификатор узла

Нашему мозгу всегда легче запоминать строки, а не числа. Следовательно, каждому модулю Xbee в сети может быть присвоен идентификатор узла.  Идентификатор узла — это набор символов, то есть строк, которые могут быть более удобным для человека способом обращения к узлу в сети.

Персональные сети

Сети, создаваемые модулями Xbee, называются персональными сетями или PAN (personal area networks). Каждая сеть определяется уникальным идентификатором PAN (PAN ID). Этот идентификатор является общим для всех устройств одной сети. ZigBee поддерживает как 64-битный, так и 16-битный PAN ID. Оба PAN-адреса используются для уникальной идентификации сети. Устройства в одной сети ZigBee должны использовать одни и те же 64-битные и 16-битные идентификаторы PAN. Если несколько сетей ZigBee работают в радиусе действия друг друга, каждая из них должна иметь уникальные идентификаторы PAN.

16-битный идентификатор PAN используется для адресации уровня MAC во всех передачах радиочастотных данных между устройствами в сети. Но из-за ограниченного адресного пространства 16-битного PAN ID (65 535 возможностей) может возникнуть вероятность того, что несколько сетей ZigBee (в пределах диапазона друг друга) могут иметь один и тот же 16-битный PAN ID. Чтобы разрешить эти конфликты, ZigBee Alliance создал 64-битный PAN ID. ZigBee определяет три различных типа устройств: координатор, маршрутизатор и конечное устройство.

В каждой сети всегда требуется один координатор для настройки сети. Поэтому он никогда не сможет "заснуть" (перейти в спящий режим). Он также отвечает за выбор канала и PAN ID (как 64-битного, так и 16-битного) для запуска сети. Это позволяет маршрутизаторам и конечным устройствам подключаться к сети, а также маршрутизировать данные в сети.

В сети может быть несколько маршрутизаторов. Один маршрутизатор может получать сигналы от других маршрутизаторов/EP (End Points - конечных точек). Он также никогда не может спать. Прежде чем он сможет передавать, получать или маршрутизировать данные, он должен присоединиться к PAN Zigbee. После присоединения он может разрешить маршрутизаторам и конечным устройствам подключаться к сети. После присоединения он также может помочь в маршрутизации данных. Он может буферизовать пакеты радиочастотных данных для спящих конечных устройств.

Конечных точек также может быть несколько. Они могут переходить в спящий режим для экономии энергии. Прежде чем они смогут передавать или получать данные, они должны присоединиться к PAN ZigBee.

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

Различные топологии сетей в ZigBee

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

В технологии ZigBee используются четыре основные топологии сети: ячеистая (Mesh), звезда, гибрид и дерево.

Топологии сетей в ZigBee

В Mesh-топологии (которая также называется ячеистой топологией) каждый узел соединен друг с другом, за исключением конечного устройства, поскольку конечные устройства не могут взаимодействовать напрямую. Чтобы обеспечить простую связь между двумя радиомодулями ZigBee, вам необходимо настроить одно с помощью прошивки координатора, а другое — с помощью прошивки маршрутизатора или конечной точки. Основное преимущество Mesh-сети заключается в том, что если одно из каналов становится непригодным для использования, это не выводит из строя всю систему. По технологии Mesh-сетей сейчас работают военные системы радиосвязи развитых иностранных государств, что обусловлено их высочайшей устойчивостью к воздействию различных дестабилизирующих факторов  Более подробно про принципы работы Mesh-сетей можно прочитать в этой статье.

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

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

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

Xbee прошивка

Программируемый модуль XBee оснащен процессором приложений Free Scale. Этот прикладной процессор поставляется с загрузчиком. Эта прошивка XBee ZV основана на стеке Embernet 3.xx ZigBee-PRO, модули XBee-Znet 2.5 можно обновить до этой функциональности. Вы можете проверить прошивку с помощью команды ATVR, о которой мы поговорим позже в этой главе. Номера версий XBee будут состоять из 4 значащих цифр. Номер версии также можно увидеть с помощью команды ATVR. Ответ возвращает 3 или 4 числа. Все числа шестнадцатеричные и могут иметь диапазон от 0 до 0xF. Версия указана как «ABCD». Цифры ABC — это номер основной версии, а D — номер подверсии основной версии. API, обсуждаемый в главе 4, и AT-команды практически одинаковы для Znet 2.5 и прошивки ZB.

В телекоммуникациях вся команда Hayes представляет собой команды, специфичные для языка Hayes, разработанные для модема Hayes Smart Modem в 1981 году. Они представляли собой серию коротких слов для управления модемом, упрощающих связь и настройку модема в те дни.

XBee также работает в командном режиме и включает AT-команды (ATTENTION - в переводе дословно «ВНИМАНИЕ»). Эти команды можно отправлять в XBee через терминалы. XBee и AT-настроенные радиостанции XBee имеют два режима связи.

Transparent (Прозрачный): радиостанция передает полученную информацию только на удаленный радиоадрес, на который она настроена. Данные, отправленные через последовательный порт, принимаются XBee как есть.

Command (режим команд): этот режим используется для связи с радиостанцией и настройки некоторых предварительно настроенных режимов. В этом режиме мы общаемся с модулями и меняем конфигурацию.

Вы можете ввести +++ и подождать одну секунду, не нажимая никаких других кнопок, после этого должно появиться сообщение ОК в виде изображения терминала вверху. При нажатии ОК XBee сообщает нам, что он находится в режиме команд и готов получать сообщения конфигурации.

Если вы подождете более 10 секунд, не нажимая кнопку, XBee вернется в TRANSPARENT режим. Затем вам придется повторно ввести +++, чтобы вернуться в режим команд.

AT-команды XBee

AT (TEST): это тестовая команда, позволяющая проверить, отвечает ли модуль «ОК», поскольку ответ подтверждает то же самое.

ATDH: старший адрес назначения. Чтобы настроить старшие 32 бита 64-битного адреса назначения, комбинация DL и DH дает вам 64-битный адрес назначения.

ATDL: младший адрес назначения. Это снова для настройки младших 32 бит 64-битного адреса назначения.

ATID: эта команда изменяет идентификатор PAN, который имеет размер 4 байта в шестнадцатеричном формате и может находиться в диапазоне от 0000 до FFFF.

ATWR: запись значений параметров в энергонезависимую память, чтобы изменения параметров сохранялись при последующих сбросах.

Примечание. После выдачи WR никакие дополнительные символы не должны отправляться в модуль до тех пор, пока мы не получим ответ «ОК\r».

ATRE (Restore Defaults): восстанавливает заводские настройки модуля. Это очень полезно, если модуль не отвечает.

Чтобы настроить модуль с помощью AT-команды после входа в командный режим (т. е. нажатия +++), вам необходимо ввести в терминал AT(XY), например ATID 1001 (это значение может быть любым от 0 до FFFF, команды XBee всегда используют шестнадцатеричные значения). Нажмите Enter, если он вернет ОК, затем вы можете быстро ввести ATID терминала, чтобы увидеть, было ли изменено значение, это будет окончательно записано только после использования ATWR в сеансе, записанное значение исчезает, как только модуль выключается, если ATWR не используется.

(Проголосуй первым!)
Загрузка...
21 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *