OpenWiFi简介与学习记录

OpenWiFi简介与学习记录

最近在做毕设,学习SDR,OpenWiFi是一个很好的可以用来二次开发的开源平台,故简略记录一下。

1. OpenWiFi简介

OpenWiFi简介与学习记录_第1张图片

OpenWiFi是一个基于zynq+AD9361的软件定义无线电(SDR)设计,是IEEE 802.11/WiFi协议的实现。作者是Jiao Xianjun。
该项目的GitHub网址:https://github.com/open-sdr/openwifi

其具有以下特性:

  • 兼容IEEE 802.11n
  • 20MHz带宽
  • Ad-hoc, Station, AP, monitor模式
  • 在FPGA实现CSMA/CA,10us SIFS
  • ……

2. 框架

OpenWiFi简介与学习记录_第2张图片
Zynq组合了一个双核ARM Cortex-A9 处理器和一个传统FPGA,架构中实现了工业标准的AXI接口,在芯片的两个部分之间实现了高带宽、低延迟的连接。Xilinx将其称为全可编程SoC。
OpenWiFi项目的PHY与low MAC在zynq中的Xilinx 7 系列架构FPGA中实现,ARM层实现了驱动,基于Linux mac80211 subsystem。

3. Quick Start

先不看具体的内容,跑起来再说。

OpenWiFi简介与学习记录_第3张图片
OpenWiFi支持以上的开发板组合,我使用的是zedboard,下载相应的img文件。下载下来应是.img.xz格式,将img解压出来。准备一张SD卡,如果用的windows系统,用烧录软件如win32disk将镜像烧到SD卡里就行了。

OpenWiFi简介与学习记录_第4张图片
将openwifi文件夹中符合自己板子的boot和devicetree以及uImage复制到根目录,插到zed板子上就可以运行了。看到板子上蓝色LED亮了。

4. 连接与配置

用zed的uart串口连上电脑,在mobaXterm中新建session,进入系统。运行fosdem.sh脚本就可以看到openwifi出现了,可以用手机和电脑连接上去。

5. Ad-hoc模式

在一快板子上运行sdr-ad-hoc-up.sh,另一个板子上运行sdr-ad-hoc-join.sh就可以进行点对点通信。脚本里的代码实际上就是配置了一下ip,essid,channel等参数。
ping一下,发现速度还可以。

6. 仔细研究

接下来可以研究一下OpenWifi的代码,以及在上层做一些优化、算法。

参考资料:

  1. Linux 80211mac subsystem: https://www.kernel.org/doc/html/v4.9/80211/introduction.html
  2. https://wireless.wiki.kernel.org/en/users

你可能感兴趣的:(SDR,wifi,sdr,fpga,嵌入式)