NORFLASH存储芯片测试程序的设计

NORFLASH存储芯片测试程序的设计
【摘要】在公司现有硬件平台基础上,开发设计测试程序NORFLASH存储芯片进行测试。实验结果表明,该测试程序的设计能避免由于无测试工具而无法测试到的储存区块损坏造成的设备运行异常,并实现测试自动化。
【关键词】NORFLASH;存储芯片;测试程序
NOR FLASH技术是Intel1988年开发的,其特点是芯片内执行,即应用程序可以直接在FLASH闪存内运行,不必再把代码读到系统RAM中,是现在市场上主要的非易失闪存技术之一。其传输效率高,在14MB的小容量时具有很高的成本效益[1]。基于其特点NOR FLASH存储芯片市场应用率高,而目前没有专门对NOR FLASH存储芯片进行测试的工装和工具。本文就笔者开发的NOR FLASH存储芯片测试程序予以详细分析。
1 NORFLASH硬件原理图
2 NORFLASH命令定义
1.NOR FLASH存储芯片
NOR FLASHINTEL1988年推出的一款商业性闪存芯片,它能够提供完整的寻址与数据总线,并允许随机存取存储器上的任何区域,而且它可以忍受一万次到一百万次抹写循环,是早期的可移除式闪存储媒体的基础。NOR FLASH支持Execute On Chip,即程序可以直接在FLASH片内执行(这意味着存储在NOR FLASH上的程序不需要复制到RAM就可以直接运行)。因此,在嵌入式系统中,NOR FLASH很适合作为启动程序的存储介质。NOR FLASH的读取和RAM类似,只要能够提供数据的地址,数据总线就能够正确的给出数据。而对NOR FLASH的写操作需要遵循特定的命令序列,最终由芯片内部的控制单元完成写操作。
为了便于访问,从支持的最小访问单元来看,NOR FLASH一般分为8位的和16位的(也有很多NOR FLASH芯片同时支持8位模式和16位模式)具体的工作模式通过特定的管脚进行选择。FLASH一般都分为很多个SECTOR,每个SECTOR包括一定数量的存储单元。对有些大容量的FLASH,还分为不同的BANK,每个BANK包括一定数目的SECTORFLASH的擦除操作一般都是以SECTORBANK或是整片FLASH为单位的。
3 测试程序主流程图
2.设计测试程序
在编写测试程序时,设计三种测试方案:
方案1
在安装J-link驱动程序时,本身自带一个工具,可以对NOR FLASH进行单次的读、写、擦除操作,并且可以测试读、写、擦除的速度。由于本工具不是开源的,不能够增加和修改功能,基于单次操作的局限性,放弃方案1。但是在编写测试程序时,可以参考本工具的功能设计。
方案2
通过对嵌入式系统移植的研究,发现可以通过移植U-boot对存储设备进行操作,而且u-boot对于存储设备的操作驱动是经过IT精英共同验证过的。但考虑到刚开始接触系统移植,在短时间内无法完成测试程序的编写,所以放弃方案2
方案3
在公司现有的监控平台上,增加对存储设备的读、写、擦除操作。本方案不需要重新设计硬件平台,大大节省了设计的时间。本测试程序可以对NORFLASH存储芯片进行读写测试和寿命测试。在测试过程中,如果发现芯片读写错误,本程序可以通过串口将错误信息打印到调试工具供用户查看。测试过程中不需要用户参与,实现测试自动化。
本次测试是编写存储设备的测试程序,可以长时间对存储设备进行读、写、擦除操作,从而可以验证存储设备的特性:在高温条件下,对存储设备进行读、写、擦除操作中正确无误;存储设备的读、写、擦除操作有一定的次数限制。
4 读写操作
3.测试NOR FLASH存储芯片
在对FLASH进行写操作的时候,每个BIT可以通过编程由1变为0,但不可以有0修改为1。为了保证写操作的正确性,在执行写操作前,都要执行擦除操作。擦除操作会把FLASH的一个SECTOR,一个BANK或是整片FLASH的值全修改为0xFF。这样,写操作就可以正确完成了。
由于NOR FLASH没有本地坏区管理,所以一旦存储区块发生毁损,软件或驱动程序必须接手这个问题,否则可能会导致设备发生异常。在解锁、抹除或写入NOR FLASH区块时,特殊的指令会先写入已绘测的记忆区的第一页(Page)。接着快闪记忆芯片会提供可用的指令清单给实体驱动程序,而这些指令是由一般性闪存接口(CommON FLASH memory InterfaceCFI)所界定的。与用于随机存取的ROM不同,NOR FLASH也可以用在存储设备上。
NOR FLASH的读取数据的方式来看,它与RAM的方式是相近的,只要能够提供数据的地址,数据总线就能够正确的挥出数据。考虑到以上的种种原因,多数微处理器将NOR FLASH当做原地运行(Execute in placeXIP)存储器使用,这其实意味着存储在NOR FLASH上的程序不需要复制到RAM就可以直接运行。
本测试中硬件平台使用的ARM芯片是S3C 2410,该芯片具备外接NORFLASH的引脚,下面是S3C2410NORFLASH的接线图如图1所示。
本平台使用的ARM芯片型号为S3C2410NORFLASH型号为AM29LV160DB,下文将用ARM代替S3C2410NORFLASH代替AM29LV160DB
NORFLASH2种读写模式:8位模式和16位模式。对8位的NOR FLASH芯片,或是工作在8-BIT模式的芯片来说,一个地址对应一个BYTE8-BIT)的数据。例如一块8-BITNOR FLASH,假设容量为4BYTE。那芯片应该有8个数据信号D7-D02个地址信号,A1-A0。地址0x0对应第0BYTE,地址0x1对应于第1BYTE,地址0x2对应于第2BYTE,而地址0x3则对应于第3BYTE16位的NOR FLASH芯片,或是工作在16-BIT模式的芯片来说,一个地址对应于一个HALF-WORD16-BIT)的数据。例如,一块16-BITNOR FLASH,假设其容量为4BYTE。那芯片应该有16个数据信号线D15-D01个地址信号A0。地址0x0对应于芯片内部的第0HALF-WORD,地址0x1对应于芯片内部的第1HALF-WORD。通过上图地址线的连接方式可知,NORFLASH使用的字模式。上图中,LADDR1连接A0为字模式,LADDR0连接A0为字节模式。

本文发布于:2024-09-20 20:39:33,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/89597.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:操作   测试   芯片   能够   测试程序
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议