В этом примере показано, как пользоваться Библиотекой 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 object, описывающий систему координат, и опционально полезную нагрузку СЕТЕВОГО слоя (система координат слоя APP) в байтах (2D символы), и выводит СЕТЕВУЮ систему координат в байтах. Функция zigbee.NETFrameDecoder принимает Сетевой модуль данных о протоколе (NPDU) в байтах и выводит zigbee.NETFrameConfig object, описывающий систему координат и возможно систему координат СЕТЕВОГО слоя в байтах. Пункт 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)