基于NAND Flash的數(shù)據(jù)存儲系統(tǒng)設(shè)計
引言
傳統(tǒng)的存儲設(shè)備雖然具有價格低廉的優(yōu)勢,但是在高溫、高速、高沖擊的測試環(huán)境中,往往存在設(shè)備存放空間有限、測試參數(shù)較多、采集速率高、環(huán)境復(fù)雜等因素。為了得到準(zhǔn)確的測試數(shù)據(jù),對存儲設(shè)備的性能也提出了較高的要求,如高存儲速度、大存儲容量、小巧輕便、抗沖擊等。此時傳統(tǒng)的存儲設(shè)備便無法完成復(fù)雜環(huán)境測試數(shù)據(jù)的存儲任務(wù)。為解決這個問題,本文設(shè)計了基于NAND Flash的數(shù)據(jù)存儲系統(tǒng),該系統(tǒng)采用Xilinx公司提出的靈活、高效、低成本的解決方案SOPC,把通用的RISC處理器MicroBlaze與用戶設(shè)計的特定功能邏輯電路集成到FPGA上,在FPGA的控制下將數(shù)據(jù)存儲到NAND Flash存儲設(shè)備中,實現(xiàn)了一個基于SOPC方案的嵌入式數(shù)據(jù)存儲系統(tǒng)。
NAND Flash存儲設(shè)備是Flash內(nèi)存的一種,其內(nèi)部采用非線性宏單元模式,為固態(tài)大容量內(nèi)存的實現(xiàn)提供了廉價有效的解決方案。NAND Flash存儲器具有體積小、功耗低、讀寫速度快等優(yōu)點,適用于大量數(shù)據(jù)的存儲,被廣泛應(yīng)用到數(shù)碼相機(jī)、MP3、U盤等嵌入式產(chǎn)品中。
1 系統(tǒng)整體設(shè)計方案
基于NAND Flash的數(shù)據(jù)存儲系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
本文采用Samsung公司的NAND Flash芯片K9F4GOSUOA作為主要存儲器件,控制器件使用Atmel公司的ATmega162和Xilinx公司Spartan-3E系列的XC3S500E,結(jié)合對NAND Flash的讀、寫、擦除等操作進(jìn)行時序配置。A/D轉(zhuǎn)換芯片使用Maxim公司的MAX1308。另外,為實現(xiàn)通過USB總線將數(shù)據(jù)從采集設(shè)備傳送至PC,采用FTDI公司的FT245R芯片作為USB2.0接口控制器;并以LabVIEW為平臺設(shè)計開發(fā)了專用“多通道數(shù)據(jù)分析軟件”,用于對存儲系統(tǒng)中數(shù)據(jù)后期的分析與處理。
2 NAND Flash陣列式存儲原理
Flash存儲器編程是以頁為單位,單片NAND Flash的單頁編程操作時,命令鎖存信號CLE向端口寫入編程操作命令,地址鎖存信號ALE寫入操作塊地址,并傳輸2 KB數(shù)據(jù)到數(shù)據(jù)寄存器后,F(xiàn)lash進(jìn)入編程階段。此時其端口R/B信號被拉低,顯示Flash正處于忙工作狀態(tài),直到編程結(jié)束,這段時間系統(tǒng)不能對該Flash再進(jìn)行任何操作,一般該階段典型的時間為200μs。如果使用單片F(xiàn)lash存儲器進(jìn)行存儲,則需等待編程結(jié)束后才能再寫入數(shù)據(jù)。這樣大量的時間耗費在編程過程中,極大限制了系統(tǒng)存儲速度的提高。
為提高系統(tǒng)的存儲容量和存儲速度,系統(tǒng)使用8片NAND Flash存儲器,每4片為一組構(gòu)成一個總線寬度為8位的存儲陣列??刂菩盘栔谐O(shè)置獨立的片選信號CE外,其他的控制信號為8片共用;兩組Flash共用數(shù)據(jù)總線,存儲數(shù)據(jù)時先對第一組Flash進(jìn)行存儲操作,待第一組存儲完畢后再對第二組進(jìn)行數(shù)據(jù)存儲操作。Flash陣列式存儲結(jié)構(gòu)圖如圖2所示。
評論