一种FPGA实现ORB的方法技术

技术编号:29964314 阅读:20 留言:0更新日期:2021-09-08 09:29
本发明专利技术公开了一种FPGA实现ORB的方法,其包括以下步骤:S1、将外部报文作为初始报文发送至ORB适配器;S2、通过ORB适配器对初始报文进行解析得到第二报文;S3、通过消息处理器对第二报文进行解析得到第三报文;S4、将来自波形应用模块的报文作为第四报文,通过消息处理器对第四报文进行转换与封装得到第五报文;S5、通过ORB适配器对第五报文进行转换与封装得到第六报文,将第六报文向外发送,完成FPGA实现ORB。本发明专利技术增加了FPGA实现ORB时的资源利用率、应用组件的易开发性、通用性和灵活性。通用性和灵活性。通用性和灵活性。

【技术实现步骤摘要】
一种FPGA实现ORB的方法


[0001]本专利技术涉及通信领域,具体涉及一种FPGA实现ORB的方法。

技术介绍

[0002]SCA是美军在JTRS(Joint Tactical Radio System,联合作战无线系统)中制定的一种软件通信架构标准,其通过面向对象方法划分软硬件结构,建立起开放的系统标准,从而提供与具体实现无关的软件无线电开发框架,保证了软、硬件的可移植、可重构以及设备的互操作性。
[0003]SCA基于CORBA(Common Object Request Broker Architecture)等面向对象等技术,提高了软件定义无线电技术的互操作性和波形组件的可重用性、可一直性。并且在GPP(General Purpose Processor)上能够很好地实现。然而,随着无线通信的发展,其对带宽和速度等提出了更高的要求,GPP受工作方式和处理能力的限制,无法满足依靠DSP(Digital Signal Processor)、FPGA等专用处理器来完成高速数据处理任务的需求。
[0004]针对这一现状,目前存在3种在FPGA实现ORB的产品或方法(ORB,Object Request Broker,是CORBA的核心,其任务是帮助客户调用对象上的方法,包括:定位对象、激活对象、把客户的请求传递给对象)。
[0005](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代码生成器生成新的逻辑。
[0006](2)OIS公司在一项专利中提出了一种新的基于FPGA的CORBA实现方法。该方法将ICO的ORB引擎的划分为ORB接收模块、ORB发送模块、接收操作适配器和发送操作适配器共4个功能模块。其中ORB接收模块和ORB发送模块仅负责解析和封装GIOP的报文头信息,而接收操作适配器和发送操作适配器负责解析和封装与每个应用模块相关的操作名称和参数。这样,每个应用模块都有自己专属的处理操作名称和参数的处理单元,从而保证FPGA上应用模块的灵活性和通用性,也可以满足部分重配置的需求。然而,这种方式必须为每个应用模块实现一个接收操作适配器和一个发送操作适配器,导致了应用模块的实现的复杂性,增加了应用模块的开发人员的负担;同时,FPGA内部各应用模块之间的信息传递必须经过发送操作适配器和接收发送操作适配器的处理,这必然限制了FPGA内外数据传输的高速需
求;并且,当一块FPGA中运行的应用模块数量较多时,将浪费大量的计算资源和存储资源用于处理操作名称和参数,无法实现硬件资源的有效利用。
[0007](3)中国人民解放军大学在2011年的一项专利《基于FPGA的COBAR通信装置》中提出了一种优化的FPGA实现COBAR方案。在该方法中,其核心是将ORB的实现,分成了主解析模块、主封装模块、互联模块、以及若干子解析模块和若干子封装模块。其中主解析模块负责接收外部(其他处理器)来的数据信息,主封装模块负责向外部发送数据信息,互联模块负责主解析模块和子解析模块、主封装模块和子封装模块的互联。该方案在一定程度上提高了FPGA的通用性和适用性,但存在模块结构多、FPGA开发实现复杂等问题,尤其是随着子解析模块和子封装模块的增多,互联模块的实现将占用较大的硬件资源,同时该方案中存在未解决高速通信下多个报文来时的处理问题,存在丢失报文的缺陷。

技术实现思路

[0008]针对现有技术中的上述不足,本专利技术提供的一种FPGA实现ORB的方法增加了FPGA实现ORB时的资源利用率、应用组件的易开发性、通用性和灵活性。
[0009]为了达到上述专利技术目的,本专利技术采用的技术方案为:
[0010]提供一种FPGA实现ORB的方法,其包括以下步骤:
[0011]S1、接收外部报文,并将外部报文作为初始报文发送至ORB适配器;
[0012]S2、通过ORB适配器对初始报文进行解析得到第二报文,并将第二报文发送至消息处理器;
[0013]S3、通过消息处理器对第二报文进行解析得到第三报文,并将第三报文发送至波形应用模块;
[0014]S4、将来自波形应用模块的报文作为第四报文,通过消息处理器对第四报文进行转换与封装得到第五报文,将第五报文发送至ORB适配器;
[0015]S5、通过ORB适配器对第五报文进行转换与封装得到第六报文,将第六报文向外发送,完成FPGA实现ORB。
[0016]进一步地,步骤S2的具体方法包括以下子步骤:
[0017]S2

1、通过ORB适配器获取初始报文的GIOP信息,并根据GIOP信息判断初始报文是否为请求报文,若是则进入步骤S2

2,否则进入步骤S2

4;
[0018]S2

2、获取初始报文的请求标识号、应答标识、对象目标值、操作函数名,将初始报文的对象目标值进行标准化处理,形成固定长度的应用模块地址;对初始报文的操作函数名进行转换,得到第一操作函数编码;
[0019]S2

3、将应用模块地址、第一操作函数编码以及初始报文的报文信息进行拼接,并在拼接结果的最前端加上报文标识位,将请求标识号、应答标识和加上报文标识位的数据作为第二报文,将第二报文发送至消息处理器并进入步骤S3;
[0020]S2

4、获取初始报文的应答标识号和应答状态,将初始报文后续应答报文内容拼接在报文标识位,将应答标识号、应答状态和拼接了初始报文后续的应答报文内容的数据作为第二报文,将第二报文发送至消息处理器并进入步骤S3;其中初始报文后续的应答报文内容包括函数调用完成后返回的函数参数。
[0021]进一步地,步骤S2

2中对初始报文的操作函数名进行转换的具体方法包括以下子
步骤:
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种FPGA实现ORB的方法,其特征在于,包括以下步骤:S1、接收外部报文,并将外部报文作为初始报文发送至ORB适配器;S2、通过ORB适配器对初始报文进行解析得到第二报文,并将第二报文发送至消息处理器;S3、通过消息处理器对第二报文进行解析得到第三报文,并将第三报文发送至波形应用模块;S4、将来自波形应用模块的报文作为第四报文,通过消息处理器对第四报文进行转换与封装得到第五报文,将第五报文发送至ORB适配器;S5、通过ORB适配器对第五报文进行转换与封装得到第六报文,将第六报文向外发送,完成FPGA实现ORB。2.根据权利要求1所述的FPGA实现ORB的方法,其特征在于,步骤S2的具体方法包括以下子步骤:S2

1、通过ORB适配器获取初始报文的GIOP信息,并根据GIOP信息判断初始报文是否为请求报文,若是则进入步骤S2

2,否则进入步骤S2

4;S2

2、获取初始报文的请求标识号、应答标识、对象目标值、操作函数名,将初始报文的对象目标值进行标准化处理,形成固定长度的应用模块地址;对初始报文的操作函数名进行转换,得到第一操作函数编码;S2

3、将应用模块地址、第一操作函数编码以及初始报文的报文信息进行拼接,并在拼接结果的最前端加上报文标识位,将请求标识号、应答标识和加上报文标识位的数据作为第二报文,将第二报文发送至消息处理器并进入步骤S3;S2

4、获取初始报文的应答标识号和应答状态,将初始报文后续应答报文内容拼接在报文标识位,将应答标识号、应答状态和拼接了初始报文后续的应答报文内容的数据作为第二报文,将第二报文发送至消息处理器并进入步骤S3;其中初始报文后续的应答报文内容包括函数调用完成后返回的函数参数。3.根据权利要求2所述的FPGA实现ORB的方法,其特征在于,步骤S2

2中对初始报文的操作函数名进行转换的具体方法包括以下子步骤:S2
‑2‑
1、通过ORB适配器查找公用操作函数列表,判断初始报文的操作函数名与公用操作函数列表中的公用操作函数名是否一致,若是则将公用操作函数列表中的公用操作函数编码代替初始报文的操作函数名,得到第一操作函数编码;否则进入步骤S2
‑2‑
2;S2
‑2‑
2、通过ORB适配器查找私用操作函数列表,判断初始报文的操作函数名与私用操作函数列表中的私用操作函数名是否一致,若是则将私用操作函数列表中的私用操作函数编码代替初始报文的操作函数名,并在代替后的私用操作函数编码前添加与公用操作函数编码对应长度的数值0,得到第一操作函数编码;否则舍弃当前报文。4.根据权利要求1所述的FPGA实现ORB的方法,其特征在于,步骤S3的具体方法包括以下子步骤:S3

1、通过消息处理器根据报文标识位判断第二报文是否为请求报文,若是则进入步骤S3

2,否则进入步骤S3

4;S3

2、从第二报文中解析出应用模块地址,判断解析出的应用模块地址与消息处理器所对应的波形应用模块地址是否一致,若是则进入步骤S3

3;否则舍弃第二报文;
S3

3、解析并对第二报文中的操作函数编码进行转换,得到第二操作函数编码;将报文标识位的数据、第二操作函数编码以及第二报文的报文信息进行拼接得到第三报文,将第三报文发送至波形应用模块并进入步骤S4;S3

4、将第二报文后续的应答报文内容进行标准化处理,将报文标识位的数据和标准化处理得到的数据进行拼接得到第三报文,将第三报文发送至波形应用模块并进入步骤S4。5.根据权利要求4所述的FPGA实现ORB的方法,其特征在于,步骤S3

3中解析并对第二报文中的操作函数编码进行转换的具体方法包括以下子步骤:S3
‑3‑
1、通过消息处理器解析第二报文中的操作函数编码,查找消息处理器中存储的公用操作函数列表,判断第二报文的操作函数名与公...

【专利技术属性】
技术研发人员:邵力强徐远泽袁瑞
申请(专利权)人:成都谐盈科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1