В этом примере показано, как пользоваться Библиотекой Communications Toolbox™ для Протокола ZigBee®, чтобы сгенерировать и декодировать СЕТЕВЫЕ системы координат спецификации [1] ZigBee.
Стандарт ZigBee задает сеть (СЕТЕВОЙ или NWK) и приложение (APP или APL) слои для беспроводных персональных сетей области с низкой ставкой. Они СЕТЕВЫЕ - и спецификации слоя APP полагаются на PHY и спецификации MAC IEEE® 802.15.4™ [2]. Устройства ZigBee находят применение в домашней автоматизации и организации сети датчика и очень относятся к тренду Интернета вещей (IoT).
zigbee. Объект настройки NETFrameConfig используется и в генерации и в декодировании ZigBee СЕТЕВЫЕ системы координат. Такие объекты описывают систему координат СЕТЕВОГО слоя и задают ее тип системы координат и все применимые свойства. zigbee. Функция NETFrameGenerator принимает zigbee. Объект NETFrameConfig, описывающий систему координат, и опционально полезную нагрузку СЕТЕВОГО слоя (система координат слоя APP) в байтах (2D символы) и выходные параметры СЕТЕВАЯ система координат в байтах. zigbee. Функция NETFrameDecoder принимает Сетевой модуль данных о протоколе (NPDU) в байтах и выводит zigbee. Объект NETFrameConfig, описывающий систему координат и возможно СЕТЕВОЙ слой, структурирует в байтах. Пункт 3.3 в [1] описывает СЕТЕВЫЕ форматы системы координат.
Этот раздел декодирует СЕТЕВЫЕ кадры, переданные от коммерческого радио ZigBee, разрешающего домашнюю автоматизацию и полученное использование USRP® B200-мини-радио и Пакет Поддержки Communications Toolbox для радио USRP®.
zigbee. Функция NETFrameDecoder может декодировать СЕТЕВОЙ слой системы координат данных ZigBee и заголовок типов системы координат сетевой команды.
load zigbeeNETCaptures % netFrame [netConfig, netPayload] = zigbee.NETFrameDecoder(netFrame); netConfig
netConfig =
NETFrameConfig with properties:
FrameType: 'Data'
ProtocolVersion: 'ZigBee 2007'
SequenceNumber: 212
Addressing:
SourceAddress: '0000'
DestinationAddress: '35EA'
IEEEAddressing: 'None'
Security:
Security: 1
DataEncryption: 0
MICLength: 0
KeyIdentifier: 'Network'
ExtendedNonce: 1
FrameCounter: 193458
SecuritySourceAddress: '24FD5B00000014B6'
KeySequence: 0
Routing:
Radius: 30
DiscoverRoute: 1
SourceRouting: 1
RelayIndex: 0
RelayList: [0x4 char]
Multicast:
Multicast: 0
Обратите внимание на то, что декодирование СЕТЕВОГО слоя указывает, что полезная нагрузка СЕТЕВОГО слоя зашифрована (безопасность = верный). Безопасность может использоваться или в сети или в прикладном уровне; эта система координат использует безопасность сетевого слоя. С одной стороны, поле DataEncryption является ложным в системе координат, и длина Кода целостности сообщения (MIC) является нулем, которые указывают, что уровень безопасности № 0 используется и что полезная нагрузка не зашифрована. Однако согласно стандарту ZigBee (Пункт 4.4.1.2 в [1]), эти два поля перезаписываются со значениями, локально сохраненными во время сетевой настройки. В этом случае эта система координат была защищена с уровнем безопасности № 5, что означает, что СЕТЕВАЯ полезная нагрузка зашифрована и что длина MIC составляет 32 бита.

zigbee. Функция NETFrameGenerator может сгенерировать небезопасный СЕТЕВОЙ слой системы координат данных ZigBee. Объект настройки может быть далее настроен.
netConfig = zigbee.NETFrameConfig('SequenceNumber', 123, 'DestinationAddress', 'E568'); numOctets = 50; payload = dec2hex(randi([0 2^8-1], numOctets, 1), 2); netFrame = zigbee.NETFrameGenerator(netConfig, payload);
Можно далее исследовать следующий генератор и декодирующие функции, а также объект настройки:
Союз ZigBee, документ 053474r17, 2007 спецификации ZigBee
IEEE 802.15.4-2011 - Стандарт IEEE для Локальных сетей и городских компьютерных сетей - Часть 15.4: Беспроводные Персональные Сети области С низкой ставкой (LR-WPANs)