В этом примере показано, как декодировать системы координат IEEE® 802.11™ MAC.
Общий формат системы координат MAC состоит из заголовка, тела системы координат и последовательности проверки системы координат (FCS). Заголовок содержит информацию о системе координат. Тело системы координат несет данные, которые должны быть переданы. Передатчик вычисляет FCS по заголовку и телу системы координат. Получатель использует FCS, чтобы подтвердить, что заголовок и тело системы координат правильно получены. Следующая схема показывает структуру общей системы координат MAC.
Стандарт задает четыре типа систем координат: управление, Данные, Управление и Расширение. Существует несколько подтипов каждого типа системы координат. Они идентифицированы полями Type и Subtype поля управления кадром в заголовке MAC.
Системы координат управления:
Системы координат, которые используются в установлении связи и обслуживании.
Эти системы координат несут информационные поля и элементы, которые указывают на возможности и настройку устройства, действующего в 802,11 сетях. При установлении связи эти информационные поля и элементы передаются между устройствами, чтобы совпадать с возможностями обоих устройств.
Слой MAC добавляет заголовок и FCS к телу системы координат, несущему информацию, чтобы сформировать Модуль данных о протоколе MAC (MPDU).
Системы координат данных:
Системы координат, которые используются, чтобы передать данные более высокого слоя.
Полезную нагрузку, данную слою MAC, называют Модулем эксплуатационных данных MAC (MSDU). Слой MAC добавляет заголовок и FCS к MSDU, чтобы сформировать MPDU.
Улучшить пропускную способность, поддержки WLAN агрегированный MSDUs (A-MSDUs) и агрегировало MPDUs (A-MPDUs), как задано в Разделах 9.3.2.2, 9.7 из [1] и [2].
Если агрегация MSDU включена, несколько MSDUs агрегированы, чтобы сформировать A-MSDU, и затем заголовок MAC и FCS добавляются к A-MSDU, чтобы сформировать MPDU.
Если агрегация MPDU включена, несколько MPDUs агрегированы, чтобы сформировать A-MPDU.
Системы координат управления:
Системы координат, которые используются, чтобы поддержать доставку данных, управления и дополнительных систем координат.
Каждая система координат управления имеет определенную функциональность. Например, управляйте системами координат как Request To Send (RTS) и ясно отправляемый (CTS) справка в резервировании канала, чтобы избежать столкновений, в то время как Ack структурирует справку в распознавании успешной передачи.
Системы координат управления не содержат тело системы координат. Слой MAC добавляет FCS в заголовок, чтобы сформировать MPDU.
Дополнительные системы координат:
Этот тип системы координат является расширением трех типов системы координат, заданных выше.
Маяк DMG является единственной системой координат, в настоящее время заданной под этим типом системы координат в [1].
В этом примере показано, как могут декодироваться системы координат ВЛАНА МАКА, заданные в Разделе 9.3 из [1] или [2]. Это также показывает, как агрегированные системы координат МАКа, заданные в Разделе 9.7 из [1] или [2], могут быть deaggregated.
WLAN Toolbox™ поддерживает MPDU, декодирующий для следующих систем координат MAC:
Системы координат управления: маяк
Системы координат данных: данные, пустой указатель, данные QoS, пустой указатель QoS
Системы координат управления: RTS, CTS, Ack, блокирует Ack
В дополнение к декодированию MPDU WLAN Toolbox также поддерживает deaggregation A-MPDU.
MPDU может быть данными, управлением или типом системы координат управления. wlanMPDUDecode
может использоваться, чтобы декодировать MPDU. Этот функциональные процессы данный MPDU и настройка физического уровня возражают, чтобы вывести декодируемые параметры MAC.
Чтобы проиллюстрировать декодирование MPDU, допустимый MPDU создается с помощью wlanMACFrame
. Созданный MPDU передается wlanMPDUDecode
функционируйте и выходные сигналы наблюдаются.
Создайте MPDU
Система координат Данных QoS создается для этого примера с помощью wlanMACFrame
. Следующие входные параметры требуются, чтобы формировать формат Non-HT система координат Данных QoS, содержащая полезную нагрузку с 40 октетами:
txFrameCfg
: Объект настройки системы координат MAC типа wlanMACFrameConfig
.
txMSDU
: Полезная нагрузка с 40 октетами (MSDU), который будет включен в систему координат Данных QoS.
% Create a MAC frame configuration object txFrameCfg = wlanMACFrameConfig('FrameType', 'QoS Data', ... 'FrameFormat', 'Non-HT'); % 40-octet payload for each 'QoS Data' frame txMSDU = randi([0, 255], 40, 1); % Physical layer configuration phyCfg = wlanNonHTConfig; % Create the MPDU mpdu = wlanMACFrame(txMSDU, txFrameCfg);
Декодируйте MPDU
wlanMPDUDecode
использует MPDU, объект настройки PHY типа wlanNonHTConfig
, wlanHTConfig
, wlanVHTConfig
, или wlanHESUConfig
и опционально (Имя, Значение) пара для DataFormat
определение формата ввода MPDU. Начиная с MPDU, сгенерированного с помощью wlanMACFrame
в терминах октетов, DataFormat
установлен в octets
. wlanMPDUDecode
декодирует MPDU и выводит следующую информацию:
rxFrameCfg
: Объект настройки системы координат MAC типа wlanMACFrameConfig
, содержа декодируемые параметры MAC.
rxMSDU
: Массив ячеек, где каждый элемент является n-2 символьным массивом, представляющим декодируемый MSDU. Несколько MSDUs возвращены, когда MPDU содержит агрегированный MSDU (A-MSDU) как полезная нагрузка.
status
: Перечисление состояния типа, которое указывает, было ли декодирование MPDU успешно.
% Decode the MPDU. [rxFrameCfg, rxMSDU, status] = wlanMPDUDecode(mpdu, phyCfg, ... 'DataFormat', 'octets'); % Check if the MPDU is decoded successfully disp(['Status of the MPDU decoding: ' char(status)]) % Observe the outputs, if the MPDU is decoded successfully if strcmp(status, 'Success') disp(['Type of the decoded MPDU: ' rxFrameCfg.FrameType]) disp(['Number of MSDUs in the MPDU: ' num2str(numel(rxMSDU))]) for i = 1:numel(rxMSDU) disp(['Size of MSDU-' num2str(i) ': ' num2str(size(rxMSDU{i}, 1)) ' octets']) end end
Status of the MPDU decoding: Success Type of the decoded MPDU: QoS Data Number of MSDUs in the MPDU: 1 Size of MSDU-1: 40 octets
A-MPDU является агрегацией нескольких MPDUs. Тип MPDUs в A-MPDU ограничивается, как задано в Разделе 9.7.3 из [1].
wlanAMPDUDeaggregate
может использоваться к deaggregate A-MPDU. Этот функциональные процессы данный A-MPDU и соответствующая настройка физического уровня возражают, чтобы вывести deaggregated список MPDUs. wlanAMPDUDeaggregate
способно к декодированию HT (Высокая Пропускная способность), VHT (Очень Высокая Пропускная способность), HE-SU (Высокоэффективный Отдельный пользователь) и HE-EXT-SU (Высокая эффективность Расширенный Отдельный пользователь Области значений) формат A-MPDUs, как задано в [1] и [2].
Чтобы проиллюстрировать A-MPDU deaggregation, допустимый A-MPDU, содержащий пять MPDUs, создается с помощью wlanMACFrame
. Созданный A-MPDU передается wlanAMPDUDeaggregate
функционируйте и выходные сигналы наблюдаются.
Создайте A-MPDU
Следующие входные параметры требуются, чтобы формировать формат HE-SU A-MPDU, содержащий пять MPDUs (системы координат Данных QoS), каждый MPDU, содержащий полезную нагрузку с 40 октетами:
txFrameCfg
: Объект настройки системы координат MAC типа wlanMACFrameConfig
.
txMSDUList
: Пять массивов ячеек элемента, содержащих полезную нагрузку (MSDU) для пяти MPDUs. Начиная с MSDUAggregation
установлен в ложь в txFrameCfg
, отдельный MPDU создается для каждого MSDU.
phyCfg
: Объект настройки физического уровня типа wlanHESUConfig
.
% Create a MAC frame configuration object txFrameCfg = wlanMACFrameConfig('FrameType', 'QoS Data', ... 'FrameFormat', 'HE-SU', ... 'MPDUAggregation', true, ... 'MSDUAggregation', false); % 40-octet payload for each 'QoS Data' frame txMSDUList = repmat({randi([0, 255], 40, 1)}, 1, 5); % Physical layer configuration phyCfg = wlanHESUConfig('MCS', 3); % Create the A-MPDU containing 5 MPDUs ampdu = wlanMACFrame(txMSDUList, txFrameCfg, phyCfg);
Deaggregate A-MPDU
wlanAMPDUDeaggregate
использует A-MPDU, объект настройки PHY типа wlanHTConfig
, wlanVHTConfig
, или wlanHESUConfig
и опционально (Имя, Значение) пара для DataFormat
определение формата ввода A-MPDU. Это находит и подтверждает разделители MPDU, извлекает MPDUs и выводит следующую информацию, которая может использоваться в последующей обработке MPDUs:
mpduList
: Массив ячеек, содержащий список MPDUs, извлечен из A-MPDU.
delimCRCFails
: Логический вектор-строка, представляющий валидность CRC разделителя для соответствующего индекса в mpduList
. Значение истины представляет это MPDU, существующий в mpduList
в соответствующем индексе может не быть правильно извлечен.
ampduStatus
: Перечисление состояния типа, которое указывает, был ли A-MPDU deaggregation успешен.
% Deaggregate the A-MPDU [mpduList, delimCRCFails, ampduStatus] = wlanAMPDUDeaggregate(ampdu, phyCfg, ... 'DataFormat', 'octets'); % Observe the outputs disp(['Status of A-MPDU deaggregation: ' char(ampduStatus)]) disp(['Number of MPDUs extracted from the A-MPDU: ' num2str(numel(mpduList))]) disp(['Number of MPDUs with delimiter CRC fails: ' num2str(nnz(delimCRCFails))])
Status of A-MPDU deaggregation: Success Number of MPDUs extracted from the A-MPDU: 5 Number of MPDUs with delimiter CRC fails: 0
Декодируйте список MPDUs
mpduList
содержит список MPDUs, извлеченного из A-MPDU. Каждый из MPDUs, существующих в списке, может декодироваться отдельно. Однако, если delimCRCFails
содержит любой true
значения, MPDU, существующий в mpduList
в соответствующем индексе может быть рассмотрен недопустимым, когда он не может быть правильно извлечен из-за отказа CRC разделителя.
% Decode the list of MPDUs if strcmp(ampduStatus, 'Success') % Number of MPDUs in the list numMPDUs = numel(mpduList); for i = 1:numMPDUs % Decode the MPDU only if the corresponding delimiter CRC is valid if ~delimCRCFails(i) [rxFrameCfg, rxMSDU, mpduStatus] = wlanMPDUDecode(mpduList{i}, phyCfg, ... 'DataFormat', 'octets'); disp(['MPDU-' num2str(i) ' decoding status: ' char(mpduStatus)]) disp(['MPDU-' num2str(i) ' type: ' rxFrameCfg.FrameType]) disp(['MPDU-' num2str(i) ' payload size: ' num2str(size(rxMSDU{1}, 1)) ' octets']) disp(' ') end end end
MPDU-1 decoding status: Success MPDU-1 type: QoS Data MPDU-1 payload size: 40 octets MPDU-2 decoding status: Success MPDU-2 type: QoS Data MPDU-2 payload size: 40 octets MPDU-3 decoding status: Success MPDU-3 type: QoS Data MPDU-3 payload size: 40 octets MPDU-4 decoding status: Success MPDU-4 type: QoS Data MPDU-4 payload size: 40 octets MPDU-5 decoding status: Success MPDU-5 type: QoS Data MPDU-5 payload size: 40 octets
Этот пример продемонстрировал, как к deaggregate и декодируют системы координат MAC IEEE 802.11. Можно также исследовать 802.11 Получателя Маяка OFDM с Живыми Данными и Восстановление Сигнала 802.11ac с Преамбулой, Декодирующей примеры для декодирования систем координат MAC, полученных из полученных форм волны.
Станд. IEEE 802.11™-2016 Стандарт IEEE для Информационных технологий - Телекоммуникаций и обмена информацией между системами - Локальными сетями и городскими компьютерными сетями - Конкретными требованиями - Часть 11: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Спецификации
Черновой Стандарт IEEE P802.11ax™/D3.1 для Информационных технологий - Телекоммуникаций и обмена информацией между системными Локальными сетями и городскими компьютерными сетями - Часть 11 Конкретных требований: Беспроводное Среднее управление доступом (MAC) LAN и Физический уровень (PHY) Спецификации - Поправка 6: Улучшения для Высокой эффективности WLAN