基于NAND Flash的數(shù)據(jù)存儲系統(tǒng)設(shè)計
由以上分析可以看出,Flash存儲數(shù)據(jù)的過程由寫地址命令、數(shù)據(jù)傳輸以及Flash編程階段組成。為提高系統(tǒng)整體的存儲速度,減少系統(tǒng)等待時間,根據(jù)NAND Flash存儲器的特點,借鑒時分多路復(fù)用技術(shù),設(shè)計了Flash存儲陣列,即利用上一片F(xiàn)lash的編程時間對下一片F(xiàn)lash
進行操作,將數(shù)據(jù)加載到該片數(shù)據(jù)寄存器中,以此類推實現(xiàn)四級的流水線。這樣整個系統(tǒng)每個時刻都能對Flash加載數(shù)據(jù),保證了數(shù)據(jù)存儲的連續(xù)性。
時分多路復(fù)用(Time Division Multiplexing,TDM)是按傳輸信號的時間進行分割的,它使不同的信號在不同的時間內(nèi)傳送,將整個傳輸時間分為許多時間間隔,每個時間片被一路信號占用,這樣既可以保證各傳輸信號的相互獨立,又提高了系統(tǒng)的傳輸效率。借鑒該原理,可以將Flash的編程時間看成一個固定的時間段,將這個時間段分成4個時間片,在這4個時間片上分別對Flash陣列的一個模塊中的4個Flash加載數(shù)據(jù),輸入存儲系統(tǒng)的高速數(shù)據(jù)流看作是以傳輸一組數(shù)據(jù)所需時間的一個時間片。
具體的操作如下:首先加載數(shù)據(jù)到第1片F(xiàn)lash存儲器中,該Flash進入編程狀態(tài);在第1片F(xiàn)lash的編程時段內(nèi),對第2片F(xiàn)lash進行數(shù)據(jù)加載操作;當(dāng)?shù)?片進入編程狀態(tài)時,再對第3片進行數(shù)據(jù)加載操作;依次執(zhí)行下去,待一次整體操作完成后4片F(xiàn)lash都已加載完數(shù)據(jù)。此時,第1片F(xiàn)lash的編程已經(jīng)完成,處于準備就緒狀態(tài),可以寫入新的數(shù)據(jù),由此可以等效為Flash存儲器的編程時間為0。這樣就可以實現(xiàn)Flash陣列的連續(xù)傳輸數(shù)據(jù),提高系統(tǒng)的整體速度。
多片F(xiàn)lash時分多路復(fù)用式數(shù)據(jù)存儲原理如圖3所示。本文引用地址:http://2s4d.com/article/149111.htm
3 系統(tǒng)硬件實現(xiàn)
系統(tǒng)采用了Xilinx公司的FPGA進行SOPC開發(fā),處理器選用了MicroBlaze軟核,并配置相應(yīng)的參數(shù)使標準IP核適應(yīng)用戶所設(shè)計的系統(tǒng),結(jié)合外圍電源電路、USB接口電路、程序配置電路,構(gòu)成了一套穩(wěn)定的數(shù)據(jù)存儲系統(tǒng)。
3.1 FPGA片上系統(tǒng)的實現(xiàn)
FPGA程序主要的功能是:軟件控制啟動存儲,在控制邏輯的作用下將前端A/D轉(zhuǎn)換之后的數(shù)據(jù)先存入內(nèi)部FIFO緩存中,同時啟動DMA將緩存中的數(shù)據(jù)存儲到外部NAND Flash存儲陣列中。本文利用VHDL語言編寫程序,在FPGA芯片上實現(xiàn)了數(shù)據(jù)的高速存儲和傳輸控制。
3.2 USB接口電路模塊
USB器件主要用于實現(xiàn)SOPC系統(tǒng)在聯(lián)機模式下與主機通信以及數(shù)據(jù)的傳輸。USB芯片使用由FTDI公司推出的FT245R,該接口能夠?qū)SB接口信號轉(zhuǎn)換為8位并行信號,上傳至?xí)r鐘頻率為150 MHz的MicroBlaze處理器進行分析處理;并將處理器發(fā)送的數(shù)據(jù)轉(zhuǎn)換成標準的USB接口數(shù)據(jù)傳向PC機,完成SOPC系統(tǒng)與PC機之間的通信。USB接口電路如圖4所示。
評論