exponenta event banner

wlanMACFrame

Создание кадра MAC WLAN (MPDU или A-MPDU)

Описание

пример

[frame,frameLength] = wlanMACFrame(cfgMAC) производит frameкадр управления доступом к среде WLAN (MAC) для указанного объекта конфигурации кадра MAC. Функция генерирует блок данных протокола MAC (MPDU) или агрегатный MPDU (A-MPDU) в зависимости от значений свойств cfgMAC вход. Функция также вычисляет frameLength, общая длина кадра MAC.

пример

[frame,frameLength] = wlanMACFrame(payload,cfgMAC) генерирует кадр MAC WLAN, содержащий блоки данных службы MAC (MSDU) payload. Чтобы кадр MAC содержал блоки MSDU, FrameType имущества cfgMAC вход должен иметь значение 'Data' или 'QoS Data'. В противном случае функция игнорирует payload.

пример

[frame,frameLength] = wlanMACFrame(payload,cfgMAC,cfgPHY) генерирует кадр MAC WLAN в формате физического уровня (PHY), указанном cfgPHY. Для создания A-MPDU используйте этот синтаксис.

[frame,frameLength] = wlanMACFrame(cfgMAC,cfgPHY) генерирует кадр триггера MAC WLAN для указанных конфигураций MAC и PHY. Чтобы создать кадр триггера MAC, cfgPHY входные данные должны быть wlanNonHTConfig объект и FrameType имущества cfgMAC входные данные должны быть 'Trigger'.

пример

[frame,frameLength] = wlanMACFrame(___,'OutputFormat',format) определяет format, формат данных, в котором функция возвращает frame.

Примеры

свернуть все

Создать wlanMACFrameConfig объект для MAC-кадра запроса на отправку (RTS). Создайте кадр, вызвав wlanMACFrame и просмотрите результат.

macConfig = wlanMACFrameConfig('FrameType','RTS');
[frame,frameLength] = wlanMACFrame(macConfig);
disp(frame')
B000FFFFFF013579A952
4000FFFFFF02468B7AB8

Создание MAC-кадра WLAN для данных качества обслуживания (QoS) с указанной полезной нагрузкой.

macConfig = wlanMACFrameConfig('FrameType','QoS Data');
payload = '00576000103afffe80';
[frame,frameLength] = wlanMACFrame(payload,macConfig);
disp(frame')
8000FFFFFF0135790135790020056013FF88241
8200FFFFFF02468B02468B000007000AFE0EA33

Создание кадра A-MPDU в формате высокой пропускной способности (формат HT) длиной 5000 октетов.

Создайте объект конфигурации кадров MAC.

 cfgMAC = wlanMACFrameConfig('FrameType','QoS Data', ...
     'FrameFormat','HT-Mixed', ...
     'MPDUAggregation', true);

Создайте объект конфигурации формата HT.

cfgPHY = wlanHTConfig('MCS',4);  

Вычислите длины MSDU, необходимые для генерации кадра A-MPDU с 5000 октетами, отображая результат.

msduLengths = wlanMSDULengths(5000,cfgMAC,cfgPHY);
disp(msduLengths)
        2302        2302         294

Создайте MSDU со случайными данными, используя полученный вектор длины MSDU.

 numMSDUs = numel(msduLengths);
 msduList = cell(1,numMSDUs);
  for i = 1:numMSDUs
      msduList{i} = randi([0 255],1,msduLengths(i));
  end

Создайте 5000-октет A-MPDU.

[frame,frameLength] = wlanMACFrame(msduList,cfgMAC,cfgPHY);
disp(frameLength)
        5000

Создать wlanMACManagementConfig объект конфигурации, указывающий SSID как 'demo SSID'.

config = wlanMACManagementConfig('SSID','demo SSID');

Создать wlanMACFrameConfig объект конфигурации, указывающий объект конфигурации фрейма-тела управления как mgmtConfig и кадр MAC маяка.

cfgMAC = wlanMACFrameConfig('FrameType','Beacon', ...
    'ManagementConfig',config);

Создайте MAC-кадр маяка с указанным SSID.

[macFrame,frameLength] = wlanMACFrame(cfgMAC);

Отображение длины кадра.

frameLength
frameLength = 56

Создайте базовый триггерный кадр MAC для переноса информации для двух пользователей.

Создайте объект конфигурации «кадр-тело» триггера MAC, задав пропускную способность канала 40 МГц.

cfgTrigger = wlanMACTriggerConfig('ChannelBandwidth','CBW40');

Создайте объекты конфигурации для полей User Info кадра триггера.

cfgUser1 = wlanMACTriggerUserConfig('AID12',1,'RUSize', ...
    242,'RUIndex',1);
cfgUser2 = wlanMACTriggerUserConfig('AID12',2,'RUSize', ...
    242,'RUIndex',2);

Добавьте поля User Info в кадр триггера.

cfgTrigger = addUserInfo(cfgTrigger,cfgUser1);
cfgTrigger = addUserInfo(cfgTrigger,cfgUser2);

Настройте кадр триггера, создав объект конфигурации MAC frame-body, указав тип кадра и конфигурацию триггера frame-body.

cfgMAC = wlanMACFrameConfig('FrameType','Trigger', ...
    'TriggerConfig',cfgTrigger);

Укажите конфигурацию PHY, отличную от HT, путем создания объекта конфигурации, отличного от HT, по умолчанию.

cfgPHY = wlanNonHTConfig;

Создайте кадр триггера MAC и отобразите его длину.

[frame,frameLength] = wlanMACFrame(cfgMAC,cfgPHY);
disp(frameLength)
    40

Создать wlanMACFrameConfig объект для кадра MAC RTS. Создайте кадр MAC RTS в битовом формате.

macConfig = wlanMACFrameConfig('FrameType','RTS');
[frame,frameLength] = wlanMACFrame(macConfig,'OutputFormat','bits');

Входные аргументы

свернуть все

Конфигурация кадра MAC, указанная как wlanMACFrameConfig объект. Этот объект определяет тип MAC-кадра и его применимые свойства.

Один или несколько MSDU, указанных как числовой вектор, символьный вектор, строка или массив ячеек. Указанное значение зависит от того, будет ли кадр агрегирован.

  • Чтобы создать MPDU, укажите этот аргумент в качестве одного из следующих значений:

    • Числовой вектор октетов в десятичном формате, где каждый элемент является целым числом в интервале [0, 255]

    • Символьный вектор октетов в шестнадцатеричном формате

    • Строковый скаляр октетов в шестнадцатеричном формате

    Указанное значение представляет один MSDU.

  • Чтобы создать A-MPDU, укажите этот аргумент в качестве одного из следующих значений:

    • Массив ячеек числовых векторов

    • Массив ячеек символьных векторов

    • Строковый массив

    Каждый элемент указанного массива представляет один MSDU.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char | string | cell

Конфигурация формата PHY, указанная как объект конфигурации типа wlanHESUConfig, wlanVHTConfig, или wlanHTConfig. Указанное значение должно быть совместимо с форматом кадра, указанным в cfgMAC вход.

  • Если FrameFormat имущество cfgMAC является 'HE-SU' или 'HE-EXT-SU', укажите этот аргумент как wlanHESUConfig объект.

  • Если FrameFormat имущество cfgMAC является 'VHT', укажите этот аргумент как wlanVHTConfig объект.

  • Если FrameFormat имущество cfgMAC является 'HT-Mixed', укажите этот аргумент как wlanHTConfig объект.

Укажите этот аргумент для:

  • Убедитесь, что кадр не превышает предельного времени передачи.

  • Добавление заполнения конца кадра (EOF) к кадрам в формате очень высокой пропускной способности (VHT) или высокой эффективности (HE).

  • Поддержание минимального начального интервала между блоками MPDU в блоке A-MPDU.

Формат кадра MAC, указанный как 'octets' или 'bits'.

Типы данных: char | string

Выходные аргументы

свернуть все

Кадр MAC (MPDU или A-MPDU) возвращается в качестве одного из этих значений.

  • Символьный массив, где каждая строка является октетом в шестнадцатеричном формате при указании format ввод в качестве 'octets'

  • Вектор столбца с двоичным значением при указании format ввод в качестве 'bits'

Типы данных: int8 | char

Длина сформированного MAC-кадра в октетах, возвращаемого как неотрицательное целое число. Для блоков A-MPDU формата VHT- и HE этот выходной сигнал представляет собой длину заполнения A-MPDU pre-EOF (APEP), которая меньше или равна длине frame выход. Для всех остальных форматов этот вывод представляет собой длину блока служебных данных (PSDU) процедуры сходимости физического уровня (PLCP).

Типы данных: double

Ссылки

[1] IEEE Std 802.11™-2016 (версия IEEE Std 802.11-2012). «Часть 11: Спецификации управления доступом к среде беспроводной локальной сети (MAC) и физического уровня (PHY)». Стандарт IEEE для информационных технологий - телекоммуникации и обмен информацией между системами. Локальные и столичные сети - особые требования.

[2] P802.11ax™/D4.1 IEEE. "Часть 11: Спецификации управления доступом к среде беспроводной локальной сети (MAC) и физического уровня (PHY). Поправка 1: Усовершенствования для высокоэффективной WLAN. " Проект стандарта на информационные технологии - телекоммуникации и обмен информацией между системами. Локальные и столичные сети - особые требования.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2018b