Proyecto OpenWifi con la implementación de un chip Wi-Fi abierto basado en FPGA y SDR

En la última conferencia FOSDEM 2020 presentado proyecto Wi-Fi abierto, desarrollando la primera implementación abierta de la pila Wi-Fi 802.11a/g/n completa, cuya forma y modulación de la señal se especifica en el software (SDR, Software Defined Radio). OpenWifi le permite crear una implementación totalmente controlada de todos los componentes de un dispositivo inalámbrico, incluidas las capas de bajo nivel, que en los adaptadores inalámbricos convencionales se implementan al nivel de chips que no son auditables. Código componentes de softwarey diagramas y descripciones Los bloques de hardware en lenguaje Verilog para FPGA se distribuyen bajo la licencia AGPLv3.

El componente de hardware del prototipo funcional demostrado se basa en el FPGA Xilinx Zynq y el transceptor universal (RF) AD9361. OpenWifi utiliza la arquitectura SoftMAC, lo que implica la implementación de la pila inalámbrica 802.11 principal (MAC alto) en el lado del controlador y la presencia de una capa MAC baja en el lado FPGA. La pila inalámbrica utiliza el subsistema mac80211 proporcionado por el kernel de Linux. La interacción con SDR se realiza a través de un controlador especial.

Proyecto OpenWifi con la implementación de un chip Wi-Fi abierto basado en FPGA y SDR

Características principales:

  • Soporte total para 802.11a/g y soporte parcial para 802.11n MCS 0~7 (PHY rx solo por ahora). Hay planes para admitir 802.11ax;
  • Ancho de banda de 20 MHz y rango de frecuencia de 70 MHz a 6 GHz;
  • Modos de funcionamiento: Ad-hoc (red de dispositivos cliente), punto de acceso, estación y monitoreo;
  • Implementación del protocolo de capa de enlace en el lado FPGA DCF (Función de Coordinación Distribuida), utilizando el método CSMA/CA. Proporciona tiempo de procesamiento de fotogramas (SIFS) en el nivel 10us;
  • Parámetros de prioridad de acceso al canal configurables: duración RTS/CTS, CTS-to-self, SIFS, DIFS, xIFS, slot-time, etc.
  • División de tiempo (división de tiempo) según la dirección MAC;
  • Ancho de banda y frecuencia fácilmente modificables:
    2MHz para 802.11ah y 10MHz para 802.11p;

Proyecto OpenWifi con la implementación de un chip Wi-Fi abierto basado en FPGA y SDR

Actualmente, OpenWifi proporciona apoyar Plataformas SDR basadas en FPGA
Xilinx ZC706 con transceptores FMCOMMS2/3/4 de Analog Devices, así como paquetes (FPGA + RF) ADRV9361Z7035 SOM + ADRV1CRR-BOB y ADRV9361Z7035 SOM + ADRV1CRR-FMC. Formado para cargar imagen terminada Tarjetas SD basadas en ARM Linux. Hay planes para admitir ADRV9364Z7020 SOM + ADRV1CRR-BOB, Xilinx zed + FMCOMMS2/3/4, Xilinx ZCU102 + FMCOMMS2/3/4 y
Xilinx ZCU102 + ADRV9371. El coste de los componentes utilizados en el primer prototipo de OpenWifi fue de unos 1300 euros, pero ya se está realizando la migración a placas más económicas. Por ejemplo, el costo de una solución basada en Dispositivos analógicos ADRV9364-Z7020 será de 700 euros, y en base ZYNQNH7020 - 400 euros.

Probar el rendimiento de conectar un cliente con un adaptador USB TL-WDN4200 N900 a un punto de acceso basado en OpenWifi nos permitió lograr un rendimiento de 30.6 Mbps (TCP) y 38.8 Mbps (UDP) al transferir datos desde el punto de acceso al cliente y 17.0Mbps (TCP) y 21.5Mbps (UDP) cuando se transmite desde el cliente al punto de acceso. Para la gestión, se pueden utilizar utilidades estándar de Linux, como ifconfig e iwconfig, así como una utilidad especializada sdrctl, que funciona a través de netlink y le permite controlar el funcionamiento de SDR a bajo nivel (manipular registros, cambiar la configuración del intervalo de tiempo, etc.).

Entre otros proyectos abiertos que experimentan con la pila Wi-Fi, podemos destacar el proyecto WimeDesarrollo compatible con IEEE 802.11 a/g/p transmisor Basado en GNU Radio y una PC normal. Las pilas inalámbricas de software abierto 802.11 también están desarrollando proyectos ziria и Sora (Radio de software de investigación de Microsoft).

Proyecto OpenWifi con la implementación de un chip Wi-Fi abierto basado en FPGA y SDR

Fuente: opennet.ru

Añadir un comentario