Das OpenWifi-Projekt mit der Implementierung eines offenen Wi-Fi-Chips auf Basis von FPGA und SDR

Auf der vergangenen FOSDEM 2020-Konferenz vorgestellt Projekt OpenWifi, das erste vollständige und offene Wi-Fi 802.11a/g/n-Stack realisiert, dessen Signalform und Modulation softwaredefiniert (SDR, Software Defined Radio) sind. OpenWifi ermöglicht die Erstellung einer vollständig kontrollierbaren Implementierung aller Komponenten des drahtlosen Geräts, einschließlich der unteren Schichten, die in herkömmlichen Wireless-Adaptern auf einer Ebene realisiert werden, die nicht auditiert werden kann. Der Code der Softwarekomponenten, sowie Schemen und Beschreibungen von Hardwareblöcken in Verilog für FPGA werden unter der AGPLv3-Lizenz verbreitet.

Die Hardwarekomponente des vorgestellten funktionierenden Prototyps basiert auf dem FPGA Xilinx Zynq und dem universellen Sender-Empfänger (RF) AD9361. In OpenWifi wird die SoftMAC-Architektur verwendet, die die Implementierung des grundlegenden drahtlosen 802.11-Stacks (high-MAC) auf der Treiber-Seite und die Verfügbarkeit einer low-MAC-Schicht auf der FPGA-Seite umfasst. Als drahtloser Stack wird die vom Linux-Kernel bereitgestellte mac80211-Subsystem verwendet. Die Interaktion mit SDR erfolgt über einen speziellen Treiber.

Das OpenWifi-Projekt mit der Implementierung eines offenen Wi-Fi-Chips auf Basis von FPGA und SDR

Hauptfunktionen:

  • Vollständige Unterstützung für 802.11a/g und teilweise Unterstützung für 802.11n MCS 0~7 (derzeit nur PHY rx). Geplant ist die Unterstützung von 802.11ax;
  • Bandbreite von 20MHz und Frequenzbereich von 70 MHz bis 6 GHz;
  • Betriebsmodi: Ad-hoc (Netzwerk von Client-Geräten), Zugangspunkt, Station und Überwachung;
  • Die Implementierung des Kommunikationsprotokolls auf der FPGA-Seite DCF (Distributed Coordination Function), das das CSMA/CA-Verfahren verwendet. Es wird eine Verarbeitungsgeschwindigkeit vonSIFS) auf der Ebene von 10us sichergestellt;
  • Konfigurierbare Zugriffsprioritätsparameter: RTS/CTS-Dauer, CTS-to-self, SIFS, DIFS, xIFS, Slot-Zeit usw.
  • Zeitquantisierung (Time slicing) basierend auf MAC-Adressen;
  • Leicht veränderbare Bandbreite und Frequenz:
    2MHz für 802.11ah und 10MHz für 802.11p;

Das OpenWifi-Projekt mit der Implementierung eines offenen Wi-Fi-Chips auf Basis von FPGA und SDR

Derzeit wird in OpenWifi sichergestellt, dass unterstützt SDR-Plattformen auf Basis von FPGA
Xilinx ZC706 mit Analog Devices FMCOMMS2/3/4-Payloads sowie Kombinationen (FPGA + RF) ADRV9361Z7035 SOM + ADRV1CRR-BOB und ADRV9361Z7035 SOM + ADRV1CRR-FMC. Zum Laden wurde ein bereites Image für SD-Karten auf Basis von ARM Linux erstellt. Geplant ist die Unterstützung von Kombinationen ADRV9364Z7020 SOM + ADRV1CRR-BOB, Xilinx zed + FMCOMMS2/3/4, Xilinx ZCU102 + FMCOMMS2/3/4 und
Xilinx ZCU102 + ADRV9371. Die Kosten der Komponenten, die im ersten Prototyp von OpenWifi verwendet wurden, beliefen sich auf etwa 1300 Euro, aber es wird an der Portierung auf kostengünstigere Boards gearbeitet. Zum Beispiel wird die Lösung auf Basis von Analog Devices ADRV9364-Z7020 700 Euro kosten, während die Lösung auf Basis von ZYNQ NH7020 400 Euro kosten wird.

Die Leistungstest für die Verbindung eines Clients mit dem USB-Adapter TL-WDN4200 N900 zu einem Access Point, der auf OpenWifi basiert, ergaben eine Durchsatzrate von 30,6 Mbps (TCP) und 38,8 Mbps (UDP) bei der Datenübertragung vom Access Point zum Client sowie 17,0 Mbps (TCP) und 21,5 Mbps (UDP) bei der Übertragung vom Client zum Access Point. Zur Verwaltung können Standard-Linux-Dienstprogramme wie ifconfig und iwconfig sowie das spezielle Dienstprogramm sdrctl verwendet werden, das über netlink arbeitet und es ermöglicht, SDR auf niedriger Ebene (Register zu manipulieren, Zeiteinstellungen zu ändern usw.) zu steuern.

Video abspielen

Von anderen Open-Source-Projekten, die mit Wi-Fi-Stacks experimentieren, kann das Projekt Wime, das einen kompatiblen IEEE 802.11 a/g/p Sender auf Basis von GNU Radio und einem normalen PC entwickelt, erwähnen. Auch die Software-Open-Source-Wireless-Stacks 802.11 entwickeln Projekte wie Ziria und Sora (Microsoft Research Software Radio).

Das OpenWifi-Projekt mit der Implementierung eines offenen Wi-Fi-Chips auf Basis von FPGA und SDR

Quelle: opennet.ru

60GB SSD 8Gb DDR4