專利名稱:一種基于編碼方式的防止sram單粒子翻轉(zhuǎn)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及及一種防止SRAM單粒子翻轉(zhuǎn)的方法,尤其涉及一種基于編碼方式的 防止SRAM單粒子翻轉(zhuǎn)的方法,屬于航天遙感器電子學(xué)領(lǐng)域。
背景技術(shù):
輕小型低功耗面陣CMOS相機(jī)已廣泛應(yīng)用于衛(wèi)星本體機(jī)構(gòu)、深空探測、空間站及飛 船上的視頻遙測,它可以對衛(wèi)星變軌、改變姿態(tài)、發(fā)動機(jī)工作、太陽翼展開、天線展開等活動 進(jìn)行監(jiān)視和評估,為科研工作者在地面判斷衛(wèi)星工作情況提供圖像依據(jù),已成功應(yīng)用于多 個型號。由于衛(wèi)星與地面通信的數(shù)據(jù)信道容量有限,為了減少相機(jī)下傳的數(shù)據(jù)量,一般要求 相機(jī)能對圖像進(jìn)行實時壓縮,但壓縮算法都比較復(fù)雜,單純依靠FPGA片上的資源遠(yuǎn)遠(yuǎn)不能 夠滿足壓縮算法的需求,這就需要利用SRAM等存儲器對壓縮算法的中間數(shù)據(jù)進(jìn)行緩存才 能順利完成。如果SRAM出現(xiàn)了問題,圖像壓縮過程中的中間數(shù)據(jù)就會收到影響,最終下傳 的壓縮圖像將會出現(xiàn)亂碼,可見SRAM對圖像的壓縮質(zhì)量起著至關(guān)重要的作用。但在空間輻 射環(huán)境中,由于多種帶電粒子的存在,會導(dǎo)致航天器電子系統(tǒng)中的半導(dǎo)體器件發(fā)生單粒子 效應(yīng),嚴(yán)重影響航天器的可靠性和壽命。SRAM也是極易受到單粒子影響的半導(dǎo)體器件之一, 如何解決SRAM單粒子翻轉(zhuǎn)的問題也是目前研究的一項關(guān)鍵技術(shù)。目前民用的CMOS數(shù)碼相 機(jī)也用到了 SRAM器件,但由于民用相機(jī)使用環(huán)境和空間相機(jī)的差異,不涉及到空間單粒子 翻轉(zhuǎn)的問題。國內(nèi)有些研究所,應(yīng)用于航天CMOS相機(jī)中防止SRAM單粒子翻轉(zhuǎn)的方法一般采用 的是三模冗余技術(shù),即一個數(shù)據(jù)存放在三個存儲單元中,當(dāng)用的時候?qū)θ齻€數(shù)據(jù)進(jìn)行對比, 如果有兩個一致,另一個不同,則說明一個數(shù)據(jù)被打翻,則認(rèn)為另外兩個是正常工作,選取 認(rèn)為正確的數(shù)據(jù)。但三模冗余技術(shù)一個數(shù)據(jù)需要備份三份,對存儲空間的要求比較高。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)解決問題是克服現(xiàn)有技術(shù)的不足,提供一種基于編碼方式的防止 SRAM單粒子翻轉(zhuǎn)的方法,提高了資源利用率。本發(fā)明的技術(shù)解決方案是一種基于編碼方式的防止SRAM單粒子翻轉(zhuǎn)的方法,步 驟如下(1)首先將圖像數(shù)據(jù)在FPGA中先進(jìn)行縱向編碼,之后進(jìn)行橫向編碼,將經(jīng)過編碼 后的圖像數(shù)據(jù)存入SRAM中,其中縱向編碼的方法為將圖像數(shù)據(jù)以像素為單位進(jìn)行(12,8) 縱向編碼存儲;橫向編碼的方法為對經(jīng)過縱向編碼后的圖像數(shù)據(jù)進(jìn)行橫向編碼存儲,編 碼方式為對每八個像素中的相同位數(shù)據(jù)分別進(jìn)行(12,8)編碼;(2)當(dāng)發(fā)生單粒子翻轉(zhuǎn)時,SRAM中存儲的圖像數(shù)據(jù)會被打翻,對發(fā)生單粒子翻轉(zhuǎn) 的圖像數(shù)據(jù)先進(jìn)行橫向解碼,對被單粒子打翻的圖像數(shù)據(jù)進(jìn)行第一次糾正,然后對經(jīng)過橫 向解碼后的圖像數(shù)據(jù)進(jìn)行縱向解碼,對被單粒子打翻后的數(shù)據(jù)進(jìn)行第二次糾正,最終實現(xiàn) 對SRAM中被單粒子打翻圖像數(shù)據(jù)的恢復(fù),橫向解碼方式為對每八個像素中的相同位數(shù)據(jù)分別進(jìn)行(12,8)解碼;縱向解碼方式為以像素為單位對圖像數(shù)據(jù)進(jìn)行(12,8)解碼。本發(fā)明與現(xiàn)有技術(shù)相比的有益效果是本方法首先對待存入SRAM中的圖像數(shù)據(jù) 以像素為單位進(jìn)行縱向(12,8)碼編,然后對每八個像素中的相同位數(shù)據(jù)進(jìn)行橫向(12,8) 編碼,SRAM中的圖像數(shù)據(jù)按照兩次編碼格式進(jìn)行存儲,當(dāng)發(fā)生單粒子翻轉(zhuǎn)時,SRAM中存儲 的圖像數(shù)據(jù)會被打翻,本發(fā)明對發(fā)生單粒子翻轉(zhuǎn)的圖像數(shù)據(jù)先進(jìn)行橫向(12,8)解碼運算, 此解碼過程對數(shù)據(jù)有一定的糾錯作用,之后對圖像數(shù)據(jù)進(jìn)行縱向(12,8)解碼運算,此解碼 過程對數(shù)據(jù)進(jìn)行第二次糾正,可以把存入SRAM中被單粒子打翻的圖像數(shù)據(jù)糾正過來。本發(fā) 明在占用資源是常規(guī)方法1/3的前提下,利用橫向、縱向兩次(12,8)解碼糾錯,能有效將被 粒子打翻的數(shù)據(jù)進(jìn)行糾正,從而克服了單粒子翻轉(zhuǎn)對SRAM中存儲數(shù)據(jù)的影響。
圖1為本發(fā)明的實現(xiàn)流程圖;圖2為(12,8)編碼原理圖;圖3為(12,8)解碼原理圖。
具體實施例方式下面結(jié)合附圖對本發(fā)明的具體實施方式
進(jìn)行進(jìn)一步的詳細(xì)描述如圖1所示,本發(fā)明的實現(xiàn)過過程為(1)首先將圖像數(shù)據(jù)在FPGA中先進(jìn)行縱向編碼,之后進(jìn)行橫向編碼,將經(jīng)過編碼 后的圖像數(shù)據(jù)存入SRAM中,其中縱向編碼的方法為將圖像數(shù)據(jù)以像素為單位進(jìn)行(12,8) 縱向編碼存儲;橫向編碼的方法為對經(jīng)過縱向編碼后的圖像數(shù)據(jù)進(jìn)行橫向編碼存儲,編 碼方式為對每八個像素中的相同位數(shù)據(jù)分別進(jìn)行(12,8)編碼;(2)在使用SRAM中存儲的圖像數(shù)據(jù)時,首先對經(jīng)過橫向編碼存儲的圖像數(shù)據(jù)進(jìn)行 橫向解碼,實現(xiàn)對被單粒子打翻的圖像數(shù)據(jù)進(jìn)行糾正,橫向解碼方式為對每八個像素中的 相同位數(shù)據(jù)分別進(jìn)行(12,8)解碼;然后對經(jīng)過橫向解碼后的圖像數(shù)據(jù)進(jìn)行縱向解碼,實現(xiàn) 對被單粒子打翻后的數(shù)據(jù)進(jìn)行糾正,縱向解碼方式為以像素為單位對圖像數(shù)據(jù)進(jìn)行(12, 8)解碼。例如我們要把一個32 32像素大小的圖像塊存入SRAM中,每個像素是8bit, 處理過程如下首先在FPGA中對每個像素的Sbit數(shù)據(jù)分別進(jìn)行縱向(12,8)編碼;然后對縱向 編碼后的數(shù)據(jù)繼續(xù)在FPGA中以8個像素為一組,對八個像素中的相同的一位分別進(jìn)行橫向 (12,8)編碼,橫向編碼之后,將編碼后的數(shù)據(jù)依次存入SRAM中;在圖像在SRAM中存儲期間,如果遇到空間粒子撞擊,SRAM中的數(shù)據(jù)的某些位很可 能發(fā)生翻轉(zhuǎn),圖像數(shù)據(jù)受到損壞。之后,在使用SRAM中存儲的數(shù)據(jù)時,首先對SRAM中存儲的圖像數(shù)據(jù)8個像素為一 組,對8個像素中相同一位進(jìn)行橫向(12,8)解碼,然后再對橫向解碼后的數(shù)據(jù)以一個像素 為單位,進(jìn)行縱向(12,8)解碼,在兩次解碼的過程中,被單粒子打翻的圖像數(shù)據(jù)受到兩次 解碼糾正,已恢復(fù)正常,能夠正確使用,克服了單粒子翻轉(zhuǎn)帶來的危害。本發(fā)明是基于(12,8)編解碼方法的,其原理為將SRAM中存儲的圖像數(shù)據(jù)每8位數(shù)據(jù)構(gòu)成一個數(shù)字序列,每個數(shù)字序列附加4位監(jiān)督碼元,構(gòu)成長度c = 8+4的糾錯碼組, 當(dāng)糾錯碼組中有錯誤碼時,能及時檢測出并糾正之,糾錯原理為,每個監(jiān)督碼元對c位糾錯 碼組中指定的若干位進(jìn)行監(jiān)督,在終端通過檢查一些監(jiān)督關(guān)系是否滿足,來確定原始8位 數(shù)據(jù)中的哪一位數(shù)據(jù)出錯。上述過程通過下面的邏輯關(guān)系來實現(xiàn)數(shù)字序列為AtlA1A2…A7, 監(jiān)督碼為KtlK1K2K3,則糾錯碼為AciA1A2-A7KtlK1K2Ky可用線性方程組表示數(shù)字序列與監(jiān)督碼 之間的關(guān)系,即
權(quán)利要求
1. 一種基于編碼方式的防止SRAM單粒子翻轉(zhuǎn)的方法,其特征在于步驟如下(1)首先將圖像數(shù)據(jù)在FPGA中先進(jìn)行縱向編碼,之后進(jìn)行橫向編碼,將經(jīng)過編碼后的 圖像數(shù)據(jù)存入SRAM中,其中縱向編碼的方法為將圖像數(shù)據(jù)以像素為單位進(jìn)行(12,8)縱向 編碼存儲;橫向編碼的方法為對經(jīng)過縱向編碼后的圖像數(shù)據(jù)進(jìn)行橫向編碼存儲,編碼方 式為對每八個像素中的相同位數(shù)據(jù)分別進(jìn)行(12,8)編碼;(2)當(dāng)發(fā)生單粒子翻轉(zhuǎn)時,SRAM中存儲的圖像數(shù)據(jù)會被打翻,對發(fā)生單粒子翻轉(zhuǎn)的 圖像數(shù)據(jù)先進(jìn)行橫向解碼,對被單粒子打翻的圖像數(shù)據(jù)進(jìn)行第一次糾正,然后對經(jīng)過橫向 解碼后的圖像數(shù)據(jù)進(jìn)行縱向解碼,對被單粒子打翻后的數(shù)據(jù)進(jìn)行第二次糾正,最終實現(xiàn)對 SRAM中被單粒子打翻圖像數(shù)據(jù)的恢復(fù),橫向解碼方式為對每八個像素中的相同位數(shù)據(jù)分 別進(jìn)行(12,8)解碼;縱向解碼方式為以像素為單位對圖像數(shù)據(jù)進(jìn)行(12,8)解碼。
全文摘要
一種基于編碼方式的防止SRAM單粒子翻轉(zhuǎn)的方法,本方法首先對待存入SRAM中的圖像數(shù)據(jù)以像素為單位進(jìn)行縱向(12,8)編碼,然后對每八個像素中的相同位數(shù)據(jù)進(jìn)行橫向(12,8)編碼,SRAM中的圖像數(shù)據(jù)按照兩次編碼格式進(jìn)行存儲,當(dāng)發(fā)生單粒子翻轉(zhuǎn)時,SRAM中存儲的圖像數(shù)據(jù)會被打翻,本發(fā)明對發(fā)生單粒子翻轉(zhuǎn)的圖像數(shù)據(jù)先進(jìn)行橫向(12,8)解碼運算,此解碼過程對數(shù)據(jù)有一定的糾錯作用,之后對圖像數(shù)據(jù)進(jìn)行縱向(12,8)解碼運算,此解碼過程對數(shù)據(jù)進(jìn)行第二次糾正,可以把存入SRAM中被單粒子打翻的圖像數(shù)據(jù)糾正過來,從而克服了現(xiàn)有方法占用片上存儲資源過多的缺點。
文檔編號G06F11/10GK102063343SQ20101062264
公開日2011年5月18日 申請日期2010年12月29日 優(yōu)先權(quán)日2010年12月29日
發(fā)明者吳雁林, 孟林智, 張宏偉, 朱軍, 李天 , 李晨曦, 林宏宇, 溫博, 胡永富, 郭強(qiáng), 陳彥, 黃昊, 黃長寧 申請人:北京空間機(jī)電研究所