资料整理 mac,phy仿真与实现
Wi-Fi 7 新技术
物理层
-
更大的带宽
-
更高的调制阶数
-
更高的空间流
-
在新的物理层的加持下,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层进行说明,但是因为涉及到对于帧的操作,所以就放在这里了,
EHT新定义了两种格式的PPDU,具体的两种PPDU格式以及各个字段的内容可以去参考802.11标准文档:
-
EHT MU PPDU
-
Trigger Based PPDU
RU组合
-
RU,即OFDMA机制中的一种频率划分的资源单位;
-
在WiFi6中用户仅能在分配到的固定RU进行收发工作;
-
Wi-Fi7引入了将多个RU分配给单用户的机制,考虑到7种RU产生的组合数过多,Wi-Fi规定了固定的几种RU组合;
-
因此,在MAC层需要设计机制,分配不同的RU组合给单用户。
-
RU分配需要AP的支持,客户端仅需要被动的接受即可
-
具体的分配原理和内容可以参考CWNA的《802.11ax技术:高效无线局域网》章节的《正交频分多址》的讲解
多链路操作
-
WiFi 6及之前版本的STA虽然支持多个Radio,多频率,但是同时只能和AP建立一个Radio链路
-
到了WiFi 7 版本,新定义了多链路设备MLO,能够同时和AP建立多个Radio数据链路
-
该功能可以被认为是包含多个独立的PHY,但在此基础上需要一个能够协同管理各个独立PHY的MAC层,目前为多链路聚合设备设计了三种MAC结构:
-
一个mac对应一个phy,更高层调度管理mac
-
一个mac对应一个phy,但各个mac之间互相协商
-
mac分为两个子层,high mac负责协商管理下层的low mac,low mac负责MPDU报头处理和CRC等操作
-
-
另外MLO还定义了同步和异步两种工作模式:
-
同步模式下多链路同步收发,能够避免两个链路之间TX/RX互相干扰
-
异步模式下对多个链路之间没有要求
-
实际上,感觉链路聚合功能早就出现在有线网的网络里面了,从很久之前的NAS上就见过通过这项技术来提高带宽
多AP协同调度
具体如何进行协同调度需要参考802.11标准中的规定,以在mac层实现对该协同调度的管理
增强的重传机制HARQ
该机制被广泛用于蜂窝网络通信中。
时间敏感网络
仅仅被提出,并没有找到确切的具体的实现方案,但是有以下可能的方案:
-
时钟同步:
分布式 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间的时钟同步
-
资源调度和流量控制
当前的 EDCA 使用了四种 AC (BE/BKVINO),目前来看不足以支撑超低延时的应用。TGbe 有计划增强 AC 分类,以对满足时间敏感业务的精细控制,并 能够根据实际业务修正 TXOP 的 AC 优先等级。
总结
能够确定的,WiFi7需要在mac层实现的新的东西有:
-
PPDU
-
RU组合分配
-
多链路操作以及管理的架构
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或其他方式实现,具体包括:
-
完整的CSMA/CA
-
FPGA与Linux的通信接口,数据的收发,响应WiFi包的收发中断等
-
物理层的部分
落实到代码上,就是响应Linux提供的一系列api:
-
作为Linux 无线系统的一部分,Linux mac 802.11 子系统定义了一系列的api去规范WiFi驱动程序的行为,一个WiFi芯片驱动需要实现这些api中的一部分。不同的模式(AP,客户端,ad-hoc,mesh)可能需要不同的api集。
-
下述api将由上层调用。当他们被调用时,驱动程序需要通过下层芯片来实现必要的工作。
-
下层芯片在收到数据包后,在帧过滤规则允许的情况下将向Linux发出中断,然后触发驱动程序的函数,在该中断函数中调用 Linux 内核的api ieee80211_rx_irqsafe()用于将数据包和相关信息提供给上层
-
数据包的发送由上层向驱动发起,当数据包被驱动程序通过下层芯片发送至空中后,上层会等待来自驱动程序的发送报告。每次下层芯片发送数据包时,将会向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。
-
WLAN System Toolbox官网:https://ww2.mathworks.cn/products/wlan.html
-
802.11be物理层数据包恢复demo:https://ww2.mathworks.cn/help/wlan/ug/recovery-procedure-for-an-802-11be-packet.html
-
WLAN System Toolbox 更新日志:https://ww2.mathworks.cn/help/wlan/release-notes.html