release notes: https://github.com/open-sdr/o...
这是openwifi的第二个release。太原这个代号是由我们内部的开发者刘薇命名的。根据前期内部开发情况,前三个release将分别由我,刘薇,Michael Mehari选择一个地名作为代号。第一个release的代号是我选的根特(ghent),也就是openwifi诞生的地方。从第四个release开始,我们的计划是代号由那个release贡献最大的开发者选取一个地名来命名。
本次发布最大的亮点是,我们把openwifi移植到了更多的平台上:
- zc706_fmcs2 Xilinx ZC706 dev board + FMCOMMS2/3/4
- zed_fmcs2 Xilinx zed board + FMCOMMS2/3/4
- adrv9364z7020 ADRV9364Z7020 SOM
- adrv9361z7035 ADRV9361Z7035 SOM
- zc702_fmcs2 Xilinx ZC702 dev board + FMCOMMS2/3/4
- zcu102_fmcs2 Xilinx ZCU102 dev board + FMCOMMS2/3/4
其中最便宜的平台比USRP B200 mini还要便宜。大家知道B200 mini只能连上电脑收发I/Q sample,其他所有的操作都要在电脑上完成。而openwifi所使用的Zynq平台是包含了完整射频,FPGA基带,ARM Linux的不需要电脑的完整嵌入式系统!
上全家福
中文版release notes:
- 扩展到更多平台(目前支持6种板子)
- 在README写了“如何移植”的章节,帮助更多人移植到更多平台。
- 逻辑简化/优化。 openwifi部分资源消耗:zed board: 19k LUT, 76.5 BRAM, 121 DSP; Zc706: 21k LUT, 73.5 BRAM, 98 DSP.
- 去除一些没必要的调试模块,和缩减过大的FIFO
- Wi-Fi基带发射机产生每个I/Q消耗更少时钟,这样我们对于低端FPGA(比如7020 -1速度等级),openwifi可以跑在100MHz时钟频率下。对于7035 -2/-2L速度等级以上,openwifi仍然使用200MHz时钟.
- 使用AD9361中的FIR取代FPGA里的FIR。
- 使用脚本来降低用户操作门槛。用户可以在日常开发中方便的更新FPGA,驱动。用户也可以用一个脚本方便的生成Linux SD卡镜像!
- 单一Linux SD卡镜像来支持不同的板子。只要插入板子之前把SD卡镜像BOOT分区中对应板子的目录下的BOOT.BIN和devicetree.dtb拷贝到BOOT分区根目录即可。
- 修复了monitor模式问题。根源是在Linux接收中断中存在内存越界问题(如果该数据包在FPGA内解调错误,长度域不对的话)。现在monitor模式已经没有崩溃问题。 最早是由 https://github.com/bd467913 报告的。
- 当在商用Wi-Fi设备上使用 wpa_supplicant连接openwifi AP时,在2.4GHz会有问题。因为商用Wi-Fi芯片总是从11b开始尝试,而openwifi不支持11b(openwifi只有OFDM模式)。因此我们提供了一个 wpa_supplicant的补丁来禁用商用芯片的11b模式,供有需要的用户使用。5GHz不存在此问题,因为5GHz总是使用OFDM模式。
- 添加TSF(Time Synchronization Timer)设置的子命令到sdrctl工具中,TSF是Wi-Fi标准中用于各Device时间同步的一种机制。实现上,需要FPGA内部有一个1us步进的64bit timer供Linux上层调用。现在你可以通过sdrctl工具命令方便的设置和读取这个timer的值。
原文发表于知乎:https://zhuanlan.zhihu.com/op...
更多OpenWifi芯片相关文章请关注开源芯片/FPGA设计