蘭盛昌,王 松,徐國棟
(1.哈爾濱工業大學 衛星技術研究所,150001 哈爾濱,lansc1015@gmail.com;2.中國空間技術研究院,100964 北京)
隨著空間任務的深入,小衛星對控制精度要求越來越高,要求控制周期越來越短;然而由于小衛星在軌運行時,需要處理的數據多、任務復雜,加之中斷的頻繁發生,使得縮短傳統單處理器系統控制周期受到較大限制,性能難以大幅度提高[1-2].
為了解決上述問題,科學界進行了大量的工作:一方面可以通過系統功能分解,利用硬件模塊的增加來提升系統的性能,在微處理器、微電子設計理論的支撐下,以SoC 設計為基礎,信息處理為核心開展研究[3];一方面在軟件優化上著手.不過這兩種方法中,前者勢必帶來整個衛星體積、質量的增加,這對小衛星的設計增加了風險和難度.而后者的優化空間是有限的,很大程度上難以實現優化的目標.
隨著超大規模集成電路設計技術的不斷發展,多核計算機技術對小衛星星載電子系統的性能提升提供了新的思路.商用領域中,以Intel 的Core 和以ARM 公司的ARM11 為代表的多核處理器在單個芯片中集成了多個處理器核,在不增加硬件開銷和系統頻率的前提下極大提升了計算機的處理能力[4-6].因此,利用這種多核心處理器技術,可以快速靈活地在基于SRAM 工藝的FPGA 內部構建出任務所需要的處理器單元,合理地實現對軟硬件的劃分.一方面加強硬件資源的管理,另一方面同時利用嵌入式操作系統實現小衛星任務調度和功能計算,能夠更好地提高微小衛星在星務管理、姿軌控計算等方面的能力.
本文基于多核心處理器技術對星務管理系統設計展開研究.首先,對微小衛星星務管理系統進行了功能需求分析,實現FPGA 內部基于軟核處理器的多核心系統構造,并移植以uC/OS-II 為代表的嵌入式操作系統完成資源分配和任務管理;然后,針對多核心處理器與嵌入式操作系統的特殊性,從軟硬件聯合設計的角度出發,對星務管理系統任務的傳統劃分進行優化;最后與現有的星上成熟產品進行對比.
作為小衛星的核心,星務管理系統負責星上數據處理、任務調度、通信及控制等功能,同時通過測控系統連接地面站,解析遙控指令,組幀遙測信息,還要負責進行姿態、軌道測量與控制,實現衛星自主故障診斷與處理,進行飛行任務及資源管理.具體要求如下:
1)制導、導航與控制功能.考慮到空間復雜動力學條件,小衛星制導、導航與控制系統要求星務管理系統具備較高的快速性和實時性.
2)在軌管理功能.星務管理系統計算機具有較強的功能,可通過總線對星上設備等進行控制和管理.控制電源分系統為整星供配電,采集姿態軌道控制部件的參數并進行姿態軌道控制,控制載荷工作,并通過數傳分系統下傳數據等.
3)信息交互任務.需要采用先進的總線技術作為星務計算機與下位機信息交互的載體,要求具有良好的實時性,能夠滿足制導、導航與控制對響應時間的要求以及統一對時精度的要求,并且可以保證數據的可靠傳輸,構成小衛星內高效可靠的通信網絡.
4)時間管理任務.為滿足任務管理和制導、導航和控制要求,要求星務管理系統可產生具有較高精度的飛行器時間參考,并可向有關分系統分配時間信息和定時信號,為分系統提供事件的時間標記,并具有星上時間集中校正和均勻校正能力,以保證星地時鐘的同步.
5)小衛星故障處理.在小衛星出現系統故障的情況下,能夠對故障部件和系統進行診斷和隔離,以維持飛行器的基本功能,保證個別部件出現問題的情況下不影響其他系統功能.
6)測控管理.能夠采集處理遙測參數,組幀、存儲并傳輸到地面測控站;同時接收地面遙控指令,解釋處理、分發或直接執行;接收處理延時指令.
基于以上的功能要求,采用最新的可重構技術對星務管理系統的硬件進行設計.具體結構如圖1所示,主要包括FPGA 處理器單元、FPGA 配置存儲器單元、通用微處理器管理單元以及外部接口.
FPGA 是星務管理系統設計中的核心器件,采用SRAM 工藝的FPGA,并利用軟核處理器,能夠實現等同于ASIC 器件具備的功能,這里選用賽靈思公司推出的Virtex II 代產品XQR2V3000型芯片.以FPGA 作為設計載體,主要是考慮到FPGA 的可重構特性,能夠保證設計者根據系統需求進行有選擇性的設計,這樣也為多核技術的應用提供了可能[7-9].令人遺憾的是上述成果只停留在早期的可重構計算機設計上,缺乏工程實現性,并沒有考慮空間適應性的影響.
根據配置時間與可靠性方面的考慮,選用賽靈思公司專用的PROM 型專用配置芯片方案.采用XQR17V16 作為FPGA 所需的配置文件的存儲器.這里可以通過外部的通用微處理器管理單元對XQR17V16 的工作狀態進行選擇與控制.也可以考慮在此基礎之上利用多片PROM 型專用配置芯片完成不同配置文件的選取,從而當系統需要重配置時對FPGA 中的處理器結構和功能電路進行更新.在Selected Map 模式下完成整片FPGA的重配置僅需33 ms(配置時鐘為33 MHz).通用微處理器管理單元的作用:一方面可以作為看門狗,監視FPGA 的工作狀態,提供配置所需的控制信號;另一方面通過預留的UART 接口與FPGA相連形成數據傳輸,便于系統重配置過程中信息的保存和恢復.
片外具備存儲單元與FPGA 中的片內處理系統通過存儲器控制器IP 相連,由非易失型存儲器EEPROM/FLASH 和易失型存儲器SRAM 共同組成.其中EEPROM/FLASH 主要是保存程序代碼以及重要數據.而SRAM 是FPGA 片內處理系統中程序運行的主要空間.考慮到大規模存儲器容易受到單粒子翻轉效應的影響,因此可以增加EDAC/ECC 校驗等手段實現數據的保護.
為了更好地應對空間環境的干擾,除了芯片等級選取有所提高外,硬件設計中還提供兩級看門狗機制與定期重配置的主動防護措施,其中FPGA 處理器單元定期向看門狗電路進行清狗操作.當FPGA 狀態異常時,FPGA 處理器單元的清狗信號一旦無效,一定時間后,看門狗電路會通知通用微處理器單元,由通用微處理器單元出發重配置信號,對FPGA 進行重配置.如果對FPGA 重配置不成功,則FPGA 對外輸出的看門狗清狗信號均無效,則供電端的單穩態電路會進行自斷電處理.同時在通用微處理器單元的配合下有計劃地定期地重配置FPGA 以降低單粒子翻轉作用的影響.
FPGA 片內處理系統是星務管理系統功能實現的主要部分.根據任務需求,采用主協雙核處理器對常規的星載計算機進行優化.在現有小衛星500 ms 控制周期內,超過100 ms 進行姿態軌道計算,因此將姿態軌道計算放入協處理器中將有效提升系統的計算能力.設計的核心思想就是將原有的單一處理器的功能進行細化,形成負責星務管理的主處理器和負責姿態軌道計算的協處理器,并通過共享存儲空間的方式將主協處理器間的信息進行交互.
考慮到采用賽靈思FPGA 器件作為星務管理系統設計的可重配置載體,因此對處理器的設計也相應采用Microblaze 作為軟核處理器核心.這里以雙處理器系統為例,主要包括2 個獨立的軟核處理器MicroBlaze-A 和MicroBlaze-B,2 個FPGA 片內存儲器BRAM,2 個中斷管理器xps-intc,共享內部存儲器BRAM 及處理器間進行數據交換的xps-mutex 互斥核、XPS-Mailbox 郵箱.除此之外,還可以根據系統功能需要配置相應的對外接口(通用輸入輸出口GPIO 等)以及各自處理器所需的外部存儲器控制器接口,如圖2 所示.片內BRAM 作為雙核信息交互的媒介,雙核處理器間信息的交互均通過對BRAM 上共同存儲的空間讀寫完成.片內處理器與其他IP 之間通過Local Memory Bus 總線和On-Chip Peripheral Bus 總線相連.其中Local Memory Bus 總線用于軟核處理器訪問片內BRAM,包括指令緩存和數據緩存;OPB總線用于連接軟核處理器和外部接口控制器,處理器內核通過此總線完成對外設的訪問[10].

圖2 雙核處理器架構框圖
星務管理系統加電后,通用微處理器管理單元最先開始運行,由其完成整個FPGA 處理器單元的配置過程,配置觸發信號發出后,所選擇的專用配置芯片PROM 中的配置文件按照一定的時序寫入FPGA 內可配置區域,從而完成對FPGA雙核處理器結構的配置;初始化到內部BRAM 存儲器中引導程序自動運行,通過外部存儲器接口控制器將EEPROM/Flash 等非易失存儲器中的應用程序讀出并搬移到外部SRAM 中,完成后,啟動程序PC 指針的跳轉,將PC 指針指向SRAM 的基地址,開始運行搬轉到EEPROM/Flash 的應用程序,如圖3 所示.

圖3 系統啟動流程圖
硬件啟動過程完成后,小衛星由星務管理系統進行控制.內部的兩個處理器單元進行功能劃分.通常情況下可以將原有星務管理的功能分配給兩個處理器.由MicroBlaze-A 完成信息采集,而由MicroBlaze-B 調用姿態軌道控制算法進行計算,完成衛星姿態軌道的控制.其中,MicroBlaze-A 從對外接口獲得小衛星各個系統的遙測信息以及地面上注的遙控信息,同時獲得姿態與軌道的實時測量數據.MicroBlaze-A 將姿態與軌道的實時測量數據傳送到兩處理器間共享BRAM中,并將指向該數據的地址和數據量經XPSMailbox 傳遞給MicroBlaze-B 來完成,MicroBlaze-B 完成計算后,再次通過這種機制將信息返回給MicroBlaze-A,MicroBlaze-A 通過對外接口輸出至姿態軌道控制系統.這種數據共享可以通過XPS-Mailbox 中斷方式通知對方,有很好的實時性,能夠有效地提高處理器間的處理效率.這種并行處理的能力是提升星務管理系統性能的有效途徑之一.
一般來說,衛星由通用衛星平臺和有效載荷兩部分組成.傳統的星務管理系統設計方法將硬件和軟件劃分為兩個獨立的部分.這種設計方法只能單一的針對硬件或軟件來進行改善,而在有限的設計空間中缺乏足夠的高度從系統出發完成對整個系統的性能綜合優化.比如傳統的星務管理系統劃分為姿態軌道控制任務、數據通信任務、計算機自管理任務、故障檢測與處理任務(如圖4).以上基于功能異同對星務管理系統進行了任務劃分,這種劃分方法較好地詮釋了星務管理系統的功能,但在具體軟件程序實現時此劃分方法卻具有很大的局限性,各分系統任務間的交叉不利于軟件程序的模塊化設計[11];因此有必要在星務管理系統軟件實現時再一次對上述任務進行劃分與合并.在多核心處理器的層面,可以將原有的軟件任務部分轉為硬件化實現.其目的是從星務管理系統軟硬件中,獲得一個滿足系統資源、成本、時間、功耗等方面需要且趨于最優的方案.

圖4 星務管理系統任務劃分
在多核心處理器設計的層面,星務管理系統軟件可以根據硬件設計的實際情況整理出數據流向,分別針對通信接口建立不同的任務,以防止數據間的交叉造成數據錯誤.比如根據本文3 節給出的硬件設計,作出以下任務劃分:系統循環任務、遙控指令執行任務、姿軌控任務、總線數據發送任務、總線數據接收任務、串行接口通信任務、系統監測任務等,同時可以根據系統需求,增加一個空閑任務以消耗CPU 時間.其中特別值得注意的是,姿軌控任務可以分配給其他處理器完成,以降低系統開銷,同時也可以利用數字化設計等先進設計方法,完成面向姿軌控算法的IP 設計,通過調用IP 核,進一步提高運算的速度.
系統循環任務是整個星務管理系統中優先級最高的任務,主要負責系統的初始化,初始化完成后,利用自身主時鐘計時,周期性產生信號量等信息以調度其他任務的運行.
遙控指令執行任務主要是從遙控信道接口(如總線接口或脈沖編碼調制接口)接受遙控信息并執行.
總線發送任務負責總線信息組幀及發送.
總線接收任務利用總線控制器給出的中斷信號,觸發中斷服務程序接受總線數據,之后通過檢測幀ID 以及校驗和等信息,檢驗完成總線數據的分類和處理.
實際硬件接口的情況還包括了與姿態測量敏感部件的串行接口,因此將其獨立為一個任務,以區別于總線通信相關的任務.此任務既負責其控制姿態測量敏感部件指令的發送,也負責采集來自姿態測量敏感部件的工程參數和遙測參數及后續數據處理.
系統監測任務負責星務管理系統對自身功能進行檢測、時間管理以及完成對星務系統本身即其他總線下位機的故障檢測與處理.
姿軌控任務負責衛星飛行任務管理和姿態軌道控制算法的解算,其中姿態軌道控制算法的解算是星上計算量最大的部分.主要包括衛星入軌初期的速率阻尼,任務需要時進行的對日捕獲和定向姿態控制;對日定向三軸穩定姿態控制;星地數據傳輸期間以及軌道機動期間的對地定向三軸穩定姿態控制;姿態失控條件下的姿態安全模式控制,以保證衛星的能源供應.
在多核心處理器的使用中,可以由不同處理器來分擔上述任務.以本文3 節中所構建的處理器系統為例,可以利用MicroBlaze-A 完成姿軌控制部件的工程參數采集,并傳遞姿軌控制任務指令,通過處理器間的共享RAM 等方式,由MicroBlaze-B將指令解釋執行或存入飛行任務列表,并根據飛行任務調用相對應的姿態軌道控制算法進行解算,并將計算結果返回給MicroBlaze-A,由MicroBlaze-B最終完成姿態軌道控制執行部件指令發送.
為了更好地完成星務管理系統的運算性能的測試,采用小衛星姿態軌道計算中頻繁調用的浮點乘法和三角函數來作為測試項.實驗中,選用哈爾濱工業大學試驗衛星三號星載計算機使用的EX386 核心處理器的傳統星載計算機作為參照對象,以兩者計算頻率作為評定指標.測試結果如圖5 所示,可見相對于傳統星載計算機,本文所構造的星務管理系統在在單精度浮點運算以及雙精度浮點運算方面都有顯著的提高,單精度浮點計算能力提高了近130 倍,雙精度浮點計算能力提高了近20 倍,說明本文所構造的星務管理系統具有很強的計算能力.

圖5 多核心可重構星務管理系統與EX386 核心處理器星載計算機計算能力對比
在計算精度測試方面,首先建立仿真環境,由xPC 實時仿真機模擬衛星控制系統中的敏感部件和執行機構,包括反作用飛輪、光纖陀螺、星敏感器等.姿態控制系統采用以姿態四元數為姿態控制參數的PD 控制器加估計補償器的控制原理,如圖6 所示.分別將傳統基于EX386 設計的星務管理系統與多核心可重構星務管理系統接入仿真系統,通過外部總線接口采集xPC 計算機提供的動力學仿真數據,并調用姿態控制算法對其進行解算,得到計算結果后,返回給xPC 以模擬對執行部件模擬器進行控制,并輸出姿態角和姿態角速度在這一仿真環境中的變化情況.仿真結果如圖7 ~10 所示,可見多核處理仿真結果與傳統星上計算方法在仿真精度上基本一致,能夠在100 s內完成大角度機動,取得很好的控制效果.

圖6 對地定向三軸穩定模式控制算法對比仿真模型

圖7 對地定向三軸穩定模式小衛星相對軌道坐標系的姿態角(多核處理仿真)

圖8 對地定向三軸穩定模式星體相對軌道坐標系的姿態角速度(多核處理仿真)

圖9 對地定向三軸穩定模式小衛星相對軌道坐標系的姿態角(傳統計算機結果)

圖10 對地定向三軸穩定模式星體相對軌道坐標系的姿態角速度(傳統計算機結果)
從以上仿真結果可看出,采用多核處理技術構建的星務管理系統在計算速度上要好于現有的傳統星載計算機,而在計算精度上達到了現有計算機的性能.多核心技術的采用為未來小衛星星務管理系統的設計奠定基礎.
1)本文摒棄傳統星務管理系統的設計方法,利用多處理器并行處理的靈活性,構建了多核心處理器系統.
2)引入嵌入式實時操作系統對小衛星的任務進行調度和管理,充分發揮了多核心處理器系統的并行性和操作系統的實時性的優勢,使星務管理系統在功能和效率等方面均具有顯著的提高.
3)基于該思想設計的原理樣機現已投入科研試驗中.證明基于多核心設計的可重構星務管理系統是未來微小衛星發展的一條可行之路,也為其他項目的開展奠定了實驗基礎,為未來衛星編隊飛行、星間通信體制等方面研究提供了有力的支持.
[1]徐國棟,趙丹.可重構的衛星/運載復用電子系統設計[J].航空學報,2009,30(7):1298-1304.
[2]KAHRAMAN M O,SWENSON E D,BLACK J T.A constraint based approach for building operationally responsive space satellites[C]//4th Internation Conference on Recent Advances in Space Technologies.Istanbul Turkey:IEEE Computer Socity,2009:506-511.
[3]蘭盛昌,孫蕊,鄔樹楠,等.基于SoC 的“微型核”星載電子系統設計[J].哈爾濱工業大學學報,2007,40(7):1026-1031.
[4]孫兆偉,劉源,徐國棟,等.小衛星/小運載可重構多核計算機設計[J].航空學報,2010,31(4):770-777.
[5]ZAHID S,AYYAZ N.An economical on-board computer for low-earth-orbit satellites[C]//Proceedings of IEEE Students,Conference.Piscatalvay:IEEE Service center,2002:66-75.
[6]ASOKAN V,Designing Multiprocessor SOCs[J].Xcell,2008(2):48-50.
[7]武文權.可重構并行小衛星星載計算機體系結構設計[D].上海:中國科學院研究生院(上海微系統與信息技術研究所),2004:35-36.
[8]任小西,張克環,李仁發,等.基于可重構的星載數據處理系統結構研究[J].世界科技研究與發展,2008,30(2):147-150.
[9]施煒雷,于平,鄧超,等.基于UC/OS-Ⅱ的可重構計算機系統的設計[J].微計算機信息,2008,24(10):79-81.
[10]Xilinx.ML40x EDK Processor Reference Design-User Guide for EDK 8.1[M].edition 5.[S.l.]:Xilinx,2006:25-35.
[11]王松.基于FPGA 的多核可重構技術研究[D].哈爾濱:哈爾濱工業大學,2011:45-60.