ZigBee СЕТЕВАЯ генерация кадра и декодирование

Этот пример показывает, как пользоваться Библиотекой 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

Этот раздел декодирует СЕТЕВЫЕ кадры, переданные от коммерческого радио 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);

Дальнейшее исследование

Можно далее исследовать следующий генератор и декодирующие функции, а также объект настройки:

Выбранная библиография

  1. Союз ZigBee, документ 053474r17, 2007 спецификации ZigBee

  2. IEEE 802.15.4-2011 - Стандарт IEEE для Локальных сетей и городских компьютерных сетей - Часть 15.4: Беспроводные Персональные Сети области С низкой ставкой (LR-WPANs)