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