侯昌磊,趙 蕾,孫德榮
(中國西南電子技術研究所,成都 610036)
傳統戰術通信裝備是為了滿足特定任務需求而設計實現的,不同電臺裝備的工作頻段、調制方式和通信協議存在很大差異,導致系統間不能互聯互通,功能實現與硬件緊耦合,波形的可移植性差和維護升級難。聯合戰術無線電系統(Joint Tactical Radio System,JTRS)引入軟件無線電概念,要求電臺的功能盡量由軟件而不是硬件來實現,一個軟件無線電硬件平臺可以支持多個波形,一個波形可以部署到不同的硬件平臺上,通過動態配置部署波形到硬件平臺,實現軟件無線電通信系統的可重配置、可升級、良好的互通性,保證不同通信系統間的實時信息交換[1]。美軍基于軟件無線電技術開展了長期的研究工作,制定了軟件通信架構(Software Communications Architecture,SCA)標準來支持SDR的功能性和可擴展性。SCA是一套約束系統設計的規則,定義了開放的、與具體實現無關的軟件體系架構,對SDR系統軟件組件的接口、功能和傳輸機制特性等進行約束。本文后續提到的軟件無線電系統均是遵循SCA體系標準的軟件無線電系統。為了提高波形應用的互操作性和可移植性,聯合戰術網絡中心(Joint Tactical Networking Center,JTNC)還定義了一系列的設備與服務的JTRS API編程接口。
隨著軟件無線電技術的迅速發展,越來越多廠家開展了基于軟件無線電標準的技術研究和產品研制?;赟CA的聯合戰術通信裝備開發模式與傳統方式不同,分工更專業和精細,硬件設備、平臺軟件和波形組件往往由不同廠商研制。硬件平臺需具備部署多種波形的電性能能力,平臺軟件需為應用波形提供符合軟件無線電標準的核心框架、傳輸機制和操作系統等平臺軟件,波形在實現功能同時還需符合軟件無線電標準,才能將波形成功部署到硬件平臺上最終形成聯合戰術通信設備。但是,各生產廠商對軟件無線電標準的理解不同,產品實現存在差異,導致軟件之間不能相互兼容,設備集成需花費大量時間。目前國內對軟件無線電系統的符合性研究不多,僅有針對某個點的研究(核心框架或硬件抽象層),因此,亟需開展軟件無線電系統標準符合性測試的系統性研究。
為了評價軟件無線電系統的標準符合性,本文設計并搭建了一個軟件無線電標準符合性測試系統,在構建的測試系統上開展平臺軟件和波形符合性測試驗證。
軟件無線電標準符合性測試系統示意圖如圖1所示。測試系統分為兩部分,運行在測試主機上的測試軟件和運行在待測設備上的測試用例軟件。測試系統通過以太網與待測設備連接,調用待測設備上軟件的接口進行平臺軟件和波形的符合性測試[2]。通過標準符合性測試的波形軟件在移植到其他通過標準符合性測試的設備時,不需要改動代碼或者改動很小,在新開發環境下重新編譯就可以部署在新設備上。

圖1 軟件無線電標準符合性測試系統示意圖
軟件無線電標準體系架構如圖2所示,標準分為SCA標準和JTRS API兩大類[3],分別定義了軟件無線電系統的軟件體系架構和應用編程接口,這些標準是軟件無線電標準符合性測試系統的設計與實現的依據。SCA標準對核心框架、傳輸機制、操作系統和域描述文件進行定義和約束;JTRS API基于SCA標準對常用的外設設備、服務和硬件抽象層(Modem Hardware Abstract Layer,MHAL)進行定義和約束,目的是為波形軟件提供統一的訪問接口。

圖2 軟件無線電標準體系架構
軟件測試有白盒測試和黑盒測試兩種測試方法,白盒測試需要熟悉軟件的代碼實現和開發環境,測試覆蓋代碼的邏輯、算法和執行路徑等;黑盒測試又稱為功能測試,不關心內部實現,從用戶角度對軟件進行測試,驗證其功能是否與規格一致。軟件無線電標準符合性測試系統采用黑盒測試,遍歷正常輸入和異常輸入,對比行為和輸出結果是否與標準一致,正常輸入時能完成定義的功能,異常輸入時可以拋出異?;蚪o出錯誤提示,視為符合標準,反之不符合標準。
待測設備或軟件是否符合標準取決于聲明的產品配置實現是否與標準一致。產品配置指產品量級或功能單元集,比如產品A是可控制和可配置的符合SCA的應用組件,產品B是中量級核心框架、輕量級應用環境配置(Application Environment Profiles,AEP)POSIX接口、全量級公用對象請求代理體系(Common Object Request Broker Architecture,CORBA)的符合SCA的平臺軟件。
軟件無線電系統符合性測試流程如圖3所示。首先檢查待測方提交的軟件及文檔清單是否齊全,通常包括編譯環境、庫文件、可執行文件、域描述文件和使用文檔等;部分測試項測試需針對設備運行環境開展測試用例的適配,在測試設備中運行測試用例程序;根據待測方聲明的軟件產品配置創建測試方案,自動生成測試用例,執行測試用例,根據用例執行結果給出測試結果,并自動生成測試報告[4]。

圖3 軟件無線電系統符合性測試流程
軟件無線電系統標準符合性測試項如圖4所示,包括軟件平臺測試和波形測試,每個大項下包括若干個小項。測試系統既可以對整機設備測試,也可以對單個測試項進行測試。

圖4 軟件無線電系統標準符合性測試項
軟件平臺包括操作系統、傳輸機制、硬件抽象層、核心框架和設備與服務等軟件,根據應用場景不同選擇不同的量級。軟件平臺功能單元量級配置如圖6所示,分為輕量級、中量級和全量級三個級別[5]。輕量級需實現AEP和部署功能單元,中量級在輕量級基礎上增加管理注冊功能單元,全量級在中量級基礎上增加管理釋放和管理注銷功能單元,其他為可選項。每個功能單元是接口集合。軟件平臺產品測試前應說明實現的量級,測試時測試系統對量級對應的測試項進行測試,可選項一旦實現就應按照規范進行測試。

圖5 軟件平臺功能單元量級配置

圖6 操作系統AEP定義
2.1.1 操作系統符合性測試
操作系統為應用組件提供線程調度、內存管理、網絡協議和C標準庫支持。JTNC針對SCA領域定義了AEP、LwAEP、ULwAEP三個量級函數集[6],如圖7所示,不同的量級支持的函數集合不同。操作系統符合性測試內容主要包括API的接口齊備性、接口符合性和功能正確性。接口齊備性指實現的接口函數數目齊全,接口符合性指函數名稱、參數類型和個數以及返回值是否與標準一致。這兩項在測試用例適配編譯時完成。功能正確性指測試注入不同的輸入時,軟件行為和輸出應符合標準要求。
操作系統測試時,首先測試主機測試軟件依據量級自動生成測試方案,遍歷測試方案中的測試用例,向運行在GPP上的測試用例程序發起調用請求;測試用例程序調用操作系統函數,根據測試程序執行情況給出測試結果,最后自動生成測試報告。
2.1.2 傳輸機制符合性測試
JTNC不再強制使用CORBA作為傳輸機制,還可選用Data Distribution Service(DDS)、Internet Communication Engine(ICE)等中間件,但是目前JTNC僅對CORBA中間件需實現的接口有約束,定義了Full、Lightweight和UltraLightweight三個量級的接口集配置[7]。傳輸機制測試內容包括接口齊備性、接口符合性、功能正確性和傳輸性能。
CORBA測試需在目標設備上適配傳輸機制測試程序,首先使用接口定義語言(Interface Definition Language,IDL)編譯器生成stub和skeleton文件,再與測試代碼一起編譯生成測試程序,編譯的同時可對CORBA接口齊備性、接口符合性進行檢查。測試時,測試主機測試軟件依據量級自動生成測試方案,遍歷測試方案中的測試用例,向運行在GPP上的測試用例程序發起調用請求;測試用例程序再調用CORBA接口,根據測試程序執行情況給出測試結果,最后自動生成測試報告。傳輸機制是組件間重要的通信中間件,傳輸性能直接影響應用波形和整機設備的性能,因此應進行傳輸帶寬、時延和抖動測試。傳輸機制測試還應對本地調用和遠程調用分別進行測試。
2.1.3 硬件抽象層符合性測試
硬件抽象層與傳輸機制一起作為組件間通信機制,為組件間提供一致的通信接口,解決GPP、DSP和FPGA三類波形組件間的通信問題。硬件抽象層測試內容包括接口齊備性、功能正確性、傳輸性能和RFChain。硬件抽象層的傳輸性能直接影響應用波形和整機設備的性能,因此應進行傳輸帶寬、時延和抖動測試。硬件抽象層還定義了控制前端射頻的標準ICD,即RFChain,控制的發起方可以是GPP、DSP,也可以是FPGA。
GPP測試程序適配,根據GPP硬件抽象層的域描述文件提供的信息,訪問域管理器獲取硬件抽象層設備的提供者端口句柄,建立與MHAL設備的使用者端口的連接;GPP測試程序使用提供者端口句柄向DSP和FPGA發送數據,GPP測試程序通過使用者端口從DSP和FPGA接收數據。DSP和FPGA測試程序適配,將測試代碼與待測方提供的庫文件編譯;測試主機測試軟件控制運行在GPP、DSP和FPGA上的測試用例程序進行數據收發測試,并將測試結果返回到主機測試軟件,最后自動生成測試報告。
2.1.4 核心框架符合性測試
核心框架測試內容包括域管理器、設備管理器、應用工廠、應用管理器、基礎設備、文件服務等組件[8]的接口符合性和功能正確性。接口符合性包括函數名稱、參數、返回值及異常觸發。被測核心框架需提供核心框架庫或者可行執行文件、覆蓋測試要求的測試設備和測試波形,測試系統通過CORBA調用核心框架的各組件接口,測試設備和測試波形作為核心框架的輸入元素。
測試時,首先解析DCD文件,啟動域管理器、設備管理器、設備和服務,測試系統通過corbaloc獲取測試組件的對象引用,調用組件對象的接口,根據調用結果判斷接口和功能是否符合標準。以域管理器的組件注冊器registerComponen測試為例,該函數的作用是將設備管理器組件注冊到域管理器組件的注冊器,函數聲明是void CF::ComponentRegistry::registerComponent(in ComponentType registeringComponent)raises(InvalidObjectReference,RegisterError);首先獲取域管理器組件注冊器的對象引用,實例化設備管理器測試用例,調用registerComponent函數注冊設備管理器到組件注冊器,然后查看設備管理器數量是否增加1,如是則表明該函數功能符合標準,除此之外還需做異常捕獲測試,比如registeringComponent 傳入的對象引用非法應拋出InvalidObjectReference異常,其他導致注冊失敗情況均需拋出RegisterError。
軟件無線電系統的波形軟件由核心框架部署到硬件平臺,波形部署和卸載時間是系統的重要指標,因此需要對這兩個指標進行測試。部署時間包括安裝應用、創建應用和啟動應用的時間,卸載時間包括停止應用、釋放對象和卸載應用的時間。
2.1.5 設備與服務符合性測試
軟件無線電標準對一些常用的設備與服務對外提供的接口進行了定義,比如EthernetDevice、AudioPortDevice、TimingService、SerialPortDevice、GpsDevice、VocoderService和FrequencyReferenceDevice等。測試內容主要包括域描述文件符合性、接口符合性、功能正確性和屬性管理,域描述文件包括spd、dcd、prf(可選)。需對域描述文件格式和內容進行符合性檢測。
測試時先啟動設備或服務,測試系統通過傳輸機制獲取設備或服務的對象引用,設備或服務通常對外提供provides和uses兩類端口如圖7所示,測試程序建立與設備或服務的連接,保證測試程序和被測設備服務獲取訪問對方的端口對象引用,按照接口定義調用接口,根據執行結果判斷是否符合標準,最后生成測試報告。

圖7 設備、服務測試示意圖
波形測試分為組件級測試和應用級測試。組件測試內容包括域描述文件符合性、接口符合性和功能符合性,組件域描述文件包括spd、dcd、prf。需對域描述文件格式和內容進行符合性檢測。組件的接口符合性分為兩類,如圖8所示,一類是編程接口符合性,組件在訪問操作系統、傳輸機制、標準設備與服務、核心框架時,應嚴格按照標準定義不超量級使用,測試的要點是組件訪問這些平臺軟件時調用的接口是否符合標準;另一類是作為應用組件應該實現如表1所示的基本應用接口(部分為可選項)供核心框架調用,測試的要點是通過遠程調用看組件是否實現基本應用接口。應用測試將組件按照sad域描述文件裝配、加載起來,經過一系列處理輸出信號是否能達到預期。

圖8 組件編程接口

表1 組件基礎應用接口
為了驗證測試系統的可行性,在由FPGA、DSP和GPP等芯片構成的硬件平臺上,對平臺軟件進行測試。針對具體芯片開發適配測試操作系統、傳輸機制、硬件抽象層的測試用例,開發測試核心框架和波形測試的陪測波形和陪測設備,最后對平臺軟件和波形軟件進行了符合性測試。測試系統工作時軟件組件部署如圖9所示,FPGA芯片上部署硬件抽象層、FPGA波形組件和FPGA測試組件,DSP芯片上部署硬件抽象層、DSP波形組件和DSP組件,GPP芯片上部署操作系統、核心框架、傳輸機制、硬件抽象層、設備與服務、GPP波形組件和GPP測試組件,測試系統主機上部署測試系統軟件。

圖9 測試系統軟件部署圖
本文對軟件無線電系統的標準符合性進行研究,提出了一種軟件無線電系統標準符合性測試系統的實現方式,給出了軟件平臺和波形的測試方法和實現技術途徑,設計實現了一套軟件無線電標準符合性測試系統,并進行了測試驗證,測試結果表明測試系統可實現對從單一軟件產品到整機設備產品的符合性測試;通過符合性測試的軟件無線電設備和軟件間可以互相兼容,可以大大縮短聯合戰術通信裝備的波形移植開發和系統集成周期。