吕天志,彭华仁,王锋

(中电科思仪科技股份有限公司,山东青岛,266555)

0 引言

在无线电监测中,频率扫描是按指定频率表进行信号的扫描监测和射频参数测量,扫描过程如图1 所示。频率表可任意定义每个扫描频道的频率、带宽、测量时间、衰减器状态等参数,并检查每个频道是否存在信号。如果检测到信号超过预定义的电平门限,接收机将在对应的频率处驻留一段预设的时间,从而允许进行信号的解调和处理,解调信号可以通过扬声器或耳机进行监听。如果没有检测出信号,则立即切换到下一个频率点。在进行信道占用度测量时,需要在尽可能短时间内测量尽可能多的频道,以提高信道占用度测量的准确度。同时,监测接收机的扫描速度越快,捕捉到短时、突发信号的概率也就越大。

图1 监测接收机频率扫描示意图

1 系统结构与工作原理

监测接收机中基于CPU 控制的频率扫描处理框图如图2 所示,主要由CPU、变频接收模块、中频采集模块及FPGA 信号处理模块构成。其中,CPU 完成人机交互、硬件控制、数据运算等功能,变频接收模块完成无线电信号的变频、滤波等,将输入信号变频为频率较低的中频信号,中频采集模块完成中频信号的模数转换,FPGA 完成数字信号的抽取滤波、FFT 等运算处理。频率扫描的基本工作流程为,CPU 首先根据用户设定的扫描频率、带宽、衰减器状态等参数控制变频接收、中频采集等硬件平台,然后读取电平、频谱等测量结果,根据设定门限决定是否在此频道驻留测量,否则切换到下一个频道进行继续测量。整个扫描过程是以CPU 为核心串行操作,每个频道的扫描时间=CPU 设置参数时间+采集处理时间+数据传输时间+CPU 运算处理时间。每个频率扫描时间最短为数个ms 量级,扫描速度普遍在200 通道/以下,这对短时突发信号监测、提高信道占用度测量的准确度是非常不利的。

图2 基于CPU 控制的频率扫描处理框图

为此,本文设计了基于FPGA 的高速频率扫描流程,原理框图如图2 所示,由FPGA 完成接收、采集控制及切换频道的判断,CPU 仅完成采集结果的显示,实现硬件和软件的完全并行处理。在FPGA 中需要实现参数设置、测量控制、数据缓存等操作。

图3 基于FPGA 的频率扫描采集处理框图

2 高速频率扫描流程控制

(1)参数设置

变频模块等硬件控制通过SPI 总线实现,FPGA 完成硬件参数设置的结构框图如4 所示。CPU 初始化频率扫描点数和每个频点所需设置的参数,通过PCIe DMA 方式写入到DDR4 内存中。频率扫描启动后,FPGA 从内存中读取参数数据并转换成SPI 总线格式发送到变频接收和中频采集模块。

SPI 总线的传输速度设置为8MHz,每个控制参数数据长度为32bit,控制参数间隔为1μs,变频通道频率切换共需设置30 个参数,因此参数设置时间最小为(0.125μs ×32+1μs)×30=150μs。图5为SPI总线参数设置实现波形图。

图4 FPGA 完成SPI 参数设置的结构框图

图5 SPI 总线参数设置实现波形图

(2)测量控制

参数设置完成后,FPGA 对采集的数据进行抽取滤波、FFT、检波等处理,得到当前频点的测量电平和频谱。电平与设置门限比较,若小于门限则记录该频道的频率、电平、频谱等信息,切换到下一个频率点进行测量;若大于门限则进入驻留状态,继续测量电平和频谱并启动驻留时间计时,驻留时间到后切换到下一个频率点测量;若在驻留时间内测量电平值小于门限,则进入无信号保持状态,继续测量并启动无信号保持时间计时;一旦测量电平大于门限则退出无信号保持状态并将无信号保持时间计时清零。若测量电平始终小于设置门限,则在无信号保持时间到后切换到下一个频率点测量。图6 为频率扫描测量控制FPGA 实现的状态转移图。

图6 频率扫描测量控制状态转移图

频率扫描测量开始后首先进入参数设置状态,完成后等待频率切换稳定,稳定后进入START测量状态,ADC数据进行抽取滤波、FFT、检波等处理,产生电平、频谱等测量结果;然后根据测量结果判定是否在当前频点驻留测量或切换下一个频点,通常测量信道没有非法占用时不需要驻留测量,直接切换下一个频点,此时最短信号测量时间为200μs。

(3)数据缓存

在频率扫描过程中会产生电平、频谱、解调等测量结果,FPGA 需要缓存大量数据,选用DDR3 内存颗粒MT41K256M16HA-125IT 作为数据存储介质。由于采集处理与CPU 读取测量结果并行进行,可能存在测量结果写入内存和CPU 读取内存同时进行的情况,而DDR3 内存只有一组地址和数据总线接口,在同一时刻不能实现数据的同时读写。DDR3 内存用户工作时钟为200MHz,数据位宽16位×8=128位,数据速率最大为25.6Gbit/s。单通道PCIe 1.0的理论最高速度为2.5Gbit/s。DDR3 读写速度约为PCIe 读写速度的10 倍,可以利用“时间片轮转”的思想实现内存的同时读写,即分配给读写两个进程一定大小的时间片,时间片结束后切换到另一个进程。

DDR3 内存实现频谱数据同时读写的状态转移图如图7所示。由于第一次写频谱数据时不会有读操作,写操作不用时间片轮转。读操作可能会有频谱数据产生,需要分配读写时间片。频谱数据产生后首先进入初始写状态,中断时间片结束后向上位机发送中断,进入读状态,读取之前写入D1区域的数据。若读时间片没有结束读过程完成,则进入写状态WRITE_D2,往D2 区域写数据;若读未完成,读时间片结束,则进入写状态R_WRITE_D2。写D2 区域的中断时间片结束后,进入读D2 状态,若是第一次读时间片结束,则先进入写状态初始化,写地址从0 开始,然后进入写D1 状态,同样写时间片结束返回到读D2 状态。如此循环,“乒乓”读写D1 和D2 区域,实现了扫描不停止、电平频谱同时读写的功能。

图7 内存实现数据“同时读写”状态转移图

由于变频通道频率切换参数设置并稳定的总时间为150μs+150μs=300μs,4096 点FFT 测 量 时 间 为200μs,完成一次测量的总时间为500μs。设定读时间片长度为500μs,写时间片长度为50μs。

4 验证与测试

本文设计的基于FPGA 的信道频率扫描流程应用到某型手持式监测接收机中,完成了任意信道的高速扫描。频率扫描每个信道的最小测量时间=参数设置时间+变频通道频率切换稳定时间+FPGA 信号处理时间=150μs+150μs+200μs=500μs,最快扫描速度最快可达2000 通道/s。频率扫描过程中受到CPU 处理速度及频率回扫限制,实际测试扫描速度达到了1400 通道/s。提高CPU 处理速度和缩短频率切换稳定时间扫描速度将进一步提升。按照ITU-R SM.1839-1 建议书《测量无线电监测接收机扫描速度的测试程序》推荐的方法进行测试,设置信号发生器步进扫描起始频率2.5GHz,终止频率3.5GHz,幅度-30dBm,频率步进间隔20MHz,步进点数51,每个频点停留时间为35ms。图8 为接收机频率扫描测试结果,可以看出扫描捕获了全部信号,并且幅度误差小于5dB。

图8 接收机频率扫描测试结果

5 结束语

本文设计的基于FPGA 的快速信道扫描设计实现了扫描过程硬件的实时控制和测量运算的全并行处理。将该流程应用到某型手持式监测接收机中,扫描速度达到了1400 通道/s,比传统CPU 控制的频率扫描速度提升了10 倍。