背景技术
NOR和Nand是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NORFlash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了Nand Flash结构,强调降低每比特的成本,更高的性能,并且像硬盘一样通过接口可以轻松升级。NOR的特点是芯片内执行(XIP,eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必把代码读到系统RAM中。NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是写入和擦除的速度大大影响了它的性能。Nand结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。
目前,随着科技的高速发展,信息量越来越大,小容量的NOR FLASH已经不能满足大量数据存储的需要,鉴于Nand大容量、低成本、高擦写速度等优点,Nand Flash已成为存储器扩展的首选。
现在使用Nand Flash扩展存储器的电路多是利用处理器除了片选信号CS0外的其他片选信号CSn与Nand Flash的片选控制引脚CE相连接,作为Nand Flash的控制信号。这种连接方式需要处理器有足够多的片选信号供扩展设备使用。当处理器片选信号CS的个数很少,甚至只有一个片选信号CS0时,就会使得外围设备的扩展受到很大的限制,甚至无法增加扩展设备。
发明内容
本实用新型的目的就是为了解决目前处理器片选信号个数有限时,Nand Flash扩展存储器受限的问题,尤其是当处理器只有一个片选信号CS0时,提供一种具有结构简单,读写速度快,低成本高效率等优点的基于FLASH总线的Nand Flash控制电路。
为实现上述目的,本实用新型采用如下技术方案:
一种基于FLASH总线的Nand Flash控制电路,它包括处理器,处理器与存储器连接,同时处理器通过FLASH总线与Nand Flash控制电路和NOR FLASH电路连接,处理器的CS0端为NOR FLASH电路的片选信号端并与之连接,Nand Flash控制电路的片选引脚CE、地址锁存引脚ALE、命令锁存引脚CLE和写保护引脚WP分别连接到处理器的GPIO引脚。
所述Nand Flash控制电路的写允许引脚WE和读允许引脚RE分别连接到处理器的写允许WE和处理器的输出允许OE上,Nand Flash控制电路的8条数据输入/输出引脚I/O0-I/O7和FLASH总线的DAT0-DAT7对应相连。
本实用新型提供了一种基于FLASH总线的高效率低成本Nand Flash控制电路及读写方法。其结构为:它包括处理器,处理器与存储器连接,同时处理器通过FLASH总线与Nand Flash控制电路和NOR FLASH电路连接,处理器的CS0端为NOR FLASH的片选信号端并与之连接,Nand Flash的CE、ALE、CLE、WP等控制引脚分别和处理器的GPIO端口相连接。下面结合附图说明一下本实用新型的实施过程。
具体实施方式
下面结合附图与实施例对本实用新型做进一步说明。
图1中,包括处理器2,处理器2和存储器1相连接,处理器2通过FLASH总线3和NORFLASH电路4相连接,同时处理器通过FLASH总线3中的DAT0-DAT7和Nand Flash控制电路5的I/O0-I/O7对应连接,处理器的CS0和NOR FLASH电路4的片选信号端相连接,Nand Flash控制电路5的CE、ALE、CLE和WP等控制引脚分别和处理器的GPIO端口相连接。下面说明中,假定和Nand Flash控制电路5的CE、ALE、CLE和WP等控制引脚相连接的GPIO端口分别为GPIO_CE、GPIO_ALE、GPIO_CLE、GPIO_WP。
图2中,根据图1中的硬件连接方式,从Nand Flash控制电路5特定地址读取数据的操作过程为:
a)处理器等待表示FLASH总线3空闲的互斥信号量。当互斥信号量非空闲时,表示FLASH总线3被占用,继续等待,直到信号量空闲;当互斥信号量空闲时,表示FLASH总线3空闲,置低和Nand Flash控制电路5片选引脚CE相连接的GPIO端口GPIO_CE,选通Nand Flash控制电路5;
b)置高和Nand Flash控制电路5命令锁存引脚CLE相连接的GPIO端口GPIO_CLE,置低和Nand Flash控制电路5地址锁存引脚ALE相连接的GPIO端口GPIO_ALE,通过Nand Flash控制电路5和FLASH总线3DAT0-DAT7相连接的I/O0-I/O7引脚将读操作命令数据发送到NandFlash控制电路5中;
c)置高和Nand Flash控制电路5地址锁存引脚ALE相连接的GPIO端口GPIO_ALE,置低和Nand Flash控制电路5命令锁存引脚CLE相连接的GPIO端口GPIO_CLE,通过Nand Flash控制电路5和FLASH总线3DAT0-DAT7相连接的I/O0-I/O7引脚将要读取的Nand Flash控制电路5的地址数据发送到Nand Flash控制电路5中;
d)置低和Nand Flash控制电路5命令锁存引脚CLE相连接的GPIO端口GPIO_CLE,置低和Nand Flash控制电路5地址锁存引脚ALE相连接的GPIO端口GPIO_ALE,通过Nand Flash控制电路5和FLASH总线3DAT0-DAT7相连接的I/O0-I/O7引脚从指定Nand Flash控制电路5地址读取DATA数据;
e)读取数据结束,释放互斥信号量,释放FLASH总线3,置高GPIO_CE,使Nand Flash控制电路5处于非选通状态。
图3中,根据图1中的硬件连接方式,将数据写到Nand Flash控制电路5特定地址的操作过程为:
a)处理器等待表示FLASH总线3空闲的互斥信号量。当互斥信号量非空闲时,表示FLASH总线3被占用,继续等待,直到信号量空闲;当互斥信号量空闲时,表示FLASH总线3空闲,置低和Nand Flash控制电路5片选引脚CE相连接的GPIO端口GPIO_CE,选通Nand Flash控制电路5,置高和Nand Flash控制电路5写保护引脚WP相连接的GPIO端口GPIO_WP,使Nand Flash控制电路5处于允许编程状态;
b)置高和Nand Flash控制电路5命令锁存引脚CLE相连接的GPIO端口GPIO_CLE,置低和Nand Flash控制电路5地址锁存引脚ALE相连接的GPIO端口GPIO_ALE,通过Nand Flash控制电路5和FLASH总线3DAT0-DAT7相连接的I/O0-I/O7引脚将写操作命令数据发送到NandFlash控制电路5中;
c)置高和Nand Flash控制电路5地址锁存引脚ALE相连接的GPIO端口GPIO_ALE,置低和Nand Flash控制电路5命令锁存引脚CLE相连接的GPIO端口GPIO_CLE,通过Nand Flash控制电路5和FLASH总线3DAT0-DAT7相连接的I/O0-I/O7引脚将要写的Nand Flash控制电路5的地址数据发送到Nand Flash控制电路5中;
d)置低和Nand Flash控制电路5命令锁存引脚CLE相连接的GPIO端口GPIO_CLE,置低和Nand Flash控制电路5地址锁存引脚ALE相连接的GPIO端口GPIO_ALE,通过Nand Flash控制电路5和FLASH总线3DAT0-DAT7相连接的I/O0-I/O7引脚将DATA数据写入到指定NandFlash控制电路5地址;
e)写入数据结束,释放互斥信号量,释放FLASH总线3,置高GPIO_CE,使Nand Flash控制电路5处于非选通状态,置低GPIO_WP,使Nand Flash控制电路5处于禁止编程状态。