《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > SAR高速海量數(shù)據(jù)存儲與回放系統(tǒng)設(shè)計(jì)
SAR高速海量數(shù)據(jù)存儲與回放系統(tǒng)設(shè)計(jì)
來源:電子技術(shù)應(yīng)用2011年第3期
陶 君, 袁 著, 張 可, 張 偉
電子科技大學(xué) 電子科學(xué)技術(shù)研究院 ,四川 成都610054
摘要: 為了解決SAR匹配成像數(shù)據(jù)以及合成孔徑雷達(dá)中頻采樣后高速海量數(shù)據(jù)的存儲問題,介紹了一種基于FPGA控制的NAND Flash數(shù)據(jù)存儲及回放系統(tǒng)設(shè)計(jì)方案。實(shí)驗(yàn)證明,該系統(tǒng)能以3 Gb/s碼流實(shí)時(shí)存儲數(shù)據(jù)具有強(qiáng)實(shí)時(shí)性,且性能穩(wěn)定,有很好的工程使用價(jià)值。
中圖分類號: TP211
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2011)03-0126-04
Design of SAR high-speed and mass data storage and playback system
Tao Jun, Yuan Zhu, Zhang Ke, Zhang Wei
Research Institute of Electronic Science Technology, Electronic Science and Technology University, Chengdu 610054, China
Abstract: The design of NAND flash storage and playback system based on FPGA is presented in this paper to implement the super high-speed storage of SAR image and mass sampling data. Experimental results confirm the control system can realize the real-time storage up to 3 Gb/s. The system possesses some value in engineering applications and the feature of strong real-time, stable.
Key words : data storage; FPGA; NAND flash; invalid block management


    隨著合成孔徑雷達(dá)(SAR)對分辨率的要求不斷提高,其中頻采樣后回波信號的數(shù)據(jù)量與信號處理后的二維雷達(dá)圖像的數(shù)據(jù)量大大增加。為了便于后續(xù)分析與處理,通常會將這些海量回波數(shù)據(jù)以及雷達(dá)圖像數(shù)據(jù)進(jìn)行無失真數(shù)據(jù)存儲。這對數(shù)據(jù)存儲系統(tǒng)的設(shè)計(jì)提出了兩個(gè)方面的要求:(1)接口簡單且有較高的數(shù)據(jù)存儲速率;(2)由于所需存儲數(shù)據(jù)數(shù)量巨大,要求存儲系統(tǒng)有足夠的容量。
    傳統(tǒng)的SDRAM存儲方案隨著存儲器容量的增加,其復(fù)雜性和實(shí)現(xiàn)成本也迅速提高,且在系統(tǒng)掉電后所存儲數(shù)據(jù)會丟失,不適合數(shù)據(jù)的回放分析及處理的應(yīng)用場合[1]。而采用基于Flash的存儲方案,存儲容量大(單片容量可以達(dá)到32 GB),不但數(shù)據(jù)存儲的效率較高(單片讀寫速度可以達(dá)到160 Mb/s),而且其接口通用、設(shè)計(jì)簡單,方便頻繁讀寫操作,因此是大容量雷達(dá)數(shù)據(jù)實(shí)時(shí)存儲的優(yōu)選方案。
1 系統(tǒng)設(shè)計(jì)
1.1系統(tǒng)設(shè)計(jì)指標(biāo)

    本系統(tǒng)是SAR雷達(dá)信號處理系統(tǒng)中的子系統(tǒng),主要實(shí)現(xiàn)對中頻采樣數(shù)據(jù)和合成孔徑雷達(dá)匹配景象數(shù)據(jù)進(jìn)行存儲與回放。根據(jù)應(yīng)用需求分析,設(shè)計(jì)的系統(tǒng)應(yīng)具有數(shù)據(jù)存儲和數(shù)據(jù)回傳(上傳至PC機(jī))兩項(xiàng)基本功能,其中以數(shù)據(jù)存儲為核心功能。在數(shù)據(jù)存儲過程中,最關(guān)鍵的兩個(gè)指標(biāo)分別是數(shù)據(jù)存儲速率和數(shù)據(jù)存儲量。這兩項(xiàng)指標(biāo)直接影響系統(tǒng)設(shè)計(jì)的優(yōu)劣。根據(jù)表1列出的SAR工作典型參數(shù),就上述兩個(gè)指標(biāo)進(jìn)行分析。
    (1) 存儲速率分析
    由表1可知,經(jīng)過信號處理后的一幀圖像為4 096×4 096像素。極限情況下,每秒鐘信號處理模塊會送出3.5幀匹配景象數(shù)據(jù),則圖像存儲的速率必須大于448 Mb/s。存儲中頻采樣數(shù)據(jù)時(shí),根據(jù)上述采樣率以及A/D的采樣位寬,可估算每秒采集到的正交兩路中頻雷達(dá)信號數(shù)據(jù)量為350 MB,即中頻采樣數(shù)據(jù)的存儲速率要求高于2.8 Gb/s。

    (2) 存儲量分析
  由于系統(tǒng)采用非易失存儲介質(zhì),存儲量與系統(tǒng)開機(jī)運(yùn)行時(shí)間相關(guān)。根據(jù)分析,設(shè)定存儲系統(tǒng)工作在最長時(shí)間5 min時(shí),可估算規(guī)定時(shí)間內(nèi)系統(tǒng)需要存儲102.6 GB的中頻采樣數(shù)據(jù)和16.5 GB的圖像數(shù)據(jù)。這就要求設(shè)計(jì)系統(tǒng)板載總數(shù)據(jù)存儲容量大于118.1 GB。
1.2 系統(tǒng)結(jié)構(gòu)
  為了滿足設(shè)計(jì)技術(shù)指標(biāo)要求,對構(gòu)成系統(tǒng)的主要器件選擇如下: (1)存儲系統(tǒng)主控器選取Altera 公司型號為EP2S90F780FPGA芯片。(2)存儲芯片選取三星公司型號為K9LBG08U0M的NAND Flash。(3)選取Cypress Semiconductor公司的EZ-USB FX2作為數(shù)據(jù)回傳USB2.0的微處理控制器。(4)選用美光公司型號為ML48LC8M16的SDRAM作為數(shù)據(jù)緩存芯片。系統(tǒng)硬件結(jié)構(gòu)框圖如圖1所示。

2 硬件設(shè)計(jì)
2.1 SDRAM接口設(shè)計(jì)

    SDRAM與FPGA的連接示意圖如圖2所示。左邊是SDRAM芯片ML48LC8M16的引腳,右邊是FPGA中SDRAM數(shù)據(jù)接口模塊對應(yīng)的信號。系統(tǒng)中運(yùn)用了兩片ML48LC8M16,圖2是一片SDARM的接口,另一片接口與之相同。兩片SDRAM乒乓緩存高速數(shù)據(jù),可以增加系統(tǒng)存儲的穩(wěn)定性和可靠性。

2.2 NAND Flash存儲模塊設(shè)計(jì)
    系統(tǒng)數(shù)據(jù)存儲基本單元由型號為K9LBG08U0M的NAND Flash芯片組成,K9LBG08U0M是一款低功耗、高效率的NAND Flash存儲芯片。其內(nèi)部采用典型“塊-頁”組織結(jié)構(gòu)方式,片內(nèi)總共分為8 192塊,每塊包括128頁,每頁可存儲4 KB,總存儲空間達(dá)到4 GB[2]。其典型編程和擦除時(shí)間分別為0.8 ms、1.5 ms,存儲速度較快,存儲容量適中,適合SAR海量數(shù)據(jù)存儲的應(yīng)用場合。系統(tǒng)以FPGA為主控制器,并行控制4個(gè)NAND Flash存儲器工作組,其接口電路原理圖如圖3所示。每個(gè)存儲器組分別由8片K9LBG08U0M芯片組成。每組中又以4片為一個(gè)最小存儲單位。每個(gè)最小存儲單位中,將地址鎖存信號ALE、命令鎖存信號CLE等控制信號線通過并接的方式連接到一起,各片數(shù)據(jù)地址復(fù)用線IO0~IO7獨(dú)立連接至FPGA的通用I/O中。

    這樣將數(shù)據(jù)通道可擴(kuò)展至32 bit,有效地拓寬了數(shù)據(jù)存儲帶寬,提高了數(shù)據(jù)吞吐量。同時(shí),因采用了32片NAND Flash芯片,板載存儲容量達(dá)到了128 GB。
2.3 回傳模塊設(shè)計(jì)
    數(shù)據(jù)回傳通道通過EZ USB 68013與PC連接,集成了USB2.0收發(fā)器、串行接口引擎(SIE)、增強(qiáng)型8051微控制器和可編程的外圍接口。設(shè)計(jì)中采用USB 68013的GPIF接口,并運(yùn)用8 bit的傳輸方式。EZ-USB FX2可配置成Ports、GPIF Master(主)和Slave FIFO(從)三種不同的接口模式,在設(shè)計(jì)中使用Slave FIFO模式[3]。在該模式下,外部邏輯直接連接到FX2的端點(diǎn)FIFO,GPIF并沒有被激活。因?yàn)橥獠窟壿嬁梢灾苯涌刂艶IFO,所以FIFO的基本控制信號(標(biāo)志、片選、使能)由EZ-USB FX2的引腳引出,外部控制可以是同步或異步。圖4為在Slave模式下USB芯片外圍電路以及與FPGA連接的原理圖。

3 存儲系統(tǒng)軟件設(shè)計(jì)
3.1控制器軟件模塊

     數(shù)據(jù)傳輸與存儲控制電路的開發(fā)工作主要集中在FPGA上。根據(jù)上述分析與介紹,結(jié)合NAND Flash以及USB 68013芯片的操作特點(diǎn),考慮控制器的通用性與系統(tǒng)的可擴(kuò)展性,存儲系統(tǒng)軟件設(shè)計(jì)如圖5所示。其中包括USB操作命令解析模塊、寫時(shí)序發(fā)生模塊、壞塊管理" title="壞塊管理" target="_blank">壞塊管理模塊、數(shù)據(jù)上傳控制模塊、塊擦除時(shí)序發(fā)生器模塊、讀時(shí)序發(fā)生器模塊等。
    圖5中,虛線框標(biāo)定的軟件模塊均運(yùn)用硬件描述語言編寫,在Quarters II編譯環(huán)境下編譯、綜合并得到了實(shí)現(xiàn)。

3.2 系統(tǒng)工作流程
    系統(tǒng)工作流程如下:上電后,由壞塊管理程序掃描所有存儲塊,同時(shí)記錄壞塊地址值,并存入FPGA內(nèi)建立的RAM壞塊表中;然后系統(tǒng)等待接收并解析USB控制命令;若控制命令為數(shù)據(jù)存儲,首先進(jìn)行寫數(shù)據(jù)目標(biāo)塊擦除操作,然后在壞塊管理程序監(jiān)管下,由寫時(shí)序發(fā)生模塊存儲SDRAM接口準(zhǔn)備好的數(shù)據(jù),數(shù)據(jù)存儲完畢后系統(tǒng)進(jìn)入待命狀態(tài)。若控制命令為數(shù)據(jù)讀取,首先從USB控制命令中解析出目標(biāo)數(shù)據(jù)地址,之后由讀取時(shí)序發(fā)生模塊將數(shù)據(jù)讀入U(xiǎn)SB芯片的FIFO中;最后系統(tǒng)根據(jù)FIFO標(biāo)志位將數(shù)據(jù)上傳至PC機(jī)。整個(gè)存儲系統(tǒng)工作的流程圖如圖6所示。

3.3存儲速度優(yōu)化
    從存儲芯片的存儲機(jī)制出發(fā),優(yōu)化控制器軟件結(jié)構(gòu)可以達(dá)到提高系統(tǒng)存儲速度的目的[4]。單片NAND Flash將數(shù)據(jù)寫入的過程是:通過數(shù)據(jù)總線向存儲芯片發(fā)送寫數(shù)據(jù)命令80 h,緊接著寫目的頁地址,然后寫4 096 B數(shù)據(jù)(計(jì)算數(shù)據(jù)寫入所需要時(shí)間為Tdata-in),最后輸入結(jié)束命令10 h[2]。這一系列操作完成后Flash進(jìn)入忙碌狀態(tài),同時(shí)將4 KB數(shù)據(jù)從數(shù)據(jù)緩存區(qū)搬移到內(nèi)核,計(jì)算搬移所需要的時(shí)間為Tprog。則4 KB數(shù)據(jù)寫入的總時(shí)間如下:
 
由此可得到單片寫入速度為96 Mb/s。系統(tǒng)硬件結(jié)構(gòu)設(shè)計(jì)時(shí)將4片存儲器作為最小單元級聯(lián),采用該方式數(shù)據(jù)寫入速度可以提高到384 Mb/s。為進(jìn)一步提高速度,可將數(shù)據(jù)搬移時(shí)間Tprog充分利用起來??刂破鬈浖軐?shí)現(xiàn)對兩個(gè)不同的單元進(jìn)行乒乓操作,即在一個(gè)存儲單元進(jìn)入忙狀態(tài)時(shí),另一個(gè)存儲單元開始寫。這樣交替操作,寫入速度可達(dá)到768 Mb/s??刂破魍瑫r(shí)驅(qū)動(dòng)4個(gè)存儲器組并行工作,則其數(shù)據(jù)存儲速度可進(jìn)一步提升到3 072 Mb/s(即3 Gb/s)。
3.4  NAND Flash壞塊管理
    由于NAND Flash 在出廠和使用過程中都會出現(xiàn)壞塊 (無法或錯(cuò)誤地存儲數(shù)據(jù)),這將對所存儲數(shù)據(jù)的準(zhǔn)確性造成影響。為了準(zhǔn)確無失真地存儲數(shù)據(jù),必須對NAND Flash中隨機(jī)出現(xiàn)的壞塊進(jìn)行有效的處理。本設(shè)計(jì)采用一種自適應(yīng)(可變長度)狀態(tài)機(jī)方法,簡單有效地實(shí)現(xiàn)了壞塊的管理。系統(tǒng)上電運(yùn)行時(shí),將由主控制器掃描得到的所有壞塊地址值存入FPGA內(nèi)建立的RAM表中[5]。
    采取這樣的方式,可使片上RAM資源消耗降低[6]。在進(jìn)行數(shù)據(jù)寫操作時(shí)(地址線性增加),判斷壞塊地址與當(dāng)前寫地址之間的距離,通過內(nèi)部計(jì)數(shù)器操作可避開壞塊。壞塊管理狀態(tài)轉(zhuǎn)換圖如圖7所示。

    壞塊管理狀態(tài)機(jī)包括3個(gè)狀態(tài):Idle(空狀態(tài))、Get_timer(取壞塊距離狀態(tài))、Addr_change(塊地址改變狀態(tài))。其操作流程如下:(1)系統(tǒng)復(fù)位時(shí)狀態(tài)機(jī)進(jìn)入Idle狀態(tài),等待不執(zhí)行任何操作。(2)當(dāng)頁地址標(biāo)志位不為0時(shí)(寫操作開始),狀態(tài)機(jī)進(jìn)入Get_timer狀態(tài),此狀態(tài)下取下一個(gè)壞塊到當(dāng)前塊的距離,并賦給定時(shí)器timer,若timer為“0”繼續(xù)停留在該狀態(tài),同時(shí)連續(xù)壞塊地址自加;若timer不為“0”,則狀態(tài)跳轉(zhuǎn)到Addr_change。(3)在Addr_change狀態(tài)下,等待一個(gè)Block中所有頁寫完后,判斷timer是否為非“0”,若是塊地址自加,同時(shí)timer自減;反之輸出塊地址為原地址加上連續(xù)壞塊寄存器的值。
    該方法實(shí)現(xiàn)的壞塊管理程序,能有效避開隨機(jī)出現(xiàn)的壞塊,降低片上資源消耗,提高了工作效率,確保了雷達(dá)數(shù)據(jù)存儲的完整性與準(zhǔn)確性。
4 系統(tǒng)實(shí)驗(yàn)結(jié)果
    通過軟硬件協(xié)同設(shè)計(jì),最終實(shí)現(xiàn)了整個(gè)存儲控制系統(tǒng),包括板載32片F(xiàn)lash芯片(正面16片,背面16片)、主控FPGA芯片、USB控制芯片、SDRAM芯片、配置芯片等。
    將同一幀灰度圖像數(shù)據(jù)分別存儲在經(jīng)過壞塊管理的存儲器組1和未經(jīng)過壞塊管理的存儲器組2中,然后通過讀時(shí)序操作分別讀取數(shù)據(jù),在PC機(jī)上整合成一幀完整的圖像并做對比,其結(jié)果如圖8所示??梢娢唇?jīng)壞塊管理存儲的圖像數(shù)據(jù)出現(xiàn)失真,壞塊區(qū)域輸出成片“0”值,圖像出現(xiàn)帶狀白色噪聲點(diǎn),這些干擾噪聲會嚴(yán)重影響后續(xù)信號處理結(jié)果。

    經(jīng)過壞塊管理后讀出的數(shù)據(jù)形成如圖8(b)的圖像可以發(fā)現(xiàn),完全不存在圖8(a)所示現(xiàn)象,圖像中只有包含有真實(shí)目標(biāo)的匹配成像信息。說明經(jīng)過壞塊處理后數(shù)據(jù)被完整準(zhǔn)確地存儲起來,不會對后續(xù)的信號處理造成影響。
    本文介紹的系統(tǒng)作為子模塊已在SAR成像系統(tǒng)中成功應(yīng)用。實(shí)踐證明,本存儲回放系統(tǒng)能夠高效、穩(wěn)定、可靠地工作,而且數(shù)據(jù)存儲無失真。在后續(xù)工作中,可在Flash控制邏輯上采用雙線程操作(Two Plane)方式,能將數(shù)據(jù)寫入速度提高約1.6倍;也可驗(yàn)證控制器的通用性,在存儲板上搭載單片容量更大的存儲芯片,簡單修改配置參數(shù)就可將目前板載總?cè)萘繛?28 GB的存儲系統(tǒng)將其容量擴(kuò)至4 TB,使其適應(yīng)未來大容量存儲設(shè)備的發(fā)展趨勢。
參考文獻(xiàn)
[1] 黃偉,羅新民.基于FPGA的高速數(shù)據(jù)采集系統(tǒng)接口設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)設(shè)計(jì),2006(4):35-36
[2] Samsung.NAND flash assignment recommendation [EB/OL].www.sumsung.com.2008.
[3] 李鵬勃,張洪平.基于USB2.0的高數(shù)數(shù)據(jù)采集系統(tǒng)[J].電子技術(shù)應(yīng)用,2009,35(10):109-111.
[4] 邱華,黃少珉,張萌.提高Nand Flash性能的方法[J].計(jì)算機(jī)工程與應(yīng)用,2009,45(8):84-86.
[5] 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué),2003.
[6] 張勝勇,高世杰.基于FPGA的NAND Flash壞塊處理方法[J].計(jì)算機(jī)工程,2010(6):239-240.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。