您当前的位置:五五电子网电子知识单片机-工控设备DSP/FPGA技术基于SCA的软件无线电在FPGA上设计与实现 正文
基于SCA的软件无线电在FPGA上设计与实现

基于SCA的软件无线电在FPGA上设计与实现

点击数:7683 次   录入时间:03-04 11:58:51   整理:http://www.55dianzi.com   DSP/FPGA技术

    本文在分析现有基于SCA的软件无线电在FPGA上实现方案优缺点的基础上,提出了一种基于FPGA的CORBA通信系统设计方案,有效克服了原有实现方案的缺点,不但为FPGA上的波形组件提供了良好的可重用性、可移植性和动态部分重配置的支持,而且还有效提高了FPGA硬件资源的使用效率,降低了通用处理器的工作负担。最后,针对该设计方案搭建了硬件平台,并给出了系统的性能测试结果,测试结果表明此设计方案是行之有效的。
关键词:软件通信体系架构;软件无线电;对象请求代理;GIOP;FPGA

    引言
    自1992年Jeo Mitola中提出了软件无线电(SOFtware Defined Radio,SDR)的概念以来,有许多公司和团体致力于SDR的研究和开发,并取得了一定成果。但由于没有统一的标准,各研发单位采用各自不同的解决方案和实现架构,从而导致了不同制造商的SDR波形组件相互不兼容,难以实现互连、互通、互操作,不能进行有效的协同工作,而且也不容易实现重配置。为了解决这些问题,美军JTRS(Joint TactICal Radio System)JPEO(Joint Program Executive Office)制定了软件通信体系架构(Soltware CommLmication Arehitecture,SCA)规范,用以实现不同波形组件间的可移植性,以降低开发费用、缩短开发时间。SCA基于POSIX、CORBA(Common Obiect Request Broker Architecture)和面向对象等技术,提高了SDR的互操作性以及波形组件的可移植性和可重用性,并获得了GPP(General Purpose Processor)的良好支持,使基于SCA的SDR在GPP上能够很好地实现。
    随着对无线通信带宽、速率等提出的更高要求,GPP受工作方式、处理能力的限制,难以满足这些要求,这就需要FPGA(FiELD Program-mable Gate Array)的加入来实现波形组件的并行处理和高速运算等功能。虽然SCA为GPP上的波形组件提供了很好的可移植性和可重用性,但目前还没有一个标准能够为FPGA上的波形组件提供这种支持。为了实现FPGA上波形组件的可移植性和可重用性,一些方案是在GPP上实现FPGA上波形组件的代理,其中比较典型的是JTRS JPEO提出的MHAL(Modem Hardware Abstraction Layer),同时,也有部分公司或团体提出了直接在FPGA上实现CORBA的方案。本文将在分析MHAL和现存的CORBA方案优缺点的基础上,提出一种在FPGA上实现CORBA的改进设计方案,并对该方案进行了测试验证。

1 技术介绍
1.1 CORBA简介
    CORBA中间件标准是SCA必需的中间件层,它为SDR系统提供所需的通信架构。CORBA位于应用程序和操作系统之间,屏蔽了不同平台、操作系统、网络协议等的差别,为开发者提供了一致的调用模式。通过CORBA,应用组件可以获得良好的可移植性、可重用性和互操作性。
    ORB(Object ReqLTEst Broker)是CORBA的核心,其任务是帮助客户调用对象上的方法,包括:定位对象、激活对象、把客户的请求传递给对象。ORB能够屏蔽与底层平台有关的细节,保证了信息在分布式环境中不同平台上的应用组件间透明地传输。为了使由不同开发者开发的实现之间能相互通信,CORBA规范定义了GIOP(General Inter-ORB Protocol)协议标准,能够在任何具有连接的传输层上实现。
1.2 SCA简介
    SCA是美军在JTRS中制定的软件通信架构标准,是JTRS的主干。SCA通过面向对象方法划分软件/硬件结构,建立了开放的系统标准,提供了与具体实现无关的软件无线电开发框架,保证了软、硬件的可移植、可重构及设备的互操作性。SCA规范包含软件体系结构定义、硬件体系结构定义、安全体系结构定义和应用程序接口(API)四部分。
    通过SCA所定义的分布式构件规范,可将应用与操作环境分离,同时使应用功能模块化,并为管理和使用软件构件定义了通用接口,通用业务和API以支持软/硬件模块移植。

2 现有实现方案分析
    GPP处理器受其处理能力的限制,无法满足当前通信业务需求,使通信设备越来越多地依靠DSP(Digital Signal Processor)、FPGA等专用处理器来完成高速的数据处理任务,这就使SDR系统的设计和实现必须面对由GPP,DSP和FPGA共同组成的多处理器平台。虽然通过使用COR BA中间件技术可以很容易地实现分布式波形应用,但由于CORBA标准是针对GPP的,在DSP,FPGA等处理器上没有相应的标准可用。这导致SCA /SDR的研究焦点分别集中在应用程序接口(API)和商用中间件上,使SCA/SDR的设计和实现出现了两种主要模式:使用使用硬件抽象层(如MHAL)和使用分布式中间件技术(如CORBA)。
2.1 使用MHAL方式实现的SCA/SDR系统
    MHAL是JTRS JPEO提出的一种基于硬件抽象层的解决方案。其实现方法是通过在核心框架与FPGA之间加入代理,并明确规范代理与FPGA之间的数据格式来实现FPGA在SCA中的应用的。图1是以MHAL方式实现的分布式SCA/SDR系统布局结构示意图。这种方式下,GPP需要为FPGA上的每个波形组件实现一个代理,以实现分布式波形组件间的通信。通过使用代理,系统可以将FPGA上的波形组件当作GPP上的波形组件一样处理,这样就可以实现对FPGA上波形组件的灵活、高效的管理和使用。

a.jpg


    在FPGA上实现的MHAL波形组件并通过接收带参数的操作来调用波形组件所实现的功能,虽然这样的实现方式对于FPGA开发人员而言,可以减小编写波形组代码的难度,但对于GPP开发人员来说,却要在GPP上为每个FPGA上的波形组件实现一个组件代理,大大增加了开发的负担。而且这这种实现方式也必然会相应地增加GPP的运行负担以及内存资源占用,同时,在进行GPP上的波形组件与FPGA上的波形组件问通信时,必须要经过组件代理的处理,实现GIOP报文与MHAL报文格式的转换,这也就必然会给整个通信过程引入一定的延迟的增加、吞吐量的降低和低层次的重用。



www.55dianzi.com
    而且,在以MHAL方式实现的SCA/SDR系统中,开发者需要在GPP上设计实现适配器来完成GIOP报文和MHAL报文的转换,以便使用CORBA
机制的波形组件和使用MHAL机制的波形组件间的通信。但对于适配器的实现,目前还没有统一的标准,而且,MHAL也不是一个针对通用市场的可用标准,它受到ITARS(International TraffIC in Arins Regulations)限制,其实现细节并不公开,且MHAL报文结构的细节并不足以完成波形组件的实际需要,从而必然会导致不同的MHAL实现方式,且彼此间相互不兼容,这也必然会破坏MHAL波形组件的可移植性和可重用性。
2.2 使用CORBA方式实现的SCA/SDR系统
    由于GPP上的波形组件是使用CORBA实现的,所以只要将CORBA扩展到DSP和FPGA上,就能够很容易地实现布署在各种类型处理器上的波形组件间的通信。图2是以CORBA方式实现的分布式SCA/SDR系统布局结构示意图。在以CORBA方式实现的SCA/SDR系统中,GPP保持原有状态即可,而DSP和FPGA上的ORB负责完成CORBA报文的处理。这使系统中所有波形组件使用CORBA中间件进行通信,而不需要在GPP上实现代理,不仅减轻了GPP的运行负担以及内存资源占用,而且系统中波形组件间的通信不再需要通过代理的转换,从而也就降低了通信时延,提高了通信效率。

b.jpg


    同时,CORBA为不同类型的处理器提供统一的通信架构,使任何组件都能够以简单的函数调用方式获得分布于系统中的其他组件的服务。软件客户端和硬件服务程序之间由此变得连接无缝、快速并且使用较少的系统资源。与MHAL实现方式相比,该架构提供了波形组件的移动性和位置透明性,使得在同一处理器与在远程处理器中调用对象相比没有什么差别,使设计人员可以很容易地将波形组件从一个处理器中转移到另一个处理器中。这意味着,设计人员一开始可以在他们的工作站上构建SDR,然后很容易地将部件一块块转移到GPP、DSP和FPGA上,来优化系统总性能。
    虽然使用CORBA方式实现的SCA/SDR既保持SCA的兼容性,又减小了传输负载,而且,开发者也无需开发通用GPP上的定制代理。但由于FPGA的设计实现方式与GPP完全不同,其编程主要集中于底层硬件,往往同特定的可编程资源紧密联系在一起,而且FPGA不能提供等效的操作系统中虚拟地址等机制,从而使FPGA上CORBA功能的实现比较困难。目前为止,在FPGA上实现ORB的主要的方案有以下两种:
    (1)Prismtech公司开发了一款集成电路ORB(ICO)产品,该产品提供了一个使用VHDL语言编写的ORB模块,能够运行于Xilinx,ALTEra等公司的多款FPGA上。整个产品包括ORB引擎、IDL-to-VHDL代码产生器和SCA应用组件等几个部分。ORB引擎负责GIOP报文的解析和封装,对于到达的GIOP请求报文,ORB引擎对报文中的对象键值、操作名称、参数等信息进行解析,然后将数据传递给特定的FPGA逻辑模块进行处理;如果处理结果需要向外部发送,则ORB引擎根据预先获得的一些信息,将结果封装为GIOP请求报文或应答报文,并通过网络进行传输。
    尽管ICO实现了FPGA程序与分布式系统的直接ORB通信,但由于其ORB引擎的实现代码是由IDL-to-VHDL代码生成器根据特定的应用生成的,这就使其ORB引擎的实现逻辑与特定的FPGA应用程序密切相关,从而也就导致了ORB的引擎不具备通用性。一旦FPGA的应用程序做了修改,原有的ORB引擎往往无法对新应用程序的GIOP报文进行正确的解析和封装,此时必须再次使用IDL-to-VHDL代码生成器重新生成新的逻辑。目前有很多FPGA在硬件上已经具备了部分重配置功能,而且有一部分分布式应用,也需要实现FPGA的动态部分重配置,这就需要在动态改变FPGA部分逻辑功能的同时,依然保持ORB引擎和其他FPGA模块的正常工作,但ICO与FPGA应用程序的紧密相关性使这一功能无法实现。

[1] [2]  下一页


本文关键字:无线电  软件  DSP/FPGA技术单片机-工控设备 - DSP/FPGA技术