劉海峰,丁 磊,盧云生
(中國電子科技集團公司第三十六研究所,浙江嘉興314001)
隨著航天載荷的研制向綜合化開放式體系架構方向發展,基于軟件定義功能的思想,采用標準總線互連、軟件構件化設計方法,構建可重構可擴展的綜合系統,逐漸成為航天載荷系統開發的主流趨勢。另一方面,航天應用任務數量的不斷增加,應用能力需求的不斷提高,航天載荷的規模和復雜度持續增長,安全可靠性保證的壓力日益沉重。因此有必要研究在新的技術體制下,擴展載荷功能軟件的自適應能力,滿足系統安全可靠性要求,降低硬件故障影響,提升系統綜合能力的技術途徑。
在某載荷演示驗證系統的研制中,結合新一代航天載荷系統的技術發展要求,參考軟件通信體系架構(SCA)規范,利用可重構軟件無線電技術,對載荷應用平臺的軟件可重構技術進行了研究及應用,并通過軟件的重構增強了載荷系統的靈活性和擴展能力。
系統功能重構就是在一個通用硬件環境下,根據不同任務功能的需求和資源占用情況,使用對應的配置方式,將功能軟件映射和部署到硬件平臺上不同的硬件節點,重新建立節點間的邏輯關系,從而構成新的系統拓撲結構,進而實現各種系統能力。
重構使系統擺脫了以往那種功能與硬件設備的緊耦合,實現了軟件構件與硬件平臺的動態綁定,使系統功能更多地表現為軟件與硬件之間的一種動態映射關系。功能重構一方面提高了硬件平臺的復用性,適應了功能軟件化的技術發展趨勢,同時,通過軟件部署時對硬件故障節點的規避,重構也可以作為提高系統可靠性的有效手段。
實現功能重構需要滿足的環境包括硬件平臺和軟件架構,本系統硬件上集成了抗輻照CPU/FPGA、高速信號處理單元、大容量存儲單元、高速數據交換網絡、光纖數據通道等技術,搭建了易擴展、高可靠的硬件環境;軟件上采用分層體系結構設計,基于軟件中間件和構件化開發技術,針對CPU/DSP 適配了嵌入式實時操作系統,與硬件配合為系統的功能應用提供了一個通用化、構件化、可重構、可升級、可擴展的開放式軟硬件平臺。功能重構示意圖如圖1 所示。

圖1 功能重構示意圖
系統硬件包括射頻前端控制器、天線轉換開關、數字預處理設備、綜合處理設備和綜合管控設備、大容量存儲器等單機設備,采用基于總線的分布式拓撲結構以實現信息共享,加強了系統可擴展能力,各節點處理器(CPU、DSP、FPGA、MCU)通過高速數據傳輸與控制交換網絡集成為一個通用、開放的環境,提供了支持軟件定義載荷功能的可重構硬件基礎,保證了功能重構時軟件構件遷移的資源需求。載荷硬件架構示意圖如圖2所示。
整個可重構硬件架構包括了以下元素:
1)數據傳輸與控制交換網絡
數據傳輸與控制交換網絡又可以分為“數據交換網絡”和“控制交換網絡”兩部分。

圖2 功能可重構硬件架構示意圖
數據交換網絡由RapidIO 建立的高速交換網絡組成,實現不同節點之間的高速數據串行交換;數據交換網絡上主要以承載高速業務數據流和軟件代碼數據包為主。
控制交換網絡通過1553B 總線實現,連接系統內需要發送或接收指令信息的處理節點。
2)處理器及運行環境
系統采用的處理器件類型主要包括CPU、FPGA(RAM 型及反熔絲型)、DSP、PowerPC 和MCU,這些處理器分布在數字預處理設備、綜合處理設備、綜合管控設備等單機處理板上。
按照不同的定位和設計,各CPU、FPGA、DSP、PowerPC 和MCU 在各自的外圍器件支持下,接入系統數據交換網絡或控制交換網絡,實現數字處理、設備控制、功能模式管理、核心框架、數據綜合等能力。
3)存儲區
系統提供了2 類大容量存儲區,用以支持系統對數據存儲的需求。一是在綜合管控設備CPU&交換模塊上,配置了NAND FLASH 用于存儲重構代碼/數據,通過內部數據總線對NAND FLASH 進行讀寫。二是在大容量存儲設備采用FLASH 陣列方式,提供了TB 級儲存容量,用于應用功能輸出的工作數據。大容量存儲設備使用RapidIO 總線接口,以數據流的形式提供高速的持續記錄訪問能力。

圖3 功能可重構軟件架構圖
軟件通信體系架構(SCA)[1]是美軍聯合戰術無線電系統(JTRS)[2]計劃中提出的開發和驗證軟件體系架構,是美軍JTRS 計劃中最關鍵的一步。SCA 建立了獨立于設備的結構框架,在規范中定義了軟件無線電系統的硬件、軟件結構、安全結構以及公共服務和配置考慮,目的是要保證軟件和硬件的可移植性和可配置性,并確保根據SCA 開發的產品之間的互通。在JTRS 提出SCA 之后,軟件無線電論壇(SDR)也接受SCA 規范,并把SCA 發展為商業應用的標準。
作為軍用軟件無線電系統開發的一部分,SCA 圍繞一種開放式體系結構來構建框架,旨在擺脫傳統的面向用途的設計思想,通過高度模塊化的通用信號處理平臺,把各種功能裝備提供的業務從基于硬件特性的方式中解放出來,通過裝載不同的軟件來動態配置系統的功能,實現系統硬件平臺的通用化、模塊化和軟件的可移植性,從而適應新一代無線通信系統的需要,推動軟件無線通信技術的發展。
SCA 從邏輯上劃分,包括硬件結構、軟件結構和規則集3 個基本部件;從層次上劃分,SCA 體系架構包含系統硬件平臺、資源管理層、操作系統、核心框架、中間件以及應用層波形組件。SCA 通過創建一種開放式的、便于系統重構的、擴展的以及模塊化的一個頂層設計規范,采用強制性地定義一系列接口、運作規則及其系統需求的方法,來促進系統的可移植性、互操作性和組件的可交換性,實現軟件重用和框架結構可擴展的目標。
為了滿足通用硬件平臺下軟件功能可重構可擴展的需求,本系統參照SCA 體系架構開展自頂而下的綜合一體化設計,在開放式硬件體系架構提供的運行環境基礎上,軟件采用層次化結構和軟件構件化技術,建立統一的接口規范及開發與集成標準,構建了具備動態重構能力,支持通用性、可互操作性等技術要求的軟件體系架構[3]。
系統軟件體系架構示意圖如圖3 所示。
系統軟件體系架構包括了以下層次:
1)應用層
應用層是指波形應用組件層,實現系統的各類業務功能如電磁環境普查功能、導航增強功能、通信廣播功能,并支持功能模式的擴展。所有應用功能模式按照構件化的方式實現,部署和運行在系統各DSP、FPGA、CPU 處理節點。每個波形應用組件完成業務功能中相對完整的獨立需求,在系統運行時,可被動態地加載到對應的硬件處理模塊中,并支持動態配置功能。
2)綜合管理層
綜合管理層向應用層提供支撐功能運行的服務,負責載荷系統的任務調度、資源管理、設備配置、設備故障處理等公共業務。
3)基礎框架層
基礎框架層是開放應用層接口和服務的核心,基礎框架軟件基于開放式軟件接口和描述,為波形應用組件的自動裝配、智能化管理定義了統一的接口,包括基本應用接口、框架控制接口、框架服務接口和配置文件。通過這些接口和配置文件可實現對整個系統中各種波形應用的安裝、卸載、操作、配置和管理等,從而保持了波形應用組件實現的獨立性,提高波形應用組件的可移植性。
4)鏈路層
鏈路層主要作用是用來屏蔽硬件平臺的差異性和操作系統與網絡協議的異構性,通過硬件抽象適配層[4]或者直接與實現底層硬件控制的驅動層軟件接口,向業務軟件提供通信服務,實現業務軟件與系統硬件之間的松耦合設計。
5)驅動層
驅動層是系統的基礎運行環境,包括駐留在綜合管控設備、綜合處理設備、數字預處理設備等硬件處理平臺上的操作系統、板級支持包以及驅動程序。為了增加應用的可移植性,系統選擇了支持POSIX 接口的ReWorks 操作系統,并完成了對S698、TI6678 等處理器的適配。
軟件系統按照應用層、綜合管理層、基礎框架層、鏈路層和驅動層的層次化結構開展軟件設計工作,幫助業務軟件擺脫了對底層硬件環境的依賴,使得載荷能夠適應硬件技術的快速發展的同時,繼承并沿用歷史軟件資產,這種軟件與硬件位置的無關性特征,也保障了業務軟件在硬件節點間的平滑遷移。
系統圍繞開放式軟硬件平臺開展功能重構設計,建立重構規則約束系統重構行為,將功能軟件構件化,同時開展系統軟件藍圖、硬件藍圖和功能部署藍圖的規劃,按照藍圖部署策略,將軟件邏輯資源映射和部署到硬件平臺,從而實現系統的功能重構。
系統設計階段就需要開始對功能重構的策劃,預定義系統功能模式下的配置狀態,建立系統功能重構規則。功能重構規則的作用就是指導系統重構時,如何將軟件部署到實際目標系統,是進行系統重新配置的主要依據。重構規則需要在綜合考慮冗余、空閑資源、運行模式、任務優先級、降級配置等限制因素后,對功能重構轉換條件、行為、約束進行規范和定義,內容包括重構時資源的選擇原則、優先級策略等。
構件化開發技術是實現功能重構的基礎,構件是組成任務功能軟件的基本邏輯單元。結合系統業務特征制定業務構件開發和裝配規范,對任務功能軟件進行構件劃分、構件接口定義、構件化封裝裝配[5]以后,利用軟件構件的可組裝性特點,將構件匹配、部署到硬件平臺,建立新的軟件構件-硬件節點映射關系,形成不同業務功能的系統拓撲結構,達到業務功能重構的目的。
構件化開發環境示意圖如圖4 所示。
系統運用藍圖來抽象軟硬件資源模型,反映系統的軟硬件資源配置關系[6],所謂“藍圖文件”就是一種使用XML 語言的體系描述文件,詳細反映系統硬件拓撲、軟件構成以及資源映射等信息。參照SCA 規范的要求,藍圖的物理實體包括了軟件包描述文件SPD、軟件組件描述文件SCD、軟件裝配描述文件SAD、設備配置描述文件DCD、設備管理器配置描述文件DMD、設備包描述文件DPD、配置文件的描述文件PRD 等,并針對系統載荷功能和硬件環境對規范進行了擴展。
系統藍圖可以劃分為硬件藍圖、軟件藍圖和功能部署藍圖:
1)硬件藍圖

圖4 構件化開發環境示意圖
硬件藍圖描述了系統的硬件拓撲結構,以及所有硬件資源的狀態信息,包括硬件模塊的名稱、處理能力、存儲容量、網絡帶寬、網絡地址分配等。硬件藍圖在進行系統資源配置時確定,它根據具體的系統硬件規模進行裁減。
系統中包括了端口、鏈路、處理單元、處理板等幾種物理元素,對這些基礎實體類型進行抽象建模,建立硬件藍圖中對應的模型元素。
2)軟件藍圖
系統通過軟件藍圖描述任務功能模式運行所需的各個軟件構件的信息,包括軟件構件的名稱、所屬的功能模式、軟件運行平臺信息,軟件運行時對硬件模塊的處理需求(如處理器能力、內存容量、網絡帶寬)等。
軟件藍圖的基本模型元素是軟件構件,針對系統需要實現的功能模式,以及該模式下的軟件構件類別、構件需求數量、構件間數據連接等信息建立軟件藍圖。
3)功能部署藍圖
功能部署藍圖定義軟件到硬件的投射關系,描述出每種功能模式下各構件所占用的資源信息,包括各軟件構件駐留的硬件資源類型和數量,以及駐留在數字預處理設備、綜合處理設備、綜合管控設備的軟件構件,這些軟件構件之間的邏輯連接關系(包括了邏輯連接所需要的處理資源、帶寬資源、實時性需求等)。
功能重構由系統的綜合調度軟件負責實施,綜合調度軟件首先需要獲取功能部署藍圖。獲取藍圖有2種方式,一是載荷在系統設計階段規劃了與功能對應的藍圖文件,文件預存在系統數據庫中,載荷在接收到地面控制中心發送的功能模式切換指令后,依據指令參數從數據庫中調閱對應的功能部署藍圖;二是載荷出現硬件故障時,系統核心框架查詢當前硬件藍圖,獲取在用設備的健康狀態和資源使用情況,調用故障處置預案,執行故障動態規劃,重新規劃業務功能部署藍圖,將功能模式需要的構件重新映射、部署到正常工作的硬件節點上。
第二種動態規劃方案需要系統狀態檢測能力的支撐,由系統的健康管理機制處置,其中基礎框架層借助嵌入式操作系統的支持,在部署了操作系統的節點上,對節點設備周邊硬件狀態進行健康檢測,如通信總線、處理器的電壓溫度、存儲區等;綜合管理層則負責沒有部署操作系統的節點的健康檢測,如射頻前端、天線轉換器的工作狀態等。
綜合調度軟件在獲取功能部署藍圖以后,向核心框架的域管理器發送藍圖數據。域管理器啟動部署調用,根據藍圖描述信息,從應用構件庫中獲取藍圖中包含的應用構件,由核心框架的設備管理器對構件構件加載和執行,完成功能應用相關構件的部署。構件在加載和執行后,設備管理器建立構件之間端口的連接,然后將構件注冊到命名服務,最后設備管理器會將部署結果和當前狀態返回給域管理器,完成功能部署過程。
功能重構部署和運行的過程如圖5 所示。

圖5 功能重構部署和運行過程圖
為適應航天載荷的綜合化體系架構需求,提高載荷系統的故障應對能力,本文以統一開放式硬件平臺為基礎,以SCA 軟件體系架構為方法,以構件化開發技術為支撐,以可視化藍圖設計為主線,實現了一種航天載荷功能重構的軟硬件解決方案,為提高航天載荷任務的綜合能力和安全可靠性提供了一種可行和通用的設計思路。■