在实际应用中,实现各种波形的应用模块一般需要支持初始化、参数配置、参数查询、建立连接、断开连接、启动、停止、数据传递等操作功能,所以在改进后的方案中,根据应用模块的实际需要抽象出一组与上述操作相对应的操作名称:initialize,configcIre,query,connectPort,disconnectPort,start,stop,pushPACket等,可称之为公有操作。公有操作名称的识别和处理由ORB主适配器完成。另外,对那些只是个别应用模块所实现的操作,可称之为私有操作,其识别和处理则由应用模块的ORB辅助适配器完成。各模块发所实现的功能
如下:
ORB主适配器(ORB Mian Adapter)实现的功能包括两个方面:一是解析接收到的GIOP报文信息,从接收到到报文信息中抽取出GIOP报文头和数据域,丢弃填充域。在该过程中,ORB主适配器需要基于GIOP报文头信息所提供的协议版本和数据大小端标志完成报文格式的识别和数据的大小端转换。需要注意的是GIOP报文中的ObjecKey和Operation Name段均是变长的信息,为了便于后续处理,需要在ORB主适配器的处理过程中将它们转换为固定的编码,其中ObjectKey转换为用于标识应用模块的地址编码,而Operation Name则转换为与之对应的控制信息;二是封装需要发送到GIOP报文信息,负责从应用模块的数据总线和控制总线接收数据与控制信息,然后加上GIOP报文头,将控制信息转换为相应的操作名称,填充对齐数据等完成GIOP报文信息封装,之后通过FIFO等类似的接口将数据传送出去。
交叉开关(Crossbar Switch)实现的功能是根据接收到的地址编码完成控制信息和数据的转发。
ORB辅助适配器(ORB Assistant Adapter)实现的功能与ORB主适配器类似,也包括两个方面:一是接收来自交叉开关的控制信息,若调用调用的是应用模块的私有操作,则将此操作名称转换为相应的操作编码后发送给给交叉开关,否则,直接将控制信息转发给应用模块;二是接收来自应用模块的控制信息,当应用模块调用私有操作时,则将操作编码转换为相应的私有操作名称后发送给给交叉开关,否则,直接将控制信息转发给交叉开关。
应用模块(Application Module)根据控制信息完成对数据的处理,给出处理结果。
图4为CORBA请求报文的接收处理流程。
在根据改进后设计方案所实现的系统中,GPP上的应用将保持原有状态,不会引人任何额外的处理负担和处理延迟。FPGA上由ORB主适配器统一完成各个应用模块的公有操作,在减小FPGA硬件资源的浪费的同时也减轻了应用模块开发的负担。应用模块预留有私有操作处理接口,可对其实现的私有操作进行扩展,从而也保证了应用模块的灵活性和动态部分重配置功能的实现;而且,FPGA上各应用模块间的数据传递不需要额外的处理,也满足了高速处理的要求。