此示例显示了如何配置和生成WLAN MAC帧,然后通过解析MAC帧来恢复MSDU的有效载荷。
IEEE®802.11™标准系列支持四种类型的MAC帧:控制,数据,管理和扩金宝app展。在这些类型中的每种类型中,标准定义了一系列子类型,每个子类型在802.11™网络中用于特定目的。
此示例演示了如何通过使用WLAN Toolbox™配置对象和功能来配置,生成和解析MPDU和A-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(状态)
成功
为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解码状态:成功