微小衛(wèi)星fpga關(guān)鍵數(shù)據(jù)保護方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種FPGA數(shù)據(jù)保護方法,特別是涉及一種微小衛(wèi)星FPGA關(guān)鍵數(shù)據(jù)保護方法。
【背景技術(shù)】
[0002]相對于常規(guī)衛(wèi)星,微小衛(wèi)星具有質(zhì)量輕,成本低,設(shè)計與制造周期短等特點,商用現(xiàn)貨(COTS)器件的廣泛使用使得微小衛(wèi)星技術(shù)獲得空前的發(fā)展。微小衛(wèi)星空間電子設(shè)備穩(wěn)定性的研宄內(nèi)容主要是FPGA的單粒子效應防護技術(shù)。從我國發(fā)射的若干衛(wèi)星測試情況來看,SRAM型FPGA、DSP單粒子翻轉(zhuǎn)引發(fā)了多次空間電子設(shè)備的功能故障。從單粒子翻轉(zhuǎn)(SEU)的比例來看,配置存儲器所占的比重最大(研宄認為所占比重有時高達97%),其次是LUT型的RAM、塊狀RAM和觸發(fā)器。其他的單粒子效應如單粒子瞬態(tài)脈沖(SET)、單粒子功能中斷(SEFI)所占比例較小。因此,單粒子效應防護主要是針對FPGA關(guān)鍵數(shù)據(jù)的空間單粒子翻轉(zhuǎn)(SEU)效應進行保護。其中關(guān)鍵數(shù)據(jù)是指設(shè)備運行時所需初始化配置數(shù)據(jù),如果這部分數(shù)據(jù)出現(xiàn)邏輯狀態(tài)翻轉(zhuǎn)錯誤,那么相應初始化工作就會失敗,導致設(shè)備啟動異常。
[0003]傳統(tǒng)的存儲器保護有兩種方法:三模冗余技術(shù)和糾錯檢測(EDAC)技術(shù)。三模冗余是把存儲數(shù)據(jù)備份三份,能夠?qū)Τ鲥e的單個存儲器容錯,但無法定位與糾正錯誤,而導致錯誤的累積。糾錯檢測通過增加存儲位數(shù)來糾正錯誤位,通??蓪崿F(xiàn)單比特糾正,多比特檢測,但糾正多比特錯誤會消耗較多存儲資源。
[0004]文獻“申請公開號是CN103680639A的中國發(fā)明專利”公開了一種隨機存儲器的周期性自檢錯恢復方法,實際上是一種基于FPGA的隨機存儲器保護方法。該方法通過基于隨機存儲器冗余處理后,對存儲器輸出數(shù)據(jù)實現(xiàn)“三取二”判決和數(shù)據(jù)一致性比較檢測,實現(xiàn)檢錯功能。該方法有效的解決了傳統(tǒng)冗余措施可能由于錯誤累積導致防護失效的問題和糾檢錯編碼技術(shù)糾錯能力算法限制的問題。但是該方法沒有區(qū)分存儲器數(shù)據(jù)錯誤是單比特錯誤還是多比特錯誤,對所有錯誤數(shù)據(jù)都采用“三取二”回寫恢復。另外,該方法存儲器采用非總線方式,使得系統(tǒng)設(shè)計的可拓展性和兼容性變差。
【發(fā)明內(nèi)容】
[0005]為了克服現(xiàn)有FPGA數(shù)據(jù)保護方法由于錯誤累積而致使保護能力差的不足,本發(fā)明提供一種微小衛(wèi)星FPGA關(guān)鍵數(shù)據(jù)保護方法。該方法首先將FPGA資源劃分劃分為邏輯結(jié)構(gòu)、存儲器資源和AHB-Lite總線。設(shè)計關(guān)鍵數(shù)據(jù)的存儲器資源分配方法,采用AHB-Lite總線掛載從機存儲器方式,劃分為三個關(guān)鍵存儲器和一個普通存儲器。結(jié)合三模冗余技術(shù)和糾錯檢測技術(shù)的特點,設(shè)計關(guān)鍵數(shù)據(jù)保護方法。糾錯檢測技術(shù)實現(xiàn)單比特數(shù)據(jù)檢測并糾正和多比特數(shù)據(jù)檢測,檢測內(nèi)部存儲器的狀態(tài)。在設(shè)備初始化階段,首先讀出關(guān)鍵數(shù)據(jù)存儲器的數(shù)據(jù),進行設(shè)備初始化配置。如果出現(xiàn)單比特錯誤,糾錯檢測功能糾正數(shù)據(jù)。如果出現(xiàn)多比特錯誤,糾錯檢測功能產(chǎn)生檢測中斷和相應的錯誤數(shù)據(jù)地址,利用三模冗余技術(shù)重讀存儲器,做“三取二”判斷,糾正存儲器錯誤數(shù)據(jù)。設(shè)備初始化結(jié)束后,定時性地自檢和糾錯三個關(guān)鍵數(shù)據(jù)存儲器,進行“三取二”判斷,如果檢測到單粒子翻轉(zhuǎn),回寫存儲器,糾正存儲器邏輯狀態(tài)錯誤,使器件存儲器數(shù)據(jù)恢復正常。
[0006]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種微小衛(wèi)星FPGA關(guān)鍵數(shù)據(jù)保護方法,其特點是采用以下步驟:
[0007]步驟一、將FPGA的資源劃分劃分為邏輯結(jié)構(gòu)、存儲器資源和AHB-Lite總線。
[0008]a)FPGA邏輯結(jié)構(gòu)實現(xiàn)對關(guān)鍵存儲器的三模冗余檢測與糾正。FPGA邏輯結(jié)構(gòu)設(shè)計數(shù)據(jù)檢測器、AHB-Lite主機和通信接口。數(shù)據(jù)檢測器用于糾正數(shù)據(jù)的多比特錯誤。AHB-Lite主機提供存儲器的訪問接口給數(shù)據(jù)檢測器。通信接口用于與其他設(shè)備通信。
[0009]b)存儲器資源將數(shù)據(jù)儲存在FPGA片上存儲器中。
[0010]c) AHB-Lite總線符合ARM總線協(xié)議,設(shè)計連接FPGA邏輯結(jié)構(gòu)與存儲器資源。根據(jù)系統(tǒng)設(shè)計需求,用戶在FPGA邏輯不修改的情況下改變存儲器數(shù)量和大小。
[0011]步驟二、關(guān)鍵數(shù)據(jù)存儲器存放空間電子設(shè)備芯片配置數(shù)據(jù),采用三模冗余設(shè)計,采用總線訪問方式,存儲器地址統(tǒng)一編址。三個存儲器的地址從低到高順序按字節(jié)編址,存儲器的內(nèi)容順序訪問。
[0012]步驟三、設(shè)計AHB-Lite主機和數(shù)據(jù)檢測器的FPGA內(nèi)部邏輯。
[0013]a)AHB-Lite主機,提供存儲器的訪問接口給數(shù)據(jù)檢測器,產(chǎn)生與檢測糾錯碼,產(chǎn)生多比特錯誤中斷。
[0014]AHB-Lite主機采用有限狀態(tài)機實現(xiàn)。邏輯設(shè)計上按照AHB-Lite總線的控制時序設(shè)計,在總線時鐘上升沿驅(qū)動地址信號和控制信號,實現(xiàn)AHB-Lite主機對數(shù)據(jù)的讀寫操作。為了避免數(shù)據(jù)讀寫沖突,寫優(yōu)先級大讀優(yōu)先級。首先狀態(tài)機位于空閑狀態(tài),當使能讀寫信號時,分別配置讀或?qū)懙目刂菩盘柡偷刂沸盘?;等待該地址的從機為空閑,如果從機空閑,讀出或?qū)懭霐?shù)據(jù);在寫入數(shù)據(jù)階段,對數(shù)據(jù)產(chǎn)生糾錯碼,與數(shù)據(jù)合并后寫入存儲器,回到空閑狀態(tài);在讀出數(shù)據(jù)階段,將檢測數(shù)據(jù)的糾錯碼,如果出現(xiàn)單比特錯誤則直接糾正與回寫數(shù)據(jù),如果出現(xiàn)多比特錯誤則產(chǎn)生中斷信號,作為數(shù)據(jù)檢測器中斷如入,如果無錯誤則回到空閑狀態(tài)。
[0015]b)數(shù)據(jù)檢測器用于糾正讀寫數(shù)據(jù)的多比特錯誤,工作模式分為初始化糾正模式和定時自檢模式。初始化糾正模式,處理由于設(shè)備初始化讀出關(guān)鍵數(shù)據(jù)存儲器數(shù)據(jù)時產(chǎn)生的多比特錯誤。定時自檢模式,按照設(shè)定時間定時檢測關(guān)鍵數(shù)據(jù)存儲器,并糾正單粒子翻轉(zhuǎn)引起的錯誤數(shù)據(jù)。為了避免與設(shè)備初始化出現(xiàn)數(shù)據(jù)訪問沖突,初始化糾正模式優(yōu)先級高于定時自檢模式。當初始設(shè)備時,定時自檢模式處于等待狀態(tài)。當設(shè)備初始化結(jié)束,數(shù)據(jù)檢測器將進入定時自檢模式。為了避免與普通存儲器數(shù)據(jù)訪問沖突,數(shù)據(jù)檢測器的優(yōu)先級高于普通存儲器訪問,數(shù)據(jù)檢測器工作過程中,普通數(shù)據(jù)傳輸暫時停止,等待檢測完畢,然后重啟普通數(shù)據(jù)傳輸。
[0016]數(shù)據(jù)檢測器采用有限狀態(tài)機實現(xiàn)。首先設(shè)備上電初始化進入初始化糾正模式,檢查多比特錯誤中斷發(fā)生,清除中斷信號再更新地址到錯誤數(shù)據(jù)地址,讀取三個存儲器數(shù)據(jù),錯誤數(shù)據(jù)直接重載為三取二數(shù)據(jù),然后回到中斷檢測狀態(tài),初始化結(jié)束則返回空閑狀態(tài)。設(shè)備初始化結(jié)束后數(shù)據(jù)檢測器將定時進入定時自檢模式。在空閑狀態(tài)中,定時器計到了規(guī)定的檢測時段且總線空閑,進入檢測狀態(tài),地址計數(shù)器順序產(chǎn)生第一個存儲器地址,后兩個存儲器地址分別為基地址加上固定偏移量和基地址加上兩倍的偏移量,分別讀出三個存儲器中相同偏移地址數(shù)據(jù),并進行三取二操作,得到三取二數(shù)據(jù)。如果三個數(shù)據(jù)相同,基地址計數(shù)器加I進行下一個地址檢測。如果出現(xiàn)其中一個存儲器數(shù)據(jù)不匹配,證明此存儲器上的數(shù)據(jù)需要修改,進入存儲器數(shù)據(jù)重載狀態(tài),直接對該地址的數(shù)據(jù)重載為三取二的數(shù)據(jù),再進行下一個地址檢測。如果超出存儲器末位地址,地址計數(shù)器恢復存儲器地址并回到空閑狀
??τ O
[0017]三取二判決公式:判決電路邏輯為輸出=(數(shù)據(jù)land數(shù)據(jù)2)or (數(shù)據(jù)land數(shù)據(jù)3) or (數(shù)據(jù)2and數(shù)據(jù)3)。其中and表示與門電路,or表示或門電路。
[0018]定時自檢模式中時間取決于關(guān)鍵數(shù)據(jù)的大小、系統(tǒng)工作時鐘和衛(wèi)星軌道上空間輻射情況。用戶配置定時自檢的時間。需保證FPGA的存儲器在每個翻轉(zhuǎn)間隙執(zhí)行至少一次刷新操作。
[0019]本發(fā)明的有益效果是:該方法首先將FPGA資源劃分劃分為邏輯結(jié)構(gòu)、存儲器資源和AHB-Lite總線。設(shè)計關(guān)鍵數(shù)據(jù)的存儲器資源分配方法,采用AHB-Lite總線掛載從機存儲器方式,劃分為三個關(guān)鍵存儲器和一個普通存儲器。結(jié)合三模冗余技術(shù)和糾錯檢測技術(shù)的特點,設(shè)計關(guān)鍵數(shù)據(jù)保護方法。糾錯檢測技術(shù)實現(xiàn)單比特數(shù)據(jù)檢測并糾正和多比特數(shù)據(jù)檢測,檢測內(nèi)部存儲器的狀態(tài)。在設(shè)備初始化階段,首先讀出關(guān)鍵數(shù)據(jù)存儲器的數(shù)據(jù),進行設(shè)備初始化配置。如果出現(xiàn)單比特錯誤,糾錯檢測功能糾正數(shù)據(jù)。如果出現(xiàn)多比特錯誤,糾錯檢測功能產(chǎn)生檢測中斷和相應的錯誤數(shù)據(jù)地址,利用三模冗余技術(shù)重讀存儲器,做“三取二”判斷,糾正存儲器錯誤數(shù)據(jù)。設(shè)備初始化結(jié)束后,定時性地自檢和糾錯三個關(guān)鍵數(shù)據(jù)存儲器,進行“三取二”判斷,如果檢測到單粒子翻轉(zhuǎn),回寫存儲器,糾正存儲器邏輯狀態(tài)錯誤,使器件存儲器數(shù)據(jù)恢復正常。
[0020]下面結(jié)合附圖和【具體實施方式】對本發(fā)明作詳細說明。
【附圖說明】
[0021 ] 圖1是本發(fā)明方法中FPGA設(shè)計框圖。
[0022]圖2是本發(fā)明方法中AHB-Lite主機狀態(tài)圖。
[0023]圖3是本發(fā)明方法中數(shù)據(jù)檢測器狀態(tài)圖。
[0024]圖4是本發(fā)明微小衛(wèi)星FPGA關(guān)鍵數(shù)據(jù)保護方法的流程圖。
【具體實施方式】
[0025]參照圖1-4。本發(fā)明微小衛(wèi)星FPGA關(guān)鍵數(shù)據(jù)保護方法具體步驟如下:
[0026]設(shè)計FPGA,F(xiàn)PGA內(nèi)部主要由邏輯結(jié)構(gòu)、存儲器資源和AHB-Lite總線構(gòu)成。FPGA邏輯結(jié)構(gòu)主要設(shè)計數(shù)據(jù)檢測器、AHB-Lite主機、通信接口 ;存儲器資源主要是FPGA的內(nèi)部存儲器。FPGA的存儲器是主要的保護對象,根據(jù)FPGA存儲器的重要性采用分類加固設(shè)計,分為關(guān)鍵存儲器保護部分和普通存儲器部分。兩個部分采用有區(qū)別的保護方式。
[0027]本實施方式從FPGA的資源劃分方法、關(guān)鍵數(shù)據(jù)的存儲器資源分配方法、關(guān)鍵數(shù)據(jù)保護方法三個方面詳細描述:
[0028]1、FPGA的資源劃分方法:FPGA內(nèi)部劃分為邏輯結(jié)構(gòu)、存儲器資源和AHB-Lite總線。下面分別說明:
[0029]a)FPGA邏輯結(jié)構(gòu)實現(xiàn)對關(guān)鍵存儲器的三模冗余檢測與糾正。FPGA邏輯結(jié)構(gòu)主要設(shè)計數(shù)據(jù)檢測器、AHB-Lite主機、通信接口。數(shù)據(jù)檢測器主要用于糾正數(shù)據(jù)的多比特錯誤。AHB-Lite主機提供存儲器的訪問接口給數(shù)據(jù)檢測器。通信接口設(shè)計用于與其他設(shè)備通信。
[0030]b)存儲器資源將數(shù)據(jù)儲存在FPGA片上存儲器中,操作簡單、穩(wěn)定。相對于外部存儲器,該設(shè)計減少外部存儲器件的