相控阵雷达信号处理器的FPGA 设计与实现
2022-11-03王成峰邵志飞鲁冬亮
王成峰,王 鑫,邵志飞,鲁冬亮
(93305 部队,沈阳 110031)
0 引言
雷达的缩写Radar,来源于“Radio Detection and Ranging”,使用电扫描的相控阵雷达可以使用相位来控制雷达波束的方向,主要用于确定目标的性质,测量目标的位置和运动参数,搜索目标。 由许多小天线单元组成的阵列是相控阵雷达天线,改变每个单元的相位可以产生不同的波束方向,每个单元有一个可控移相器。 一般来说,有源和无源两种为相控阵雷达,在无源相控阵雷达中,发射器和接收器是共享的,数量有限。
1 信号处理功能的FPGA 软件设计
1.1 FPGA 开发流程
Xilinx 的ISE 是本主题的FPGA 开发软件,主要包括以下几个FPGA 开发过程步骤[1],第一步是设计输入和准备。 第二步是设计环节,包括设计处理、功能仿真和时序仿真。 第三步是器件编程和测试具体流程如图1 所示。 展示方案通常采用自顶向下的方式搭建系统框架,选择需要的设备,设计输入包括波形输入、原理图输入和硬件描述语言输入。 设计人员在输入原理图方面具有广泛的电路知识,并且能够从系统的元件库中调用元件来绘制原理图。 但是,需要重新输入原理图,因为PLD 器件不同。 波形输入方法通常包括功能测试向量和输入模拟,使用文本硬件描述语言编写代码,编程语言与过程无关,比较常用的是Verilog HDL和VHDL,易于转换,效率高,且具有强大的逻辑描述和模拟功能。 在本课题使用Verilog HDL 输入,在编译之前功能仿真是验证设计的逻辑功能,适用于无延迟的特征检测。
图1 FPGA 开发流程结构
1.2 FPGA 信号处理器程序框架
利用和差三通道波束回波数据的DBF 处理器输出,对信号处理器目标进行检测,并对不同的信号模式进行信号处理[2]。 通过高速 SRIO 将处理后的数据FPGA 发送给DSP,将处理结果发送给主控模块。 调整相应接收机的速度跟踪环的接收门闸脉冲、本振频率、发射频率等,将相应的控制信息反馈给接收机。 在FPGA 上实现本研究的一部分,通过3 个MGT 通道(Tile1,TileO,Tile2)DBF 处理器将回波数据发送给信号处理器,通过高电平处理后的数据发送给DSP -speed SRIO 进行处理,选择相应的处理模块进行处理,由其判断回波信号数据的类型。 通过MGT 模块接口DBF 处理器向信号处理器发送回波信号数据,传输协议使用32 位数据帧。 帧结构包含数据、帧头和检查,防止数据传输错误,保证数据传输可靠,帧头采用帧类型显示、同步信息等校验。
1.3 HPRF-PD 模式信号处理模块的FPGA 设计
FPGA 在HPRF-PD 模式下,主要实现窄带和波束回波信号FFT 处理、宽带和波束回波信号匹配滤波等相关部分[3]。
1.3.1 用于HPRF-PD 宽带和光束信号匹配滤波的FPGA 设计
宽带和波束信号的匹配滤波主要用于实现FPGA,在距离搜索通道中,32 位浮点数在匹配滤波的结果转换,然后发送给DSP 进行处理。 按时间相反顺序排列的输入信号可以表示为匹配滤波器,幅度在短时间内变化不大,由于HPRF-PD 信号的脉宽很短,设计时可以简化匹配滤波器的系数,均视为单元1。 数据模块、时钟模块和匹配滤波器模块等在程序中均有包含,可以看出,300 MHz 为程序的主处理时钟,通过硬件板上200 MHz 晶振的Clocking Wizard IP 核差分输入产生,同时输出复位信号。 从解帧模块接收到的波束回波信号和HPRF-PD 宽带是数据模块中的数据,匹配滤波器系数和信号数据的时域卷积是匹配滤波,即相乘、移位、累加的过程,如式1 所示。
该设计中1 为所有匹配滤波器系数,避免数据与滤波器系数相乘。 回波数据的I,Q 通道在实现过程中,采用RAM 存储器、减法器和累加器的组合设计。如果输入数据的个数不大于滤波器系数的个数,将每次累加的结果存储在内存中,通过累加器对输入信号数据进行累加,以方便后续的减法运算。 同时,0 为减法器的负端置,累加器的输出结果接到减法器的负端。如果输入数据的数量开始超过过滤器的长度,必须减去最初输入的旧数据,每次添加新的输入数据。 RAM的输出端from ram 按顺序读取第一个存储的数据,匹配滤波处理的结果是减法器减法的输出,通过调用FPGA 的IP 核来实现程序中的减法器、累加器和RAM存储器。
1.3.2 HPRF-PD 宽带和波束信号的距离跟踪的FPGA 设计
在FPGA 上实现的HPRF-PD 模式距离跟踪通道,主要包括速度门窄带滤波以及前门和后门门控,FPGA编程框架主要包括CIC 滤波器提取、门控和多普勒校正以及两个一级半带滤波器滤波[4]。 HPRF-PD 宽带和波束信号的距离跟踪的FPGA 设计如图2 所示,该设计需要对40 MHz 为采样率、30 MHz 为带宽的宽带信号进行数字滤波和抽取,最终获取窄带数据。 I/Q 是通道窄带滤波器组必须满足的频率响应特性。 在本研究中,总抽取率为Dc=1 600,因为I 和Q 窄带滤波器输出的基带回波数据f=40 MHz 和数据速率fouf=25 kHz。设计CIC 滤波器时,归一化旁瓣电平优于-60 dB,提取后混入有效带宽±8 kHz 的带外抑制优于-100 dB,需要确保有效带宽是好的。 宽±8 kHz 内的通带抖动优于1 dB,5 级级联CIC 滤波器可以满足设计需求,由上可知,首先生成一个长度为400 的序列,抽取因子选择为D1=400,1 个序列的5 级卷积就是5 级CIC 滤波器的脉冲响应,1 级CIC 滤波器的脉冲响应,首先将多普勒f和包含该信息的宽带回波信号数据乘以多普勒补偿因子,然后将补偿后的数据送到CIC 抽取滤波器。 调用FPGA 的CIC 编译器IP 核完成CIC 过滤和抽取。 400为抽取率设置,5 为级联数设置,梳状滤波器延迟因子设置为1。
图2 HPRF-PD 宽带和波束信号的距离跟踪的FPGA 设计结构
1.4 LFM 模式信号处理模块的FPGA 设计
波束通道脉冲压缩模块在乒乓结构的内存中接收到的波束回波信号数据存储,利用FIR 滤波器完成脉冲压缩过程并将结果发送给MTD 模块[5]。 在乒乓RAM 内存中为防止数据丢失,接收到I 和O 数据存储。通过输入数据选择单元和RAM B,输入数据的同时分配给RAM A,在第一个数据缓存周期中,在RAM A 中输入数据存储。 在第二个数据缓存周期中,在RAM B中输入数据存储,同时由输入数据选择单元切换RAM A 中存储的数据,送到后续处理模块进行处理。 在第三个缓冲周期,将输入数据放入RAM A,再次切换输入数据选择单元,同时切换输出数据选择单元,读取RAM B 中存储的数据,这个循环确保输入和输出数据是连续的。 如果使用乒乓操作从一个RAM 中读取数据,可以将数据存储在另一个RAM 中。 特别适合流水线处理,因为输入和输出数据流在模块的两端都是不间断的。 在FPGA 处理中,将数据输入RAM 时,需要产生一个与数据一一对应的地址总线信号。 FPGA 读/写控制模块需要RAM A 和RAM B 的读写控制,以及输入信号线、两组地址线、输出数据总线,分别进行操作。乒乓RAM 的输入部分包含复位信号rst、输入数据din、时钟信号clk,需要一个信号来控制RAM B 和AMA 之间的切换,控制部分主要是两个RAM 的读写切换信号,控制两个RAM 的写入和读取使能。 根据1 位控制信号的高低,与地址信号类似,两个RAM 的doutl,输出部分主要是输出dout0,1 取2 后的输出dout。 0 为用于切换RAM 的控制信号设置时,在RAM0 中输入数据存储,并输出存储在RAM1 中的数据。 如果为1,则输入数据存储在RAM1 中,RAM0 中的数据为:输出。 每次数据存储完成时,该控制信号加1。
2 信号处理各FPGA 功能模块结果分析
2.1 HPRF-PD 模式的信处模块调试结果
在HPRF-PD 模式距离搜索信道中,匹配滤波的结果是宽带噪声和信号的加入,虚部代表红线,实部代表蓝线[6]。 通过调试接口导出FPGA 处理的数据,将其另存为*. txt 文件。 使用MATLAB 对数据进行分析,并与MATLAB 中实现的匹配滤波的结果进行比较。 可以看到,FPGA 处理和MATLAB 处理得到的结果是一致的,在横轴为21 时得到最大值。 CPI1 和CPI2 在HPRF-PD 模式速度搜索通道中,具有相同的脉冲重复周期,而CPI3 和CPI4 具有相同的脉冲重复周期。 经FFT 处理后,数据传送到 DSP 进行进一步处理。
2.2 SRIO 接口模块调试结果
在SRIO 程序中,表示FPGA 与DSP 的连接已经成功建立为将FPGA 端的Port_initialized 显示信号设置。此时,FPGA 作为从设备,发出DSP 请求。 一旦建立连接,FPGA 存储空间就会对DSP 完全开放。 DSP 可以通过启动NWRITE 指令向FPGA 存储空间写入数据。以编程方式将RAM 写入起始地址设置为0x00120000。而从写入的数据0x12345678,每次加1。 同样,DSP 可以使用 NREAD 命令读取FPGA 的RAM(地址设置为0x00560000)。 可以根据需要设置读写地址,可以设置多个RAM 进行读写。 地址线的高位用于选通需要操作的RAM,地址线的低位用于读写特定的RAM。 在调试程序时,可以看到FPGA 接收端数据和DSP 发送的数 据 每 32 位(4 字 节) 进 行 一 次 反 转。 比 如0x1234567812345679 变成0x7856341279563412,接收到的数据需要转置。 硬件开启并下载程序时,FPGA 端的端口初始化信号和链路初始化信号可以正常上拉,DSP 也检测到端口0 上的FPGA。