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