侯昌磊,趙 蕾,孫德榮
(中國(guó)西南電子技術(shù)研究所,成都 610036)
傳統(tǒng)戰(zhàn)術(shù)通信裝備是為了滿足特定任務(wù)需求而設(shè)計(jì)實(shí)現(xiàn)的,不同電臺(tái)裝備的工作頻段、調(diào)制方式和通信協(xié)議存在很大差異,導(dǎo)致系統(tǒng)間不能互聯(lián)互通,功能實(shí)現(xiàn)與硬件緊耦合,波形的可移植性差和維護(hù)升級(jí)難。聯(lián)合戰(zhàn)術(shù)無(wú)線電系統(tǒng)(Joint Tactical Radio System,JTRS)引入軟件無(wú)線電概念,要求電臺(tái)的功能盡量由軟件而不是硬件來(lái)實(shí)現(xiàn),一個(gè)軟件無(wú)線電硬件平臺(tái)可以支持多個(gè)波形,一個(gè)波形可以部署到不同的硬件平臺(tái)上,通過(guò)動(dòng)態(tài)配置部署波形到硬件平臺(tái),實(shí)現(xiàn)軟件無(wú)線電通信系統(tǒng)的可重配置、可升級(jí)、良好的互通性,保證不同通信系統(tǒng)間的實(shí)時(shí)信息交換[1]。美軍基于軟件無(wú)線電技術(shù)開(kāi)展了長(zhǎng)期的研究工作,制定了軟件通信架構(gòu)(Software Communications Architecture,SCA)標(biāo)準(zhǔn)來(lái)支持SDR的功能性和可擴(kuò)展性。SCA是一套約束系統(tǒng)設(shè)計(jì)的規(guī)則,定義了開(kāi)放的、與具體實(shí)現(xiàn)無(wú)關(guān)的軟件體系架構(gòu),對(duì)SDR系統(tǒng)軟件組件的接口、功能和傳輸機(jī)制特性等進(jìn)行約束。本文后續(xù)提到的軟件無(wú)線電系統(tǒng)均是遵循SCA體系標(biāo)準(zhǔn)的軟件無(wú)線電系統(tǒng)。為了提高波形應(yīng)用的互操作性和可移植性,聯(lián)合戰(zhàn)術(shù)網(wǎng)絡(luò)中心(Joint Tactical Networking Center,JTNC)還定義了一系列的設(shè)備與服務(wù)的JTRS API編程接口。
隨著軟件無(wú)線電技術(shù)的迅速發(fā)展,越來(lái)越多廠家開(kāi)展了基于軟件無(wú)線電標(biāo)準(zhǔn)的技術(shù)研究和產(chǎn)品研制?;赟CA的聯(lián)合戰(zhàn)術(shù)通信裝備開(kāi)發(fā)模式與傳統(tǒng)方式不同,分工更專(zhuān)業(yè)和精細(xì),硬件設(shè)備、平臺(tái)軟件和波形組件往往由不同廠商研制。硬件平臺(tái)需具備部署多種波形的電性能能力,平臺(tái)軟件需為應(yīng)用波形提供符合軟件無(wú)線電標(biāo)準(zhǔn)的核心框架、傳輸機(jī)制和操作系統(tǒng)等平臺(tái)軟件,波形在實(shí)現(xiàn)功能同時(shí)還需符合軟件無(wú)線電標(biāo)準(zhǔn),才能將波形成功部署到硬件平臺(tái)上最終形成聯(lián)合戰(zhàn)術(shù)通信設(shè)備。但是,各生產(chǎn)廠商對(duì)軟件無(wú)線電標(biāo)準(zhǔn)的理解不同,產(chǎn)品實(shí)現(xiàn)存在差異,導(dǎo)致軟件之間不能相互兼容,設(shè)備集成需花費(fèi)大量時(shí)間。目前國(guó)內(nèi)對(duì)軟件無(wú)線電系統(tǒng)的符合性研究不多,僅有針對(duì)某個(gè)點(diǎn)的研究(核心框架或硬件抽象層),因此,亟需開(kāi)展軟件無(wú)線電系統(tǒng)標(biāo)準(zhǔn)符合性測(cè)試的系統(tǒng)性研究。
為了評(píng)價(jià)軟件無(wú)線電系統(tǒng)的標(biāo)準(zhǔn)符合性,本文設(shè)計(jì)并搭建了一個(gè)軟件無(wú)線電標(biāo)準(zhǔn)符合性測(cè)試系統(tǒng),在構(gòu)建的測(cè)試系統(tǒng)上開(kāi)展平臺(tái)軟件和波形符合性測(cè)試驗(yàn)證。
軟件無(wú)線電標(biāo)準(zhǔn)符合性測(cè)試系統(tǒng)示意圖如圖1所示。測(cè)試系統(tǒng)分為兩部分,運(yùn)行在測(cè)試主機(jī)上的測(cè)試軟件和運(yùn)行在待測(cè)設(shè)備上的測(cè)試用例軟件。測(cè)試系統(tǒng)通過(guò)以太網(wǎng)與待測(cè)設(shè)備連接,調(diào)用待測(cè)設(shè)備上軟件的接口進(jìn)行平臺(tái)軟件和波形的符合性測(cè)試[2]。通過(guò)標(biāo)準(zhǔn)符合性測(cè)試的波形軟件在移植到其他通過(guò)標(biāo)準(zhǔn)符合性測(cè)試的設(shè)備時(shí),不需要改動(dòng)代碼或者改動(dòng)很小,在新開(kāi)發(fā)環(huán)境下重新編譯就可以部署在新設(shè)備上。
圖1 軟件無(wú)線電標(biāo)準(zhǔn)符合性測(cè)試系統(tǒng)示意圖
軟件無(wú)線電標(biāo)準(zhǔn)體系架構(gòu)如圖2所示,標(biāo)準(zhǔn)分為SCA標(biāo)準(zhǔn)和JTRS API兩大類(lèi)[3],分別定義了軟件無(wú)線電系統(tǒng)的軟件體系架構(gòu)和應(yīng)用編程接口,這些標(biāo)準(zhǔn)是軟件無(wú)線電標(biāo)準(zhǔn)符合性測(cè)試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)的依據(jù)。SCA標(biāo)準(zhǔn)對(duì)核心框架、傳輸機(jī)制、操作系統(tǒng)和域描述文件進(jìn)行定義和約束;JTRS API基于SCA標(biāo)準(zhǔn)對(duì)常用的外設(shè)設(shè)備、服務(wù)和硬件抽象層(Modem Hardware Abstract Layer,MHAL)進(jìn)行定義和約束,目的是為波形軟件提供統(tǒng)一的訪問(wèn)接口。
圖2 軟件無(wú)線電標(biāo)準(zhǔn)體系架構(gòu)
軟件測(cè)試有白盒測(cè)試和黑盒測(cè)試兩種測(cè)試方法,白盒測(cè)試需要熟悉軟件的代碼實(shí)現(xiàn)和開(kāi)發(fā)環(huán)境,測(cè)試覆蓋代碼的邏輯、算法和執(zhí)行路徑等;黑盒測(cè)試又稱(chēng)為功能測(cè)試,不關(guān)心內(nèi)部實(shí)現(xiàn),從用戶角度對(duì)軟件進(jìn)行測(cè)試,驗(yàn)證其功能是否與規(guī)格一致。軟件無(wú)線電標(biāo)準(zhǔn)符合性測(cè)試系統(tǒng)采用黑盒測(cè)試,遍歷正常輸入和異常輸入,對(duì)比行為和輸出結(jié)果是否與標(biāo)準(zhǔn)一致,正常輸入時(shí)能完成定義的功能,異常輸入時(shí)可以拋出異?;蚪o出錯(cuò)誤提示,視為符合標(biāo)準(zhǔn),反之不符合標(biāo)準(zhǔn)。
待測(cè)設(shè)備或軟件是否符合標(biāo)準(zhǔn)取決于聲明的產(chǎn)品配置實(shí)現(xiàn)是否與標(biāo)準(zhǔn)一致。產(chǎn)品配置指產(chǎn)品量級(jí)或功能單元集,比如產(chǎn)品A是可控制和可配置的符合SCA的應(yīng)用組件,產(chǎn)品B是中量級(jí)核心框架、輕量級(jí)應(yīng)用環(huán)境配置(Application Environment Profiles,AEP)POSIX接口、全量級(jí)公用對(duì)象請(qǐng)求代理體系(Common Object Request Broker Architecture,CORBA)的符合SCA的平臺(tái)軟件。
軟件無(wú)線電系統(tǒng)符合性測(cè)試流程如圖3所示。首先檢查待測(cè)方提交的軟件及文檔清單是否齊全,通常包括編譯環(huán)境、庫(kù)文件、可執(zhí)行文件、域描述文件和使用文檔等;部分測(cè)試項(xiàng)測(cè)試需針對(duì)設(shè)備運(yùn)行環(huán)境開(kāi)展測(cè)試用例的適配,在測(cè)試設(shè)備中運(yùn)行測(cè)試用例程序;根據(jù)待測(cè)方聲明的軟件產(chǎn)品配置創(chuàng)建測(cè)試方案,自動(dòng)生成測(cè)試用例,執(zhí)行測(cè)試用例,根據(jù)用例執(zhí)行結(jié)果給出測(cè)試結(jié)果,并自動(dòng)生成測(cè)試報(bào)告[4]。
圖3 軟件無(wú)線電系統(tǒng)符合性測(cè)試流程
軟件無(wú)線電系統(tǒng)標(biāo)準(zhǔn)符合性測(cè)試項(xiàng)如圖4所示,包括軟件平臺(tái)測(cè)試和波形測(cè)試,每個(gè)大項(xiàng)下包括若干個(gè)小項(xiàng)。測(cè)試系統(tǒng)既可以對(duì)整機(jī)設(shè)備測(cè)試,也可以對(duì)單個(gè)測(cè)試項(xiàng)進(jìn)行測(cè)試。
圖4 軟件無(wú)線電系統(tǒng)標(biāo)準(zhǔn)符合性測(cè)試項(xiàng)
軟件平臺(tái)包括操作系統(tǒng)、傳輸機(jī)制、硬件抽象層、核心框架和設(shè)備與服務(wù)等軟件,根據(jù)應(yīng)用場(chǎng)景不同選擇不同的量級(jí)。軟件平臺(tái)功能單元量級(jí)配置如圖6所示,分為輕量級(jí)、中量級(jí)和全量級(jí)三個(gè)級(jí)別[5]。輕量級(jí)需實(shí)現(xiàn)AEP和部署功能單元,中量級(jí)在輕量級(jí)基礎(chǔ)上增加管理注冊(cè)功能單元,全量級(jí)在中量級(jí)基礎(chǔ)上增加管理釋放和管理注銷(xiāo)功能單元,其他為可選項(xiàng)。每個(gè)功能單元是接口集合。軟件平臺(tái)產(chǎn)品測(cè)試前應(yīng)說(shuō)明實(shí)現(xiàn)的量級(jí),測(cè)試時(shí)測(cè)試系統(tǒng)對(duì)量級(jí)對(duì)應(yīng)的測(cè)試項(xiàng)進(jìn)行測(cè)試,可選項(xiàng)一旦實(shí)現(xiàn)就應(yīng)按照規(guī)范進(jìn)行測(cè)試。
圖5 軟件平臺(tái)功能單元量級(jí)配置
圖6 操作系統(tǒng)AEP定義
2.1.1 操作系統(tǒng)符合性測(cè)試
操作系統(tǒng)為應(yīng)用組件提供線程調(diào)度、內(nèi)存管理、網(wǎng)絡(luò)協(xié)議和C標(biāo)準(zhǔn)庫(kù)支持。JTNC針對(duì)SCA領(lǐng)域定義了AEP、LwAEP、ULwAEP三個(gè)量級(jí)函數(shù)集[6],如圖7所示,不同的量級(jí)支持的函數(shù)集合不同。操作系統(tǒng)符合性測(cè)試內(nèi)容主要包括API的接口齊備性、接口符合性和功能正確性。接口齊備性指實(shí)現(xiàn)的接口函數(shù)數(shù)目齊全,接口符合性指函數(shù)名稱(chēng)、參數(shù)類(lèi)型和個(gè)數(shù)以及返回值是否與標(biāo)準(zhǔn)一致。這兩項(xiàng)在測(cè)試用例適配編譯時(shí)完成。功能正確性指測(cè)試注入不同的輸入時(shí),軟件行為和輸出應(yīng)符合標(biāo)準(zhǔn)要求。
操作系統(tǒng)測(cè)試時(shí),首先測(cè)試主機(jī)測(cè)試軟件依據(jù)量級(jí)自動(dòng)生成測(cè)試方案,遍歷測(cè)試方案中的測(cè)試用例,向運(yùn)行在GPP上的測(cè)試用例程序發(fā)起調(diào)用請(qǐng)求;測(cè)試用例程序調(diào)用操作系統(tǒng)函數(shù),根據(jù)測(cè)試程序執(zhí)行情況給出測(cè)試結(jié)果,最后自動(dòng)生成測(cè)試報(bào)告。
2.1.2 傳輸機(jī)制符合性測(cè)試
JTNC不再?gòu)?qiáng)制使用CORBA作為傳輸機(jī)制,還可選用Data Distribution Service(DDS)、Internet Communication Engine(ICE)等中間件,但是目前JTNC僅對(duì)CORBA中間件需實(shí)現(xiàn)的接口有約束,定義了Full、Lightweight和UltraLightweight三個(gè)量級(jí)的接口集配置[7]。傳輸機(jī)制測(cè)試內(nèi)容包括接口齊備性、接口符合性、功能正確性和傳輸性能。
CORBA測(cè)試需在目標(biāo)設(shè)備上適配傳輸機(jī)制測(cè)試程序,首先使用接口定義語(yǔ)言(Interface Definition Language,IDL)編譯器生成stub和skeleton文件,再與測(cè)試代碼一起編譯生成測(cè)試程序,編譯的同時(shí)可對(duì)CORBA接口齊備性、接口符合性進(jìn)行檢查。測(cè)試時(shí),測(cè)試主機(jī)測(cè)試軟件依據(jù)量級(jí)自動(dòng)生成測(cè)試方案,遍歷測(cè)試方案中的測(cè)試用例,向運(yùn)行在GPP上的測(cè)試用例程序發(fā)起調(diào)用請(qǐng)求;測(cè)試用例程序再調(diào)用CORBA接口,根據(jù)測(cè)試程序執(zhí)行情況給出測(cè)試結(jié)果,最后自動(dòng)生成測(cè)試報(bào)告。傳輸機(jī)制是組件間重要的通信中間件,傳輸性能直接影響應(yīng)用波形和整機(jī)設(shè)備的性能,因此應(yīng)進(jìn)行傳輸帶寬、時(shí)延和抖動(dòng)測(cè)試。傳輸機(jī)制測(cè)試還應(yīng)對(duì)本地調(diào)用和遠(yuǎn)程調(diào)用分別進(jìn)行測(cè)試。
2.1.3 硬件抽象層符合性測(cè)試
硬件抽象層與傳輸機(jī)制一起作為組件間通信機(jī)制,為組件間提供一致的通信接口,解決GPP、DSP和FPGA三類(lèi)波形組件間的通信問(wèn)題。硬件抽象層測(cè)試內(nèi)容包括接口齊備性、功能正確性、傳輸性能和RFChain。硬件抽象層的傳輸性能直接影響應(yīng)用波形和整機(jī)設(shè)備的性能,因此應(yīng)進(jìn)行傳輸帶寬、時(shí)延和抖動(dòng)測(cè)試。硬件抽象層還定義了控制前端射頻的標(biāo)準(zhǔn)ICD,即RFChain,控制的發(fā)起方可以是GPP、DSP,也可以是FPGA。
GPP測(cè)試程序適配,根據(jù)GPP硬件抽象層的域描述文件提供的信息,訪問(wèn)域管理器獲取硬件抽象層設(shè)備的提供者端口句柄,建立與MHAL設(shè)備的使用者端口的連接;GPP測(cè)試程序使用提供者端口句柄向DSP和FPGA發(fā)送數(shù)據(jù),GPP測(cè)試程序通過(guò)使用者端口從DSP和FPGA接收數(shù)據(jù)。DSP和FPGA測(cè)試程序適配,將測(cè)試代碼與待測(cè)方提供的庫(kù)文件編譯;測(cè)試主機(jī)測(cè)試軟件控制運(yùn)行在GPP、DSP和FPGA上的測(cè)試用例程序進(jìn)行數(shù)據(jù)收發(fā)測(cè)試,并將測(cè)試結(jié)果返回到主機(jī)測(cè)試軟件,最后自動(dòng)生成測(cè)試報(bào)告。
2.1.4 核心框架符合性測(cè)試
核心框架測(cè)試內(nèi)容包括域管理器、設(shè)備管理器、應(yīng)用工廠、應(yīng)用管理器、基礎(chǔ)設(shè)備、文件服務(wù)等組件[8]的接口符合性和功能正確性。接口符合性包括函數(shù)名稱(chēng)、參數(shù)、返回值及異常觸發(fā)。被測(cè)核心框架需提供核心框架庫(kù)或者可行執(zhí)行文件、覆蓋測(cè)試要求的測(cè)試設(shè)備和測(cè)試波形,測(cè)試系統(tǒng)通過(guò)CORBA調(diào)用核心框架的各組件接口,測(cè)試設(shè)備和測(cè)試波形作為核心框架的輸入元素。
測(cè)試時(shí),首先解析DCD文件,啟動(dòng)域管理器、設(shè)備管理器、設(shè)備和服務(wù),測(cè)試系統(tǒng)通過(guò)corbaloc獲取測(cè)試組件的對(duì)象引用,調(diào)用組件對(duì)象的接口,根據(jù)調(diào)用結(jié)果判斷接口和功能是否符合標(biāo)準(zhǔn)。以域管理器的組件注冊(cè)器registerComponen測(cè)試為例,該函數(shù)的作用是將設(shè)備管理器組件注冊(cè)到域管理器組件的注冊(cè)器,函數(shù)聲明是void CF::ComponentRegistry::registerComponent(in ComponentType registeringComponent)raises(InvalidObjectReference,RegisterError);首先獲取域管理器組件注冊(cè)器的對(duì)象引用,實(shí)例化設(shè)備管理器測(cè)試用例,調(diào)用registerComponent函數(shù)注冊(cè)設(shè)備管理器到組件注冊(cè)器,然后查看設(shè)備管理器數(shù)量是否增加1,如是則表明該函數(shù)功能符合標(biāo)準(zhǔn),除此之外還需做異常捕獲測(cè)試,比如registeringComponent 傳入的對(duì)象引用非法應(yīng)拋出InvalidObjectReference異常,其他導(dǎo)致注冊(cè)失敗情況均需拋出RegisterError。
軟件無(wú)線電系統(tǒng)的波形軟件由核心框架部署到硬件平臺(tái),波形部署和卸載時(shí)間是系統(tǒng)的重要指標(biāo),因此需要對(duì)這兩個(gè)指標(biāo)進(jìn)行測(cè)試。部署時(shí)間包括安裝應(yīng)用、創(chuàng)建應(yīng)用和啟動(dòng)應(yīng)用的時(shí)間,卸載時(shí)間包括停止應(yīng)用、釋放對(duì)象和卸載應(yīng)用的時(shí)間。
2.1.5 設(shè)備與服務(wù)符合性測(cè)試
軟件無(wú)線電標(biāo)準(zhǔn)對(duì)一些常用的設(shè)備與服務(wù)對(duì)外提供的接口進(jìn)行了定義,比如EthernetDevice、AudioPortDevice、TimingService、SerialPortDevice、GpsDevice、VocoderService和FrequencyReferenceDevice等。測(cè)試內(nèi)容主要包括域描述文件符合性、接口符合性、功能正確性和屬性管理,域描述文件包括spd、dcd、prf(可選)。需對(duì)域描述文件格式和內(nèi)容進(jìn)行符合性檢測(cè)。
測(cè)試時(shí)先啟動(dòng)設(shè)備或服務(wù),測(cè)試系統(tǒng)通過(guò)傳輸機(jī)制獲取設(shè)備或服務(wù)的對(duì)象引用,設(shè)備或服務(wù)通常對(duì)外提供provides和uses兩類(lèi)端口如圖7所示,測(cè)試程序建立與設(shè)備或服務(wù)的連接,保證測(cè)試程序和被測(cè)設(shè)備服務(wù)獲取訪問(wèn)對(duì)方的端口對(duì)象引用,按照接口定義調(diào)用接口,根據(jù)執(zhí)行結(jié)果判斷是否符合標(biāo)準(zhǔn),最后生成測(cè)試報(bào)告。
圖7 設(shè)備、服務(wù)測(cè)試示意圖
波形測(cè)試分為組件級(jí)測(cè)試和應(yīng)用級(jí)測(cè)試。組件測(cè)試內(nèi)容包括域描述文件符合性、接口符合性和功能符合性,組件域描述文件包括spd、dcd、prf。需對(duì)域描述文件格式和內(nèi)容進(jìn)行符合性檢測(cè)。組件的接口符合性分為兩類(lèi),如圖8所示,一類(lèi)是編程接口符合性,組件在訪問(wèn)操作系統(tǒng)、傳輸機(jī)制、標(biāo)準(zhǔn)設(shè)備與服務(wù)、核心框架時(shí),應(yīng)嚴(yán)格按照標(biāo)準(zhǔn)定義不超量級(jí)使用,測(cè)試的要點(diǎn)是組件訪問(wèn)這些平臺(tái)軟件時(shí)調(diào)用的接口是否符合標(biāo)準(zhǔn);另一類(lèi)是作為應(yīng)用組件應(yīng)該實(shí)現(xiàn)如表1所示的基本應(yīng)用接口(部分為可選項(xiàng))供核心框架調(diào)用,測(cè)試的要點(diǎn)是通過(guò)遠(yuǎn)程調(diào)用看組件是否實(shí)現(xiàn)基本應(yīng)用接口。應(yīng)用測(cè)試將組件按照sad域描述文件裝配、加載起來(lái),經(jīng)過(guò)一系列處理輸出信號(hào)是否能達(dá)到預(yù)期。
圖8 組件編程接口
表1 組件基礎(chǔ)應(yīng)用接口
為了驗(yàn)證測(cè)試系統(tǒng)的可行性,在由FPGA、DSP和GPP等芯片構(gòu)成的硬件平臺(tái)上,對(duì)平臺(tái)軟件進(jìn)行測(cè)試。針對(duì)具體芯片開(kāi)發(fā)適配測(cè)試操作系統(tǒng)、傳輸機(jī)制、硬件抽象層的測(cè)試用例,開(kāi)發(fā)測(cè)試核心框架和波形測(cè)試的陪測(cè)波形和陪測(cè)設(shè)備,最后對(duì)平臺(tái)軟件和波形軟件進(jìn)行了符合性測(cè)試。測(cè)試系統(tǒng)工作時(shí)軟件組件部署如圖9所示,F(xiàn)PGA芯片上部署硬件抽象層、FPGA波形組件和FPGA測(cè)試組件,DSP芯片上部署硬件抽象層、DSP波形組件和DSP組件,GPP芯片上部署操作系統(tǒng)、核心框架、傳輸機(jī)制、硬件抽象層、設(shè)備與服務(wù)、GPP波形組件和GPP測(cè)試組件,測(cè)試系統(tǒng)主機(jī)上部署測(cè)試系統(tǒng)軟件。
圖9 測(cè)試系統(tǒng)軟件部署圖
本文對(duì)軟件無(wú)線電系統(tǒng)的標(biāo)準(zhǔn)符合性進(jìn)行研究,提出了一種軟件無(wú)線電系統(tǒng)標(biāo)準(zhǔn)符合性測(cè)試系統(tǒng)的實(shí)現(xiàn)方式,給出了軟件平臺(tái)和波形的測(cè)試方法和實(shí)現(xiàn)技術(shù)途徑,設(shè)計(jì)實(shí)現(xiàn)了一套軟件無(wú)線電標(biāo)準(zhǔn)符合性測(cè)試系統(tǒng),并進(jìn)行了測(cè)試驗(yàn)證,測(cè)試結(jié)果表明測(cè)試系統(tǒng)可實(shí)現(xiàn)對(duì)從單一軟件產(chǎn)品到整機(jī)設(shè)備產(chǎn)品的符合性測(cè)試;通過(guò)符合性測(cè)試的軟件無(wú)線電設(shè)備和軟件間可以互相兼容,可以大大縮短聯(lián)合戰(zhàn)術(shù)通信裝備的波形移植開(kāi)發(fā)和系統(tǒng)集成周期。