将 WiFi 7 路由器转换为 320Msps 软件定义无线电接收器
将 Gemtek W1700K Wi-Fi 7 路由器转换为宽带软件定义接收器。该路由器的联发科技 MT7996 无线电以高达 320 Msps 捕获原始的 14 位 IQ,Airoha AN7581 SoC 在 10 GbE 上进行流式传输,Linux 主机在浏览器中将其显示为实时频谱和瀑布图,接收器的控制也在旁边。以 320 Msps 实时捕获整个 2.4 GHz 频段,流中的降采样卷积已被校正("flatten"):每个采样的 262,144 点 FFT,每秒 100 个频谱(该录音以每秒 50 帧运行)。MT7996 仅运行我们自己的固件:ROM 补丁、WM 和 WA 是从该代码库构建的,没有联发科技的代码。它通过自身从冷启动中唤醒无线电,依据联发科技的初始化和校准逐寄存器解码与联发科技自身固件的轨迹,并从主机接收其命令(LO、采样率、捕获、流、增益、滤波器)。请参见 docs/architecture.md 和 docs/roadmap.md 。它的功能 采样率:在每个频段以 40、80、160 或 320 Msps 采集 14 位复数 IQ,与 LO 和滤波器无关;在第 2 频段还支持 640/2(640 Msps 的每隔一个样本:平坦到 ±155 MHz,但信号在 160–320 MHz 范围内折叠) 频段:2.4 GHz (MT7976),5 GHz 和 6 GHz (两个 MT7977);在运行的流中切换频段通过寄存器写入进行 调谐:没有频道:LO 是频段合成器锁定的任何赫兹(装置 A:2.081–2.748、4.647–7.509 和 4.707–7.576 GHz),在其 2.98 Hz (2.4 GHz) 或 11.9–14.3 Hz 步长的网格上;可以在流中间进行重新调谐(约 1 ms) 前端:AGC 或手动 LNA/基带增益;模拟滤波器 20–320 MHz 传输无线电:将数据直接映射到 SoC DRAM 中的 1 GiB 环形缓冲区中;内核每 8 KiB 切片作为一个 UDP 数据报发送,零拷贝,通过 10 GbE 端口;在 320 Msps 时,一半的切片被打包为每对样本 28 位,以适应链路(无损、自动) 主机 w1700k-stream 接收导出并将 IQ 流提供给每个在主机上的消费者(共享内存,复数 int16,带间隙标记),样本本身应用可选的降采样卷积校正("flatten"); w1700k-spectrum:以每秒 100 帧对每个样本进行 262,144 点 FFT,浏览器 UI,实时控制; sdr-recv 记录流 截图:在 320 Msps 下降采样的 2.4 GHz:Wi-Fi 帧和在与频段边缘保持平坦的基底上的短跳频爆发。流面板显示链接承载 9.75 Gbit/s,打包了一半的切片,并且每个样本已转换。两个繁忙的 80 MHz Wi-Fi 信道在 5170–5330 MHz 的 320 MHz 扁平视图中。放大至 5250 MHz 附近的 24 MHz:两个信道的边缘及其之间的保护间隙,采用 1.22 kHz 的数据块。 仓库路径 platform/ 在 SoC 上运行的内容:我们的 U-Boot、带有板块补丁的 Linux 6.18、只读 BusyBox 根内核/w1700k_sdr/ MT7996 驱动程序(固件下载、DMA 环、10 GbE 导出、固件的命令邮箱)及其单元侧客户端固件/ 我们的 MT7996 固件:ROM 补丁、WM(无线电启动和频段设置、流、射频控制)和 WA(打包) host/w1700k/ 主机控制:固件加载、流、射频控制作为固件命令; w1700k serve 用于 web UI host/stream/ w1700k-stream,主机的导出接收器:共享内存中的 IQ 流供每个消费者使用,以及卷积校正 host/spectrum/ 频谱/瀑布网络服务器 host/recv/ sdr-recv,流记录仪 init/ 从出厂设置安装、更新、恢复 include/hw/ 寄存器参考:每个已知的 MT7996、A-die 和 AN7581 寄存器,作为 C 头文件 docs/架构、路线图 入门 您需要一个 W1700K,一个 3.3 V USB 串行适配器连接到其控制台头,一个以太网电缆连接到其 lan3 端口进行安装,以及一个连接到主机 wan 端口的 10 GbE NIC(10GBASE-T;带有铜 SFP+ 模块的 X710 可用)用于 IQ 流。 make # 构建所有内容,从公共源码 (~10 分钟加上下载) make check # 测试套件 sudo init/host/link up IFACE # 192.168.1.10/24 在连接到 lan3 的 NIC 上 sudo init/host/tftp-forward enable IFACE init/install # 备份 NAND,安装,保存无线电校准 sudo init/host/link up IFACE10G 10.77.0.10/24 9216 # 10 GbE 流链接 host/stream/build/w1700k-stream & # 为此主机的每个消费者流 host/spectrum/build/w1700k-spectrum --controller " host/bin/w1700k serve " --listen 0.0.0.0:8073 然后打开 http://HOST:8073/ 并按 ▶。第一次启动加载无线电固件并唤醒无线电(大约 2 秒)。没有浏览器时,相同的操作是 host/bin/w1700k load|start|band|tune|gain|filter|stop|status 。 构建要求: C/C++ 编译器、make、git、Python 3.10 及以上、常规 Buildroot 先决条件、clang、ld.lld、llvm-objcopy 和 llvm-readobj(RISC-V 固件)、openssl(固件容器加密),以及 stream 服务和频谱服务器所需的 libfftw3-dev 和 zlib。无需下载或使用供应商固件。使用前请阅读 我们的固件仅用于接收。它不运行联发科技的任何发射校准,并且
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡