本系统设计采用AT89C51自动检测NAND型Flash存储器的无效块,获取Flash存储器的坏块信息,为后续数据存储做准备。本系统设计包括硬件电路和配套软件设计2部分。其硬件电路主要由单片机、控制、显示和存储器4部分组成,其中单片机部分采用常规的最小系统电路;控制部分由按键和单片机的外部中断组成,按钮通过电阻与接地端相连,而复位键则与电源端相连;显示部分采用单片机的P0和P1端口控制8位七段共阳极数码管,位选通端由P2端口控制数据端由Pl控制;存储器部分与单片机相连,由于存在电平差异,所以需加电平转换器74LVX42-45,可将由单片机输出的5 V电压转到3 V,并将由Flash输出的3 V电压转到5 V,其转换方向便于控制。而软件设计部分采用单片机C语言编写程序,当数据存储到单片机后,用一个循环语句将其放到数组里,这样可以通过改变某一变量实现上下查询。则将这个变量的改变放在外部中断程序中。
2 硬件电路设计
硬件电路设计由于选用的51单片机是TTL器件,而所要检测的NAND型Flash存储器是CMOS器件,这2种类型器件的电平不相匹配,因此需增加电平转换器74154245,从而实现电压的5 V与3 V的双向转换。
2.1 单片机的连接
为了方便读图,该系统设计的电路原理图中的许多导线连接都采用网络标号的方法,而标号的命名基本采用引脚名称。单片机的P1端口的位操作控制Flash的控制端,P0端口作为单片机和Flash的地址和数据传输端口。其中数据的流向采用P1.6和P1.7控制,要读取Flash的数据时,如读ID时,先对单片机的P1端口位操作,依照时序设置控制字,接着由单片机的PO端口输出读取ID的命令,然后设置写地址的控制字,输入地址00H。读状态时,连续的RE脉冲可输出ID代码。页读取操作与此类似。图2为单片机电路连接图。
2.2 Flash存储器的连接
K9K8G08UOM是采用NAND技术的1 GB大容量、高可靠、非易失性Flash存储器,具有高密度、高性能特点。其无效块定义为包含有一个或更多无效字节,且其可靠性不能被保证,则无效块中的信息称为无效块信息。和所有的有效块一样,它具有相同的AC和DC参数,一个无效块不会影响有效块的运行,因为它有相应独立的指令资源依靠选择晶体管,该系统设计必须通过地址掩盖其无效块。第l块(地址是OOh)为了保证是有效块,不要求纠错l K编程/擦除周期。
除了先装载好的无效块信息,所有器件的存储单元都被擦除,无效块状态定义在空余区域的第1个字节。在每块第1页2 048字节的列地址中没有FFh。很多情况下,无效块信息也是能擦除的,一旦擦除,它不可能恢复其原有信息。因此,系统必须在原来无效块的信息基础上认识无效块。该系统设计就是通过读每块的第1页判定该块是否为无效块。
依据该Flash器件数据资料中各个引脚的功能,设计Flash的电路连接,图3只给出K9K8G08UOM部分所用引脚,电路中Flash的控制端经电平转换器后与单片机的Pl端口相连,而I/O端口经电平转换器与单片机的P0端口相连。
2.3 74LVX4245电平转换器
74LVX4245提供5 V和3 V之间转换的8位双向电平转换器。该器件的T/R引脚控制数据流向。发射端使数据由A端到B端,而接收端使数据由B端到A端。A端接5 V总线,而B端接3 V总线,如图4所示。