FOSDEM 2020会議中に、それが発表されました の最初のオープンソース開発 OpenWifi「Wi-Fi802.11a / g / n」 プログラミング(SDR、ソフトウェア定義無線)およびFPGAによって定義されたフルスタック波形および変調。
プロジェクトの興味深い点 openwifi つまり 完全にLinux互換の実装を作成できます これは、監査にアクセスできないチップのレベルで実装された従来のワイヤレスアダプタの低レベル層を含む、ワイヤレスデバイスのすべてのコンポーネントを制御します。 ソフトウェアコンポーネントのコード、およびVerilog for FPGA言語の回路とハードウェアブロックの説明は、AGPLv3ライセンスの下で配布されます。
openwifi SoftMACアーキテクチャを使用し、 これは、コントローラー側にメインの802.11ワイヤレススタックを実装し、FPGA側に低MAC層が存在することを意味します。 Linuxカーネルによって提供されるmac80211サブシステムは、ワイヤレススタックとして使用されます。 SDRとの対話は、特別なコントローラーを介して行われます。
機能プロトタイプのハードウェアコンポーネント 証明された ザイリンクスZynqFPGAおよびAD9361ユニバーサルトランシーバー(RF)に基づいています.
主な特徴のうち OpenWifiによる
- 802.11a / gの完全サポートと802.11nMCS 0〜7の部分サポート(これまでのところPHY rxのみ)。 プランは802.11axをサポートします
- 20MHzの帯域幅と70MHz〜6GHzの周波数範囲
- 動作モード:アドホック(クライアントデバイスネットワーク)、アクセスポイント、ステーション、および監視
- CSMA / CAメソッドを使用したDCF(分散調整機能)プロトコルのFPGA実装。 10usでフレーム処理時間(SIFS)を提供します
- チャネルアクセス優先度の構成可能なパラメーター:RTS / CTS、それ自体へのCTS、SIFS、DIFS、xIFS、スロット時間など。
- MACアドレスに基づく時間間隔別
- 簡単に変更可能な帯域幅と周波数:2ahの場合は802.11MHz、10pの場合は802.11MHz
- OpenWifiは現在、AnalogDevicesのFMCOMMS706 / 2/3トランシーバーを備えたザイリンクスZC4 FPGA SDRプラットフォーム、およびADRV9361Z7035 SOM + ADRV1CRR-BOBおよびADRV9361Z7035SOM + ADRVCR(FPGA + RF)パッケージをサポートしています。
行政については、 ifconfigやiwconfigなどの標準のLinuxユーティリティを使用できますまた、netlinkを介して機能し、SDRを低レベルで管理できるようにする特殊なsdrctlユーティリティ(レジスタの操作、タイムスライサー設定の変更など)もあります。
Wi-Fiスタックを実験している他のオープンプロジェクトの中で、GNURadioと通常のPCに基づいてIEEE802.11 a / g / p互換の送信機を開発するWimeプロジェクトに言及することができます。
802.11オープンワイヤレスソフトウェアスタックだけでなく、ZiriaとSora(Microsoft Research Software Radio)によっても開発されています。
パフォーマンステスト中、 TL-WDN4200 N900 USBアダプターを使用してクライアントをOpenWifiベースのアクセスポイントに接続したときに取得したデータから、 30.6Mbps(TCP)および38.8Mbps(UDP)のスループットを達成できます アクセスポイントからクライアントにデータを送信する場合、およびクライアントからアクセスポイントに送信する場合は17.0Mbps(TCP)および21.5Mbps(UDP)。
これは、OpenWifiを実行しているアクセスポイントに接続する電話のデモです。
関連するコンポーネント OpenWifiの最初のプロトタイプで 費用は約1300ユーロ、しかしそれらはより安いプレートに移されています。 たとえば、Analog Devices ADRV9364-Z7020に基づくソリューションのコストは700ユーロになり、ZYNQNH7020に基づくと約400ユーロのコストになります。
放電
最後に、プロジェクトについてもっと知りたい、またはOpenWifiの準備された画像をダウンロードしたい人のために 行くことによってそれを得ることができます 次のリンクへ。
ここでは、SDカードでのイメージの使用とインストールに関する情報を見つけることができます(イメージはLinuxのARMバージョンに基づいています)。
現在パッケージをサポートしているコンポーネントには、ADRV9364Z7020 SOM + ADRV1CRR-BOB、ザイリンクスzed + FMCOMMS2 / 3/4、ザイリンクスZCU102 + FMCOMMS2 / 3/4、およびザイリンクスZCU102 + ADRV9371があります。