SAR高速海量數(shù)據(jù)存儲與回放系統(tǒng)設(shè)計
隨著合成孔徑雷達(SAR)對分辨率的要求不斷提高,其中頻采樣后回波信號的數(shù)據(jù)量與信號處理后的二維雷達圖像的數(shù)據(jù)量大大增加。為了便于后續(xù)分析與處理,通常會將這些海量回波數(shù)據(jù)以及雷達圖像數(shù)據(jù)進行無失真數(shù)據(jù)存儲。這對數(shù)據(jù)存儲系統(tǒng)的設(shè)計提出了兩個方面的要求:(1)接口簡單且有較高的數(shù)據(jù)存儲速率;(2)由于所需存儲數(shù)據(jù)數(shù)量巨大,要求存儲系統(tǒng)有足夠的容量。
傳統(tǒng)的SDRAM存儲方案隨著存儲器容量的增加,其復(fù)雜性和實現(xiàn)成本也迅速提高,且在系統(tǒng)掉電后所存儲數(shù)據(jù)會丟失,不適合數(shù)據(jù)的回放分析及處理的應(yīng)用場合[1]。而采用基于Flash的存儲方案,存儲容量大(單片容量可以達到32 GB),不但數(shù)據(jù)存儲的效率較高(單片讀寫速度可以達到160 Mb/s),而且其接口通用、設(shè)計簡單,方便頻繁讀寫操作,因此是大容量雷達數(shù)據(jù)實時存儲的優(yōu)選方案。
1 系統(tǒng)設(shè)計
1.1系統(tǒng)設(shè)計指標
本系統(tǒng)是SAR雷達信號處理系統(tǒng)中的子系統(tǒng),主要實現(xiàn)對中頻采樣數(shù)據(jù)和合成孔徑雷達匹配景象數(shù)據(jù)進行存儲與回放。根據(jù)應(yīng)用需求分析,設(shè)計的系統(tǒng)應(yīng)具有數(shù)據(jù)存儲和數(shù)據(jù)回傳(上傳至PC機)兩項基本功能,其中以數(shù)據(jù)存儲為核心功能。在數(shù)據(jù)存儲過程中,最關(guān)鍵的兩個指標分別是數(shù)據(jù)存儲速率和數(shù)據(jù)存儲量。這兩項指標直接影響系統(tǒng)設(shè)計的優(yōu)劣。根據(jù)表1列出的SAR工作典型參數(shù),就上述兩個指標進行分析。
(1) 存儲速率分析
由表1可知,經(jīng)過信號處理后的一幀圖像為4 096×4 096像素。極限情況下,每秒鐘信號處理模塊會送出3.5幀匹配景象數(shù)據(jù),則圖像存儲的速率必須大于448 Mb/s。存儲中頻采樣數(shù)據(jù)時,根據(jù)上述采樣率以及A/D的采樣位寬,可估算每秒采集到的正交兩路中頻雷達信號數(shù)據(jù)量為350 MB,即中頻采樣數(shù)據(jù)的存儲速率要求高于2.8 Gb/s。
(2) 存儲量分析
由于系統(tǒng)采用非易失存儲介質(zhì),存儲量與系統(tǒng)開機運行時間相關(guān)。根據(jù)分析,設(shè)定存儲系統(tǒng)工作在最長時間5 min時,可估算規(guī)定時間內(nèi)系統(tǒng)需要存儲102.6 GB的中頻采樣數(shù)據(jù)和16.5 GB的圖像數(shù)據(jù)。這就要求設(shè)計系統(tǒng)板載總數(shù)據(jù)存儲容量大于118.1 GB。
1.2 系統(tǒng)結(jié)構(gòu)
為了滿足設(shè)計技術(shù)指標要求,對構(gòu)成系統(tǒng)的主要器件選擇如下: (1)存儲系統(tǒng)主控器選取Altera 公司型號為EP2S90F780 的FPGA芯片。(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è)計
2.1 SDRAM接口設(shè)計
SDRAM與FPGA的連接示意圖如圖2所示。左邊是SDRAM芯片ML48LC8M16的引腳,右邊是FPGA中SDRAM數(shù)據(jù)接口模塊對應(yīng)的信號。系統(tǒng)中運用了兩片ML48LC8M16,圖2是一片SDARM的接口,另一片接口與之相同。兩片SDRAM乒乓緩存高速數(shù)據(jù),可以增加系統(tǒng)存儲的穩(wěn)定性和可靠性。
2.2 NAND Flash存儲模塊設(shè)計
系統(tǒng)數(shù)據(jù)存儲基本單元由型號為K9LBG08U0M的NAND Flash芯片組成,K9LBG08U0M是一款低功耗、高效率的NAND Flash存儲芯片。其內(nèi)部采用典型“塊-頁”組織結(jié)構(gòu)方式,片內(nèi)總共分為8 192塊,每塊包括128頁,每頁可存儲4 KB,總存儲空間達到4 GB[2]。其典型編程和擦除時間分別為0.8 ms、1.5 ms,存儲速度較快,存儲容量適中,適合SAR海量數(shù)據(jù)存儲的應(yīng)用場合。系統(tǒng)以FPGA為主控制器,并行控制4個NAND Flash存儲器工作組,其接口電路原理圖如圖3所示。每個存儲器組分別由8片K9LBG08U0M芯片組成。每組中又以4片為一個最小存儲單位。每個最小存儲單位中,將地址鎖存信號ALE、命令鎖存信號CLE等控制信號線通過并接的方式連接到一起,各片數(shù)據(jù)地址復(fù)用線IO0~IO7獨立連接至FPGA的通用I/O中。
這樣將數(shù)據(jù)通道可擴展至32 bit,有效地拓寬了數(shù)據(jù)存儲帶寬,提高了數(shù)據(jù)吞吐量。同時,因采用了32片NAND Flash芯片,板載存儲容量達到了128 GB。
2.3 回傳模塊設(shè)計
數(shù)據(jù)回傳通道通過EZ USB 68013與PC連接,集成了USB2.0收發(fā)器、串行接口引擎(SIE)、增強型8051微控制器和可編程的外圍接口。設(shè)計中采用USB 68013的GPIF接口,并運用8 bit的傳輸方式。EZ-USB FX2可配置成Ports、GPIF Master(主)和Slave FIFO(從)三種不同的接口模式,在設(shè)計中使用Slave FIFO模式[3]。在該模式下,外部邏輯直接連接到FX2的端點FIFO,GPIF并沒有被激活。因為外部邏輯可以直接控制FIFO,所以FIFO的基本控制信號(標志、片選、使能)由EZ-USB FX2的引腳引出,外部控制可以是同步或異步。圖4為在Slave模式下USB芯片外圍電路以及與FPGA連接的原理圖。
3 存儲系統(tǒng)軟件設(shè)計
3.1控制器軟件模塊
數(shù)據(jù)傳輸與存儲控制電路的開發(fā)工作主要集中在FPGA上。根據(jù)上述分析與介紹,結(jié)合NAND Flash以及USB 68013芯片的操作特點,考慮控制器的通用性與系統(tǒng)的可擴展性,存儲系統(tǒng)軟件設(shè)計如圖5所示。其中包括USB操作命令解析模塊、寫時序發(fā)生模塊、壞塊管理模塊、數(shù)據(jù)上傳控制模塊、塊擦除時序發(fā)生器模塊、讀時序發(fā)生器模塊等。
圖5中,虛線框標定的軟件模塊均運用硬件描述語言編寫,在Quarters II編譯環(huán)境下編譯、綜合并得到了實現(xiàn)。
3.2 系統(tǒng)工作流程
系統(tǒng)工作流程如下:上電后,由壞塊管理程序掃描所有存儲塊,同時記錄壞塊地址值,并存入FPGA內(nèi)建立的RAM壞塊表中;然后系統(tǒng)等待接收并解析USB控制命令;若控制命令為數(shù)據(jù)存儲,首先進行寫數(shù)據(jù)目標塊擦除操作,然后在壞塊管理程序監(jiān)管下,由寫時序發(fā)生模塊存儲SDRAM接口準備好的數(shù)據(jù),數(shù)據(jù)存儲完畢后系統(tǒng)進入待命狀態(tài)。若控制命令為數(shù)據(jù)讀取,首先從USB控制命令中解析出目標數(shù)據(jù)地址,之后由讀取時序發(fā)生模塊將數(shù)據(jù)讀入USB芯片的FIFO中;最后系統(tǒng)根據(jù)FIFO標志位將數(shù)據(jù)上傳至PC機。整個存儲系統(tǒng)工作的流程圖如圖6所示。
3.3存儲速度優(yōu)化
從存儲芯片的存儲機制出發(fā),優(yōu)化控制器軟件結(jié)構(gòu)可以達到提高系統(tǒng)存儲速度的目的[4]。單片NAND Flash將數(shù)據(jù)寫入的過程是:通過數(shù)據(jù)總線向存儲芯片發(fā)送寫數(shù)據(jù)命令80 h,緊接著寫目的頁地址,然后寫4 096 B數(shù)據(jù)(計算數(shù)據(jù)寫入所需要時間為Tdata-in),最后輸入結(jié)束命令10 h[2]。這一系列操作完成后Flash進入忙碌狀態(tài),同時將4 KB數(shù)據(jù)從數(shù)據(jù)緩存區(qū)搬移到內(nèi)核,計算搬移所需要的時間為Tprog。則4 KB數(shù)據(jù)寫入的總時間如下:
由此可得到單片寫入速度為96 Mb/s。系統(tǒng)硬件結(jié)構(gòu)設(shè)計時將4片存儲器作為最小單元級聯(lián),采用該方式數(shù)據(jù)寫入速度可以提高到384 Mb/s。為進一步提高速度,可將數(shù)據(jù)搬移時間Tprog充分利用起來??刂破鬈浖軐崿F(xiàn)對兩個不同的單元進行乒乓操作,即在一個存儲單元進入忙狀態(tài)時,另一個存儲單元開始寫。這樣交替操作,寫入速度可達到768 Mb/s??刂破魍瑫r驅(qū)動4個存儲器組并行工作,則其數(shù)據(jù)存儲速度可進一步提升到3 072 Mb/s(即3 Gb/s)。
3.4 NAND Flash壞塊管理
由于NAND Flash 在出廠和使用過程中都會出現(xiàn)壞塊 (無法或錯誤地存儲數(shù)據(jù)),這將對所存儲數(shù)據(jù)的準確性造成影響。為了準確無失真地存儲數(shù)據(jù),必須對NAND Flash中隨機出現(xiàn)的壞塊進行有效的處理。本設(shè)計采用一種自適應(yīng)(可變長度)狀態(tài)機方法,簡單有效地實現(xiàn)了壞塊的管理。系統(tǒng)上電運行時,將由主控制器掃描得到的所有壞塊地址值存入FPGA內(nèi)建立的RAM表中[5]。
采取這樣的方式,可使片上RAM資源消耗降低[6]。在進行數(shù)據(jù)寫操作時(地址線性增加),判斷壞塊地址與當前寫地址之間的距離,通過內(nèi)部計數(shù)器操作可避開壞塊。壞塊管理狀態(tài)轉(zhuǎn)換圖如圖7所示。
壞塊管理狀態(tài)機包括3個狀態(tài):Idle(空狀態(tài))、Get_timer(取壞塊距離狀態(tài))、Addr_change(塊地址改變狀態(tài))。其操作流程如下:(1)系統(tǒng)復(fù)位時狀態(tài)機進入Idle狀態(tài),等待不執(zhí)行任何操作。(2)當頁地址標志位不為0時(寫操作開始),狀態(tài)機進入Get_timer狀態(tài),此狀態(tài)下取下一個壞塊到當前塊的距離,并賦給定時器timer,若timer為“0”繼續(xù)停留在該狀態(tài),同時連續(xù)壞塊地址自加;若timer不為“0”,則狀態(tài)跳轉(zhuǎn)到Addr_change。(3)在Addr_change狀態(tài)下,等待一個Block中所有頁寫完后,判斷timer是否為非“0”,若是塊地址自加,同時timer自減;反之輸出塊地址為原地址加上連續(xù)壞塊寄存器的值。
該方法實現(xiàn)的壞塊管理程序,能有效避開隨機出現(xiàn)的壞塊,降低片上資源消耗,提高了工作效率,確保了雷達數(shù)據(jù)存儲的完整性與準確性。
4 系統(tǒng)實驗結(jié)果
通過軟硬件協(xié)同設(shè)計,最終實現(xiàn)了整個存儲控制系統(tǒng),包括板載32片F(xiàn)lash芯片(正面16片,背面16片)、主控FPGA芯片、USB控制芯片、SDRAM芯片、配置芯片等。
將同一幀灰度圖像數(shù)據(jù)分別存儲在經(jīng)過壞塊管理的存儲器組1和未經(jīng)過壞塊管理的存儲器組2中,然后通過讀時序操作分別讀取數(shù)據(jù),在PC機上整合成一幀完整的圖像并做對比,其結(jié)果如圖8所示。可見未經(jīng)壞塊管理存儲的圖像數(shù)據(jù)出現(xiàn)失真,壞塊區(qū)域輸出成片“0”值,圖像出現(xiàn)帶狀白色噪聲點,這些干擾噪聲會嚴重影響后續(xù)信號處理結(jié)果。
經(jīng)過壞塊管理后讀出的數(shù)據(jù)形成如圖8(b)的圖像可以發(fā)現(xiàn),完全不存在圖8(a)所示現(xiàn)象,圖像中只有包含有真實目標的匹配成像信息。說明經(jīng)過壞塊處理后數(shù)據(jù)被完整準確地存儲起來,不會對后續(xù)的信號處理造成影響。
本文介紹的系統(tǒng)作為子模塊已在SAR成像系統(tǒng)中成功應(yīng)用。實踐證明,本存儲回放系統(tǒng)能夠高效、穩(wěn)定、可靠地工作,而且數(shù)據(jù)存儲無失真。在后續(xù)工作中,可在Flash控制邏輯上采用雙線程操作(Two Plane)方式,能將數(shù)據(jù)寫入速度提高約1.6倍;也可驗證控制器的通用性,在存儲板上搭載單片容量更大的存儲芯片,簡單修改配置參數(shù)就可將目前板載總?cè)萘繛?28 GB的存儲系統(tǒng)將其容量擴至4 TB,使其適應(yīng)未來大容量存儲設(shè)備的發(fā)展趨勢。
評論