231
Рисунок 1. Стек протоколов ZigBee
Стек протоколов ZigBee
Спецификация ZigBee регламентирует стек протоколов взаимодействия узлов сети, в кото-
ром протоколы верхних уровней используют сервисы, предоставляемые протоколами ниже лежа-
щих уровней.
Уровень приложений (APL) состоит из приложений (Application Framework), объекта устройства ZigBee (ZD0) и подуровня поддержки приложений (APS).
Приложения (Application Framework) содержит описание порядка создания профилей в стеке ZigBee, гарантирующего их совместимость, а также определяет:
стандартные типы данных для профилей,
дескрипторы, помогающие в обнаружении служб,
форматы кадров для транспортировки данных,
значения пар ключей.
Это позволяет быстро разрабатывать простые профили на основе атрибутов.
Объекты приложений (Application Objects) – программные модули, управляющие устрой-
ствами ZigBee в конечных точках. Одна базовая станция ZigBee может поддерживать до 240 объ-
ектов приложений. Объекты приложений поддерживают конечные точки, пронумерованные от 1
до 240. Конечная точка 0 зарезервирована для объекта устройства ZigBee (ZD0).
Объект устройства ZigBee (ZigBee Device Object – ZD0):
232
определяет роль устройства ZigBee: координатор, маршрутизатор или конечное
устройство;
инициирует запросы поиска и присоединения и/или отвечает на такие запросы;
устанавливает безопасную связь между устройствами ZigBee.
Он также предоставляет богатый набор команд управления, определяемых в профиле устройства ZigBee (используются при вводе в эксплуатацию).
План управления ZD0 (ZD0 Management Plane) поддерживает связь ZD0 с подуровнем поддержки приложений (APS) и сетевым уровнем (NWK). Позволяет ZD0 обрабатывать запросы приложений на доступ к сети и обеспечение безопасности, используя сообщения профиля устрой-
ства ZigBee (ZigBee Device Profile – ZDP).
Подуровень поддержки приложений (Application Support Sublayer – APS). Отвечает за предоставление данных приложениям и профилям устройства ZigBee. Подуровень также управля-
ет присоединениями в сети ZigBee и хранит данные о таких присоединениях в своей таблице.
Поставщик услуг безопасности (Security Service Provider – SSP) обеспечивает механизмы безопасности для уровней, использующих шифрование – NWK и APS. Инициируется и конфигу-
рируется объектом устройства ZD0.
Сетевой уровень (Network Layer – NWK) обрабатывает сетевые адреса и маршрутизацию по вызовам MAC уровня. В его задачи также входят:
запуск сети (если устройство является координатором);
присвоение сетевых адресов;
добавление и удаление сетевых устройств;
маршрутизация сообщений;
применение политики безопасности;
осуществление поиска маршрутов.
Уровни, определяемые стандартом IEEE 802.15.4
Уровень управления доступом к среде (Medium Access Control Layer – MAC) отвечает за надежную связь устройства с непосредственными соседями, помогает разрешать коллизии и по-
вышать эффективность. МАС уровень отвечает также за ассемблирование и декомпозицию кадров и пакетов данных.
Физический уровень (Physical Layer – PHY) обеспечивает интерфейс к физической среде передачи – радио. Физический уровень состоит из двух уровней, работающих в разных диапазонах частот. Уровень, работающий при меньших частотах, покрывает диапазоны 868 МГц для Европы и 915 МГц для таких стран, как США и Австралия. Высокочастотный физический уровень работа-
ет на частоте 2,4 ГГц и применяется практически во всем мире.
Точки доступа
233
Связь между элементами стека протоколов ZigBee осуществляется через точки доступа к услугам (service access point – SAP):
APSDE-SAP – к данным подуровня поддержки приложений;
APSME-SAP – к управлению подуровнем поддержки приложений;
APSSE-SAP – к управлению безопасностью подуровня поддержки приложений;
NLDE-SAP – к данным сетевого уровня;
NLME-SAP – к управлению сетевым уровнем;
NLSE-SAP – к управлению безопасностью сетевого уровня;
MLDE-SAP – к данным подуровня МАС;
MLME-SAP – к управлению подуровнем МАС;
PD-SAP – к данным физического уровня PHY;
PLME-SAP – к управлению физическим уровнем PHY;
RF-SAP – к трансмиттеру.
Типы устройств
Сети ZigBee включают следующие типы устройств (базовых станций):
координаторы;
маршрутизаторы;
конечные устройства.
Координатор
Это устройство запускает сеть и управляет ею. Координатор формирует сеть, является цен-
тром управления сети и доверительным центром (trust-центром) – устанавливает политику без-
опасности и задает настройки во время подключения устройства к сети, отвечает за ключи без-
опасности.
Маршрутизатор
Маршрутизатор расширяет область покрытия сети, осуществляет динамическую маршрути-
зацию в обход препятствий, восстанавливает маршруты в случаях перегрузки сети или отказа ка-
кого-либо устройства. Маршрутизаторы могут присоединяться к координатору и другим маршру-
тизаторам, а также поддерживать дочерние устройства. Маршрутизаторы осуществляют маршру-
тизацию пакетов по сети и должны быть готовы к передаче данных в любой момент времени. По-
этому эти узлы не используют режимов пониженного энергопотребления и имеют стационарное питание. Их количество в сети должно быть достаточным для обслуживания требуемого количе-
ства спящих узлов. Максимальное количество спящих узлов, обслуживаемых одним маршрутиза-
тором – 32.
Конечное устройство
234
Может принимать и отправлять сообщения, но не может транслировать пакеты и осуществ-
лять маршрутизацию. Конечные устройства подключаются к маршрутизатору или координатору и не могут поддерживать дочерних устройств.
Как особый тип устройств, в сетях ZigBee можно выделить так называемые «спящие устройства». По сути это конечные устройства, переведенные в спящий режим.
Спящие устройства используют режимы пониженного энергопотребления. Как правило, это узлы с батарейным питанием. Их количество определяется конкретным приложением. На время
«сна» маршрутизаторы, к которым эти устройства подключены, «представляют» их в сети.
Профиль стека
Стандарт ZigBee описывает профиль стека, который определяет сеть, службы приложений и параметры безопасности для всей сети. Профиль стека для конкретной ZigBee сети выбирается сетевым администратором (проектировщиком), исходя из области применения (автоматизация здания, управление техпроцессом, позиционирование). Каждый такой профиль стека затем будет определять сетевые параметры, такие как:
общие размеры сети,
поддерживаемые алгоритмы маршрутизации,
размеры таблиц маршрутизации и привязки приложений,
характер службы безопасности для этой сети.
Особый интерес с точки зрения топологии сети представляет спецификация трех парамет-
ров: максимальная глубина сети (nwkMaxDepth), максимальное количество дочерних связей маршрутизатора (nwkMaxChildren), и максимальное количество связей с дочерними маршрутиза-
торами (nwkMaxRouters). Вместе они определяют общую структуру сети.
В соответствии со стандартом IEEE 802.15.4 каждое сетевое устройство имеет 64-
разрядный (длинный) IEEE адрес, который уникально идентифицирует это устройство. Чтобы продлить жизнь аккумуляторных батарей, для сокращения размеров пакетов, и соответственно времени активного взаимодействия устройств используются более короткие адреса. Стан-
дарт ZigBee требует, чтобы обмен сообщениями после присоединения к сети выполнялся с 16-
битными (короткими) сетевыми адресами. 16-битный сетевой адрес присваивается вновь присо-
единяемым устройствам во время обмена сообщениями в процессе присоединения.
Координатор ZigBee всегда имеет адрес 0000. Координатор по установленному стандартом
ZigBee алгоритму определяет, исходя из параметров профиля стека, диапазоны адресов, которые присваиваются присоединяемым устройствам в соответствии с их местоположением в сетевой иерархии. Хотя эти диапазоны адресов различаются, в зависимости от параметров профиля стека,
диапазоны адресов всегда одинаковы для конкретного набора параметров профиля стека. Напри-
мер, сетевые адреса, выделяемые в сети на рисунке 4, отражают значение параметров профиля стека nwkMaxDepth = 7, nwkMaxChildren = 5 и nwkMaxRouters = 3. Для этих же трех значений па-
235
раметров первый маршрутизатор, присоединяемый координатором будет всегда получать сетевой адрес 0001, второй 071e и так далее.
Типы сетей
Одной из важных особенностей сетей ZigBee является возможность выбора топологии сети,
в наибольшей мере отвечающей конкретному применению. Точная структура сети ZigBee в боль-
шинстве случаев не может быть заранее предопределена, так как зависит от взаимного расположе-
ния устройств и прохождения радиоволн во время формирования сети. Однако три упомянутых параметра профиля стека будут диктовать общую структуру (топологию) сети.
Например, если приложение имеет устройства, физически расположенные в линию (напри-
мер, вдоль конвейера), установка параметров nwkMaxChildren=1 и nwkMaxRouters=1 создаст ли-
нейную структуру, как показано на рисунке 2.
Рисунок 2. Линейная топология сети
Параметры профиля стека для древовидной сети, изображенной на рис. 4, приведены выше.
Топология «звезда» может быть достигнута путем установки nwkMaxDepth=1 и nwkMaxRouters=0.
Гибкость сетевых структур ZigBee, настраиваемых в соответствии с областью применения,
наилучшим образом проявляется в ситуациях, когда большинство других сетей оказываются не-
пригодны.
Топология ячеистой сети
Наиболее перспективной в сети ZigBee является ячеистая топология (mesh-топология).
Ячеистая сеть – это сеть взаимосвязанных маршрутизаторов и конечных устройств, в кото-
рой каждый маршрутизатор имеет, по крайней мере, две связи и может транслировать сообщения своих соседей. Как показано на рис. 3, ячеистая сеть состоит из одного координатора и нескольких маршрутизаторов и конечных устройств.
В такой сети каждое устройство может связываться с любым другим устройством как напрямую, так и через промежуточные узлы сети. Ячеистая топология поддерживает «многошаго-
вую» (multi-hop) связь, при которой данные проходят шагами от одного устройства к другому, ис-
пользуя наиболее надежные линии связи и наиболее эффективные маршруты, пока не достигнут цели.