![]() |
На прошедшей конференции 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 производится через специальный драйвер. https://www.opennet.ru/opennews/pics...580814351.jpeg Основные возможности:
В настоящее время в 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 на низком уровне (манипулировать регистрами, менять настойки квантования времени и т.п.). |
| Время: 08:29 |