在上届 FOSDEM 2020 会议上 项目 ,开发第一个完整 Wi-Fi 802.11a/g/n 堆栈的开放实施,其中的信号形状和调制在软件(SDR,软件定义无线电)中指定。 OpenWifi 允许您创建无线设备所有组件的完全受控实现,包括低级层,在传统无线适配器中,低级层是在不可审计的芯片级别实现的。 代码 和 用于 FPGA 的 Verilog 语言的硬件模块根据 AGPLv3 许可证进行分发。
所展示的工作原型硬件组件基于 Xilinx Zynq FPGA 和 AD9361 通用射频收发器。OpenWifi 采用 SoftMAC 架构,该架构在驱动程序端实现核心 802.11 无线协议栈(高 MAC 层),在 FPGA 端实现低 MAC 层。无线协议栈由 mac80211 内核子系统提供。 Linux与 SDR 的交互是通过一个特殊的驱动程序进行的。
主要特点:
- 完全支持 802.11a/g,部分支持 802.11n MCS 0~7(目前仅支持 PHY rx)。 有计划支持802.11ax;
- 带宽 20MHz,频率范围 70 MHz 至 6 GHz;
- 操作模式: (客户端设备网络)、接入点、站和监控;
- FPGA端链路层协议的实现 (分布式协调功能),采用CSMA/CA方法。 提供帧处理时间() 电平为 10us;
- 可配置的通道访问优先级参数:RTS/CTS持续时间、CTS-to-self、SIFS、DIFS、xIFS、时隙等。
- 时间切片()基于MAC地址;
- 轻松更改带宽和频率:
2ah 为 802.11MHz,10p 为 802.11MHz;
目前,OpenWifi 提供 基于 FPGA 的 SDR 平台
Xilinx ZC706 配备 Analog Devices FMCOMMS2/3/4 收发器,以及捆绑包 (FPGA + RF) ADRV9361Z7035 SOM + ADRV1CRR-BOB 和 ADRV9361Z7035 SOM + ADRV1CRR-FMC。 成型用于装载 基于 ARM 的 SD 卡 Linux该计划包括支持 ADRV9364Z7020 SOM + ADRV1CRR-BOB、Xilinx zed + FMCOMMS2/3/4、Xilinx ZCU102 + FMCOMMS2/3/4 和
赛灵思 ZCU102 + ADRV9371。 第一个 OpenWifi 原型所涉及的组件成本约为 1300 欧元,但正在移植到更便宜的主板上。 例如,基于的解决方案的成本 将为 700 欧元,并在此基础上 - 400 欧元。
使用 TL-WDN4200 N900 USB 适配器测试客户端与基于 OpenWifi 的接入点之间的连接性能,结果显示,从接入点到客户端的数据传输吞吐量为 30.6 Mbps (TCP) 和 38.8 Mbps (UDP),从客户端到接入点的数据传输吞吐量为 17.0 Mbps (TCP) 和 21.5 Mbps (UDP)。可以使用内置实用程序进行管理。 Linux例如 ifconfig 和 iwconfig,以及一个专门的实用程序 sdrctl,它通过 netlink 工作,允许您在底层控制 SDR 操作(操作寄存器、更改时间量化设置等)。

在其他尝试 Wi-Fi 堆栈的开放项目中,我们可以注意到该项目 开发符合 IEEE 802.11 a/g/p 标准的产品 基于 GNU Radio 和普通 PC。 软件开放 802.11 无线堆栈也在开发项目 и (微软研究软件无线电)。
来源: opennet.ru
