exponenta event banner

Генерация и декодирование кадров ZigBee NET

В этом примере показано, как использовать библиотеку Communications Toolbox™ Library для протокола ZigBee ® для генерации и декодирования кадров NET спецификации ZigBee [1].

Фон

Стандарт ZigBee определяет сетевой (NET или NWK) и прикладной (APP или APL) уровни для низкоскоростных беспроводных персональных сетей. Эти спецификации уровня NET- и APP основаны на спецификациях PHY и MAC IEEE ® 802.15.4™ [2]. Устройства ZigBee находят применение в домашней автоматизации и создании сетей датчиков и имеют большое значение для развития Интернета вещей.

Архитектура

Зигби. Объект конфигурации NETFrameConfig используется как при генерации, так и при декодировании кадров ZigBee NET. Такие объекты описывают фрейм уровня NET и определяют его тип и все применимые свойства. Зигби. Функция NETFrameGenerator принимает зигби. Объект NETFrameConfig, описывающий кадр и, при необходимости, полезную нагрузку уровня NET (кадр уровня APP) в байтах (два символа), и выводит кадр NET в байтах. Зигби. Функция NETFrameDecoder принимает блок данных протокола NET (NPDU) в байтах и выводит zigbee. Объект NETFrameConfig, описывающий кадр и, возможно, кадр уровня NET в байтах. Раздел 3.3 в [1] описывает форматы кадров NET.

Декодирование кадров NET домашних автоматизированных радиоприемников ZigBee

В этом разделе декодируются кадры NET, передаваемые с коммерческого радиоблока ZigBee, обеспечивающего автоматизацию дома, и записываемые с помощью радиоблока USRP ® B200-mini и пакета поддержки Communications Toolbox для радиоблока USRP ®.

Зигби. Функция NETFrameDecoder может декодировать кадры данных NET-уровня ZigBee и заголовок типов кадров net-command.

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

Следует отметить, что декодирование на уровне NET указывает, что полезная нагрузка на уровне NET зашифрована (Security = true). Безопасность может использоваться либо в сети, либо на прикладном уровне; в этом кадре используется защита сетевого уровня. С одной стороны, поле DataEncryption является ложным в кадре, а длина кода целостности сообщений (MIC) равна нулю, что указывает на то, что используется уровень безопасности # 0 и что полезная нагрузка не зашифрована. Однако в соответствии со стандартом ZigBee (пункт 4.4.1.2 в [1]) эти два поля перезаписываются значениями, хранящимися локально во время настройки сети. В этом случае этот кадр был защищен уровнем безопасности # 5, что означает, что NET-полезная нагрузка зашифрована и что длина MIC составляет 32 бита.

Создание кадров NET

Зигби. Функция NETFrameGenerator может генерировать незащищенные кадры данных NET-уровня 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, Документ спецификации ZigBee 053474r17, 2007

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