占連樣,王烈洋,陳像,張水蘋(píng),黃小虎 摘要:VDNF2T16VP193EE4V25是珠海歐比特公司自主研發(fā)的一款大容量(2Tb)NAND FLASH,文中介紹了該芯片的結(jié)構(gòu)和原理,并針對(duì)基于FPGA的應(yīng)用進(jìn)行了說(shuō)明。 關(guān)鍵詞:NAND FLASH,F(xiàn)PGA,NIOS II 1. 引言 NAND FLASH被廣泛應(yīng)用于電子系統(tǒng)中作為數(shù)據(jù)存儲(chǔ)。在各種高端電子系統(tǒng)中現(xiàn)場(chǎng)可編程門陣列(FPGA)已被廣泛應(yīng)用。FPGA靈活的硬件邏輯能實(shí)現(xiàn)對(duì)NAND FLASH的讀寫(xiě)操作。本文中闡述了一種基于NIOS II 軟核的NAND FLASH的驅(qū)動(dòng)方法。 2. VDNF2T16VP193EE4V25簡(jiǎn)介 歐比特公司的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è)計(jì) 大容量NAND FLASH控制器設(shè)計(jì)包括一個(gè)IP核設(shè)計(jì)。其基于NIOS II 的AVALON總線。AVALON總線能兼容大部分存儲(chǔ)器接口,IP核將AVALON總線時(shí)序轉(zhuǎn)接至NAND FLASH,從而對(duì)NAND FLASH進(jìn)行讀寫(xiě)操作。 IP邏輯主要有片選信號(hào)產(chǎn)生、ALE、CLE、RE、WE等控制信號(hào)的轉(zhuǎn)接。其中RE、WE信號(hào)可采用AVALON總線的RE、WE信號(hào);CLE、ALE采用總線地址的低2位進(jìn)行控制;片選數(shù)量較多可依據(jù)AVALON總線的byteen信號(hào)進(jìn)行譯碼產(chǎn)生。 ![]() 圖2 控制器功能框圖 //寫(xiě)信號(hào) assign nand_wr_n = {avalon_wr_n,avalon_wr_n,avalon_wr_n,avalon_wr_n}; //讀信號(hào) assign nand_rd_n = {avalon_rd_n,avalon_rd_n,avalon_rd_n,avalon_rd_n}; //ALE信號(hào),采用地址0 assign nand_ale = {avalon_add[0],avalon_add[0]}; //CLE信號(hào),采用地址1 assign nand_cle = {avalon_add[1],avalon_add[1]}; //片選信號(hào) assign nand_cs_n[0] = temcs[0]|avalon_byteen_n[0]; assign nand_cs_n[1] = temcs[0]|avalon_byteen_n[1]; …… IP核設(shè)計(jì)完成后采用QSYS進(jìn)行硬件平臺(tái)搭建,QSYS系統(tǒng)軟核對(duì)外引出信號(hào)有EPCS、UART、NAND FLASH接口,在Quartus II建立原理圖塊進(jìn)行編譯產(chǎn)生硬件信息。 ![]() 采用Nios II Software Build Tools for Eclipse 對(duì)QSYS進(jìn)行軟件編程可實(shí)現(xiàn)對(duì)NAND FLASH的驅(qū)動(dòng)。 //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é)論 本文闡述了一種通過(guò)FPGA實(shí)現(xiàn)對(duì)歐比特公司的大容量NAND FLASH芯片VDNF2T16VP193EE4V25的操作方法。設(shè)計(jì)中采用ALTERA公司FPGA芯片,利用自建IP搭建硬件平臺(tái)實(shí)現(xiàn)NAND FLASH的驅(qū)動(dòng)。該設(shè)計(jì)也可移植到其他FPGA上,可以很好地應(yīng)用在各嵌入式電子系統(tǒng)中。 參考文獻(xiàn): [1] 珠海歐比特控制工程股份有限公司. VDNF2T16VP193EE4V25使用說(shuō)明書(shū)[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. |