劉 攀,王志國(guó),劉建峰,閔康磊,游紅俊
(1.上海航天電子技術(shù)研究所,上海 201109;2.智能計(jì)算技術(shù)重點(diǎn)實(shí)驗(yàn)室,上海 201109)
我國(guó)已成功采用“長(zhǎng)征五號(hào)”(CZ-5)運(yùn)載火箭將“嫦娥五號(hào)”(Chang'E-5,CE-5)送到預(yù)定軌道,并實(shí)現(xiàn)了探月工程“繞”“落”“回”里程碑式壯舉?!版隙鹞逄?hào)”軌道器各種試驗(yàn)、遙測(cè)數(shù)據(jù)因地球未能覆蓋全部的可見弧段導(dǎo)致無法及時(shí)傳送到地面站,需要星載固存進(jìn)行接收、管理和存儲(chǔ)再轉(zhuǎn)發(fā)。
當(dāng)前,國(guó)內(nèi)外學(xué)者對(duì)基于NAND Flash大容量存儲(chǔ)芯片的應(yīng)用做了大量的研究和探索,有很多值得推廣的成果。Luo等探究了NAND Flash多頁(yè)并行讀取的方法[3]?;谏羁仗綔y(cè)的存儲(chǔ)方案設(shè)計(jì)上,相關(guān)學(xué)者也做了大量的應(yīng)用探索工作,宋琪等提出了衛(wèi)星固態(tài)存儲(chǔ)器數(shù)據(jù)容錯(cuò)設(shè)計(jì)方案,實(shí)現(xiàn)了在數(shù)據(jù)存儲(chǔ)過程對(duì)錯(cuò)誤進(jìn)行檢測(cè)并實(shí)時(shí)反饋的功能[4-5]。張衛(wèi)東等對(duì)星載固態(tài)存儲(chǔ)控制器的標(biāo)準(zhǔn)化和可配置方面進(jìn)行了研究,并設(shè)計(jì)了通用存儲(chǔ)控制器,可適配多個(gè)廠家的NAND Flash芯片[6]。上述探究主要為芯片設(shè)計(jì)方面的應(yīng)用、算法優(yōu)化方面的探索和通用化設(shè)計(jì)[6-10],對(duì)于數(shù)據(jù)接口的擴(kuò)展則沒有涉及,本文使用大規(guī)模反熔絲工藝FPGA上實(shí)現(xiàn)靈活的數(shù)據(jù)存儲(chǔ)管理以及糾錯(cuò)編碼來滿足“嫦娥五號(hào)”高可靠、集成度高以及小型化應(yīng)用需求。
本文針對(duì) “嫦娥五號(hào)”軌道器任務(wù)設(shè)計(jì)了一種基于高級(jí)在軌系統(tǒng)(Advanced Orbiting Systems,AOS)虛擬信道存儲(chǔ)管理方法,該器有效載荷數(shù)據(jù)包括常規(guī)遙測(cè)、內(nèi)存下傳遙測(cè)、返回器遙測(cè)、圖像遙測(cè)以及延時(shí)回放遙測(cè)等數(shù)據(jù),這些數(shù)據(jù)傳輸時(shí)效性要求高。在此情況下,進(jìn)行合理的數(shù)據(jù)處理、優(yōu)先級(jí)編排和高效的存儲(chǔ)分區(qū),能夠迅速提取高優(yōu)先級(jí)載荷數(shù)據(jù),在突發(fā)情況下優(yōu)先下傳重要數(shù)據(jù),并且可以最大化地使用緩存資源[11-13],基于AOS信息流的不同數(shù)據(jù)業(yè)務(wù)的傳輸需求,設(shè)計(jì)了一種合理的隊(duì)列管理與存儲(chǔ)管理方法。
數(shù)據(jù)復(fù)接及存儲(chǔ)模塊主要功能為接收異步串行遙控指令并解析;根據(jù)指令完成4路相機(jī)數(shù)據(jù)、常規(guī)遙測(cè)、內(nèi)存下傳遙測(cè)、返回器遙測(cè)以及1路器內(nèi)環(huán)境監(jiān)視探頭數(shù)據(jù)的屏蔽接收處理,包括數(shù)據(jù)復(fù)接、信息格式化緩存等,在遙測(cè)數(shù)據(jù)接收完成后,可以選擇存入固存或者進(jìn)行實(shí)時(shí)下行傳輸。同時(shí)提供基于虛擬信道標(biāo)志(Virtual Channel IDentifier,VCID)的分區(qū)存儲(chǔ)管理、延時(shí)數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)可根據(jù)指令進(jìn)行組合編排,組合數(shù)據(jù)編排后經(jīng)過里德索洛蒙(Reed Solomon,RS)編碼、偽隨機(jī)化、卷積編碼、最終送測(cè)控?cái)?shù)傳應(yīng)答機(jī)。與“嫦娥三號(hào)”(Chang’E-3,CE-3)相比,“嫦娥五號(hào)”的數(shù)據(jù)復(fù)接及存儲(chǔ)模塊載荷數(shù)據(jù)輸入速率和數(shù)據(jù)輸出速率均有較大提升,滿足整器遙測(cè)數(shù)據(jù)和業(yè)務(wù)數(shù)據(jù)處理需求。
數(shù)據(jù)復(fù)接及存儲(chǔ)模塊接收各路圖像監(jiān)視數(shù)據(jù)和整器遙測(cè)數(shù)據(jù),進(jìn)行復(fù)接處理,并標(biāo)記對(duì)應(yīng)的虛擬信道標(biāo)識(shí)。在實(shí)時(shí)傳輸模式下,由調(diào)度單元裁決下發(fā)數(shù)據(jù)類型(載荷數(shù)據(jù)或者填充幀),保證下傳數(shù)據(jù)的連續(xù)性。然后按國(guó)際空間數(shù)據(jù)系統(tǒng)咨詢委員會(huì)(Consultative Committee for Space Data Systems,CCSDS)格式化數(shù)據(jù)要求,并存儲(chǔ)到Flash中。數(shù)據(jù)存儲(chǔ)完成之后,由路由單元根據(jù)當(dāng)前指令裁決數(shù)據(jù)下傳模式:回放模式(從存儲(chǔ)器讀取數(shù)據(jù))、實(shí)時(shí)模式(直接調(diào)用緩存中的數(shù)據(jù))。在數(shù)據(jù)下傳之前需對(duì)數(shù)據(jù)進(jìn)行RS編碼、偽隨機(jī)化、卷積編碼等處理,然后下傳給測(cè)控?cái)?shù)傳分系統(tǒng),系統(tǒng)信息框圖如圖1所示。
圖1 大容量固存及復(fù)接模塊的信息流程框圖Fig.1 Diagram of information flow for large-capacity fixed storage and multiplexing module
本系統(tǒng)采用具有抗輻射能力的現(xiàn)場(chǎng)可編程門陣列(Field-Programmable Gate Array,F(xiàn)PGA)作為控制器,設(shè)計(jì)NAND Flash控制器,用于提高存儲(chǔ)控制系統(tǒng)的存取速率。本文共采用兩片NAND Flash芯片,并考慮了NAND Flash芯片可能出現(xiàn)的故障預(yù)案,將兩片F(xiàn)lash芯片設(shè)計(jì)為獨(dú)立控制模式,既可以兩片同時(shí)用于存儲(chǔ)有效數(shù)據(jù)+校驗(yàn)數(shù)據(jù),又可以相互獨(dú)立用于存儲(chǔ)有效數(shù)據(jù),默認(rèn)情況下使用第一種存儲(chǔ)模式。
1)有效數(shù)據(jù)+校驗(yàn)數(shù)據(jù)控制模式:該模式下兩片F(xiàn)LASH芯片用于將有效數(shù)據(jù)和校驗(yàn)數(shù)據(jù)分開存儲(chǔ),第一片存儲(chǔ)有效數(shù)據(jù),第二片存儲(chǔ)錯(cuò)誤檢測(cè)與糾正(Error Detection And Correction,EDAC)校驗(yàn)碼(漢明校驗(yàn)),每存儲(chǔ)8 bit數(shù)據(jù)計(jì)算一次EDAC存入Flash,每次讀出數(shù)據(jù)時(shí)進(jìn)行一次校驗(yàn)和糾錯(cuò)(每8 bit數(shù)據(jù)中可以糾正1 bit錯(cuò)誤),滿足NAND Flash自身對(duì)糾錯(cuò)的要求,同時(shí)有效降低空間單粒子影響導(dǎo)致數(shù)據(jù)異常產(chǎn)生的錯(cuò)誤。
2)獨(dú)立存儲(chǔ)有效數(shù)據(jù)控制模式:該模式下若兩片F(xiàn)lash相互獨(dú)立,則關(guān)閉EDAC校驗(yàn),在兩片芯片都正常情況下,可以互為備份進(jìn)行存儲(chǔ),但是若數(shù)據(jù)異常則無法判斷和糾錯(cuò)。在其中一片芯片異常的情況下,可用另一片芯片存儲(chǔ)有效數(shù)據(jù),保證大容量存儲(chǔ)載荷數(shù)據(jù)能夠正常傳輸?shù)降孛妗?/p>
控制Nand Flash的核心是如何建立和維護(hù)壞塊表,若壞塊表失效,存儲(chǔ)系統(tǒng)中的數(shù)據(jù)將出現(xiàn)亂碼,無法實(shí)現(xiàn)正常的數(shù)據(jù)存儲(chǔ)和回放。實(shí)踐證明,非易失性磁性隨機(jī)存儲(chǔ)器(Magnetic Random Access Memory,MRAM)具有較為優(yōu)秀的抗輻射能力,其內(nèi)部存儲(chǔ)區(qū)域的磁特性使存儲(chǔ)部分對(duì)單粒子翻轉(zhuǎn)(Single Event Upset,SEU)免疫,將壞塊表存放在MRAM中,可以有效降低空間輻射環(huán)境對(duì)系統(tǒng)的影響。因此,本文的FLASH壞塊表管理采用MRAM存儲(chǔ),方案框圖如圖2所示。
圖2 壞塊表存儲(chǔ)示意圖Fig.2 Schematic diagram of bad block table storage
本方案的壞塊表管理采用MRAM存儲(chǔ)2份壞塊信息,分別為初始?jí)膲K信息(靜態(tài)、可更新),以及動(dòng)態(tài)壞塊信息。2份壞塊信息表均可更新,初始?jí)膲K信息在產(chǎn)品出廠時(shí)根據(jù)Flash芯片實(shí)際狀態(tài)進(jìn)行設(shè)置;動(dòng)態(tài)壞塊信息則由初始?jí)膲K信息導(dǎo)入或者由地面遙控注入Flash壞塊信息,且動(dòng)態(tài)壞塊信息在應(yīng)用的過程中可自動(dòng)根據(jù)FLASH擦除和編程反饋狀態(tài)進(jìn)行更新,確保及時(shí)存儲(chǔ)Flash壞塊信息,防止將有效數(shù)據(jù)寫入Flash壞塊區(qū)。
在初始化壞塊表的過程中,由FPGA遍歷Flash芯片的的壞塊標(biāo)志,并將Flash的每個(gè)block(塊)在對(duì)應(yīng)的MRAM地址中標(biāo)記為0x00(表示好塊),或者標(biāo)記為0xff(表示壞塊)。該動(dòng)作僅操作一次,通過加鎖指令防止誤操作,后續(xù)通過注數(shù)指令可對(duì)初始?jí)膲K信息進(jìn)行局部修改。通過指令FPGA將靜態(tài)壞塊表更新至動(dòng)態(tài)壞塊表,F(xiàn)lash數(shù)據(jù)讀、寫以及擦除過程中,F(xiàn)PGA將檢索動(dòng)態(tài)壞塊表的好壞快標(biāo)志,并更新。
系統(tǒng)應(yīng)用于探月工程中,月地距離大約38萬km,深空通信的信道編碼技術(shù)中,最為經(jīng)典的方法是內(nèi)碼采用卷積碼,外碼采用里德-所羅門(RS)碼的級(jí)聯(lián)碼,相較于低軌道(Low Earth Orbit,LEO)衛(wèi)星常采用RS編碼或者低密度奇偶校驗(yàn)碼(Low Density Parity—check Code,LDPC)編碼再結(jié)合序列偽隨機(jī)化,雖降低數(shù)據(jù)傳輸效率卻有效提高數(shù)據(jù)傳輸可靠度。
本系統(tǒng)的存儲(chǔ)及復(fù)接模塊下行數(shù)傳信道編碼采用國(guó)際空間數(shù)據(jù)系統(tǒng)咨詢委員會(huì)(The Consultative Committee for Space Data Systems,CCSDS)標(biāo)準(zhǔn)建議的高級(jí)在軌系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行處理,其編碼順序:①RS編碼;②偽隨機(jī)碼;③卷積編碼”方式,并采用序列偽隨機(jī)化。
1)RS編碼器
RS編碼特性如下:
(1)RS(255,223)糾錯(cuò)編碼,交織深度為4;
(2)每個(gè)RS碼元的位數(shù):8;
(3)一個(gè)RS碼字內(nèi)RS碼元的糾錯(cuò)能力:16;
(4)每個(gè)編碼字包含255個(gè)碼元;
(5)域生成多項(xiàng)式:F(x)=x8+x7+x2+x+1(在GF(2)上定義);
2)偽隨機(jī)碼發(fā)生器
在數(shù)據(jù)傳輸?shù)倪^程中,為確保數(shù)據(jù)的轉(zhuǎn)變密度合理可靠,防止同時(shí)出現(xiàn)全“0”或者全“1”的情況,需要采用偽隨機(jī)碼發(fā)生器對(duì)數(shù)據(jù)進(jìn)行加擾處理的方法,該方法主要是將偽隨機(jī)序列與數(shù)據(jù)每位異或起來(不包含幀同步字)。根據(jù)CCSDS的處理方法,偽隨機(jī)序列生成多項(xiàng)式為:h(x)=x8+x7+x5+x3+1。該序列在處理完成255 bit之后重復(fù),同時(shí)在處理每個(gè)同步標(biāo)志期間序列發(fā)生器重復(fù)初始化為全1狀態(tài)。該序列的初始40個(gè)bit為
1 111 1 111 0100 1 000 0000 1 110 1 100 0000 1 001 1 010
3)卷積編碼器
卷積編碼器的輸入為脈沖編碼調(diào)制(Pulse Code Modulation,PCM)信號(hào)-非歸零電平碼NRZ-L。卷積編碼器原理如圖3所示。
圖3 卷積編碼器Fig.3 Convolution encoder
卷積編碼器的輸出為二元電平符號(hào)序列(即比特序列)。編碼器每輸入一個(gè)信息比特,產(chǎn)生二個(gè)輸出符號(hào),即一個(gè)符號(hào)對(duì)。符號(hào)輸出順序如下:
第一輸出符號(hào):C1的輸出;
第二輸出符號(hào):C2的反相輸出。
地面應(yīng)用系統(tǒng)則先進(jìn)行Viterbi譯碼,糾正信道誤碼,然后按照比特移位找到同步幀頭,進(jìn)行逆向操作,從而恢復(fù)原始數(shù)據(jù)。
載荷數(shù)據(jù)調(diào)度管理的功能為數(shù)據(jù)的接收和復(fù)接,數(shù)據(jù)復(fù)接模塊使用三線制低壓差分信號(hào)(Low Voltage Differential Signaling,LVDS)和異步串口接收、先位寬轉(zhuǎn)換至8 bit,然后跨時(shí)鐘域轉(zhuǎn)換,使用本地時(shí)鐘將數(shù)據(jù)存入先入先出隊(duì)列(First Input First Output,F(xiàn)IFO),防止FIFO受載荷數(shù)據(jù)時(shí)鐘信號(hào)異常干擾,當(dāng)FIFO數(shù)據(jù)達(dá)到一幀數(shù)據(jù)量時(shí),F(xiàn)IFO向數(shù)據(jù)拼接模塊幀傳輸請(qǐng)求,數(shù)據(jù)拼接模塊將從目標(biāo)FIFO中讀取一幀數(shù)據(jù),并添加虛擬信道號(hào)和幀計(jì)數(shù),然后將這幀數(shù)據(jù)傳送到SRAM控制器。數(shù)據(jù)拼接模塊輪詢各路FIFO幀傳輸請(qǐng)求的速率是40 MHz,其數(shù)據(jù)處理能力可以滿足各路數(shù)據(jù)同時(shí)輸入的最高速率。
載荷調(diào)度管理分為實(shí)時(shí)模式和延時(shí)模式兩種。
實(shí)時(shí)模式為了保證信道的連續(xù)性則會(huì)在無有效數(shù)據(jù)時(shí)組織填充幀下傳,通過指令設(shè)置外部通道與實(shí)時(shí)緩存的映射關(guān)系,共設(shè)置5個(gè)緩存,其中3個(gè)固定為常規(guī)遙測(cè)、內(nèi)存下傳數(shù)據(jù)遙測(cè)、返回器大容量存儲(chǔ)數(shù)據(jù)遙測(cè),另外2路則可設(shè)置為器內(nèi)環(huán)境監(jiān)視探頭數(shù)據(jù)、圖像數(shù)據(jù)以及延時(shí)回放數(shù)據(jù)3路數(shù)據(jù)中的2路映射到2個(gè)FIFO緩存實(shí)現(xiàn)各種模式下的數(shù)據(jù)下傳工作,通過該方法使得FPGA內(nèi)部32 k字節(jié)RAM即滿足內(nèi)部多路載荷高速數(shù)據(jù)緩存需求。
延時(shí)模式為了有效利用存儲(chǔ)容量,則只會(huì)記錄有效載荷數(shù)據(jù)幀。在混合傳輸模塊下則會(huì)在實(shí)時(shí)幀中穿插NAND Flash存儲(chǔ)器中的載荷數(shù)據(jù)幀,有效利用信道。延時(shí)模式下,載荷數(shù)據(jù)在接收、組幀完成后,由存儲(chǔ)控制模塊根據(jù)VCID分區(qū)存入Nand Flash芯片指定區(qū)域。在數(shù)據(jù)回讀的過程中,則根據(jù)遙控指令,按照VCID好檢索Flash中的數(shù)據(jù),將檢索出的數(shù)據(jù)通過實(shí)時(shí)模式指定的通道下傳到地面控制中心。
鑒于本系統(tǒng)中外部輸入的數(shù)據(jù)路數(shù)較多,可能出現(xiàn)輸入突發(fā)速率較大的模式,故采用一片SRAM作為存儲(chǔ)和回放的緩沖器,實(shí)時(shí)延時(shí)數(shù)據(jù)流圖如圖4所示。
圖4 數(shù)據(jù)存儲(chǔ)信息流程圖Fig.4 Flow chart of data storage information
由于載荷數(shù)據(jù)速率較快、載荷類型較多、而FPGA內(nèi)部BLOCK RAM資源有限、設(shè)計(jì)選用外置SRAM作為載荷數(shù)據(jù)二級(jí)緩存,當(dāng)載荷數(shù)據(jù)一級(jí)緩存達(dá)到一定數(shù)據(jù)量時(shí)由數(shù)據(jù)處理模塊進(jìn)行調(diào)度緩存到二級(jí)緩存SRAM中。SRAM空間劃分為8個(gè)8 K字節(jié)空間,按照載荷優(yōu)先級(jí)調(diào)度,三級(jí)緩存為一個(gè)8 K字節(jié)緩存當(dāng)SRAM緩存半滿即4 K字節(jié)準(zhǔn)備好后,隨即調(diào)度到三級(jí)緩存中,然后存入Flash芯片中。
使用Nand Flash 需要進(jìn)行擦除、寫以及讀三種典型操作,為了滿足應(yīng)用需求,使用Nand Flash包含擦除、讀、寫三個(gè)子狀態(tài),并設(shè)置讀寫分時(shí)復(fù)用、分區(qū)擦除和全部擦除功能滿足數(shù)據(jù)存儲(chǔ)管理需求,通過分區(qū)管理可以實(shí)現(xiàn)任意載荷數(shù)據(jù)點(diǎn)播操作。而根據(jù)任務(wù)需求選擇合適的外置緩存以及核算內(nèi)部緩存是否能夠滿足應(yīng)用需求則是任務(wù)的關(guān)鍵。
本文采用的Nand Flash存儲(chǔ)陣列拓?fù)浣Y(jié)構(gòu)內(nèi)部分為8個(gè)疊層,各自有獨(dú)立的片選、讀寫使能等信號(hào)。根據(jù)Flash疊層拓?fù)浣Y(jié)構(gòu),實(shí)現(xiàn)流水擦除和編程操作,F(xiàn)lash操作速率為20*8 Mbps的突發(fā)寫入速率,流水操作后,當(dāng)前層編程或者擦除期間可對(duì)下一層進(jìn)行數(shù)據(jù)寫入或擦除,有效提高操作效率。
載荷緩存FIFO的半滿信號(hào)產(chǎn)生寫SRAM請(qǐng)求,SRAM讀寫調(diào)度控制模塊根據(jù)半滿請(qǐng)求,產(chǎn)生寫SRAM時(shí)序,將載荷數(shù)據(jù)寫入SRAM;SRAM與Flash之間的FIFO的半空信號(hào)產(chǎn)生SRAM的讀請(qǐng)求,將SRAM中的數(shù)據(jù)讀出到SRAM與Flash之間的FIFO,寫優(yōu)先級(jí)高于讀優(yōu)先級(jí),SRAM的讀寫速率為20*16 Mbps,位寬為16,讀寫周期為50 ns,速率遠(yuǎn)高于Flash讀寫速率和載荷輸入速率,實(shí)現(xiàn)SRAM數(shù)據(jù)緩存分時(shí)復(fù)用的目的。
測(cè)試過程中,模擬載荷1~4的LVDS數(shù)據(jù)源,每路數(shù)據(jù)時(shí)鐘頻率提高到10 Mbps后,載荷數(shù)據(jù)也可正常存儲(chǔ),為了快速驗(yàn)證數(shù)據(jù)存儲(chǔ)系統(tǒng)正確性,提高測(cè)試效率,設(shè)計(jì)配置數(shù)據(jù)輸出模式具備2.5、5、10 Mbps三檔速率可切換。通過輸入輸出速率的提升,可快速驗(yàn)證該存儲(chǔ)系統(tǒng)設(shè)計(jì)正確性,系統(tǒng)測(cè)試時(shí)間減半,大大提高測(cè)試效率。
針對(duì)模塊方案設(shè)計(jì)了通用地面測(cè)試設(shè)備,分為數(shù)據(jù)模擬源板卡、數(shù)據(jù)接收解碼板卡以及可配置的地面數(shù)據(jù)分析比對(duì)軟件。通過對(duì)模塊的全面測(cè)試驗(yàn)證,保證設(shè)計(jì)可靠性和測(cè)試覆蓋性。圖5為“嫦娥五號(hào)”工程應(yīng)用時(shí)下傳的雙譜段相機(jī)實(shí)時(shí)數(shù)據(jù)。
圖5 “嫦娥五號(hào)”雙譜段相機(jī)實(shí)時(shí)數(shù)據(jù)Fig.5 Real-time data of Chang’E-5 bi-spectrum camera
本文針對(duì)探月工程三期“嫦娥五號(hào)”任務(wù)需求,設(shè)計(jì)并實(shí)現(xiàn)了以反熔絲FPGA為主控制芯片的載荷調(diào)度存儲(chǔ)管理方法,設(shè)置多個(gè)存儲(chǔ)、回讀模式,將數(shù)據(jù)寫入NAND Flash,同采用MRAM存儲(chǔ)NAND Flash塊地址信息,實(shí)現(xiàn)對(duì)數(shù)據(jù)的文件管理,完成載荷數(shù)據(jù)的調(diào)度和存儲(chǔ)任務(wù)。通過測(cè)試表明,該設(shè)計(jì)切實(shí)可行,滿足航天大容量、高可靠存儲(chǔ)需求。
本文設(shè)計(jì)的多通道高速數(shù)據(jù)調(diào)度、存儲(chǔ)、回讀的載荷及遙測(cè)處理方式,為適應(yīng)多通道、多種速率的載荷調(diào)度、組幀、分發(fā)等工況,在產(chǎn)品設(shè)計(jì)的過程中綜合考慮各種應(yīng)用需求,將對(duì)外輸入輸出的LVDS接收通道等設(shè)計(jì)為速率可配置模式,通道數(shù)量設(shè)計(jì)為可擴(kuò)展模式,目前已在“嫦娥五號(hào)”上成功應(yīng)用,形成的通用IP將推廣應(yīng)用到高分、微納等系列衛(wèi)星平臺(tái),會(huì)產(chǎn)生良好的經(jīng)濟(jì)效益。