这是用户在 2024-10-25 15:04 为 https://ww2.mathworks.cn/help/wlan/ref/wlanmacframe.html?searchHighlight=wlanMACFrame&s_tid=srchtitl... 保存的双语快照页面,由 沉浸式翻译 提供双语支持。了解如何保存?
Main Content 主要内容

wlanMACFrame

Generate WLAN MAC frame (MPDU or A-MPDU)
生成 WLAN MAC 帧(MPDU 或 A-MPDU)

Description 描述

[frame,frameLength] = wlanMACFrame(cfgMAC) generates frame, a WLAN medium access control (MAC) frame for the specified MAC frame configuration object. The function generates a MAC protocol data unit (MPDU) or an aggregate MPDU (A-MPDU), depending on the property values of the cfgMAC input. The function also returns frameLength, the total length of the generated MAC frame.
[frame,frameLength] = wlanMACFrame(cfgMAC) 生成指定的 MAC 帧配置对象的 WLAN 介质访问控制(MAC)帧frame。该函数根据cfgMAC输入的属性值生成 MAC 协议数据单元(MPDU)或聚合 MPDU(A-MPDU)。该函数还返回生成的 MAC 帧的总长度frameLength

example 示例

[frame,frameLength] = wlanMACFrame(payload,cfgMAC) generates a WLAN MAC frame containing MAC service data units (MSDUs) payload. For the MAC frame to contain the MSDUs, you must set the FrameType property of the cfgMAC input to 'Data' or 'QoS Data'. Otherwise, the function ignores payload.
[frame,frameLength] = wlanMACFrame(payload,cfgMAC) 生成包含 MAC 服务数据单元(MSDUs)的 WLAN MAC 帧 payload。若要使 MAC 帧包含 MSDUs,您必须将 cfgMAC 输入的 FrameType 属性设置为 'Data''QoS Data'。否则,该功能将会忽略 payload

example 示例

[frame,frameLength] = wlanMACFrame(payload,cfgMAC,cfgPHY) generates a WLAN MAC frame for the physical layer (PHY) format and transmission parameters specified in cfgPHY. To generate A-MPDUs in high-efficiency (HE), very high throughput (VHT) high-throughput (HT), or extremely high throughput single user (EHT SU) frame formats, use this syntax.
[frame,frameLength] = wlanMACFrame(payload,cfgMAC,cfgPHY) 生成符合 cfgPHY 中指定的物理层 (PHY) 格式和传输参数的 WLAN MAC 帧。要生成高效 (HE)、超高吞吐量 (VHT)、高吞吐量 (HT) 或极高吞吐量的单用户 (EHT SU) 帧格式的 A-MPDUs,请使用此语法。

example 示例

[frame,frameLength] = wlanMACFrame(cfgMAC,cfgPHY) generates a WLAN MAC trigger frame for the specified MAC and PHY configurations. To create a MAC trigger frame, the cfgPHY input must be a wlanNonHTConfig object, and you must set the FrameType property of the cfgMAC input to 'Trigger'.
[frame,frameLength] = wlanMACFrame(cfgMAC,cfgPHY) 为指定的 MAC 和 PHY 配置生成 WLAN MAC 触发帧。要创建 MAC 触发帧,cfgPHY 输入必须是一个 wlanNonHTConfig 对象,并且您必须将 cfgMAC 输入的 FrameType 属性设置为 'Trigger'

[frame,frameLength] = wlanMACFrame(___,OutputFormat=format) specifies the data format of the generated frame in addition to any input argument combination from previous syntaxes.
[frame,frameLength] = wlanMACFrame(___,OutputFormat=format) 指定了生成帧的数据格式,除了来自先前语法的任何输入参数组合。

example 示例

Examples 例子

collapse all 全部折叠

Create a WLAN MAC frame configuration object, specifying a beacon MAC frame.
创建一个 WLAN MAC 帧配置对象,指定一个信标 MAC 帧。

cfgMAC = wlanMACFrameConfig(FrameType="Beacon");

Enable the power saving mode and display the result.
启用省电模式并显示结果。

cfgMAC.PowerManagement = true;
disp(cfgMAC)
  wlanMACFrameConfig with properties:

           FrameType: 'Beacon'
                ToDS: 0
              FromDS: 1
      Retransmission: 0
     PowerManagement: 1
            MoreData: 0
            Duration: 0
            Address1: 'FFFFFFFFFFFF'
            Address2: '00123456789B'
            Address3: '00123456789B'
      SequenceNumber: 0
    ManagementConfig: [1x1 wlanMACManagementConfig]

   Read-only properties:
             Decoded: 0

Generate the beacon frame.
生成信标帧。

beaconFrame = wlanMACFrame(cfgMAC);

Generate a quality of service (QoS) Data MAC frame with a specified payload.
生成具有指定有效载荷的服务质量(QoS)数据 MAC 帧。

macConfig = wlanMACFrameConfig(FrameType="QoS Data");
payload = "00576000103afffe80";
[frame,frameLength] = wlanMACFrame(payload,macConfig);
disp(frame')
8000FFFFFF0135790135790020056013FF88241
8200FFFFFF02468B02468B000007000AFE0EA33

Create a MAC frame configuration object.
创建一个 MAC 帧配置对象。

 cfgMAC = wlanMACFrameConfig(FrameType="QoS Data", ...
     FrameFormat="HT-Mixed", ...
     MPDUAggregation=true);

Create an HT PHY configuration object.
创建一个 HT PHY 配置对象。

cfgPHY = wlanHTConfig(MCS=4);  

Calculate the MSDU lengths required to generate a 5000-octet A-MPDU frame, displaying the result.
计算生成一个 5000 字节 A-MPDU 帧所需的 MSDU 长度,显示结果。

msduLengths = wlanMSDULengths(5000,cfgMAC,cfgPHY);
disp(msduLengths)
        2302        2302         294

Create MSDUs with random data using the MSDU length vector.
使用 MSDU 长度向量创建带有随机数据的 MSDU。

 numMSDUs = numel(msduLengths);
 payload = cell(1,numMSDUs);
  for i = 1:numMSDUs
      payload{i} = randi([0 255],1,msduLengths(i));
  end

Generate the 5000-octet A-MPDU.
生成 5000 个八位字节的 A-MPDU。

[frame,frameLength] = wlanMACFrame(payload,cfgMAC,cfgPHY);
disp(frameLength)
        5000

Create a wlanMACManagementConfig configuration object, specifying the service set identifier (SSID).
创建一个wlanMACManagementConfig配置对象,指定服务集标识符(SSID)。

cfgMgmt = wlanMACManagementConfig(SSID="demo SSID");

Create a wlanMACFrameConfig configuration object, specifying the management frame-body configuration object as mgmtConfig and a beacon MAC frame.
创建一个wlanMACFrameConfig配置对象,指定管理帧-主体配置对象为mgmtConfig和一个信标 MAC 帧。

cfgMAC = wlanMACFrameConfig(FrameType="Beacon", ...
    ManagementConfig=cfgMgmt);

Generate the beacon MAC frame with the specified SSID.
使用指定的 SSID 生成信标 MAC 帧。

[macFrame,frameLength] = wlanMACFrame(cfgMAC);

Display the frame length.
显示帧长度。

frameLength
frameLength = 
56

Create a basic MAC trigger frame to carry information for two users.
创建一个基本的 MAC 触发帧,用于携带两个用户的信息。

Create a MAC trigger frame-body configuration object, specifying a channel bandwidth of 40 MHz.
创建一个 MAC 触发器帧-体配置对象,指定频道带宽为 40 MHz。

cfgTrigger = wlanMACTriggerConfig(ChannelBandwidth="CBW40");

Create configuration objects for the User Info fields of the trigger frame.
为触发器帧的用户信息字段创建配置对象。

cfgUser1 = wlanMACTriggerUserConfig(AID12=1, ...
    RUSize=242,RUIndex=1);
cfgUser2 = wlanMACTriggerUserConfig(AID12=2, ...
    RUSize=242,RUIndex=2);

Add the User Info fields to the trigger frame.
将用户信息字段添加到触发帧。

cfgTrigger = addUserInfo(cfgTrigger,cfgUser1);
cfgTrigger = addUserInfo(cfgTrigger,cfgUser2);

Configure the trigger frame by creating a MAC frame-body configuration object, specifying the frame type and the trigger frame-body configuration.
通过创建 MAC 帧体配置对象,指定帧类型和触发帧体配置来配置触发帧。

cfgMAC = wlanMACFrameConfig(FrameType="Trigger", ...
    TriggerConfig=cfgTrigger);

Specify a non-HT PHY configuration by creating a default non-HT configuration object.
通过创建一个默认的非 HT 配置对象指定一个非 HT PHY 配置。

cfgPHY = wlanNonHTConfig;

Create the MAC trigger frame and display its length.
创建 MAC 触发帧并显示其长度。

[frame,frameLength] = wlanMACFrame(cfgMAC,cfgPHY);
disp(frameLength)
    40

Create a wlanMACFrameConfig object for an RTS MAC frame.
创建一个wlanMACFrameConfig对象,以用于 RTS MAC 帧。

cfgMAC = wlanMACFrameConfig(FrameType="RTS");

Generate the RTS MAC frame in bit format.
以位格式生成 RTS MAC 帧。

[frame,frameLength] = wlanMACFrame(cfgMAC,OutputFormat="bits");

Input Arguments 输入参数

collapse all 全部折叠

MAC frame configuration, specified as a wlanMACFrameConfig object. This object defines the type of MAC frame and its applicable properties.
MAC 帧配置,指定为一个wlanMACFrameConfig对象。该对象定义了 MAC 帧的类型及其适用属性。

One or more MSDUs, specified as a numeric vector, character vector, string, or cell array. The value you specify depends on whether the frame is aggregated.
一个或多个 MSDU,指定为数字向量、字符向量、字符串或单元数组。您指定的数值取决于帧是否聚合。

  • To generate an MPDU, specify this argument as one of these values:
    要生成一个 MPDU,请将此参数指定为以下这些值之一:

    • A numeric vector of octets in decimal format, where each element is an integer in the interval [0, 255]
      一个十进制格式的八位数字向量,其中每个元素都是区间[0, 255]中的整数

    • A character vector of octets in hexadecimal format
      一个十六进制格式的八位字符向量

    • A string scalar of octets in hexadecimal format
      十六进制格式的字节字符串

    The value you specify represents one MSDU.
    您指定的值代表一个 MSDU。

  • To generate an A-MPDU, specify this argument as one of these values:
    要生成 A-MPDU,请将此参数指定为以下值之一:

    • A cell array of numeric vectors
      数值向量的单元数组

    • A cell array of character vectors
      一个字符向量的单元数组

    • A string array 一个字符串数组

    Each element of the specified array represents one MSDU.
    每个指定数组元素代表一个 MSDU。

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char | string | cell
数据类型:single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char | string | cell

PHY format configuration, specified as a configuration object of type wlanHESUConfig, wlanVHTConfig, wlanHTConfig, or wlanEHTMUConfig. The value you specify must be compatible with the frame format specified in the cfgMAC input.
PHY 格式配置,指定为类型为 wlanHESUConfigwlanVHTConfigwlanHTConfigwlanEHTMUConfig 的配置对象。您指定的值必须与 cfgMAC 输入中指定的帧格式兼容。

  • If the FrameFormat property of cfgMAC is "HE-SU" or "HE-EXT-SU", specify this argument as a wlanHESUConfig object.
    如果FrameFormat属性是cfgMAC"HE-SU""HE-EXT-SU",请将此参数指定为wlanHESUConfig对象。

  • If the FrameFormat property of cfgMAC is "VHT", specify this argument as a wlanVHTConfig object.
    如果 FrameFormat 属性为 cfgMAC,则将此参数指定为 wlanVHTConfig 对象。

  • If the FrameFormat property of cfgMAC is "HT-Mixed", specify this argument as a wlanHTConfig object.
    如果FrameFormat的属性为cfgMAC,则将此参数指定为wlanHTConfig对象。

  • If the FrameFormat property of cfgMAC is "EHT-SU", specify this argument as a wlanEHTMUConfig object with SU transmission.
    如果cfgMAC"EHT-SU"属性的FrameFormat,请将此参数指定为使用 SU 传输的wlanEHTMUConfig对象。

Specify this argument to:
指定此参数为:

  • Ensure that the frame does not exceed the transmission time limit.
    确保帧不超过传输时间限制。

  • Add end-of-frame (EOF) padding to frames in VHT, HE, or EHT format.
    向 VHT、HE 或 EHT 格式的帧添加帧尾填充(EOF)。

  • Maintain minimum start spacing between MPDUs in an A-MPDU.
    在 A-MPDU 中保持 MPDU 之间的最小起始间距。

The function uses this input only when generating the VHT, HE, or EHT format frames and HT format aggregated frames.
该功能仅在生成 VHT、HE 或 EHT 格式帧和 HT 格式聚合帧时使用此输入。

MAC frame format, specified as "octets" or "bits".
MAC 帧格式,指定为"字节""位"

Data Types: char | string
数据类型:char | string

Output Arguments 输出参数

collapse all 全部折叠

MAC frame (MPDU or A-MPDU), returned as one of these values.
MAC 帧(MPDU 或 A-MPDU),返回以下其中之一的值。

  • A character array, where each row is an octet in hexadecimal format, when you specify the format input as "octets"
    一个字符数组,其中每一行都是一个十六进制格式的八位字节,当您将输入的 format 指定为 "octets"

  • A binary-valued column vector when you specify the format input as "bits"
    当您将格式输入指定为"bits"时,一个二进制值列向量

Data Types: int8 | char
数据类型: int8 | char

Length of generated MAC frame, in octets, returned as a nonnegative integer. For VHT, HE, and EHT format A-MPDUs, this output is the A-MPDU pre-EOF padding (APEP) length, which is less than or equal to the length of the frame output. For all other formats, this output is the physical layer convergence procedure (PLCP) service data unit (PSDU) length.
生成的 MAC 帧长度,以八位字节为单位,作为非负整数返回。对于 VHT、HE 和 EHT 格式 A-MPDU,此输出是 A-MPDU 前 EOF 填充(APEP)长度,该长度小于或等于frame输出的长度。对于所有其他格式,此输出是物理层协议收敛过程(PLCP)服务数据单元(PSDU)的长度。

Data Types: double
数据类型: 双精度

References 参考资料

[1] IEEE Std 802.11™-2020 (Revision of IEEE Std 802.11-2016). “Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications.” IEEE Standard for Information Technology — Telecommunications and Information Exchange between Systems — Local and Metropolitan Area Networks — Specific Requirements.
IEEE 标准 802.11™-2020(IEEE 标准 802.11-2016 修订版)。“第 11 部分:无线局域网介质访问控制(MAC)和物理层(PHY)规范。” 美国电气和电子工程师协会信息技术标准-系统之间电信和信息交换-局域和城域网络-具体要求。

[2] IEEE® Std 802.11ax™-2021 (Amendment to IEEE Std 802.11-2020). “Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications. Amendment 1: Enhancements for High Efficiency WLAN.” IEEE Standard for Information Technology — Telecommunications and Information Exchange between Systems. Local and Metropolitan Area Networks — Specific Requirements.
[2] IEEE® Std 802.11ax™-2021(IEEE Std 802.11-2020 修正版)。"第 11 部分:无线局域网介质访问控制(MAC)和物理层(PHY)规范。修正版 1:高效率 WLAN 增强功能。"信息技术-系统间的电信和信息交换的 IEEE 标准。本地和城域网-特定要求。

Extended Capabilities 扩展功能

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
C/C++ 代码生成使用 MATLAB® Coder™ 生成 C 和 C++ 代码。

Version History 版本历史

Introduced in R2018b 在 R2018b 中引入