江 衛(wèi),鄭 艷,徐夢茗,謝永春
(中國電子科技集團公司第三十研究所,四川成都610041)
隨著空間技術的發(fā)展,世界各國對太空領域的爭奪愈演愈烈,我國各種衛(wèi)星、深空探測器等不斷的發(fā)射成功,標志著我國進入了空間領域的大國。隨著空間通信技術的不斷發(fā)展,空間飛行器不斷的增加,對空間通信系統(tǒng)的信號處理要求越來越高,各種業(yè)務信息、載荷數據以無線電方式進行著天地互通;越來越多的信息處理設備需要有邏輯功能可重構、參數可更換、運行代碼可升級的特點,因此設計一種具有可重構的,能抗空間輻射的信息處理硬件平臺對空間通信技術的發(fā)展具有非常積極的意義。
目前商用領域信息處理的硬件平臺廣泛采用的是大規(guī)模集成電路和高性能數字信號處理器,由于該類元器件大量采用片上SRAM,受空間高能粒子影響發(fā)生單粒子翻轉(SEU,Single Event Up set)的概率大大提高,嚴重影響器件的正常功能,限制了這類元器件在空間環(huán)境中的應用,制約著我國空間通信技術的發(fā)展。文中結合商用可重構硬件平臺的特點,在此基礎上提出了一種基于DSP+FPGA架構的空間可重構信息處理硬件平臺,可適用于空間飛行器信息處理設備的設計,并對其中的硬件功能重構、軟件代碼更換以及單粒子效應防護等關鍵技術進行了研究。
隨著通信技術的發(fā)展,大多數信號處理設備的硬件設計都具有高速的信號處理能力,運行代碼可升級,算法參數可更換,功能可重構等特點;例如用于數據保護的信息安全防護設備,對涉及國家安全、軍事信息、外交及商業(yè)機密的無線通信系統(tǒng),提供安全防護[1]。在常規(guī)的星載電子設備中,為了防止空間中的輻射效應,選用的器件都是型號較老的反熔絲器件,數據一般都是固化在PROM里面,而對于某些信息處理來說,其中的算法、保護參數等都是具有生命周期的,在使用一段時期后,應該根據設計的生命周期進行相應的更換,固化的存儲器、低速的處理器等電子器件顯然不合適作為信息處理的硬件平臺。DSP+FPGA的硬件架構最大優(yōu)點是結構靈活,有較強的通用性,適合于模塊化設計,能提高算法效率,系統(tǒng)容易擴展,非常適合做信息處理的硬件平臺。這種硬件架構如果能有效規(guī)避空間輻射導致的故障,就可應用于設計空間飛行器的信息處理平臺。
空間輻射效應主要包括總劑量效應、單粒子翻轉、單粒子閂鎖、單粒子功能中斷、單粒子瞬時效應、單粒子燒毀等。DSP處理器具有高速度、低功耗的優(yōu)勢,一般采用CMOS工藝制造,內部主要由存儲器、寄存器、地址程序譯碼單元和乘加單元組成;對DSP處理器來說容易受到單粒子翻轉和單粒子功能中斷的影響,這些輻射效應有可能引起DSP器件中某一個功能部件的失效,甚至導致整個DSP處理器無法正常的工作;對SRAM型FPGA器件來說,空間輻射效益危害較大的是單粒子效應;國外發(fā)射的39顆同步衛(wèi)星資料異常情況統(tǒng)計顯示:衛(wèi)星異常狀態(tài)記錄中的71%是由空間輻射效應引起的,而單粒子效應故障占這類故障的55%[2]。高能粒子可導致配置存儲器和塊存儲器中數據發(fā)生翻轉,FPGA器件的控制寄存器、觸發(fā)器和分布式RAM等也有可能發(fā)生單粒子翻轉;如果翻轉發(fā)生在邏輯功能區(qū),可能導致設備的功能中斷;如果翻轉發(fā)生在RAM單元,可能導致數據錯誤或者丟失[3]。SRAM型FPGA需通過配置存儲器進行加載,因此配置存儲器中的數據控制著FPGA器件各組件的連接關系和邏輯功能,一旦發(fā)生單粒子效應就有可能破壞FPGA器件實現的功能,配置區(qū)域出錯導致的功能錯誤不可預估,且可能會持續(xù)擴散,直到重新配置該器件功能才可恢復正常。因此,這種數據打翻被認為是FPGA中最突出的單粒子效應。隨著微電子技術的發(fā)展,基于SRAM型FPGA和高性能DSP器件的晶體管工藝尺寸越來越小,密度越來越高、內核工作電壓的降低和工作頻率的大幅度提高,意味著電子設備的功耗更低、體積更小和重量更輕,這些特征都是空間飛行器電子設備所需要的。但電壓降低和晶體管密度的增加,意味著器件更容易受到單粒子效應的影響,空間飛行器信息處理設備因單粒子翻轉發(fā)生故障的情況會進一步增加,因此,使DSP+FPGA架構的硬件平臺具有較好的抗單粒子效應的能力是其在空間飛行器信息處理設備中應用的關鍵技術。
基于SRAM型FPGA的動態(tài)加載技術為空間飛行器信息處理的可重構提供了基礎,在本硬件架構的設計中,采用高可靠器件對SRAM型FPGA和DSP器件的單粒子效應進行監(jiān)控,采用動態(tài)重構技術修復單粒子效應引起的器件故障,使高性能的SRAM部件可以在空間飛行器電子設備中得到運用。采用該架構的硬件平臺運用于空間信息處理,既滿足了算法要求運行速度高,關鍵參數可更換的需求,又符合空間飛行器電子設備應具備抗空間輻射的要求。
空間飛行器信號處理設備的硬件在傳統(tǒng)DSP+FPGA架構上,增加了反熔絲FPGA器件作為監(jiān)測和邏輯譯碼單元。硬件架構如圖1所示,該硬件架構中主要對設備的處理器等部分的抗輻射和可重構進行了考慮,由于信息防護設備形態(tài)各異,與系統(tǒng)設備接口各不相同,關于通信接口不作具體描述。該設計采用高可靠等級的器件實現整個硬件電路的狀態(tài)穩(wěn)定,其中ROM單元和MLU(Monitor&Logic element Unit)采用一次性燒寫的反熔絲器件作為可靠性設計中高可靠部件,再結合FPGA的動態(tài)配置能力和DSP運行代碼的二次BOOT功能,實現抗空間輻射中的單粒子翻轉。
圖1 硬件架構示意Fig.1 Schematic diagram of the hardware architecture
在該架構中,MLU單元采用高可靠抗輻射的大規(guī)模集成電路實現,一般選用較多的是Actel公司的高可靠等級的反熔絲型的FPGA器件。MLU單元主要用于監(jiān)測FPGA和DSP的運行狀態(tài)并進行電路的邏輯譯碼,在MLU內部實現FPGA配置區(qū)回讀功能、DSP器件的譯碼及看門狗功能等。通過FPGA回讀功能可以發(fā)現FPGA內部配置區(qū)的功能塊是否被打翻,如果打翻,可重新進行FPGA的配置,修復單粒子翻轉導致的故障;高速數字信號處理器DSP芯片一般選用的是TI公司TMS320系列,該系列DSP芯片沒有進行抗輻射加固處理,因此容易受到空間輻射的影響;該架構中,當DSP發(fā)生嚴重錯誤后,可通過MLU的看門狗復位及譯碼控制,重新引導ROM中的程序到DSP中運行。
DSP芯片一般都是CMOS工藝器件,空間輻射的總劑量效應會對CMOS器件的PN結電路閾值電壓和靜態(tài)漏極電流造成影響,嚴重時會導致DSP功能的失效,但隨著元器件升級和制造工藝的發(fā)展,處理器內核電壓的降低、工藝水平的提高,器件的輻射總劑量承受能力會越來越高。因此對采用先進工藝的高性能DSP來講,總劑量效應對元器件影響正逐漸降低。單粒子翻轉、單粒子功能中斷對DSP的影響主要是引起程序的“跑飛”或者“死機”,邏輯功能紊亂和模塊間數據通信的異常等問題。對于這些問題,通過抗輻射容錯、檢錯方法、以及高可靠器件實現的外部監(jiān)控對處于錯誤狀態(tài)的DSP進行重新加載等措施來解決。
考慮到要進行參數更換,代碼升級,因此該設計中,DSP程序分兩種芯片存放,一種是不可更換的ROM,另一種是可更換內容的 FLASH存儲器。ROM用于存放最基礎的程序,主要用于對FLASH程序的校驗、加載,以及通過注入接口人工注入代碼等;程序FLASH中存儲DSP的運行代碼,該程序為空間飛行器信息處理設備的業(yè)務處理程序,具有周期性自檢,外部存儲區(qū)校驗、SRAM型FPGA配置加載、FPGA實現的算法校驗等功能,當發(fā)現數據區(qū)校驗結果有問題時,重新刷新數據區(qū)域。DSP程序的自舉流程如圖2所示。
DSP芯片的BOOT過程是把程序數據導入內部RAM空間,然后運行業(yè)務程序,雖然RAM單元易受到高能粒子的影響而打翻,但可以充分利用其具有快速加載更改的特性,重新加載或更改出錯單元來實現抗單粒子干擾。在上電加載過程中,首先進行第一次加載,該加載后的程序要設計得相對完善,因為固化后,不可再更改,在該程序中,具有注入接收處理程序,用于通過注入器注入二次加載運行的代碼,以實現代碼的更新,且存儲代碼以三模冗余的方式存儲;如果無需注入,再進行第二次加載,在FLASH芯片的存儲單元中選擇校驗正確的代碼,進行加載,加載成功后,代碼跳轉到正常的業(yè)務處理入口處,開始執(zhí)行程序。在業(yè)務處理中,必須有周期檢驗功能,隨時校驗RAM中的程序區(qū)代碼有否打翻,如果有,則重新改寫為正確的數據;數據區(qū)中的關鍵數據處理則進行三模冗余處理,通過以上處理方式,可大大增加抗單粒子翻轉的能力。如果剛好導致當前運行程序出錯,使自檢失效、程序紊亂,則通過MLU單元中的監(jiān)控電路,重新配置FPGA或者加載自身DSP運行程序,以實現單粒子翻轉導致的功能部件出錯。
圖2 DSP上電加載流程Fig.2 Boot load flow chart
在該硬件架構中,有兩類FPGA芯片,用于監(jiān)控和邏輯譯碼的MLU單元采用反熔絲型FPGA實現,用于算法實現和數據業(yè)務處理功能的FPGA采用Xilinx公司的SRAM型FPGA實現,抗輻射設計主要是對SRAM型FPGA而言。SRAM在空間輻射環(huán)境中工作易受單粒子翻轉的影響,帶電功能粒子投射到FPGA器件的敏感區(qū)域通常會導致FPGA中的存儲單元內容發(fā)生翻轉,可能帶來程序執(zhí)行序列出錯、計算結果出錯等后果,嚴重情況下可導致系統(tǒng)崩潰。發(fā)生錯誤后,可通過后端的SEU恢復,如錯誤檢測和糾正編碼(EDAC),以及Xilinx公司提出的刷新(Scrubbing)、回讀檢測等[4]方法進行恢復。
(1)FPGA的動態(tài)重構
SRAM型FPGA不僅具有可重編程能力,且處理速度快、集成度高。通過處理器或配置存儲器將配置數據寫入片內SRAM中,完成配置后,FPGA器件進入工作狀態(tài);器件掉電則配置數據丟失,FPGA內部邏輯功能和連接關系隨之消失。這種SRAM型FPGA器件的邏輯功能隨配置文件的變化而改變,非常適合信息處理的算法實現、定期參數更換等特點需求。這種可重構的特點為用戶提供了很大的靈活性,使得在軌編程成為可能。硬件原理示意圖如圖3所示。
圖3 FPGA動態(tài)重構電路示意Fig.3 Schematic diagram of FPGA reconfigurable circuit
SRAM型FPGA的配置通過MLU單元完成,FLASH存儲器中存儲 FPGA的配置代碼,且該FLASH芯片的內容可通過DSP進行讀寫,就可以離線或在線的方式更換FLASH存儲器中存儲的FPGA的配置文件內容,實現FPGA的邏輯功能的動態(tài)重構。在MLU中實現DSP和FLASH以及FPGA配置線的邏輯譯碼,以及配置引腳的控制,對SRAM型FPGA的配置就可由DSP主動發(fā)起,刷新FPGA的內容,或加載不同邏輯功能的配置文件,實現FPGA功能的恢復或重構;當SRAM型FPGA內容被打翻時,就可通過動態(tài)重構功能刷新配置區(qū),糾正因空間輻射導致的邏輯功能錯亂。在進行FPGA動態(tài)重構的時候,可以采用局部重構或者是全局重構,局部重構這種方法能夠在系統(tǒng)運行的狀態(tài)下,對FPGA器件其中某些模塊進行修改和更換。相對于全局重構來講,局部重構的優(yōu)勢是對部分模塊進行修改或更換,不干擾整個系統(tǒng)的運行,由于只修改部分模塊,需要地面上傳的配置數據也比較少。
(2)FPGA回讀電路
回讀電路的設計主要解決空間單粒子導致FPGA的配置區(qū)出錯。當單粒子引起配置區(qū)數據翻轉的時候會導致邏輯功能出錯甚至系統(tǒng)崩潰;通過回讀校驗以及動態(tài)重構技術可以修復單粒子翻轉造成的FPGA配置區(qū)錯誤。Xilinx公司的FPGA芯片可通過SelectMAP模式將配置區(qū)的內容進行回讀校驗,并動態(tài)刷新。為防止上電加載的配置數據受到單粒子翻轉的影響,通常該存儲器采用抗單粒子翻轉的PROM存儲器,但為了滿足空間飛行器信息處理所需的參數可更換,代碼可更新的特點,因此采用的是FLASH存儲器,其中對數據進行三模冗余存儲。如圖3中左側的FLASH存儲器中存儲著原始的配置數據,中間的MLU單元實現對SRAM型FPGA的回讀及配置控制,通過配置端口對目標FPGA配置區(qū)域的數據進行刷新。
這種硬件架構具有很好的靈活性,可通過DSP或者MLU單元實現對目標FPGA的回讀功能,回讀配置區(qū)域中的數據,然后將回讀的數據與外部FLASH存儲器中保存的配置數據進行比較,如果檢測出回讀數據有錯,則對出錯部分的配置數據進行刷新,修復因單粒子效應導致的配置數據出錯。對判斷回讀數據是否出錯的檢驗方法通常有兩種:一種是將回讀的配置數據與原始數據進行比較,另一種是采用類似CRC糾檢錯編碼;通過對回讀數據的檢錯并刷新,能夠準確地發(fā)現并修復FPGA器件發(fā)生的單粒子翻轉錯誤。
(3)軟件邏輯設計
在進行FPGA的軟件功能實現時,也應充分考慮抗單粒子翻轉。通過前面的方法,可以有效的防止配置區(qū)發(fā)生出錯的情況,但是在FPGA中,還有很多的寄存器、分布式RAM和塊RAM等等,這些里面存儲的數據是根據輸入或邏輯條件變化而變化的,通過回讀電路無法檢測有錯誤的發(fā)生。因此,在FPGA邏輯功能的實現時,要通過一些傳統(tǒng)的手段,規(guī)避發(fā)生單粒子翻轉,比如進行三模冗余設計,需實現三個相同功能的模塊進行三選二的表決。若有一個模塊發(fā)生單粒子故障,另兩個模塊工作正常,從而通過三取二的方式,保持最后輸出結果的正確性。三模冗余方法消耗的資源較多,因此該方法需根據資源利用的實際情況進行選擇。在星載FPGA中,空間環(huán)境輻射產生的存儲單元SEU效應就相當于某種干擾和噪聲對通信信道的影響[5],在本硬件架構中,對于實現較復雜的算法,較大的靜態(tài)參數表等,則可以通過DSP處理器周期性進行檢測,周期性刷新參數表;通過發(fā)送樣本數據,檢查算法輸出的結果是否一致、檢測算法本身運行結果是否出錯。通過以上手段,可有效規(guī)避SRAM型FPGA遭受SEU效應的影響。
該硬件架構設計既具有低功耗、高速度的優(yōu)勢,又具有FPGA的邏輯功能可重構和DSP運行代碼可在線更新的能力;通過該功能能夠實現空間飛行器電子系統(tǒng)的在軌升級以及功能更改,適應了某些信息處理設備需算法或參數周期性更換的特點。且可以充分利用天地互通信道對在軌平臺進行持續(xù)的技術更新,減少空間飛行器的研發(fā)與發(fā)射,從而節(jié)約成本。值得注意的是,FPGA重新完全配置和DSP重新自舉期間,設備處于非工作狀態(tài),在進行應用考慮時,應注意規(guī)避該情況的風險。文中的硬件設計能達到較好的抗SEU效果,為航天電子產品抗單粒子翻轉設計提供了一種解決方案。
[1]劉在爽,王堅,孫瑞,等.無線通信物理層安全技術綜述[J].通信技術,2014,47(02):128 -135.LIU Zai- shuang,WANG Jian,SUN Rui,etc.Review on Physical-Layer Security Techniques of Wireless Communications [J].Communications Technology,2014,47(02):128-135.
[2]王長河.單粒子效應對衛(wèi)星空間運行可靠性影響[J].半導體情報,1998,35(03):1 -8.WANG Chang-h(huán)e.The Single Particle Effect on the Reliability of Satellite Spatial Effect[J].ConductorIntelligence,1998,35(03):1-8.
[3]邢克飛,楊俊,王躍科,等.Xilinx SRAM型FPGA抗輻射設計技術研究[J].宇航學報,2007,28(01):123-129.XING Ke-fei,YANG Jun,WANG Yue-ke,etc.Study on The Anti-Radiation Technique for Xilinx SRAM -based FPGA[J].Journal of Astronautics,2007,28(01):123-129.
[4]徐斌,王貞松,陳冰冰,等.適用于空間環(huán)境下的FPGA容錯與重構體系[J].計算機工程,2007,33(03):231-233.XUN Bin,WANG Zhen - song,CHEN Bing- bing,etc.FPGA Fault Tolerance and Reconstruction System of Suitable for Space Environment[J].Computer Engineering,2007,33(03):231-233.
[5]熊劍平,賈惠波,尤政.微小衛(wèi)星數據存儲器單粒子作用的檢測及糾錯[J].中國空間科學技術,2000(06):50-55.XIONG Jian- ping,JIA Hui- bo,YOU Zheng.Detection and Correction Micro Satellite Data Memory Single Particle Effect[J].China Space Science and Technology,2000(06):50-55.