主要内容

wlanMPDUDecode

解码MPDU

描述

例子

[cfgMAC有效载荷地位) = wlanMPDUDecode (MPDUphyFormat复苏有效载荷,一个或多个MAC业务数据单元(MSDUs),通过解码MAC协议数据单元(MPDU)MPDU.该功能通过使用适合指定PHY格式的参数对MPDU进行解码。

该函数还返回地位, MPDU解码的结果cfgMAC, 一种wlanMACFrameConfig配置对象。

例子

[cfgMAC有效载荷地位) = wlanMPDUDecode (MPDUcfgPHY通过使用PHY传输参数的MPDU进行解码cfgPHY

例子

[cfgMAC有效载荷地位) = wlanMPDUDecode (___名称,价值使用一个或多个名称-值对参数以及以前语法中的任何输入参数组合指定选项。

例子

全部收缩

使用高效单用户(HE SU)格式创建MPDU的WLAN MAC帧配置对象,生成MPDU。

phyFormat =“HE-SU”;cfgMAC = wlanMACFrameConfig('FrameFormat',phyFormat);有效载荷= randi([0 255],1,40);MPDU = wlanMACFrame(有效载荷,cfgMAC,“OutputFormat”“位”);

通过为指定的PHY格式配置解码该MPDU返回的MSDU。

[rxCfgMAC,有效负载状态] = wlanMPDUDecode(MPDU,phyFormat);

通过显示状态确认成功解码。

DISP(状态)
成功

创建QoS数据帧的WLAN MAC帧配置对象,生成MPDU。

cfgMAC = wlanMACFrameConfig(“FrameType”“QoS数据”);有效载荷= randi([0 255],1,40);MPDU = wlanMACFrame(有效载荷,cfgMAC,“OutputFormat”“位”);

创建非高通量格式(非HT格式)使用默认设置配置对象。

cfgPHY = wlanNonHTConfig;

通过为指定的PHY格式配置解码该MPDU返回的MSDU。

[cfgMAC、有效载荷、状态]= wlanMPDUDecode (mpdu cfgPHY);

通过显示状态确认成功解码。

DISP(状态)
成功

解聚的VHT A-MPDU和解码所提取的的MPDU。

创建一个VHT A-MPDU一个WLAN MAC帧配置对象。

txCfgMAC = wlanMACFrameConfig (“FrameType”“QoS数据”...'FrameFormat'“VHT”);

创建一个默认设置的VHT格式的配置对象。

cfgPHY = wlanVHTConfig;

生成8个msdu的随机有效载荷。

txPayload = repmat({randi([0 255],1,40)},1,8);

生成包含8个mpdu的A-MPDU,用于指定MAC和PHY配置。

AMPDU = wlanMACFrame(txPayload,txCfgMAC,cfgPHY);

通过解聚合A-MPDU,提取mpdu列表。显示反聚合和分隔符CRC的状态。

(mpduList、failCRC、状态)= wlanAMPDUDeaggregate (ampdu cfgPHY,...“DataFormat”“八位字节”);DISP(状态)
成功
DISP(failCRC)
0 0 0 0 0 0 0 0

解码所有的mpdu在提取。通过显示状态确认成功解码。

如果比较字符串(状态,“成功”为了I = 1:numel(mpduList)如果~ failCRC(我)[cfgMAC、有效载荷、状态(i)) =...wlanMPDUDecode(mpduList {I},cfgPHY,...“DataFormat”“八位字节”);结尾结尾结尾DISP(状态)
第一栏到第七栏成功成功成功成功成功成功第八栏成功

输入参数

全部收缩

要解码的MPDU,指定为这些值之一。

  • 表示比特形式的MPDU的二元值矢量

  • 整数的在区间[0,255]表示十进制格式个字节的矢量

  • 表示MPDU在十六进制格式的八位字节的字符串标量

  • 用十六进制格式的八位元表示MPDU的字符向量

  • 一个字符阵列,其中每行代表十六进制格式的八位组

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|字符|字符串

PHY格式,指定为这些值之一。

  • “HE-SU”- 高效率的单用户(SU HE)格式

  • “HE-EXT-SU”- HE增程SU(HE ER SU)格式

  • 'HE-MU'—HE multi-user (HE MU)格式

  • 'HE-TB'—基于HE触发器(HE TB)格式

  • “VHT”-超高吞吐量(VHT)格式

  • “HT”—HT (high throughput)格式

数据类型:字符|字符串

PHY格式和传输参数,指定为这些对象中的一个。

名称值参数

指定可选的逗号分离对名称,价值参数。的名字是参数名称和价值为对应值。的名字必须出现引号内。您可以按照任何顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“DataFormat”、“八位字节的

输入MPDU的格式,指定为逗号分隔对组成“DataFormat”这些值中的一个。

  • “位”——指定MPDU位格式输入

  • “八位字节”——指定MPDU以八位元格式输入

数据类型:字符|字符串

禁止指定为逗号分隔对的警告消息“SuppressWarnings”这些值中的一个。

  • 错误的0.—允许警告信息。

  • 真正的1- 禁止警告消息。

数据类型:逻辑

输出参数

全部收缩

MAC帧结构,返回为wlanMACFrameConfig对象。

一个或多个msdu,作为字符数组的单元格数组返回。该函数为每个MSDU返回一个字符数组。在这些字符数组中,每一行都是一个八位元的十六进制表示。对于每个不包含数据的MAC帧,函数返回有效载荷作为空单元格数组。

数据类型:细胞

MPDU解码的状态,返回为在区间[-31,0]的整数。的每个值地位对象的一个成员wlanMACDecodeStatus枚举类,根据该表显示MAC帧解码的状态。

枚举值 枚举类的成员 解码状态
0. 成功 MAC帧成功解码
-1 FCSFailed 帧检查序列(FCS)失败
-2 InvalidProtocolVersion 无效的协议版本
-3 Un金宝appsupportedFrameType 不支金宝app持的帧类型
-4 Un金宝appsupportedFrameSubtype 不支金宝app持的帧子类型
-5 NotEnoughData 数据不足,无法解码帧
-6 Un金宝appsupportedBAVariant 不支金宝app持的块Ack帧变体
-7 UnknownBitmapSize 未知的位图的大小
-8 UnknownAddressExtMode 未知地址扩展模式
-9 MalformedAMSDULength A-MSDU (aggregate MAC service data unit)畸形,长度不合法
-10 MalformedSSID 畸形服务集标识符(SSID)信息元素(IE)
-11年 Malformed金宝appSupportedRatesIE 畸形支持的速率IE金宝app
-12年 MalformedIELength IE长度字段畸形
-13年 MissingMandatoryIEs 强制性的IE丢失
-14年 NoMPDUFound 没有MPDU中发现的A-MPDU
-15年 CorruptedAMPDU 在收到A-MPDU所有分隔符失败的循环冗余校验(CRC)
-16 InvalidDelimiterLength 在MPDU定界符无效长度字段
-17年 MaxAMSDULenthExceeded A-MSDU超过最大长度限制
-18年 MaxMPDULengthExceeded MPDU超过最大长度限制
-19年 MaxMMPDULengthExceeded MAC管理帧长度超过最大限制
-20 MaxMSDULengthExceeded MSDU超过最大长度限制
-21年 UnexpectedProtectedFrame 此帧类型的保护位值无效
-22年 Un金宝appsupportedTriggerType 不支金宝app持的触发帧类型
-23年 UnknownHELTFTypeAndGI 未知保护间隔(GI)和高效率的长训练字段(HE-LTF)型
-24年 UnknownAPTxPower 通用信息字段的AP发送功率子字段的未知值
-25年 UnknownAID12Value 对于AID12值未知子字段的用户信息领域
-26年 UnknownRUAllocation 对于B7-B1的RU分配子字段的用户信息字段的值未知
-27年 UnknownULMCS 用户信息字段的UL MCS子字段值未知
-28年 UnknownTargetRSSI 对于UL目标RSSI值未知子字段的用户信息领域
-29年 Un金宝appsupportedBARType BA金宝appR控制字段的BAR类型子字段不支持的值
-30 MissingUserInfo 收到的触发帧包含无效的用户信息字段
-31年 InvalidLSIGLength 通用信息字段的UL Length子字段无效,对应于遗留信号(L-SIG)字段的长度。

比其他枚举值0.该MPDU解码失败的装置。如果解码失败,则cfgMAC输出不显示属性,函数返回有效载荷输出作为一个空的单元阵列。

数据类型:int16

扩展功能

C / c++代码生成
使用MATLAB®Coder™生成C和C ++代码。

在R2019A介绍