您的位置 首页 传感器

大容量NAND Flash TC58DVG02A1FT00在嵌入式体系中的使用

随着嵌入式系统产品的发展,对存储设备的要求也日益增强。文章以东芝的NAND E2PROM器件TC58DVG02A1F00为例,阐述了NAND Flash的基本结构和使用方法

摘要:跟着嵌入式体系产品的开展,对存储设备的要求也日益增强。文章以东芝的NAND E2PROM器材TC58DVG02A1F00为例,论述了NAND Flash的根本结构和运用办法,对比了NAND和NOR Flash的异同,介绍了容量NAND Flash在嵌入式体系中的运用办法,以及如安在Linux操作体系中参加对NAND Flash的支撑。

关键词:嵌入式 NAND Flash Linux 内核 TC58DVG02A1F00

1 NAND和NOR flash

现在商场上的flash从结构上大体能够分为AND、NAND、NOR和DiNOR等几种。其间NOR和DiNOR的特色为相对电压低、随机读取快、功耗低、稳定性高,而NAND和AND的特色为容量大、回写速度快、芯片面积小。现在,NOR和NAND FLASH的运用最为广泛,在CompactFlash、Secure Digital、PC Cards、MMC存储卡以及USB闪盘存储器商场都占用较大的比例。

NOR的特色是可在芯片内履行(XIP,eXecute In Place),这样应该程序能够直接在flash内存内运转,不用再把代码读到体系RAM中。NOR的传输功率很高,但写入和探险速度较低。而NAND结构能供给极高的单元密度,而且写入和擦除的速度也很快,是高数据存储密度的最佳挑选。这两种结构性能上的异同步如下:

*NOR的读速度比NAND稍快一些。

*NAND的写入速度比NOR快许多。

*NAND的擦除速度远比NOR快。

*NAND的擦除单元更小,相应的擦除电路也愈加简略。

*NAND闪存中每个块的最大擦写次数量否万次,而NOR的擦写次数是十万次。

此外,NAND的实践运用办法要比NOR杂乱得多。NOR能够直接运用,并在上面直接运转代码。而NAND需求I/O接口,因而运用时需求驱动程序。不过当今盛行的操作体系对NAND Flash都有支撑,如风河(具有VxWorks体系)、微软(具有WinCE体系)等公司都采用了TrueFFS驱动,此外,Linux内核也供给了对NAND Flash的支撑。

2 大容量存储器TC58DCG02A1FT00

2.1 引脚摆放和功用

TC58DVG02A 1FT00是Toshiba公司出产的1Gbit(128M8Bit)CMOS NAND E2PROM,它的作业电压为3.3V,内部存储结构为528 bytes32pages8192blocks。而巨细为528字节,块巨细为(16k+512)字节。其管脚摆放如图1所示。各首要引脚如下:

I/O1~I/O8:8个I/O口;

CE:片选信号,低电平有用;

WE:写使能信号,低电平有用;

RE:读使能信号,低电平有用;

CLE:指令使能信号;

ALE:地址使能信号;

WP:写保护信号,低电平有用;

RY/BY:高电平时为READY信号,低电平时为BUSY信号。

2.2 与ARM处理器的衔接

当时嵌入式范畴的干流处理器当属ARM。图2是以ARM7处理器为例给出的NAND Flash与ARM处理器的一般衔接办法。如前所述,与NOR Flash不同,NAND Flash需求驱动程序才干正常作业。

图中PB4,PB5,PB6是ARM处理器的GPIO口,可用来操控NAND Flash的片选信号。CS1是处理器的片选信号,低电平有用。IORD、IOWR分别是处理器的读、写信号,低电平有用。写保护信号在本电路中没有衔接。

2.3 详细操作

地址输入,指令输入以及数据的输入输出,都是经过NAND Flash的CLE、ALE、CE、WE、RE引脚操控的。详细办法如表1所列。

表1 逻辑表

 CLEALECEWERE
指令输入100时钟上升沿1
数据输入000时钟上升沿1
地址输入010时钟上升沿1
串行数据输出0001时钟下降沿
待机状况XX1XX

NAND Flash芯片的各种作业形式,如读、复位、编程等,都是经过指令字来进行 操控的。部分指令如表2所列。

表2 指令表

 榜首周期(Hex)第二周期(Hex)
串行数据输入80
读形式100
读形式201
读形式350
复位FF
主动编程(真)10
主动编程(假)11
主动块删去60D0
状况读取170
状况读取271
ID读取190
ID读取291

串行数据输入的指令80标明向芯片的IO8、IO7、IO6、IO5、IO4、IO3、IO2、IO1口发送0x80,此刻除IO8为1外,其他IO口均为低电平。

2.4 时序剖析及驱动程序

下面以表2中的读形式1为例剖析该芯片的作业时序。由图3可知,CLE信号有用时经过IO口向指令寄存器发送指令00H。此刻NAND Flash处于写状况,因而WE有铲,RE无效。发送指令后,接着发送要读的地址,该操作将占用WE的1、2、3、4个周期。留意,此刻发送的是地址信息,因而CLE为低,而ALE为高电平。当信息发送完毕后,不能马上读取数据,由于芯片此刻处于BUSY(忙)状况,需求等候2~20ms。之后,才干开端真实的数据读取。此刻WE为高电平而处于无效状况,一起CE片选信号也一直为低以标明选中该芯片。

这段时序的伪代码如下:

Read_func(cmd,addr)

{

RE=1;

ALE=0;

CLE=1;

WE=0;

CE=0;

Send_cmd(cmd);//发送指令,由参数决议,这儿为00

WE=1; //上升沿取走指令

CE=1;

CLE=0; //发送指令完毕

ALE=1; //开端发送地址

For(i=0;i4;i++)

{

WE=0;

CE=0;

Send_add(addr);//发送地址

WE=1; /上升沿取走地址

CE=1;

}

//一切数据发送完毕,等候读取数据

CE=0;

WE=1;

ALE=0;

Delay(2ms);

While(BUSY)

Wait;//假如还忙则持续等候

Read_data(buf);//开端读取数据

}

3 Linux体系对NAND Flash的支撑

Linux操作体系尽管现已支撑NAND Flash,但要运用NAND Flash设备,还必须先对内核进行设置办法如下:

(1)在/usr/src/(内核路径名)目录中输入make menuconfig指令,再翻开主菜单,进入Memory Technology Devices(MTD)选项,选中MTD支撑。

(2)进入NAND Flash Device Drivers选项,NAND设备进行装备。不过此刻对NAND的支撑仅限于Linux内核自带的驱劝程序,没有包括本文介绍的Toshiba芯片,为此需求对Linux内核进行修正,办法如下:

(1)修正内核代码的drivers.in文件,增加下面一行:

dep-tristate ‘Toshiba NAND Device Support’CONFIG-MTD-TOSHIBA $CONFIG-MTD

其间CONFIG-MTD-TOSHIBA是该设备的称号,将在Makefile文件中用到。

$CONFIG-MTD的意思是只要选有$CONFIG-MTD时,该菜单才会呈现,即依赖于$CONFIG-MTD选项。宋,Toshiba的NAND设备将被参加Linux体系内核菜单中。

(2)修正相应的Makefile文件,以便编译内核时能参加该设备的驱动程序。

obj-$(CONFIG-MTD-TOSHIBA)+=toshiba.o

此行句子的意思是假如挑选了该设备,编译内核时参加toshiba.o(假定驱动程序是toshiba.o),反之不编译进内核。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/chuanganqi/284784.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部