摘要:在分析现有基于SCA的软件无线电在FPGA上实现方案优缺点的基础上,提出了一种基于FPGA的CORBA通信系统设计方案,有效克服了原有实现方案的缺点,不但为FPGA上的波形组件提供了良好的可重用性、可移植性和动态部分重配置的支持,而且还有效提高了FPGA硬件资源的使用效率,降低了通用处理器的工作负担。最后,针对该设计方案搭建了硬件平台,并给出了系统的性能测试结果,测试结果表明此设计方案是行之有效的。
关键词:软件通信体系架构;软件无线电;对象请求代理;GIOP;FPGA
0 引言
自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上波形组件的灵活、高效的管理和使用。
在FPGA上实现的MHAL波形组件并通过接收带参数的操作来调用波形组件所实现的功能,虽然这样的实现方式对于FPGA开发人员而言,可以减小编写波形组代码的难度,但对于GPP开发人员来说,却要在GPP上为每个FPGA上的波形组件实现一个组件代理,大大增加了开发的负担。而且这这种实现方式也必然会相应地增加GPP的运行负担以及内存资源占用,同时,在进行GPP上的波形组件与FPGA上的波形组件问通信时,必须要经过组件代理的处理,实现GIOP报文与MHAL报文格式的转换,这也就必然会给整个通信过程引入一定的延迟的增加、吞吐量的降低和低层次的重用。
摘要:在分析现有基于SCA的软件无线电在FPGA上实现方案优缺点的基础上,提出了一种基于FPGA的CORBA通信系统设计方案,有效克服了原有实现方案的缺点,不但为FPGA上的波形组件提供了良好的可重用性、可移植性和动态部分重配置的支持,而且还有效提高了FPGA硬件资源的使用效率,降低了通用处理器的工作负担。最后,针对该设计方案搭建了硬件平台,并给出了系统的性能测试结果,测试结果表明此设计方案是行之有效的。
关键词:软件通信体系架构;软件无线电;对象请求代理;GIOP;FPGA
0 引言
自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上波形组件的灵活、高效的管理和使用。
在FPGA上实现的MHAL波形组件并通过接收带参数的操作来调用波形组件所实现的功能,虽然这样的实现方式对于FPGA开发人员而言,可以减小编写波形组代码的难度,但对于GPP开发人员来说,却要在GPP上为每个FPGA上的波形组件实现一个组件代理,大大增加了开发的负担。而且这这种实现方式也必然会相应地增加GPP的运行负担以及内存资源占用,同时,在进行GPP上的波形组件与FPGA上的波形组件问通信时,必须要经过组件代理的处理,实现GIOP报文与MHAL报文格式的转换,这也就必然会给整个通信过程引入一定的延迟的增加、吞吐量的降低和低层次的重用。
摘要:在分析现有基于SCA的软件无线电在FPGA上实现方案优缺点的基础上,提出了一种基于FPGA的CORBA通信系统设计方案,有效克服了原有实现方案的缺点,不但为FPGA上的波形组件提供了良好的可重用性、可移植性和动态部分重配置的支持,而且还有效提高了FPGA硬件资源的使用效率,降低了通用处理器的工作负担。最后,针对该设计方案搭建了硬件平台,并给出了系统的性能测试结果,测试结果表明此设计方案是行之有效的。
关键词:软件通信体系架构;软件无线电;对象请求代理;GIOP;FPGA
0 引言
自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上波形组件的灵活、高效的管理和使用。
在FPGA上实现的MHAL波形组件并通过接收带参数的操作来调用波形组件所实现的功能,虽然这样的实现方式对于FPGA开发人员而言,可以减小编写波形组代码的难度,但对于GPP开发人员来说,却要在GPP上为每个FPGA上的波形组件实现一个组件代理,大大增加了开发的负担。而且这这种实现方式也必然会相应地增加GPP的运行负担以及内存资源占用,同时,在进行GPP上的波形组件与FPGA上的波形组件问通信时,必须要经过组件代理的处理,实现GIOP报文与MHAL报文格式的转换,这也就必然会给整个通信过程引入一定的延迟的增加、吞吐量的降低和低层次的重用。
4 方案实现与测试验证
为了验证改进后设计方案的可行性和合理性,在图5所示的硬件平台上对该方案进行了实现和性能测试。其中PC计算机用作为数据源和接收终端,实现视频和测试数据产生并接收显示视频和校对测试数据;ARM上运行VxWorks 5.5操作系统,使用TAO来提供CORBA功能,实现CORBA报文的封装和解析;FPGA运行根据前面所描述的改进方案所实现的ORB,完成CORBA报文数据的解析、处理和封装。测试过程中,首先由PC计算机产生视频或测试数据,并通过Ethernet传送给ARM处理器,ARM处理器上运行的应用程序将其封装成CORBA报文后发送给FPGA,FPGA接收到CORBA报文后对其进行解析,并对净荷数据进行处理后重新封装为CORBA报文后再发送给ARM处理器,ARM接收到FPGA发送到CORBA报文后对其进行解析处理后将数据发送给PC计算机,最终由PC计算机对接收到到数据进行视频解码显示或校对检测。
验证过程中先后在FPGA上实现了波形组件间的建立连接操作(connectPort)、数据传递(pushPaeket),波形组件参数配置(configure)和波形组件参数查询(query)四个操作,并在波形组件到参数设置和查询操作中完成short,float,double,string等类型的支持。通过测试,系统所实现的各种功能均符合设计需要。此外,还分别实现建立连接、数据传递2个操作与实现建立连接、数据传递、参数配置、参数查询4个操作两种情况对FPGA上对资源占用进行了比较,其结果见表1。从表中所得到的数据可以看出,在FPGA中实现对CORBA报文的操作以及参数进行解析、封装处理非常耗费硬件资源。这主要是由于CORBA报文中使用的公共数据表示(CDR)来描绘所要传输的数据类型所引起的,其也从一个方面证明了OIS公司所设计的为每个波形组件都实现一个接收操作适配器和发送操作适配器将极其耗费硬件资源,这在实际应用中是不能被接受的。
5 结论
本文在分析现有的解决方案优缺点的基础上提出了一种在FPGA上实现ORB的改进设计方案,不但为彼此分离的、工作于多处理器平台上的各个GPP,DSP和FPGA开发小组提供了通用的CORBA通信机制,实现波形组件的位置透明性;还克服了现有的FPGA上实现ORB方案的缺点,使FPGA上实现的ORB既可以支持动态部分重配置,又使波形组件开发人员尽可能少地处理ORB相关的工作,大大简化了波形组件开发人员所承担的开发任务。最终,所提出的改进设计方案在实验平台进行了实现与验证,测试结果也表明了此方案的合理性和可行性。
上一篇:基于STM32和CPLD的等精度测频设计
下一篇:基于FPGA的PEX8311的LBS控制器的实现
- 热门资源推荐
- 热门放大器推荐