ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ 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.0Mbps (TCP) ΠΈ 21.5Mbps (UDP) ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΊ Ρ‚ΠΎΡ‡ΠΊΠ΅ доступа. Для управлСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡˆΡ‚Π°Ρ‚Π½Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Linux, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ifconfig ΠΈ iwconfig, Π° Ρ‚Π°ΠΊΠΆΠ΅ спСциализированная ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° sdrctl, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π°Ρ Ρ‡Π΅Ρ€Π΅Π· netlink ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ SDR Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ (ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ рСгистрами, ΠΌΠ΅Π½ΡΡ‚ΡŒ настойки квантования Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Ρ‚.ΠΏ.).

Из Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… с Wi-Fi стСком, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Wime, Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ совмСстимый с IEEE 802.11 a/g/p ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊ Π½Π° Π±Π°Π·Π΅ GNU Radio ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ПК. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ бСспроводныС стСки 802.11 Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Ziria ΠΈ Sora (Microsoft Research Software Radio).

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ OpenWifi с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ Wi-Fi Ρ‡ΠΈΠΏΠ° Π½Π° Π±Π°Π·Π΅ FPGA ΠΈ SDR

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru