OpenWifi-Projekt mit der Implementierung eines offenen WLAN-Chips auf Basis von FPGA und SDR

Auf der letzten FOSDEM 2020-Konferenz eingereicht Projekt offenes WLAN, Entwicklung der ersten offenen Implementierung des vollständigen Wi-Fi 802.11a/g/n-Stacks, dessen Signalform und Modulation in der Software spezifiziert wird (SDR, Software Defined Radio). Mit OpenWifi können Sie eine vollständig kontrollierte Implementierung aller Komponenten eines drahtlosen Geräts erstellen, einschließlich der Low-Level-Schichten, die in herkömmlichen drahtlosen Adaptern auf der Ebene von Chips implementiert sind, die nicht überprüfbar sind. Code Softwarekomponenten, und auch Diagramme und Beschreibungen Hardwareblöcke in Verilog-Sprache für FPGA werden unter der AGPLv3-Lizenz vertrieben.

Die Hardwarekomponente des gezeigten funktionierenden Prototyps basiert auf dem Xilinx Zynq FPGA und dem Universal-Transceiver (RF) AD9361. OpenWifi verwendet die SoftMAC-Architektur, was die Implementierung des Haupt-802.11-Wireless-Stacks (High-MAC) auf der Treiberseite und das Vorhandensein einer Low-MAC-Schicht auf der FPGA-Seite impliziert. Der Wireless-Stack verwendet das vom Linux-Kernel bereitgestellte Subsystem mac80211. Die Interaktion mit SDR erfolgt über einen speziellen Treiber.

OpenWifi-Projekt mit der Implementierung eines offenen WLAN-Chips auf Basis von FPGA und SDR

Key Features:

  • Volle Unterstützung für 802.11a/g und teilweise Unterstützung für 802.11n MCS 0~7 (vorerst nur PHY RX). Es gibt Pläne, 802.11ax zu unterstützen;
  • Bandbreite 20 MHz und Frequenzbereich von 70 MHz bis 6 GHz;
  • Betriebsarten: Ad-hoc (Netzwerk von Client-Geräten), Zugangspunkt, Station und Überwachung;
  • Implementierung des Link-Layer-Protokolls auf der FPGA-Seite DCF (Verteilte Koordinationsfunktion) unter Verwendung der CSMA/CA-Methode. Bietet Frame-Verarbeitungszeit (SIFS) auf Stufe 10us;
  • Konfigurierbare Kanalzugriffsprioritätsparameter: RTS/CTS-Dauer, CTS-to-self, SIFS, DIFS, xIFS, Slot-Time usw.
  • Zeitscheiben (Time-Slicing) basierend auf der MAC-Adresse;
  • Leicht veränderbare Bandbreite und Frequenz:
    2 MHz für 802.11ah und 10 MHz für 802.11p;

OpenWifi-Projekt mit der Implementierung eines offenen WLAN-Chips auf Basis von FPGA und SDR

Derzeit bietet OpenWifi unterstützen FPGA-basierte SDR-Plattformen
Xilinx ZC706 mit FMCOMMS2/3/4-Transceivern von Analog Devices sowie Bundles (FPGA + RF) ADRV9361Z7035 SOM + ADRV1CRR-BOB und ADRV9361Z7035 SOM + ADRV1CRR-FMC. Zum Verladen geformt fertiges Bild ARM Linux-basierte SD-Karten. Es ist geplant, ADRV9364Z7020 SOM + ADRV1CRR-BOB, Xilinx zed + FMCOMMS2/3/4, Xilinx ZCU102 + FMCOMMS2/3/4 und zu unterstützen
Xilinx ZCU102 + ADRV9371. Die Kosten für die Komponenten des ersten OpenWifi-Prototyps betrugen etwa 1300 Euro, eine Portierung auf günstigere Platinen ist jedoch im Gange. Beispielsweise die Kosten einer Lösung basierend auf Analoge Geräte ADRV9364-Z7020 wird 700 Euro betragen, und auf der Basis ZYNQ NH7020 - 400 Euro.

Beim Testen der Leistung beim Verbinden eines Clients mit einem TL-WDN4200 N900 USB-Adapter mit einem OpenWifi-basierten Zugangspunkt konnten wir einen Durchsatz von 30.6 Mbit/s (TCP) und 38.8 Mbit/s (UDP) bei der Datenübertragung vom Zugangspunkt zum Client und erreichen 17.0 Mbit/s (TCP) und 21.5 Mbit/s (UDP) bei der Übertragung vom Client zum Access Point. Für die Verwaltung können Standard-Linux-Dienstprogramme wie ifconfig und iwconfig sowie ein spezielles Dienstprogramm sdrctl verwendet werden, das über Netlink funktioniert und es Ihnen ermöglicht, den Betrieb von SDR auf niedriger Ebene zu steuern (Register manipulieren, Zeitscheibeneinstellungen ändern, usw.).

Unter anderen offenen Projekten, die mit dem Wi-Fi-Stack experimentieren, können wir das Projekt erwähnen WieEntwicklung der IEEE 802.11 a/g/p-Konformität Sender basierend auf GNU Radio und einem normalen PC. Software-offene 802.11-Wireless-Stacks entwickeln ebenfalls Projekte Ziria и Sora (Microsoft Research Software Radio).

OpenWifi-Projekt mit der Implementierung eines offenen WLAN-Chips auf Basis von FPGA und SDR

Source: opennet.ru

Kommentar hinzufügen