2 NAND FLASH操作
NAND FLASH器件的管脚分为控制信号、I/O二类,地址和数据是复用I/O管脚。通常NAND FLASH器件包括一定数目BLOCK,每个BLOCK包括一定数目的PAGE,每个NAND FLASH器件把BLOCK,PAGE按照行列地址进行寻址,基于这种特殊的结构。
2.1 READ ID
NAND FLASH器件ID包括:Manufacture ID,device ID以及容量大小,这些重要的信息是判断NAND FLASH的重要凭证,因此将这些信息读出来加以判断就显得特别重要。在CLE为高,WE#上升沿,在I/O输入90H命令让NAND FLASH进入读ID状态,接着在ALE为高,WE#上升沿,在I/O输入00H地址,在等待tWHR将RE#置为读,在RE#连续4个上升沿将ID读出。仿真图如图2所示。
2.2 判断坏块
AND FLASH作为一种特殊的储存器件,内部集成电路使得BLOCK与BLOCK是相互独立的,因此一定数目坏块的存在不会影响其他BLOCK。但坏块总数是有一定的限制的,超过一定的数目后器件将认为不能再使用。在出厂前厂家会在器件的每个BLOCK的页和第二页的列地址为2048标注上坏的信息,FFh代表此BLOCK是好,非FFh代表此BLOCK是坏。但是这些重要信息在执行Erase和Programming命令的时候会被擦除掉,因此,我们在做这些操作之前应该将坏块识别出来如图3所示,并加以标注或者用好的块来代替,以方便以后的访问。随着使用时间的推移,坏块的数目还会增加,因此我们必须随时更新坏块链表。坏块识别时序仿真图如图4所示。
3擦除操作
一般芯片进行PROGRAM/ERASE的次数是100 000 cycles,个BLOCK次数更多,一般可用于存放boot code或者重要的信息。由于擦除操作是以BLOCK为基准,也就是每执行擦除操作将会擦除指定的BLOCK,所以在执行擦除时必须注意共享区域里的重要信息如坏块标识、ECC校验等。以免被擦除掉,擦除掉了及时恢复,擦除操作仿真如图5所示。
4编程操作及其他操作
编程操作和擦除操作相似,只不过编程操作是以页为单位,在执行编程操作时同样也要注意共享区域里的重要信息以免被覆盖掉,重要信息被覆盖后要及时恢复。其他操作如复位还有有些芯片厂家各自新的操作等,但总体来说主流芯片都支持以上几种操作。
5 结 语
在实际应用中,使用ALTERA公司的Cyclone2 FP-GA器件进行设计,设计输入采用VHDL来完成,实现了上述的NAND FLASH控制器接口电路。此外,由于采用了通用性设计思想,可以对不同厂家不同的芯片进行控制和操作,具有一定的通用性
[1]. Programming datasheet https://www.dzsc.com/datasheet/Programming_1196942.html.
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。