基于FPGA的CORBA通信系統(tǒng)設(shè)計(jì)方案
掃描二維碼
隨時(shí)隨地手機(jī)看文章
0 引言
自1992年Jeo Mitola中提出了軟件無(wú)線(xiàn)電(Software Defined Radio,SDR)的概念以來(lái),有許多公司和團(tuán)體致力于SDR的研究和開(kāi)發(fā),并取得了一定成果。但由于沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),各研發(fā)單位采用各自不同的解決方案和實(shí)現(xiàn)架構(gòu),從而導(dǎo)致了不同制造商的SDR波形組件相互不兼容,難以實(shí)現(xiàn)互連、互通、互操作,不能進(jìn)行有效的協(xié)同工作,而且也不容易實(shí)現(xiàn)重配置。為了解決這些問(wèn)題,美軍JTRS(Joint Tactical Radio System)JPEO(Joint Program Executive Office)制定了軟件通信體系架構(gòu)(Soltware CommLmication Arehitecture,SCA)規(guī)范,用以實(shí)現(xiàn)不同波形組件間的可移植性,以降低開(kāi)發(fā)費(fèi)用、縮短開(kāi)發(fā)時(shí)間。SCA基于POSIX、CORBA(Common Obiect Request Broker Architecture)和面向?qū)ο蟮燃夹g(shù),提高了SDR的互操作性以及波形組件的可移植性和可重用性,并獲得了GPP(General Purpose Processor)的良好支持,使基于SCA的SDR在GPP上能夠很好地實(shí)現(xiàn)。
隨著對(duì)無(wú)線(xiàn)通信帶寬、速率等提出的更高要求,GPP受工作方式、處理能力的限制,難以滿(mǎn)足這些要求,這就需要FPGA(Field Program-mable Gate Array)的加入來(lái)實(shí)現(xiàn)波形組件的并行處理和高速運(yùn)算等功能。雖然SCA為GPP上的波形組件提供了很好的可移植性和可重用性,但目前還沒(méi)有一個(gè)標(biāo)準(zhǔn)能夠?yàn)镕PGA上的波形組件提供這種支持。為了實(shí)現(xiàn)FPGA上波形組件的可移植性和可重用性,一些方案是在GPP上實(shí)現(xiàn)FPGA上波形組件的代理,其中比較典型的是JTRS JPEO提出的MHAL(Modem Hardware Abstraction Layer),同時(shí),也有部分公司或團(tuán)體提出了直接在FPGA上實(shí)現(xiàn)CORBA的方案。本文將在分析MHAL和現(xiàn)存的CORBA方案優(yōu)缺點(diǎn)的基礎(chǔ)上,提出一種在FPGA上實(shí)現(xiàn)CORBA的改進(jìn)設(shè)計(jì)方案,并對(duì)該方案進(jìn)行了測(cè)試驗(yàn)證。
1 技術(shù)介紹
1.1 CORBA簡(jiǎn)介
CORBA中間件標(biāo)準(zhǔn)是SCA必需的中間件層,它為SDR系統(tǒng)提供所需的通信架構(gòu)。CORBA位于應(yīng)用程序和操作系統(tǒng)之間,屏蔽了不同平臺(tái)、操作系統(tǒng)、網(wǎng)絡(luò)協(xié)議等的差別,為開(kāi)發(fā)者提供了一致的調(diào)用模式。通過(guò)CORBA,應(yīng)用組件可以獲得良好的可移植性、可重用性和互操作性。
ORB(Object ReqLtest Broker)是CORBA的核心,其任務(wù)是幫助客戶(hù)調(diào)用對(duì)象上的方法,包括:定位對(duì)象、激活對(duì)象、把客戶(hù)的請(qǐng)求傳遞給對(duì)象。ORB能夠屏蔽與底層平臺(tái)有關(guān)的細(xì)節(jié),保證了信息在分布式環(huán)境中不同平臺(tái)上的應(yīng)用組件間透明地傳輸。為了使由不同開(kāi)發(fā)者開(kāi)發(fā)的實(shí)現(xiàn)之間能相互通信,CORBA規(guī)范定義了GIOP(General Inter-ORB Protocol)協(xié)議標(biāo)準(zhǔn),能夠在任何具有連接的傳輸層上實(shí)現(xiàn)。
1.2 SCA簡(jiǎn)介
SCA是美軍在JTRS中制定的軟件通信架構(gòu)標(biāo)準(zhǔn),是JTRS的主干。SCA通過(guò)面向?qū)ο蠓椒▌澐周浖布Y(jié)構(gòu),建立了開(kāi)放的系統(tǒng)標(biāo)準(zhǔn),提供了與具體實(shí)現(xiàn)無(wú)關(guān)的軟件無(wú)線(xiàn)電開(kāi)發(fā)框架,保證了軟、硬件的可移植、可重構(gòu)及設(shè)備的互操作性。SCA規(guī)范包含軟件體系結(jié)構(gòu)定義、硬件體系結(jié)構(gòu)定義、安全體系結(jié)構(gòu)定義和應(yīng)用程序接口(API)四部分。
通過(guò)SCA所定義的分布式構(gòu)件規(guī)范,可將應(yīng)用與操作環(huán)境分離,同時(shí)使應(yīng)用功能模塊化,并為管理和使用軟件構(gòu)件定義了通用接口,通用業(yè)務(wù)和API以支持軟/硬件模塊移植。
2 現(xiàn)有實(shí)現(xiàn)方案分析
GPP處理器受其處理能力的限制,無(wú)法滿(mǎn)足當(dāng)前通信業(yè)務(wù)需求,使通信設(shè)備越來(lái)越多地依靠DSP(Digital Signal Processor)、FPGA等專(zhuān)用處理器來(lái)完成高速的數(shù)據(jù)處理任務(wù),這就使SDR系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)必須面對(duì)由GPP,DSP和FPGA共同組成的多處理器平臺(tái)。雖然通過(guò)使用COR BA中間件技術(shù)可以很容易地實(shí)現(xiàn)分布式波形應(yīng)用,但由于CORBA標(biāo)準(zhǔn)是針對(duì)GPP的,在DSP,F(xiàn)PGA等處理器上沒(méi)有相應(yīng)的標(biāo)準(zhǔn)可用。這導(dǎo)致SCA /SDR的研究焦點(diǎn)分別集中在應(yīng)用程序接口(API)和商用中間件上,使SCA/SDR的設(shè)計(jì)和實(shí)現(xiàn)出現(xiàn)了兩種主要模式:使用使用硬件抽象層(如MHAL)和使用分布式中間件技術(shù)(如CORBA)。
2.1 使用MHAL方式實(shí)現(xiàn)的SCA/SDR系統(tǒng)
MHAL是JTRS JPEO提出的一種基于硬件抽象層的解決方案。其實(shí)現(xiàn)方法是通過(guò)在核心框架與FPGA之間加入代理,并明確規(guī)范代理與FPGA之間的數(shù)據(jù)格式來(lái)實(shí)現(xiàn)FPGA在SCA中的應(yīng)用的。圖1是以MHAL方式實(shí)現(xiàn)的分布式SCA/SDR系統(tǒng)布局結(jié)構(gòu)示意圖。這種方式下,GPP需要為FPGA上的每個(gè)波形組件實(shí)現(xiàn)一個(gè)代理,以實(shí)現(xiàn)分布式波形組件間的通信。通過(guò)使用代理,系統(tǒng)可以將FPGA上的波形組件當(dāng)作GPP上的波形組件一樣處理,這樣就可以實(shí)現(xiàn)對(duì)FPGA上波形組件的靈活、高效的管理和使用。
在FPGA上實(shí)現(xiàn)的MHAL波形組件并通過(guò)接收帶參數(shù)的操作來(lái)調(diào)用波形組件所實(shí)現(xiàn)的功能,雖然這樣的實(shí)現(xiàn)方式對(duì)于FPGA開(kāi)發(fā)人員而言,可以減小編寫(xiě)波形組代碼的難度,但對(duì)于GPP開(kāi)發(fā)人員來(lái)說(shuō),卻要在GPP上為每個(gè)FPGA上的波形組件實(shí)現(xiàn)一個(gè)組件代理,大大增加了開(kāi)發(fā)的負(fù)擔(dān)。而且這這種實(shí)現(xiàn)方式也必然會(huì)相應(yīng)地增加GPP的運(yùn)行負(fù)擔(dān)以及內(nèi)存資源占用,同時(shí),在進(jìn)行GPP上的波形組件與FPGA上的波形組件問(wèn)通信時(shí),必須要經(jīng)過(guò)組件代理的處理,實(shí)現(xiàn)GIOP報(bào)文與MHAL報(bào)文格式的轉(zhuǎn)換,這也就必然會(huì)給整個(gè)通信過(guò)程引入一定的延遲的增加、吞吐量的降低和低層次的重用。
而且,在以MHAL方式實(shí)現(xiàn)的SCA/SDR系統(tǒng)中,開(kāi)發(fā)者需要在GPP上設(shè)計(jì)實(shí)現(xiàn)適配器來(lái)完成GIOP報(bào)文和MHAL報(bào)文的轉(zhuǎn)換,以便使用CORBA機(jī)制的波形組件和使用MHAL機(jī)制的波形組件間的通信。但對(duì)于適配器的實(shí)現(xiàn),目前還沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),而且,MHAL也不是一個(gè)針對(duì)通用市場(chǎng)的可用標(biāo)準(zhǔn),它受到ITARS(International Traffic in Arins Regulations)限制,其實(shí)現(xiàn)細(xì)節(jié)并不公開(kāi),且MHAL報(bào)文結(jié)構(gòu)的細(xì)節(jié)并不足以完成波形組件的實(shí)際需要,從而必然會(huì)導(dǎo)致不同的MHAL實(shí)現(xiàn)方式,且彼此間相互不兼容,這也必然會(huì)破壞MHAL波形組件的可移植性和可重用性。
2.2 使用CORBA方式實(shí)現(xiàn)的SCA/SDR系統(tǒng)
由于GPP上的波形組件是使用CORBA實(shí)現(xiàn)的,所以只要將CORBA擴(kuò)展到DSP和FPGA上,就能夠很容易地實(shí)現(xiàn)布署在各種類(lèi)型處理器上的波形組件間的通信。圖2是以CORBA方式實(shí)現(xiàn)的分布式SCA/SDR系統(tǒng)布局結(jié)構(gòu)示意圖。在以CORBA方式實(shí)現(xiàn)的SCA/SDR系統(tǒng)中,GPP保持原有狀態(tài)即可,而DSP和FPGA上的ORB負(fù)責(zé)完成CORBA報(bào)文的處理。這使系統(tǒng)中所有波形組件使用CORBA中間件進(jìn)行通信,而不需要在GPP上實(shí)現(xiàn)代理,不僅減輕了GPP的運(yùn)行負(fù)擔(dān)以及內(nèi)存資源占用,而且系統(tǒng)中波形組件間的通信不再需要通過(guò)代理的轉(zhuǎn)換,從而也就降低了通信時(shí)延,提高了通信效率。
同時(shí),CORBA為不同類(lèi)型的處理器提供統(tǒng)一的通信架構(gòu),使任何組件都能夠以簡(jiǎn)單的函數(shù)調(diào)用方式獲得分布于系統(tǒng)中的其他組件的服務(wù)。軟件客戶(hù)端和硬件服務(wù)程序之間由此變得連接無(wú)縫、快速并且使用較少的系統(tǒng)資源。與MHAL實(shí)現(xiàn)方式相比,該架構(gòu)提供了波形組件的移動(dòng)性和位置透明性,使得在同一處理器與在遠(yuǎn)程處理器中調(diào)用對(duì)象相比沒(méi)有什么差別,使設(shè)計(jì)人員可以很容易地將波形組件從一個(gè)處理器中轉(zhuǎn)移到另一個(gè)處理器中。這意味著,設(shè)計(jì)人員一開(kāi)始可以在他們的工作站上構(gòu)建SDR,然后很容易地將部件一塊塊轉(zhuǎn)移到GPP、DSP和FPGA上,來(lái)優(yōu)化系統(tǒng)總性能。
雖然使用CORBA方式實(shí)現(xiàn)的SCA/SDR既保持SCA的兼容性,又減小了傳輸負(fù)載,而且,開(kāi)發(fā)者也無(wú)需開(kāi)發(fā)通用GPP上的定制代理。但由于FPGA的設(shè)計(jì)實(shí)現(xiàn)方式與GPP完全不同,其編程主要集中于底層硬件,往往同特定的可編程資源緊密聯(lián)系在一起,而且FPGA不能提供等效的操作系統(tǒng)中虛擬地址等機(jī)制,從而使FPGA上CORBA功能的實(shí)現(xiàn)比較困難。目前為止,在FPGA上實(shí)現(xiàn)ORB的主要的方案有以下兩種:
(1)Prismtech公司開(kāi)發(fā)了一款集成電路ORB(ICO)產(chǎn)品,該產(chǎn)品提供了一個(gè)使用VHDL語(yǔ)言編寫(xiě)的ORB模塊,能夠運(yùn)行于Xilinx,Altera等公司的多款FPGA上。整個(gè)產(chǎn)品包括ORB引擎、IDL-to-VHDL代碼產(chǎn)生器和SCA應(yīng)用組件等幾個(gè)部分。ORB引擎負(fù)責(zé)GIOP報(bào)文的解析和封裝,對(duì)于到達(dá)的GIOP請(qǐng)求報(bào)文,ORB引擎對(duì)報(bào)文中的對(duì)象鍵值、操作名稱(chēng)、參數(shù)等信息進(jìn)行解析,然后將數(shù)據(jù)傳遞給特定的FPGA邏輯模塊進(jìn)行處理;如果處理結(jié)果需要向外部發(fā)送,則ORB引擎根據(jù)預(yù)先獲得的一些信息,將結(jié)果封裝為GIOP請(qǐng)求報(bào)文或應(yīng)答報(bào)文,并通過(guò)網(wǎng)絡(luò)進(jìn)行傳輸。
盡管ICO實(shí)現(xiàn)了FPGA程序與分布式系統(tǒng)的直接ORB通信,但由于其ORB引擎的實(shí)現(xiàn)代碼是由IDL-to-VHDL代碼生成器根據(jù)特定的應(yīng)用生成的,這就使其ORB引擎的實(shí)現(xiàn)邏輯與特定的FPGA應(yīng)用程序密切相關(guān),從而也就導(dǎo)致了ORB的引擎不具備通用性。一旦FPGA的應(yīng)用程序做了修改,原有的ORB引擎往往無(wú)法對(duì)新應(yīng)用程序的GIOP報(bào)文進(jìn)行正確的解析和封裝,此時(shí)必須再次使用IDL-to-VHDL代碼生成器重新生成新的邏輯。目前有很多FPGA在硬件上已經(jīng)具備了部分重配置功能,而且有一部分分布式應(yīng)用,也需要實(shí)現(xiàn)FPGA的動(dòng)態(tài)部分重配置,這就需要在動(dòng)態(tài)改變FPGA部分邏輯功能的同時(shí),依然保持ORB引擎和其他FPGA模塊的正常工作,但I(xiàn)CO與FPGA應(yīng)用程序的緊密相關(guān)性使這一功能無(wú)法實(shí)現(xiàn)。
(2)OIS公司在一項(xiàng)專(zhuān)利中提出了一種新的基于FPGA的CORBA實(shí)現(xiàn)方法。該方法是將ICO的ORB引擎的分為4個(gè)功能模塊,包括ORB接收模塊、ORB發(fā)送模塊、接收操作適配器和發(fā)送操作適配器。其中ORB接收模塊和ORB發(fā)送模塊僅負(fù)責(zé)解析和封裝GIOP的報(bào)文頭信息,而接收操作適配器和發(fā)送操作適配器負(fù)責(zé)解析和封裝與每個(gè)應(yīng)用模塊相關(guān)的操作名稱(chēng)和參數(shù)。這樣,每個(gè)應(yīng)用模塊都有自己專(zhuān)屬的處理操作名稱(chēng)和參數(shù)的處理單元,從而保證了FPGA上應(yīng)用模塊的靈活性和通用性,也可以滿(mǎn)足部分重配置的需求。
然而,由于在OIS公司的專(zhuān)利中所提出的解決方案中,必須為每個(gè)應(yīng)用模塊都實(shí)現(xiàn)一個(gè)接收操作適配器和一個(gè)發(fā)送操作適配器,由此導(dǎo)致應(yīng)用模塊的實(shí)現(xiàn)十分復(fù)雜,必然會(huì)給應(yīng)用模塊的開(kāi)發(fā)人員帶來(lái)一定的負(fù)擔(dān);同時(shí),F(xiàn)PGA內(nèi)部各應(yīng)用模塊之間的信息傳遞必須經(jīng)過(guò)發(fā)送操作適配器和接收發(fā)送操作適配器的處理,這對(duì)于FPGA內(nèi)部乃至FPGA之間高速數(shù)據(jù)傳輸?shù)囊箫@然是不恰當(dāng)?shù)?;而且,?dāng)一塊FPGA中運(yùn)行的應(yīng)用模塊數(shù)量較多時(shí),也必然要有大量的計(jì)算資源和存儲(chǔ)資源被處理操作名稱(chēng)和參數(shù)的邏輯所占用,無(wú)法實(shí)現(xiàn)硬件資源的有效利用,甚至造成資源的浪費(fèi),這也是實(shí)際應(yīng)用中無(wú)法接受的。
3 改進(jìn)的設(shè)計(jì)方案
以上分析表明現(xiàn)存的種實(shí)現(xiàn)方案都不夠理想,有必要設(shè)計(jì)一種新都實(shí)現(xiàn)機(jī)制來(lái)改善當(dāng)前的設(shè)計(jì)。
根據(jù)實(shí)際應(yīng)用中通信系統(tǒng)的需求,結(jié)合上述分析的幾種實(shí)現(xiàn)方案的優(yōu)缺點(diǎn),在兼顧系統(tǒng)的資源利用率、應(yīng)用組件的易開(kāi)發(fā)性、通用性、靈活性等各方面的性能,在現(xiàn)有設(shè)計(jì)方案對(duì)基礎(chǔ)上,對(duì)FPGA上的ORB實(shí)現(xiàn)方案進(jìn)行了改進(jìn),改進(jìn)后的設(shè)計(jì)方案實(shí)現(xiàn)結(jié)構(gòu)如圖3所示。
在實(shí)際應(yīng)用中,實(shí)現(xiàn)各種波形的應(yīng)用模塊一般需要支持初始化、參數(shù)配置、參數(shù)查詢(xún)、建立連接、斷開(kāi)連接、啟動(dòng)、停止、數(shù)據(jù)傳遞等操作功能,所以在改進(jìn)后的方案中,根據(jù)應(yīng)用模塊的實(shí)際需要抽象出一組與上述操作相對(duì)應(yīng)的操作名稱(chēng):initialize,configcIre,query,connectPort,disconnectPort,start,stop,pushPacket等,可稱(chēng)之為公有操作。公有操作名稱(chēng)的識(shí)別和處理由ORB主適配器完成。另外,對(duì)那些只是個(gè)別應(yīng)用模塊所實(shí)現(xiàn)的操作,可稱(chēng)之為私有操作,其識(shí)別和處理則由應(yīng)用模塊的ORB輔助適配器完成。各模塊發(fā)所實(shí)現(xiàn)的功能如下:
ORB主適配器(ORB Mian Adapter)實(shí)現(xiàn)的功能包括兩個(gè)方面:一是解析接收到的GIOP報(bào)文信息,從接收到到報(bào)文信息中抽取出GIOP報(bào)文頭和數(shù)據(jù)域,丟棄填充域。在該過(guò)程中,ORB主適配器需要基于GIOP報(bào)文頭信息所提供的協(xié)議版本和數(shù)據(jù)大小端標(biāo)志完成報(bào)文格式的識(shí)別和數(shù)據(jù)的大小端轉(zhuǎn)換。需要注意的是GIOP報(bào)文中的ObjecKey和Operation Name段均是變長(zhǎng)的信息,為了便于后續(xù)處理,需要在ORB主適配器的處理過(guò)程中將它們轉(zhuǎn)換為固定的編碼,其中ObjectKey轉(zhuǎn)換為用于標(biāo)識(shí)應(yīng)用模塊的地址編碼,而Operation Name則轉(zhuǎn)換為與之對(duì)應(yīng)的控制信息;二是封裝需要發(fā)送到GIOP報(bào)文信息,負(fù)責(zé)從應(yīng)用模塊的數(shù)據(jù)總線(xiàn)和控制總線(xiàn)接收數(shù)據(jù)與控制信息,然后加上GIOP報(bào)文頭,將控制信息轉(zhuǎn)換為相應(yīng)的操作名稱(chēng),填充對(duì)齊數(shù)據(jù)等完成GIOP報(bào)文信息封裝,之后通過(guò)FIFO等類(lèi)似的接口將數(shù)據(jù)傳送出去。
交叉開(kāi)關(guān)(Crossbar Switch)實(shí)現(xiàn)的功能是根據(jù)接收到的地址編碼完成控制信息和數(shù)據(jù)的轉(zhuǎn)發(fā)。
ORB輔助適配器(ORB Assistant Adapter)實(shí)現(xiàn)的功能與ORB主適配器類(lèi)似,也包括兩個(gè)方面:一是接收來(lái)自交叉開(kāi)關(guān)的控制信息,若調(diào)用調(diào)用的是應(yīng)用模塊的私有操作,則將此操作名稱(chēng)轉(zhuǎn)換為相應(yīng)的操作編碼后發(fā)送給給交叉開(kāi)關(guān),否則,直接將控制信息轉(zhuǎn)發(fā)給應(yīng)用模塊;二是接收來(lái)自應(yīng)用模塊的控制信息,當(dāng)應(yīng)用模塊調(diào)用私有操作時(shí),則將操作編碼轉(zhuǎn)換為相應(yīng)的私有操作名稱(chēng)后發(fā)送給給交叉開(kāi)關(guān),否則,直接將控制信息轉(zhuǎn)發(fā)給交叉開(kāi)關(guān)。
應(yīng)用模塊(Application Module)根據(jù)控制信息完成對(duì)數(shù)據(jù)的處理,給出處理結(jié)果。
在根據(jù)改進(jìn)后設(shè)計(jì)方案所實(shí)現(xiàn)的系統(tǒng)中,GPP上的應(yīng)用將保持原有狀態(tài),不會(huì)引人任何額外的處理負(fù)擔(dān)和處理延遲。FPGA上由ORB主適配器統(tǒng)一完成各個(gè)應(yīng)用模塊的公有操作,在減小FPGA硬件資源的浪費(fèi)的同時(shí)也減輕了應(yīng)用模塊開(kāi)發(fā)的負(fù)擔(dān)。應(yīng)用模塊預(yù)留有私有操作處理接口,可對(duì)其實(shí)現(xiàn)的私有操作進(jìn)行擴(kuò)展,從而也保證了應(yīng)用模塊的靈活性和動(dòng)態(tài)部分重配置功能的實(shí)現(xiàn);而且,F(xiàn)PGA上各應(yīng)用模塊間的數(shù)據(jù)傳遞不需要額外的處理,也滿(mǎn)足了高速處理的要求。
4 方案實(shí)現(xiàn)與測(cè)試驗(yàn)證
為了驗(yàn)證改進(jìn)后設(shè)計(jì)方案的可行性和合理性,在圖5所示的硬件平臺(tái)上對(duì)該方案進(jìn)行了實(shí)現(xiàn)和性能測(cè)試。其中PC計(jì)算機(jī)用作為數(shù)據(jù)源和接收終端,實(shí)現(xiàn)視頻和測(cè)試數(shù)據(jù)產(chǎn)生并接收顯示視頻和校對(duì)測(cè)試數(shù)據(jù);ARM上運(yùn)行VxWorks 5.5操作系統(tǒng),使用TAO來(lái)提供CORBA功能,實(shí)現(xiàn)CORBA報(bào)文的封裝和解析;FPGA運(yùn)行根據(jù)前面所描述的改進(jìn)方案所實(shí)現(xiàn)的ORB,完成CORBA報(bào)文數(shù)據(jù)的解析、處理和封裝。測(cè)試過(guò)程中,首先由PC計(jì)算機(jī)產(chǎn)生視頻或測(cè)試數(shù)據(jù),并通過(guò)Ethernet傳送給ARM處理器,ARM處理器上運(yùn)行的應(yīng)用程序?qū)⑵浞庋b成CORBA報(bào)文后發(fā)送給FPGA,F(xiàn)PGA接收到CORBA報(bào)文后對(duì)其進(jìn)行解析,并對(duì)凈荷數(shù)據(jù)進(jìn)行處理后重新封裝為CORBA報(bào)文后再發(fā)送給ARM處理器,ARM接收到FPGA發(fā)送到CORBA報(bào)文后對(duì)其進(jìn)行解析處理后將數(shù)據(jù)發(fā)送給PC計(jì)算機(jī),最終由PC計(jì)算機(jī)對(duì)接收到到數(shù)據(jù)進(jìn)行視頻解碼顯示或校對(duì)檢測(cè)。
驗(yàn)證過(guò)程中先后在FPGA上實(shí)現(xiàn)了波形組件間的建立連接操作(connectPort)、數(shù)據(jù)傳遞(pushPaeket),波形組件參數(shù)配置(configure)和波形組件參數(shù)查詢(xún)(query)四個(gè)操作,并在波形組件到參數(shù)設(shè)置和查詢(xún)操作中完成short,float,double,string等類(lèi)型的支持。通過(guò)測(cè)試,系統(tǒng)所實(shí)現(xiàn)的各種功能均符合設(shè)計(jì)需要。此外,還分別實(shí)現(xiàn)建立連接、數(shù)據(jù)傳遞2個(gè)操作與實(shí)現(xiàn)建立連接、數(shù)據(jù)傳遞、參數(shù)配置、參數(shù)查詢(xún)4個(gè)操作兩種情況對(duì)FPGA上對(duì)資源占用進(jìn)行了比較,其結(jié)果見(jiàn)表1。從表中所得到的數(shù)據(jù)可以看出,在FPGA中實(shí)現(xiàn)對(duì)CORBA報(bào)文的操作以及參數(shù)進(jìn)行解析、封裝處理非常耗費(fèi)硬件資源。這主要是由于CORBA報(bào)文中使用的公共數(shù)據(jù)表示(CDR)來(lái)描繪所要傳輸?shù)臄?shù)據(jù)類(lèi)型所引起的,其也從一個(gè)方面證明了OIS公司所設(shè)計(jì)的為每個(gè)波形組件都實(shí)現(xiàn)一個(gè)接收操作適配器和發(fā)送操作適配器將極其耗費(fèi)硬件資源,這在實(shí)際應(yīng)用中是不能被接受的。
5 結(jié)論
本文在分析現(xiàn)有的解決方案優(yōu)缺點(diǎn)的基礎(chǔ)上提出了一種在FPGA上實(shí)現(xiàn)ORB的改進(jìn)設(shè)計(jì)方案,不但為彼此分離的、工作于多處理器平臺(tái)上的各個(gè)GPP,DSP和FPGA開(kāi)發(fā)小組提供了通用的CORBA通信機(jī)制,實(shí)現(xiàn)波形組件的位置透明性;還克服了現(xiàn)有的FPGA上實(shí)現(xiàn)ORB方案的缺點(diǎn),使FPGA上實(shí)現(xiàn)的ORB既可以支持動(dòng)態(tài)部分重配置,又使波形組件開(kāi)發(fā)人員盡可能少地處理ORB相關(guān)的工作,大大簡(jiǎn)化了波形組件開(kāi)發(fā)人員所承擔(dān)的開(kāi)發(fā)任務(wù)。最終,所提出的改進(jìn)設(shè)計(jì)方案在實(shí)驗(yàn)平臺(tái)進(jìn)行了實(shí)現(xiàn)與驗(yàn)證,測(cè)試結(jié)果也表明了此方案的合理性和可行性。