IEEE 802.15.4 - Генерация и декодирование MAC- Системы координат

В этом примере показано, как сгенерировать и декодировать MAC-кадры стандарта IEEE ® 802.15.4™ [1] с помощью библиотеки Communications Toolbox™ для протокола ZigBee ®.

Фон

Стандарт IEEE 802.15.4 задает слои MAC и PHY низкоскоростных беспроводных персональных вычислительных сетей (LR-WPAN) [1]. Слои MAC и PHY IEEE 802.15.4 обеспечивают базис других стандартов более высокого уровня, таких как ZigBee, WirelessHart ®, 6LoWPAN и MiWi. Такие стандарты находят применение в домашней автоматизации и сенсорных сетях и имеют большое значение для тренда Интернета вещей (IoT).

Архитектура

MAC- слоя IEEE 802.15.4 вставляет заголовок MAC и нижний колонтитул MAC до и после слоя сети системы координат, соответственно. Нижний колонтитул MAC содержит проверку CRC.

Lrwpan. Объект строения MACFrameConfig используется как при генерации, так и при декодировании MAC- систем координат IEEE 802.15.4. Такие объекты описывают MAC-фрейм и определяют его тип системы координат и все применимые свойства. Lrwpan. Функция MACFrameGenerator принимает lrwpan. Объект MACFrameConfig, описывающий систему координат и необязательно полезную нагрузку MAC-уровня (NET- системы координат) в байтах (двухсимвольных) и выходы MAC- системы координат в битах. Lrwpan. Функция MACFrameDecoder принимает модуль данных MAC-протокола (MPDU) в битах и выводит lrwpan. Объект MACFrameConfig, описывающий систему координат и, возможно, система координат уровня NET в байтах. Пункт 5 в [1] описывает форматы MAC-фреймов.

Декодирование MAC- Систем координат домашней автоматизации ZigBee Radios

В этом разделе декодируются MAC-кадры, передаваемые с коммерческих радиоприемников ZigBee, обеспечивающих автоматизацию дома, и захваченные с помощью B200-mini радио USRP ® и пакета поддержки Communications Toolbox для радио USRP ®. Слой PHY захваченных форм волны был декодирован согласно методике, описанной в примере восстановления сигналов OQPSK IEEE 802.15.4. Получившиеся MPDU сохраняются в файле MAT:

load lrwpanMACCaptures

Сначала декодируют систему координат данных:

[dataFrameMACConfig, netFrame] = lrwpan.MACFrameDecoder(MPDU_data);
if ~isempty(dataFrameMACConfig)
  fprintf('CRC check passed for the MAC frame.\n');
  dataFrameMACConfig
end
CRC check passed for the MAC frame.

dataFrameMACConfig = 

  MACFrameConfig with properties:

                       FrameType: 'Data'

   General MAC properties:
                  SequenceNumber: 244
           AcknowledgmentRequest: 1
           DestinationAddressing: 'Short address'
        DestinationPANIdentifier: '1E16'
              DestinationAddress: '35EA'
                SourceAddressing: 'Short address'
                   SourceAddress: '0000'
    PANIdentificationCompression: 1
                    FramePending: 0
                    FrameVersion: '2003'
                        Security: 0

Затем декодируют систему координат подтверждения:

ackFrameMACConfig = lrwpan.MACFrameDecoder(MPDU_ack)
ackFrameMACConfig = 

  MACFrameConfig with properties:

                FrameType: 'Acknowledgment'

   General MAC properties:
           SequenceNumber: 165
    DestinationAddressing: 'Not present'
         SourceAddressing: 'Not present'
             FramePending: 0
             FrameVersion: '2003'
                 Security: 0

Генерация MAC- Систем координат

Lrwpan. Функция MACFrameGenerator может сгенерировать все типы MAC-фреймов из стандарта IEEE 802.15.4 [1], т.е., типы фреймов 'Beacon', 'Data', 'Acknowledgment' и 'MAC Command'. Типы MAC Command frame можно далее задать как: 'Association request', 'Association response', 'Diassociation notification', 'Data request', 'PAN ID conflication notification', 'Orphan notification', 'Beacon request' и 'Gts'.

Этот код иллюстрирует, как сгенерировать системы координат для всех типов систем координат:

% Beacon
beaconConfig = lrwpan.MACFrameConfig('FrameType', 'Beacon');
beaconMACFrame = lrwpan.MACFrameGenerator(beaconConfig);

% Data
dataConfig = lrwpan.MACFrameConfig('FrameType', 'Data');
numOctets = 50;
payload = dec2hex(randi([0 2^8-1], numOctets, 1), 2);
dataMACFrame = lrwpan.MACFrameGenerator(dataConfig, payload);

% Acknowledgment
ackConfig = lrwpan.MACFrameConfig('FrameType', 'Acknowledgment');
ackFrame = lrwpan.MACFrameGenerator(ackConfig);

% MAC Command
commandConfig = lrwpan.MACFrameConfig('FrameType', 'MAC Command');
commandConfig.MACCommand = 'Association request';
% Valid settings for MACCommand also include: 'Association response',
% 'Disassociation notification', 'Data request', 'PAN ID conflict
% notification', 'Orphan notification', 'Beacon request', and 'GTS request'.
commandFrame = lrwpan.MACFrameGenerator(commandConfig);

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

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

Избранная библиография

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