劉海峰,丁 磊,盧云生
(中國電子科技集團(tuán)公司第三十六研究所,浙江嘉興314001)
隨著航天載荷的研制向綜合化開放式體系架構(gòu)方向發(fā)展,基于軟件定義功能的思想,采用標(biāo)準(zhǔn)總線互連、軟件構(gòu)件化設(shè)計(jì)方法,構(gòu)建可重構(gòu)可擴(kuò)展的綜合系統(tǒng),逐漸成為航天載荷系統(tǒng)開發(fā)的主流趨勢(shì)。另一方面,航天應(yīng)用任務(wù)數(shù)量的不斷增加,應(yīng)用能力需求的不斷提高,航天載荷的規(guī)模和復(fù)雜度持續(xù)增長,安全可靠性保證的壓力日益沉重。因此有必要研究在新的技術(shù)體制下,擴(kuò)展載荷功能軟件的自適應(yīng)能力,滿足系統(tǒng)安全可靠性要求,降低硬件故障影響,提升系統(tǒng)綜合能力的技術(shù)途徑。
在某載荷演示驗(yàn)證系統(tǒng)的研制中,結(jié)合新一代航天載荷系統(tǒng)的技術(shù)發(fā)展要求,參考軟件通信體系架構(gòu)(SCA)規(guī)范,利用可重構(gòu)軟件無線電技術(shù),對(duì)載荷應(yīng)用平臺(tái)的軟件可重構(gòu)技術(shù)進(jìn)行了研究及應(yīng)用,并通過軟件的重構(gòu)增強(qiáng)了載荷系統(tǒng)的靈活性和擴(kuò)展能力。
系統(tǒng)功能重構(gòu)就是在一個(gè)通用硬件環(huán)境下,根據(jù)不同任務(wù)功能的需求和資源占用情況,使用對(duì)應(yīng)的配置方式,將功能軟件映射和部署到硬件平臺(tái)上不同的硬件節(jié)點(diǎn),重新建立節(jié)點(diǎn)間的邏輯關(guān)系,從而構(gòu)成新的系統(tǒng)拓?fù)浣Y(jié)構(gòu),進(jìn)而實(shí)現(xiàn)各種系統(tǒng)能力。
重構(gòu)使系統(tǒng)擺脫了以往那種功能與硬件設(shè)備的緊耦合,實(shí)現(xiàn)了軟件構(gòu)件與硬件平臺(tái)的動(dòng)態(tài)綁定,使系統(tǒng)功能更多地表現(xiàn)為軟件與硬件之間的一種動(dòng)態(tài)映射關(guān)系。功能重構(gòu)一方面提高了硬件平臺(tái)的復(fù)用性,適應(yīng)了功能軟件化的技術(shù)發(fā)展趨勢(shì),同時(shí),通過軟件部署時(shí)對(duì)硬件故障節(jié)點(diǎn)的規(guī)避,重構(gòu)也可以作為提高系統(tǒng)可靠性的有效手段。
實(shí)現(xiàn)功能重構(gòu)需要滿足的環(huán)境包括硬件平臺(tái)和軟件架構(gòu),本系統(tǒng)硬件上集成了抗輻照CPU/FPGA、高速信號(hào)處理單元、大容量存儲(chǔ)單元、高速數(shù)據(jù)交換網(wǎng)絡(luò)、光纖數(shù)據(jù)通道等技術(shù),搭建了易擴(kuò)展、高可靠的硬件環(huán)境;軟件上采用分層體系結(jié)構(gòu)設(shè)計(jì),基于軟件中間件和構(gòu)件化開發(fā)技術(shù),針對(duì)CPU/DSP 適配了嵌入式實(shí)時(shí)操作系統(tǒng),與硬件配合為系統(tǒng)的功能應(yīng)用提供了一個(gè)通用化、構(gòu)件化、可重構(gòu)、可升級(jí)、可擴(kuò)展的開放式軟硬件平臺(tái)。功能重構(gòu)示意圖如圖1 所示。
圖1 功能重構(gòu)示意圖
系統(tǒng)硬件包括射頻前端控制器、天線轉(zhuǎn)換開關(guān)、數(shù)字預(yù)處理設(shè)備、綜合處理設(shè)備和綜合管控設(shè)備、大容量存儲(chǔ)器等單機(jī)設(shè)備,采用基于總線的分布式拓?fù)浣Y(jié)構(gòu)以實(shí)現(xiàn)信息共享,加強(qiáng)了系統(tǒng)可擴(kuò)展能力,各節(jié)點(diǎn)處理器(CPU、DSP、FPGA、MCU)通過高速數(shù)據(jù)傳輸與控制交換網(wǎng)絡(luò)集成為一個(gè)通用、開放的環(huán)境,提供了支持軟件定義載荷功能的可重構(gòu)硬件基礎(chǔ),保證了功能重構(gòu)時(shí)軟件構(gòu)件遷移的資源需求。載荷硬件架構(gòu)示意圖如圖2所示。
整個(gè)可重構(gòu)硬件架構(gòu)包括了以下元素:
1)數(shù)據(jù)傳輸與控制交換網(wǎng)絡(luò)
數(shù)據(jù)傳輸與控制交換網(wǎng)絡(luò)又可以分為“數(shù)據(jù)交換網(wǎng)絡(luò)”和“控制交換網(wǎng)絡(luò)”兩部分。
圖2 功能可重構(gòu)硬件架構(gòu)示意圖
數(shù)據(jù)交換網(wǎng)絡(luò)由RapidIO 建立的高速交換網(wǎng)絡(luò)組成,實(shí)現(xiàn)不同節(jié)點(diǎn)之間的高速數(shù)據(jù)串行交換;數(shù)據(jù)交換網(wǎng)絡(luò)上主要以承載高速業(yè)務(wù)數(shù)據(jù)流和軟件代碼數(shù)據(jù)包為主。
控制交換網(wǎng)絡(luò)通過1553B 總線實(shí)現(xiàn),連接系統(tǒng)內(nèi)需要發(fā)送或接收指令信息的處理節(jié)點(diǎn)。
2)處理器及運(yùn)行環(huán)境
系統(tǒng)采用的處理器件類型主要包括CPU、FPGA(RAM 型及反熔絲型)、DSP、PowerPC 和MCU,這些處理器分布在數(shù)字預(yù)處理設(shè)備、綜合處理設(shè)備、綜合管控設(shè)備等單機(jī)處理板上。
按照不同的定位和設(shè)計(jì),各CPU、FPGA、DSP、PowerPC 和MCU 在各自的外圍器件支持下,接入系統(tǒng)數(shù)據(jù)交換網(wǎng)絡(luò)或控制交換網(wǎng)絡(luò),實(shí)現(xiàn)數(shù)字處理、設(shè)備控制、功能模式管理、核心框架、數(shù)據(jù)綜合等能力。
3)存儲(chǔ)區(qū)
系統(tǒng)提供了2 類大容量存儲(chǔ)區(qū),用以支持系統(tǒng)對(duì)數(shù)據(jù)存儲(chǔ)的需求。一是在綜合管控設(shè)備CPU&交換模塊上,配置了NAND FLASH 用于存儲(chǔ)重構(gòu)代碼/數(shù)據(jù),通過內(nèi)部數(shù)據(jù)總線對(duì)NAND FLASH 進(jìn)行讀寫。二是在大容量存儲(chǔ)設(shè)備采用FLASH 陣列方式,提供了TB 級(jí)儲(chǔ)存容量,用于應(yīng)用功能輸出的工作數(shù)據(jù)。大容量存儲(chǔ)設(shè)備使用RapidIO 總線接口,以數(shù)據(jù)流的形式提供高速的持續(xù)記錄訪問能力。
圖3 功能可重構(gòu)軟件架構(gòu)圖
軟件通信體系架構(gòu)(SCA)[1]是美軍聯(lián)合戰(zhàn)術(shù)無線電系統(tǒng)(JTRS)[2]計(jì)劃中提出的開發(fā)和驗(yàn)證軟件體系架構(gòu),是美軍JTRS 計(jì)劃中最關(guān)鍵的一步。SCA 建立了獨(dú)立于設(shè)備的結(jié)構(gòu)框架,在規(guī)范中定義了軟件無線電系統(tǒng)的硬件、軟件結(jié)構(gòu)、安全結(jié)構(gòu)以及公共服務(wù)和配置考慮,目的是要保證軟件和硬件的可移植性和可配置性,并確保根據(jù)SCA 開發(fā)的產(chǎn)品之間的互通。在JTRS 提出SCA 之后,軟件無線電論壇(SDR)也接受SCA 規(guī)范,并把SCA 發(fā)展為商業(yè)應(yīng)用的標(biāo)準(zhǔn)。
作為軍用軟件無線電系統(tǒng)開發(fā)的一部分,SCA 圍繞一種開放式體系結(jié)構(gòu)來構(gòu)建框架,旨在擺脫傳統(tǒng)的面向用途的設(shè)計(jì)思想,通過高度模塊化的通用信號(hào)處理平臺(tái),把各種功能裝備提供的業(yè)務(wù)從基于硬件特性的方式中解放出來,通過裝載不同的軟件來動(dòng)態(tài)配置系統(tǒng)的功能,實(shí)現(xiàn)系統(tǒng)硬件平臺(tái)的通用化、模塊化和軟件的可移植性,從而適應(yīng)新一代無線通信系統(tǒng)的需要,推動(dòng)軟件無線通信技術(shù)的發(fā)展。
SCA 從邏輯上劃分,包括硬件結(jié)構(gòu)、軟件結(jié)構(gòu)和規(guī)則集3 個(gè)基本部件;從層次上劃分,SCA 體系架構(gòu)包含系統(tǒng)硬件平臺(tái)、資源管理層、操作系統(tǒng)、核心框架、中間件以及應(yīng)用層波形組件。SCA 通過創(chuàng)建一種開放式的、便于系統(tǒng)重構(gòu)的、擴(kuò)展的以及模塊化的一個(gè)頂層設(shè)計(jì)規(guī)范,采用強(qiáng)制性地定義一系列接口、運(yùn)作規(guī)則及其系統(tǒng)需求的方法,來促進(jìn)系統(tǒng)的可移植性、互操作性和組件的可交換性,實(shí)現(xiàn)軟件重用和框架結(jié)構(gòu)可擴(kuò)展的目標(biāo)。
為了滿足通用硬件平臺(tái)下軟件功能可重構(gòu)可擴(kuò)展的需求,本系統(tǒng)參照SCA 體系架構(gòu)開展自頂而下的綜合一體化設(shè)計(jì),在開放式硬件體系架構(gòu)提供的運(yùn)行環(huán)境基礎(chǔ)上,軟件采用層次化結(jié)構(gòu)和軟件構(gòu)件化技術(shù),建立統(tǒng)一的接口規(guī)范及開發(fā)與集成標(biāo)準(zhǔn),構(gòu)建了具備動(dòng)態(tài)重構(gòu)能力,支持通用性、可互操作性等技術(shù)要求的軟件體系架構(gòu)[3]。
系統(tǒng)軟件體系架構(gòu)示意圖如圖3 所示。
系統(tǒng)軟件體系架構(gòu)包括了以下層次:
1)應(yīng)用層
應(yīng)用層是指波形應(yīng)用組件層,實(shí)現(xiàn)系統(tǒng)的各類業(yè)務(wù)功能如電磁環(huán)境普查功能、導(dǎo)航增強(qiáng)功能、通信廣播功能,并支持功能模式的擴(kuò)展。所有應(yīng)用功能模式按照構(gòu)件化的方式實(shí)現(xiàn),部署和運(yùn)行在系統(tǒng)各DSP、FPGA、CPU 處理節(jié)點(diǎn)。每個(gè)波形應(yīng)用組件完成業(yè)務(wù)功能中相對(duì)完整的獨(dú)立需求,在系統(tǒng)運(yùn)行時(shí),可被動(dòng)態(tài)地加載到對(duì)應(yīng)的硬件處理模塊中,并支持動(dòng)態(tài)配置功能。
2)綜合管理層
綜合管理層向應(yīng)用層提供支撐功能運(yùn)行的服務(wù),負(fù)責(zé)載荷系統(tǒng)的任務(wù)調(diào)度、資源管理、設(shè)備配置、設(shè)備故障處理等公共業(yè)務(wù)。
3)基礎(chǔ)框架層
基礎(chǔ)框架層是開放應(yīng)用層接口和服務(wù)的核心,基礎(chǔ)框架軟件基于開放式軟件接口和描述,為波形應(yīng)用組件的自動(dòng)裝配、智能化管理定義了統(tǒng)一的接口,包括基本應(yīng)用接口、框架控制接口、框架服務(wù)接口和配置文件。通過這些接口和配置文件可實(shí)現(xiàn)對(duì)整個(gè)系統(tǒng)中各種波形應(yīng)用的安裝、卸載、操作、配置和管理等,從而保持了波形應(yīng)用組件實(shí)現(xiàn)的獨(dú)立性,提高波形應(yīng)用組件的可移植性。
4)鏈路層
鏈路層主要作用是用來屏蔽硬件平臺(tái)的差異性和操作系統(tǒng)與網(wǎng)絡(luò)協(xié)議的異構(gòu)性,通過硬件抽象適配層[4]或者直接與實(shí)現(xiàn)底層硬件控制的驅(qū)動(dòng)層軟件接口,向業(yè)務(wù)軟件提供通信服務(wù),實(shí)現(xiàn)業(yè)務(wù)軟件與系統(tǒng)硬件之間的松耦合設(shè)計(jì)。
5)驅(qū)動(dòng)層
驅(qū)動(dòng)層是系統(tǒng)的基礎(chǔ)運(yùn)行環(huán)境,包括駐留在綜合管控設(shè)備、綜合處理設(shè)備、數(shù)字預(yù)處理設(shè)備等硬件處理平臺(tái)上的操作系統(tǒng)、板級(jí)支持包以及驅(qū)動(dòng)程序。為了增加應(yīng)用的可移植性,系統(tǒng)選擇了支持POSIX 接口的ReWorks 操作系統(tǒng),并完成了對(duì)S698、TI6678 等處理器的適配。
軟件系統(tǒng)按照應(yīng)用層、綜合管理層、基礎(chǔ)框架層、鏈路層和驅(qū)動(dòng)層的層次化結(jié)構(gòu)開展軟件設(shè)計(jì)工作,幫助業(yè)務(wù)軟件擺脫了對(duì)底層硬件環(huán)境的依賴,使得載荷能夠適應(yīng)硬件技術(shù)的快速發(fā)展的同時(shí),繼承并沿用歷史軟件資產(chǎn),這種軟件與硬件位置的無關(guān)性特征,也保障了業(yè)務(wù)軟件在硬件節(jié)點(diǎn)間的平滑遷移。
系統(tǒng)圍繞開放式軟硬件平臺(tái)開展功能重構(gòu)設(shè)計(jì),建立重構(gòu)規(guī)則約束系統(tǒng)重構(gòu)行為,將功能軟件構(gòu)件化,同時(shí)開展系統(tǒng)軟件藍(lán)圖、硬件藍(lán)圖和功能部署藍(lán)圖的規(guī)劃,按照藍(lán)圖部署策略,將軟件邏輯資源映射和部署到硬件平臺(tái),從而實(shí)現(xiàn)系統(tǒng)的功能重構(gòu)。
系統(tǒng)設(shè)計(jì)階段就需要開始對(duì)功能重構(gòu)的策劃,預(yù)定義系統(tǒng)功能模式下的配置狀態(tài),建立系統(tǒng)功能重構(gòu)規(guī)則。功能重構(gòu)規(guī)則的作用就是指導(dǎo)系統(tǒng)重構(gòu)時(shí),如何將軟件部署到實(shí)際目標(biāo)系統(tǒng),是進(jìn)行系統(tǒng)重新配置的主要依據(jù)。重構(gòu)規(guī)則需要在綜合考慮冗余、空閑資源、運(yùn)行模式、任務(wù)優(yōu)先級(jí)、降級(jí)配置等限制因素后,對(duì)功能重構(gòu)轉(zhuǎn)換條件、行為、約束進(jìn)行規(guī)范和定義,內(nèi)容包括重構(gòu)時(shí)資源的選擇原則、優(yōu)先級(jí)策略等。
構(gòu)件化開發(fā)技術(shù)是實(shí)現(xiàn)功能重構(gòu)的基礎(chǔ),構(gòu)件是組成任務(wù)功能軟件的基本邏輯單元。結(jié)合系統(tǒng)業(yè)務(wù)特征制定業(yè)務(wù)構(gòu)件開發(fā)和裝配規(guī)范,對(duì)任務(wù)功能軟件進(jìn)行構(gòu)件劃分、構(gòu)件接口定義、構(gòu)件化封裝裝配[5]以后,利用軟件構(gòu)件的可組裝性特點(diǎn),將構(gòu)件匹配、部署到硬件平臺(tái),建立新的軟件構(gòu)件-硬件節(jié)點(diǎn)映射關(guān)系,形成不同業(yè)務(wù)功能的系統(tǒng)拓?fù)浣Y(jié)構(gòu),達(dá)到業(yè)務(wù)功能重構(gòu)的目的。
構(gòu)件化開發(fā)環(huán)境示意圖如圖4 所示。
系統(tǒng)運(yùn)用藍(lán)圖來抽象軟硬件資源模型,反映系統(tǒng)的軟硬件資源配置關(guān)系[6],所謂“藍(lán)圖文件”就是一種使用XML 語言的體系描述文件,詳細(xì)反映系統(tǒng)硬件拓?fù)?、軟件?gòu)成以及資源映射等信息。參照SCA 規(guī)范的要求,藍(lán)圖的物理實(shí)體包括了軟件包描述文件SPD、軟件組件描述文件SCD、軟件裝配描述文件SAD、設(shè)備配置描述文件DCD、設(shè)備管理器配置描述文件DMD、設(shè)備包描述文件DPD、配置文件的描述文件PRD 等,并針對(duì)系統(tǒng)載荷功能和硬件環(huán)境對(duì)規(guī)范進(jìn)行了擴(kuò)展。
系統(tǒng)藍(lán)圖可以劃分為硬件藍(lán)圖、軟件藍(lán)圖和功能部署藍(lán)圖:
1)硬件藍(lán)圖
圖4 構(gòu)件化開發(fā)環(huán)境示意圖
硬件藍(lán)圖描述了系統(tǒng)的硬件拓?fù)浣Y(jié)構(gòu),以及所有硬件資源的狀態(tài)信息,包括硬件模塊的名稱、處理能力、存儲(chǔ)容量、網(wǎng)絡(luò)帶寬、網(wǎng)絡(luò)地址分配等。硬件藍(lán)圖在進(jìn)行系統(tǒng)資源配置時(shí)確定,它根據(jù)具體的系統(tǒng)硬件規(guī)模進(jìn)行裁減。
系統(tǒng)中包括了端口、鏈路、處理單元、處理板等幾種物理元素,對(duì)這些基礎(chǔ)實(shí)體類型進(jìn)行抽象建模,建立硬件藍(lán)圖中對(duì)應(yīng)的模型元素。
2)軟件藍(lán)圖
系統(tǒng)通過軟件藍(lán)圖描述任務(wù)功能模式運(yùn)行所需的各個(gè)軟件構(gòu)件的信息,包括軟件構(gòu)件的名稱、所屬的功能模式、軟件運(yùn)行平臺(tái)信息,軟件運(yùn)行時(shí)對(duì)硬件模塊的處理需求(如處理器能力、內(nèi)存容量、網(wǎng)絡(luò)帶寬)等。
軟件藍(lán)圖的基本模型元素是軟件構(gòu)件,針對(duì)系統(tǒng)需要實(shí)現(xiàn)的功能模式,以及該模式下的軟件構(gòu)件類別、構(gòu)件需求數(shù)量、構(gòu)件間數(shù)據(jù)連接等信息建立軟件藍(lán)圖。
3)功能部署藍(lán)圖
功能部署藍(lán)圖定義軟件到硬件的投射關(guān)系,描述出每種功能模式下各構(gòu)件所占用的資源信息,包括各軟件構(gòu)件駐留的硬件資源類型和數(shù)量,以及駐留在數(shù)字預(yù)處理設(shè)備、綜合處理設(shè)備、綜合管控設(shè)備的軟件構(gòu)件,這些軟件構(gòu)件之間的邏輯連接關(guān)系(包括了邏輯連接所需要的處理資源、帶寬資源、實(shí)時(shí)性需求等)。
功能重構(gòu)由系統(tǒng)的綜合調(diào)度軟件負(fù)責(zé)實(shí)施,綜合調(diào)度軟件首先需要獲取功能部署藍(lán)圖。獲取藍(lán)圖有2種方式,一是載荷在系統(tǒng)設(shè)計(jì)階段規(guī)劃了與功能對(duì)應(yīng)的藍(lán)圖文件,文件預(yù)存在系統(tǒng)數(shù)據(jù)庫中,載荷在接收到地面控制中心發(fā)送的功能模式切換指令后,依據(jù)指令參數(shù)從數(shù)據(jù)庫中調(diào)閱對(duì)應(yīng)的功能部署藍(lán)圖;二是載荷出現(xiàn)硬件故障時(shí),系統(tǒng)核心框架查詢當(dāng)前硬件藍(lán)圖,獲取在用設(shè)備的健康狀態(tài)和資源使用情況,調(diào)用故障處置預(yù)案,執(zhí)行故障動(dòng)態(tài)規(guī)劃,重新規(guī)劃業(yè)務(wù)功能部署藍(lán)圖,將功能模式需要的構(gòu)件重新映射、部署到正常工作的硬件節(jié)點(diǎn)上。
第二種動(dòng)態(tài)規(guī)劃方案需要系統(tǒng)狀態(tài)檢測(cè)能力的支撐,由系統(tǒng)的健康管理機(jī)制處置,其中基礎(chǔ)框架層借助嵌入式操作系統(tǒng)的支持,在部署了操作系統(tǒng)的節(jié)點(diǎn)上,對(duì)節(jié)點(diǎn)設(shè)備周邊硬件狀態(tài)進(jìn)行健康檢測(cè),如通信總線、處理器的電壓溫度、存儲(chǔ)區(qū)等;綜合管理層則負(fù)責(zé)沒有部署操作系統(tǒng)的節(jié)點(diǎn)的健康檢測(cè),如射頻前端、天線轉(zhuǎn)換器的工作狀態(tài)等。
綜合調(diào)度軟件在獲取功能部署藍(lán)圖以后,向核心框架的域管理器發(fā)送藍(lán)圖數(shù)據(jù)。域管理器啟動(dòng)部署調(diào)用,根據(jù)藍(lán)圖描述信息,從應(yīng)用構(gòu)件庫中獲取藍(lán)圖中包含的應(yīng)用構(gòu)件,由核心框架的設(shè)備管理器對(duì)構(gòu)件構(gòu)件加載和執(zhí)行,完成功能應(yīng)用相關(guān)構(gòu)件的部署。構(gòu)件在加載和執(zhí)行后,設(shè)備管理器建立構(gòu)件之間端口的連接,然后將構(gòu)件注冊(cè)到命名服務(wù),最后設(shè)備管理器會(huì)將部署結(jié)果和當(dāng)前狀態(tài)返回給域管理器,完成功能部署過程。
功能重構(gòu)部署和運(yùn)行的過程如圖5 所示。
圖5 功能重構(gòu)部署和運(yùn)行過程圖
為適應(yīng)航天載荷的綜合化體系架構(gòu)需求,提高載荷系統(tǒng)的故障應(yīng)對(duì)能力,本文以統(tǒng)一開放式硬件平臺(tái)為基礎(chǔ),以SCA 軟件體系架構(gòu)為方法,以構(gòu)件化開發(fā)技術(shù)為支撐,以可視化藍(lán)圖設(shè)計(jì)為主線,實(shí)現(xiàn)了一種航天載荷功能重構(gòu)的軟硬件解決方案,為提高航天載荷任務(wù)的綜合能力和安全可靠性提供了一種可行和通用的設(shè)計(jì)思路?!?/p>