之前推荐过GitHub上优秀的开源项目《Github 上有哪些优秀的 VHDL/Verilog/FPGA 项目》,OpenWIFI作为通信领域的“翘楚”,自然很多人都会拿来学习,这篇文章就和大家分享一下利用ZYNQ(需ZYNQ010以上芯片)+AD936X搭建一个低成本的OpenWIFI。
介绍
openwifi:基于 SDR(软件定义无线电)的 Linux mac80211 兼容全栈 IEEE802.11/Wi-Fi 设计。
使用的硬件如下: 1、ZYNQ7020+AD9364,Analog Devices AD9364- BBCZ集成1x1 RF Agile Transceiver+Xilinx Zynq XC7Z020-1CLG400I AP SoC(用于数字处理) 2、7020的介绍:https://china.xilinx.com/support/documentation/boards_and_kits/zc702_zvik/ug850-zc702-eval-bd.pdf 3、AD9364:详见中文手册。 注意1: 一些ZYNQ+AD936x方案基本都是ADI官方AD-FMCOMMS [2、3、4、5] –EBZ(区别详见注意2)的变形体,所有的设计资料都可以直接利用官方的工程。同时,官方也针对一些常用的开发板和开源硬件做了u-boot、kernel和文件系统,使用过程中只需要准备一个SD/FT卡和读卡器即可; 注意2:
板卡 | AD936x器件 | 同时发送/接收 | Tx(范围) | Rx(范围) | 目的 | 连接器 |
ADALM-PLUTO | 1个AD9363 | 1 x 1 | 1(325-3800 MHz) | 1(325-3800 MHz) | 主动学习模块 | 台积电 |
ADRV9364-Z7020 | 1个AD9364 | 1 x 1 | 1(2400-2500 MHz) | 1(2400-2500 MHz) | 高度集成的模块系统 | 台积电 |
ADRV9361-Z7035 | 1个AD9361 | 2 x 2 | 2(2400-2500 MHz) | 2(2400-2500 MHz) | 高度集成的模块系统 | 台积电 |
AD-FMCOMMS2-EBZ | 1个AD9361 | 2 x 2 | 2(2400-2500 MHz) | 2(2400-2500 MHz) | 窄范围内的最佳射频性能 | FMC-LPC |
AD-FMCOMMS3-EBZ | 1个AD9361 | 2 x 2 | 2(70-6000 MHz) | 2(70-6000 MHz) | 软件测试和波形开发 | FMC-LPC |
AD-FMCOMMS4-EBZ | 1个AD9364 | 1 x 1 |
1(2400-2500 MHz) 1(70-6000 MHz) |
1(2400-2500 MHz) 1(70-6000 MHz) |
FMC-LPC | |
AD-FMCOMMS5-EBZ | 2个AD9361 | 4 x 4 |
4(2400-2500 MHz) 4(70-6000 MHz) |
4(2400-2500 MHz) 4(70-6000 MHz) |
MIMO测试平台,可以在RF域中同步 | 2个FMC-LPC |
应用
官方的支持板卡如下所示:
board_name | board combination |
zc706_fmcs2 | Xilinx ZC706 dev board + FMCOMMS2/3/4 |
zed_fmcs2 | Xilinx zed board + FMCOMMS2/3/4 |
adrv9364z7020 | ADRV9364-Z7020 + ADRV1CRR-BOB |
adrv9361z7035 | ADRV9361-Z7035 + ADRV1CRR-BOB/FMC |
zc702_fmcs2 | Xilinx ZC702 dev board + FMCOMMS2/3/4 |
zcu102_fmcs2 | Xilinx ZCU102 dev board + FMCOMMS2/3/4 |
zcu102_9371 | Xilinx ZCU102 dev board + ADRV9371 |
1、下载SD卡镜像 镜像包含U-boot、kernel和文件系统。 打开下面网址:
https://users.ugent.be/~xjiao/openwifi-1.2.0-leuven-2-32bit.img.xz 下载下来是一个.xz文件 windows系统下需要先解压,解压出来就是我们需要的.img文件。 接下来准备一个8GB以上内存的SD/TF卡,通过读卡器接到电脑上。 准备一个SD卡刻录软件,本人习惯使用Win32DiskImager,打开软件,选择下载下来的img文件,具体设置如下:
第一步:选择下载下来的img文件; 第二步:选择SD/TF卡对应的盘符,一定要仔细核对防止损坏其他卡; 第三步:点击WRITE,向卡内写入文件; 第四步:等待完成。 2、复制文件到对应位置 烧写完毕的卡在windows系统下只能显示boot分区,先看下分区下都有哪些文件: ADI官方提供的每个板卡的u-boot和设备树分别在对应的文件夹下:
每个文件夹下的文件:
SD卡内部还包括内核+u-boot环境变量
其中uImage(内核)在下图位置文件夹下,也需要拷贝到SD卡的根目录下,拷贝完如上图所示。
文件系统: 文件系统需要在Linux系统内查看(WINDOWS不支持),具体如下:
最后就是在上面介绍的boot分区内将u-boot和设备树拷贝到SD卡根分区内,将和自己匹配的硬件平台内的文件拷贝到SD卡根目录内, 打开下图路径:
把内部的文件拷贝到拷贝到SD卡根目录:
提示替换原来的文件即可,接下来可以根据需求修改环境变量文本(默认不需要),连接平台的串口+上电就可以看到完整的系统打印信息,其中串口设置如下:
目前为止AD936X+ZYNQ利用官方提供的镜像搭建平台的过程已经完成,可以尽情玩耍了。 总结一下:1、下载镜像文件;2、将OpenWIFI文件夹中对应的u-boot、设备树和内核(uImage)拷贝到SD卡根目录下(BOOT)。
OPenwifi应用
硬件:SDR硬件平台 开发平台:Windows 附件:WIFI天线*2 必须:路由器
注意:天线接口要选择和自己SDR平台对应的座子接口,目前常见的都是SMA接口。其他接口自行想办法将天线接到SDR的RX和TX接口。1、路由器设置OpenWIFI启动后有一个固定的IP,需要把平台链接到路由器的WLAN接口,此时如果OpenWIFI的IP段和路由器的不在同一频段,需要修改OpenWIFI的IP或者路由器的固定IP,根据自己方便修改,本人使用的路由器比价好修改就直接修改了路由器IP,如下图:
2、启动OpenWIFI
上图界面输入下图命令: ~/openwifi/fosdem-11ag.sh
OpenWIFI已启动,这时候用手机连接Openwifi的wifi; 手机浏览器打开192.168.13.1网页,就能看到作者的主页,详细视频见下图链接。
目前的设置还不能上网需要将OpenWIFI和路由器的WLAN桥接起来,主要使用三条命令:
sudo sysctl -w net.ipv4.ip_forward=1sudo iptables -t nat -A POSTROUTING -o NICY -j MASQUERADEsudo ip route add 192.168.13.0/24 via 192.168.10.122 dev ethX
标红的位置是需要需改的,具体含义也不解释了(主要涉及到路由表的问题),上图中用到的几个IP看下板端IP你就明白了。
根据实际修改后的命令如下:
sudo sysctl -w net.ipv4.ip_forward=1sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADEsudo ip route add 192.168.13.0/24 via 192.168.10.122 dev eth0 在串口中修改配置。
这时候在用手机连接OpenWIFI的wifi就可以上网了,具体如下:
信号接收部分因为没插天线所以信号较弱。 至此完毕。
责任编辑:lq6
全部0条评论
快来发表一下你的评论吧 !