1. 引言
NAND FLASH被廣泛應(yīng)用于電子系統(tǒng)中作為數(shù)據(jù)存儲,。在各種高端電子系統(tǒng)中現(xiàn)場可編程門陣列(FPGA)已被廣泛應(yīng)用。FPGA靈活的硬件邏輯能實現(xiàn)對NAND FLASH的讀寫操作,。本文中闡述了一種基于NIOS II 軟核的NAND FLASH的驅(qū)動方法,。
2. VDNF2T16VP193EE4V25簡介
歐比特公司的VDNF2T16VP193EE4V25是一款容量為2Tb,、位寬為16位的NAND FLASH,其內(nèi)部由8片基片拓?fù)涠?,其拓?fù)浣Y(jié)構(gòu)如下:
圖1 VD1D8G08VS66EE8T7B拓?fù)浣Y(jié)構(gòu)
其主要特性如下:
? 總?cè)萘?Tb;
? 位寬:16位;
? SLC;
? 兼容ONFI2.2;
? 封裝:PGA193;
? 電源:+3.3V(VCC),、+1.8V(VCCQ)。
3. VDNF2T16VP193EE4V25的控制器設(shè)計
大容量NAND FLASH控制器設(shè)計包括一個IP核設(shè)計,。其基于NIOS II 的AVALON總線,。AVALON總線能兼容大部分存儲器接口,,IP核將AVALON總線時序轉(zhuǎn)接至NAND FLASH,從而對NAND FLASH進行讀寫操作,。
IP邏輯主要有片選信號產(chǎn)生,、ALE、CLE,、RE,、WE等控制信號的轉(zhuǎn)接。其中RE,、WE信號可采用AVALON總線的RE,、WE信號;CLE、ALE采用總線地址的低2位進行控制;片選數(shù)量較多可依據(jù)AVALON總線的byteen信號進行譯碼產(chǎn)生,。
圖2 控制器功能框圖
//寫信號
assign nand_wr_n = {avalon_wr_n,avalon_wr_n,avalon_wr_n,avalon_wr_n};
//讀信號
assign nand_rd_n = {avalon_rd_n,avalon_rd_n,avalon_rd_n,avalon_rd_n};
//ALE信號,,采用地址0
assign nand_ale = {avalon_add[0],avalon_add[0]};
//CLE信號,采用地址1
assign nand_cle = {avalon_add[1],avalon_add[1]};
//片選信號
assign nand_cs_n[0] = temcs[0]|avalon_byteen_n[0];
assign nand_cs_n[1] = temcs[0]|avalon_byteen_n[1];
……
IP核設(shè)計完成后采用QSYS進行硬件平臺搭建,,QSYS系統(tǒng)軟核對外引出信號有EPCS,、UART、NAND FLASH接口,,在Quartus II建立原理圖塊進行編譯產(chǎn)生硬件信息,。
采用Nios II Software Build Tools for Eclipse 對QSYS進行軟件編程可實現(xiàn)對NAND FLASH的驅(qū)動。
//NAND FLASH數(shù)據(jù)寄存器地址定義
#define NandFlashDataReg0 (VDNF2T16_V1_0_BASE)
//NAND FLASH ALE寄存器地址定義
#define NandFlashAddReg0 (VDNF2T16_V1_0_BASE+4)
//NAND FLASH CLE寄存器地址定義
#define NandFlashCmdReg0 (VDNF2T16_V1_0_BASE+8)
……
以下為讀取ID及壞塊的信息:
******************************************************************
The cs=0 NAND_FLASH's ID is Right ,The ID is=0x2c881a7a9000
***********************************************************************
This cs=0 FLASH's Bank=0 have 5 BadBlocks:
The num=0 Bank LUN1's num=90 is BadBlock.
The num=0 Bank LUN1's num=91 is BadBlock.
The num=0 Bank LUN1's num=1738 is BadBlock.
The num=0 Bank LUN2's num=90 is BadBlock.
The num=0 Bank LUN2's num=91 is BadBlock.
The Number of Bank's Valid Block is Right.
……
4. 結(jié)論
本文闡述了一種通過FPGA實現(xiàn)對歐比特公司的大容量NAND FLASH芯片VDNF2T16VP193EE4V25的操作方法,。設(shè)計中采用ALTERA公司FPGA芯片,,利用自建IP搭建硬件平臺實現(xiàn)NAND FLASH的驅(qū)動。該設(shè)計也可移植到其他FPGA上,,可以很好地應(yīng)用在各嵌入式電子系統(tǒng)中,。
參考文獻:
[1] 珠海歐比特控制工程股份有限公司. VDNF2T16VP193EE4V25使用說明書[Z]. 2016.
[2] Nios II Software Developer’s Handbook[Z].2011.
[3] Embedded Peripherals IP User Guide [Z].2011.
[4] Avalon Interface Specifications [Z].2011.