基于FPGA的CORBA通信系統(tǒng)設(shè)計(jì)方案
0 引言
本文引用地址:http://www.ex-cimer.com/article/190529.htm自1992年Jeo Mitola中提出了軟件無線電(Software Defined Radio,SDR)的概念以來,有許多公司和團(tuán)體致力于SDR的研究和開發(fā),并取得了一定成果。但由于沒有統(tǒng)一的標(biāo)準(zhǔn),各研發(fā)單位采用各自不同的解決方案和實(shí)現(xiàn)架構(gòu),從而導(dǎo)致了不同制造商的SDR波形組件相互不兼容,難以實(shí)現(xiàn)互連、互通、互操作,不能進(jìn)行有效的協(xié)同工作,而且也不容易實(shí)現(xiàn)重配置。為了解決這些問題,美軍JTRS(Joint Tactical Radio System)JPEO(Joint Program Executive Office)制定了軟件通信體系架構(gòu)(Soltware CommLmication Arehitecture,SCA)規(guī)范,用以實(shí)現(xiàn)不同波形組件間的可移植性,以降低開發(fā)費(fè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ì)無線通信帶寬、速率等提出的更高要求,GPP受工作方式、處理能力的限制,難以滿足這些要求,這就需要FPGA(Field Program-mable Gate Array)的加入來實(shí)現(xiàn)波形組件的并行處理和高速運(yùn)算等功能。雖然SCA為GPP上的波形組件提供了很好的可移植性和可重用性,但目前還沒有一個(gè)標(biāo)準(zhǔn)能夠?yàn)?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/FPGA">FPGA上的波形組件提供這種支持。為了實(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é)議等的差別,為開發(fā)者提供了一致的調(diào)用模式。通過CORBA,應(yīng)用組件可以獲得良好的可移植性、可重用性和互操作性。
ORB(Object ReqLtest Broker)是CORBA的核心,其任務(wù)是幫助客戶調(diào)用對(duì)象上的方法,包括:定位對(duì)象、激活對(duì)象、把客戶的請(qǐng)求傳遞給對(duì)象。ORB能夠屏蔽與底層平臺(tái)有關(guān)的細(xì)節(jié),保證了信息在分布式環(huán)境中不同平臺(tái)上的應(yīng)用組件間透明地傳輸。為了使由不同開發(fā)者開發(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通過面向?qū)ο蠓椒▌澐周浖布Y(jié)構(gòu),建立了開放的系統(tǒng)標(biāo)準(zhǔn),提供了與具體實(shí)現(xiàn)無關(guān)的軟件無線電開發(fā)框架,保證了軟、硬件的可移植、可重構(gòu)及設(shè)備的互操作性。SCA規(guī)范包含軟件體系結(jié)構(gòu)定義、硬件體系結(jié)構(gòu)定義、安全體系結(jié)構(gòu)定義和應(yīng)用程序接口(API)四部分。
通過SCA所定義的分布式構(gòu)件規(guī)范,可將應(yīng)用與操作環(huán)境分離,同時(shí)使應(yīng)用功能模塊化,并為管理和使用軟件構(gòu)件定義了通用接口,通用業(yè)務(wù)和API以支持軟/硬件模塊移植。
2 現(xiàn)有實(shí)現(xiàn)方案分析
GPP處理器受其處理能力的限制,無法滿足當(dāng)前通信業(yè)務(wù)需求,使通信設(shè)備越來越多地依靠DSP(Digital Signal Processor)、FPGA等專用處理器來完成高速的數(shù)據(jù)處理任務(wù),這就使SDR系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)必須面對(duì)由GPP,DSP和FPGA共同組成的多處理器平臺(tái)。雖然通過使用COR BA中間件技術(shù)可以很容易地實(shí)現(xiàn)分布式波形應(yīng)用,但由于CORBA標(biāo)準(zhǔn)是針對(duì)GPP的,在DSP,F(xiàn)PGA等處理器上沒有相應(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)方法是通過在核心框架與FPGA之間加入代理,并明確規(guī)范代理與FPGA之間的數(shù)據(jù)格式來實(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)分布式波形組件間的通信。通過使用代理,系統(tǒng)可以將FPGA上的波形組件當(dāng)作GPP上的波形組件一樣處理,這樣就可以實(shí)現(xiàn)對(duì)FPGA上波形組件的靈活、高效的管理和使用。
在FPGA上實(shí)現(xiàn)的MHAL波形組件并通過接收帶參數(shù)的操作來調(diào)用波形組件所實(shí)現(xiàn)的功能,雖然這樣的實(shí)現(xiàn)方式對(duì)于FPGA開發(fā)人員而言,可以減小編寫波形組代碼的難度,但對(duì)于GPP開發(fā)人員來說,卻要在GPP上為每個(gè)FPGA上的波形組件實(shí)現(xiàn)一個(gè)組件代理,大大增加了開發(fā)的負(fù)擔(dān)。而且這這種實(shí)現(xiàn)方式也必然會(huì)相應(yīng)地增加GPP的運(yùn)行負(fù)擔(dān)以及內(nèi)存資源占用,同時(shí),在進(jìn)行GPP上的波形組件與FPGA上的波形組件問通信時(shí),必須要經(jīng)過組件代理的處理,實(shí)現(xiàn)GIOP報(bào)文與MHAL報(bào)文格式的轉(zhuǎn)換,這也就必然會(huì)給整個(gè)通信過程引入一定的延遲的增加、吞吐量的降低和低層次的重用。
而且,在以MHAL方式實(shí)現(xiàn)的SCA/SDR系統(tǒng)中,開發(fā)者需要在GPP上設(shè)計(jì)實(shí)現(xiàn)適配器來完成GIOP報(bào)文和MHAL報(bào)文的轉(zhuǎn)換,以便使用CORBA機(jī)制的波形組件和使用MHAL機(jī)制的波形組件間的通信。但對(duì)于適配器的實(shí)現(xiàn),目前還沒有統(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é)并不公開,且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)布署在各種類型處理器上的波形組件間的通信。圖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)中波形組件間的通信不再需要通過代理的轉(zhuǎn)換,從而也就降低了通信時(shí)延,提高了通信效率。
同時(shí),CORBA為不同類型的處理器提供統(tǒng)一的通信架構(gòu),使任何組件都能夠以簡(jiǎn)單的函數(shù)調(diào)用方式獲得分布于系統(tǒng)中的其他組件的服務(wù)。軟件客戶端和硬件服務(wù)程序之間由此變得連接無縫、快速并且使用較少的系統(tǒng)資源。與MHAL實(shí)現(xiàn)方式相比,該架構(gòu)提供了波形組件的移動(dòng)性和位置透明性,使得在同一處理器與在遠(yuǎn)程處理器中調(diào)用對(duì)象相比沒有什么差別,使設(shè)計(jì)人員可以很容易地將波形組件從一個(gè)處理器中轉(zhuǎn)移到另一個(gè)處理器中。這意味著,設(shè)計(jì)人員一開始可以在他們的工作站上構(gòu)建SDR,然后很容易地將部件一塊塊轉(zhuǎn)移到GPP、DSP和FPGA上,來優(yōu)化系統(tǒng)總性能。
評(píng)論