ProHoster > Progetto OpenWifi con l'implementazione di un chip Wi-Fi aperto basato su FPGA e SDR
Progetto OpenWifi con l'implementazione di un chip Wi-Fi aperto basato su FPGA e SDR
All'ultimo convegno FOSDEM 2020 presentata progetto wifi aperto, sviluppando la prima implementazione aperta dell'intero stack Wi-Fi 802.11a/g/n, la cui forma e modulazione del segnale sono specificate nel software (SDR, Software Defined Radio). OpenWifi consente di creare un'implementazione completamente controllata di tutti i componenti di un dispositivo wireless, inclusi i livelli di basso livello, che negli adattatori wireless convenzionali sono implementati a livello di chip non controllabili. Codice componenti softwaree diagrammi e descrizioni i blocchi hardware in linguaggio Verilog per FPGA sono distribuiti sotto la licenza AGPLv3.
Il componente hardware del prototipo funzionante dimostrato si basa sull'FPGA Xilinx Zynq e sul ricetrasmettitore universale (RF) AD9361. OpenWifi utilizza l'architettura SoftMAC, che implica l'implementazione dello stack wireless principale 802.11 (high-MAC) sul lato driver e la presenza di uno strato low-MAC sul lato FPGA. Lo stack wireless utilizza il sottosistema mac80211 fornito dal kernel Linux. L'interazione con SDR viene effettuata tramite un driver speciale.
Caratteristiche principali:
Supporto completo per 802.11a/g e supporto parziale per 802.11n MCS 0~7 (solo PHY rx per ora). È previsto il supporto di 802.11ax;
Larghezza di banda 20 MHz e range di frequenza da 70 MHz a 6 GHz;
Modalità operative: Ad hoc (rete di dispositivi client), punto di accesso, stazione e monitoraggio;
Implementazione del protocollo del livello di collegamento sul lato FPGA DCF (Funzione di Coordinamento Distribuito), utilizzando il metodo CSMA/CA. Fornisce il tempo di elaborazione del frame (SIFS) al livello 10us;
Parametri di priorità di accesso al canale configurabili: durata RTS/CTS, CTS-to-self, SIFS, DIFS, xIFS, slot-time, ecc.
Larghezza di banda e frequenza facilmente modificabili:
2 MHz per 802.11ah e 10 MHz per 802.11p;
Attualmente, OpenWifi fornisce sostegno Piattaforme SDR basate su FPGA
Xilinx ZC706 con ricetrasmettitori FMCOMMS2/3/4 di Analog Devices, nonché bundle (FPGA + RF) ADRV9361Z7035 SOM + ADRV1CRR-BOB e ADRV9361Z7035 SOM + ADRV1CRR-FMC. Formato per il caricamento immagine finita Schede SD basate su ARM Linux. È previsto il supporto di ADRV9364Z7020 SOM + ADRV1CRR-BOB, Xilinx zed + FMCOMMS2/3/4, Xilinx ZCU102 + FMCOMMS2/3/4 e
Xilinx ZCU102 + ADRV9371. Il costo dei componenti coinvolti nel primo prototipo di OpenWifi era di circa 1300 euro, ma è in corso il porting su schede più economiche. Ad esempio, il costo di una soluzione basata su Dispositivi analogici ADRV9364-Z7020 sarà di 700 euro, e sulla base ZYNQ NH7020 - 400 euro.
Testare le prestazioni di connessione di un client con un adattatore USB TL-WDN4200 N900 a un punto di accesso basato su OpenWifi ci ha permesso di ottenere un throughput di 30.6 Mbps (TCP) e 38.8 Mbps (UDP) durante il trasferimento dei dati dal punto di accesso al client e 17.0 Mbps (TCP) e 21.5 Mbps (UDP) quando trasmessi dal client al punto di accesso. Per la gestione è possibile utilizzare le utility Linux standard, come ifconfig e iwconfig, nonché un'utilità specializzata sdrctl, che funziona tramite netlink e consente di controllare il funzionamento di SDR a basso livello (manipolare registri, modificare impostazioni di intervalli di tempo, eccetera.).
Tra gli altri progetti aperti che sperimentano lo stack Wi-Fi, possiamo segnalare il progetto WimeSviluppo conforme allo standard IEEE 802.11 a/g/p trasmettitore basato su GNU Radio e un normale PC. Anche gli stack wireless 802.11 aperti al software stanno sviluppando progetti Ziria и Sora (Radio del software di ricerca Microsoft).