《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > SAR高速海量數(shù)據(jù)存儲(chǔ)與回放系統(tǒng)設(shè)計(jì)
SAR高速海量數(shù)據(jù)存儲(chǔ)與回放系統(tǒng)設(shè)計(jì)
來(lái)源:電子技術(shù)應(yīng)用2011年第3期
陶 君, 袁 著,, 張 可,, 張 偉
電子科技大學(xué) 電子科學(xué)技術(shù)研究院 ,四川 成都610054
摘要: 為了解決SAR匹配成像數(shù)據(jù)以及合成孔徑雷達(dá)中頻采樣后高速海量數(shù)據(jù)的存儲(chǔ)問(wèn)題,,介紹了一種基于FPGA控制的NAND Flash數(shù)據(jù)存儲(chǔ)及回放系統(tǒng)設(shè)計(jì)方案,。實(shí)驗(yàn)證明,該系統(tǒng)能以3 Gb/s碼流實(shí)時(shí)存儲(chǔ)數(shù)據(jù)具有強(qiáng)實(shí)時(shí)性,且性能穩(wěn)定,,有很好的工程使用價(jià)值,。
中圖分類(lèi)號(hào): TP211
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 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)對(duì)分辨率的要求不斷提高,其中頻采樣后回波信號(hào)的數(shù)據(jù)量與信號(hào)處理后的二維雷達(dá)圖像的數(shù)據(jù)量大大增加,。為了便于后續(xù)分析與處理,,通常會(huì)將這些海量回波數(shù)據(jù)以及雷達(dá)圖像數(shù)據(jù)進(jìn)行無(wú)失真數(shù)據(jù)存儲(chǔ)。這對(duì)數(shù)據(jù)存儲(chǔ)系統(tǒng)的設(shè)計(jì)提出了兩個(gè)方面的要求:(1)接口簡(jiǎn)單且有較高的數(shù)據(jù)存儲(chǔ)速率,;(2)由于所需存儲(chǔ)數(shù)據(jù)數(shù)量巨大,,要求存儲(chǔ)系統(tǒng)有足夠的容量。
    傳統(tǒng)的SDRAM存儲(chǔ)方案隨著存儲(chǔ)器容量的增加,,其復(fù)雜性和實(shí)現(xiàn)成本也迅速提高,,且在系統(tǒng)掉電后所存儲(chǔ)數(shù)據(jù)會(huì)丟失,不適合數(shù)據(jù)的回放分析及處理的應(yīng)用場(chǎng)合[1],。而采用基于Flash的存儲(chǔ)方案,,存儲(chǔ)容量大(單片容量可以達(dá)到32 GB),,不但數(shù)據(jù)存儲(chǔ)的效率較高(單片讀寫(xiě)速度可以達(dá)到160 Mb/s),而且其接口通用、設(shè)計(jì)簡(jiǎn)單,,方便頻繁讀寫(xiě)操作,,因此是大容量雷達(dá)數(shù)據(jù)實(shí)時(shí)存儲(chǔ)的優(yōu)選方案。
1 系統(tǒng)設(shè)計(jì)
1.1系統(tǒng)設(shè)計(jì)指標(biāo)

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

    (2) 存儲(chǔ)量分析
  由于系統(tǒng)采用非易失存儲(chǔ)介質(zhì),存儲(chǔ)量與系統(tǒng)開(kāi)機(jī)運(yùn)行時(shí)間相關(guān),。根據(jù)分析,設(shè)定存儲(chǔ)系統(tǒng)工作在最長(zhǎng)時(shí)間5 min時(shí),可估算規(guī)定時(shí)間內(nèi)系統(tǒng)需要存儲(chǔ)102.6 GB的中頻采樣數(shù)據(jù)和16.5 GB的圖像數(shù)據(jù),。這就要求設(shè)計(jì)系統(tǒng)板載總數(shù)據(jù)存儲(chǔ)容量大于118.1 GB。
1.2 系統(tǒng)結(jié)構(gòu)
  為了滿(mǎn)足設(shè)計(jì)技術(shù)指標(biāo)要求,,對(duì)構(gòu)成系統(tǒng)的主要器件選擇如下: (1)存儲(chǔ)系統(tǒng)主控器選取Altera 公司型號(hào)為EP2S90F780FPGA芯片,。(2)存儲(chǔ)芯片選取三星公司型號(hào)為K9LBG08U0M的NAND Flash。(3)選取Cypress Semiconductor公司的EZ-USB FX2作為數(shù)據(jù)回傳USB2.0的微處理控制器,。(4)選用美光公司型號(hào)為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ù)接口模塊對(duì)應(yīng)的信號(hào)。系統(tǒng)中運(yùn)用了兩片ML48LC8M16,,圖2是一片SDARM的接口,,另一片接口與之相同。兩片SDRAM乒乓緩存高速數(shù)據(jù),可以增加系統(tǒng)存儲(chǔ)的穩(wěn)定性和可靠性,。

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

    這樣將數(shù)據(jù)通道可擴(kuò)展至32 bit,有效地拓寬了數(shù)據(jù)存儲(chǔ)帶寬,,提高了數(shù)據(jù)吞吐量,。同時(shí),因采用了32片NAND Flash芯片,,板載存儲(chǔ)容量達(dá)到了128 GB,。
2.3 回傳模塊設(shè)計(jì)
    數(shù)據(jù)回傳通道通過(guò)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并沒(méi)有被激活,。因?yàn)橥獠窟壿嬁梢灾苯涌刂艶IFO,,所以FIFO的基本控制信號(hào)(標(biāo)志,、片選、使能)由EZ-USB FX2的引腳引出,,外部控制可以是同步或異步,。圖4為在Slave模式下USB芯片外圍電路以及與FPGA連接的原理圖。

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

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

3.2 系統(tǒng)工作流程
    系統(tǒng)工作流程如下:上電后,,由壞塊管理程序掃描所有存儲(chǔ)塊,,同時(shí)記錄壞塊地址值,并存入FPGA內(nèi)建立的RAM壞塊表中,;然后系統(tǒng)等待接收并解析USB控制命令,;若控制命令為數(shù)據(jù)存儲(chǔ),首先進(jìn)行寫(xiě)數(shù)據(jù)目標(biāo)塊擦除操作,,然后在壞塊管理程序監(jiān)管下,,由寫(xiě)時(shí)序發(fā)生模塊存儲(chǔ)SDRAM接口準(zhǔn)備好的數(shù)據(jù),數(shù)據(jù)存儲(chǔ)完畢后系統(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è)存儲(chǔ)系統(tǒng)工作的流程圖如圖6所示。

3.3存儲(chǔ)速度優(yōu)化
    從存儲(chǔ)芯片的存儲(chǔ)機(jī)制出發(fā),,優(yōu)化控制器軟件結(jié)構(gòu)可以達(dá)到提高系統(tǒng)存儲(chǔ)速度的目的[4],。單片NAND Flash將數(shù)據(jù)寫(xiě)入的過(guò)程是:通過(guò)數(shù)據(jù)總線(xiàn)向存儲(chǔ)芯片發(fā)送寫(xiě)數(shù)據(jù)命令80 h,緊接著寫(xiě)目的頁(yè)地址,然后寫(xiě)4 096 B數(shù)據(jù)(計(jì)算數(shù)據(jù)寫(xiě)入所需要時(shí)間為T(mén)data-in),,最后輸入結(jié)束命令10 h[2],。這一系列操作完成后Flash進(jìn)入忙碌狀態(tài),同時(shí)將4 KB數(shù)據(jù)從數(shù)據(jù)緩存區(qū)搬移到內(nèi)核,,計(jì)算搬移所需要的時(shí)間為T(mén)prog,。則4 KB數(shù)據(jù)寫(xiě)入的總時(shí)間如下:
 
由此可得到單片寫(xiě)入速度為96 Mb/s。系統(tǒng)硬件結(jié)構(gòu)設(shè)計(jì)時(shí)將4片存儲(chǔ)器作為最小單元級(jí)聯(lián),,采用該方式數(shù)據(jù)寫(xiě)入速度可以提高到384 Mb/s,。為進(jìn)一步提高速度,可將數(shù)據(jù)搬移時(shí)間Tprog充分利用起來(lái),??刂破鬈浖軐?shí)現(xiàn)對(duì)兩個(gè)不同的單元進(jìn)行乒乓操作,即在一個(gè)存儲(chǔ)單元進(jìn)入忙狀態(tài)時(shí),,另一個(gè)存儲(chǔ)單元開(kāi)始寫(xiě),。這樣交替操作,,寫(xiě)入速度可達(dá)到768 Mb/s,。控制器同時(shí)驅(qū)動(dòng)4個(gè)存儲(chǔ)器組并行工作,,則其數(shù)據(jù)存儲(chǔ)速度可進(jìn)一步提升到3 072 Mb/s(即3 Gb/s),。
3.4  NAND Flash壞塊管理
    由于NAND Flash 在出廠(chǎng)和使用過(guò)程中都會(huì)出現(xiàn)壞塊 (無(wú)法或錯(cuò)誤地存儲(chǔ)數(shù)據(jù)),這將對(duì)所存儲(chǔ)數(shù)據(jù)的準(zhǔn)確性造成影響,。為了準(zhǔn)確無(wú)失真地存儲(chǔ)數(shù)據(jù),,必須對(duì)NAND Flash中隨機(jī)出現(xiàn)的壞塊進(jìn)行有效的處理。本設(shè)計(jì)采用一種自適應(yīng)(可變長(zhǎng)度)狀態(tài)機(jī)方法,,簡(jiǎn)單有效地實(shí)現(xiàn)了壞塊的管理,。系統(tǒng)上電運(yùn)行時(shí),將由主控制器掃描得到的所有壞塊地址值存入FPGA內(nèi)建立的RAM表中[5],。
    采取這樣的方式,,可使片上RAM資源消耗降低[6]。在進(jìn)行數(shù)據(jù)寫(xiě)操作時(shí)(地址線(xiàn)性增加),,判斷壞塊地址與當(dāng)前寫(xiě)地址之間的距離,,通過(guò)內(nèi)部計(jì)數(shù)器操作可避開(kāi)壞塊。壞塊管理狀態(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)頁(yè)地址標(biāo)志位不為0時(shí)(寫(xiě)操作開(kāi)始),狀態(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)在A(yíng)ddr_change狀態(tài)下,,等待一個(gè)Block中所有頁(yè)寫(xiě)完后,判斷timer是否為非“0”,,若是塊地址自加,,同時(shí)timer自減;反之輸出塊地址為原地址加上連續(xù)壞塊寄存器的值,。
    該方法實(shí)現(xiàn)的壞塊管理程序,,能有效避開(kāi)隨機(jī)出現(xiàn)的壞塊,降低片上資源消耗,,提高了工作效率,,確保了雷達(dá)數(shù)據(jù)存儲(chǔ)的完整性與準(zhǔn)確性。
4 系統(tǒng)實(shí)驗(yàn)結(jié)果
    通過(guò)軟硬件協(xié)同設(shè)計(jì),,最終實(shí)現(xiàn)了整個(gè)存儲(chǔ)控制系統(tǒng),,包括板載32片F(xiàn)lash芯片(正面16片,背面16片),、主控FPGA芯片,、USB控制芯片、SDRAM芯片,、配置芯片等,。
    將同一幀灰度圖像數(shù)據(jù)分別存儲(chǔ)在經(jīng)過(guò)壞塊管理的存儲(chǔ)器組1和未經(jīng)過(guò)壞塊管理的存儲(chǔ)器組2中,然后通過(guò)讀時(shí)序操作分別讀取數(shù)據(jù),在PC機(jī)上整合成一幀完整的圖像并做對(duì)比,,其結(jié)果如圖8所示,。可見(jiàn)未經(jīng)壞塊管理存儲(chǔ)的圖像數(shù)據(jù)出現(xiàn)失真,,壞塊區(qū)域輸出成片“0”值,,圖像出現(xiàn)帶狀白色噪聲點(diǎn),這些干擾噪聲會(huì)嚴(yán)重影響后續(xù)信號(hào)處理結(jié)果,。

    經(jīng)過(guò)壞塊管理后讀出的數(shù)據(jù)形成如圖8(b)的圖像可以發(fā)現(xiàn),,完全不存在圖8(a)所示現(xiàn)象,圖像中只有包含有真實(shí)目標(biāo)的匹配成像信息,。說(shuō)明經(jīng)過(guò)壞塊處理后數(shù)據(jù)被完整準(zhǔn)確地存儲(chǔ)起來(lái),,不會(huì)對(duì)后續(xù)的信號(hào)處理造成影響,。
    本文介紹的系統(tǒng)作為子模塊已在SAR成像系統(tǒng)中成功應(yīng)用。實(shí)踐證明,本存儲(chǔ)回放系統(tǒng)能夠高效,、穩(wěn)定,、可靠地工作,而且數(shù)據(jù)存儲(chǔ)無(wú)失真,。在后續(xù)工作中,,可在Flash控制邏輯上采用雙線(xiàn)程操作(Two Plane)方式,能將數(shù)據(jù)寫(xiě)入速度提高約1.6倍,;也可驗(yàn)證控制器的通用性,,在存儲(chǔ)板上搭載單片容量更大的存儲(chǔ)芯片,簡(jiǎn)單修改配置參數(shù)就可將目前板載總?cè)萘繛?28 GB的存儲(chǔ)系統(tǒng)將其容量擴(kuò)至4 TB,,使其適應(yīng)未來(lái)大容量存儲(chǔ)設(shè)備的發(fā)展趨勢(shì),。
參考文獻(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)載,。