摘要:频谱分析仪是用来检测电信号频谱特征的仪器,在通信、雷达以及电子产品研发等领域有着广泛的应用。本文设计了基于ZYNQ系列SoC(System on chip)和AD9361实现的简易频谱分析仪,频谱数据可以通过串口发送给上位机,并在上位机中通过MATLAB进行数据处理和分析。相比普通频谱分析仪,该简易频谱分析仪使用便捷,体积小,且十分便于功能扩展。经测试,该频谱分析仪带宽为40MHz,其通带范围为LO(Local Oscillator )-20MHz到LO+20MHz,该频谱分析仪可以较为准确地分析信号功率范围为0dBm到-65dBm。 引言 1 系统设计 本系统设计采用ZedBoard开发板和AD9361射频收发机。ZedBoard开发板是Digilent公司基于ZYNQ-7000系列SoC制作的低成本开发板,该开发板的主芯片为ZYNQ系列XC7Z020芯片,该芯片使用两块ARM Cortex-A9 MPCore作为处理器(PS Processing System),并采用Xilinx 7系列FPGA作为可编程逻辑部分(PL Programmable Logic),实现了高灵活性、高性能和强大的配置功能[2]。 AD9361是一款高性能、高度集成的2收2发射频收发机,该收发机具有可编程、宽带宽等特点,其工作频率范围为70MHz~6GHz,支持的通道带宽为200KHz~56MHz。AD9361可以根据用户需求设置滤波器、本振、增益等参数,以契合用户设计[3]。设计主要基于Xilinx ZYNQ-7000系列的可编程SoC平台,在平台上插接AD9361板卡,利用AD9361进行对应带宽数据的采集,采集到的数据经过XC7Z020的PL部分进行时频转换,然后利用ARM将频谱分析结果通过串口发送至计算机。频谱分析带宽为0~40MHz,分辨率为25kHz。 本文采用基于快速傅里叶变换(FFT)完成频谱分析仪的设计。其中,主要模块包括射频输入及转换模块、频谱分析模块、ZYNQ PS(Processing System)控制模块、串口传输模块以及上位机处理模块。其基本结构如图1所示。 图1 系统结构 图2 AD9361接收框图 图3 ZYNQ PL 部分的频谱分析模块 其中,各部分的具体功能如下: 射频输入模块及转换,使用AD9361射频收发机完成搭建,其中,通过AD9361内置的本地振荡器(LO)完成对射频信号的射频到中频的转换,通过ADC完成模数转换,并通过后续的抽取滤波器进行下采样,最终得到I/Q两路分别为60MSPS采样率的信号,通过FMC接口送入ZedBoard,进行下一步处理。 频谱分析模块,该模块使用ZYNQ SoC的PL部分完成,主要完成频谱分析仪的频谱计算功能,其中通过FMC接口接收到射频输入及转换模块的数据信息,对其进行时序转换、加窗和FFT变换后,通过DMA发送至ZYNQ SoC的PS模块内的存储空间中,供PS部分读写。 ZYNQ PS控制模块,该模块为整个模块的控制中枢,完成对射频输入模块及频谱分析模块的控制。其中,对AD9361的控制为:调节AD9361的本振(LO)的输出,调节输入通路低通滤波器的带宽,调节增益模式及增益大小,调节各级采样率等。对频谱分析模块的控制为:调节计算FFT的点数等。PS模块可以读取频谱数据,并将频谱数据传输给网口通信模块。该模块在ZYNQ PS上移植的Linux系统中完成。 串口通信模块:通过该模块,可以完成由频谱分析仪到上位机的频谱数据的传输,也可以由上位机到频谱分析仪,如果需要高的传输速率,可以使用网口进行传输。 上位机处理模块:该模块在上位机中,通过使用MATLAB工具对所得的频谱数据进行进一步的处理、显示和完成频谱图。 2 系统实现 2.1 基于AD9361的射频输入及转换模块AD9361为系统的射频输入及转换模块,主要对输入的模拟信号进行混频、滤波、模数转换和降采样等预处理。并将处理完成的数字信号通过数字接口送入ZedBoard,供ZYNQ的PL部分进行进一步的信号处理。 如图2所示,为AD9361的接收通路,AD9361接收通路完成射频信号到基带信号的部分。基带信号处理包括两个可编程的模拟低通滤波器,一个12bit ADC,以及4级的数字下变频滤波器。每个数字下变频滤波器都可以被略去。其中I/Q两路的接收通路是相同的[4]。 图4 AD采集的数据实测图 图5 PC端收到串口输出数据 图6 频谱仪测试结果 在本次设计中,各部分的系数为:收发模式:使用FDD单收单发的收发模式; 低通滤波器设置:低通滤波器3dB带宽为40MHz; ADC采样时钟频率:480MHz; HB3/DEC3下采样滤波器:进行2倍抽取,输出数据的采样频率为240MHz; 表1 频谱分析仪测试数据 RX FIR滤波器设置:对该FIR滤波器进行略过,输出数据的采样频率为60MHz; 地址0x003为AD9361的Rx Enable and Filter Control寄存器,该寄存器用于控制接收通路的使能及数字寄存器的信息。由于使用FDD的单发单收模式,且HB3、HB2和HB1皆为2倍抽取,且将FIR滤波器略去,故该寄存器应配置为0X9C。 地址0x005为AD9361的RFPLL Dividers寄存器,可以配置该寄存器的值,对VCO进行分频,得到接收通路的LO频率信息。 地址0x012为AD9361的 Parallel Port Configuration寄存器,可以配置AD9361数字接口的方式,本设计中,采用LVDS的双端口模式,因此,这里设置该寄存器的值为0x10。地址0x013为AD9361的ENSM Mode寄存器,可以通过配置该寄存器AD9361的FDD状态机和TDD状态机之间的转换。
此外,ADI公司提供了基于Xilinx SDK的AD9361控制函数,可以使用这些函数对AD9361进行配置,这样可以简化AD9361的配置过程,提高工作效率,并提高配置的准确性。 2.2 ZYNQ PS与AD9361的通信 ZYNQ PS与AD9361采用SPI和GPIO接口进行通信。ZYNQ内包含两个SPI控制器,可以工作在主/从模式或多主机模式下。本次设计采用ZYNQ PS中的一组SPI控制器对AD9361的相关寄存器进行读写。在ZYNQ上,我们可以通过MIO引出最多54个GPIO引脚,所有的GPIO都可以单独配置成输入、输出以及中断的功能。本设计中,采用GPIO对AD9361的TXNRX、NABLE以及RESETB引脚进行配置,以达到对AD9361控制的目的。 2.3 基于ZYNQ PL的频谱分析模块 数字信号输入为模拟信号,经过射频输入及转换模块后得到的数字信号,该数字信号的采样率为60MSPS,由LVDS方式通过FMC接口输入至该模块输入端。 时序处理模块将PL中相关模块的时序和AD9361收发机的数字接口时序进行相互转换,使其频谱分析模块可以正常工作。 由于在使用FPGA进行信号处理中,不可能对无限长的信号进行测量和分析,只能对信号进行截断,并对截断部分进行周期拓展并进行处理。但这样得到的信号会发生频谱泄露现象。为了减小频谱泄露的影响,需在计算FFT变换之前采用加窗技术,常见的窗有:hanning窗、hamming窗以及Gaussian窗等。本设计采用8192点hanning窗,以减少由于信号截断所带来的频谱泄露现象。 FFT模块对输入的数据进行FFT或IFFT变换,得到时域数据的频谱信息或频域数据的时域信息。其中FFT模块的计算点数为8~8192点,FFT模块使用Xilinx官方提供的IP 核。 ZYNQ PS模块为频谱分析模块提供控制信息,并接收由AXI_DMA传输的频谱数据。ZYNQ PS与AXI_GPIO通过AXI4协议进行数据传输,与AXI_DMA通过AXI_Lite协议进行控制信号传输。FFT与DMA之间使用AXI_Stream协议进行数据传输。DMA与ZYNQ PS HP接口之间通过AXI协议进行传输,这样可以拥有很高的吞吐率和性能,但需要花费额外的逻辑资源。 2.4 ZYNQ与PC通信 3 系统测试 为了方便观察结果,我们在工程中加入了ILA模块监视AD采集到的数据,如图4所示,在Vivado中的Hardware Manager中抓取的AD输入数据,图5为串口收到对应FFT后的数据。将AD9361的本振设置为1.9GHz,外接信号源设置为1.902GHz,且频率为-50dBm,得到的频谱数据经过上位机处理后得出图6所示的结果,其中MATLAB所计算出来的2MHz的功率值为-49.7101dBm。 表1为利用该频谱分析仪测试的一些数据,测试时本振设置为1.9GHz。
专注于射频微波/高频高速技术,是该专业领域最大的技术交流和信息分享平台。由资深射频高速专家,深圳励知科技徐兴福创建,公司主要从事PCB Layout设计(包括高速及射频)外包,高速信号完整性仿真,Rogers/FR4 PCB加工,电话15989459034(微信同号) |
|