Проект OpenWifi з реалізацією відкритого Wi-Fi чіпа на базі FPGA та SDR

На конференції FOSDEM 2020 представлений проект openwifi, що розвиває першу відкриту реалізацію повного стека Wi-Fi 802.11a/g/n, форма сигналу та модуляція в якому задається програмно (SDR, Software Defined Radio). OpenWifi дозволяє створити повністю підконтрольну реалізацію всіх компонентів бездротового пристрою, включаючи низькорівневі шари, у звичайних бездротових адаптерах, що реалізуються на рівні недоступних для аудиту чіпів. Код програмних компонентів, а також схеми та описи апаратні блоки на мові Verilog для FPGA поширюються під ліцензією AGPLv3.

Апаратна складова продемонстрованого робочого прототипу базується на FPGA Xilinx Zynq та універсальному приймачі (RF) AD9361. В OpenWifi застосовується архітектура SoftMAC, що передбачає реалізацію основного бездротового стека 802.11 (high-MAC) на драйвері і наявність low-MAC шару на стороні FPGA. Як бездротовий стек використовується підсистема mac80211, що надається ядром Linux. Взаємодія з SDR здійснюється через спеціальний драйвер.

Проект OpenWifi з реалізацією відкритого Wi-Fi чіпа на базі FPGA та SDR

Основні можливості:

  • Повна підтримка 802.11a/g та часткова підтримка 802.11n MCS 0~7 (поки що тільки PHY rx). У планах підтримка 802.11ax;
  • Смуга пропускання 20MHz та діапазон частот від 70 MHz до 6 GHz;
  • Режими роботи: Ad hoc (Мережа з клієнтських пристроїв), точка доступу, станція та моніторинг;
  • Реалізація на стороні FPGA протоколу канального рівня DCF (Distributed Coordination Function), який використовує метод CSMA/CA. Забезпечується час обробки кадру (SIFS) на рівні 10us;
  • Параметри пріоритету доступу до каналу, що настроюються: тривалість RTS/CTS, CTS-to-self, SIFS, DIFS, xIFS, slot-time і т.п.
  • Квантування часу (Time slicing) на базі MAC-адреси;
  • Смуга пропускання, що легко змінюється, і частота:
    2MHz для 802.11ah та 10MHz для 802.11p;

Проект OpenWifi з реалізацією відкритого Wi-Fi чіпа на базі FPGA та SDR

В даний час в OpenWifi забезпечено підтримка SDR-платформ на базі FPGA
Xilinx ZC706 з приймачами Analog Devices FMCOMMS2/3/4, а також зв'язок (FPGA + RF) ADRV9361Z7035 SOM + ADRV1CRR-BOB та ADRV9361Z7035 SOM + ADRV1CRR-FMC. Для завантаження сформовано готовий образ SD-картки на базі ARM Linux. У планах підтримка зв'язок ADRV9364Z7020 SOM + ADRV1CRR-BOB, Xilinx zed + FMCOMMS2/3/4, Xilinx ZCU102 + FMCOMMS2/3/4 та
Xilinx ZCU102 + ADRV9371. Вартість компонентів, задіяних у першому прототипі OpenWifi, становила близько 1300 євро, але ведеться портування дешевші плати. Наприклад, вартість рішення на базі Analog Devices ADRV9364-Z7020 становитиме 700 євро, а на базі ZYNQ NH7020 - 400 євро.

Тестування продуктивності підключення клієнта з USB-адаптером TL-WDN4200 N900 до точки доступу на базі OpenWifi дозволило досягти пропускної спроможності 30.6Mbps (TCP) і 38.8Mbps (UDP) при передачі даних від точки доступу до клієнта та 17.0M. (UDP) під час передачі від клієнта до точки доступу. Для керування можуть використовуватися штатні утиліти Linux, такі як ifconfig та iwconfig, а також спеціалізована утиліта sdrctl, що працює через netlink і дозволяє керувати роботою SDR на низькому рівні (маніпулювати регістрами, змінювати настоянки квантування часу тощо).

З інших відкритих проектів, що експериментують з стеком Wi-Fi, можна відзначити проект Wime, що розвиває сумісний з IEEE 802.11 a/g/p передавач на базі GNU Radio та звичайного ПК. Програмні відкриті бездротові стеки 802.11 також розвивають проекти Ziria и Сора (Microsoft Research Software Radio).

Проект OpenWifi з реалізацією відкритого Wi-Fi чіпа на базі FPGA та SDR

Джерело: opennet.ru

Додати коментар або відгук