一種星載大容量fpga程序在軌上注及配置方法
【專利摘要】一種星載大容量FPGA程序在軌上注及配置方法,通過將編譯好的程序利用星地間上傳至衛(wèi)星上,在衛(wèi)星上進(jìn)行存儲,并能根據(jù)遙控指令進(jìn)行智能配置,使星載FPGA工作于地面要求的模式。本發(fā)明具有能夠?qū)崟r調(diào)整FPGA程序,根據(jù)地面要求動態(tài)調(diào)整工作內(nèi)容的特點,使在軌FPGA程序靈活更改,提高在軌利用率,并能有效提高抗輻照能力。
【專利說明】—種星載大容量FPGA程序在軌上注及配置方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種星載大容量FPGA程序在軌上注及配置方法,通過將FPGA程序加入糾錯信息通過地面上注給星上控制部件,并接收地面發(fā)送的遙控指令,根據(jù)指令進(jìn)行相應(yīng)的FPGA程序配置,從而提高FPGA器件的靈活性并且提高器件的抗輻照能力。
【背景技術(shù)】
[0002]隨著電子技術(shù)的發(fā)展,尤其是大規(guī)模高性能可編程器件的出現(xiàn),衛(wèi)星上采用器件越來越靈活。目前星載處理單元越來越多的選用高性能大規(guī)模FPGA器件作為主要運(yùn)算單元,集成度越來越高,功能越來越復(fù)雜,其作用不可替代,但是受到衛(wèi)星條件限制,F(xiàn)PGA所用的程序必須一次固化,不可更改,無法根據(jù)任務(wù)的調(diào)整或者程序存在隱患以及由于程序在軌受到太空輻照的影響造成的單粒子效應(yīng)進(jìn)行二次修改,程序存在隱患及單粒子效應(yīng)影響衛(wèi)星部件的使用,造成衛(wèi)星部件的使用周期縮短或功能受限,嚴(yán)重的可能造成衛(wèi)星部件失效。
[0003]同時星地間傳輸能力有限,并且FPGA的程序從地面上注到衛(wèi)星相應(yīng)部件的程序容易受到各種情況造成的干擾,并且大容量FPGA程序的規(guī)模比較大,需要長時間(以天為單位)占用上行通信通道,為了保證上行通道不受到上注的影響,其他部件能正常的開展工作,需要采用靈活機(jī)智的上注策略來保證地面的程序能正確的上注到星上的相應(yīng)部件。
[0004]當(dāng)對FPGA進(jìn)行配置時,如果不能配置成功,需要給出各種因素的判斷結(jié)果,因為地面人員無法進(jìn)行直接的操作來判斷出錯原因,必須通過有效手段來實時監(jiān)控配置過程,由于上注一次的代價非常大,當(dāng)程序存儲介質(zhì)受到外界因素造成誤碼,必須能準(zhǔn)確的判斷出數(shù)據(jù)發(fā)生錯誤的位置,告訴地面人員,從而可以只發(fā)送受到影響的數(shù)據(jù)給衛(wèi)星部件,避免再次上注整個FPGA程序。
【發(fā)明內(nèi)容】
[0005]本發(fā)明解決的技術(shù)問題是:克服現(xiàn)有技術(shù)存在的不足,提供一種在軌可重復(fù)更改軟件的方法,解決在軌FPGA程序難以靈活配置的問題,提高系統(tǒng)的抗輻照能力和功能可擴(kuò)展性。
[0006]本發(fā)明的技術(shù)方案是:一種星載大容量FPGA程序在軌上注及配置方法,步驟如下:
[0007]I)將地面FPGA編譯完的待上注程序進(jìn)行冗余校驗處理,將冗余校驗處理后的待上注程序分割為A1?An個子數(shù)據(jù),其中η為正整數(shù);
[0008]2)將分割后的第一個子數(shù)據(jù)A1上傳至衛(wèi)星上的內(nèi)部存儲器;
[0009]3)衛(wèi)星對子數(shù)據(jù)A1進(jìn)行校驗,并將校驗后的子數(shù)據(jù)A1存儲在外部存儲器中;
[0010]4)將存儲在外部存儲器中的子數(shù)據(jù)A1與存儲在內(nèi)部存儲器當(dāng)中的子數(shù)據(jù)A1進(jìn)行比對,若比對均正確,則子數(shù)據(jù)A1的上注過程結(jié)束;若比對出現(xiàn)錯誤,則返回步驟2)重新將子數(shù)據(jù)A1上傳給衛(wèi)星上的內(nèi)部存儲器,并重復(fù)步驟3)、步驟4);[0011 ] 5)重復(fù)步驟2)-步驟4),對子數(shù)據(jù)A1至子數(shù)據(jù)An全部上注完成,并跳轉(zhuǎn)至步驟6);
[0012]6)當(dāng)接收到地面上傳的配置開始指令時,將外部存儲器中的每一個子數(shù)據(jù)讀取進(jìn)內(nèi)部存儲器中,對每一個子數(shù)據(jù)進(jìn)行校驗;若校驗正確,則按照地面上傳的配置指令要求對FPGA進(jìn)行配置;若校驗不正確,跳轉(zhuǎn)至步驟7);
[0013]7)重復(fù)步驟2)-步驟4),對校驗出錯的子數(shù)據(jù)重新進(jìn)行上注過程,上注過程結(jié)束后跳至步驟6)進(jìn)行配置過程。
[0014]本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點在于:
[0015](I)本發(fā)明能夠?qū)崿F(xiàn)在軌FPGA程序的在線重配置。通過對FPGA的程序重配置,可以根據(jù)需求改變FPGA器件完成的程序功能,從而擴(kuò)展系統(tǒng)的處理功能;系統(tǒng)在FPGA器件受到單粒子效應(yīng)影響時,通過在軌重配置,消除單粒子效應(yīng)的影響,提高系統(tǒng)的抗輻照能力。
[0016](2)本發(fā)明通過對上注的FPGA程序數(shù)據(jù)進(jìn)行冗余糾錯編碼處理,提高上注程序的抗誤碼干擾能力。對上注的程序數(shù)據(jù)進(jìn)行冗余糾錯編碼,數(shù)據(jù)上注完成后,對數(shù)據(jù)再進(jìn)行校驗解碼,減少數(shù)據(jù)上注時帶來的誤碼影響,提高上注程序的抗誤碼能力,增強(qiáng)提供的可靠性。
【專利附圖】
【附圖說明】
[0017]圖1為本發(fā)明上注過程流程圖;
[0018]圖2為本發(fā)明配置過程流程圖。
【具體實施方式】
[0019]本發(fā)明涉及的硬件實現(xiàn)為反熔絲類型FPGA。地面生成的FPGA程序數(shù)據(jù)文件進(jìn)行冗余校驗編碼處理,編碼后的數(shù)據(jù)進(jìn)行分割以適應(yīng)上注及二次上注的需要。本發(fā)明所采用編碼原則為能滿足在軌衛(wèi)星的資源需求,簡單又能有效的起到冗余校驗的作用。
[0020]本方法選用反熔絲FPGA作為控制單元包括解析、配置、通信、監(jiān)測以及校驗等功能,反熔絲FPGA,即采用反熔絲編程技術(shù)的FPGA,這類器件內(nèi)部具有反熔絲陣列開關(guān)結(jié)構(gòu),反熔絲FPGA具有配置位非易失、低功耗、上電即運(yùn)行等優(yōu)點,可靠性高,抗輻照能力強(qiáng)等特點。
[0021]通信功能主要用于與地面控制中心進(jìn)行數(shù)據(jù)、命令的實時溝通,將地面的指令及數(shù)據(jù)轉(zhuǎn)換成部件識別的內(nèi)容,將部件的狀態(tài)已規(guī)定格式發(fā)送給地面,用以地面了解部件的工作狀態(tài)。
[0022]解析功能主要用于實現(xiàn)對命令的正確解析,對數(shù)據(jù)的正確接收。
[0023]監(jiān)測功能主要用于對被配置FPGA的狀態(tài)進(jìn)行監(jiān)控。
[0024]校驗功能主要是對接收到的地面上注的程序文件進(jìn)行實時的校驗是否正確,并將校驗結(jié)果反饋給通信模塊,另一方面在配置程序時對存儲在外部存儲器中的程序文件進(jìn)行實時校驗,并將校驗結(jié)果反饋給通信模塊。
[0025]配置功能主要是根據(jù)地面指令對被控制對象FPGA進(jìn)行程序配置,根據(jù)FPGA規(guī)定的時序要求進(jìn)行動態(tài)配置時序控制,當(dāng)校驗出錯時,停止配置,等待地面上注正確程序后,再次發(fā)送配置指令。[0026]如圖1所示,F(xiàn)PGA程序整個上注配置的流程如下:地面將編譯好的FPGA程序進(jìn)行冗余校驗編碼,將冗余校驗處理后的待上注程序分割為多個子數(shù)據(jù);地面將分割后的文件按照規(guī)定格式發(fā)送給星上相應(yīng)的部件設(shè)備,星上設(shè)備接收地面發(fā)送過來的數(shù)據(jù)及控制命令,對控制命令進(jìn)行解析及執(zhí)行,將接收的數(shù)據(jù)進(jìn)行校驗,并將校驗后的數(shù)據(jù)存儲在外部存儲器中,為了確認(rèn)數(shù)據(jù)存儲的正確性,將存儲在外部存儲器中的數(shù)據(jù)再讀出進(jìn)行一次比較,上述操作均正確后,發(fā)送狀態(tài)正確信息給地面,如果不正確,發(fā)送錯誤狀態(tài)給地面要求地面再次發(fā)送該部分文件。當(dāng)整個程序文件全部發(fā)送完畢后,地面發(fā)送上注結(jié)束的命令,星上設(shè)備接收到該指令后,結(jié)束上注過程。
[0027]如圖2所示,F(xiàn)PGA程序在軌重配置流程如下:根據(jù)系統(tǒng)需要,在程序上注結(jié)束后地面可以發(fā)送配置FPGA指令給星上設(shè)備,當(dāng)星上設(shè)備接收到配置指令后,根據(jù)地面指令要求配置對應(yīng)FPGA的相應(yīng)程序。當(dāng)開始配置后,星上設(shè)備對存儲在外部存儲器中的數(shù)據(jù)文件進(jìn)行校驗,保證文件的正確性,當(dāng)校驗出錯后告訴地面具體位置的數(shù)據(jù)文件遭到了破壞,需要重新上注相應(yīng)的數(shù)據(jù)內(nèi)容,同時配置操作結(jié)束。當(dāng)校驗數(shù)據(jù)沒有問題時,按照FPGA的時序要求發(fā)送相應(yīng)的控制指令及數(shù)據(jù)。配置完成后,發(fā)送指令告訴地面配置完成。同時監(jiān)控是否FPGA配置成功,并將監(jiān)控結(jié)果告訴地面。
[0028]本發(fā)明說明書中未作詳細(xì)描述的內(nèi)容屬本領(lǐng)域技術(shù)人員的公知技術(shù)。
【權(quán)利要求】
1.一種星載大容量FPGA程序在軌上注及配置方法,其特征在于步驟如下: 1)將地面FPGA編譯完的待上注程序進(jìn)行冗余校驗處理,將冗余校驗處理后的待上注程序分割為A1?AnA子數(shù)據(jù),其中η為正整數(shù); 2)將分割后的第一個子數(shù)據(jù)A1上傳至衛(wèi)星上的內(nèi)部存儲器; 3)衛(wèi)星對子數(shù)據(jù)A1進(jìn)行校驗,并將校驗后的子數(shù)據(jù)A1存儲在外部存儲器中; 4)將存儲在外部存儲器中的子數(shù)據(jù)A1與存儲在內(nèi)部存儲器當(dāng)中的子數(shù)據(jù)A1進(jìn)行比對,若比對均正確,則子數(shù)據(jù)A1的上注過程結(jié)束;若比對出現(xiàn)錯誤,則返回步驟2)重新將子數(shù)據(jù)A1上傳給衛(wèi)星上的內(nèi)部存儲器,并重復(fù)步驟3)、步驟4); 5)重復(fù)步驟2)-步驟4),對子數(shù)據(jù)A1至子數(shù)據(jù)An全部上注完成,并跳轉(zhuǎn)至步驟6); 6)當(dāng)接收到地面上傳的配置開始指令時,將外部存儲器中的每一個子數(shù)據(jù)讀取進(jìn)內(nèi)部存儲器中,對每一個子數(shù)據(jù)進(jìn)行校驗;若校驗正確,則按照地面上傳的配置指令要求對FPGA進(jìn)行配置;若校驗不正確,跳轉(zhuǎn)至步驟7); 7)重復(fù)步驟2)-步驟4),對校驗出錯的子數(shù)據(jù)重新進(jìn)行上注過程,上注過程結(jié)束后跳至步驟6)進(jìn)行配置過程。
【文檔編號】G06F11/10GK103955411SQ201410215998
【公開日】2014年7月30日 申請日期:2014年5月21日 優(yōu)先權(quán)日:2014年5月21日
【發(fā)明者】王琨, 武文波, 安源, 鮑書龍, 王慶元 申請人:北京空間機(jī)電研究所