何云豐,王棟*,王征,2,關(guān)海南,張博威,閆得杰
天問(wèn)一號(hào)高分辨率相機(jī)高可靠圖像存儲(chǔ)電子學(xué)系統(tǒng)
何云豐1,王棟1*,王征1,2,關(guān)海南1,張博威1,閆得杰1
(1.中國(guó)科學(xué)院 長(zhǎng)春光學(xué)精密機(jī)械與物理研究所,吉林 長(zhǎng)春 130033;2.中國(guó)科學(xué)院月球與深空探測(cè)重點(diǎn)實(shí)驗(yàn)室,北京 100101)
為了解決天問(wèn)一號(hào)高分辨率相機(jī)拍攝時(shí)高輸出圖像數(shù)據(jù)率與火地間數(shù)據(jù)傳輸速率帶寬低的問(wèn)題,設(shè)計(jì)了一套以NAND Flash為存儲(chǔ)介質(zhì),以FPGA為控制核心的圖像存儲(chǔ)電子學(xué)系統(tǒng)。設(shè)計(jì)對(duì)NAND Flash同時(shí)使用并行處理和4級(jí)流水技術(shù),滿足了相機(jī)圖像高數(shù)據(jù)率存儲(chǔ)要求。為了保證圖像存儲(chǔ)系統(tǒng)的可靠性,針對(duì)NAND Flash存在壞塊的問(wèn)題,對(duì)文件存儲(chǔ)系統(tǒng)進(jìn)行存儲(chǔ)區(qū)劃分并建立了壞塊替換機(jī)制;同時(shí),為了避免Nand Flash原始誤碼率和空間單粒子輻射效應(yīng)的影響,提出了12×4 bit Hamming校驗(yàn)策略,并將校驗(yàn)碼分割與圖像數(shù)據(jù)進(jìn)行存儲(chǔ);試驗(yàn)結(jié)果表明,設(shè)計(jì)的圖像存儲(chǔ)電子學(xué)系統(tǒng),單通道最高實(shí)時(shí)圖像存儲(chǔ)數(shù)據(jù)率達(dá)到1 276 Mbps,實(shí)現(xiàn)了圖像數(shù)據(jù)的可靠存儲(chǔ),可對(duì)12×4 bit單元的圖像數(shù)據(jù)實(shí)現(xiàn)1 bit糾錯(cuò),滿足載荷任務(wù)的研制需求。
高分相機(jī);高速存儲(chǔ);NANDFlash;流水線;Hamming校驗(yàn)
深空探測(cè)是在探測(cè)器應(yīng)用和載人航天取得重大成就的基礎(chǔ)上,脫離地球引力場(chǎng),向更廣闊的太陽(yáng)系和宇宙空間進(jìn)行的探索。深空探測(cè)對(duì)利用空間資源、擴(kuò)展生存空間、探索太陽(yáng)系和宇宙的起源和演化、人類(lèi)社會(huì)的可持續(xù)發(fā)展都有著重要的意義[1]。
我國(guó)計(jì)劃在未來(lái)20年內(nèi),開(kāi)展多項(xiàng)深空探測(cè)任務(wù),擬規(guī)劃發(fā)射多顆分別對(duì)太陽(yáng)、火星、小行星、金星和木星進(jìn)行探測(cè)的探測(cè)器,其中最重要的是火星探測(cè)器[2]。2020年7月13日,我國(guó)在海南文昌衛(wèi)星發(fā)射中心執(zhí)行了首次深空探測(cè)任務(wù),發(fā)射了“天問(wèn)一號(hào)”火星探測(cè)器,同時(shí)搭載有環(huán)繞器、著陸器和巡視器,計(jì)劃一次性實(shí)現(xiàn)對(duì)火星的“繞、落、巡”三項(xiàng)任務(wù)[3]。其中環(huán)繞器上搭載的長(zhǎng)春光機(jī)所研制的高分辨率相機(jī)(以下簡(jiǎn)稱(chēng)高分相機(jī)),將對(duì)火星的表面進(jìn)行高分辨率多光譜成像探測(cè),獲得火星地形地貌的全、彩色影像,觀測(cè)火星表面地質(zhì)現(xiàn)象的形成和變化過(guò)程[4]。
在深空探測(cè)的數(shù)傳能力方面,可供有效載荷使用的傳輸帶寬遠(yuǎn)低于近地應(yīng)用衛(wèi)星的帶寬,目前近地的中繼衛(wèi)星傳輸能力達(dá)到幾百M(fèi)bps,而火星探測(cè)中火地傳輸帶寬的平均能力僅在幾百Kbps上下,二者差距在幾百甚至上千倍[5]。高分相機(jī)使用3片TDI CCD探測(cè)器和2片CMOS探測(cè)器實(shí)現(xiàn)探測(cè)任務(wù),最高分辨率為0.5 m@265 km,由于CCD探測(cè)器和CMOS探測(cè)器輸出圖像數(shù)據(jù)率較大,無(wú)法實(shí)現(xiàn)圖像數(shù)據(jù)火地之間的實(shí)時(shí)傳輸,必須設(shè)計(jì)一套能夠?qū)崿F(xiàn)對(duì)相機(jī)數(shù)據(jù)進(jìn)行存儲(chǔ)的電子學(xué)系統(tǒng)。
法國(guó)3D PLUS公司是歐盟應(yīng)伽利略計(jì)劃和其他航天、航空、工控等領(lǐng)域而設(shè)立的一家高科技公司,專(zhuān)注于生產(chǎn)宇航級(jí)大容量存儲(chǔ)器,其生產(chǎn)的NAND Flash產(chǎn)品采用獨(dú)特的疊層封裝技術(shù)工藝,極大地減少了芯片尺寸和功耗,是圖像數(shù)據(jù)存儲(chǔ)的理想介質(zhì)。NAND Flash作為存儲(chǔ)介質(zhì),由于具有高速存取、體積小、功耗低、輕便、抗震、抗沖擊、溫度適應(yīng)范圍寬、非易失、容量大等特點(diǎn),目前在航天器主流存儲(chǔ)系統(tǒng)設(shè)備中得到了廣泛的應(yīng)用。使用FPGA芯片作為主控制器,配合存儲(chǔ)介質(zhì)芯片和其它外部元器件構(gòu)成星載存儲(chǔ)系統(tǒng)[6]。本文在選用3D PLUS公司NAND Flash存儲(chǔ)器的基礎(chǔ)上,設(shè)計(jì)了一套具有高可靠性的圖像存儲(chǔ)系統(tǒng),將重點(diǎn)解決高分相機(jī)拍攝期間,高速圖像數(shù)據(jù)的可靠存儲(chǔ)問(wèn)題。
高分相機(jī)電子學(xué)系統(tǒng)由控制子系統(tǒng)、成像子系統(tǒng)和圖像存儲(chǔ)子系統(tǒng)構(gòu)成,控制子系統(tǒng)通過(guò)1553B總線接收載荷控制器的指令信息,統(tǒng)一控制成像子系統(tǒng)和圖像存儲(chǔ)子系統(tǒng);成像子系統(tǒng)提供3片CCD和2片CMOS驅(qū)動(dòng)時(shí)序并完成數(shù)據(jù)采集與傳送;CCD與CMOS分時(shí)拍攝,CCD1和CMOS1共用數(shù)傳和存儲(chǔ)通道1,CCD2使用獨(dú)立的數(shù)傳和存儲(chǔ)通道2,CCD3和CMOS2共用數(shù)傳和存儲(chǔ)通道3;圖像存儲(chǔ)子系統(tǒng)實(shí)時(shí)接收成像子系統(tǒng)輸出的圖像數(shù)據(jù),在其內(nèi)部完成圖像數(shù)據(jù)的存儲(chǔ),在拍攝完成后,根據(jù)注入的下行指令將圖像數(shù)據(jù)傳送至載荷控制器。
圖像存儲(chǔ)系統(tǒng)原理如圖1所示,圖像存儲(chǔ)與處理系統(tǒng)的硬件電路包括高速數(shù)據(jù)接收電路、存儲(chǔ)器擴(kuò)展電路、FPGA及其配置電路、R422通訊電路、LVDS數(shù)據(jù)下行電路以及二次電源等。圖像存儲(chǔ)系統(tǒng)與成像子系統(tǒng)的接口電路為高速串行的LVDS信號(hào),通過(guò)串并轉(zhuǎn)換芯片接至內(nèi)部FPGA,可同時(shí)接收3路TDI CCD的圖像信號(hào)或者2路CMOS的圖像信號(hào);圖像存儲(chǔ)器件采用6片3D NAND Flash芯片,每2片為一組,對(duì)應(yīng)一個(gè)存儲(chǔ)通道,通過(guò)FPGA實(shí)現(xiàn)對(duì)NAND Flash讀、寫(xiě)和擦除操作,并進(jìn)行壞塊管理和讀取ECC糾錯(cuò);設(shè)計(jì)加入了一片EEPROM用于存儲(chǔ)壞塊表和重要備份數(shù)據(jù);圖像下傳采用8b/10b編碼的格式,以LVDS接口方式輸出,下行數(shù)據(jù)率為16 Mbps。
圖1 圖像存儲(chǔ)系統(tǒng)原理
根據(jù)探測(cè)任務(wù)需求,在265 km軌道高度下,CCD探測(cè)器成像表面像元分辨率要求全色達(dá)到0.5 m、彩色達(dá)到2.0 m,而相機(jī)飛行方向的地面分辨率SD與CCD的積分時(shí)間有關(guān),具體關(guān)系為:
其中:SD為地面像元分辨率,g為環(huán)繞器速度。
當(dāng)軌道高度為低軌265 km時(shí),g為4.05 km/s,由上式可得出行周期T和相對(duì)應(yīng)的行轉(zhuǎn)移頻率L見(jiàn)表1。
表1CCD探測(cè)器行周期與行頻
Tab.1 Line period and line frequency of CCD detector
相機(jī)選用的CCD探測(cè)器全色譜段的像元數(shù)為6 144,采用4個(gè)數(shù)據(jù)通道并行輸出;彩色譜段的binning后像元數(shù)為1 536,采用1個(gè)通道輸出,因此CCD輸出的最高數(shù)據(jù)率:全色=12 bit×8.1 kHz×6 144≈563 Mbps;彩色=12 bit×2.03 kHz×1 536×4≈143 Mbps。
綜上每個(gè)CCD圖像數(shù)據(jù)存儲(chǔ)通道最大的實(shí)時(shí)圖像存儲(chǔ)數(shù)據(jù)率為706 Mbps。
設(shè)計(jì)選用的CMOS探測(cè)器型號(hào)為HR400,該探測(cè)器圖像數(shù)據(jù)為2 048×2 048[7],成像子系統(tǒng)對(duì)CMOS數(shù)據(jù)進(jìn)行了4×4 binning處理后輸出;CMOS拍攝幀頻為22,因此CMOS的圖像數(shù)據(jù)率:CMOS=12 bit×22 Hz×512×512=66 Mbps。
由上可知,CCD圖像的存儲(chǔ)數(shù)據(jù)率要比CMOS大很多,因此下文只針對(duì)CCD的存儲(chǔ)的數(shù)據(jù)率進(jìn)行分析,為便于文件管理,實(shí)現(xiàn)圖像行的定位,設(shè)計(jì)將12 bit圖像數(shù)據(jù)按16模式進(jìn)行存儲(chǔ),則單通道實(shí)際存儲(chǔ)數(shù)據(jù)率約為941 Mbps。
根據(jù)任務(wù)存儲(chǔ)容量指標(biāo)不小于300 Gbit的要求,設(shè)計(jì)選用6片3D PLUS公司的NAND Flash存儲(chǔ)器3DFN64G16VS8477,單片容量大小為64 Gbit,每?jī)善瑸橐唤M,分為三組,整體最大容量384 Gbit,滿足設(shè)計(jì)容量指標(biāo)需求。3DFN64G16VS8477的數(shù)據(jù)位寬為16位,該器件為MS級(jí),耐總輻射劑量達(dá)到60 krad(Si),SEL門(mén)限達(dá)到60MeV-cm2mg1,可編程/擦除10萬(wàn)次,適用于可靠性要求高的航天任務(wù)。每片3D NAND Flash芯片內(nèi)部由8片三星公司生產(chǎn)的K9F8G08U0M作為基片堆疊組成,基片分為兩組,每組4片,每組基片之間共用8個(gè)I/O,用于傳輸數(shù)據(jù)、地址和指令,每個(gè)基片具有獨(dú)立的控制引腳,兩組基片共有16個(gè)I/O。
基片K9F8G08U0M的結(jié)構(gòu)組成如圖2所示[8],其容量大小為8 Gbit,通過(guò)片選信號(hào)CE進(jìn)行選擇控制,每片K9F8G08U0M由4 096個(gè)塊組成,每個(gè)塊有64頁(yè),每頁(yè)能存儲(chǔ)(4 096+128)個(gè)字節(jié)的數(shù)據(jù)。訪問(wèn)芯片需要5個(gè)地址周期,其中3個(gè)周期的行地址用來(lái)確定某一頁(yè),2個(gè)周期的列地址用來(lái)確定每頁(yè)的某個(gè)字節(jié)。對(duì)Flash進(jìn)行的操作主要有:存儲(chǔ)、讀取和擦除。指令、地址和數(shù)據(jù)復(fù)用芯片的8個(gè)I/O口,由控制信號(hào)CLE和ALE分別鎖存指令和地址。
圖2 K9F8G08U0M結(jié)構(gòu)組成
K9F8G08U0M一頁(yè)的存儲(chǔ)容量是(4K+128)KB,最短25 ns時(shí)間寫(xiě)入一個(gè)字節(jié),因此芯片接口的寫(xiě)入速度最高為320 Mbps。芯片的存儲(chǔ)時(shí)間分為加載時(shí)間和編程時(shí)間兩部分,寫(xiě)滿一頁(yè)所需的命令、地址和數(shù)據(jù)的加載時(shí)間總共為102.5 μs,編程時(shí)間為200 μs,因此對(duì)單片F(xiàn)lash而言,存儲(chǔ)速度最高能夠達(dá)到106 Mbps。
按照操作Flash的傳統(tǒng)方法Flash的最高存儲(chǔ)速度顯然無(wú)法適用于高速圖像數(shù)據(jù)的傳輸。通過(guò)并行處理技術(shù)可以很直觀的提高存儲(chǔ)速度,具體實(shí)現(xiàn)方法是:將N片低速Flash芯片并聯(lián)起來(lái),使用相同的控制線、片選線和讀寫(xiě)信號(hào)線,構(gòu)成一個(gè)多位寬的Flash組。這樣N片F(xiàn)lash并行工作,進(jìn)行相同的操作,存儲(chǔ)量可達(dá)到單片F(xiàn)lash的N倍,存儲(chǔ)速度也提升了N倍[9-10]。
流水線技術(shù)是在程序執(zhí)行時(shí)多條指令重疊進(jìn)行操作的一種準(zhǔn)并行處理實(shí)現(xiàn)技術(shù),將這種技術(shù)運(yùn)用在NAND Flash存儲(chǔ)時(shí)可以大大提高存儲(chǔ)速度[11]。NAND Flash每頁(yè)數(shù)據(jù)的加載時(shí)間和編程時(shí)間是器件本身所決定的,當(dāng)加載完一頁(yè)數(shù)據(jù)后,F(xiàn)lash就進(jìn)入編程忙狀態(tài),此時(shí)可以使另一組Flash基片執(zhí)行下一頁(yè)數(shù)據(jù)的加載,這樣便可有效節(jié)省存儲(chǔ)時(shí)間,提高存儲(chǔ)速度。每片F(xiàn)lash加載完一頁(yè)數(shù)據(jù)的時(shí)間約為102.5 μs,編程時(shí)間為200 μs,這樣在每頁(yè)的編程時(shí)間內(nèi)可以完成3次Flash加載操作(200/102.5<2),由此得出4級(jí)流水操作的時(shí)序圖如圖3所示,經(jīng)4級(jí)流水存儲(chǔ)后,K9F8G08U0M能達(dá)到的存儲(chǔ)速率約為320 Mbps。
圖3 NAND Flash 4級(jí)流水編程時(shí)序
設(shè)計(jì)選用2片3D NAND Flash作為一個(gè)圖像存儲(chǔ)通道,則實(shí)際數(shù)據(jù)存儲(chǔ)位寬為32,相當(dāng)于4個(gè)4組的基片并聯(lián),再對(duì)4組基片進(jìn)行4級(jí)流水設(shè)計(jì),則每個(gè)圖像存儲(chǔ)通道可達(dá)到的存儲(chǔ)數(shù)據(jù)率約為1 280 Mbps,由于在執(zhí)行頁(yè)編程寫(xiě)入操作時(shí),除去寫(xiě)入4K個(gè)編程數(shù)據(jù),還需寫(xiě)入編程起始指令2時(shí)鐘周期、編程地址5時(shí)鐘周期和編程結(jié)束狀態(tài)確認(rèn)3時(shí)鐘周期等,這些周期都會(huì)導(dǎo)致編程寫(xiě)入速率降低,單通道數(shù)據(jù)存儲(chǔ)數(shù)據(jù)率為1 276 Mbps。
綜上可知,所設(shè)計(jì)的存儲(chǔ)方案滿足單通道存儲(chǔ)數(shù)據(jù)率大于941 Mbps的指標(biāo)需求。
NAND型Flash芯片在出廠時(shí)內(nèi)部會(huì)隨機(jī)分布有壞塊,壞塊是指一個(gè)塊內(nèi)含有一位或更多位的數(shù)據(jù)單元無(wú)法進(jìn)行操作。在芯片的長(zhǎng)期使用過(guò)程,還會(huì)不可避免地產(chǎn)生新的壞塊,因此在操作Flash的過(guò)程中,需要建立一個(gè)壞塊管理列表,將芯片內(nèi)部的所有壞塊信息寫(xiě)入列表,并在Flash出現(xiàn)新的壞快時(shí)及時(shí)對(duì)壞塊管理列表進(jìn)行更新。
3個(gè)圖像存儲(chǔ)通道中,每個(gè)圖像存儲(chǔ)通道為兩片3D NAND Flash并聯(lián),共計(jì)16個(gè)基片,寫(xiě)入和讀取數(shù)據(jù)時(shí)進(jìn)行4級(jí)流水處理,因此可將每個(gè)圖像存儲(chǔ)通道等效看成數(shù)據(jù)位寬為32位、Block塊數(shù)為4 096的一片NAND Flash進(jìn)行分析。對(duì)每個(gè)通道的4 096個(gè)Block塊,設(shè)計(jì)規(guī)劃前3 996個(gè)塊作為CCD/CMOS數(shù)據(jù)的有效存儲(chǔ)區(qū),最后的100個(gè)Block好塊作為備用塊。
圖4對(duì)所單通道數(shù)據(jù)存儲(chǔ)邏輯層與物理層映射方案進(jìn)行了示例。在存儲(chǔ)電路首次上電調(diào)試時(shí),首先讀出NAND Flash出廠數(shù)據(jù)標(biāo)識(shí)出的壞塊,之后進(jìn)行初始擦除,得到初始擦除壞塊,將兩次操作得到的壞塊疊加,作為初始?jí)膲K表,圖中NAND Flash的第5、8和第3 991塊為初始?jí)膲K。
圖4 單圖像存儲(chǔ)通道邏輯層與物理層映射
在EEPROM儲(chǔ)存器的1~3 996塊中,當(dāng)沒(méi)有壞塊時(shí),地址與數(shù)據(jù)一一對(duì)應(yīng),逐個(gè)累加;當(dāng)出現(xiàn)壞塊時(shí),將后100個(gè)好塊中的數(shù)據(jù)按次序替換壞塊中的數(shù)據(jù),并對(duì)替換的壞塊的個(gè)數(shù)進(jìn)行計(jì)數(shù)。例如圖4中,對(duì)EEPROM第5、8和第3 991地址中的數(shù)據(jù)分別替換成了3 997、3 998和3 999。采用以上的替換策略,每當(dāng)產(chǎn)生新壞塊時(shí),只需對(duì)新增壞塊的地址進(jìn)行替換,其他的存儲(chǔ)文件結(jié)構(gòu)保持不變,僅用少量存儲(chǔ)器資源,極大的簡(jiǎn)化了圖像存儲(chǔ)結(jié)構(gòu)的復(fù)雜性,同時(shí)也可保證圖像存儲(chǔ)的數(shù)據(jù)率不受影響[12-13]。
在存儲(chǔ)系統(tǒng)電路上電工作后,F(xiàn)PGA首先讀取EEPROM中的數(shù)據(jù)到內(nèi)部RAM中,RAM的地址作為拍攝任務(wù)執(zhí)行時(shí),圖像數(shù)據(jù)存儲(chǔ)的邏輯地址,該地址在寫(xiě)入數(shù)據(jù)時(shí)從小到大進(jìn)行累計(jì),在寫(xiě)入每塊數(shù)據(jù)時(shí),通過(guò)查表的方式,將RAM的數(shù)據(jù)作為NAND Flash實(shí)際寫(xiě)入數(shù)據(jù)的物理地址,拍攝時(shí)可將壞塊的新增情況進(jìn)行標(biāo)記,在拍攝完成后寫(xiě)入EEPROM。
每次執(zhí)行拍攝任務(wù)時(shí),圖像數(shù)據(jù)按塊地址累加的形式存入NAND Flash陣列,拍攝任務(wù)結(jié)束后,存儲(chǔ)FPGA將存儲(chǔ)通道使用的塊數(shù)進(jìn)行標(biāo)記,存入EEPROM存儲(chǔ)器,下一次開(kāi)機(jī)拍攝時(shí)數(shù)據(jù)可接入上一次的存儲(chǔ)位置繼續(xù)存儲(chǔ),以此可有效提高NAND Flash磨損的均勻性。
421算法選擇
由于NAND Flash讀寫(xiě)操作時(shí)具有原始誤碼率,而存儲(chǔ)系統(tǒng)在軌工作時(shí)也將受到空間單粒子輻射效應(yīng)的影響,使閃存使用過(guò)程中讀取數(shù)據(jù)發(fā)生某比特翻轉(zhuǎn)。為了解決翻轉(zhuǎn)問(wèn)題,比較常見(jiàn)的糾錯(cuò)算法有Hamming碼、RS編碼和LDPC碼等[14]。在選取和實(shí)現(xiàn)算法時(shí),衡量算法的幾個(gè)指標(biāo)包括:糾錯(cuò)能力、編碼速率、解碼速率以及實(shí)現(xiàn)算法所需資源情況。
Hamming碼是在電信領(lǐng)域的一種線性分組碼,主要是將數(shù)據(jù)塊的行列奇偶校驗(yàn)信息作為校驗(yàn)碼進(jìn)行校驗(yàn),具有糾正1個(gè)錯(cuò)誤的比特的能力。
文獻(xiàn)[15]提出一種基于RS(246,240)+RS(134,128)的Flash糾錯(cuò)算法,在2 KB/page內(nèi)可以糾正27 B錯(cuò)誤,編碼速度達(dá)到72.53 Mbps,解碼器速度達(dá)到54.26 Mbps,由于本項(xiàng)目的實(shí)時(shí)圖像存儲(chǔ)數(shù)據(jù)率要求大于941 Mbps,故不適用于本系統(tǒng)。
設(shè)計(jì)所選的圖像存儲(chǔ)器為SLC型NAND Flash,其工藝相對(duì)成熟,存儲(chǔ)過(guò)程中數(shù)據(jù)出錯(cuò)的概率為小于3.9e-9,并且誤碼位置較為分散,因此使用Hamming碼作為ECC(Error Checking and Correcting,錯(cuò)誤檢查和糾正)糾錯(cuò)碼即可滿足要求,設(shè)計(jì)采取了對(duì)圖像數(shù)據(jù)進(jìn)行Hamming碼糾錯(cuò)的校驗(yàn)方案。
以往的研究中NAND Flash糾錯(cuò)算法一般以頁(yè)為單位,將生成的校驗(yàn)碼存儲(chǔ)在每頁(yè)的信息區(qū)中[16]。結(jié)合方案規(guī)劃的圖像數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)特點(diǎn)可知,每個(gè)12 bit圖像數(shù)據(jù)存儲(chǔ)在了NAND Flash的16 bit單元中,存儲(chǔ)的高4 bit空間未被利用,無(wú)圖像數(shù)據(jù)信息。通過(guò)對(duì)校驗(yàn)數(shù)據(jù)大小的合理劃分,對(duì)多個(gè)圖像數(shù)據(jù)同時(shí)進(jìn)行檢驗(yàn),并將校驗(yàn)碼分塊存儲(chǔ)到16 bit單元的高4位中,這樣即保證的圖像數(shù)據(jù)區(qū)連續(xù)存儲(chǔ)無(wú)打斷,也使剩余的空間得到有效利用。
422校驗(yàn)碼計(jì)算
Hamming校驗(yàn)分為行校驗(yàn)和列校驗(yàn)兩部分,根據(jù)方案中將校驗(yàn)碼存于16 bit單元中高4bit的特點(diǎn),在能將檢驗(yàn)碼實(shí)現(xiàn)存儲(chǔ)的前提下,設(shè)計(jì)選取的校驗(yàn)單元要盡量小,這樣不僅可以提高誤碼的糾錯(cuò)率,而且在實(shí)現(xiàn)時(shí)占用更少的FPGA邏輯資源,Hamming碼校驗(yàn)的位數(shù)計(jì)算公式如下[17]:
其中:代表校驗(yàn)矩陣的行或列數(shù),代表相對(duì)應(yīng)的行或列校驗(yàn)碼數(shù)目。
將每個(gè)圖像數(shù)據(jù)的內(nèi)部校驗(yàn)定義為行校驗(yàn),將不同數(shù)據(jù)的相同位數(shù)的校驗(yàn)定義為列校驗(yàn),可知列數(shù)為定值16(有效數(shù)據(jù)位寬12位),則所需的列校驗(yàn)碼寬度為12,只需對(duì)行校驗(yàn)的個(gè)數(shù)進(jìn)行選擇。
在選取校驗(yàn)的行數(shù)為1、2、4時(shí),所需的行校驗(yàn)碼寬度分別為1、2、4,而能夠存儲(chǔ)的校驗(yàn)碼位數(shù)分別為4、8、16,顯然選取行數(shù)為4可實(shí)現(xiàn)校驗(yàn)碼的拆分存儲(chǔ),16×4 bit Hamming校驗(yàn)實(shí)現(xiàn)的最小單元,而16 bit的高4位不是圖像數(shù)據(jù),只需校驗(yàn)低12位數(shù)據(jù),因此校驗(yàn)過(guò)程可進(jìn)行簡(jiǎn)化為12×4 bit校驗(yàn)。
Hamming碼的編碼過(guò)程會(huì)產(chǎn)生8 bit列校驗(yàn)碼和4bit行校驗(yàn)碼,表2給出了12×4 bit的行列校驗(yàn)表,表中RP0-RP3代表4個(gè)行校驗(yàn)碼,CP0-CP7代表8個(gè)列校驗(yàn)碼。設(shè)待進(jìn)行編碼圖像數(shù)據(jù)為:
行校驗(yàn)碼的生成計(jì)算方法為:
列校驗(yàn)碼的生成計(jì)算方法為:
式(4)~式(17)中,“+”表示“位異或操作”,可以看出,計(jì)算過(guò)程均是異或運(yùn)算,行校驗(yàn)碼表征出所有元素的極性,表征出所有元素的極性。在FPGA程序中,僅使用少量的邏輯門(mén)和寄存器資源,即可實(shí)現(xiàn)糾錯(cuò)碼編碼與存儲(chǔ)數(shù)據(jù)同步,實(shí)現(xiàn)與數(shù)據(jù)的完全并行存儲(chǔ),保持原有圖像存儲(chǔ)數(shù)據(jù)率[18]。
設(shè)計(jì)將檢驗(yàn)碼計(jì)算每4個(gè)數(shù)據(jù)分為一組,每組校驗(yàn)結(jié)束后,RP0~3和第1數(shù)據(jù)同時(shí)存入第1單元,CP0~3和第1數(shù)據(jù)同時(shí)存入第2單元,CP4~7和第3數(shù)據(jù)同時(shí)存入第3單元,第4數(shù)據(jù)存入第4單元的低12位,高4位補(bǔ)0處理。
表212×4 bit圖形行列校驗(yàn)表
Tab.2 12×4 bit row and line check table
423Hamming校驗(yàn)算法實(shí)現(xiàn)流程
圖像數(shù)據(jù)存儲(chǔ)和讀取操作整體的校驗(yàn)流程分為三個(gè)步驟:1.圖像存儲(chǔ)階段,生成行列原始校驗(yàn)碼,隨圖像數(shù)據(jù)存入NAND Flash;2.圖像讀取階段,讀取圖像數(shù)據(jù),同時(shí)生成新行列校驗(yàn)碼;3.圖像譯碼校驗(yàn),比較原始和新校驗(yàn)碼,校驗(yàn)并輸出圖像數(shù)據(jù)。
步驟1和步驟2生成原始和新校驗(yàn)碼的方法相同,具體的流程如下:
首先將圖像數(shù)據(jù)隨NAND Flash寫(xiě)入時(shí)鐘進(jìn)行5級(jí)緩存,在起始圖像開(kāi)始,按4個(gè)一組循環(huán)計(jì)數(shù),每4個(gè)圖像數(shù)據(jù)生成一個(gè)校驗(yàn)碼,在第五個(gè)時(shí)鐘周期將校驗(yàn)碼和圖像數(shù)據(jù)按表2的格式拼接,得到數(shù)據(jù)1~數(shù)據(jù)4。
行校驗(yàn)碼的生成過(guò)程如下:在圖像的緩存開(kāi)始后,每接收到1個(gè)數(shù)據(jù),在第一級(jí)緩存計(jì)算該數(shù)據(jù)的行極性,當(dāng)接收到4個(gè)數(shù)據(jù)時(shí),根據(jù)與的運(yùn)算關(guān)系,可通過(guò)直接得到4位值。
列校驗(yàn)碼的生成過(guò)程如下:每當(dāng)接收到4個(gè)圖像數(shù)后,根據(jù)與的運(yùn)算關(guān)系,可直接得到8位值。
步驟3中Hamming校驗(yàn)的流程如圖5所示,校驗(yàn)中將新校驗(yàn)碼與該數(shù)據(jù)塊的原始校驗(yàn)碼按位異或處理后進(jìn)行判斷處理,若12個(gè)比特位的異或結(jié)果都為0,則表示沒(méi)有檢測(cè)到誤碼,直接輸出圖像數(shù)據(jù);若12個(gè)校驗(yàn)碼的異或結(jié)果中存在6個(gè)比特位(校驗(yàn)碼個(gè)數(shù)的一半)為1,表示檢測(cè)到了1bit的誤碼,且可糾正,將數(shù)據(jù)糾正后輸出;若12個(gè)校驗(yàn)碼的異或結(jié)果中只有一個(gè)比特位為1,表示校驗(yàn)碼出現(xiàn)了誤碼,數(shù)據(jù)塊中未檢測(cè)到誤碼,置校驗(yàn)碼誤碼標(biāo)志,且對(duì)之前數(shù)據(jù)該標(biāo)志位的置位值進(jìn)行累加,輸出原始圖像數(shù)據(jù);其他情況均表示出現(xiàn)了無(wú)法糾正的錯(cuò)誤,置其它誤碼標(biāo)志,且對(duì)之前數(shù)據(jù)該標(biāo)志位的置位值進(jìn)行累加,輸出原始圖像數(shù)據(jù)。
當(dāng)出現(xiàn)1 bit錯(cuò)誤時(shí),行/列號(hào)校驗(yàn)碼與錯(cuò)行/列號(hào)具有一一映射關(guān)系,將校驗(yàn)碼使用16進(jìn)制表示,詳見(jiàn)表3~4,在FPGA進(jìn)行程序?qū)崿F(xiàn)時(shí),在判定為1 bit圖像數(shù)據(jù)錯(cuò)誤時(shí),根據(jù)查表映射的方法,可快速定位錯(cuò)誤行號(hào)和列號(hào),實(shí)現(xiàn)與讀出數(shù)據(jù)速率同步的糾錯(cuò)效果。
圖5 Hamming校驗(yàn)的流程
表31 bit錯(cuò)誤行校驗(yàn)碼與行號(hào)映射表
Tab.3 Corresponding relationship between the row check code and row number when 1 bit error occurs
表41bit錯(cuò)誤列校驗(yàn)碼與列號(hào)映射表
Tab.4 Corresponding relationship between the column check code and column number when 1bit error occurs
天問(wèn)一號(hào)高分相機(jī)圖像存儲(chǔ)電子學(xué)系統(tǒng)如圖6所示,對(duì)電子學(xué)系統(tǒng)搭建測(cè)試環(huán)境,包括主控子系統(tǒng)、成像子系統(tǒng)、存儲(chǔ)子系統(tǒng)以及地面測(cè)試設(shè)備等,進(jìn)行Flash存儲(chǔ)試驗(yàn)和糾錯(cuò)驗(yàn)證試驗(yàn)。
圖6 高分相機(jī)圖像存儲(chǔ)電子學(xué)系統(tǒng)
由主控箱向成像電子學(xué)發(fā)送拍攝自校圖像指令,模擬CCD全色行頻為8.1 kHz的數(shù)據(jù)率,圖像數(shù)據(jù)同時(shí)傳輸至存儲(chǔ)系統(tǒng)和地面測(cè)試設(shè)備,執(zhí)行結(jié)束后,將存儲(chǔ)的圖像下行至地面測(cè)試設(shè)備,并與直接下行的圖像進(jìn)行對(duì)比,如圖7所示為系統(tǒng)聯(lián)調(diào)結(jié)果,由圖中對(duì)比可知,直接下行與存儲(chǔ)后下行的數(shù)據(jù)完全一致,無(wú)誤碼和丟數(shù)現(xiàn)象,表明設(shè)計(jì)的存儲(chǔ)系統(tǒng)存儲(chǔ)速率滿足設(shè)計(jì)要求。
圖7 系統(tǒng)聯(lián)調(diào)結(jié)果
進(jìn)行Flash數(shù)據(jù)糾錯(cuò)試驗(yàn):首先生成1~4循環(huán)遞增數(shù)據(jù),并按照表2中數(shù)據(jù)的格式將數(shù)據(jù)的行列校驗(yàn)碼拆分處理與數(shù)據(jù)整合后,將數(shù)據(jù)1的第2 bit取反作為錯(cuò)誤位,再將4個(gè)數(shù)據(jù)存入NAND Flash中;然后將Flash數(shù)據(jù)讀出得到FLASH_DATA_READ,解出原始行校驗(yàn)碼RP_DATA、列校驗(yàn)碼CP_DATA;同時(shí)生成讀出數(shù)據(jù)的行列校驗(yàn)碼RP_DATA_NEW和CP_DATA_NEW,對(duì)兩組校驗(yàn)碼異或處理并糾錯(cuò)后,按照Hamming校驗(yàn)的流程進(jìn)行糾錯(cuò)處理,處理后得出數(shù)據(jù)DATA_VERIFY_OUT,使用Chipscope抓取的數(shù)據(jù)糾錯(cuò)結(jié)果如圖8所示,由圖中結(jié)果可知,校驗(yàn)算法將數(shù)據(jù)1的第2 bit取反為0,輸出數(shù)據(jù)從1~4循環(huán)遞增,還原了原始存入數(shù)據(jù),實(shí)現(xiàn)了1 bit錯(cuò)誤數(shù)據(jù)糾錯(cuò)的目的,同時(shí)可以看出糾錯(cuò)的數(shù)據(jù)輸出速率與Flash數(shù)據(jù)讀取速率一致,即可實(shí)現(xiàn)Hamming編碼、解碼與數(shù)據(jù)讀出同步。
圖8 12×4 bit圖像1 bit糾錯(cuò)Chipscope時(shí)序
針對(duì)3D NAND Flash的高速大容量存儲(chǔ)系統(tǒng)展開(kāi)了研究,設(shè)計(jì)了一套高可靠性的圖像存儲(chǔ)電子學(xué)系統(tǒng),重點(diǎn)描述了存儲(chǔ)器并聯(lián)與流水存儲(chǔ)技術(shù)和可靠性設(shè)計(jì)中的存儲(chǔ)結(jié)構(gòu)與壞塊管理策略,根據(jù)圖像數(shù)據(jù)特有的數(shù)據(jù)格式,提出了適用于本次任務(wù)的ECC糾錯(cuò)機(jī)制。實(shí)驗(yàn)結(jié)果證明:設(shè)計(jì)的高度圖像存儲(chǔ)系統(tǒng),具有三個(gè)獨(dú)立的圖像存儲(chǔ)通道,每個(gè)通道的實(shí)時(shí)接收存儲(chǔ)數(shù)據(jù)能力達(dá)到1 276 Mbps,具有1 bit/48 bit的糾錯(cuò)能力,編碼、解碼與校驗(yàn)速度均可實(shí)現(xiàn)與最大圖像存儲(chǔ)速率同步,能夠解決相機(jī)高輸出數(shù)據(jù)率與低下行速率不匹配問(wèn)題,滿足了天問(wèn)一號(hào)高分相機(jī)的圖像存儲(chǔ)研制任務(wù)需求。
[1] 陳昌亞,方寶東,俞潔.遠(yuǎn)征火星[M].北京:中國(guó)宇航出版社,2011.
CHEN C Y,F(xiàn)AND B D,YU J.[M].Beijing:China Aerospace Press,2011. (in Chinese)
[2] 侯建文,張曉嵐,王燕. 火星探測(cè)征程[M]. 北京:中國(guó)宇航出版社,2013.
HOU J W,ZHANG X L,WANG Y,.[M]. Beijing:China Aerospace Press,2013. (in Chinese)
[3] 王維,董吉洪,孟慶宇. 火星探測(cè)可見(jiàn)光遙感相機(jī)的發(fā)展現(xiàn)狀與趨勢(shì)[J]. 中國(guó)光學(xué), 2014, 7(2): 208-214.
WANG W, DONG J H, MENG Q Y. Current status and developing tendency of visible spectral remote sensing camera for Mars observation[J]., 2014, 7(2): 208-214.(in Chinese)
[4] 王宇虹. 長(zhǎng)征五號(hào)火箭成功發(fā)射天問(wèn)一號(hào)火星探測(cè)器[J]. 導(dǎo)彈與航天運(yùn)載技術(shù), 2020(4): 101, 2.
WANG H Y. The Lone March-5 rocket successfully launched the Tianwen-1 Mars prope[J]., 2020(4): 101, 2.(in Chinese)
[5] 羅曉紅. 深空探測(cè)應(yīng)用中的Bayer圖像高效壓縮算法研究[D]. 西安:西安電子科技大學(xué), 2018.
LUO X H.[D]. Xi'an: Xidian University, 2018. (in Chinese)
[6] 許志宏. 面向星載一體化綜合電子系統(tǒng)的固態(tài)存儲(chǔ)技術(shù)研究[D].北京:中國(guó)科學(xué)院大學(xué)(中國(guó)科學(xué)院國(guó)家空間科學(xué)中心), 2017.
XU Z H.[D]. The University of Chinese Aacdemy of Sciences. 2017. (in Chinese)
[7] 張恒,馬慶軍,王淑榮. 紫外遙感儀器高速CMOS成像電子學(xué)系統(tǒng)[J]. 光學(xué)精密工程, 2018, 26(2): 471-479.
ZHANG H, MA Q J, WANG S R. High speed CMOS imaging electronics system for ultraviolet remote sensing instrument[J]., 2018, 26(2): 471-479.(in Chinese)
[8] ElectronicsSamsung.K9F8G08X0M NAND Flash Memory datasheet(Revision1.4)[R]. 2009.
[9] 王曉東,郝志航. 大容量固態(tài)記錄器技術(shù)[J]. 光學(xué)精密工程, 2001, 9(4): 396-400.
WANG X D, HAO Z H. Mass solid state recorder technology[J]., 2001, 9(4): 396-400.(in Chinese)
[10] 朱知博. 基于NAND FLASH的高速大容量存儲(chǔ)系統(tǒng)設(shè)計(jì)[J]. 現(xiàn)代電子技術(shù), 2011, 34(8): 170-173.
ZHU Z B. Design of high-speed and mass storage system based on NAND flash[J]., 2011, 34(8): 170-173.(in Chinese)
[11] 李晴. 高速大容量NAND FLASH存儲(chǔ)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京理工大學(xué), 2015.
LI Q.[D]. Beijing: Beijing Institute of Technology, 2015. (in Chinese)
[12] HUI S, FANG X Y, XIE C S,. Revisiting behavior amplification of NAND flash-based storage devices in embedded systems[C]. 201311,2122,2013,,, 2013: 280-287.
[13] KIM H, SHIN D. Clustered page-level mapping for flash memory-based storage devices[J]., 2015, 61(1): 47-55.
[14] 王新梅,肖國(guó)鎮(zhèn).糾錯(cuò)碼-原理與方法[M].西安:西安電子科技大學(xué)出版社,2001.
WANG X M,XIAO G ZH.[M].Xian:Xidian University Press,2001.(in Chinese)
[15] 李進(jìn),金龍旭,韓雙麗,等. 空間圖像存儲(chǔ)器NAND Flash的可靠性[J]. 光學(xué)精密工程, 2012, 20(5): 1090-1101.
LI J, JIN L X, HAN S L,. Reliability of space image recorder based on NAND flash memory[J]., 2012, 20(5): 1090-1101.(in Chinese)
[16] 廖宇翔. 基于NAND flash主控制器的BCH糾錯(cuò)算法設(shè)計(jì)與實(shí)現(xiàn)[D]. 哈爾濱:哈爾濱工業(yè)大學(xué),2014.
LIAO Y X.[D]. Harbin: Harbin Institute of Technology, 2014. (in Chinese)
[17] 馮卉. 提高NAND Flash存儲(chǔ)系統(tǒng)可靠性的關(guān)鍵技術(shù)研究[D]. 北京:北京理工大學(xué), 2015.
FENG H.[D]. Beijing: Beijing Institute of Technology, 2015. (in Chinese)
[18] LEE H. High-speed VLSI architecture for parallel Reed-Solomon decoder[J].(), 2003, 11(2): 288-294.
High reliability image storage electronics system of Tianwen-1 high-resolution camera
HE Yunfeng1,WANG Dong1*,WANG Zheng1,2,GUAN Hainan1,ZHANG Bowei1,YAN Dejie1
(1,,,130033,;2,,100101,),:
To solve the problem of low bandwidth between Mars and Earth and the high-output image data rate of the high-resolution camera of Tianwen-1, an electronic image-storage system was designed by using a NAND Flash as a storage medium and a FPGA as a control core. The NAND Flash was designed to use parallel processing and 4-level pipelining technology to meet the requirements of high data rate storage of camera images. To ensure the reliability of the image storage system, the storage system area was divided and a bad block replacement mechanism was established. Moreover, to avoid the influence of the original bit error rate and the single event radiation effect of space, a 12×4 bit Hamming verification was proposed. The experimental results showed that the designed electronic image-storage system could achieve the highest real-time image storage data rate of 1 276 Mbps on each single channel, reliable storage of image data, and 1 bit error correction for a 12×4 bit unit of image data, meeting the requirements of the space mission.
high-resolution camera; high-speed storage; NAND Flash; pipelining; hamming verify
V476.4;V445.8
A
10.37188/OPE.20223002.0160
何云豐(1989),男,吉林榆樹(shù)人,碩士,助理研究員,2011年、2014年于哈爾濱工程大學(xué)分別獲得學(xué)士、碩士學(xué)位,主要研究方向?yàn)榭臻g載荷的控制和存儲(chǔ)電子學(xué)系統(tǒng)設(shè)計(jì)。E-mail:hyf421@163.com
王棟(1979),男,山西陽(yáng)泉人,博士,研究員,碩士生導(dǎo)師,2002年于長(zhǎng)春理工大學(xué)獲得學(xué)士學(xué)位,2007年于中國(guó)科學(xué)院研究生院獲得博士學(xué)位,主要從事空間光學(xué)遙感器總體設(shè)計(jì)、空間電子學(xué)總體設(shè)計(jì)、數(shù)字圖像處理等方面的研究。E-mail:wangd@ciomp.ac.cn
1004-924X(2022)02-0160-10
2020-09-18;
2020-11-15.
中國(guó)科學(xué)院月球與深空探測(cè)重點(diǎn)實(shí)驗(yàn)室開(kāi)放基金資助項(xiàng)目(No.LDSE201901)