在之前的博客中,我介绍了SDR LTE平台,其中开源的有OpenAirInterface(OAI),srsLTE, OpenLTE等,不开源的有Amarisoft等。

  这篇博客主要介绍SDR WiFi平台。据笔者所知,可能因为802.11协议要求的带宽较大,数据速率较大,对SDR平台的性能要求较高,所以较少实现SDR WiFi平台的项目。我接触过一个稍微完整点的SDR WiFi项目是基于GNU Radio的gr-ieee802-11项目,下面简单介绍并推广下这个项目。

一 项目简介

  项目名称:gr-ieee802-11
  项目作者:Bastian Bloessl, Paderborn University
  源码地址:https://github.com/bastibl/gr-ieee802-11
  支持硬件: Ettus N210s and B210s
  支持协议:IEEE 802.11 a/g/p
  项目框架:GNU Radio

二 项目安装

  本章节简要介绍项目的安装,详细安装方法请链接https://github.com/bastibl/gr-ieee802-11。

2.1 安装依赖库

  log4cpp
  用于生成log,具体安装方法如下所示

sudo apt-get install liblog4cpp5-dev
sudo port install log4cpp

  GNU Radio
  项目的基本框架,目前支持v3.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-ieee802-11

  安装好依赖库之后,我们可以直接安装gr-ieee802-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模块

  作者自己写了一个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接收信号(双向通信)

  分别在两台电脑启动wifi_trx.grc。两台电脑可以通过USRP通信。wifi_trx.grc会启动一个虚拟网卡,我们可以直接在两个虚拟网卡之间使用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 64QAM
  
星座图

六 总结

  gr-ieee802-11 基本具备了IEEE 802.11 a/g/p协议PHY所有的功能和部分MAC层功能,但是功能还不全面。
  此外,项目基于GNU Radio架构,而且协议要求带宽较大,项目的实时性处理还不是很好,运行时UHD会经常报错U(underflow),O(overflow)和L(latency)。这也进一步导致了项目吞吐率较低。

SDR WiFi平台 gr-ieee802-11 软件无线电实现802.11协议相关推荐

  1. 小黑重装WIFI之解 - 硬件无线电已关闭 802.11无线通信 禁用状态无法启用

    [b]前因: [/b] 小黑自己进行彻底的重装,换操作系统,原来的预装操作系统也没有去试过无线是否OK,直接就给我干掉了. [b]问题:[/b] 安装完Windows 7 Pro之后,无线网络无法使用 ...

  2. 【计算机网络】数据链路层 : IEEE 802.11 无线局域网 ( 802.11 MAC 帧头格式 | 无线局域网分类 )

    文章目录 一.802.11 MAC 帧头格式 二.无线局域网 分类 一.802.11 MAC 帧头格式 IEEE 802.11 是 无线局域网 通用标准 , 有 IEEE 置顶 ; 802.11 MA ...

  3. 802.11 Association Status, 802.11 Deauth Reason codes

    https://community.cisco.com/t5/wireless-mobility-documents/802-11-association-status-802-11-deauth-r ...

  4. 软件无线电 SDR LTE平台简介---OAI、srsLTE、OpenLTE与Amarisoft

    软件无线电(SDR) LTE平台简介 本博客简单介绍目前国际上比较主流的SDR LTE平台.如有相关问题,欢迎随时讨论交流. 1. OpenAirInterface- OAI OAI是由欧洲的Euro ...

  5. 【Wi-Fi】IEEE 802.11 Standards 之 802.11a/b/g/n/ac/ax初探

    前言 日常在配置家里路由器以及在工作中学习到WiFi相关的知识的时候总是对于WiFi 标准协议 IEEE 802.11的几个版本不太理解,所以本文主要是介绍关于IEEE 802.11 中各个版本的由来 ...

  6. Wi-Fi:802.11 物理层和发射机测量概述

    引言 Wi-Fi 是一种允许多台电子装置使用无线电波以无线方式交换数据或连接互联网的技术.IEEE 802.11 设备的主要优势是它们能够以更低的成本部署局域网(LANs). 本文从整体上概括介绍了每 ...

  7. 有关WLAN与wifi、WPAN与Bluetooth、WPAN与802.15、wifi与802.11、WiMAX与802.16等关系的一点理解

    http://blog.csdn.net/jbb0523/article/details/7269964 题目:有关WLAN与wifi.WPAN与Bluetooth.WPAN与802.15.wifi与 ...

  8. WIFI:802.11协议帧格式

    802协议桢格式 802.11和Wi-Fi技术并不是同一个东西.Wi-Fi标准是802.11标准的一个子集,并且是Wi-Fi联盟负责管理 802协议桢格式: 协议 发布年份/日期 Op.标准频宽 实际 ...

  9. 802.11协议帧格式、Wi-Fi连接交互过程、无线破解入门

    转自: http://www.cnblogs.com/littlehann/p/3700357.html Linux黑客大曝光: 第8章 无线网络 无线网络安全攻防实战进阶 无线网络安全 黑客大曝光 ...

  10. WiFi、WLAN的区别以及深入探索理解802.11协议

    1. WiFi.WLAN与802.11相关背景知识 1.1 WiFi.WLAN与802.11相互之间的关系 1.1.1 定义 WLAN(wireless local network)无线局域网,是一种 ...

最新文章

  1. mysql简拼_mysql实现汉字换拼音,及汉字转简拼
  2. Linux 自动重启进程
  3. [转]kaldi中的特征提取
  4. 写底部样式一定要加的属性
  5. Git :LF will be replaced by CRLF in readme.txt的原因与解决方案
  6. 如何成为一名数据中心运营工程师?
  7. OSI七层模型与TCP/IP五层模型详解
  8. 【优化电价】基于matlab遗传算法求解共享汽车电价优化问题【含Matlab源码 1162期】
  9. windows系统安装下GCC编译器
  10. 【问题集合】3dsMax贴图模糊(2016)
  11. 数据分析与Excel
  12. 56个民族及民族代码的sql语句
  13. 简单的avr c语言程序,avr单片机c语言编程风格介绍 - 全文
  14. 互联网晚报 | 11月2日 星期二 | 菜鸟推出“个人减碳账单”;特斯拉上线0首付购车方案;《个人信息保护法》正式实施...
  15. JS中的对象和方法简单剖析
  16. linux gif录制工具,Linux下的GIF录制
  17. Allegro PCB编辑界面功能全面介绍图文教程及视频演示
  18. HTML5 小练习1—仿MPG游戏商城
  19. 电力系统仿真软件python_PySpice: 使用ngspice进行电路仿真分析-1:安装
  20. ubuntu 20.04 安装 vlc、vlc-qt

热门文章

  1. PHP教程,PHP入门教程大全(2021整理)
  2. vba把json转数组中_网抓处理Json数据 | VBA实例教程
  3. notepad++批量操作笔记(持续更新..)
  4. 为什么win10开热点后电脑没有网络?
  5. 安卓bin固件文件编辑器_通刷版魔百盒九联UNT401H海思Hi3798MV310芯片红外蓝牙语音遥控免拆及强刷固件及刷机教程202009版...
  6. hex文件分析+Qt5制作Hex文件转Bin文件的工具(含源码+工具下载)
  7. MySQL数据库基础教程索引
  8. Linux安装jdk详细步骤
  9. C语言:基于Easyx库实现连连看小游戏
  10. 基于C语言图书馆管理系统编程设计