首页 > 其他分享 >Openwifi 开源项目解读(一)

Openwifi 开源项目解读(一)

时间:2023-07-21 09:24:21浏览次数:48  
标签:Openwifi FPGA hw openwifi 解读 开源 linux 开发板 部分

Openwifi 是一个关于wifi 系统的开源项目,是一个少有的优秀的关于wifi的开源项目,项目中包括了wifi的基带、lowmac、linux驱动 等三部分,其中基带、lowmac部分是在FPGA中实现,wifi驱动部分是运行在Linux下,因此openwifi系统是一个运行在linux下的完整无线网卡实现版,因此对于希望学习wifi的协议中物理层实现部分或者想要了解无线网卡运行功能的同学有着极高的参考价值,由于作者将所有部分全部开源到github上,因此可以通过网址https://github.com/open-sdr/下载。更令人感到高兴的是这个项目的作者是一位中国人焦现军博士(在比利时)开发的,在此非常感谢焦博士能将此项目全部开源供大家学习。

      在解读openwifi之前还是要讲一下openwifi项目在github上的组成:

  1. Openwifi      这是openwifi与linux的驱动部分源码和linux系统。
  2. Openwifi-hw   这是openwifi的FPGA部分源码,是硬件部分,也是lowmac部分。
  3. Openofdm    这是openwifi的基带部分源码,也是运行在FPGA中,最终集成到openwif-hw项目中,也算是openwif-hw的一部分( ip ) ,在这里单独作为一个工程更便于大家理解和学习。

Openwifi 的软件开发环境是vivado 2018 ,这款软件可以到赛灵思Xilins 公司官网上下载,我也打包了一份到百度网盘,也可以从 链接:百度网盘 请输入提取码 提取码:kau0  这里下载。Vivado 是赛灵思公司专为其FPGA芯片提供的集成开发软件,由于赛灵思公司提供的很多FPGA芯片既包含FPGA部分也集成了Arm核,因此vivado软件既可以对芯片FPGA进行开发,也可以对芯片上的Arm进行软件开发,因此开发起来非常方便,关于vivado 集成环境的使用,这里不是重点,需要学习的童鞋可以到网上搜寻相关视频教程。 openwfi项目就包含了FPGA硬件开发部分和Arm的软件开发部分(linux驱动)。补充一点,Openwifi工程的vivado环境即可以在linux下开发,也可以在windows下开发,根据兴趣各自选择,我是在linux和windows都编译运行通过。

不过各位如果只是想先试试openwifi的功能则不需要安装vivado开发环境,只是需要一个pc 机上的 linux系统环境 + 一块开发板(openwifi支持的开发板见后面列表)即可。

下图是openwifi项目整体功能框架图:

                                   (来自openwifi项目文档)

 

最上层是与linux接口 Linux mac80211 subsystem ieee80211_ips运行在arm中

SDR driver 是驱动部分,运行在arm 中的Linux中

FPGA 部分主要有七部分

  • 收发DMA
  • Xpu
  • Rx_intf
  • Tx_intf
  • Openofdm_tx
  • Openofdm_rx
  • Side_ch    这部分上面框图中没有体现

这张openwifi功能框图已经把各个功能都清晰的表示出来了,openwifi是一个运行在linux下的wifi项目,其功能就是无线网卡的整个功能, 简单讲openwif项目就是告诉我们如何构建一个无线网卡,并提供网卡在linux下的驱动,并能在linux下如同商业无线网卡一样的运行,提供wifi接入或链接服务。

在这里我就把功能框图中对应的代码路径总结一下,方便初学着快速找到对应部分的代码。

  1. 首先是linux驱动部分,这部分对应着 openwifi 工程:

上图红圈点进去就是linux驱动工程,进入后内容如下图:

 

点击进入Driver,显示如下:

 

 

上图标识的是openwifi项目中与前面功能框图中对应的框图的驱动代码部分,注意这里是驱动部分的代码,款图的功能实现代码是在openw-hw工程中实现的,是verilog代码实现的,关于open-hw工程内容后面会逐一解读。

  1. 接下来是FPGA部分,就是openwifi-hw部分

 

准确的讲openwifi-hw部分还包括openofdm部分,openofdm 在openwifi-hw中作为一个ip出现,是wifi基带部分的实现。后面的讲解中就将openofdm作为openwifi-hw的一部分一起讲解。

 

点击 openwifi-hw进入就是openwifi的FPGA工程,即Openwifi项目的硬件实现部分。

 

  • 点击ip就进入openwifi各个子框图功能文件夹,里面就是FPGA的verilog代码.

  • 点击boards 就会显示openwifi支持的各种开发板的工程文件夹。

 

 

我的开发板是Zed_fmcs2 ,因此对应的是上图中红箭头所指示的文件夹,此文件夹里面就是vivado工程文件。

在对openwifi工程的学习中,首先需要安装vivado 2018.2的开发环境,这一步比较简单,大家参考网上的一下教程就可以顺利安装了。接下来最为关心的是如何能把openwifi整个系统跑起来,能够用手机链接上openwifi的热点进行进一步的了解学习。

要运行openwifi除了软件开发环境,还需要购买一块开发板,准确的说是两块开发板

一块是FPGA开发板,另一块是ad9361射频板,openwifi项目支持多种开发板:

板名

板组合

地位

SD卡映像文件

Vivado 许可证

zc706_fmcs2

Xilinx ZC706 板FMCOMMS2/3/4

完毕

32位图像

需要

zed_fmcs2

Xilinx zed板FMCOMMS2/3/4

完毕

32位图像

不需要_

adrv9364z7020

ADRV9364-Z7020 + ADRV1CRR-BOB

完毕

32位图像

不需要_

adrv9361z7035

ADRV9361-Z7035 + ADRV1CRR-BOB/FMC

完毕

32位图像

需要

zc702_fmcs2

Xilinx ZC702 板FMCOMMS2/3/4

完毕

32位图像

不需要_

蚂蚁博士

MicroPhase增强型 ADALM-PLUTO注释

完毕

32位图像

不需要_

zcu102_fmcs2

Xilinx ZCU102 板FMCOMMS2/3/4

完毕

64位图像

需要

zcu102_9371

Xilinx ZCU102 板ADRV9371

未来

未来

需要

上图是openwifi支持的开发板,点击后面的链接可以查看和购买。

我选用FPGA的开发板是zed_fmcs2 ,射频开发板是fmcomms2开发板。

上图中 【SD卡映像文件】 一栏对应你开发板的linux + openwif的系统映像文件。

下载你的开发板对应的映像文件,用映像文件制作一张启动SD卡后,将SD卡插入开发板的SD卡槽中,给开发板通电,再将板上的USB连线插入PC中,你就可以通过串口登录到开发板上,控制并运行openwifi了。

下一篇将仔细讲解如何制作SD卡,如何连结USB,以及如何登录到开发板并运行openwifi 网卡,并用手机登录openwifi热点验证openwifi的各项功能。

标签:Openwifi,FPGA,hw,openwifi,解读,开源,linux,开发板,部分
From: https://www.cnblogs.com/SymPny/p/17570352.html

相关文章

  • 开源 rtf java
    如何实现开源rtfjava流程以下是实现开源rtfjava的步骤:步骤描述步骤1下载rtfjava开源库步骤2导入rtfjava开源库到你的项目步骤3创建RTF文档步骤4添加文本内容到RTF文档步骤5保存RTF文档到文件步骤详解步骤1:下载rtfjava开源......
  • 解读量子力学:哥本哈根解释与多世界解释
    亲爱的读者,欢迎回到我们的量子力学系列文章。在前几篇文章中,我们介绍了量子力学的起源、基本概念,以及叠加态、超级定位、量子纠缠和实验验证等内容。今天,我们将深入探讨量子力学的解释问题,重点介绍哥本哈根解释和多世界解释。1.哥本哈根解释哥本哈根解释是量子力学最广泛接受......
  • 开源的Datadog?可观测性平台SigNoz是否名副其实?
    SigNoz号称自己是开源领域的Datadog,基于OpenTelemetry做了一套可观测性方案。夜莺从V6版本开始,也希望做全栈可观测性方案,巧了,大家目标一致,今天我们一起来对SigNoz做个初步了解,看看其产品设计如何,也帮大家未来选型做参考。1.SigNoz介绍SigNozisanopen-sourceapplicationp......
  • 我开源了团队内部基于SpringBoot Web快速开发的API脚手架stater
    我们现在使用SpringBoot做Web开发已经比之前SprngMvc那一套强大很多了。但是用SpringBootWeb做API开发还是不够简洁有一些。每次WebAPI常用功能都需要重新写一遍。或者复制之前项目代码。于是我封装了这么一个抽出SpringBootWebAPI每个项目必备需要重复写的模块,和......
  • Docker大会的新福利:LinuxKit 和 Moby 开源项目
    在一年一度的DockerCon大会上,来自全球各地的5000名参与者,济济一堂,于奥斯丁会议中心,共同见证Docker的发展,探讨容器技术的落地。 Docker创办人暨技术长SolomonHykes认为,今年容器将成为主流,将散布伺服器、资料中心、云端、桌面、IoT与行动等运算装置,或金融、医疗保键......
  • Docker大会的新福利:LinuxKit 和 Moby 开源项目
    在一年一度的DockerCon大会上,来自全球各地的5000名参与者,济济一堂,于奥斯丁会议中心,共同见证Docker的发展,探讨容器技术的落地。 Docker创办人暨技术长SolomonHykes认为,今年容器将成为主流,将散布伺服器、资料中心、云端、桌面、IoT与行动等运算装置,或金融、医疗保键......
  • Docker大会的新福利:LinuxKit 和 Moby 开源项目
    在一年一度的DockerCon大会上,来自全球各地的5000名参与者,济济一堂,于奥斯丁会议中心,共同见证Docker的发展,探讨容器技术的落地。 Docker创办人暨技术长SolomonHykes认为,今年容器将成为主流,将散布伺服器、资料中心、云端、桌面、IoT与行动等运算装置,或金融、医疗保键......
  • 【开源项目】智慧化工厂~经典开源项目数字孪生智慧化工厂
    大型化工厂工程与源码免费赠送!沈阳某厂,智慧加速,限时独享!项目介绍智慧化工厂项目:沈阳某大型化工厂引入智慧化工厂方案,实现全面升级,提高生产效率。数字孪生技术应用:利用数字孪生技术,充分整合数据与场景,完整克隆出化工厂的三维场景,为工厂管理提供全方位支持。功能分析人员定位可视化人......
  • 【开源项目】太原~超经典智慧城市智慧太原CIM/BIM数字孪生可视化
    智慧太原,赠送工程和源码,免费领取!科技助力城市,迎接未来!项目介绍太原位于中国重要经济区域,利用AI处理地形影像。核心区采用高精度的max模型,其他区域则利用AI生成cim3数据,并对场景进行优化数字孪生技术应用于太原,独特的夜景景观吸引人们的目光。通过数字孪生技术,将数据与实景有机结合,......
  • 【开源项目】智慧化工厂~经典开源项目数字孪生智慧化工厂——开源工程及源码
       大型化工厂工程与源码免费赠送!沈阳某厂,智慧加速,限时独享! 项目介绍智慧化工厂项目:沈阳某大型化工厂引入智慧化工厂方案,实现全面升级,提高生产效率。  数字孪生技术应用:利用数字孪生技术,充分整合数据与场景,完整克隆出化工厂的三维场景,为工厂管理提供全方位支......