生成和解析WLAN MAC帧
本举例介绍了如何配置和生成WLAN MAC帧,然后通过解析MAC帧来恢复msdu的负载。
简介
IEEE®802.11™系列标准支持四种类型的MAC帧:控制、数据、管理和扩金宝app展。在这些类型中,标准定义了一系列子类型,每个子类型在802.11™网络中都有特定的用途。
本示例演示如何使用WLAN Toolbox™配置对象和函数配置、生成和解析mpdu和a - mpdu。
生成和解码MPDU
为数据帧创建MAC帧配置对象,指定HE SU (high-efficiency single-user)物理层的配置。
cfgMPDU = wlanMACFrameConfig(“FrameType”,“数据”,“FrameFormat”,“HE-SU”);
将MSDU指定为位格式的八位字节数字向量。您也可以将msdu指定为字符向量或十六进制格式的八位字符串。
Msdu = randi([0 255],32,1);
函数生成MPDUwlanMACFrame
函数,指定位作为输出格式。
[mpdu,mpduLength] = wlanMACFrame(msdu,cfgMPDU,“OutputFormat”,“位”);
命令恢复MSDUwlanMPDUDecode
函数。该函数还返回MAC帧配置对象和解码状态。检查解码操作是否返回正确的帧格式并显示状态。
[rxCfgMPDU,payload,status] = wlanMPDUDecode(mpdu,wlanHESUConfig);disp (isequal (cfgMPDU.FrameFormat, rxCfgMPDU.FrameFormat))
1
disp(状态)
成功
生成并解析A-MPDU
创建QoS数据MAC帧的配置对象,指定HE SU PHY的配置。使能MPDU聚合,关闭MSDU聚合。
cfgAMPDU = wlanMACFrameConfig(“FrameType”,“QoS数据”,“FrameFormat”,“HE-SU”,...“MPDUAggregation”,真的,“MSDUAggregation”、假);
指定MSDU的单元格数组,将每个MSDU指定为位格式的八位字节的数字向量。您也可以将msdu指定为字符向量或十六进制格式的八位字符串。
mssdulist = repmat({randi([0 255],32,1)},1,4);
通过调用命令生成HE SU配置的MPDUwlanMACFrame
函数。
cfphy = wlanHESUConfig(“主持人”5);[ampdu,ampduLength] = wlanMACFrame(msduList,cfgAMPDU,cfgPHY,“OutputFormat”,“位”);
方法来反聚合A-MPDU以返回MPDU列表wlanAMPDUDeaggregate
函数。该函数还返回分隔符循环冗余检查(CRC)的结果和A-MPDU解聚的状态。
[mpduList,delimiterCRCFailure,status] = wlanAMPDUDeaggregate(ampdu,cfgPHY);
显示分隔符CRC失败的次数和解聚状态。
disp (nnz (delimiterCRCFailure))
0
disp(状态)
成功
通过对解聚后的mpdu进行解码,得到msduwlanMPDUDecode
功能和显示解码过程的状态。
如果比较字符串(状态,“成功”)为i = 1:数字(mpduList)如果~delimiterCRCFailure(i) [cfg,msdu,decodeStatus] = wlanMPDUDecode(mpduList{i},cfgPHY,“DataFormat”,“八位位组”);disp ([“MPDU”num2str(我)'解码状态:'char (decodeStatus)))结束结束结束
MPDU 1解码状态:Success MPDU 2解码状态:Success MPDU 3解码状态:Success MPDU 4解码状态:Success