劉文斌,廖文瑜,彭 麟,丁建鋒
(西南通信研究所,四川成都610041)
電臺(tái)軟件架構(gòu)發(fā)展及其向SCA4.0演進(jìn)的途徑分析
劉文斌,廖文瑜,彭 麟,丁建鋒
(西南通信研究所,四川成都610041)
使用標(biāo)準(zhǔn)的軟件架構(gòu)能夠?qū)崿F(xiàn)波形應(yīng)用的硬件無(wú)關(guān)設(shè)計(jì),也便于電臺(tái)軟件走向分層開(kāi)放的合作設(shè)計(jì)。采用軟件通信體系結(jié)構(gòu)SCA,能夠?qū)崿F(xiàn)電臺(tái)軟件的標(biāo)準(zhǔn)化、平臺(tái)化、智能化。首先對(duì)SCA在國(guó)內(nèi)外的發(fā)展與應(yīng)用現(xiàn)狀進(jìn)行了介紹,在基于主流的SCA2.2規(guī)范進(jìn)行的SCA電臺(tái)軟件開(kāi)發(fā)經(jīng)驗(yàn)的基礎(chǔ)上,探討了SCA4.0架構(gòu)的特點(diǎn),提出了把核心框架、平臺(tái)、波形從SCA2.2架構(gòu)升級(jí)到SCA4. 0架構(gòu)的途徑,思考了基于SCA架構(gòu)的電臺(tái)軟件未來(lái)發(fā)展趨勢(shì)。
軟件無(wú)線電 軟件通信體系結(jié)構(gòu) 聯(lián)合戰(zhàn)術(shù)無(wú)線電系統(tǒng) 核心框架
經(jīng)過(guò)超過(guò)10年的發(fā)展與使用,SCA標(biāo)準(zhǔn)得到不斷地更新,并經(jīng)歷了實(shí)戰(zhàn)檢驗(yàn),已經(jīng)比較成熟。在此背景下,美軍聯(lián)合戰(zhàn)術(shù)無(wú)線系統(tǒng)(JTRS,Joint Tactical Radio System)于近期又推出了軟件通信體系架構(gòu)(SCA,Software Communication Architecture)的最新版本SCA4.0[1-3],其主要目標(biāo)就是構(gòu)建更利于采用新技術(shù)、尺寸更靈活的電臺(tái)軟件架構(gòu)。
SCA的目的,不僅僅是簡(jiǎn)單的波形動(dòng)態(tài)加載。SCA定義的核心框架,指的是必要的、“核心”的開(kāi)放軟件接口和配置文件,在嵌入式以及分布式計(jì)算環(huán)境中,提供對(duì)波形組件的部署、管理、互連與互通信[2,4,5]。
下文將先介紹SCA在國(guó)內(nèi)外的發(fā)展與應(yīng)用現(xiàn)狀,然后以基于SCA2.2規(guī)范進(jìn)行SCA軟件開(kāi)發(fā)為基礎(chǔ),探討了如何把核心框架、平臺(tái)、波形從SCA2.2架構(gòu)升級(jí)到SCA4.0架構(gòu)的一種途徑。
JTRS于1999年推出了SCA最早標(biāo)準(zhǔn)版本1.0,后來(lái)又依次推出的版本有 SCA2.2(2001年), SCA2.2.2(2006年),SCA4.0(2012年)。在SCA2.2后先是推出過(guò)SCA3.0,后因使用上有爭(zhēng)議而不被支持,改用SCA2.2.2。SCA2.2.2在體系結(jié)構(gòu)上與SCA2.2基本保持不變[5],但其安全體系結(jié)構(gòu)不再放入標(biāo)準(zhǔn)主體中,而以非公開(kāi)形式獨(dú)立研究。
JTRS推出的SCA規(guī)范已經(jīng)經(jīng)歷了兩個(gè)裝備階段的考驗(yàn),第一個(gè)階段是過(guò)渡期,為了應(yīng)對(duì)戰(zhàn)爭(zhēng)的需求,以及JTRS項(xiàng)目難度過(guò)大成本過(guò)高的問(wèn)題,美軍部署了部分單通道手持式JTRS電臺(tái)作為過(guò)渡,以AN/PRC-148 JTRS增強(qiáng)型[6]、AN/PRC-152(C)[7]為代表,主要加載的是傳統(tǒng)波形;第二階段是增長(zhǎng)期,產(chǎn)品以多頻段的AN/PRC-117(G)[7]、多通道的AN/PRC-155[8]等為代表,除了能加載傳統(tǒng)波形外,還能加載高性能組網(wǎng)波形。這些產(chǎn)品均符合SCA2.2,取得了一定的市場(chǎng)認(rèn)可,經(jīng)歷了實(shí)戰(zhàn)檢驗(yàn),動(dòng)態(tài)加載和管理波形已經(jīng)不是難題。
雖然國(guó)內(nèi)外不少高校和科研機(jī)構(gòu)對(duì)SCA2.2.2進(jìn)行過(guò)驗(yàn)證,但其實(shí)質(zhì)與SCA2.2差異不大。在推出SCA標(biāo)準(zhǔn)的同時(shí),JTRS還推出了用于規(guī)范波形組件、平臺(tái)設(shè)備組件和服務(wù)組件之間接口的獨(dú)立的API規(guī)范,以利于波形組件的可移植與可重用。
實(shí)戰(zhàn)經(jīng)驗(yàn)提出了組網(wǎng)能力、較短的電臺(tái)啟動(dòng)時(shí)間以及高速視頻業(yè)務(wù)等應(yīng)用需求,這些需求使得核心框架應(yīng)采用更靈活的架構(gòu),且傳輸機(jī)制需盡可能減少對(duì)資源的占用,且新的商業(yè)化技術(shù)應(yīng)能夠方便地加入到電臺(tái)操作環(huán)境中來(lái)。SCA4.0在此背景下提出,其目標(biāo)是能采用更多的商業(yè)化新技術(shù)產(chǎn)品,簡(jiǎn)化SDR電臺(tái)的開(kāi)發(fā),最大化軟件應(yīng)用的可移植性、可重用性以及組件尺寸的靈活性。
SCA2.2架構(gòu)操作環(huán)境如圖1所示。在傳統(tǒng)軟件環(huán)境(如操作系統(tǒng)、板級(jí)支持包)上架構(gòu)了SCA軟件平臺(tái),該平臺(tái)基于SCA接口標(biāo)準(zhǔn)設(shè)計(jì)。在平臺(tái)之上部署了獨(dú)立于平臺(tái)的SCA組件,稱為SCA應(yīng)用組件。SCA應(yīng)用(波形)設(shè)計(jì)兼容傳統(tǒng)的開(kāi)發(fā)方式,如把基于軟件實(shí)現(xiàn)的傳統(tǒng) DSP、FPGA組件稱為非CORBA組件,通過(guò)一個(gè)SCA設(shè)備組件來(lái)代理該非CORBA組件,實(shí)現(xiàn)統(tǒng)一的加載以及與系統(tǒng)的標(biāo)準(zhǔn)化的控制、業(yè)務(wù)交互。
圖1 SCA2.2操作環(huán)境Fig.1 Operating environment of SCA2.2
SCA2.2架構(gòu)因?yàn)榭紤]了較多安全因素,如安全加密模塊如何部署與控制,業(yè)務(wù)與控制是否要分離且如何與安全加密模塊交互等,這些因素給設(shè)計(jì)帶來(lái)了較大的難度。
SCA2.2電臺(tái)軟件中,SCA核心框架相關(guān)的軟件包括SCA核心框架庫(kù),SCA軟件平臺(tái)以及SCA應(yīng)用(波形)。SCA架構(gòu)的底層支撐軟件還包括操作系統(tǒng)和CORBA中間件。各層軟件可以選擇購(gòu)買(mǎi)商業(yè)現(xiàn)貨(COTS)或自主開(kāi)發(fā)兩種方式中的一種來(lái)實(shí)現(xiàn),根據(jù)需要進(jìn)行權(quán)衡。下面將描述SCA核心框架相關(guān)的軟件開(kāi)發(fā)內(nèi)容與實(shí)現(xiàn)方法。
2.1 核心框架庫(kù)
核心框架一般以庫(kù)的形式提供給平臺(tái)開(kāi)發(fā)人員和波形開(kāi)發(fā)人員使用。如圖2所示,其完整實(shí)現(xiàn)需要實(shí)現(xiàn)下述核心框架接口的基本功能:
1)基本應(yīng)用接口。主要為波形組件提供統(tǒng)一的接口封裝格式。
2)基本設(shè)備接口。主要為設(shè)備組件提供軟件加載和執(zhí)行接口,支持的加載類型有四種:內(nèi)核模塊、驅(qū)動(dòng)程序、共享庫(kù)、可執(zhí)行程序。DSP或FPGA程序以內(nèi)核模塊方式進(jìn)行加載。
3)框架管理接口。主要包含平臺(tái)管理,以及波形安裝、創(chuàng)建與管理,需要對(duì)域配置文件進(jìn)行解析,對(duì)端口進(jìn)行連接等。
4)框架服務(wù)接口。主要包含文件、文件系統(tǒng)、文件管理器接口,提供對(duì)文件或文件夾的分布式管理和訪問(wèn)。
圖2 SCA2.2接口繼承關(guān)系與分類Fig.2 Classification and inheritance relationship of SCA2.2 interfaces
此外,核心框架還需要使用下面的技術(shù):
1)IDL向C++的映射。中間件工具都支持基于IDL自動(dòng)生成基于客戶端基類和服務(wù)端基類。
2)域配置文件的類抽象,以及把域配置XML文件解析成類對(duì)象??梢圆捎瞄_(kāi)源的XML_xerces解析器,或是其它尺寸更小的解析工具。
3)滿足SCA或CORBA規(guī)范的日志服務(wù)、事件服務(wù)和命名服務(wù)。
2.2 軟件平臺(tái)
SCA軟件平臺(tái)要實(shí)現(xiàn)的組件主要包括框架控制組件,以及SCA設(shè)備和服務(wù)組件??蚣芸刂平M件包含域管理器、設(shè)備管理器等組件,可以直接實(shí)例化相應(yīng)核心框架接口類實(shí)現(xiàn),需要為其設(shè)計(jì)XML配置文件。繼承核心框架基本設(shè)備接口且能提供對(duì)硬件資源的訪問(wèn)能力的軟件組件稱為SCA設(shè)備組件,波形需要使用的公共非硬件資源可稱為服務(wù)組件,這些組件根據(jù)功能需要基于IDL添加,由平臺(tái)開(kāi)發(fā)人員自定義或根據(jù)標(biāo)準(zhǔn)定義。
2.3 SCA波形
SCA波形一般根據(jù)OSI或TCP/IP分層模型對(duì)波形進(jìn)行組件分層和連接,分為CORBA組件和非CORBA組件。基于CORBA組件模型設(shè)計(jì)SCA波形組件繼承核心框架資源接口,其需要使用的用戶自定義接口基于IDL設(shè)計(jì);非CORBA組件基于傳統(tǒng)方式設(shè)計(jì),如在DSP上運(yùn)行的信號(hào)處理組件,但需要為其提供相應(yīng)的CORBA適配組件(如SCA DSP設(shè)備組件),從而實(shí)現(xiàn)與CORBA組件的交互。
基于SCA4.0的電臺(tái)操作環(huán)境如圖3所示,其架構(gòu)與SCA2.2本質(zhì)上是相同的,如其中的CF控制組件指的是核心框架控制組件,實(shí)現(xiàn)了類似SCA2.2在圖1中的框架管理與服務(wù)。對(duì)比圖1和圖3可以看出,與SCA2.2版本相比,SCA4.0除了把CORBA替換成傳輸機(jī)制(Transfer Mechanism)外(SCA2.2.2已經(jīng)剝離了安全架構(gòu)),主要變化就是各種組件的分類命名、位置關(guān)系、接口關(guān)系更清晰,更加易于被初學(xué)者所理解。
圖3 SCA4.0操作環(huán)境Fig.3 Operating environment of SCA4.0
SCA4.0對(duì)屬于標(biāo)準(zhǔn)范疇的接口定義與組件定義進(jìn)行了區(qū)分,同時(shí)與屬于產(chǎn)品范疇的組件實(shí)現(xiàn)(對(duì)象)區(qū)分開(kāi)來(lái)。各種接口函數(shù)形式和功能保持不變,但其類封裝更加細(xì)致,接口繼承關(guān)系更為靈活。相比SCA2.2僅用斜體來(lái)區(qū)分是接口還是組件,SCA4.0為各種組件提供了專名的名字,更易于理解和分辨。
3.1 支持不同的傳輸機(jī)制
中間件是一種使用較為普遍的底層傳輸服務(wù),它能夠屏蔽軟件組件間的底層消息傳輸機(jī)制,盡管這些組件可能部署在不同的處理器上,這樣設(shè)計(jì)人員就可以專注于上層應(yīng)用軟件的設(shè)計(jì)。SCA2.2定義了CORBA作為中間件,并推薦使用這種特定的傳輸機(jī)制。CORBA較常采用的底層傳輸機(jī)制有TCP/IP和共享內(nèi)存等。一些CORBA產(chǎn)品會(huì)引入較大的傳輸時(shí)延,特別是采用TCP/IP傳輸機(jī)制時(shí)[9]。在某些具體的硬件平臺(tái)上,一些波形應(yīng)用的安全、高速等需求使得底層傳輸機(jī)制不適合采用TCP/IP,甚至不適合采用CORBA等中間件。為此,SCA4.0已經(jīng)刪掉了CORBA需求。因此,電臺(tái)開(kāi)發(fā)人員可以繼續(xù)使用CORBA,可以基于可插拔的底層傳輸機(jī)制來(lái)改進(jìn)CORBA傳輸性能[10],也可以選擇其它非CORBA的傳輸機(jī)制[3]。如果使用不同的傳輸機(jī)制,波形會(huì)需要重新編譯,但因?yàn)榻M件間API保持不變,這樣可以保持波形的可移植性。
3.2 支持不同量級(jí)的架構(gòu)
SCA4.0支持不同量級(jí)的架構(gòu),如文獻(xiàn)[3]所推薦的三種量級(jí)的架構(gòu),包括:全功能SCA架構(gòu),中量級(jí)SCA架構(gòu)和輕量級(jí)SCA架構(gòu)。全功能架構(gòu)(Full Profile)是一種即插即用的架構(gòu),支持全部用于向域管理器和設(shè)備管理器注冊(cè)和注銷(xiāo)的接口,適用于硬件模塊需要即插即用的可動(dòng)態(tài)配置的電臺(tái)。中量級(jí)架構(gòu)(Middle Profile)是一種非即插即用架構(gòu),只支持向域管理器和設(shè)備管理器的注冊(cè)接口,不支持注銷(xiāo),設(shè)備管理器不能釋放,適用于硬件模塊靜態(tài)配置的電臺(tái)。輕量級(jí)架構(gòu)(Little Profile)不支持向域管理器和設(shè)備管理器注冊(cè),適用于單通道電臺(tái)。
SCA4.0還支持不同量級(jí)的AEP(Appliation Environment Profiles,應(yīng)用環(huán)境配置),以支持更多的操作系統(tǒng);刪除了對(duì)CORBA命名服務(wù)的強(qiáng)制需求,并對(duì)注冊(cè)模型進(jìn)行了修改。上述變化的結(jié)果就是,組件的尺寸也變得靈活,如果采用輕量級(jí)的框架,電臺(tái)軟件平臺(tái)啟動(dòng)時(shí)間可能會(huì)大大縮短。SCA4.0核心框架的實(shí)現(xiàn),與基于SCA2.2的實(shí)現(xiàn)基本相同,接口功能基本保持不變,只需要明確是哪種量級(jí)的核心框架版本,明確相應(yīng)組件所需繼承的接口,設(shè)置相應(yīng)的編譯開(kāi)關(guān)即可。雖然國(guó)內(nèi)也有輕量級(jí)核心框架的實(shí)踐,其創(chuàng)新值得肯定,但與SCA4.0架構(gòu)相比,缺乏靈活性設(shè)計(jì)。
3.3 支持不同類型的域配置文件
SCA4.0標(biāo)準(zhǔn)3.1.3.6節(jié)中簡(jiǎn)要描述了域配置文件的類型。域配置文件相比以往標(biāo)準(zhǔn),增加了波形部署描述文件(ADD,Application Deployment Descriptor)和平臺(tái)部署描述文件(PDD,Platform Deployment Descriptor)文件以支持多通道的部署配置。SCA4.0的附件D中指出,標(biāo)準(zhǔn)允許采用不同的配置文件格式,如DTD(XML)、XSD schema等。這意味著XML文件不再是唯一可選的配置文件類型。此外,附件D-1描述了對(duì)XML的文件類型定義(DTD,Document Type Definition)方法,保持對(duì)SCA前期版本的前向兼容。
從域配置文件的描述可以看出,SCA4.0保持了前向兼容性。SCA2.2版本的域配置文件可以直接升級(jí)到SCA4.0版本。如果需要提供對(duì)通道部署配置的支持,相應(yīng)設(shè)計(jì)應(yīng)增加ADD和PDD兩種配置文件,核心框架應(yīng)增加相應(yīng)的解析。
3.4 支持接口標(biāo)準(zhǔn)化的SCA平臺(tái)設(shè)計(jì)
與SCA2.2相同,SCA4.0中平臺(tái)組件包含與硬件訪問(wèn)相關(guān)的設(shè)備組件和與硬件訪問(wèn)無(wú)關(guān)的服務(wù)組件,它們繼承了核心框架資源或設(shè)備接口。其它組件間交互的接口均要求使用IDL描述,即使組件間傳輸機(jī)制發(fā)生改變,組件接口和功能實(shí)現(xiàn)不需要改變,保持了可移植性。自2007年開(kāi)始,JTRS標(biāo)準(zhǔn)設(shè)備和服務(wù)API(含MHAL)陸續(xù)推出和更新,使得SCA平臺(tái)組件的接口設(shè)計(jì)有了參考依據(jù),便于波形在不同廠家平臺(tái)間的移植。SCA4.0中沒(méi)有強(qiáng)制使用這些API,但軟件平臺(tái)依然可以采用這些標(biāo)準(zhǔn)API進(jìn)行參考設(shè)計(jì)。
3.5 支持SCA波形的平滑升級(jí)
SCA4.0中波形的改變主要體現(xiàn)在構(gòu)成波形的SCA組件。標(biāo)準(zhǔn)升級(jí)只影響核心框架基類的定義,如果采用了輕量級(jí)的核心框架,只需要?jiǎng)h除原版本波形組件中相應(yīng)不需使用的接口定義就能夠?qū)崿F(xiàn)升級(jí)。波形組件間的接口不需要改變,波形組件與設(shè)備或服務(wù)組件的接口也不需改變,因此,在SCA2.2上實(shí)現(xiàn)的波形可以平滑升級(jí)到SCA4.0。因?yàn)椴捎昧遂`活的架構(gòu)和傳輸機(jī)制等新技術(shù),相比之前的SCA波形組件,新的組件可能尺寸更小,在相同硬件環(huán)境下,組件可以實(shí)現(xiàn)處理能力更快,組件間可以實(shí)現(xiàn)通信效率更高、時(shí)延更小。
從對(duì)SCA4.0的分析可以看出,該規(guī)范是為了應(yīng)對(duì)無(wú)線通信設(shè)備實(shí)際發(fā)展需要而推出的一個(gè)改進(jìn)的SCA架構(gòu),其主要改進(jìn),一是靈活的架構(gòu),二是便于新技術(shù)的可插入,其實(shí)現(xiàn)是可行的。但在實(shí)際的電臺(tái)應(yīng)用中,符合性檢測(cè)的復(fù)雜性、軟件架構(gòu)升級(jí)的成本等問(wèn)題依然會(huì)成為SCA4.0規(guī)模使用的阻礙。此外,支持SCA的人機(jī)接口架構(gòu)、安全體系結(jié)構(gòu),以及統(tǒng)一的波形庫(kù)的管理、加載、互通驗(yàn)證的方法等,是不論哪個(gè)SCA版本的使用和推廣都需要進(jìn)一步明確的。但從SCA的發(fā)展思路不難看出,靈活的、包容的,但又不弱化可移植性的開(kāi)放軟件架構(gòu)是未來(lái)軟件無(wú)線電發(fā)展的趨勢(shì),這將吸引更多的目光投向到SCA,促進(jìn)軟件無(wú)線電的發(fā)展。
[1] 蔡卓,張小瓊.SCA4.0規(guī)范概述[J].通信技術(shù), 2013,46(07):126-128.
CAI Zhuo,ZHANG Xiao-qiong.Overview of SCA4.0 Specification[J].Communication Technology.2013,46 (07):126-128.
[2] JTRS JPEO.SCA Specification Version 4.0(2012-02-28),Software Communication Architecture Specification [S].USA:JTRS JPEO,2012.
[3] JTRS JPEO.SCA Specification Version:Next<Draft>Users Guide(2010-11-30),Software Communication Architecture Specification[S].USA:JTRS JPEO,2010.
[4] JTRS JPO.SCA Specification Version 2.2(2001-11-17),Software Communication Architecture Specification [S].USA:JTRS JPO,2001.
[5] JTRS JPEO.SCA Specification Version 2.2.2(2006-05-15),Software Communication Architecture Specification [S].USA:JTRS JPEO,2006.
[6] 徐惕.美空軍裝備AN/PRC-148 JTRS增強(qiáng)型MBITR電臺(tái)[J].通信導(dǎo)航與指揮自動(dòng)化,2008(02):76-80.
XU Ti.USA Air Force Equipped AN/PRC-148 JTRS-enhanced MBITR Radios[J].Communication Navigation and Command Automation.2008(2):76-80.
[7] 徐剔.從美空軍購(gòu)置“獵鷹”Ⅲ寬帶電臺(tái)談起[J].通信導(dǎo)航與指揮自動(dòng)化,2009(06):67-70.
XU Ti.Topics about FalconⅢRadios Purchased by USA Air Force[J].Communication Navigation and Command Automation.2009(6):67-70.
[8] 曹偉.美國(guó)陸軍訂購(gòu)雙信道AN/PRC-155電臺(tái)[J].國(guó)外坦克,2003(01):6. CAO Wei.USA Army Purchase Dual-channel AN/PRC-155 Radio[J].Tank Oversea.2003(1):6.
[9] 廖文瑜,劉文斌,蘇旸,等.基于分布式SCA應(yīng)用的CORBA性能分析[J].中國(guó)電子科學(xué)研究院學(xué)報(bào), 2011,6(05):524-528.
LIAO Wen-yu,LIU Wen-bin,SU Yang,CONG Jian. CORBA Performance Test Based on Distributed SCA Applications[J].Journal of CAEIT.2011,6(5):524-528.
[10] 孫海彬,吳宇,魏急波.基于CORBA的可插拔協(xié)議研究[J].電腦知識(shí)與技術(shù),2009,5(27):7783-7787.
SUN Hai-bin,WU Yu,WEI Ji-bo.Research on CORBA Pluggable Protocols[J].Computer Knowledge and Technology.2009,5(27):7783-7787.
劉文斌(1983—),男,碩士,工程師,主要研究方向?yàn)檐浖o(wú)線電;
LIU Wen-bin(1983-),male,M.sci., engineer,mainly working at software defined radio.
廖文瑜(1986—),男,碩士,工程師,主要研究方向?yàn)檐浖o(wú)線電;
LIAO Wen-yu(1986-),male,M.sci.,engineer,majoring in software defined radio.
彭 麟(1972—),男,碩士,高級(jí)工程師,主要研究方向?yàn)闊o(wú)線通信系統(tǒng)設(shè)計(jì)和電臺(tái)設(shè)計(jì);
PENG Lin(1972-),male,M.sci.,senior engineer, mainly engaged in the design of wireless communication system and radio.
丁建鋒(1977—),男,學(xué)士,高級(jí)工程師,主要研究方向?yàn)闊o(wú)線通信系統(tǒng)。
DING Jian-feng(1977-),male,B.Sci.,senior engineer, principally working at wireless communication system.
Analysis of Development and Methods Upgrade to SCA 4.0 for Radio Software Architecture
LIU Wen-bin,LIAO Wen-yu,PENG Lin,DING Jian-feng
(Southwest Research Institute of Communications,Chengdu Sichuan 610041,China)
Standard software architecture can be used to design platform-independent waveform applications,making the radio software based on hierarchy design more open and cooperative.Software Communication Architecture(SCA)helps implement standard,platform-independent and smart radio software.In this paper,development and application of SCA is first introduced,then the experience of SCA2.2 software development is proposed and features of SCA4.0 is discussed,and after that,upgrade methods from SCA2.2 architecture to SCA 4.0 for core framework,platform and waveforms are provided.Trends of radio software development based on SCA architecture are also considered.
SDR;SCA;JTRS;core framework
TN924
A
1002-0802(2014)04-0396-05
10.3969/j.issn.1002-0802.2014.04.011