802.11 MAC帧解码
这个例子展示了如何解码IEEE®802.11™MAC帧。
背景
一般的MAC帧格式包括一个标题、肋骨和帧校验序列(FCS)。头包含的信息帧。肋骨有数据需要传输。发射机计算FCS在头和肋骨。接收方使用FCS确认正确接收头和肋骨。下面的图显示了一般MAC帧的结构。
有关更多信息,请参见无线局域网MAC帧结构的话题。
介绍
这个例子展示了无线局域网MAC帧(第9.3节规定的1]或[2可以解码)。它还表明,聚合MAC帧(第9.7节规定的1]或[2可以deaggregated]。
WLAN工具箱™支持以下MP金宝appDU解码MAC帧:
管理框架:灯塔
数据帧:数据、零QoS数据,QoS Null
控制帧:RTS, CTS, Ack,阻止Ack
除了MPDU解码,WLAN工具箱还支持deaggregation A-MPDU。金宝app
MPDU解码
了MPDU可以是一个数据,控制或管理框架式。wlanMPDUDecode
可用于MPDU解码。这个函数处理MPDU和物理层配置对象输出解码的MAC参数。
为了说明MPDU解码,创建一个有效的MPDU使用wlanMACFrame
。创建了MPDU传递到wlanMPDUDecode
函数和输出。
创建一个MPDU
QoS数据帧创建这个示例使用wlanMACFrame
。下面的输入必须形成一个Non-HT QoS数据帧格式包含一个40-octet载荷:
txFrameCfg
:一个MAC帧配置类型的对象wlanMACFrameConfig
。txMSDU
:40-octet载荷(MSDU)包含在QoS数据帧。
%创建一个MAC帧配置对象txFrameCfg = wlanMACFrameConfig (“FrameType”,“QoS数据”,…“FrameFormat”,“Non-HT”);% 40-octet载荷为每个的QoS数据帧txMSDU =兰迪([0,255),40岁,1);%物理层配置phyCfg = wlanNonHTConfig;%创建MPDUmpdu = wlanMACFrame (txMSDU txFrameCfg);
解码MPDU
wlanMPDUDecode
消耗了MPDU、PHY配置类型的对象wlanNonHTConfig
,wlanHTConfig
,wlanVHTConfig
,或wlanHESUConfig
和可选一双(名称、值)DataFormat
指定MPDU的输入格式。自从MPDU使用生成的wlanMACFrame
是八位字节,DataFormat
被设置为八位字节
。wlanMPDUDecode
解码MPDU和输出以下信息:
rxFrameCfg
:一个MAC帧配置类型的对象wlanMACFrameConfig
,包含MAC解码参数。rxMSDU
:细胞数组,其中每个元素是一个n除以2表示解码MSDU字符数组。返回多个MSDUs当MPDU包含一个聚合MSDU (A-MSDU)作为负载。状态
:枚举类型状态,这表明MPDU解码是否成功。
% MPDU解码。(rxFrameCfg、rxMSDU、状态)= wlanMPDUDecode (mpdu phyCfg,…“DataFormat”,“八位位组”);%检查如果MPDU成功解码disp ([MPDU解码的状态:“char(状态)])%观察输出,如果MPDU成功解码如果比较字符串(状态,“成功”)disp ([类型的解码MPDU:“rxFrameCfg.FrameType]) disp ([“MPDU MSDUs数量:”num2str(元素个数(rxMSDU))))为i = 1:元素个数(rxMSDU) disp ([“MSDU大小- - -”num2str(我)“:”num2str(大小(rxMSDU {}, 1))“八位位组”])结束结束
MPDU解码状态:成功解码MPDU类型:QoS数据MPDU MSDUs数量:1 MSDU-1大小:40个八位字节
A-MPDU Deaggregation
一个聚合多个MPDUs A-MPDU。类型的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,创建一个包含五个MPDUs有效A-MPDU使用wlanMACFrame
。创建的A-MPDU传递给wlanAMPDUDeaggregate
函数和输出。
创建一个A-MPDU
下面的输入必须形成一个HE-SU格式A-MPDU包含五个MPDUs (QoS数据帧),每个包含40-octet MPDU载荷:
txFrameCfg
:一个MAC帧配置类型的对象wlanMACFrameConfig
。txMSDUList
:五元素包含负载单元阵列(MSDU)五MPDUs。自MSDUAggregation
设置为假的txFrameCfg
为每个MSDU,创建一个单独的MPDU。phyCfg
:物理层配置类型的对象wlanHESUConfig
。
%创建一个MAC帧配置对象txFrameCfg = wlanMACFrameConfig (“FrameType”,“QoS数据”,…“FrameFormat”,“HE-SU”,…“MPDUAggregation”,真的,…“MSDUAggregation”、假);% 40-octet载荷为每个的QoS数据帧txMSDUList = repmat({兰迪([0,255]40 1)},1、5);%物理层配置phyCfg = wlanHESUConfig (“主持人”3);%创建包含5 MPDUs A-MPDUampdu = wlanMACFrame (txMSDUList txFrameCfg phyCfg);
Deaggregate A-MPDU的
wlanAMPDUDeaggregate
消耗A-MPDU、PHY配置类型的对象wlanHTConfig
,wlanVHTConfig
,或wlanHESUConfig
和可选一双(名称、值)DataFormat
指定A-MPDU的输入格式。它发现并验证了MPDU分隔符,提取MPDUs和输出以下信息,可用于进一步处理MPDUs:
mpduList
:一个单元阵列包含从A-MPDU MPDUs提取的列表。delimCRCFails
:一个逻辑行向量代表分隔符CRC相应指标的有效性mpduList
。一个值MPDU出现在真正的代表mpduList
在相应的指数可能不是正确提取。ampduStatus
:枚举类型状态,这表明是否A-MPDU deaggregation是成功的。
% Deaggregate A-MPDU[mpduList, delimCRCFails ampduStatus] = wlanAMPDUDeaggregate (ampdu phyCfg,…“DataFormat”,“八位位组”);%观察输出disp ([的地位A-MPDU deaggregation:“char (ampduStatus)]) disp ([“A-MPDU MPDUs提取的数量:num2str(元素个数(mpduList))) disp ([的分隔符的MPDUs CRC失败:num2str (nnz (delimCRCFails))))
地位A-MPDU deaggregation:成功A-MPDU MPDUs提取的数量:5的MPDUs分隔符CRC失败:0
解码MPDUs列表
的mpduList
包含从A-MPDU MPDUs提取的列表。列表中的每个在场的MPDUs可以分别解码。然而,如果delimCRCFails
包含任何真正的
值,MPDU礼物mpduList
在相应的指数可以被认为是无效的,因为它可能不是正确提取的分隔符CRC失败。
%解码MPDUs列表如果比较字符串(ampduStatus“成功”)%的MPDUs数量列表numMPDUs =元素个数(mpduList);为我= 1:numMPDUs% CRC解码MPDU只有相应的分隔符是有效的如果~ delimCRCFails(我)[rxFrameCfg、rxMSDU mpduStatus] = wlanMPDUDecode (mpduList {}, phyCfg,…“DataFormat”,“八位位组”);disp ([“MPDU -”num2str(我)的解码状态:char (mpduStatus)]) disp ([“MPDU -”num2str(我)的类型:rxFrameCfg.FrameType]) disp ([“MPDU -”num2str(我)的有效载荷大小:num2str(大小(rxMSDU {1}, 1))“八位位组”])disp (' ')结束结束结束
MPDU-1解码状态:成功MPDU-1类型:QoS数据MPDU-1载荷大小:40个八位字节MPDU-2解码状态:成功MPDU-2类型:QoS数据MPDU-2载荷大小:40个八位字节MPDU-3解码状态:成功MPDU-3类型:QoS数据MPDU-3载荷大小:40个八位字节MPDU-4解码状态:成功MPDU-4类型:QoS数据MPDU-4载荷大小:40个八位字节MPDU-5解码状态:成功MPDU-5类型:QoS数据MPDU-5载荷大小:40个八位字节
结论和进一步勘探
这个例子演示了如何deaggregate和解码IEEE 802.11 MAC帧。你也可以探索OFDM使用软件定义无线电信标接收机和恢复过程的802.11 ac分组检索示例解码MAC帧捕获的波形。
选定的参考书目
-2020年IEEE Std 802.11™。IEEE标准信息技术——之间的通信和信息交换系统-本地和市区网络特定需求-第11部分:无线局域网介质访问控制(MAC)和物理层规范(体育)。
IEEE Std 802.11 ax™-2021。IEEE标准信息技术——之间的通信和信息交换系统-本地和市区网络特定需求-第11部分:无线局域网介质访问控制(MAC)和物理层(体育)规范-修正案1:高效WLAN的增强。