陳曉紅 包曉燕
摘要:為使應(yīng)用波形不受電臺(tái)軟硬件平臺(tái)影響,實(shí)現(xiàn)應(yīng)用層波形與底層軟、硬件解耦合,遵循SCA4.1規(guī)范設(shè)計(jì)一種軟件定義無(wú)線電部署管理器,通過(guò)在電臺(tái)上動(dòng)態(tài)部署不同的波形,實(shí)現(xiàn)電臺(tái)功能的軟件定義。實(shí)驗(yàn)結(jié)果表明,部署管理器可在多通道上成功完成多個(gè)波形安裝、部署、卸載和刪除,且效率較高?;赟CA 4.1規(guī)范的軟件定義無(wú)線電部署管理器可提高波形可移植性和可重用性,進(jìn)一步提高電臺(tái)可操作性、改善用戶體驗(yàn)。
關(guān)鍵詞:軟件定義無(wú)線電;SCA4.1;波形部署
DOI:10.11907/rjdk.192126 開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
中圖分類(lèi)號(hào):TP319文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2020)006-0107-06
0 引言
軟件定義無(wú)線電(Softw&re Defined Radio,SDR)技術(shù)具有互操作性強(qiáng)、易升級(jí)、綠色節(jié)能等優(yōu)點(diǎn),得到了廣泛應(yīng)用,特別是在艦船通信領(lǐng)域,軟件無(wú)線電技術(shù)展示出獨(dú)特優(yōu)勢(shì)。
傳統(tǒng)艦船通信系統(tǒng)電臺(tái)種類(lèi)繁多、功能單一且靈活性差。外軍已將軟件無(wú)線電技術(shù)應(yīng)用于艦船通信設(shè)備,構(gòu)成了完全集成的通信系統(tǒng)。軟件定義通信裝備功能已成為一種趨勢(shì),我軍須從實(shí)際出發(fā),制定合適的目標(biāo)和策略,利用現(xiàn)有技術(shù)不斷提高裝備性能,改變傳統(tǒng)艦船通信系統(tǒng)結(jié)構(gòu),縮小系統(tǒng)體積,精簡(jiǎn)系統(tǒng)控制與管理,且確保與現(xiàn)有設(shè)備通信穩(wěn)定。目前國(guó)內(nèi)已開(kāi)展軟件無(wú)線電方面的研究,實(shí)現(xiàn)了設(shè)備向板卡集成、板卡向軟件集成,提高了通信系統(tǒng)集成水平,正推動(dòng)軟件無(wú)線電應(yīng)用向數(shù)字化、多模式、抗干擾性更強(qiáng)的方向發(fā)展。
美軍聯(lián)合戰(zhàn)術(shù)無(wú)線電系統(tǒng)(Joint Tactical Radio System,JTRS)計(jì)劃基于軟件定義無(wú)線電的思想,制定軟件通信體系架構(gòu)(Software Communication Architecture,SCA)規(guī)范。目前應(yīng)用最廣泛的是SCA 2.2.2規(guī)范,該應(yīng)用推動(dòng)了第二代SDR技術(shù)的市場(chǎng)應(yīng)用。目前該規(guī)范最新版本SCA 4.1于2015年8月發(fā)布。SCA4.1相比于SCA 2.2.2來(lái)說(shuō),能夠支持不同的傳輸機(jī)制、不同量級(jí)的架構(gòu),可以根據(jù)具體應(yīng)用場(chǎng)景優(yōu)化核心框架,采用“推”模型,減少函數(shù)調(diào)用總次數(shù),這些新特點(diǎn)可提高系統(tǒng)安全性、靈活性和可用性。
目前軟件定義無(wú)線電裝備還處于研制初期階段,依托SCA架構(gòu)的波形部署控制軟件相關(guān)研究屈指可數(shù),因此基于SCA 4.1規(guī)范的軟件定義無(wú)線電部署管理器研究具有重要意義。
1 軟件定義無(wú)線電部署管理器開(kāi)發(fā)架構(gòu)
從軟件開(kāi)發(fā)角度來(lái)看,SCA是一個(gè)基于組件開(kāi)發(fā)的體系架構(gòu),允許不同波形在分布式處理單元上進(jìn)行通信。基于組件開(kāi)發(fā)的體系架構(gòu)是一種允許創(chuàng)建、集成、重用波形組件的體系架構(gòu)。其應(yīng)用基于軟件組件裝配,軟件組件特點(diǎn)是能實(shí)現(xiàn)規(guī)模較小、可重用的二進(jìn)制代碼模塊和一個(gè)定義明確的功能;組件在被用于構(gòu)建一個(gè)應(yīng)用前,已被作為一個(gè)軟件的單元被設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試。用戶可在軟件組件產(chǎn)品說(shuō)明書(shū)目錄上選購(gòu)所需軟件組件,進(jìn)行裝配應(yīng)用。
圖1是SCA4.1版本的核心框架(Core Framework,CF)接口定義語(yǔ)言(Interface Definition Language,IDL)關(guān)系視圖,使用統(tǒng)一建模語(yǔ)言(Unified Modeling Language,UML)描述組件之間的關(guān)系,調(diào)用波形應(yīng)用無(wú)需知曉波形組件內(nèi)部具體實(shí)現(xiàn)。SCA軟件組件可分為3部分:邏輯設(shè)備、應(yīng)用和電臺(tái)部署管理器。
邏輯設(shè)備分為:設(shè)備(Devices)、可加載設(shè)備(LoadableDevice)、可執(zhí)行設(shè)備(Executable Device);應(yīng)用指可部署的通信標(biāo)準(zhǔn)軟件實(shí)現(xiàn),如FM、EPLRS、Linkl6等;電臺(tái)部署管理器用來(lái)對(duì)波形應(yīng)用實(shí)施安裝、卸載、部署、配置、健康監(jiān)視、自檢等。
2 軟件定義無(wú)線電部署管理器設(shè)計(jì)
2.1 功能描述
波形部署是SCA軟件無(wú)線電集成管理的關(guān)鍵之一,因此電臺(tái)部署管理器是軟件定義無(wú)線電裝備軟件平臺(tái)的一個(gè)重要組成部分,其在軟件無(wú)線電軟件平臺(tái)中的組成架構(gòu)如圖2所示,電臺(tái)部署管理器功能如圖3所示。
2.2 原理描述
部署管理器安裝波形前,首先需啟動(dòng)域管理器和設(shè)備管理器,通過(guò)解析域管理器配置文件(Domain Manager Configuration Descriptor,DMD)和設(shè)備配置文件(Device Configuration Descriptor,DCD),明確管理器使用的服務(wù),解析各設(shè)備相關(guān)域配置文件并啟動(dòng)組件,然后方可安裝和創(chuàng)建波形應(yīng)用。根據(jù)軟件裝配描述文件(Software Assembly Descriptor,SAD),波形應(yīng)用的裝配控制器把某波形包含的軟件組件加載到硬件設(shè)備上,并對(duì)軟件組件進(jìn)行組裝,通過(guò)connectUsesPorts建立組件之間的連接,并對(duì)波形應(yīng)用進(jìn)行啟動(dòng)、停止、配置和查詢等控制。
2.3 波形應(yīng)用軟件部署設(shè)計(jì)要求
由于實(shí)際電臺(tái)目標(biāo)設(shè)備及相關(guān)性能在波形組件部署前是已知的,所以波形組件對(duì)部署對(duì)象進(jìn)行相關(guān)屬性描述和靜態(tài)能力檢查是波形應(yīng)用軟件可部署的前提。波形應(yīng)用軟件部署設(shè)計(jì)要求主要包括:
(1)波形組件與部署相關(guān)的能力檢查,包括動(dòng)態(tài)能力檢查和靜態(tài)能力檢查。動(dòng)態(tài)能力檢查指在運(yùn)行時(shí)查詢,獲取用于部署的潛在目標(biāo)設(shè)備的能力;靜態(tài)能力檢查與之相反,運(yùn)行時(shí)已不需查詢,目標(biāo)設(shè)備能力在使用前均已知。實(shí)際應(yīng)用中電臺(tái)目標(biāo)設(shè)備及其能力不會(huì)動(dòng)態(tài)改變,所以采用靜態(tài)能力檢查。
(2)波形組件與部署相關(guān)屬性描述。在組件裝配描述文件中詳細(xì)描述待部署的組件集合。主要描述內(nèi)容為:波形應(yīng)用的每一個(gè)組件必須描述能力要求,能力屬性是描述一個(gè)可部署的組件適用于目標(biāo)平臺(tái)的處理器、操作系統(tǒng)類(lèi)型,并在編譯時(shí)針對(duì)目標(biāo)平臺(tái)硬件需求進(jìn)行編譯。
波形應(yīng)用的每一個(gè)組件必須描述容量要求,如內(nèi)存、MIPS等。容量屬性要求在硬件平臺(tái)中一些具有有限數(shù)量的物理資源在部署之前必須保留給待部署的組件,在容量屬性中必須描述組件每一個(gè)不同編譯(實(shí)現(xiàn))版本對(duì)容量的要求。
同時(shí)還需描述波形應(yīng)用所有組件的互聯(lián)關(guān)系。一個(gè)波形應(yīng)用是一組已裝配的組件集合,將組件連接在一起建立一個(gè)裝配好的組件間數(shù)據(jù)流。一個(gè)連接由一個(gè)源組件和目的組件組成,并通過(guò)將源組件的一個(gè)關(guān)聯(lián)發(fā)布給目的組件建立連接。
2.4 SCA波形組件部署實(shí)現(xiàn)流程
該部分主要包括:目標(biāo)設(shè)備匹配、組件部署和組件生命周期控制。
2.4.1 目標(biāo)設(shè)備匹配
(1)執(zhí)行能力屬性檢查。將注冊(cè)設(shè)備聲明的能力與待部署組件每個(gè)實(shí)例的能力要求進(jìn)行比較,如圖4所示。
(2)執(zhí)行容量屬性檢查。無(wú)線電部署管理器按照組件描述符文件容量需求,查詢?cè)O(shè)備容量屬性是否匹配,執(zhí)行容量屬性檢查。
為每個(gè)部署的組件(包括附屬組件)設(shè)置保留容量,當(dāng)遵循該方式保留失敗,可進(jìn)入回滾操作。當(dāng)一個(gè)容量檢查失敗,無(wú)線電部署管理器必須找到一個(gè)新設(shè)備,重新執(zhí)行組件容量匹配,如圖5所示。
2.4.2 組件部署
組件部署是指將開(kāi)發(fā)階段組件生成的二進(jìn)制代碼傳送給目標(biāo)設(shè)備。一個(gè)波形應(yīng)用組件可來(lái)自一個(gè)遠(yuǎn)程服務(wù)器節(jié)點(diǎn),也可來(lái)自一個(gè)無(wú)線電臺(tái)內(nèi)部。安裝過(guò)程需拷貝所有波形應(yīng)用組件文件,包括:裝配描述文件、組件描述文件、部署描述文件等。
待安裝的波形應(yīng)用組件必須通過(guò)域管理器獲取,在一個(gè)波形應(yīng)用組件被執(zhí)行之前必須被部署,部署包括將所有資源的實(shí)現(xiàn)發(fā)送給目標(biāo)設(shè)備。
2.4.3 組件生命周期控制
控制所有部署組件生命周期。電臺(tái)部署管理器對(duì)每一個(gè)被部署的組件強(qiáng)制性賦予一個(gè)生命周期:Instantiation(實(shí)例化)→initialization(初始化)→configuration(配置)→connection(連接)→disconnection(斷開(kāi)連接)→release(釋放資源)→termination(生命周期終止)。
2.5 相關(guān)功能組件
2.5.1 應(yīng)用控制
(1)SCA應(yīng)用。該應(yīng)用特點(diǎn)為:①通過(guò)裝配描述符描述如何裝配和部署;②使用無(wú)線電部署管理器應(yīng)用程序接口(Application Program Interface,API)將其安裝到無(wú)線電臺(tái)中;③使用無(wú)線電部署管理器執(zhí)行應(yīng)用部署;④一個(gè)應(yīng)用可被看作單一的資源;⑤無(wú)線電部署管理器應(yīng)用的操作分安裝、部署、啟動(dòng)3個(gè)步驟進(jìn)行。
(2)SCA資源。一個(gè)資源更像一個(gè)硬件器件,包含輸出、輸入及需要連接到其它組件的控制端口。若在一個(gè)應(yīng)用程序中使用一個(gè)資源,該資源必須被部署到設(shè)備中,且設(shè)備必須滿足性能要求和容量要求。
資源還可實(shí)現(xiàn)簡(jiǎn)單或復(fù)雜的信號(hào)處理功能,作為一個(gè)端口的提供者,端口由命名字符串定義,可提供連接其它組件的端口,還可提供讓一個(gè)特定API訪問(wèn)的端口。
因?yàn)橐粋€(gè)應(yīng)用由許多資源組成。通過(guò)集合這些資源,應(yīng)用包含了資源所有端口和配置屬性。由無(wú)線電部署管理器軟件部署程序賦予資源強(qiáng)制性生命周期。
(3)資源生命周期流程(見(jiàn)圖6)包括:①當(dāng)包含資源的應(yīng)用被實(shí)例化時(shí),資源處于激活狀態(tài);②告知資源可初始化其狀態(tài),如內(nèi)存分配;③資源接收配置參數(shù);④提供/接受與其它組件的對(duì)象關(guān)聯(lián),建立數(shù)據(jù)流;⑤資源再次接收配置參數(shù);⑥開(kāi)始數(shù)據(jù)處理;⑦停止數(shù)據(jù)處理;⑧通知資源不再使用在連接時(shí)刻建立的對(duì)象關(guān)聯(lián)(中斷數(shù)據(jù)流);⑨資源必須釋放內(nèi)存、終止執(zhí)行;⑩無(wú)線電部署管理器中斷資源執(zhí)行。
(4)基本組件由基本應(yīng)用接口組件標(biāo)識(shí)、端口連接器、生命周期、可測(cè)試接口、屬性設(shè)置和可控制接口組成,如圖7所示。與SCA2.2.2中的資源接口類(lèi)似,開(kāi)發(fā)者必須在基本組件上繼承組件。SCA 4.1采用選擇性繼承的方式,通過(guò)預(yù)編譯與IDL指令定義組件待實(shí)現(xiàn)的接口,使組件更輕量化。
(5)SCA資源一裝配控制器。無(wú)線電部署管理器將應(yīng)用控制授權(quán)交予裝配控制器,但需借助于代理執(zhí)行控制或配置。
SCA應(yīng)用代理組件由裝配控制器調(diào)用,裝配控制器組件必須實(shí)現(xiàn)資源接口,因?yàn)樗撬匈Y源的代理。裝配控制器的定義在應(yīng)用裝配描述符里,由應(yīng)用開(kāi)發(fā)者提供。
任何一個(gè)來(lái)自用戶接口且與應(yīng)用資源相互作用的請(qǐng)求必須被授權(quán)給裝配控制器。裝配控制器有自己的邏輯屬性集、端口名,且知道哪些組件必須為應(yīng)用輸入和輸出數(shù)據(jù)提供外部端口(在裝配描述符里指明)。
2.5.2設(shè)備控制
有4種邏輯設(shè)備組件:設(shè)備組件、可執(zhí)行設(shè)備組件、可加載設(shè)備組件、聚合設(shè)備組件。
設(shè)備組件由生命周期、可管理接口、容量管理、設(shè)備屬性、聚合設(shè)備屬性組成,這些接口均源自于SCA 2.2.2的邏輯設(shè)備接口,如圖8所示。邏輯設(shè)備組件供軟件組件部署所用,可作為軟件部署目標(biāo)機(jī)、硬件設(shè)備軟件代理,且還提供對(duì)硬件設(shè)備的訪問(wèn),如GPS接收機(jī)。
可執(zhí)行設(shè)備組件提供對(duì)DSP的訪問(wèn),可加載設(shè)備組件提供對(duì)FBGA的訪問(wèn)。作為組件部署的目標(biāo)設(shè)備,SCA可加載設(shè)備組件和可執(zhí)行設(shè)備組件需通告能力(OS、Processor等)和容量(MIPS、Memory)等??蓤?zhí)行設(shè)備組件與可加載設(shè)備組件在繼承設(shè)備組件的同時(shí),可實(shí)現(xiàn)各自接口。聚合設(shè)備組件繼承設(shè)備組件的同時(shí),實(shí)現(xiàn)可加載接口。
2.5.3 無(wú)線電管理
無(wú)線電管理由4個(gè)組件實(shí)現(xiàn):域管理器組件(DomainManager Component)、應(yīng)用工廠組件(Application FactoryComponent)、應(yīng)用管理器組件(Application Manager Component)、設(shè)備管理器組件(Device Manager Component)。
域管理器組件是無(wú)線電管理器,應(yīng)用工廠組件用來(lái)實(shí)例化一個(gè)應(yīng)用并提供一個(gè)應(yīng)用管理器組件組件,應(yīng)用管理器組件控制一個(gè)部署的應(yīng)用。
(1)域管理器組件是無(wú)線電管理中心組件。它可實(shí)現(xiàn)由設(shè)備管理器指定的節(jié)點(diǎn)組件間的互連,負(fù)責(zé)應(yīng)用安裝,供UI使用控制并監(jiān)視電臺(tái);可用一個(gè)“腳本”或設(shè)備管理器在啟動(dòng)一個(gè)無(wú)線電期間的任何時(shí)刻啟動(dòng);用來(lái)安裝應(yīng)用,為安裝的應(yīng)用創(chuàng)建一個(gè)應(yīng)用工廠;提供兩個(gè)事件通道,一個(gè)是每個(gè)設(shè)備必須用來(lái)報(bào)告狀態(tài)改變的通道,另一個(gè)是報(bào)告電臺(tái)管理事件的通道;用于電臺(tái)內(nèi)部檢測(cè),包括:偵聽(tīng)產(chǎn)生的事件、獲取已裝應(yīng)用和已部署應(yīng)用的清單。
(2)應(yīng)用工廠組件的任務(wù)是:安裝一個(gè)特定類(lèi)型的應(yīng)用;部署一個(gè)應(yīng)用并為每個(gè)部署的應(yīng)用創(chuàng)建一個(gè)應(yīng)用管理器對(duì)象;域管理器組件為每種已安裝的應(yīng)用創(chuàng)建一個(gè)應(yīng)用工廠,每個(gè)應(yīng)用工廠管理一種類(lèi)型的應(yīng)用,如FMLoS;應(yīng)用工廠能創(chuàng)建一種相同應(yīng)用類(lèi)型的幾種實(shí)例,如FMLoS 1、FMLoS 2等;應(yīng)用工廠組件按“執(zhí)行能力檢查→執(zhí)行容量檢查→傳遞結(jié)果到目標(biāo)設(shè)備→控制已部署設(shè)備的生命周期”的步驟執(zhí)行組件部署。
(3)應(yīng)用管理器組件功能包括:?jiǎn)?dòng)/停止信號(hào)處理,通過(guò)配置改變應(yīng)用的行為,釋放終止的組件、歸還“容量”資源的應(yīng)用。
(4)設(shè)備管理器組件中,一個(gè)無(wú)線電由許多節(jié)點(diǎn)組成,每個(gè)節(jié)點(diǎn)運(yùn)行單一的設(shè)備管理器組件,每個(gè)設(shè)備管理器組件按節(jié)點(diǎn)描述符描述的方式啟動(dòng)節(jié)點(diǎn)。
2.6軟件設(shè)計(jì)
子模塊包括網(wǎng)口模塊、消息分發(fā)模塊、波形安裝模塊、波形刪除模塊、波形部署模塊、波形卸載模塊、波形查詢模塊。設(shè)計(jì)流程如圖11所示。
3 測(cè)試驗(yàn)證與結(jié)果
本文實(shí)驗(yàn)硬件平臺(tái)包括一個(gè)裝有Windows操作系統(tǒng)的臺(tái)式計(jì)算機(jī)、一套四通道軟件定義無(wú)線電設(shè)備,軟件平臺(tái)為Windows操作系統(tǒng),開(kāi)發(fā)平臺(tái)是ReDe開(kāi)發(fā)環(huán)境(實(shí)時(shí)嵌入式操作系統(tǒng)ReWorks4.7),編程語(yǔ)言為C/C。
本文部署管理器在ReDe開(kāi)發(fā)環(huán)境下編寫(xiě)程序,并編譯生成可在軟件定義無(wú)線電設(shè)備上運(yùn)行的.out文件,將該文件放在主控上運(yùn)行并進(jìn)行測(cè)試。
針對(duì)四通道設(shè)備的功能需求和硬件結(jié)構(gòu),按照軟件無(wú)線電技術(shù)規(guī)范的技術(shù)要求,構(gòu)建適用于設(shè)備的核心框架。部署管理器屬于主控的一部分,部署管理器和波形應(yīng)用的軟件代碼放在主控板上。部署波形時(shí),把待安裝的波形軟件包拷貝到指定基帶板上,在多通道上對(duì)多個(gè)波形進(jìn)行安裝、部署、卸載和刪除。
部署管理器可在多通道上成功地完成多個(gè)波形安裝、部署、卸載和刪除,且效率較高。
4 結(jié)語(yǔ)
本文按照SCA 4.1規(guī)范設(shè)計(jì)了全量級(jí)軟件無(wú)線電裝備部署管理器,該管理器可實(shí)現(xiàn)對(duì)多種波形的安裝、刪除、部署和卸載等操作,提高波形可移植性和可重用性,增強(qiáng)電臺(tái)可操作性和用戶使用體驗(yàn)。下一步可通過(guò)對(duì)接口選擇性繼承等方式進(jìn)一步優(yōu)化核心框架,進(jìn)而提高波形部署效率。