龐波 郝維寧 張文峰 徐勇 朱劍冰
(1北京航空航天大學(xué),北京100191)(2北京空間飛行器總體設(shè)計(jì)部,北京100094)
一種SRAM-FPGA在軌重構(gòu)的工程實(shí)現(xiàn)方案
龐波1,2郝維寧2張文峰1徐勇2朱劍冰2
(1北京航空航天大學(xué),北京100191)(2北京空間飛行器總體設(shè)計(jì)部,北京100094)
針對(duì)航天器電子系統(tǒng)在實(shí)際工程中要解決的星載資源受限、長(zhǎng)壽命、高可靠等特殊問(wèn)題,文章提出了一種基于靜態(tài)隨機(jī)存取存儲(chǔ)器型現(xiàn)場(chǎng)可編程門陣列(SRAM-FPGA)在軌重構(gòu)的方法及工程實(shí)施方案,對(duì)如何保證數(shù)據(jù)可靠傳輸與可靠存儲(chǔ)等關(guān)鍵問(wèn)題進(jìn)行了討論,并且給出了在某衛(wèi)星工程中的具體設(shè)計(jì)方案和在軌驗(yàn)證情況。結(jié)果表明,采取的重構(gòu)設(shè)計(jì)圓滿完成了目標(biāo)FPGA的功能升級(jí)以及在軌實(shí)時(shí)刷新,工作穩(wěn)定正常,可以為其他航天器電子系統(tǒng)設(shè)計(jì)提供參考。
基于靜態(tài)隨機(jī)存取存儲(chǔ)器型現(xiàn)場(chǎng)可編程門陣列;在軌重構(gòu);高可靠
當(dāng)前,現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array,FPGA)在航天領(lǐng)域的應(yīng)用越來(lái)越廣泛,其中靜態(tài)隨機(jī)存取存儲(chǔ)器型FPGA(Static Random Access Memory Based Field Programmable Gate Array,SRAM-FPGA)的可重復(fù)編程特性為航天器的硬件電路設(shè)計(jì)帶來(lái)了極大的靈活性。隨著航天器系統(tǒng)功能的不斷復(fù)雜,越來(lái)越多的航天器對(duì)FPGA提出了在軌重構(gòu)的要求。一方面,隨著應(yīng)用的不斷深入,通過(guò)修改設(shè)計(jì)升級(jí)平臺(tái)或載荷功能以滿足新的應(yīng)用需求;另一方面,對(duì)于在軌發(fā)現(xiàn)的故障或隱患,通過(guò)修改設(shè)計(jì),消除原設(shè)計(jì)中存在的缺陷,提高系統(tǒng)的可靠性。例如,基于FPGA的可重構(gòu)計(jì)算技術(shù)已成為航天器星載計(jì)算機(jī)微小型化解決方案之一[1]。NASA對(duì)可重構(gòu)計(jì)算技術(shù)的航天應(yīng)用進(jìn)行了評(píng)估,結(jié)果表明:航天應(yīng)用中基于FPGA的可重構(gòu)處理系統(tǒng)比傳統(tǒng)低性能微處理器,甚至比抗輻射增強(qiáng)商業(yè)微處理器具有更高的性能,可以通過(guò)重構(gòu)實(shí)現(xiàn)靈活的系統(tǒng)功能及通信協(xié)議等特殊功能[1]。根據(jù)FPGA的功能原理,在地面系統(tǒng)中實(shí)現(xiàn)FPGA重構(gòu)并不難做到,但是對(duì)于航天器在軌的特殊應(yīng)用環(huán)境,工程設(shè)計(jì)中需要面對(duì)資源受限、長(zhǎng)壽命、高可靠等工程要求,需要分析電路、存儲(chǔ)、通信等各類資源的可行性,同時(shí)采取可靠性措施,確保在增加設(shè)計(jì)靈活性的同時(shí)要保證系統(tǒng)的可靠性。本文重點(diǎn)對(duì)如何高可靠地實(shí)現(xiàn)航天器FPGA在軌重構(gòu)方案和具體的設(shè)計(jì)措施展開討論,對(duì)工程實(shí)施中需要解決的關(guān)鍵問(wèn)題提出了建議。
航天器使用的FPGA芯片主要有兩種,反熔絲FPGA和SRAM-FPGA。反熔絲FPGA屬于一次性可編程FPGA,具有非易失性的特點(diǎn),編程后內(nèi)部邏輯固定,掉電后無(wú)須重新配置,可靠性和抗輻射性能較好,適合在軍事和空間等領(lǐng)域應(yīng)用。SRAMFPGA內(nèi)部設(shè)有配置存儲(chǔ)器,通過(guò)存儲(chǔ)在配置存儲(chǔ)器內(nèi)的數(shù)據(jù)來(lái)控制開關(guān)元件,完成所需的邏輯功能。此類FPGA支持可重復(fù)編程,加載不同的配置數(shù)據(jù)就可以改變所實(shí)現(xiàn)的電路功能,設(shè)計(jì)靈活性和適應(yīng)性較強(qiáng)。該芯片是一種易失性芯片,配置信息掉電后須重新配置。
由于SRAM-FPGA易失性的特點(diǎn),因此需要在FPGA外部配置非易失的程序存儲(chǔ)器,如可編程只讀存儲(chǔ)器(PROM),用來(lái)存儲(chǔ)配置數(shù)據(jù),設(shè)備加電后通過(guò)加載配置數(shù)據(jù)實(shí)現(xiàn)所需的邏輯功能。SRAM-FPGA基本電路如圖1所示。
FPGA的邏輯配置過(guò)程就是將配置數(shù)據(jù)通過(guò)專用的配置接口寫到FPGA內(nèi)配置的寄存器的過(guò)程。這一過(guò)程包括一系列的控制命令字、特定格式的配置數(shù)據(jù)寫入、配置過(guò)程數(shù)據(jù)校驗(yàn)、芯片管腳電平控制等工作,需要按照FPGA專用接口時(shí)序,設(shè)計(jì)專門的配置電路和程序來(lái)實(shí)現(xiàn)。按照FPGA配置控制端的不同劃分了主動(dòng)/被動(dòng)配置模式,主動(dòng)配置模式是指配置時(shí)鐘由FPGA提供,由FPGA自身引導(dǎo)配置過(guò)程;被動(dòng)配置模式是指配置時(shí)鐘由外部提供,由外部器件將配置文件導(dǎo)入FPGA中;按照配置數(shù)據(jù)的寬度區(qū)分了串行/并行配置模式(并行配置模式一般稱為Select MAP Mode)。以目前常用VirtexII系列FPGA為例,芯片的配置模式分為主串(Master Serial)、從串(Slave Serial)、主并(Master Select Map)、從并(Slave Select Map)、邊界掃描配置(Boundary Scan)[2]。
主串模式下的FPGA從存儲(chǔ)器(如PROM)主動(dòng)得到串行數(shù)據(jù)進(jìn)行配置,而從串配置模式使得FPGA可以由其它處理器控制或通過(guò)菊花鏈的方式進(jìn)行配置。圖2為PROM及兩個(gè)主串/從串FPGA組成的菊花鏈?zhǔn)疽鈭D。在圖2中,主串FPGA的配置內(nèi)容和從串FPGA的配置內(nèi)容被合并為一個(gè)文件存儲(chǔ)在PROM中,主串FPGA先被配置,從串FPGA再被配置。
主并、從并模式使用Select MAP接口實(shí)現(xiàn)了數(shù)據(jù)從存儲(chǔ)器中并行讀取、加快了配置速度。如圖3所示,使用從并配置模式,利用專用控制電路或微處理器來(lái)控制重構(gòu)時(shí)序?qū)PGA進(jìn)行配置,除了程序加載,還可以用于程序重構(gòu)或在線實(shí)時(shí)刷新,可用來(lái)糾正FPGA的單粒子翻轉(zhuǎn)(Single Event Upset,SEU)故障,這在目前的航天器電子系統(tǒng)設(shè)計(jì)中比較常用。
由第2節(jié)可知,SRAM-FPGA的邏輯功能依賴于存儲(chǔ)的配置數(shù)據(jù),因此,更改星上存儲(chǔ)的配置數(shù)據(jù)即可更改FPGA的功能。以往從可靠性出發(fā),配置存儲(chǔ)器一般使用PROM,FPGA的功能無(wú)法改變。如果在設(shè)備內(nèi)設(shè)計(jì)一個(gè)“可寫”的存儲(chǔ)器作為FPGA的配置存儲(chǔ)器,通過(guò)在軌更換配置存儲(chǔ)器內(nèi)的程序數(shù)據(jù),然后重新加載FPGA,則可以實(shí)現(xiàn)硬件邏輯功能的在軌重構(gòu)。
星載設(shè)備內(nèi)部設(shè)計(jì)專門的重構(gòu)控制電路,利用專用集成電路(ASIC)或微處理器對(duì)目標(biāo)FPGA及其程序存儲(chǔ)器進(jìn)行管理和配置。通過(guò)遙控注入數(shù)據(jù),將新的FPGA配置程序傳送到航天器上。然后由軟件或?qū)S眯酒M(jìn)行操作控制,完成程序數(shù)據(jù)的解析、校驗(yàn)、存儲(chǔ)、加載和刷新等一系列的工作。FPGA程序可重構(gòu)存儲(chǔ)器選擇需要根據(jù)任務(wù)實(shí)際情況分析,一方面要考慮被重構(gòu)設(shè)備的工作模式,另一方面也要考慮系統(tǒng)的開銷。
對(duì)于需要頻繁開關(guān)機(jī)操作的設(shè)備,需要使用非易失性可編程存儲(chǔ)器,如Flash芯片、EEPROM芯片,這些芯片均支持在線操作進(jìn)行數(shù)據(jù)擦除和寫入,可以在軌進(jìn)行程序改寫,掉電后數(shù)據(jù)不丟失,可以長(zhǎng)期存儲(chǔ)配置程序,避免頻繁通過(guò)遙控上注。
對(duì)于某些微小衛(wèi)星等資源緊張的應(yīng)用環(huán)境,設(shè)備的工作時(shí)間不長(zhǎng),一般在設(shè)備不需要斷電的情況下,可以使用SRAM等易失性存儲(chǔ)器,通過(guò)處理器對(duì)FPGA完成加載。如果工作過(guò)程中需要對(duì)FPGA進(jìn)行刷新,數(shù)據(jù)要一直保存;如果不需要刷新,數(shù)據(jù)即可刪除。此方案的優(yōu)點(diǎn)是設(shè)計(jì)比較簡(jiǎn)單,軟件實(shí)現(xiàn)難度小,缺點(diǎn)是產(chǎn)品掉電后需要重新上注。
在地面系統(tǒng)中,通過(guò)直接更換程序存儲(chǔ)芯片或者對(duì)可擦除的存儲(chǔ)器進(jìn)行離線/在線編程,都可以很容易地實(shí)現(xiàn)系統(tǒng)內(nèi)FPGA重構(gòu)。但是在航天器系統(tǒng)中,FPGA程序重構(gòu)需要面臨一些特殊的限制條件。例如:發(fā)射后設(shè)備不可拆卸、要選用高可靠的存儲(chǔ)器芯片抵抗空間輻照、數(shù)據(jù)由地面送到航天器上的通信信道資源受限等等。此外,高可靠性是航天器系統(tǒng)特點(diǎn)之一,保證配置數(shù)據(jù)及配置過(guò)程的正確性和可靠性是工程設(shè)計(jì)需要重點(diǎn)關(guān)注的。根據(jù)FPGA在軌重構(gòu)的原理,實(shí)現(xiàn)高可靠的在軌重構(gòu)在實(shí)際工程設(shè)計(jì)中,需要考慮以下幾方面。
4.1 配置數(shù)據(jù)的可靠傳輸
配置數(shù)據(jù)由地面通過(guò)無(wú)線信道傳送到航天器上用于FPGA重構(gòu),通信過(guò)程中各環(huán)節(jié)產(chǎn)生的誤碼都會(huì)導(dǎo)致配置數(shù)據(jù)無(wú)效。對(duì)于星地通信環(huán)節(jié),航天器遙控信道具備良好差錯(cuò)控制措施,不需要增加額外的措施。將配置數(shù)據(jù)進(jìn)行格式化后,經(jīng)過(guò)遙控通信協(xié)議包裝,發(fā)送到星上,再由航天器遙控接收設(shè)備解析后給出正確的配置數(shù)據(jù),其可靠性可以滿足重構(gòu)的需要。對(duì)于星內(nèi)通信環(huán)節(jié),由于不同F(xiàn)PGA在星載系統(tǒng)中所處的位置不同,因此傳輸經(jīng)過(guò)的路徑也不盡相同,所設(shè)計(jì)的通信差錯(cuò)控制措施也不同,需要根據(jù)具體的設(shè)計(jì)選擇合理的設(shè)計(jì)手段。
配置數(shù)據(jù)的數(shù)據(jù)量一般比較大,而航天器遙控傳輸速率相對(duì)較低,傳輸時(shí)間會(huì)比較長(zhǎng)。例如,按照上行遙控碼速率4000 bit/s計(jì)算,采用脈沖編碼調(diào)制(PCM)遙控體制[3],去除勤務(wù)數(shù)據(jù),有效數(shù)據(jù)率約為3800 bit/s,因此完成1片300萬(wàn)門FPGA配置數(shù)據(jù)上傳時(shí)間大約為2900 s(11M/3800),還不包括遙控指令的確認(rèn)和保護(hù)間隔時(shí)間。可見(jiàn)對(duì)于測(cè)控系統(tǒng),執(zhí)行一次重構(gòu)的工程開銷非常大,參見(jiàn)表1[2,4]。
針對(duì)此問(wèn)題,系統(tǒng)設(shè)計(jì)中對(duì)配置數(shù)據(jù)采取了分段格式化的方法,按照遙控體制及數(shù)據(jù)封裝要求,在格式化的分段數(shù)據(jù)內(nèi)提供接收確認(rèn)和錯(cuò)誤重傳的通信協(xié)議,在發(fā)送過(guò)程中逐段完成數(shù)據(jù)檢驗(yàn),最終在航天器內(nèi)完成整體配置文件組裝及存儲(chǔ)。對(duì)發(fā)生傳輸誤碼的數(shù)據(jù)塊可以單獨(dú)重傳替換,提高數(shù)據(jù)上注效率。對(duì)于較大的程序,支持多弧段分時(shí)注入,可適用于低軌道航天器。
表1 航天器常用FPGA的配置數(shù)據(jù)規(guī)模及傳輸時(shí)間統(tǒng)計(jì)Table 1 Gate and bitstream size of common-used FPGA in spacecraft
4.2 配置數(shù)據(jù)的可靠存儲(chǔ)
配置數(shù)據(jù)存儲(chǔ)在星上,用于對(duì)FPGA的配置、掉電復(fù)位后重加載、防SEU刷新等操作,其正確性至關(guān)重要。對(duì)于長(zhǎng)壽命航天器,長(zhǎng)期存儲(chǔ)的數(shù)據(jù)一般需要采取抗輻射設(shè)計(jì)及可靠性設(shè)計(jì)措施來(lái)保證數(shù)據(jù)的可用性。一方面,存儲(chǔ)器芯片的可靠性、抗輻射性能一定要滿足要求,一般選擇使用非易失的存儲(chǔ)器如EEPROM、Flash;另一方面,需要針對(duì)空間環(huán)境中發(fā)生的單粒子翻轉(zhuǎn)效應(yīng),對(duì)存儲(chǔ)器發(fā)生數(shù)據(jù)錯(cuò)誤進(jìn)行容錯(cuò)設(shè)計(jì),常用方法有兩種:錯(cuò)誤檢測(cè)與糾正(Error Detection And Correction,EDAC)和三模冗余(Trip Module Redundancy,TMR)[5]。
(1)EDAC是采用擴(kuò)展的漢明校驗(yàn)碼來(lái)完成自動(dòng)糾正一位錯(cuò)檢測(cè)任意兩位錯(cuò)的功能。在配置控制電路中增加EDAC電路,可以在讀寫配置數(shù)據(jù)時(shí),通過(guò)檢測(cè)編碼的合法性來(lái)發(fā)現(xiàn)錯(cuò)誤直至糾正錯(cuò)誤。常用的漢明碼算法應(yīng)該滿足不等式:2r≥k+r+1(k為數(shù)據(jù)碼位數(shù),r為校驗(yàn)碼位數(shù))。如果要完成糾一檢二的功能,需要再增加一位校驗(yàn)碼,滿足以下關(guān)系式:2r-1≥k+r[6]。
(2)TMR設(shè)計(jì)是利用三片配置存儲(chǔ)器存儲(chǔ)同一份配置數(shù)據(jù),在進(jìn)行配置時(shí),控制器從三片配置存儲(chǔ)器中同時(shí)讀出配置數(shù)據(jù),并進(jìn)行三取二表決,將表決后的數(shù)據(jù)加載到FPGA中作為配置數(shù)據(jù)??紤]到三片中同時(shí)有兩片以上發(fā)生同一位翻轉(zhuǎn)的概率很小,因此三冗余的方法能夠顯著降低單粒子翻轉(zhuǎn)的影響。
兩種方法都是利用存儲(chǔ)空間的冗余解決數(shù)據(jù)的正確性。TMR設(shè)計(jì)需要實(shí)際配置數(shù)據(jù)規(guī)模3倍的存儲(chǔ)空間,而采用EDAC所需要增加的存儲(chǔ)器容量相對(duì)較少。根據(jù)漢明碼的特性,數(shù)據(jù)字長(zhǎng)的大小對(duì)編碼后增加的容量影響較大。例如:對(duì)于4位的字長(zhǎng),增加的存儲(chǔ)空間為75%;對(duì)于8位的字長(zhǎng),增加的存儲(chǔ)空間為50%;對(duì)于16位的字長(zhǎng),增加的存儲(chǔ)空間為31%;對(duì)于32位的字長(zhǎng),增加的存儲(chǔ)空間為19%;對(duì)于43位的字長(zhǎng),增加的存儲(chǔ)空間為11%??梢愿鶕?jù)實(shí)際使用中數(shù)據(jù)操作位寬選擇具體的EDAC策略。此外,還可采取在運(yùn)行過(guò)程中對(duì)糾錯(cuò)后的數(shù)據(jù)進(jìn)行回寫,消除SEU效應(yīng)累計(jì)造成雙比特以上的不可糾正的錯(cuò)誤,進(jìn)一步提高存儲(chǔ)可靠性。
上述增加可靠性的設(shè)計(jì)措施,會(huì)帶來(lái)存儲(chǔ)資源增加和設(shè)計(jì)復(fù)雜度提高,增加系統(tǒng)開銷,需要根據(jù)實(shí)際的工程情況評(píng)估方案的合理性。
4.3 配置數(shù)據(jù)的壓縮
隨著星載電路功能越來(lái)越復(fù)雜,更多高端FPGA芯片應(yīng)用在航天器設(shè)備內(nèi)部。FPGA規(guī)模不斷增大,隨之而來(lái)的問(wèn)題就是配置數(shù)據(jù)量的增加。如此,不但會(huì)導(dǎo)致配置存儲(chǔ)器容量的增加,高可靠存儲(chǔ)器的增多無(wú)疑會(huì)增加系統(tǒng)的硬件成本;而且程序上注時(shí)間過(guò)長(zhǎng),對(duì)于較低的星地測(cè)控信道帶寬和有限的可見(jiàn)測(cè)控弧段來(lái)說(shuō),會(huì)給地面測(cè)控帶來(lái)較大的負(fù)擔(dān)[7]。因此有必要對(duì)配置數(shù)據(jù)進(jìn)行壓縮,減少傳輸和存儲(chǔ)的數(shù)據(jù)量,提高重構(gòu)的效率,減少系統(tǒng)開銷。
數(shù)據(jù)壓縮可以分為無(wú)損壓縮和有損壓縮。FPGA配置數(shù)據(jù)具有特定的格式,數(shù)據(jù)內(nèi)容決定了FPGA的邏輯功能,不能出現(xiàn)數(shù)據(jù)錯(cuò)誤,必須采用無(wú)損壓縮。目前可采用的主流壓縮算法有算術(shù)編碼、Huffman編碼和基于字典的LZ系列壓縮算法[8]。系統(tǒng)設(shè)計(jì)時(shí)可以根據(jù)壓縮效果和實(shí)現(xiàn)的復(fù)雜程度進(jìn)行合理的選擇。選擇時(shí)主要靠慮3個(gè)因素:編碼的壓縮效率,解壓縮的速度,實(shí)現(xiàn)復(fù)雜度。
算術(shù)編碼和Huffman編碼屬于統(tǒng)計(jì)壓縮方法,依賴于數(shù)據(jù)的統(tǒng)計(jì)模型。針對(duì)不同的配置數(shù)據(jù)須重新構(gòu)造統(tǒng)計(jì)信息或者分別保留多個(gè)配置數(shù)據(jù)的統(tǒng)計(jì)信息,降低了系統(tǒng)的性能。基于字典的壓縮方法解碼簡(jiǎn)單(不對(duì)稱壓縮),滿足了FPGA配置解壓縮的要求。
文獻(xiàn)[9]給出了幾種不同壓縮算法對(duì)FPGA配置數(shù)據(jù)的效果,其中針對(duì)目前常用的300萬(wàn)門FPGA,其壓縮效果見(jiàn)表2。
其他系列FPGA的壓縮效果基本類似。根據(jù)文獻(xiàn)[9]列舉的幾種壓縮算法的試驗(yàn)結(jié)果,采用字典壓縮算法對(duì)FPGA配置數(shù)據(jù)的壓縮比約在3~20的量級(jí),且資源占用比越低,壓縮效果越明顯。對(duì)于比較合理的系統(tǒng)設(shè)計(jì),FPGA資源占比在60%~80%之間,采用壓縮后,存儲(chǔ)資源和通信時(shí)間可減少至1/2,能有效地降低系統(tǒng)設(shè)計(jì)成本和在軌重構(gòu)的操作開銷。
表2 不同資源占用率下字典壓縮算法的壓縮比對(duì)照Table 2 Compression performance comparison at various utilization ration
基于字典式的LZ系列算法解壓縮過(guò)程簡(jiǎn)單,易于用硬件實(shí)現(xiàn),算法的實(shí)現(xiàn)不依賴特定FPGA結(jié)構(gòu)。解壓縮字典在解碼過(guò)程中動(dòng)態(tài)建立,不需要預(yù)先存儲(chǔ),解壓縮可以與FPGA配置、重構(gòu)和刷新的過(guò)程結(jié)合完成,在配置控制電路內(nèi)一并實(shí)現(xiàn),不需要增加系統(tǒng)硬件開銷。
目前,航天器電子系統(tǒng)中的處理設(shè)備,很多都采用“CPU+FPGA”的架構(gòu)。圖4給出了一種常見(jiàn)的應(yīng)用場(chǎng)景,需要重構(gòu)的目標(biāo)FPGA位于星上綜合電子分系統(tǒng)某單機(jī)內(nèi)部,設(shè)備工作統(tǒng)一由CPU模塊控制,并與外部通信。待重構(gòu)功能模塊與CPU模塊通過(guò)底板數(shù)據(jù)總線通信。為了實(shí)現(xiàn)在軌重構(gòu),采用反熔絲FPGA(重構(gòu)控制FPGA,也可以由CPU實(shí)現(xiàn))實(shí)現(xiàn)對(duì)目標(biāo)FPGA重構(gòu)控制。圖4中有兩片待重構(gòu)FPGA,其程序存儲(chǔ)器芯片可共用1片較大的Flash存儲(chǔ)器芯片。不同的目標(biāo)FPGA程序分區(qū)存儲(chǔ),由用重構(gòu)控制FPGA來(lái)統(tǒng)一管理。圖4中單箭頭表示涉及的數(shù)據(jù)或信號(hào)為單向傳輸,雙向箭頭表示涉及的數(shù)據(jù)或信號(hào)為雙向傳輸?!爸貥?gòu)控制芯片”完成目標(biāo)FPGA在軌重構(gòu)的核心處理工作,包括:
(1)提供與CPU模塊的數(shù)據(jù)總線接口,作為CPU的外部輸入/輸出(I/O),接收軟件產(chǎn)生的控制命令、待重構(gòu)程序數(shù)據(jù),向軟件上報(bào)相關(guān)工作狀態(tài)。
(2)提供對(duì)重構(gòu)程序存儲(chǔ)器的讀寫接口,完成對(duì)存儲(chǔ)器讀寫控制。將接收到的程序數(shù)據(jù)實(shí)時(shí)存入程序存儲(chǔ)器;按照規(guī)定格式讀出配置數(shù)據(jù),并對(duì)其正確性進(jìn)行檢查,為目標(biāo)FPGA提供可用的配置數(shù)據(jù)。
(3)對(duì)目標(biāo)FPGA進(jìn)行配置控制和編程,支持對(duì)目標(biāo)FPGA的全部邏輯重構(gòu)和在線實(shí)時(shí)刷新功能(消除SEU故障)。
(4)監(jiān)視目標(biāo)FPGA的工作狀態(tài),生成相關(guān)的狀態(tài)遙測(cè)量。
航天器在軌飛行過(guò)程中,實(shí)施在軌重構(gòu)過(guò)程如下:
(1)根據(jù)任務(wù)要求重新設(shè)計(jì)FPGA,并在地面測(cè)試系統(tǒng)上完成測(cè)試驗(yàn)證。
(2)將修改后的FPGA程序加工成符合航天器遙控上注的格式化數(shù)據(jù)。
(3)將目標(biāo)FPGA工作狀態(tài)設(shè)置為重構(gòu)程序?qū)懭肽J?準(zhǔn)備接收新程序;此過(guò)程僅對(duì)配置存儲(chǔ)器進(jìn)行數(shù)據(jù)更新,此時(shí)目標(biāo)FPGA工作可不中斷。
(4)由地面將經(jīng)過(guò)驗(yàn)證的FPGA程序通過(guò)遙控注入到星上;星上接收后,通過(guò)星上處理器完成解析、校驗(yàn),存到設(shè)備內(nèi)的重構(gòu)程序存儲(chǔ)器內(nèi)。
(5)停止目標(biāo)FPGA的工作,啟動(dòng)配置模式,將需要重構(gòu)的邏輯加載至目標(biāo)FPGA;檢查重構(gòu)后的健康狀態(tài),并通知地面。
(6)重新啟動(dòng)設(shè)備,檢查軟硬件運(yùn)行狀態(tài)并通知地面;將設(shè)備轉(zhuǎn)入FPGA刷新模式,啟動(dòng)在線實(shí)時(shí)刷新,消除FPGA在軌SEU故障,確保穩(wěn)定工作。
以上方案在某航天器綜合電子系統(tǒng)內(nèi)核心單機(jī)上完成了工程設(shè)計(jì)和在軌驗(yàn)證。系統(tǒng)利用ACTEL公司的反熔絲型FPGA設(shè)計(jì)實(shí)現(xiàn)了專用控制芯片,集成了數(shù)據(jù)接收、存儲(chǔ)、校驗(yàn)、配置和刷新等一系列功能。工程實(shí)踐表明,在航天器運(yùn)行過(guò)程中,采用本方案圓滿地完成了目標(biāo)FPGA的功能升級(jí)以及在軌實(shí)時(shí)刷新,設(shè)備工作穩(wěn)定正常。此外,重構(gòu)措施在航天器地面研制階段,提供了方便的FPGA程序更換手段,設(shè)備交付后,可以通過(guò)測(cè)控通道上注新版本程序進(jìn)行測(cè)試,避免頻繁拆裝設(shè)備,顯著提高了研制效率。
綜上所述,本文介紹了航天器FPGA在軌重構(gòu)的基本原理和方案,并針對(duì)航天器的特殊應(yīng)用環(huán)境和可靠性需求,重點(diǎn)討論了在工程實(shí)施過(guò)程中需要解決的幾個(gè)關(guān)鍵問(wèn)題:通過(guò)信道編碼和校驗(yàn)可以保證可靠的數(shù)據(jù)通信;針對(duì)在軌空間單粒子翻轉(zhuǎn)效應(yīng)對(duì)存儲(chǔ)器進(jìn)行容錯(cuò)設(shè)計(jì);利用配置接口實(shí)現(xiàn)FPGA的實(shí)時(shí)刷新,配合三模冗余(TMR)設(shè)計(jì)可以有效地解決FPGA的SEU故障。從而充分發(fā)揮SRAMFPGA可重復(fù)編程的特點(diǎn),為航天器提供可靠的在軌重構(gòu)功能。在實(shí)際工程中可根據(jù)任務(wù)需求和系統(tǒng)開銷約束,選擇具體的實(shí)施方案。
References)
[1]趙丹,徐國(guó)棟,劉源.可重構(gòu)技術(shù)的航天應(yīng)用與星載計(jì)算機(jī)設(shè)計(jì)[J].哈爾濱工程大學(xué)學(xué)報(bào),2009,30(5):486-490 Zhao Dan,Xu Guodong,Liu Yuan.Aerospace application of reconfigurable computing technique[J].Journal of Harbin Engineering University,2009,30(5):486-490(in Chinese)
[2]Xilinx Incorporation.Virtex-II platform FPGA user guide[Z].San Jose:Xilinx Incorporation,2002
[3]國(guó)防科學(xué)工業(yè)技術(shù)委員會(huì).GJB1198.1A-2004航天器測(cè)控和數(shù)據(jù)管理 第1部分 PCM遙控[S].北京:國(guó)防科學(xué)工業(yè)技術(shù)委員會(huì),2004 Commission of Science,Technology and Industry for National Defense.GJB 1198.1A_2004 Telemetry tracking command and data handling for spacecraft part 1:PCM telecommand[S].Beijing:Commission of Science,Technology and Industry for National Defense,2004(in Chinese)
[4]Xilinx Incorporation.Virtex-4 FPGA user guide[Z].San Jose:Xilinx Incorporation,2010
[5]陳楠,魏廷存,魏曉敏,等.抗單粒子翻轉(zhuǎn)效應(yīng)的SRAM研究與設(shè)計(jì)[J].固體電子學(xué)研究與進(jìn)展,2013,33(5):491 Chen Nan,Wei Tingcun,Wei Xiaomin,et al.Research and design of SEU-hardened SRAM chip[J].Research&Progress of SSE,2013,33(5):491(in Chinese)
[6]黃琳,陳第虎,梁寶玉,等.2S698M SoC 芯片中EDAC模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)集成電路,2008,9:50-54 Huang Lin,Chen Dihu,Liang Baoyu,et al.Design and realization of error detection and correction circuit in S698 M SoC processor[J].China Integrated Circuit,2008,9:50-54(in Chinese)
[7]陳觀興,白云飛.基于高級(jí)在軌系統(tǒng)的可重構(gòu)復(fù)接器的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2010,26(4):40-42 Chen Guanxing,Bai Yunfei.Implementation of reconfigurable multiplexer using advance orbit system[J].Microcomputer Information,2010,26(4):40-42(in Chinese)
[8]古海云,李麗,許居衍,等.一種Virtex系列FPGA配置數(shù)據(jù)無(wú)損壓縮算法[J].計(jì)算機(jī)研究與發(fā)展,2006,43(5):940-945 Gu Haiyun,Li Li,Xu Juyan,et al.Lossless configuration bitstream compression for virtex FPGAs[J].Journal of Computer Research and Development,2006,43(5):940-945(in Chinese)
[9]徐勇,李珂.馮國(guó)平,等.一種FPGA在軌重構(gòu)配置數(shù)據(jù)壓縮算法[J].航天器工程,2015,24(6):75-78 Xu Yong,Li Ke,Feng Guoping,et al.Configuration data compression algorithm for FPGA on-orbit reconfiguration[J].Spacecraft Engineering,2015,24(6):75-78(in Chinese)
Scheme of SRAM-FPGA On-orbit Reconfiguration
PANG Bo1,2HAO Weining2ZHANG Wenfeng1XU Yong2ZHU Jianbing2
(1 Beihang University,Beijing 100191,China)(2 Beijing Institute of Spacecraft System Engineering,Beijing 100094,China)
For spacecraft electronic system to be solved in the practical engineering of onboard limited resource,long life and high reliability and other special requirements,this paper bring forward a method of SRAM-FPGA on-orbit reconfiguration,and key problems on how to ensure the reliable data transmission and storage project are discussed in detail,and gives the implementation scheme of the method in a certain mission engineering design and on-orbit verification.The results show that the orbit reconfiguration design successful complete the target FPGA’s upgrade and refreshment,which can provide a reference for other spacecraft electronic system design.
SRAM-FPGA;on-orbit reconfiguration;high reliabilit y
V44
A
10.3969/j.issn.1673-8748.2017.05.009
2016-08-11;
2017-09-14
國(guó)家重大科技專項(xiàng)工程
龐波,男,博士研究生,高級(jí)工程師,研究方向?yàn)楹教炱骶C合電子系統(tǒng)。Email:spartan_email@sina.com。
(編輯:李多)