周成英,李 睿,张 橹,冯国平,王翠莲,蒋 帅
(1.北京空间飞行器总体设计部,北京 100094;2.中国空间技术研究院,北京 100094)
相控阵天线是由许多辐射单元排成阵列形式构成的天线,利用计算及控制移相器改变天线孔径上的相位分布来实现波束在空间扫描[1],具有无物理运动的转向、高的二维扫描灵活性以及极准确的波束指向、可靠性高、抗干扰能力强等特点[2]。相控阵技术目前已广泛应用于搜索、火控、制导等各种战术雷达和着陆、气象等民用雷达、通信卫星、电子对抗等领域[3-5]。
在相控阵天线中,波束控制技术作为关键技术之一,直接影响系统效能的发挥[6],尤其是支持跳波束多区域时分通信模式[7]的多波束相控阵天线,一次波束驻留时间最小50 us,即要求波束控制器在50 us内完成256单元移相码计算和将移相码送到对应的移相器上。波束控制器性能好坏直接影响整个相控阵系统的整体性能和技术指标。
256单元阵面规模决定了移相码计算方法需使用集中式运算法。集中式运算法多采用查表预处理法和软件计算法[8]。查表法将每个波位下所有移相码存于存储器中,工作时通过查表方式得到移相码[9]。由于资源需求较大,存储器需选用大容量NAND FLASH作为外部存储器[10]。可选用的NAND FLASH在读取数据时等待时间一般为25 us-30 us,甚至更高。将移相码送到对应移相器上需要20 us时间。在50 us内可用于从外部存储器读取数据的时间很短,甚至没有读取数据时间。软件计算法由DSP或单片机等计算移相码,然后传送至FPGA,FPGA将移相码送到对应的移相器。以运算速度较快的DSP为例,DSP计算256单元移相码时间需要10 ms左右(频率120 MHz),仅计算时间就是波束驻留时间的200倍。
本文针对移相码快速计算问题,提出了一种基于FPGA的实时计算方法[11],该方法通过对算法进行分解和优化,只需要3个时钟周期即可计算出一个单元的移相码,满阵256单元计算时间约为26 us(时钟30 MHz)。仿真结果表明,该方法计算速度快,实现了波束扫描快速响应性能。
相控阵天线是由大量的辐射单元组成的阵列(正方形、三角形、稀疏矩阵等),辐射单元几百、几千,甚至上万[12],辐射单元由数字移相器控制,工作时通过根据指向角度计算并配置相应的移相码,达到控制天线指向的目的[13]。
如图1所示,设定天线共有m*n个天线单元,单元间距分别为dx和dy,λ为波长,θ和φ分别为对应目标的俯仰角和方位角,m代表列,n代表行。
图1 相控阵天线阵面布置图
移相码Ψ计算公式如下式所示:
dy(n-8.5)sinθsinφ}
(1)
由(1)计算出Ψ后,再按公式2进行操作。
D(m,n)=dec2bin{round[mod(Ψ,360)/5.625]}
(2)
式(2)中,mod(Ψ,360)代表将中间结果Ψ归一化到(0-360)之间,5.625为相移,相移值选取与精度有关。
计算结果与初始校正值累加,得到最终的移相码。
移相码计算有sinθ、cosφ、sinφ正余弦求解、有小数加减法和乘除法计算、归一化处理,算法比较复杂。对于不同的方位角、俯仰角,计算出辐射单元移相码,并将移相码送到移相器中,才能保证相控阵雷达的灵活性和多样性,快速准确计算移相码是波束控制器的难点。
为了快速而准确计算移相码,设计了以FPGA为核心的波束控制器,FPGA进行算法运算和时序控制[14],省去DSP处理芯片,简化了硬件电路设计。组成框图如图2所示。
图2 波束控制器组成框图
波束控制器从数管计算机通过RS422串口接收到控制命令后,根据输入角度计算出相对应的移相码,同时从外部存储器中读出相位校正值,将两者相加并发送给移相器,移相器在控制信号的作用下,偏移到指定相位,从而达到改变波束的目的。
波束控制器硬件电路主要包括FPGA、电源管理、接口驱动电路、存储器、时钟电路。各部分电路作用如下:
1)FPGA为核心器件,负责接收并解析数管计算机发送的控制指令、管理外部存储器单元、计算移相码、给组件发送移相码等控制指令;
2)接口驱动电路实现信号的电平转换和隔离;
3)时钟电路为FPGA提供所需时钟信号;
4)存储器中存储相控阵天线初始相位校正值。
为满足快速计算需求,本设计对算法进行分解优化,采取面积换速度的思想,每一步设计都采用时间需求最小的设计方法,计算流程图如图3所示。首先,需要求解出公共因子三角函数值,并进行三角函数值乘法运算。本设计采用cordic IP核计算三角函数值[15],需要1个时钟周期,然后对数据进行锁存,需要1个时钟周期,三角函数乘法运算需要1个时钟周期,共3个时钟周期。完成三角函数值乘法运算后,需要分别计算每个单元的移相码,该计算过程包含3个步骤,分别是小数乘加运算、归一化处理和除法计算,每个步骤只需要1个时钟周期即可完成。因此,仅需要3个时钟周期即可完成一个单元的移相码计算。
图3 算法流程图
根据本设计方案,全部的计算过程共计需要3个时钟周期完成公共因子三角函数值计算和三角函数值乘法运算,需要256×3个时钟周期完成全部256个单元的移相码计算,总计需要3+256×3=771个时钟周期。在本设计中采用30 MHz系统时钟,771个时钟周期所占时间为771÷30=25.7 us。
计算流程图如下:
(1)三角函数值计算
当FPGA接收到指向角输入时,先进行指向角的三角函数运算。三角函数运算采用FPGA的cordic IP核进行计算,1个时钟周期就可得出三角函数值。
(2)三角函数值乘法
得到三角函数值后,进行sinθ与cosφ,sinθ与sinφ乘积运算。采用乘法器核进行有符号小数乘法运算。
(3)小数乘加运算
接下来按照公式(1)进行移相码计算,公式可拆分成
(3)
(4)
(4)归一化处理
计算的结果要归一化到0-360之间。如计算结果为正数,与360比较,大于360,则减去360,继续与360进行比较,直到数据在0-360之间;如计算结果为负数,则加上360,比较数据是否在0-360之间,不在,则继续加360,直到数据在0-360之间。采取传统的比较、加减循环操作,将数据归一化到0-360之间,每次数据归一化时间不定。如遇到一个很大的数,要多个时钟周期才能完成归一化。例如计算结果为3500,则需要9次比较和减法才能完成数据归一化。按平均1个数据9个周期计算,系统时钟30 MHz,仅归一化256个数据就需要76.7 us。为避免多次比较和加减运算,本设计采用分区比较方法,以360为一个区间大小,以360的整数倍值作为区间边界,划分多个数据区间,数据分区包含所有可能计算出来的数据。将计算出来的数据与数据分区边界值进行比较,如果计算出来的数据为负值,加上左边界值的绝对值;如果为正值,则减去左边界值,加或减后的数据就在0-360之间。与数据分区左边界值绝对值相加或左边界值相减,相当于进行了多次比较和加减,所以无论数据多大,都只需要1次比较和加减即可完成归一化处理。例如对于特定的天线,公式(1)中的参数都是已知的,根据这些参数可以估算出由公式(1)计算的结果最大值和最小值。假设估算出最大值为5330,最小值为-5330。我们将数据分成[-5400,-5040)、[-5040,-4680)、…、[-3600,-3240)、 … [-360,0)、[0,360)、[360,720)、…、[3240,3600)、…、[4680,5040) 、[5040,5400]等数据分区,这些数据区间大小都是360,区间边界值是360的-15、-14、-13、…、-10、-9、…、-1、0、1、2、…、9、10、…、13、14、15倍。同样计算结果是3500,将3500与区间边界-5400、-5040、-4680、…、3240、3600、…、4680、5040、5400等比较,3500大于3240,小于3600,3500在[3240,3600)数据区间内,3500为正值,用3500减去数据区间的左边界值3240,就相当于做了9次与360的比较和减法,比较和减法在FPGA内只需要1个时钟周期就能实现,即1个时钟周期得出归一化结果为260。同样系统时钟30MHz,归一化256个数据只需要8.533 us。
(5)除法计算除法计算是归一化的数据除以相移5.625,然后四舍五入得出相位数据,传统的移位比较减方法,算出一个数据需要多个时钟周期。本设计依然采用分区比较的方法,将归一化的数据与事先计算好的数据区间进行比较,一个时钟周期即可得出移相码。如计算结果为260,比较数据在261.5625与267.1875之间,得出移相码为101111。
为方便运算和保证精度需求,本设计中小数运算采用扩大为整数的方式[16],扩大倍数取决于所需要的计算精度。
MATLAB计算值如图4所示,其中Theta为8度俯仰角,Phi为44.8度方位角,Freq为29.7 GHz频率,A为输出的移相码。
图4 MATLAB仿真结果
ISE软件仿真结果如图5所示,激励文件中phase_inthe代表theta,phase_inphi代表phi,单位均为弧度。输入角度采用16位表示,为定点补码2QN格式,0X0478转换成二进制“0000010001111000”,按照IP核定义相当于000.0010001111000,小数后第三位为1,代表2-3,以此类推,所有为1的位代表的值之和,就是所表示的值,即2-3+2-7+2-8+2-9+2-10之和为0.1396484375弧度,转换成角度是8度,同理0X1900转换成角度是44.8度。29.7GHz频率体现在查找表里。通过图4和图5进行比较,FPGA计算出来的值与MATLAB计算出来的值是相同的。由此可见,此方案计算出了正确的移相码。从图5中可以看出,在复位后,经过3个时钟周期的三角函数求解和乘积运算后,再经过3个时钟周期计算,共计6个周期后得出第一个移相码54。其后每经过3个周期,依次计算出移相码63、7、15、24等,每个移相码计算周期仅需要3个时钟周期,完全满足快速计算需求。
图5 FPGA仿真结果
波束扫描响应时间是相控阵天线的重要性能指标,相控阵各种先进的工作方式对波束扫描的响应时间提出了越来越高的要求。采用本方案设计的波束控制器,硬件电路简单,软件上对算法进行分解和优化,计算一个单元移相码只需要3个时钟周期,满阵256单元移相码计算时间缩短至26 us(时钟30 MHz),具有非常短的波束响应时间,提高了波束扫描的速度和灵活性。