OpenWifi project with the implementation of an open Wi-Fi chip based on FPGA and SDR

At the last conference FOSDEM 2020 submitted project openwifi, which develops the first open implementation of the full Wi-Fi 802.11a / g / n stack, in which the signal shape and modulation are set programmatically (SDR, Software Defined Radio). OpenWifi allows you to create a completely controlled implementation of all components of a wireless device, including low-level layers, in conventional wireless adapters implemented at the level of chips inaccessible to audit. Code software componentsand diagrams and descriptions hardware blocks in the Verilog language for FPGA are distributed under the AGPLv3 license.

The hardware component of the demonstrated working prototype is based on the Xilinx Zynq FPGA and the AD9361 Universal Transceiver (RF). OpenWifi uses the SoftMAC architecture, which implies the implementation of the main 802.11 (high-MAC) wireless stack on the driver side and the presence of a low-MAC layer on the FPGA side. The wireless stack uses the mac80211 subsystem provided by the Linux kernel. Interaction with SDR is made through a special driver.

OpenWifi project with the implementation of an open Wi-Fi chip based on FPGA and SDR

Key features:

  • Full support for 802.11a/g and partial support for 802.11n MCS 0~7 (only PHY rx for now). Plans to support 802.11ax;
  • Bandwidth 20MHz and frequency range from 70 MHz to 6 GHz;
  • Modes of operation: Tailor-made (network of client devices), access point, station and monitoring;
  • Implementation on the FPGA side of the link layer protocol DCF (Distributed Coordination Function) using the CSMA/CA method. Frame processing time is provided (SIFS) at the 10us level;
  • Configurable channel access priority parameters: RTS/CTS duration, CTS-to-self, SIFS, DIFS, xIFS, slot-time, etc.
  • Time quantization (time slicing) based on MAC address;
  • Easily changeable bandwidth and frequency:
    2MHz for 802.11ah and 10MHz for 802.11p;

OpenWifi project with the implementation of an open Wi-Fi chip based on FPGA and SDR

Currently, OpenWifi provides support FPGA based SDR platforms
Xilinx ZC706 with Analog Devices FMCOMMS2/3/4 transceivers, as well as bundles (FPGA + RF) ADRV9361Z7035 SOM + ADRV1CRR-BOB and ADRV9361Z7035 SOM + ADRV1CRR-FMC. Formed for download finished image SD cards based on ARM Linux. We plan to support bundles ADRV9364Z7020 SOM + ADRV1CRR-BOB, Xilinx zed + FMCOMMS2/3/4, Xilinx ZCU102 + FMCOMMS2/3/4 and
Xilinx ZCU102 + ADRV9371. The cost of the components involved in the first prototype of OpenWifi was about 1300 euros, but porting to cheaper boards is underway. For example, the cost of a solution based on Analog Devices ADRV9364-Z7020 will be 700 euros, and on the basis of ZYNQ NH7020 - 400 euros.

Testing the performance of connecting a client with a USB adapter TL-WDN4200 N900 to an access point based on OpenWifi allowed us to achieve a throughput of 30.6Mbps (TCP) and 38.8Mbps (UDP) when transferring data from the access point to the client and 17.0Mbps (TCP) and 21.5Mbps (UDP) from the client to the access point. Regular Linux utilities such as ifconfig and iwconfig can be used for control, as well as a specialized sdrctl utility that works via netlink and allows you to control SDR operation at a low level (manipulate registers, change time slicing settings, etc.).

Of the other open source projects experimenting with the Wi-Fi stack, one can note the project Wimedeveloping IEEE 802.11 a/g/p compliant transmitter based on GNU Radio and regular PC. 802.11 software open wireless stacks are also developing projects the wedge ΠΈ Sora (Microsoft Research Software Radio).

OpenWifi project with the implementation of an open Wi-Fi chip based on FPGA and SDR

Source: opennet.ru

Add a comment