基于NAND
[b]摘要:[/b]NANDFlash以其可靠性、稳定性、低成本、高密度和大容量等多种先进特性,逐渐成为嵌入式存储系统的工业标准。在印刷电路板级和生产线级,多采用遵守IEEE21149.1标准的边界扫描技术进行Flash测试与编写。本文提出一种控制结构复用的存储系统,由存储卡与写卡器两部分组成。在阐述存储卡与写卡器硬件结构的基础上,给出了存储系统软件框架与NANDFlash典型操作实现。在针对不同存储容量的NANDFlash成功进行了读/写/擦实验后,将本存储系统的控制结构复用到嵌入式车载导航设备中。与边界扫描技术相比,本系统具有结构简单、操作时间短、性价比高的特点。[b]关键词:[/b]NANDFlash;存储卡;写卡器;打印口
[b]引言[/b]
NANDFlash具有快速访问、低功耗、抗震性、尺寸小、重量轻等特性,并且稳定性良好,即使在系统电源关闭的情况下仍可保存数据。随着技术的发展,其价格降低且容量增大,这些使得NANDFlash逐渐成为嵌入式系统的一个独立部件,系统存储的工业标准。
对Flash存储器的测试与编写,目前流行的工业方法是采用遵守IEEE-1149.1标准,又称JTAG(joint test action group)规范的边界扫描技术,运用专门的商业测试板和配套软件来完成。不论是板级还是生产线级,都有厂家提供配套的软硬件解决方案。
基于JTAG规范的Flash控制电路,使用支持边界扫描的高级微处理器,配套专门的控制硬件和软件,逐渐形成一套Flash存储器PCB级的控制体系规范。然而,不论是支持边界扫描的高级微处理器,还是配套的硬件和软件,价格都是较昂贵的。不仅如此,使用这种方案将增加用户PCB的设计难度和产品成本,使用户产品结构变得复杂,硬件设计失去独立性,产品升级存在依赖性。
针对运用边界扫描技术进行Flash控制的上述弊端,本文提出一种控制结构复用的存储系统,包括存储卡和写卡器两部分。文中首先给出本存储系统的总体框架,而后阐述存储卡与写卡器的硬件结构,接着着重讲述存储系统软件架构与NANDFlash典型操作实现,最后用写卡器对三星公司各种存储容量的NANDFlash进行读、写、擦测试,结果表明本存储系统能高效完成对NANDFlash的各种操作。在所有测试成功后,将本存储系统的控制结构复用到嵌入式车载导航设备中,并成功移植控制软件。通过与边界扫描技术对比软硬件结构和测试结果可以看出,本存储系统具有结构简单、操作时间短、性价比高3大优点。
[b]存储系统总体框架[/b]
本存储系统分为存储卡和写卡器两部分,其总体框架如图1所示。
[img]http://usbing.com/uploads/embed/store/20086257452520377801.jpg[/img]
图1 存储系统框架
图1中填充左斜线的箭头序列给出了编写NANDFlash的数据流向。PC通过标准打印口(line printer,LPT)控制NANDFlash,中间用50针卡座与50孔卡口配合,连接写卡器与存储卡。由于打印口的控制口线有限,不能对NANDFlash进行全面控制,因而在打印口和NANDFlash之间添加573锁存器,复用数据口线来扩充控制口线。
此外,由于嵌入式系统各元器件对工作电压都有较高的要求,必须在额定电压范围内工作,因此在写卡器和存储卡上都添加了稳压器,在写卡器上还添加了电压调节器。写卡器外部供电为12V直流电源。
从存储系统框架可以看出,整个系统并未使用控制芯片与类似边界扫描技术的高成本复杂控制电路,结构简单性价比高。后续实验结果表明,与边界扫描技术相比,本系统的NANDFlash操作时间有所缩短。
[b]存储卡[/b]
通常,一个NANDFlash存储器的价格较一个NORFlash存储器便宜40%左右。与NOR Flash存储器相比,NANDFlash存储器的写访问时间快20倍。尽管NORFlash具有快速随机访问速度,而NANDFlash具有一个长的随机读反映时间,但其具有功耗低、存储容量大、快速擦/写的优点[8]。基于NANDFlash的上述优点,存储卡选择使用NANDFlash作为数据存储载体。
存储卡主要包括50孔卡口、NANDFlash、直流电源稳压器3个部分,其他还有一些电阻和电容,起辅助和增加电路稳定性作用。50孔卡口与写卡器的50针卡座配合,连接存储卡和写卡器。
[b]写卡器[/b]
写卡器主要由标准打印口、直流电压调节器、直流电源稳压器、573锁存器和一些电阻电容组成,采用外接 12V直流电源供电,50针卡座采用机械式上下卡,使得存储卡与卡座的接触与分离相当方便。
[b]打印口[/b]
标准打印口分为3个端口,基地址为数据端口,基地址 1为状态端口,基地址 2为控制端口。控制PC的CMOS设置打印口模式为ECP EPP,打印口首地址即为0x378。以下阐述写卡器中如何使用打印口的3个端口。
(1)数据端口(0x378)
数据端口中有8根数据线,与NANDFlash相连传输一个字节的数据。其中,D0和D1被复用,通过573锁存器连接NANDFlash的CLE和ALE两个控制引脚。
(2)状态端口(0x379)
状态端口仅使用了第6个状态位作为NANDFlash的R/äB应答信号,其余3、4、5、7这4位打印机的标准应答未使用,保留供以后功能扩展使用。
(3)控制端口(0x37A)
控制端口使用了5个控制位,具体意义如图2所示。
[img]http://usbing.com/uploads/embed/store/20086257452528177802.jpg[/img]
图2 控制端口对NANDFlash的控制
D0、D1、D2位对NANDFlash进行控制,D3位对锁存器进行控制,D5位控制打印口数据端口的输入/输出方向。D5位置0时,PC通过打印口数据端口输出数据到NANDFlash;置1时,通过打印口数据端口接收NAND2Flash数据。在打印口连接器处,D0、D1、D3位反相输出,而D2位是正相输出,即D0、D1、D3位输出1,NAND2Flash获得0;D2位输出1,NANDFlash获得1。
[b]打印口与存储卡连接[/b]
打印口通过50针卡座与存储卡的50孔卡口相连,从而连接存储卡上的NANDFlash,具体的口线连接如图3所示。
[img]http://usbing.com/uploads/embed/store/20086257452539077803.jpg[/img]
图3 写卡器与NANDFlash连接
在图3中,并未画出卡座与卡口的具体连接线,因为它们只是起连接中转作用。
由图3可知,打印口的引脚1控制NANDFlash芯片有效,引脚2~9控制NANDFlash的8个IO口,其中引脚2和3通过573锁存器复用控制NANDFlash的CLE(命令允许)和ALE(地址允许),引脚10接收NANDFlash的
[img]http://usbing.com/uploads/embed/store/20086257452545377804.jpg[/img]
(状态信号),引脚14控制NANDFlash的
[img]http://usbing.com/uploads/embed/store/20086257452554677805.jpg[/img]
(写有效),引脚16控制NANDFlash的
[img]http://usbing.com/uploads/embed/store/20086257452559377806.jpg[/img]
(读有效),引脚17控制锁存器的
[img]http://usbing.com/uploads/embed/store/20086257452562577807.jpg[/img]
(允许锁存)。其他的打印口引脚未使用,一些接高电阻,一些接地,在图中未画出。
NANDFlash需要 3.3V直流电供电,写卡器通过直流电源变压器调整电压后为NANDFlash供电。
[b]
[color=red'][1][/color]
[2] [3] 下一页[/b]