图4中:S1为运算使能控制和状态转换条件控制及变量初始化;S2完成波束控制算法和按照格式排布计算结果;S3产生被传送数据的地址和时钟及将并行的计算结果转为串行;S4对FLASH进行写操作;S5对FLASH进行读操作;S6对SRAM进行写操作;S7先对SRAM读操作,然后按照预定格式拼位,以便跳入S3状态将SRAM中的数据传出。S1中状态机的状态转换条件即为译码得到的来自雷达控制台的控制指令。状态机将根据不同的控制指令进入相应的状态处理程序段。
其中的S2状态机实现的阵面第(m,n)个组件的移相值运算如下:
式中:m为行坐标值;n为列坐标值。当雷达工作在SAR方式和GMTI的发射方式时m=-2a,-2a+1,…,-1,0,1,…,2a-2,2a-1;n=-b/2,-b/2+1,…,-1,0,1,…,b/2-2,b/2-1。对GMTI的接收方式,m=-a/2,-a/2+1,…,-1,O,1,…,a/2-2,a/2-1;n=-b/2,-b/2+1,…,-1,O,1,…b/2-2,b/2-1。ψ0m,n(λ)为初始相位值;α,β为雷达控制计算机根据波束指向角而发送的方位递增量和俯仰递增量;φ(m,n,t)为相位误差修正量;△ψ为单位相移量,用于随机馈相。等式右端的ψ0m,n,ψ,△ψ预存在片外的FLASH中,FPGA通过对FLASH的读操作将对应地址空间的数据存入相应寄存器,在状态机的控制下参与移相值的计算。
在FPGA中,此算式的实现采用Verilog硬件描述语言编程,控制变量做加法循环即可实现该算法。对随机馈相的运算,是将按单元排列方式所对应的、预先存在FLASH中的一组随机数δi.j(其存储位数不小于4位),和波束控制系统计算的移相器量化相移值结尾相位△i.j做比较,如果△i.j大于δi.j,则移相器量化相移值加单位相移量△ψ后送给移相器,否则直接将移相器量化相移值送给移相器。
3.2 运算板调试的控制程序设计
运算板的初期调试和验证对于整个产品的实现至关重要,此阶段直接决定了产品实现的可行性和进度。在此选用ViSUalBasic 6.0开发设计程序,基于Windows的VB提供了一个MSCOMM 32.OCX串行通信控件,用串口电平转换器接上两对差分信号线,就可以实现与运算板FPGA异步串行口的通信。所设计的控制程序可以模拟产生雷达控制台的控制指令和定时器的定时信号、实现对SRAM和FLASH信息的写入和读出,完成对FPGA运算结果的回送数据校验。
根据需要,所设计的程序分为八个模块,分别为串口通信控制、雷达控制指令产生、定时信息产生、对FLASH的各种操作控制、补偿数据文件的写入/读出操作、理论运算结果显示、FPGA运算结果回送显示、自检方式所需要的控制等。
3.3 驱动板的程序设计
该驱动板程序设计的关键点和特点在于单片机和EPLD的程序既能够联机工作,又能够独立地控制组件,实现组件的单机调试功能,即装机和测试用同一个程序。