Main Content

802.11 OFDM Beacon Frame Generation and Transmission with Test and Measurement Equipment

This example shows how to generate packets containing MAC beacon frames suitable for baseband simulation or over-the-air transmission using WLAN Toolbox™ software, Instrument Control Toolbox™ software, and Keysight Technologies™ RF signal generator.

Introduction

In this example, you create an IEEE® 802.11™ beacon frame by using WLAN Toolbox software. Then, you download the generated beacon frame to a Keysight Technologies N517B signal generator for over-the-air transmission by using Instrument Control Toolbox software. A beacon frame is a type of management frame that identifies a basic service set (BSS) formed by some 802.11 devices. The access point of a BSS periodically transmits the beacon frame to establish and maintain the network. You can view this beacon frame, transmitted by the RF signal generator, to a wireless network device.

For more information on beacon frame generation using WLAN Toolbox software, refer to 802.11 OFDM Beacon Frame Generation (WLAN Toolbox).

Requirements

To run this example you need:

  • Keysight Technologies N5172B signal generator

  • Keysight VISA version 17.3

  • IVI-C driver for Keysight Technologies N5172B signal generator

  • National Instruments™ IVI® compliance package version 16.0.1.2 or higher

  • WLAN Toolbox

  • Instrument Control Toolbox

Create IEEE 802.11 Beacon Frame

A station (STA) periodically transmits beacon packets as specified by the target beacon transmission time (TBTT) in the Beacon Interval field. The beacon interval represents the number of time units (TUs) between TBTTs, where 1 TU represents 1024 microseconds. A beacon interval of 100 TUs results in a 102.4 millisecond time interval between successive beacons. You can generate a beacon frame by using the wlanMACFrame (WLAN Toolbox) function with medium access control (MAC) frame configuration object wlanMACFrameConfig (WLAN Toolbox) and MAC frame-body configuration object wlanMACManagementConfig (WLAN Toolbox).

Specify the network service set identifier (SSID), beacon interval, operating band, and channel number.

ssid = "TEST_BEACON";
beaconInterval = 100;
band = 5;
chNum = 52;

Create a MAC frame-body configuration object, setting the SSID and Beacon Interval field value.

frameBodyConfig = wlanMACManagementConfig( ...
    BeaconInterval=beaconInterval, ...
    SSID=ssid);

Add the DS Parameter information element (IE) to the frame body by using the addIE (WLAN Toolbox) object function.

dsElementID = 3;
dsInformation = dec2hex(chNum,2);
frameBodyConfig = frameBodyConfig.addIE(dsElementID,dsInformation);

Create beacon frame configuration object.

beaconFrameConfig = wlanMACFrameConfig(FrameType="Beacon", ...
    ManagementConfig=frameBodyConfig);

Generate beacon frame bits.

[mpduBits,mpduLength] = wlanMACFrame(beaconFrameConfig,OutputFormat="bits");

Calculate center frequency for the specified operating band and channel number.

fc = wlanChannelFrequency(chNum,band);

Create IEEE 802.11 Beacon Packet

Configure a non-HT beacon packet with the relevant PSDU length, specifying a channel bandwidth of 20 MHz, one transmit antenna, and BPSK modulation with a coding rate of 1/2 (corresponding to MCS index 0) by using the wlanNonHTConfig (WLAN Toolbox) object.

len = numel(mpduBits)/8;
cfgNonHT = wlanNonHTConfig(PSDULength=len);

Generate the beacon packet by using the wlanWaveformGenerator (WLAN Toolbox) function, specifying an idle time in seconds. The idle time is the duration of an idle period after each generated packet.

tbtt = 1024e-6;
txWaveform = wlanWaveformGenerator(mpduBits,cfgNonHT, ...
    IdleTime=beaconInterval*tbtt);

Get the waveform sampling rate by using the wlanSampleRate (WLAN Toolbox) function.

Rs = wlanSampleRate(cfgNonHT);

Create RF Signal Generator Object

Use the Quick-Control RF Signal Generator from Instrument Control Toolbox to download and transmit the baseband waveform txWaveform generated by WLAN Toolbox.

rf = rfsiggen();

Discover all the available instrument resources you can connect to, using the resources method.

resources(rf)
ans = 
    ' ASRL::COM3
      ASRL::COM4
      TCPIP0::A-N5172B-50283.dhcp.mathworks.com::inst0::INSTR
      TCPIP0::A-N9010A-21026.dhcp.mathworks.com::inst0::INSTR
      TCPIP0::A-N9030A-71181.dhcp.mathworks.com::inst0::INSTR
      TCPIP0::csuesg.dhcp.mathworks.com::inst0::INSTR
     '

Discover all the available instrument drivers, using the drivers method.

drivers(rf)
ans = 
    'Driver: AgRfSigGen_SCPI
     Supported Models:
     E4428C, E4438C
     
     Driver: RsRfSigGen_SCPI
     Supported Models:
     SMW200A, SMBV100A, SMU200A, SMJ100A, AMU200A, SMATE200A
     
     Driver: AgRfSigGen
     Supported Models:
        E4428C,E4438C,N5181A,N5182A,N5183A,N5171B,N5181B,N5172B
        N5182B,N5173B,N5183B,N5166B,N5182N,N5183N,E8241A,E8244A
        E8251A,E8254A,E8247C,E8257C,E8267C,E8257D,E8267D,E8663B
     
     '

The Keysight Technologies N517B signal generator is identified as TCPIP0::A-N5172B-50283.dhcp.mathworks.com::inst0::INSTR and the driver that supports this instrument is ArRfSigGen.

Connect to Signal Generator

To connect to the instrument, specify the object's Resource and Driver properties. In this example, the resource string for the Keysight Technologies N517B signal generator is TCPIP0::A-N5172B-50283.dhcp.mathworks.com::inst0::INSTR. The resource string is different for your instrument.

rf.Resource = "TCPIP0::A-N5172B-50283.dhcp.mathworks.com::inst0::INSTR";
rf.Driver = "AgRfSigGen";
% Connect to the instrument
connect(rf);

Download Waveform

Download txWaveform to the instrument with sampling rate calculated during beacon packet creation.

download(rf,transpose(txWaveform),Rs);

Transmit Waveform

Call start to start transmitting the waveform using a specified center frequency for the waveform, output power for the RF signal generation, and number of times to repeat the waveform.

centerFrequency = fc;
outputPower = 0;
loopCount = Inf;
start(rf,centerFrequency,outputPower,loopCount);

Once the signal generator is transmitting the beacon, you can test by scanning for a wireless network using a Wi-Fi device. You should now see a TEST_BEACON SSID in the list of available networks.

Clean Up

When you are done, stop the waveform transmission, disconnect the rfsiggen object from the signal generator, and clear it from the workspace.

stop(rf);
disconnect(rf);
clear rf