SDR WiFiプラットフォームgr-ieee 802-11ソフトウェア無線実現802.11プロトコル


以前のブログでは、SDR LTEプラットフォームを紹介しましたが、オープンソースはOpenAirInterface(OAI)、srsLTE、OpenLTEなど、オープンソースではないのはAmarisoftなどがあります.
このブログは主にSDR WiFiプラットフォームを紹介しています.筆者の知る限り、802.11プロトコルは帯域幅が大きく、データレートが大きく、SDRプラットフォームの性能に対する要求が高いため、SDR WiFiプラットフォームを実現するプロジェクトは少ないかもしれない.私は少し完全な点のSDR WiFiプロジェクトに接触したことがあります.GNU Radioベースのgr-ieee 802-11プロジェクトです.以下、このプロジェクトを簡単に紹介し、普及します.

プロジェクトの概要


プロジェクト名:gr-ieee 802-11プロジェクト作成者:Bastian Bloessl,Paderborn Universityソースアドレス:https://github.com/bastibl/gr-ieee802-11サポートハードウェア:Ettus N 210 s and B 210 sサポートプロトコル:IEEE 802.11 a/g/pプロジェクトフレームワーク:GNU Radio

二項目取付


この章では、プロジェクトのインストールについて簡単に説明します.詳細なインストール方法については、リンクしてください.https://github.com/bastibl/gr-ieee802-11.
2.1依存ライブラリのインストール
log 4 cppはlogを生成するために用いられ、具体的なインストール方法は以下の通りである.
sudo apt-get install liblog4cpp5-dev
sudo port install log4cpp

GNU Radioプロジェクトの基本フレームワークは、現在v 3をサポートしている.7.3以降のバージョン.GNU Radioにはいろいろなインストール方法がありますが、ソースコードを使ってインストールすることをお勧めします.インストール方法が煩雑なので、ここでは説明しません.詳細はリンクします.http://gnuradio.org/redmine/projects/gnuradio/wiki/InstallingGR.
gr-foo作者が自分で書いたGNU Radioモジュールは、プロジェクトで使用する必要があります.インストール方法は次のとおりです.
git clone https://github.com/bastibl/gr-foo.git
cd gr-foo
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

2.2 gr-ieee 802-11のインストール
依存ライブラリをインストールした後、gr-ieee 802-11を直接インストールできます.インストール方法は次のとおりです.
git clone git://github.com/bastibl/gr-ieee802-11.git
cd gr-ieee802-11
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

2.3共有メモリサイズの設定
プロジェクトの送信機は、フレーム信号を送信する前に、共有メモリに使用されるフレームのデータを完全に格納する必要がある.共有メモリのサイズを保証するには、次のコマンドを使用します.
sudo sysctl -w kernel.shmmax=2147483648

三項目運行


3.1 OFDM PHYモジュールのコンパイル
作者は自分で1つのOFDM PHYモジュールを書いて、送信機と受信機の中ですべて使用して、gnuradio-companionで開いてコンパイルする必要があります./examples/wifi_phy_hier.grc
3.2プロジェクトの実行
プロジェクトには、exampleフォルダに入ってgnuradio-companionで対応するファイルを開くプログラムが含まれています.  wifi_loopback.grc:テスト用プログラムwifi_tx.grc:wifi信号を送信wifi_rx.grc:wifi信号を受信wifi_transceiver.grc:wifi信号の同時送受信

四項目適用シーン


4.1 gr-ieeeルータ信号を受信し分析する
起動wifi_rx.grcは、gnuradio-companionインタフェースでパラメータを調整し、USRPがルータから送信された信号を受信できるようにします.wiresharkパケットを使用して受信した信号の情報を分析したり、wifi_rx.grcではlogレベルを高くし、log情報を観察します.
4.2 gr-ieeeはWiFi信号を送信し、ルータは信号を受信する
起動wifi_tx.grcは、gnuradio-companionインタフェースでパラメータを調整し、ルータがUSRPから送信された信号を受信できるようにします.ワイヤレスカードのハイブリッドモードをオンにし、ワイヤレスカードを使用してUSRPから送信された信号を受信し、wiresharkパケット検証を使用することもできます.
4.3 gr-ieeeルータとの通信
wifiを使うtrx.grcはルータと双方向通信を行う.でも今はwifi_trx.grc機能が十分に機能していないため、ルータと通信できるパケットは限られている.
4.4 gr-ieee送信信号、gr-ieee受信信号(一方向通信)
それぞれwifi_を起動tx.grcとwifi_rx.grc、両端パラメータを調整してwifi_rx.grcはwifiを受信できますtx.grcが送信するパケット.
4.5 gr-ieee送信信号、gr-ieee受信信号(双方向通信)
それぞれ2台のパソコンでwifiを起動trx.grc.2台のパソコンはUSRP通信が可能です.wifi_trx.grcは仮想NICを起動し、2つの仮想NICの間でpingコマンドを直接使用できます.

五項目テスト


5.1テストシーン
適用シーン5,すなわち4.5 gr−ieee送信信号,gr−ieee受信信号(双方向通信)を試験した.ping,scpなどのコマンドを使用してテストを行います.
  wifi_Transceiverプログラムインタフェースは、下図に示すように、構成可能なパラメータは、主に送受信利得、帯域幅、チャネル、変調方式、チャネル推定アルゴリズムなどを含む.テスト時に設定したパラメータをインタフェース図から見ることができます.  
5.2テストスクリーンショット
5.2.1 QPSK星座図
pingパッケージ
  5.2.2 16QAM
星座図
pingパッケージ
scp速度測定
レートの低いかわいそう.
5.2.3 64 QAMコンステレーション図

六まとめ


gr-ieee 802-11は基本的にIEEE 802.11 a/g/pプロトコルPHYのすべての機能と一部のMAC層の機能を備えているが、機能はまだ全面的ではない.また、プロジェクトはGNU Radioアーキテクチャに基づいており、プロトコルの要求帯域幅が大きく、プロジェクトのリアルタイム処理がまだよくなく、実行時にUHDはU(underflow)、O(overflow)、L(latency)をよくエラーする.これにより、プロジェクトのスループットが低下した.