所有 NANDflash 操作开始时,都提供一个指令周期 ( 表 1) 。
当输出一串 WE# 时钟时,通过在 I/O 位 7 : 0 上设置指令、驱动 CE# 变低且 CLE 变高,就可以实现一个指令周期。注意:在 WE# 信号的上升沿上,指令、地址或数据被锁存到 NAND 器件之中。如表 1 所示,大多数指令在第二个指令周期之后要占用若干地址周期。注意:复位或读状态指令例外,如果器件忙,就不应该发送新的指令。
以 2Gb NAND 器件的寻址方案为例,第一和第二地址周期指定列地址,该列地址指定页内的起始字节 ( 表 2) 。
注意:因为最后一列的位置是 2112 ,该最后位置的地址就是 08h( 在第二字节中 ) 和 3Fh( 在第一字节中 ) 。 PA5:0 指定区块内的页地址, BA16: 6 指定区块的地址。虽然大多编程和读操作需要完整的 5 字节地址,在页内随机存取数据的操作仅仅用到第一和第二字节。块擦除操作仅仅需要三个最高字节 ( 第三、第四和第五字节 ) 来选择区块。
图 6 典型的存储方法
图 7 页读缓存模式
总体而言, NAND 的基本操作包括:复位 (Reset, FFh) 操作、读 ID(Read ID, 00h) 操作、读状态 (Read Status, 70h) 操作、编程 (Program) 操作、随机数据输入 (Random data input, 85h) 操作和读 (Read) 操作等。
将 NAND 连接到处理器
选择内置 NAND 接口的处理器或控制器的好处很多。如果没有这个选择,有可能在 NAND 和几乎任何处理器之间设计一个 “ 无粘接逻辑 (glueless)” 接口。 NAND 和 NOR 闪存的主要区别是复用地址和数据总线。该总线被用于指定指令、地址或数据。 CLE 信号指定指令周期,而 ALE 信号指定地址周期。利用这两个控制信号,有可能选择指令、地址或数据周期。把 ALE 连接到处理器的第五地址位,而把 CLE 连接到处理器的第四地址位,就能简单地通过改变处理器输出的地址,任意选择指令、地址或数据。这容许 CLE 和 ALE 在合适的时间自动设置为低。
为了提供指令,处理器在数据总线上输出想要的指令,并输出地址 0010h ;为了输出任意数量的地址周期,处理器仅仅要依次在处理器地址 0020h 之后输出想要的 NAND 地址。注意,许多处理器能在处理器的写信号周围指定若干时序参数,这对于建立合适的时序是至关重要的。利用该技术,你不必采用任何粘接逻辑,就可以直接从处理器存取指令、地址和数据。
1 2 3 4