资料整理_mac,phy仿真与实现

发布时间 2023-11-09 11:45:13作者: PolarisZg

资料整理 mac,phy仿真与实现

Wi-Fi 7 新技术

物理层

  1. 更大的带宽

  2. 更高的调制阶数

  3. 更高的空间流

  4. 在新的物理层的加持下,Wi-Fi 7 最高理论速率超过46.117 Gbps

Wi-Fi 7
支持信道 2.4GHz, 5GHz, 6GHz 1. 相对于Wi-Fi 6 来说没有变化,相对于Wi-Fi 5 增加了新的6GHz 信道,但目前国内尚未将6GHz划分为ISM频段,只能说未来可期 2.
信号带宽MHz 20,40,80,160,320
子载波带宽kHz 78.125
符号长度 μs

mac层改进

PPDU

实际上这个应该放在phy层进行说明,但是因为涉及到对于帧的操作,所以就放在这里了,

img

EHT新定义了两种格式的PPDU,具体的两种PPDU格式以及各个字段的内容可以去参考802.11标准文档:

  1. EHT MU PPDU

  2. Trigger Based PPDU

RU组合

  1. RU,即OFDMA机制中的一种频率划分的资源单位;

  2. 在WiFi6中用户仅能在分配到的固定RU进行收发工作;

  3. Wi-Fi7引入了将多个RU分配给单用户的机制,考虑到7种RU产生的组合数过多,Wi-Fi规定了固定的几种RU组合;

  4. 因此,在MAC层需要设计机制,分配不同的RU组合给单用户。

  5. RU分配需要AP的支持,客户端仅需要被动的接受即可

  6. 具体的分配原理和内容可以参考CWNA的《802.11ax技术:高效无线局域网》章节的《正交频分多址》的讲解

多链路操作

img

  1. WiFi 6及之前版本的STA虽然支持多个Radio,多频率,但是同时只能和AP建立一个Radio链路

  2. 到了WiFi 7 版本,新定义了多链路设备MLO,能够同时和AP建立多个Radio数据链路

  3. 该功能可以被认为是包含多个独立的PHY,但在此基础上需要一个能够协同管理各个独立PHY的MAC层,目前为多链路聚合设备设计了三种MAC结构:

    1. 一个mac对应一个phy,更高层调度管理mac

    2. 一个mac对应一个phy,但各个mac之间互相协商

    3. mac分为两个子层,high mac负责协商管理下层的low mac,low mac负责MPDU报头处理和CRC等操作

img

  1. 另外MLO还定义了同步和异步两种工作模式:

  2. 同步模式下多链路同步收发,能够避免两个链路之间TX/RX互相干扰

  3. 异步模式下对多个链路之间没有要求

  4. 实际上,感觉链路聚合功能早就出现在有线网的网络里面了,从很久之前的NAS上就见过通过这项技术来提高带宽

多AP协同调度

具体如何进行协同调度需要参考802.11标准中的规定,以在mac层实现对该协同调度的管理

增强的重传机制HARQ

该机制被广泛用于蜂窝网络通信中。

img

时间敏感网络

仅仅被提出,并没有找到确切的具体的实现方案,但是有以下可能的方案:

  1. 时钟同步:

    分布式 MIMO、多AP 协作等功能需要基于各个节点的时钟同步。现有IEEE802.1AS 协议(EEE 1588PTP 简化版)可以实现分布式网络系统共享整网中某一个 节点的参考时钟,这在一定程度上解决了分布式 AP间的时钟同步问题。而 EEE 802.11v (Timing Measurement,TM)和EEE 802.11mc (Fine TimingMeasurement,FTM)也提供了 AP 和 Sta 之间时延测量的手段,IEEE802.1AS-Rev 中也通过使用上述手段实现 AP-STA间的时钟同步

  2. 资源调度和流量控制

    当前的 EDCA 使用了四种 AC (BE/BKVINO),目前来看不足以支撑超低延时的应用。TGbe 有计划增强 AC 分类,以对满足时间敏感业务的精细控制,并 能够根据实际业务修正 TXOP 的 AC 优先等级。

总结

能够确定的,WiFi7需要在mac层实现的新的东西有:

  1. PPDU

  2. RU组合分配

  3. 多链路操作以及管理的架构

Linux wifi芯片驱动_low mac

本文档中的大部分内容来自openwifi的开发文档,https://github.com/open-sdr/openwifi/blob/master/doc/README.md#Driver-and-software-overall-principle

ieee80211_ops

https://www.kernel.org/doc/html/v5.14/driver-api/80211/mac80211.html#c.ieee80211_ops

Linux内核提供了Wi-Fi的高层MAC支持(mac80211,cfg80211),链路速率自动调整功能,user space和kernel space的通信接口nl80211,以及user space丰富的工具软件,比如作为station模式的wpa_supplicant和作为AP模式的hostapd,借助Linux对于商用Wi-Fi芯片的支持,可以减轻很大部分基于FPGA的Wi-Fi实现的工作量,即Linux实现了除CSMA/CA之外的high mac部分,low mac部分需要FPGA或其他方式实现,具体包括:

  1. 完整的CSMA/CA

  2. FPGA与Linux的通信接口,数据的收发,响应WiFi包的收发中断等

  3. 物理层的部分

落实到代码上,就是响应Linux提供的一系列api:

  1. 作为Linux 无线系统的一部分,Linux mac 802.11 子系统定义了一系列的api去规范WiFi驱动程序的行为,一个WiFi芯片驱动需要实现这些api中的一部分。不同的模式(AP,客户端,ad-hoc,mesh)可能需要不同的api集。

  2. 下述api将由上层调用。当他们被调用时,驱动程序需要通过下层芯片来实现必要的工作。

  3. 下层芯片在收到数据包后,在帧过滤规则允许的情况下将向Linux发出中断,然后触发驱动程序的函数,在该中断函数中调用 Linux 内核的api ieee80211_rx_irqsafe()用于将数据包和相关信息提供给上层

  4. 数据包的发送由上层向驱动发起,当数据包被驱动程序通过下层芯片发送至空中后,上层会等待来自驱动程序的发送报告。每次下层芯片发送数据包时,将会向Linux发送中断并触发驱动程序中的函数,该函数将通过ieee80211_tx_status_irqsafe() API向上层报告发送结果(失败?成功?重传次数等)。

802.11物理层仿真_WLAN System Toolbox

802.11协议研究与工程主要集中在phy和mac层上

  • 对于MAC层的仿真,已经有一些公共的参考模板。比如NS2,NS3都有相应的程序实现,可以当做一个实现的模板来供学习,理解一些协议的细节。

  • 对于PHY层的仿真,缺少公共的参考模板。之前我们看到的大多都是第三方或者个人开放的版本,这样仿真对于协议也仅仅是点到为止。而Simulink或者Labview的模板也很多都是封装成图形化的模块,无法很好理解协议的细节。

Matlab WLAN System Toolbox是在2015b+的版本被添加的,当前已更新至R2023b版本。WLAN Toolbox™ 为无线局域网的设计、仿真、分析和测试提供了符合802.11协议的模板,包含发射/接收端和信道建模,其中具体的信道编码、调制方法(OFDM、DSSS和CCK)、空间流映射、信道模型 (TGac 和 TGn) 和 MIMO,都有专门的函数封装,以方便仿真。

而且WLAN System Toolbox不仅仅可以仿真,还可以连接到无线电设备, 并通过无线传输和接收来验证设计。

相应的功能在WLAN System Toolbox网站上都有相应的demo。

  1. WLAN System Toolbox官网:https://ww2.mathworks.cn/products/wlan.html

  2. 802.11be物理层数据包恢复demo:https://ww2.mathworks.cn/help/wlan/ug/recovery-procedure-for-an-802-11be-packet.html

  3. WLAN System Toolbox 更新日志:https://ww2.mathworks.cn/help/wlan/release-notes.html

img

img

img