wiki:802.11/wlan_exp/app_notes/tutorial_hop_mac/fast_hopping

Version 5 (modified by chunter, 9 years ago) (diff)

--

Tutorial: A Custom Hopping MAC

based on Ref. Des. v1.3

Fast Hopping Approach

Rather than have an AP decree a hopping event by including the Channel Switch Announcement, instead we can let each node on the network have an a priori known frequency hopping schedule. This will not only dramatically reduce overhead, but will also increase reliability since client stations will not have to decode an explicit announcement prior to hopping to a new channel. If we can synchronize our nodes such that don't drift apart from one another, this approach can let us considerably speed up the hopping rate as compared to the prior approach (milliseconds of dwell time vs 10 seconds of dwell time).

Example timeline for fast hopping approach

In this design, the 802.11 DCF MAC will operate independently from the hopping schedule. The channel that a transmission uses is completely determined by the start time of that transmission and the frequency hopping schedule. Multiple frames can be transmitted within a single hop interval or a single transmission can extend beyond the next hop boundary. Any ongoing transmission or reception defers the next frequency tuning event until at least after the transmission or reception completes.

Changes to the 802.11 Reference Design

To implement the frequency hopping schedule, the majority of our changes will take place in CPU_LOW. We will leave the high-level AP and STA applications generally unaware of the underlying frequency hopping behavior. The singular exception to this is that we will build in hooks to enable and disable the frequency hopping so the high-level applications can control whether or not the hopping behavior is active. For example, the STA will only enable the low-level frequency hopping once it has completed an active scan and has fully associated with the AP.

CPU_HIGH and CPU_LOW

Changes should be made to wlan_mac_ipc_util.h in the project SDK workspace zip.


We need to define one new type of IPC message between CPU_LOW and CPU_HIGH. This message will be used to enable or disable the frequency hopping behavior. Add the following definition to the wlan_mac_ipc_util.h header file:

#define IPC_MBOX_CONFIG_HOPPING         50

The value of 50 is arbitrary. The only real requirement is that it is distinct from the other IPC definitions. You can find the other IPC_MBOX_ definitions in the same file.

Oscilloscope Plots
Fast Hopping 802.11 Throughput vs. Time
Standard 802.11
Slow Frequency Hopping 802.11
Fast Frequency Hopping 802.11