Сгенерируйте и проанализируйте системы координат ВЛАНА МАКА

В этом примере показано, как сконфигурировать и сгенерировать системы координат ВЛАНА МАКА, затем восстанавливает полезную нагрузку MSDUs путем парсинга системы координат МАКа.

Введение

Семейство IEEE® 802.11™ стандартов поддерживает четыре типа системы координат MAC: управление, данные, управление и расширение. В каждом из этих типов стандарт задает область значений подтипов, каждый из которых служит определенной цели в 802.11™ сеть.

Этот пример демонстрирует, как сконфигурировать, сгенерировать, и проанализировать MPDUs и A-MPDUs при помощи объектов настройки WLAN Toolbox™ и функций.

Сгенерируйте и декодируйте MPDU

Создайте объект настройки системы координат MAC для системы координат Данных, задав однопользовательскую высокую эффективность (SU HE) физический уровень (PHY) настройка.

cfgMPDU = wlanMACFrameConfig('FrameType','Data','FrameFormat','HE-SU');

Задайте MSDU как числовой вектор из октетов в битном формате. Можно также задать MSDUs как вектор символов или строку октетов в шестнадцатеричном формате.

msdu = randi([0 255],32,1);

Сгенерируйте MPDU путем вызова wlanMACFrame функция, задавая биты как выходной формат.

[mpdu,mpduLength] = wlanMACFrame(msdu,cfgMPDU,'OutputFormat','bits');

Восстановите MSDU путем вызова wlanMPDUDecode функция. Функция также возвращает объект настройки системы координат MAC и состояние декодирования. Проверяйте, что операция декодирования возвращает правильный формат системы координат, и отобразите состояние.

[rxCfgMPDU,payload,status] = wlanMPDUDecode(mpdu,wlanHESUConfig);
disp(isequal(cfgMPDU.FrameFormat,rxCfgMPDU.FrameFormat))
   1
disp(status)
    Success

Сгенерируйте и проанализируйте A-MPDU

Создайте объект настройки для системы координат MAC Данных QoS, задав HE настройка СУ ФИ. Включите агрегацию MPDU и отключите агрегацию MSDU.

cfgAMPDU = wlanMACFrameConfig('FrameType','QoS Data','FrameFormat','HE-SU',... 
    'MPDUAggregation',true,'MSDUAggregation',false);

Задайте массив ячеек MSDUs, задав каждый MSDU как числовой вектор из октетов в битном формате. Можно также задать MSDUs как вектор символов или строку октетов в шестнадцатеричном формате.

msduList = repmat({randi([0 255],32,1)},1,4);

Сгенерируйте MPDU для HE настройка СУ ФИ путем вызова wlanMACFrame функция.

cfgPHY = wlanHESUConfig('MCS',5);
[ampdu,ampduLength] = wlanMACFrame(msduList,cfgAMPDU,cfgPHY,'OutputFormat','bits');

Deaggregate A-MPDU, чтобы возвратить список MPDU путем вызова wlanAMPDUDeaggregate функция. Функция также возвращает результат контроля циклическим избыточным кодом (CRC) разделителя и состояние A-MPDU deaggregation.

[mpduList,delimiterCRCFailure,status] = wlanAMPDUDeaggregate(ampdu,cfgPHY);

Отобразите количество отказов CRC разделителя и состояние deaggregation.

disp(nnz(delimiterCRCFailure))
     0
disp(status)
    Success

Получите MSDUs путем декодирования deaggregated MPDUs с wlanMPDUDecode функционируйте и отобразите состояние процесса декодирования.

if strcmp(status,'Success')
    for i = 1:numel(mpduList)
        if ~delimiterCRCFailure(i)
            [cfg,msdu,decodeStatus] = wlanMPDUDecode(mpduList{i},cfgPHY,'DataFormat','octets');
            disp(['MPDU ' num2str(i) ' decoding status: ' char(decodeStatus)])
        end
    end
end
MPDU 1 decoding status: Success
MPDU 2 decoding status: Success
MPDU 3 decoding status: Success
MPDU 4 decoding status: Success

Похожие темы