多通道SCA通信终端局部重构技术研究
【摘要】 随着电子技术和软件无线电技术的发展,基于SCA架构的多通道通信终端,具备资源综合化、功能软件化、业务多元化、小型化特点,具有开放性架构,满足多种应用场景需求。本文针对多通道SCA通信终端特征,分析了基于SCA架构的四通道通信终端的运行机理,研究并提出了在SCA架构下局部重构FPGA波形的方法,并在实物环境上测试验证,测试结果表明本文设计的方法有效且可行。
【关键词】 多通道SCA终端 MHAL FPGA 局部重构
一、引言
随着电子技术发展,处理器的集成度越来越高,处理能力越来越强,多核处理器芯片和大规模逻辑芯片被大量运用,并得到充分验证,为多通道无线通信终端资源综合提供了硬件基础,由传统的通道资源独立架构[1]演变为通道资源共享架构,从而实现小型化设计,满足了对体积、功耗和重量要求严苛的应用平台需求。
同时,软件无线电( SDR) 技术作为无线通信的核心也取得了重要突破,SCA(软件通信体系结构)技术经过近二十年发展已逐步趋于成熟并得到广泛应用,并成为了SDR规范[1,2,3]。
SCA定义了高度灵活的开放性架构,标准化功能组件开发、部署、管理接口和行为,对无线电系统互连互通和互操作起到了至关重要的作用。
在采用新型硬件架构和SCA规范设计的多通道通信终端中,大规模逻辑芯片(FPGA)整合了多通道波形算法逻辑,是核心部件之一。如何在重构任意通道波形时不影响其余通道正常工作,是多通道终端适应不同应用场景的关键所在。传统的FPGA重构均采用整体配置方式,即任意逻辑改变均需加载整个配置文件,中断FPGA上所有电路工作,其缺点如下:
(1)整体版本数量随着波形种类增加会成几何倍数增长,对存储空间需求巨大,并且不便于后期功能扩展,每增加一种新波形,需要与以前的波形合并生成多个整体版本,而且对新生成的所有版本都要进行测试验证,工作量巨大。
(2)在任意通道切换波形时,需要加载相应的整体版本,影响其它通道的正常工作。
本文针对多通道SCA通信终端特征,以四通道终端为例,分析了基于SCA架构的四通道通信终端运行机理,研究并提出了FPGA芯片局部重构多种波形的方法,简化了波形重构设计,满足多通道波形并发运行,相互独立需求;并且便于后期功能扩展,每增加一种波形,只需要生成该波形的动态重构版本,不需要与其它波形版本合并,极大减少版本数量和测试工作量。
二、基于SCA的四通道终端架构
2.1硬件架构
四通道通信终端采用多核GPP+多核DSP+大规模FPGA架构实现后端数字域算法解算功能,射频前端采用四个独立信道实现射频信号变换和调整。结构如图1所示。
上图中,PPM(Protocol Process Module,协议处理模块)采用双核PowerPC处理器实现系统资源管理和调度、波形协议处理。WPM(Waveform Process Module,波形处理模块)采用TI公司4核DSP芯片和Xilinx公司的大规模FPGA芯片XC7K325T实现信号解算。RFM(Radio Frequency Module,射频模块)主要实现射频信号变换和调整。
PPM和WPM模块之间通过高速RIO(RapidIO)总线进行通信,其中与DSP相连的总线主要负责数据传输,与FPGA相连的总线主要负责FPGA芯片重构。
2.2软件架构
四通道终端软件采用SCA架构,在通用硬件平台上构建开放式波形软件运行平台,便于波形应用安装、部署和集成,同时也方便技术不断升级[3,4]。
软件平台由核心框架、中间件、总线通信服务、操作系统和底层驱动构成,其作用是为波形应用提供具有标准接口的软硬件资源和服务,使波形应用与底层硬件解耦,一方面使平台具有良好的扩展性,另一方面使波形软件具有很好的移植性。
核心框架(CF,Core Framework)是整个软件平台的核心,为波形应用提供标准的接口和服务,并控制和管理波形应用的安装、加卸载、配置。
2.3 MHAL通信
SCA波形组件分为两类:一类是运行于CORBA总线的组件,部署于GPP上;另一类是DSP/FPGA上的非CORBA(non-CORBA)组件,不能直接挂接在CORBA总线上,通过CORBA适配器MHAL与CORBA组件建立通信连接[4]。CORBA组件与non-CORBA组件之间通信过程如图2所示。
FPGA和DSP上的非CORBA组件之间也通过MHAL进行通信,每个芯片的每个通道分别配置一个MHAL设备,为波形组件屏蔽底层硬件细节,提供通信服务封装。
DSP上每个核运行一个通道的WF-DSP波形组件,FPGA的每个重构区运行一个WF-FPGA波形组件,它们之间并不是固定的关系,通过通道配置,可以实现任意的连接关系,如DSP核0、FPGA重构区2和RF通道4组成一个通道,它们之间数据交互均由MHAL软交换实现。
MHAL消息由IU、LD、Length和Payload四部分组成,采用小端字节序[4]。为了便于MHAL消息寻址,在MHAL消息中定义LD(Logical Destination)字段,用于识别消息的目的端。在SCA终端中,每个MHAL设备都分配唯一的LD。
三、FPGA组件设计
部署于FPGA的组件包括实现波形算法的波形组件,以及管理波形组件的重构管理组件。
3.1资源分配
FPGA选用Xilinx公司大容量XC7K325T芯片,逻辑资源、RAM和时钟资源非常丰富,包含:203800个Slices(每个Slices包含2个触发器和一个LUT),25740k的 FIFO16/ RAM16s,1440个DSP48E,32个GCLKs。
对将要集成的十余种波形进行统计,最大波形的资源需求量均低于该芯片的1/6,考虑到后续功能扩展,因此将FPGA资源分为数量近似的5个区块,每个区块逻辑资源约为600万门。根据芯片的特点:时钟资源BUFG分布于芯片中间,并其呈纵向排列;其它资源均匀对称分布。因此,在FPGA四角位置设置四个重构区,中间部分设置为静态区,这样就能保证静态区与四个重构区之间的逻辑通路近似相等。资源划分如图3所示。
上图中,四个紫色框为动态重构区,部署波形组件。其余区域为静态区,部署静态逻辑,实现对四个动态区波形组件的控制、管理、部署功能,包括时钟管理、复位管理、总线仲裁、MHAL、波形重构管理组件等。动态重构区为波形组件提供SLICE、DSP48E和RAM资源,SLICE提供组合逻辑门和时序逻辑触发器,DSP48提供高性能数字信号处理资源,RAM则提供存储器资源。
3.2 FPGA波形组件
FPGA波形组件实现不同波形相关的算法,处理逻辑各异。为了使在同一个重构区内部署不同的波形组件,必须统一其对外的接口和通信规范。因此,将波形组件划分为两部分,波形容器和波形算法逻辑,如图4所示。波形算法逻辑与波形体制相关,在此不做描述。波形容器主要起桥接作用,对外标准化接口,对内提供波形算法所需接口。
MHAL则负责实现波形组件与其他软硬件组件进行通信,从而达到隔离波形组件与底层硬件的目的。
波形组件与MHAL之间的接口采用标准化设计,采用数据总线实现信息交互。由于,在动态配置的波形组件内不能使用全局时钟BUF、DCM、PLL等时钟元件,以及三态BUF,因此,统计波形组件时序所需时钟数量后,接口上输入5个时钟信号供波形逻辑使用,时钟频率采用片上PLL输出,由DRP端口配置输出不同波形所需的时钟。接口信号如表1所示。
3.3 FPGA波形重构管理组件
FPGA波形重构管理组件主要完成以下功能:
(1)接收并解析来自PPM资源管理组件的FPGA波形配置消息帧,进行CRC校验,如果校验不通过,则回传NCK;否则,将配置文件存入SRAM,回传ACK。
(2)配置消息帧完整接收后,从SRAM中读取配置文件,并通过ICAP配置相应的动态配置区。
(3)配置完毕后,通过DRP端口配置PLL,产生动态区波形所需时钟信号;并产生复位信号复位动态逻辑,然后释放复位,使波形组件正常工作。
四、局部动态重构设计
4.1生成波形库
采用Xilinx公司的FPGA 开发工具PlanAhead[5]生成FPGA波形库,其过程如下:
(1)使用XST综合静态逻辑和动态波形组件生成NGC文件;
(2)创建XPARTION.PXML文件,合并波形NGC和UCF;
(3)利用PlanAhead合成EDIF,将指定的重构区合并到静态部分中的指定位置;
(4)调用PlanAhead生成NGD,然后进行MAP、PAR、DRC,最后生成bin文件。
采用上述方法,生成一个只包含静态逻辑的配置文件(config_static.bin),大小为11.7Mbyte;每种波形生成4个动态配置文件(config_wfxxx_partial_0/1/2/3.bin)分别对应四个重构区块,大小为2Mbyte左右。每个动态重构区配置波形相应的动态配置文件,即可在该动态区实现该波形功能,配置实例如图3所示。静态配置文件和所有波形动态配置文件一起构成了波形库。
4.2波形重构
SCA终端波形库存放于终端PPM的文件系统中,由资源管理组件管理和维护。当终端收到用户控制指令,需要加载波形时,由资源管理组件从波形库中获取文件,通过MHALDevice发送给WPM的波形配置管理组件,实现波形动态配置,在配置期间,其它通道保持正常工作状态不受影响。波形重构过程如下:
(1)PPM的资源管理组件根据配置通道、波形名称从波形库中读取文件,然后将文件分割成若干个1Kbyte数据包,然后对每个数据计算CRC,在依次添加包序号、总包数字段,形成如下格式:
(2)资源管理组件将数据包发给MHALDevice组件,MHALDevice在数据包前添加MHAL帧头(IU、LD、Length)形成MHAL帧,如下所示:
(3)MHALDevice将数据帧通过RIO总线发送给FPGA的MHAL,MHAL将数据帧去除MHAL帧头后,发送给波形重构管理组件;
(4)波形重构管理组件根据包序号和包总数判重和结束包,在根据长度字段提取配置文件数据进行CRC校验,如果校验通过,则写入到SRAM中,回传ACK,通知资源管理组件接收正确,可以继续传输后续包;否则回传NAK,通知资源管理组件接收错误,重传该包;
(5)循环执行上述步骤,直至配置文件传输完毕,波形重构管理组件接收完所有数据包后,从SRAM中读取配置文件通过ICAP配置FPGA动态重构区。
配置成功后,波形重构管理组件根据波形种类配置PLL输出该波形所需的工作时钟,并复位让其处于初始状态,后在释放复位恢复正常工作。
五、实验验证
通过部署界面下发指令,可以在SCA终端任意通道上加载、卸载所有波形。波形部署后与测试终端互通正常,在任意通道上更换波形时,其它通道均能正常通信,相互不影响。并且,波形重构时间更短,仅为传统整体重构时间的1/5;波形库规模更小,以10个波形为例,动态局部重构时,所需存储空间约为92Mbyte,而采用传统波形组合生成整体版本,则需要几个G byte的存储空间。因此在单片FPGA集成多通道波形时,动态局部重构方法具有明显优势。
六、结束语
本文针对新型体系架构多通道SCA通信终端并发应用需求,研究并提出了在SCA架构下局部重构FPGA波形的方法,并在实物环境上实现和测试验证,其结果表明本文设计的方法有效且可行,并具有很好的工程价值,对综合通信系统和终端的设计具有借鉴意义。
参 考 文 献
[1] LEE PUCKER AND GEOFF HOLT. Extending the SCA Core Framework Inside the Modem Architecture of a Software Defined Radio, IEEE Radio Communications, 2004, 0163-6804.
[2] 钟瑜,陈颖,卢建川. 新一代航空数据链端机的SCA 架构设计.电讯技术,2012,1001- 893X( 2012) 04- 0447- 05.
[3] SOFTWARE COMMUNICATIONS ARCHITECTURE SPECIFICATION (SCA), version 2.2.2, 2006.
[4] Modem Hardware Abstraction Layer Application Program Interface (API), Version: 2.13,2010.
[5] Xilinx. Partial Reconfiguration User Guide(UG702),2012.
推荐访问: 终端 技术研究 局部 重构 通道