侯亮 張沛 高升
(1 北京空間飛行器總體設計部,北京 100094) (2 空間智能機器人系統(tǒng)技術與應用北京市重點實驗室,北京 100094)
?
一種在線加載的分布式星載計算機系統(tǒng)方案
侯亮1,2張沛1,2高升1,2
(1 北京空間飛行器總體設計部,北京 100094) (2 空間智能機器人系統(tǒng)技術與應用北京市重點實驗室,北京 100094)
結合在星載計算機系統(tǒng)中廣泛采用的主從分布式體系結構,文章提出了一種基于在線加載機制的主從分布式星載計算機系統(tǒng)方案,其從節(jié)點計算機中僅存儲引導程序,應用程序存放于主節(jié)點計算機中,在從節(jié)點計算機啟動或復位后由主節(jié)點計算機通過總線網絡將其應用軟件進行加載。分析結果表明,此設計方案能夠降低從節(jié)點計算機對程序存儲區(qū)的需求,簡化從節(jié)點計算機的設計,并可優(yōu)化研制流程,在航天領域具有較好的應用前景。
引導程序;在線加載;主從分布式;星載計算機系統(tǒng)
星載計算機為典型的嵌入式系統(tǒng),一般由處理器、程序存儲區(qū)、數據存儲區(qū)、“看門狗”電路、通信接口電路、電源接口電路等組成[1]。星載計算機的程序存儲區(qū)用于存儲星載計算機應用程序,要求掉電不丟失,一般采用可編程只讀存儲器(PROM)實現(xiàn)。隨著星載計算機軟件復雜度的不斷提高,PROM容量已逐漸難以滿足星載計算機對體積和重量的嚴苛要求。同時為滿足軟件在軌維護的需求[2],電擦除可編程只讀存儲器(EEPROM)或閃速存儲器(FLASH)越來越多的應用于星載計算機中,并采用“PROM+EEPROM/FLASH”的組合形式作為程序存儲器[3],其中PROM中存儲引導程序,EEPROM或FLASH中存儲應用程序。在星載計算機上電或復位后,首先運行PROM中的引導程序,引導程序負責將EEPROM或FLASH中的應用程序引導至靜態(tài)隨機存儲器(SRAM)中運行,最終軟件在SRAM中運行[4]。
由于EEPROM和FLASH的抗輻照指標較低,易發(fā)生單粒子翻轉[5-8],實際應用中需要采取單粒子翻轉防護設計。在文獻[3]和[9]中,針對空間數字信號處理器(DSP)加載系統(tǒng)中FLASH的單粒子翻轉問題,提出了三模冗余和糾錯編碼用于糾正FLASH的錯誤,并采用定時刷新方案防止錯誤的積累。文獻[4]中,針對EEPROM的單粒子翻轉問題,結合SPARC V8(Scalable Processor ARChitecture,可擴充處理器結構)架構芯片的錯誤檢測與糾正(EDAC)功能和系統(tǒng)軟件冗余備份提出了一種容錯引導算法,提高系統(tǒng)的可靠性。上述方法都可以有效解決空間環(huán)境下EEPROM和FLASH的單粒子翻轉問題,但是需要每一臺應用程序較大或需要軟件維護的星載計算機均采用上述各種單粒子翻轉防護措施,如此會加大系統(tǒng)軟硬件設計的復雜度。
基于上述原因,結合在航天領域計算機系統(tǒng)中廣泛應用的主從分布式體系結構的特點[4],本文提出了一種基于在線加載機制的主從分布式星載計算機系統(tǒng)方案,對系統(tǒng)的組成、各組成部分的功能及系統(tǒng)的工作流程進行介紹,并對系統(tǒng)的性能進行分析和對比。
主從分布式體系結構不僅具有分布式系統(tǒng)的適應性強、可擴展性好和可靠性高的優(yōu)點,還具有層次清晰的特點,便于功能劃分,因此廣泛地應用于星載計算機系統(tǒng)中[10]。主從分布式星載計算機系統(tǒng)由一臺主節(jié)點計算機和若干從節(jié)點計算機組成,其中,主節(jié)點計算機負責整個計算機系統(tǒng)的調度運行及健康管理,從節(jié)點計算機在主節(jié)點的控制下,互相配合完成系統(tǒng)要求的各項任務,如圖1所示。
圖1 主從分布式體系結構的星載計算機系統(tǒng)示意圖Fig.1 Schematic of master-slave distributed on-board computer system
主從分布式星載計算機系統(tǒng)具有如下特點:
(1)系統(tǒng)的健康管理和狀態(tài)檢測一般由主節(jié)點計算機實現(xiàn),主節(jié)點計算機可根據從節(jié)點計算機的相關遙測對系統(tǒng)進行重組;
(2)從節(jié)點計算機用于完成系統(tǒng)的各項功能,并可根據系統(tǒng)需求進行數量的調整,具有良好的可擴展性;
(3)主從節(jié)點之間采用串行數據總線(1553B、CAN、SpaceWire等)進行數據交互。
3.1 系統(tǒng)結構
本文設計的星載計算機系統(tǒng)組成與傳統(tǒng)的主從分布式系統(tǒng)相同,由主節(jié)點計算機和若干從節(jié)點計算機組成,主節(jié)點計算機和從節(jié)點計算機通過星載總線網絡進行通信,各部分功能如下:
(1)主節(jié)點計算機:完成整個系統(tǒng)的管理并負責系統(tǒng)的對外通信接口,包括遙測數據的組織、健康管理、指令的解析等,與傳統(tǒng)的分布式系統(tǒng)不同,主節(jié)點計算機存儲有各從節(jié)點星載計算機的應用程序,可接收從節(jié)點計算機的加載請求并完成對從節(jié)點計算機的程序注入;主節(jié)點計算機中,自身的應用程序及從節(jié)點計算機的應用程序均存儲于EEPROM或FLASH中,主節(jié)點計算機需對存儲器數據進行保護,如采用定時刷新或三模冗余等保護措施,確保數據完好。
(2)從節(jié)點計算機:完成系統(tǒng)的特定功能,如熱控、指令發(fā)送、電機控制、敏感器數據采集、閥門控制等,與傳統(tǒng)的從節(jié)點計算機不同,其設備內部僅固化引導程序,應用程序必需從外部注入,而引導程序固化在對單粒子免疫的PROM中,從節(jié)點計算機無需采用抗單粒子翻轉措施,從而簡化硬件及軟件設計。
(3)星載網絡:為主從節(jié)點計算機之間的通信提供通路,可根據需求選用1553B、CAN、RS485、1394、SpaceWire等通信協(xié)議。
2.5.3 網關。Zig bee模塊接收傳感器發(fā)送來的數據,通過串口透傳將數據包再發(fā)送 給Wi-Fi模塊,從而連接外網。
星載計算機系統(tǒng)的組成如圖2所示。
圖2 系統(tǒng)組成示意圖Fig.2 Schematic of the system
3.2 系統(tǒng)工作流程
整個星載計算機系統(tǒng)的工作流程如圖3所示,首先主節(jié)點計算機上電、完成初始化后,主節(jié)點計算機依次控制各從節(jié)點計算機上電,并讀取存儲于主節(jié)點計算機中的各從節(jié)點計算機的應用程序,然后通過星載總線網絡注入至從節(jié)點計算機中。注入完成后,主節(jié)點計算機可根據相應從節(jié)點計算機的遙測判斷注入程序的狀態(tài),注入數據無誤,則控制相應的從節(jié)點計算機開始正常運行,否則重新注入應用程序。
目前在航天領域應用的星載網絡包括1553B總線、CAN總線、RS485總線、1394總線和SpaceWire總線,其中1553B及CAN總線的通信速率最低,為1 Mbit/s。一般星載計算機的應用程序不大于500 kbyte,在1 Mbit/s速率下完成的程序注入需要約4 s的時間,如果考慮總線利用率的因素,時間會進一步延長,但不會大于10 s,可滿足大部分航天應用的需求。隨著SpaceWire等高速總線在航天器中逐漸推廣應用,配置時間將進一步縮短。
圖3 系統(tǒng)工作流程Fig.3 Working flow of the system
在所有從節(jié)點計算機均完成程序注入后,整個系統(tǒng)開始運行。在運行期間,主節(jié)點計算機應周期性地輪詢各從節(jié)點計算機的狀態(tài),當從節(jié)點計算機因故障或其它原因重新啟動或復位時,對相應從節(jié)點計算機重新進行程序注入。
4.1 系統(tǒng)可靠性分析
假設分布式計算機系統(tǒng)中主從節(jié)點計算機均采用雙機熱備份設計,則系統(tǒng)的可靠性框圖如圖4所示,整個計算機系統(tǒng)的可靠性RSYS=Rm×Rsn,其中Rm為主節(jié)點計算機的可靠性,Rs為從節(jié)點計算機
的可靠性,n為從節(jié)點計算機的數量。
(1)
采用本文設計方法的分布式計算機系統(tǒng)的可靠性為
(2)
RSYSN與RSYST的比值為
(3)
圖4 系統(tǒng)可靠性框圖Fig.4 Reliability block diagram of the system
由式(3)可以看出,系統(tǒng)可靠性的提高與FLASH/EEPROM的失效率λf和從節(jié)點計算機的數量n有關,系統(tǒng)10年末期RSYSN與RSYST的比值N與從節(jié)點計算機數量和FLASH/EEPROM的失效率λf之間的關系如圖5所示,從節(jié)點計算機數量越多,λf越大,本文設計方案對可靠性的提高越明顯。
圖5 系統(tǒng)10年末期的可靠度對比Fig.5 Comparison of the reliability at the end of 10 years
4.2 系統(tǒng)存儲容量需求分析
根據本文的設計方案,所有從節(jié)點計算機的應用程序均存儲于主節(jié)點計算機中,因此僅需對主節(jié)點計算機應用程序存儲區(qū)進行三模冗余設計,現(xiàn)對其容量需求進行分析。
假設主從節(jié)點計算機均采用雙機備份設計,且主備份狀態(tài)完全一致,主節(jié)點計算機自身應用程序存儲區(qū)的容量需求為Cm,每個從節(jié)點計算機應用程序存儲區(qū)的容量要求最大為CS,從節(jié)點計算機數量為n,凡應用程序都要采用三模冗余設計。
如果采用傳統(tǒng)的設計方案,主從節(jié)點計算機均設計獨立的應用程序存儲區(qū),則整個計算機系統(tǒng)對應用程序存儲區(qū)容量的需求為
(4)
如果采用本文的設計方案,假設所有從節(jié)點計算機之間應用程序互不相同,此情況下針對每一個從節(jié)點計算機,主節(jié)點計算機僅需存儲一份應用程序,整個計算機系統(tǒng)即主節(jié)點計算機應用程序存儲區(qū)容量的需求為
(5)
二者之間的差值ΔM為
(6)
由以上分析可見,從節(jié)點計算機數量越多,應用程序越大,本文設計方案的優(yōu)勢越明顯。
4.3 研制流程優(yōu)化分析
對于星載計算機正樣產品的研制,在軟件完成了相關測試之后,需要對最終版本進行固化,傳統(tǒng)的設計方案情況下,主節(jié)點計算機及從節(jié)點計算機均需進行軟件固化,固化流程如圖6所示。
圖6 傳統(tǒng)設計方案星載軟件固化流程Fig.6 Software curing procedure of traditional design
如果采用本文的設計方案,由于僅有主節(jié)點計算機中需要固化應用程序,從節(jié)點計算機僅需提供應用程序軟件產品即可,本文的設計方案對應的軟件固化流程如圖7所示。
圖7 本文設計方案星載軟件固化流程Fig.7 Software curing procedure of design in this paper
由上文分析可見,本文的設計方案可以簡化從節(jié)點計算機的軟件固化流程,省去了從節(jié)點計算機軟件固化對應的大量測試、設備開蓋等工作,從而簡化了系統(tǒng)的研制,有利于加快衛(wèi)星研制進度。
由上文分析可知,本文的設計方案具有如下優(yōu)點:
(1)降低了整個分布式星載計算機系統(tǒng)對應用程序存儲區(qū)容量的需求,從節(jié)點計算機數量越多,應用程序越復雜,效果越明顯;
(2)從節(jié)點計算機設計簡化,不再需要針對應用程序存儲區(qū)進行相應的可靠性設計,如EDAC設計、三模冗余設計等等;
(3)從節(jié)點計算機研制流程簡化,可以節(jié)省從節(jié)點計算機應用軟件固化及對應的單機開蓋處理等大量的工作,有利于加快研制進度。
本文的設計方案的代價如下:
(1)從節(jié)點計算機應用程序加載時間增加:對于應用程序加載時間增加的問題,會導致從節(jié)點計算機不可控時間的增加,但根據上文分析,不可控時間一般可以控制在10s以內,對于大部分航天應用,可以滿足實時性要求,且隨著星載高速總線的應用,應用程序的加載時間會進一步縮短。
(2)從節(jié)點計算機的開發(fā)和測試條件增加:由于沒有設計應用程序存儲區(qū),從節(jié)點計算機單機調試和測試需要對應的地面測試設備的支持。但現(xiàn)在星載計算機一般都配有地面測試設備,且地面測試設備接口豐富,功能強大,實現(xiàn)上述程序注入的功能只需簡單更改地面測試設備軟件即可。
(3)主節(jié)點計算機數據維護量增加:由于主節(jié)點計算機存儲有從節(jié)點計算機的應用程序,主節(jié)點計算機需要對相應數據進行維護和管理,如定期巡檢、在線糾錯等,但主節(jié)點計算機本來就需要對自身的應用程序進行維護和管理,增加了從節(jié)點計算機的數據后只是數據量有所增加,功能無需增加。
(4)主節(jié)點計算機工作量增加:如采用本文設計方案,航天器發(fā)射后所有從節(jié)點計算機的更改都需要主節(jié)點計算機配合,在后續(xù)軟件維護、版本控制中主節(jié)點計算機的管理上的工作量會增加,但對于整個系統(tǒng)來說,是將從節(jié)點計算機的工作量轉移到了主節(jié)點計算機,總體來說系統(tǒng)的工作量增加較少。
綜上所述,對于從節(jié)點計算機數量多、應用程序需求量大的分布式星載計算機系統(tǒng),本文的設計方案可以帶來比較明顯的改善效果。
本文結合主從分布式星載計算機系統(tǒng)的特點,提出了一種基于在線加載的星載計算機系統(tǒng)方案,在有效降低系統(tǒng)對應用存儲區(qū)容量需求的同時,簡化了從節(jié)點計算機的軟硬件設計,使其不必針對應用程序存儲區(qū)采用三模冗余、EDAC等可靠性設計措施,并且可以顯著減少整個星載計算機系統(tǒng)在產品研制過程中的工作量。本文的設計方案對主從分布式星載計算機系統(tǒng)的設計有較好的參考作用。
References)
[1]朱智林,陳平,龔龍慶,等.基于System C的星載計算機系統(tǒng)設計[J].系統(tǒng)工程與電子技術,2006,28(1):107
Zhu Zhilin,Chen Ping,Gong Longqing,et al.On-board computer system design for satellites based on system C[J].Systems Engineering and Electronics,2006,28(1):107 (in Chinese)
[2]安軍社,劉艷秋,孫輝先.軟件的動態(tài)維護與實現(xiàn)[J].計算機工程,2003,29(2):238-239
An Junshe,Liu Yanqiu,Sun Huxian.Implementation of on-board software maintenance[J] .Computer Engineering,2003,29(2):238-239 (in Chinese)
[3]張路,賀興華,盧煥章.空間DSP加載系統(tǒng)可靠性設計[J].計算機工程,2010,36(5):15-17
Zhang Lu,He Xinghua,Lu Huanzhang.Reliablility design of space DSP bootloading system[J].Computer Engineering,2010,36(5):15-17 (in Chinese)
[4]辛寧,邱樂德,張立華,等.一種星載計算機操作系統(tǒng)容錯引導算法研究[J].宇航學報,2013,34(6):818-819
Xin Ning,Qiu Lede,Zhang Lihua,et al.A method for fault-tolerant bootloading osfile for on-board computer[J] .Journal of Astronautics,2013,34(6):818-819 (in Chinese)
[5]李豫東,張立國,任建岳.空間光學遙感器中Flash存儲器的輻射效應與加固[J].光學精密工程,2008,16(10):1858-1862
Li Yudong,Zhang Liguo,Ren Jianyue.Radiation effect and radiation hardening of flash memory in space optical remote sensor[J].Optics and Precision Engineering,2008,16(10):1858-1862 (in Chinese)
[6]Schwartzhr,Nichols A H,Johnston A H,et al.Single-event upset in flash memories [J].IEEE Transactions on Nuclear Science,1997,44(6):2315
[7]Claeys C,Ohyama H,Simoen E,et al.Radiation damage in flash memory cells[J].Nuclear Instruments and Methods in Physics Research B,2002:392-394
[8] Nguyen D N,Guertin S M,Swift G M,et al.Radiation effects on advanced FLASH memories[J].IEEE Transactions on Nuclear Science,1999,46(6):744
[9] 賀興華,肖山竹,張路,等.空間DSP信息處理系統(tǒng)存儲器SEU加固技術研究[J].宇航學報,2010,31(2):472-477
He Xinghua,Xiao Shanzhu,Zhang Lu,et al.Research on memory's SEU mitigation technology in DSP-based space information processing system[J].Journal of Astronautics,2010,31(2):472-477 (in Chinese)
[10]譚維熾,顧瑩琦.空間數據系統(tǒng)[M].北京:中國科學技術出版社,2006:318-322
Tan Weizhi,Gu Yingqi.Space data system[M] .China Science and Technology Press,2006:318-322 (in Chinese)
(編輯:李多)
A Concept of Distributed On-board Computer System Based on On-line Bootloader
HOU Liang1,2ZHANG Pei1,2GAO Sheng1,2
(1 Beijing Institute of Spacecraft System Engineering,Beijing 100094,China) (2 Beijing Key Laboratory of Intelligent Space Robotic System Technology and Applications,Beijing 100094,China)
A concept of distributed on-board computer system based on on-line bootloader is proposed in this paper by thoroughly studying master-slave distributed architecture which has been widely utilized in satellites.In this architecture,the program memory of the slave node computer is only used as bootloader.The host node computer loads the application software stored in the memory through bus network after the slave node computer is turned on or reset.The method introduced in this paper has extensive application potentials for space missions because it can effectively reduce the demand for the program memory,simplify the design of the slave node compu-ter,and optimize the development process.
bootloader;on-line load;master-slave distributed;on-board computer system
2015-08-05;
2015-08-18
侯亮,男,工程師,研究方向為星載計算機設計。Email:13811714268@163.com。
V446
A
10.3969/j.issn.1673-8748.2015.06.014