文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2011)03-0126-04
隨著合成孔徑雷達(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)為EP2S90F780 的FPGA芯片,。(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.