OpenWifi 项目,基于 FPGA 和 SDR 实现开放式 Wi-Fi 芯片

在上届 FOSDEM 2020 会议上 提交 项目 无线网络,开发第一个完整 Wi-Fi 802.11a/g/n 堆栈的开放实施,其中的信号形状和调制在软件(SDR,软件定义无线电)中指定。 OpenWifi 允许您创建无线设备所有组件的完全受控实现,包括低级层,在传统无线适配器中,低级层是在不可审计的芯片级别实现的。 代码 软件组件图表和描述 用于 FPGA 的 Verilog 语言的硬件模块根据 AGPLv3 许可证进行分发。

演示的工作原型的硬件组件基于 Xilinx Zynq FPGA 和 AD9361 通用收发器 (RF)。 OpenWifi 使用 SoftMAC 架构,这意味着在驱动程序端实现主要 802.11 无线堆栈(high-MAC),并在 FPGA 端存在 low-MAC 层。 无线堆栈使用 Linux 内核提供的 mac80211 子系统。 与SDR的交互是通过特殊的驱动程序进行的。

OpenWifi 项目,基于 FPGA 和 SDR 实现开放式 Wi-Fi 芯片

主要特点:

  • 完全支持 802.11a/g,部分支持 802.11n MCS 0~7(目前仅支持 PHY rx)。 有计划支持802.11ax;
  • 带宽 20MHz,频率范围 70 MHz 至 6 GHz;
  • 操作模式: 特别指定 (客户端设备网络)、接入点、站和监控;
  • FPGA端链路层协议的实现 DCF (分布式协调功能),采用CSMA/CA方法。 提供帧处理时间(SIFS) 电平为 10us;
  • 可配置的通道访问优先级参数:RTS/CTS持续时间、CTS-to-self、SIFS、DIFS、xIFS、时隙等。
  • 时间切片(时间切片)基于MAC地址;
  • 轻松更改带宽和频率:
    2ah 为 802.11MHz,10p 为 802.11MHz;

OpenWifi 项目,基于 FPGA 和 SDR 实现开放式 Wi-Fi 芯片

目前,OpenWifi 提供 支持 基于 FPGA 的 SDR 平台
Xilinx ZC706 配备 Analog Devices FMCOMMS2/3/4 收发器,以及捆绑包 (FPGA + RF) ADRV9361Z7035 SOM + ADRV1CRR-BOB 和 ADRV9361Z7035 SOM + ADRV1CRR-FMC。 成型用于装载 成品图 基于 ARM Linux 的 SD 卡。 计划支持 ADRV9364Z7020 SOM + ADRV1CRR-BOB、Xilinx zed + FMCOMMS2/3/4、Xilinx ZCU102 + FMCOMMS2/3/4 和
赛灵思 ZCU102 + ADRV9371。 第一个 OpenWifi 原型所涉及的组件成本约为 1300 欧元,但正在移植到更便宜的主板上。 例如,基于的解决方案的成本 模拟器件 ADRV9364-Z7020 将为 700 欧元,并在此基础上 ZYNQ NH7020 - 400 欧元。

通过测试使用 TL-WDN4200 N900 USB 适配器将客户端连接到基于 OpenWifi 的接入点的性能,我们可以在从接入点向客户端传输数据时实现 30.6Mbps (TCP) 和 38.8Mbps (UDP) 的吞吐量,并且从客户端传输到接入点时为 17.0Mbps (TCP) 和 21.5Mbps (UDP)。 对于管理,可以使用标准 Linux 实用程序,例如 ifconfig 和 iwconfig,以及专用实用程序 sdrctl,它通过 netlink 工作,并允许您在低级别控制 SDR 的操作(操作寄存器、更改时间片设置、 ETC。)。

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

OpenWifi 项目,基于 FPGA 和 SDR 实现开放式 Wi-Fi 芯片

来源: opennet.ru

添加评论