多功能相控阵雷达多通道DMA传输系统设计*

2022-11-05 10:52李纪三夏东方李靖舒
舰船电子工程 2022年9期
关键词:相控阵内存总线

沈 洋 李纪三 夏东方 李靖舒

(南京船舶雷达研究所 南京 211106)

1 引言

相控阵雷达相比其它雷达更具灵活性,能同时完成多任务,在日益复杂的战场环境中拥有不可或缺地位。相控阵雷达是获取战场信息的重要工具,同时也是武器系统的重要组成部分,其承担了包括空中目标搜索、海面目标搜索、空中目标跟踪、海面目标跟踪、目标分类识别、目标高精度成像、武器制导、气象探测等任务。不同种类的任务的数据帧大小不同,对传输带宽和实时性的要求也不同,给雷达的数据传输系统带来新的挑战[1~2]。

为了实现相控阵雷达的同时多功能多任务,需要实现同时多通道传输数据,比如雷达对空搜索同时进行干扰源测向,或者对目标跟踪时进行副瓣抑制,同时进行的工作的类别数量要与传输的通道数目匹配,传统的机扫雷达采用分时实现多任务,采用单通道传输数据。相比于传统雷达,相控阵雷达要求传输系统支持多通道数据同时传输[3]。

传统雷达的数据传输流程每次由CPU发起,当雷达的下行数据流从雷达前端向后端传输时,由于用于后端信息处理的CPU无法事先根据脉冲重复周期及时准确地计算出下个脉冲的数据长度,因而只能根据雷达的扫描参数(重复周期、脉冲个数等)将DMA大小设置为固定值,CPU通过在数据中查找雷达同步头解析数据从而形成雷达数据帧,反复地读取并比对数据十分消耗CPU资源。此外,CPU必须通过写寄存器的方式发起DMA传输,而寄存器写操作是一个低效且耗时的操作,频繁的寄存器写操作会降低整个DMA传输效率。

针对上述分析的传输带宽小,通道单一,DMA传输效率低等问题,不能满足多功能相控阵雷达的数据传输要求,设计了一种基于PCIE总线的多功能相控阵雷达多通道DMA传输系统,该系统使用PCIe总线的DMA方式进行数据通信,雷达前端使用FPGA进行信号采样及接口转换,雷达后端使用CPU进行信息处理,数据流由前端向后端传输时,由数据源FPGA直接启动DMA流程,直接将雷达下行数据写入事先分配好的内存,并将该DMA包的描述符信息写入相应内存,其中DMA描述符信息应包含传输状态、数据大小及数据编号等信息,CPU只需通过周期性地读取传输状态便可获取所有数据。该系统采用多组DMA内存轮流使用的方式进行传输,避免雷达数据未及时处理而被后来的流水数据所覆盖,同时设计多个虚拟DMA通道,满足同时多通道的数据传输需求。该系统中CPU极少参与数据传输过程,整个DMA传输效率得以提高,CPU也得以将更多的性能释放于雷达信息处理中。

2 PCIE总线

PCI Express总线是由英特尔在2001年提出的第三代 I/O接口标准[4~5]。PCIe总线是在 PCI总线的基础上演变而来,有效克服PCI总线的并行接口多的缺点。支持动态电源管理,错误监测、处理、报告,热插拔以及服务质量等功能。

PCIe总线是一种高速串行总线,点对点全双工传输,采用差分信号传输有效地避免了数据传输过程中的串扰问题,从而可以不断地提高传输速率。

2011年PCIe技术标准组织在原有基础上,推出PCIe Gen3.0标准,显著提高传输带宽,单通道通信带宽达到8.0Gbps。可配置X1 Lane、X8 Lane、X16 Lane等多通道连接。由于其采用串行技术,克服了并行传输技术的传输速率、误码率、传输带宽等方面的不足,满足现代嵌入式等电子领域对高速率和高可靠性的要求。目前,PCI-SIG已于2022年6月宣布推出了最新一代的PCIe7.0规范,各代规范的传输速率对比如表1所示[5~7]。

3 系统构成及工作原理

3.1 系统构成

为实现核心装备的安全可靠,自主可控,国家大力提倡电子元器件、操作系统和应用软件的国产化。本传输系统的硬件部分的主要元器件包括了国产FPGA芯片和国产CPU芯片,两者通过PCIe3.0总线的x8模式互联。在国产CPU芯片端安装国产银河麒麟操作系统,并自主开发了配套的PCIe驱动程序和应用软件。

为解决传统DMA传输在多功能相控阵雷达系统中的应用问题,改进一种新的DMA传输流程。典型的相控阵雷达数据传输流程如图1所示,数字面阵中频信息通过光纤发往DBF板,进行DBF数字合成,然后通过光纤发往FPGA。FPGA与CPU之间的数据交换过程如下:CPU首先完成PCIe设备初始化、DMA参数(包括虚拟DMA通道数M、每个虚拟DMA通道轮流使用的DMA内存个数N等)设置和DMA资源的分配,然后将M组*N个DMA内存的首地址和M个上报内存的首地址下发给FPGA,其中每一组DMA传输对应一类任务,并向FPGA发送开启DMA传输的命令;FPGA收到DMA开启命令后,正式接管DMA的流程控制,将相控阵雷达的下行数据以脉冲为单位写入第一个DMA内存,并将该包DMA描述符写入第一个上报内存;下一个雷达脉冲数据帧抵达时,分别将数据和描述符写入第二个DMA内存和第二个上报内存;依此类推,FPGA轮流使用N组DMA内存和上报内存;CPU通过不停轮询上报内存中的传输状态信息,获取相应的数据DMA描述符和雷达数据[8~9]。

图1 相控阵雷达数据传输流程

3.2 多通道DMA设计

针对多功能相控阵雷达系统中同时多功能多任务的数据同步传输需求,设计一种多通道DMA控制器,如图2所示,该DMA控制器同时接收不同任务种类产生的数据[8],不同任务的数据分别进入不同的数据通道,流经各自的数据缓存FIFO后由任务调度模块进行仲裁,任务调度模块按照预置的仲裁原则确定好优先级后依次将数据送给数据组包模块,由数据组包模块将数据转换形成PCIE总线所定义的TLP包格式,最终通过PCIE的IP核转换为多路串行数据发送到PCIE总线上。值得注意的是,数据组包模块封装TLP包的时候,会根据不同的数据通道使用不同的DMA内存地址和上报内存地址,从而在CPU端应用程序层面实现了雷达不同任务数据传输至不同的内存中,而无需面对混杂在一起的雷达不同任务的数据。

图2 多通道DMA传输

3.3 单通道DMA设计

多通道DMA传输中的数据组包逻辑可简化为若干个单通道 DMA数据组包的组合[10~11],单通道DMA的数据组包逻辑具体如下。数据组包模块接收来自上级模块的雷达数据,组包后形成AXI总线接口形式,送给PCIE的IP核,其中上级模块输出的雷达数据接口包括数据的采样时钟clock、待传输的数据data、数据的有效标识valid以及数据的起始和结束标识start和end,数据组包模块根据该接口可准确地解析出所有有效数据。

数据组包时,采用状态机方式控制FPGA程序的时序逻辑,本系统设计的数据组包状态机如图3所示,数据组包状态机上电后直接进入SM_RST状态,并等待CPU下发的DMA开始命令DMA_en,当DMA_en=1时,跳转进入SM_WAIT状态;在SM_WAIT状态中一直等待数据的起始标识start,当start=1时,跳转进入SM_HEAD状态,否则状态机保持不变;进入SM_HEAD状态后,开始进行组包,形成TLP包头信息,并等待有效数据,当valid=1时,跳转进入SM_DATA状态;进入SM_DATA状态后,继续组包,持续写入待发送的有效数据,直到该数据包达到负载PLAYLOAD,当cnt=PAYLOAD时,跳转进入SM_TAIL状态;进入SM_TAIL状态后,继续组包,发送该TLP包的最后一个数据,完成一个普通的TLP包并跳转回SM_WAIT状态。多次循环之后,在SM_DATA状态中等到了数据结束标识end,当end=1时,跳转进入SM_END状态;进入SM_END状态后,发送该TLP包的最后一个数据,完成该DMA包的最后一个TLP包,并跳转进入SM_REPORT状态;进入SM_REPORT状态后,根据之前的统计结果,组包形成上报TLP包,上报TLP包的数据负载即为前文所述的DMA描述符,主要包括DMA传输完成状态、DMA数据包长度以及DMA数据包序号等,然后直接跳转进入SM_WAIT状态,继续等待新的数据起始标识start。

图3 数据组包状态机

由图3可见,数据组包状态机包含一大一小两个循环。每完成一次小循环的状态跳转,则完成一次数据TLP组包;每完成一次大循环的状态跳转,则完成一次DMA组包,其中包括若干数据TLP和一个DMA信息上报TLP。

以最典型的PAYLOAD为128字节的TLP包为例,AXI总线的数据位宽为256位时,要发送128字节的PAYLOAD数据需4个时钟周期,发送TLP数据头(SM_HEAD状态)另需一个时钟周期,再加上一个时钟周期的TLP包之间的等待时间(SM_WAIT状态),因此最快6个时钟周期便可完成一次TLP组包,数据得以及时写入总线,从而保证在FPGA不使用外挂DDR作为缓存的情况下可以无损地进行大带宽的数据传输[12~13]。

由以上设计可以看出,本系统的DMA数据传输具有如下特点:

1)CPU只需在初始化时向FPGA发送一次开始DMA传输的命令,接下来的数据传输完全由FPGA完成,无需CPU的参与,极大地提高了数据传输的效率和实时性。

2)由FPGA独立实现一包DMA数据的传输,实现了可变长度的DMA传输,通过上报和定期查询代替中断响应的方式获取DMA传输状态,避免了大数据量传输时频繁的中断响应,降低了CPU卡顿和死机的风险。

3)将DMA数据包与雷达数据帧进行关联,适合雷达数据流水处理的特点,减轻了CPU查找同步头解析数据的负担。

4)设计多组DMA内存和上报内存轮流使用,FPGA在进行少量缓存后可直接通过PCIe总线将数据写入内存,在大带宽传输的需求时也无需使用大容量DDR进行缓存,硬件设计更加简单,软件的调试难度大大降低。

4 性能测试与验证

测试平台硬件基于国产FPGA芯片和国产CPU芯片进行设计实现,CPU与FPGA之间通过PCIe3.0 x8总线互联,CPU端使用国产银河麒麟操作系统,用C语言开发了配套的PCIe驱动程序和上位机测试软件,用Verilog语言开发FPGA端测试逻辑。由FPGA同时产生两路连续递增的32位累加数作为测试数据,模拟多功能相控阵雷达两个不同的任务产生的数据,测试数据速率可独立调节,分别送给两个DMA通道,上位机测试软件通过调用驱动程序提供的函数接口初始化PCIe设备并同时接收两个通道的测试数据,在统计接收数据平均速率的同时,对数据的正确性进行判断,并对比发送数据的理论速率。测试结果表明,在数据校验均未出错的情况下,单路DMA通道测试时,数据传输速度达4700MB/s,两路DMA通道同时测试时,两通道的数据传输速度之和可达4700MB/s,与DMA组包逻辑的理论计算值相匹配。

5 结语

本文设计一种基于PCIe总线的多功能相控阵雷达多通道DMA传输系统,在初始化之后无需CPU主动参与,由FPGA独立实现可变长度的DMA数据包的传输,实现雷达数据帧与DMA数据包的关联匹配,减少了雷达信息处理过程中复杂的拆包组包过程,为实现同时多功能多任务,设计多个虚拟DMA数据通道传输,提高了CPU解析雷达数据帧的效率,试验测试表明本设计满足现代多功能相控阵雷达数据传输的要求。

猜你喜欢
相控阵内存总线
外部高速缓存与非易失内存结合的混合内存体系结构特性评测
相控阵超声技术在PE管电熔焊接检测的应用
相控阵超声波检测技术认证
“春夏秋冬”的内存
一种相控阵雷达的通讯处理器设计
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
相控阵雷达研究现状与发展趋势
多通道ARINC429总线检查仪
基于EtherCAT总线的ROV控制系统设计