NAND Flash 的接口是高度复用的,其所有的命令、地址和数据的传输都是通过 8 位 I/O 口实现。而芯片内部识别 IO 口信号数据的类别是根据控制信号 ALE、CLE 等来判定的。这样做的明显优势是减少了面积的消耗,还可以降低电磁干扰,并且少量的接口可以使得电路的变化更加清晰明了。NAND Flash 控制信号对应芯片的状态如表所示,通过不同的控制线来发送不同的时序,从而实现芯片对数据的读取和写入等操作。
状态 | E# | CLE | ALE | W# | R# | DQ | WP# |
待命 | H | / | / | / | / | / | 0V/VCCQ2 |
空闲 | L | / | / | H | H | / | / |
指令输入 | L | H | L | Rising | H | input | H |
地址输入 | L | L | H | Rising | H | input | H |
数据输入 | L | L | L | Rising | H | input | H |
数据输出 | L | L | L | H | Failing | output | / |
写保护 | / | / | / | / | / | / | L |
- E#端口为片选,用于控制芯片工作状态。当状态置高时,芯片处于 standby 状态,只有其处于低位时,芯片才正常工作。
- CLE 端口用于配合命令输入,当输入命令时其状态置高,当不输入命令时,CLE 端口拉低。
- ALE 端口用于配合地址输入,当输入地址时其状态置高,当不输入命令时,ALE 端口拉低。
- W#端口用于配合地址与命令输入,WE#产生一个上升沿时会输入一组DQ 上的数据,不使用时置高。
- R#端口用于配合数据的输出,RE#产生一个下降沿时会根据所处模式输出一组(异步)或两组(同步)数据。
- DQ 为 inout 端口,用作命令地址输入和数据输出通道,可被内部寄存器驱动输出数据,也可以被外部端口赋予特定电平来完成命令和地址的输入。
- WP#为写入保护端口,当其赋低电平或 VCCQ2 时,芯片无法进行写入等基本操作。