关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 一种支持多种闪存的自适应驱动设计

一种支持多种闪存的自适应驱动设计

作者:时间:2012-05-23来源:网络收藏

引言

本文引用地址:http://www.eepw.com.cn/article/202324.htm

Flash存储器具有快速访问、低功耗、尺寸小、重量轻等特性,在系统电源关闭的情况下依然可保留数据。随着技术的发展,Flash因其在性能和成本方面的优势逐渐成为系统存储的工业标准。目前市面上,NOR Flash和NAND Flash是两种主要的Flash存储器。因NORFlash能在芯片内执行程序,一般在非大容量存储设备中采用NOR Flash作为程序存储器和非易失性数据存储器,本文以NOR Flash存储器为例,阐述一种支持多Flash的自适应方法。

产品在批量生产时,同一款产品在不同的生产阶段常常会因价格或者货源等原因而采用不同型号、硬件接口兼容的Flash存储器,不同的Flash存储器对应不同的驱动程序。这样,产品因采用了不同厂商、不同容量、不同型号的Flash存储器,导致在一种器件上开发的驱动软件无法兼容另外一种器件,而需要对软件版本做一些额外的管理工作。当前所采用的方法是当产品选用不同类型的Flash存储器后,就添加一个软件版本,由生产线工人针对不同的Flash存储器来选择不同的Bin烧写文件和不同的软件版本,这样不仅生产效率低,而且容易出错。本文

提出一种Flash的驱动自适应的实现方法,对传统软件设计方法进行改进,实现同一驱动软件同时支持多Flash存储器,提高了生产效率。

1 传统Flash存储器

1.1 传统Flash存储器的驱动模型

NOR Flash的读取如同RAM和EEPROM一样不需要特殊的指令,但对Flash的写入、复位、读取ID等操作则需要特殊的编程指令序列。通常不直接写入Flash的主要原因是为了防止加电/掉电时产生的脉冲破坏Flash的原始数据。Flash支持的命令集也因器件系列和厂商的不同而不同,因此需要根据Flash支持的指令集编写驱动程序。

a.JPG

传统的Flash存储器驱动模型如图1所示。驱动层与Flash指令集相关,提供基本的操作函数给适配层调用,不同厂商的Flash指令集不同,对应的驱动层代码不同。适配层将Flash操作函数进行一系列包装以实现某一功能,它为应用层提供标准的应用接口,适配层代码在移植过程中一般不需要修改。应用层函数调用适配层函数以实现某一具体功能。

1.2 Flash常用接口

Flash作为系统的程序存储器和数据存储器,ARM处理器对Flash的操作有以下几种:

◆初始化配置

◆读数据

◆写数据

◆擦除

◆擦除状态查询

◆暂停擦除

◆恢复擦除

1.3 Flash的兼容性设计

传统Flash模型只针对一种特定指令集的Flash芯片,如配置模块是针对Flash_A的时序和指令集来编写的,其对应的软件为Software_ A,没有考虑其兼容性。但在产品的后续生产过程中,当需要将Flash_A更换为接口兼容的Flash_B时,需要为其重新编写配置接口模块,对应的软件为Software_B。Software_A支持Flash_A,Software_B支持Flash_B,由此就带来一个软件版本的管理问题。

b.JPG

为了便于产品的升级,产品在软硬件设计过程中往往要考虑其兼容性,硬件的兼容相对软件与软件的兼容要容易得多。如图2所示,NOR Flash的引脚主要有:8/16位的数据总线,地址总线(与Flash大小相关),控制引脚(OE#、CE#、AVD#、WE#、WP#)。同一系列Flash芯片的电气特性基本兼容,包括其引脚连接、封装方式、直流和交流特性等,如Toshiba公司的ty5701111183kc04和Spansion公司的S29NS128N、S29N 128N的引脚基本兼容。

硬件的兼容由芯片厂商来完成,而软件的兼容则需要改善Flash驱动模型来实现。NOR Flash的生产厂商很多,Flash支持的指令集也冈器件系列和生产厂商的不同而不同。

c.JPG

针对以上问题,本文提出一种Flash存储器自适应的设计方法,在传统Flash驱动模型中添加自适应层,同时在硬件驱动层中添加多种Flash的接口函数。系统在自适应层中自动搜索相应Flash的函数接口,从而实现Software_AB同时支持Flash_A和Flash_B。自适应方法与传统方法的比较如图3所示。


上一页 1 2 3 4 下一页

关键词: 闪存 驱动设计

评论


相关推荐

技术专区

关闭