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