主要内容

生成和解析WLAN MAC帧

此示例显示了如何配置和生成WLAN MAC帧,然后通过解析MAC帧来恢复MSDU的有效载荷。

介绍

IEEE®802.11™标准系列支持四种类型的MAC帧:控制,数据,管理和扩金宝app展。在这些类型中的每种类型中,标准定义了一系列子类型,每个子类型在802.11™网络中用于特定目的。

此示例演示了如何通过使用WLAN Toolbox™配置对象和功能来配置,生成和解析MPDU和A-MPDU。

生成和解码MPDU

为数据帧创建MAC帧配置对象,指定高效单用户(HE SU)物理层(PHY)配置。

cfgmpdu = wlanmacframeconfig('frameType''数据''frameformat''他');

将MSDU指定为位格式的八位字节的数字矢量。您还可以将Msdus指定为十六进制格式的字符向量或八位字符串。

MSDU = RANDI([0 255],32,1);

通过调用来生成MPDUwlanmacframe.函数,将位指定为输出格式。

[mpdu,mpdulength] = wlanmacframe(msdu,cfgmpdu,'输出格式''贝特');

通过致电恢复MSDUwlanmpdudecode.功能。该函数还返回MAC帧配置对象和解码的状态。检查解码操作是否返回正确的帧格式并显示状态。

[rxcfgmpdu,有效载荷,状态] = 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''他'......'mpduaggregation',真的,'msduaggregation',错误的);

指定MSDU的单元格数组,将每个MSDU指定为以位格式的八位字节的数字矢量。您还可以将Msdus指定为十六进制格式的字符向量或八位字符串。

Msdulist = Repmat({RANDI([0 255],32,1)},1,4);

通过调用来生成HE SU PHY配置的MPDUwlanmacframe.功能。

cfgphy = wlanhesuconfig('MCS'5);[ampdu,ampdulength] = wlanmacframe(msdulist,cfgampdu,cfgphy,'输出格式''贝特');

致电A-MPDU通过调用来返回MPDU列表Wlanampdudeagggregge功能。该函数还返回了分隔符循环冗余校验(CRC)的结果以及A-MPDU Deaggregation的状态。

[mpdulist,delimitercrcfailure,status] = wlanampdudeaggregate(Ampdu,cfgphy);

显示分隔符CRC故障的数量和deaggregation的状态。

disp(nnz(delimitercrcfailure))
0.
DISP(状态)
成功

通过解码Deaggated MPDus获得MSDUwlanmpdudecode.函数并显示解码过程的状态。

如果Strcmp(状态,'成功'为了i = 1:numel(mpdulist)如果〜delimitercrcfailure(i)[cfg,msdu,decodeStatus] = wlanmpdudecode(mpdulist {i},cfgphy,'datomformat''八位字节');DISP(['mpdu'num2str(i)'解码状态:'Char(DecodeStatus)])结尾结尾结尾
MPDU 1解码状态:成功MPDU 2解码状态:成功MPDU 3解码状态:成功MPDU 4解码状态:成功

相关话题