蘭盛昌,王 松,徐國棟
(1.哈爾濱工業(yè)大學 衛(wèi)星技術研究所,150001 哈爾濱,lansc1015@gmail.com;2.中國空間技術研究院,100964 北京)
隨著空間任務的深入,小衛(wèi)星對控制精度要求越來越高,要求控制周期越來越短;然而由于小衛(wèi)星在軌運行時,需要處理的數(shù)據(jù)多、任務復雜,加之中斷的頻繁發(fā)生,使得縮短傳統(tǒng)單處理器系統(tǒng)控制周期受到較大限制,性能難以大幅度提高[1-2].
為了解決上述問題,科學界進行了大量的工作:一方面可以通過系統(tǒng)功能分解,利用硬件模塊的增加來提升系統(tǒng)的性能,在微處理器、微電子設計理論的支撐下,以SoC 設計為基礎,信息處理為核心開展研究[3];一方面在軟件優(yōu)化上著手.不過這兩種方法中,前者勢必帶來整個衛(wèi)星體積、質量的增加,這對小衛(wèi)星的設計增加了風險和難度.而后者的優(yōu)化空間是有限的,很大程度上難以實現(xiàn)優(yōu)化的目標.
隨著超大規(guī)模集成電路設計技術的不斷發(fā)展,多核計算機技術對小衛(wèi)星星載電子系統(tǒng)的性能提升提供了新的思路.商用領域中,以Intel 的Core 和以ARM 公司的ARM11 為代表的多核處理器在單個芯片中集成了多個處理器核,在不增加硬件開銷和系統(tǒng)頻率的前提下極大提升了計算機的處理能力[4-6].因此,利用這種多核心處理器技術,可以快速靈活地在基于SRAM 工藝的FPGA 內部構建出任務所需要的處理器單元,合理地實現(xiàn)對軟硬件的劃分.一方面加強硬件資源的管理,另一方面同時利用嵌入式操作系統(tǒng)實現(xiàn)小衛(wèi)星任務調度和功能計算,能夠更好地提高微小衛(wèi)星在星務管理、姿軌控計算等方面的能力.
本文基于多核心處理器技術對星務管理系統(tǒng)設計展開研究.首先,對微小衛(wèi)星星務管理系統(tǒng)進行了功能需求分析,實現(xiàn)FPGA 內部基于軟核處理器的多核心系統(tǒng)構造,并移植以uC/OS-II 為代表的嵌入式操作系統(tǒng)完成資源分配和任務管理;然后,針對多核心處理器與嵌入式操作系統(tǒng)的特殊性,從軟硬件聯(lián)合設計的角度出發(fā),對星務管理系統(tǒng)任務的傳統(tǒng)劃分進行優(yōu)化;最后與現(xiàn)有的星上成熟產品進行對比.
作為小衛(wèi)星的核心,星務管理系統(tǒng)負責星上數(shù)據(jù)處理、任務調度、通信及控制等功能,同時通過測控系統(tǒng)連接地面站,解析遙控指令,組幀遙測信息,還要負責進行姿態(tài)、軌道測量與控制,實現(xiàn)衛(wèi)星自主故障診斷與處理,進行飛行任務及資源管理.具體要求如下:
1)制導、導航與控制功能.考慮到空間復雜動力學條件,小衛(wèi)星制導、導航與控制系統(tǒng)要求星務管理系統(tǒng)具備較高的快速性和實時性.
2)在軌管理功能.星務管理系統(tǒng)計算機具有較強的功能,可通過總線對星上設備等進行控制和管理.控制電源分系統(tǒng)為整星供配電,采集姿態(tài)軌道控制部件的參數(shù)并進行姿態(tài)軌道控制,控制載荷工作,并通過數(shù)傳分系統(tǒng)下傳數(shù)據(jù)等.
3)信息交互任務.需要采用先進的總線技術作為星務計算機與下位機信息交互的載體,要求具有良好的實時性,能夠滿足制導、導航與控制對響應時間的要求以及統(tǒng)一對時精度的要求,并且可以保證數(shù)據(jù)的可靠傳輸,構成小衛(wèi)星內高效可靠的通信網絡.
4)時間管理任務.為滿足任務管理和制導、導航和控制要求,要求星務管理系統(tǒng)可產生具有較高精度的飛行器時間參考,并可向有關分系統(tǒng)分配時間信息和定時信號,為分系統(tǒng)提供事件的時間標記,并具有星上時間集中校正和均勻校正能力,以保證星地時鐘的同步.
5)小衛(wèi)星故障處理.在小衛(wèi)星出現(xiàn)系統(tǒng)故障的情況下,能夠對故障部件和系統(tǒng)進行診斷和隔離,以維持飛行器的基本功能,保證個別部件出現(xiàn)問題的情況下不影響其他系統(tǒng)功能.
6)測控管理.能夠采集處理遙測參數(shù),組幀、存儲并傳輸?shù)降孛鏈y控站;同時接收地面遙控指令,解釋處理、分發(fā)或直接執(zhí)行;接收處理延時指令.
基于以上的功能要求,采用最新的可重構技術對星務管理系統(tǒng)的硬件進行設計.具體結構如圖1所示,主要包括FPGA 處理器單元、FPGA 配置存儲器單元、通用微處理器管理單元以及外部接口.
FPGA 是星務管理系統(tǒng)設計中的核心器件,采用SRAM 工藝的FPGA,并利用軟核處理器,能夠實現(xiàn)等同于ASIC 器件具備的功能,這里選用賽靈思公司推出的Virtex II 代產品XQR2V3000型芯片.以FPGA 作為設計載體,主要是考慮到FPGA 的可重構特性,能夠保證設計者根據(jù)系統(tǒng)需求進行有選擇性的設計,這樣也為多核技術的應用提供了可能[7-9].令人遺憾的是上述成果只停留在早期的可重構計算機設計上,缺乏工程實現(xiàn)性,并沒有考慮空間適應性的影響.
根據(jù)配置時間與可靠性方面的考慮,選用賽靈思公司專用的PROM 型專用配置芯片方案.采用XQR17V16 作為FPGA 所需的配置文件的存儲器.這里可以通過外部的通用微處理器管理單元對XQR17V16 的工作狀態(tài)進行選擇與控制.也可以考慮在此基礎之上利用多片PROM 型專用配置芯片完成不同配置文件的選取,從而當系統(tǒng)需要重配置時對FPGA 中的處理器結構和功能電路進行更新.在Selected Map 模式下完成整片F(xiàn)PGA的重配置僅需33 ms(配置時鐘為33 MHz).通用微處理器管理單元的作用:一方面可以作為看門狗,監(jiān)視FPGA 的工作狀態(tài),提供配置所需的控制信號;另一方面通過預留的UART 接口與FPGA相連形成數(shù)據(jù)傳輸,便于系統(tǒng)重配置過程中信息的保存和恢復.
片外具備存儲單元與FPGA 中的片內處理系統(tǒng)通過存儲器控制器IP 相連,由非易失型存儲器EEPROM/FLASH 和易失型存儲器SRAM 共同組成.其中EEPROM/FLASH 主要是保存程序代碼以及重要數(shù)據(jù).而SRAM 是FPGA 片內處理系統(tǒng)中程序運行的主要空間.考慮到大規(guī)模存儲器容易受到單粒子翻轉效應的影響,因此可以增加EDAC/ECC 校驗等手段實現(xiàn)數(shù)據(jù)的保護.
為了更好地應對空間環(huán)境的干擾,除了芯片等級選取有所提高外,硬件設計中還提供兩級看門狗機制與定期重配置的主動防護措施,其中FPGA 處理器單元定期向看門狗電路進行清狗操作.當FPGA 狀態(tài)異常時,F(xiàn)PGA 處理器單元的清狗信號一旦無效,一定時間后,看門狗電路會通知通用微處理器單元,由通用微處理器單元出發(fā)重配置信號,對FPGA 進行重配置.如果對FPGA 重配置不成功,則FPGA 對外輸出的看門狗清狗信號均無效,則供電端的單穩(wěn)態(tài)電路會進行自斷電處理.同時在通用微處理器單元的配合下有計劃地定期地重配置FPGA 以降低單粒子翻轉作用的影響.
FPGA 片內處理系統(tǒng)是星務管理系統(tǒng)功能實現(xiàn)的主要部分.根據(jù)任務需求,采用主協(xié)雙核處理器對常規(guī)的星載計算機進行優(yōu)化.在現(xiàn)有小衛(wèi)星500 ms 控制周期內,超過100 ms 進行姿態(tài)軌道計算,因此將姿態(tài)軌道計算放入協(xié)處理器中將有效提升系統(tǒng)的計算能力.設計的核心思想就是將原有的單一處理器的功能進行細化,形成負責星務管理的主處理器和負責姿態(tài)軌道計算的協(xié)處理器,并通過共享存儲空間的方式將主協(xié)處理器間的信息進行交互.
考慮到采用賽靈思FPGA 器件作為星務管理系統(tǒng)設計的可重配置載體,因此對處理器的設計也相應采用Microblaze 作為軟核處理器核心.這里以雙處理器系統(tǒng)為例,主要包括2 個獨立的軟核處理器MicroBlaze-A 和MicroBlaze-B,2 個FPGA 片內存儲器BRAM,2 個中斷管理器xps-intc,共享內部存儲器BRAM 及處理器間進行數(shù)據(jù)交換的xps-mutex 互斥核、XPS-Mailbox 郵箱.除此之外,還可以根據(jù)系統(tǒng)功能需要配置相應的對外接口(通用輸入輸出口GPIO 等)以及各自處理器所需的外部存儲器控制器接口,如圖2 所示.片內BRAM 作為雙核信息交互的媒介,雙核處理器間信息的交互均通過對BRAM 上共同存儲的空間讀寫完成.片內處理器與其他IP 之間通過Local Memory Bus 總線和On-Chip Peripheral Bus 總線相連.其中Local Memory Bus 總線用于軟核處理器訪問片內BRAM,包括指令緩存和數(shù)據(jù)緩存;OPB總線用于連接軟核處理器和外部接口控制器,處理器內核通過此總線完成對外設的訪問[10].
圖2 雙核處理器架構框圖
星務管理系統(tǒng)加電后,通用微處理器管理單元最先開始運行,由其完成整個FPGA 處理器單元的配置過程,配置觸發(fā)信號發(fā)出后,所選擇的專用配置芯片PROM 中的配置文件按照一定的時序寫入FPGA 內可配置區(qū)域,從而完成對FPGA雙核處理器結構的配置;初始化到內部BRAM 存儲器中引導程序自動運行,通過外部存儲器接口控制器將EEPROM/Flash 等非易失存儲器中的應用程序讀出并搬移到外部SRAM 中,完成后,啟動程序PC 指針的跳轉,將PC 指針指向SRAM 的基地址,開始運行搬轉到EEPROM/Flash 的應用程序,如圖3 所示.
圖3 系統(tǒng)啟動流程圖
硬件啟動過程完成后,小衛(wèi)星由星務管理系統(tǒng)進行控制.內部的兩個處理器單元進行功能劃分.通常情況下可以將原有星務管理的功能分配給兩個處理器.由MicroBlaze-A 完成信息采集,而由MicroBlaze-B 調用姿態(tài)軌道控制算法進行計算,完成衛(wèi)星姿態(tài)軌道的控制.其中,MicroBlaze-A 從對外接口獲得小衛(wèi)星各個系統(tǒng)的遙測信息以及地面上注的遙控信息,同時獲得姿態(tài)與軌道的實時測量數(shù)據(jù).MicroBlaze-A 將姿態(tài)與軌道的實時測量數(shù)據(jù)傳送到兩處理器間共享BRAM中,并將指向該數(shù)據(jù)的地址和數(shù)據(jù)量經XPSMailbox 傳遞給MicroBlaze-B 來完成,MicroBlaze-B 完成計算后,再次通過這種機制將信息返回給MicroBlaze-A,MicroBlaze-A 通過對外接口輸出至姿態(tài)軌道控制系統(tǒng).這種數(shù)據(jù)共享可以通過XPS-Mailbox 中斷方式通知對方,有很好的實時性,能夠有效地提高處理器間的處理效率.這種并行處理的能力是提升星務管理系統(tǒng)性能的有效途徑之一.
一般來說,衛(wèi)星由通用衛(wèi)星平臺和有效載荷兩部分組成.傳統(tǒng)的星務管理系統(tǒng)設計方法將硬件和軟件劃分為兩個獨立的部分.這種設計方法只能單一的針對硬件或軟件來進行改善,而在有限的設計空間中缺乏足夠的高度從系統(tǒng)出發(fā)完成對整個系統(tǒng)的性能綜合優(yōu)化.比如傳統(tǒng)的星務管理系統(tǒng)劃分為姿態(tài)軌道控制任務、數(shù)據(jù)通信任務、計算機自管理任務、故障檢測與處理任務(如圖4).以上基于功能異同對星務管理系統(tǒng)進行了任務劃分,這種劃分方法較好地詮釋了星務管理系統(tǒng)的功能,但在具體軟件程序實現(xiàn)時此劃分方法卻具有很大的局限性,各分系統(tǒng)任務間的交叉不利于軟件程序的模塊化設計[11];因此有必要在星務管理系統(tǒng)軟件實現(xiàn)時再一次對上述任務進行劃分與合并.在多核心處理器的層面,可以將原有的軟件任務部分轉為硬件化實現(xiàn).其目的是從星務管理系統(tǒng)軟硬件中,獲得一個滿足系統(tǒng)資源、成本、時間、功耗等方面需要且趨于最優(yōu)的方案.
圖4 星務管理系統(tǒng)任務劃分
在多核心處理器設計的層面,星務管理系統(tǒng)軟件可以根據(jù)硬件設計的實際情況整理出數(shù)據(jù)流向,分別針對通信接口建立不同的任務,以防止數(shù)據(jù)間的交叉造成數(shù)據(jù)錯誤.比如根據(jù)本文3 節(jié)給出的硬件設計,作出以下任務劃分:系統(tǒng)循環(huán)任務、遙控指令執(zhí)行任務、姿軌控任務、總線數(shù)據(jù)發(fā)送任務、總線數(shù)據(jù)接收任務、串行接口通信任務、系統(tǒng)監(jiān)測任務等,同時可以根據(jù)系統(tǒng)需求,增加一個空閑任務以消耗CPU 時間.其中特別值得注意的是,姿軌控任務可以分配給其他處理器完成,以降低系統(tǒng)開銷,同時也可以利用數(shù)字化設計等先進設計方法,完成面向姿軌控算法的IP 設計,通過調用IP 核,進一步提高運算的速度.
系統(tǒng)循環(huán)任務是整個星務管理系統(tǒng)中優(yōu)先級最高的任務,主要負責系統(tǒng)的初始化,初始化完成后,利用自身主時鐘計時,周期性產生信號量等信息以調度其他任務的運行.
遙控指令執(zhí)行任務主要是從遙控信道接口(如總線接口或脈沖編碼調制接口)接受遙控信息并執(zhí)行.
總線發(fā)送任務負責總線信息組幀及發(fā)送.
總線接收任務利用總線控制器給出的中斷信號,觸發(fā)中斷服務程序接受總線數(shù)據(jù),之后通過檢測幀ID 以及校驗和等信息,檢驗完成總線數(shù)據(jù)的分類和處理.
實際硬件接口的情況還包括了與姿態(tài)測量敏感部件的串行接口,因此將其獨立為一個任務,以區(qū)別于總線通信相關的任務.此任務既負責其控制姿態(tài)測量敏感部件指令的發(fā)送,也負責采集來自姿態(tài)測量敏感部件的工程參數(shù)和遙測參數(shù)及后續(xù)數(shù)據(jù)處理.
系統(tǒng)監(jiān)測任務負責星務管理系統(tǒng)對自身功能進行檢測、時間管理以及完成對星務系統(tǒng)本身即其他總線下位機的故障檢測與處理.
姿軌控任務負責衛(wèi)星飛行任務管理和姿態(tài)軌道控制算法的解算,其中姿態(tài)軌道控制算法的解算是星上計算量最大的部分.主要包括衛(wèi)星入軌初期的速率阻尼,任務需要時進行的對日捕獲和定向姿態(tài)控制;對日定向三軸穩(wěn)定姿態(tài)控制;星地數(shù)據(jù)傳輸期間以及軌道機動期間的對地定向三軸穩(wěn)定姿態(tài)控制;姿態(tài)失控條件下的姿態(tài)安全模式控制,以保證衛(wèi)星的能源供應.
在多核心處理器的使用中,可以由不同處理器來分擔上述任務.以本文3 節(jié)中所構建的處理器系統(tǒng)為例,可以利用MicroBlaze-A 完成姿軌控制部件的工程參數(shù)采集,并傳遞姿軌控制任務指令,通過處理器間的共享RAM 等方式,由MicroBlaze-B將指令解釋執(zhí)行或存入飛行任務列表,并根據(jù)飛行任務調用相對應的姿態(tài)軌道控制算法進行解算,并將計算結果返回給MicroBlaze-A,由MicroBlaze-B最終完成姿態(tài)軌道控制執(zhí)行部件指令發(fā)送.
為了更好地完成星務管理系統(tǒng)的運算性能的測試,采用小衛(wèi)星姿態(tài)軌道計算中頻繁調用的浮點乘法和三角函數(shù)來作為測試項.實驗中,選用哈爾濱工業(yè)大學試驗衛(wèi)星三號星載計算機使用的EX386 核心處理器的傳統(tǒng)星載計算機作為參照對象,以兩者計算頻率作為評定指標.測試結果如圖5 所示,可見相對于傳統(tǒng)星載計算機,本文所構造的星務管理系統(tǒng)在在單精度浮點運算以及雙精度浮點運算方面都有顯著的提高,單精度浮點計算能力提高了近130 倍,雙精度浮點計算能力提高了近20 倍,說明本文所構造的星務管理系統(tǒng)具有很強的計算能力.
圖5 多核心可重構星務管理系統(tǒng)與EX386 核心處理器星載計算機計算能力對比
在計算精度測試方面,首先建立仿真環(huán)境,由xPC 實時仿真機模擬衛(wèi)星控制系統(tǒng)中的敏感部件和執(zhí)行機構,包括反作用飛輪、光纖陀螺、星敏感器等.姿態(tài)控制系統(tǒng)采用以姿態(tài)四元數(shù)為姿態(tài)控制參數(shù)的PD 控制器加估計補償器的控制原理,如圖6 所示.分別將傳統(tǒng)基于EX386 設計的星務管理系統(tǒng)與多核心可重構星務管理系統(tǒng)接入仿真系統(tǒng),通過外部總線接口采集xPC 計算機提供的動力學仿真數(shù)據(jù),并調用姿態(tài)控制算法對其進行解算,得到計算結果后,返回給xPC 以模擬對執(zhí)行部件模擬器進行控制,并輸出姿態(tài)角和姿態(tài)角速度在這一仿真環(huán)境中的變化情況.仿真結果如圖7 ~10 所示,可見多核處理仿真結果與傳統(tǒng)星上計算方法在仿真精度上基本一致,能夠在100 s內完成大角度機動,取得很好的控制效果.
圖6 對地定向三軸穩(wěn)定模式控制算法對比仿真模型
圖7 對地定向三軸穩(wěn)定模式小衛(wèi)星相對軌道坐標系的姿態(tài)角(多核處理仿真)
圖8 對地定向三軸穩(wěn)定模式星體相對軌道坐標系的姿態(tài)角速度(多核處理仿真)
圖9 對地定向三軸穩(wěn)定模式小衛(wèi)星相對軌道坐標系的姿態(tài)角(傳統(tǒng)計算機結果)
圖10 對地定向三軸穩(wěn)定模式星體相對軌道坐標系的姿態(tài)角速度(傳統(tǒng)計算機結果)
從以上仿真結果可看出,采用多核處理技術構建的星務管理系統(tǒng)在計算速度上要好于現(xiàn)有的傳統(tǒng)星載計算機,而在計算精度上達到了現(xiàn)有計算機的性能.多核心技術的采用為未來小衛(wèi)星星務管理系統(tǒng)的設計奠定基礎.
1)本文摒棄傳統(tǒng)星務管理系統(tǒng)的設計方法,利用多處理器并行處理的靈活性,構建了多核心處理器系統(tǒng).
2)引入嵌入式實時操作系統(tǒng)對小衛(wèi)星的任務進行調度和管理,充分發(fā)揮了多核心處理器系統(tǒng)的并行性和操作系統(tǒng)的實時性的優(yōu)勢,使星務管理系統(tǒng)在功能和效率等方面均具有顯著的提高.
3)基于該思想設計的原理樣機現(xiàn)已投入科研試驗中.證明基于多核心設計的可重構星務管理系統(tǒng)是未來微小衛(wèi)星發(fā)展的一條可行之路,也為其他項目的開展奠定了實驗基礎,為未來衛(wèi)星編隊飛行、星間通信體制等方面研究提供了有力的支持.
[1]徐國棟,趙丹.可重構的衛(wèi)星/運載復用電子系統(tǒng)設計[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 的“微型核”星載電子系統(tǒng)設計[J].哈爾濱工業(yè)大學學報,2007,40(7):1026-1031.
[4]孫兆偉,劉源,徐國棟,等.小衛(wèi)星/小運載可重構多核計算機設計[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]武文權.可重構并行小衛(wèi)星星載計算機體系結構設計[D].上海:中國科學院研究生院(上海微系統(tǒng)與信息技術研究所),2004:35-36.
[8]任小西,張克環(huán),李仁發(fā),等.基于可重構的星載數(shù)據(jù)處理系統(tǒng)結構研究[J].世界科技研究與發(fā)展,2008,30(2):147-150.
[9]施煒雷,于平,鄧超,等.基于UC/OS-Ⅱ的可重構計算機系統(tǒng)的設計[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].哈爾濱:哈爾濱工業(yè)大學,2011:45-60.