关键词不能为空

当前您在: 主页 > 英语 >

怎么看时序图--nand flash的读操作详解

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-27 21:43
tags:

-

2021年2月27日发(作者:boobs是什么意思)



这篇文章不是介绍



nand flash


的物理结构和关于


nand flash


的一些基本知识的。你需要至少了解



你手上的



nand flash


的物理结构和一些诸


如读写命令



操作的大概印象,你至少也需要看过



s3c2440


中关于


nand flash


控制寄存器的说明。



< /p>


由于本人也没有专门学过这方面的知识,下面的介绍也是经验之谈。



这里



我用的



K9F2G08-SCB0


这款


nand flash


来介绍时 序图的阅读。不同的芯片操作时序可能不同,读的命令也会有一些差别




当然其实有时候像


nand flash


这种



s3c2440


内部集成了他的控制器的外设。具体到读写操作的细节时序


(


比如



CLE/ALE


的建立时间,写脉冲的


宽度。数据的建立和保持时间等


)


,不明白前期也没有多大的问题。



因为< /p>


s3c2440


内部的


nand flash


控制器



做了大部分的工作,你需要做的基本就是设置



几个时间参数而已。然后


nand flash


会自动进行这些细


节操作。



当然如果处理器上没有集成



nand flash


的控制器



那么久必须要自 己来写时序操作了。所以了解最底层的时序操作总是好的





但是上层一点的,比如读写操作的步骤时序(比如读操作,你 要片选使能,然后发命令,然后发地址,需要的话还需发一个命令,然后需要等待操


作完 成,然后再读书数据)。



是必须要明白的。这都不明白的话,怎么进行器件的操作呢





也就是说



s3c2440


可以说在你设置很少的几个时间参数后,将每一个步骤中



细微的操作都替你做好了。(比如写命令,你只要写个命令到相


应寄 存器中,


cpu


内部就会协各个引脚发出



适应的信号来实现写命令的操作)。



而我们所需要做的



就是



把这些写命令,写地址,等待操作完成。等步骤组合起来



。从而完成一个



读操作





就像上面说的,虽然我们不会需要去编写每个



步骤中的最细微的时序。



但是了解下。会让你对每个操作步骤的底层细节更加明了





先来看一个命令锁存的时序。也就是上面说的





nand flash


操作中不是有一个



写命令步骤吗。那么这个步骤具体是怎么实现的。



首先



我们肯定是要片选



nand flash


。只有选中芯片才能让他工作啊



nand flash


是通过



ALE/CLE (


高电平有效


)


来区分数据线上的数据时命令(


CLE


有效 ),地址(


ALE


有效)还是数据(


C LE/ALE


都无效)。



那么这里既然是写命令



那么就一定是



CLE


有效(高电平)



ALE


无效(低电平)




同样命令既然是写给


nand flash


的那么



肯定有一个写周期 。我们需要注意的是,写是在上升沿有效还是下降沿有效




时序图如下:



1


这里是命令锁存是时序,那么我们要注意的其实就只有



CLE


为高电平期间这段时序。(写命令啊,


CLE


有效时(高电平)指示现在的数据其


实命令)< /p>


ALE


此时一定为低电平我们可以不关心他



2


所以,


CLE




低电平的时期,其他大部分引脚上都是



灰色的阴影,这代表我们不需要关心这段时期这些引脚的电平



3


那么



这个数据是什么时候被


nand flash


读取到的呢,



注意到



nWE


信号



在上升沿有一个贯穿所有其他引脚时序的竖线(这好像是叫生命


线?我也不清楚)










这就是说明,写入的数据(命令也是数据啊,只是可以通过


CLE< /p>


有效来区分)是在



WE


的上升沿有效。










也就是说,虽然



WE


是在低电平有效,但并不是说


< /p>


WE


一变成低电平,命令就被锁存了(即真正获得命令)而是在< /p>



WE


的上升


沿,命令才真正被锁存






知道了上面这三点,也就知道了一个大概,那么剩下的图中也 只剩那些



txx


的标号。明显它指的是时间,但是具体指什么时间呢。



指的就是箭头两边所指的两条



竖线之间的时间。(在每个信号的跳变沿,都有小竖线)





剩下的就是这些时间到底是代表什 么了。这里没什么难的,刚接触的觉得看不懂。是因为之前从来没接触过。(就像单片机刚学的时候不也是各种< /p>


不懂,原因就是我们从没接触过)。



这些时间标号,在数据手册的前面都有



说明



比如



tCLS



tCLH


从数据手册中我们可以看到



分表代表的



CLE

< br>建立时间,和


CLE


信号保持时间。


简单点你可以理解为,我让



CLE


引脚




变成高电平,总得给人间一点时间去变成高电平吧。总不能瞬间就变成高电平

< p>


不过从



时序图中我们 能看到更多的端倪,


之前不是说过



WE


的上升沿上不是有一个最长贯穿其他信号线的



竖线吗。


我们说他指示了,


数据


(命


令也是数据)










是在上升沿被锁存的,在



WE


的上升沿,我写到数据线上的命令数据才真正被锁存(接收),但是



我们注意到



CLE


信号在


WE


上升沿之前有就有效了。

< br>









所以我们说,



在命令数据真正被锁存之前,


CLE


有效的那段



tCLS


时间叫做



CLE


信号建立时间。









WE


上升沿后。命令已经被接受了,但这时候



CLE


其实可以变为无效了,因为已经获取到命令了










但是他并没有立刻结束,而是



Tclh


时间之后才结束。那么我们



称这段



时间



tCLH




CLE


保持时间





那么再根据手册中的说明



tCS


表示



片选信号建立时间,

< p>
tCH


表示片选信号保持时间









tDS


表示数据建立时间,


tDH


表示数据保持时间

< br>




这里我们看到一个小规律,在数据手册中





S


结尾的时间通常指的是建立时间,





H


结尾的时间指的是保持时间

















这里命令锁存的时序就分析完了。我们再来看看




地址锁存时序图,这个图有点复杂,



因为


nand flash




特性是



地址周期通常需要好几个,就是一个地址是分几次发送的





再给出数据手册中对应时间标号的说明




同样我们按照上面分析的步骤



1


这里是地址锁存是时序,那么我们要注意的其实就只有



ALE


为高电平期间这段时序。(写命令啊,


ALE


有效时(高电平)指示现在的数据其


实是地址)


CLE


此时一定为低电平,可以不用管




2


所以,


ALE


为低电平的时期,其他大部分引脚上都是



灰色的阴影,这代表我们不需要关心这段时期这些引脚的电平




3


同样



WE


的上升沿有一个贯穿其他信号线的长竖线,这也是代表数 据(这里其实是地址)在上升沿被锁存





那么剩下的也好理解



tCLS


这个我们不需要关心,因为



CLE


压根就是无效的。



tCS


就像之前分析的,它是指



CE


片选信号在


WE


上升沿也就是锁存地址之前的有效时间,也就是



CE


建立时间



tWC



?


不知道?



不知道



看手册啊,前面也说过这些时间标号在手册中都会给出。










从上面手册的解释我们看到,它指的是一个写周期的时间



tWP


写脉冲宽度(也就是



WE


是低电平有限,


twp

< br>指低电平持续时间,就是有效时间)



tWH


好理解了,就是高电平时间



ALS




这不就是



地址信号



ALE


建立时间嘛



ALH



ALE


信号有效保持时间啊



TDS TDH


数据建立和保持时间



就像上面对



命令时序的分析,这里



信号的



建立





保持时间都是以



数据被



锁存分界点

< br>(WE


上升沿


)





看到这里相信仔细看的人,应该大 致该如何看一个时序图了,但是这里



我们牵涉到的



无非都是一些



上面



建立


/


保持时间。



复杂点的呢。





下面就来看一个复杂点的时序图,其实也不复杂,主要是说明 如何在不看手册就能知道



txx


指的是什么时间









这个时序其实并不复杂,只是他不是像上面分析的那样都是一些



建立时间和保持时间。这里牵涉到跟多的时间标号



不过就像前面说的


.


看手册!



手册里对每个时间参数都有 说明。不过初学者通常即使看手册,对这些时间参数也是不知道是什么意思。



这里我们看手册前,先来自己分析下。方法会了,手册就成了验证你对不对的东西了,而不是你寻 找答案的东西。





TRC


这个参数有点简单。看他的范围





一个



RE


周期



的时间,那么就跟前面的



tWC


应该是一样的。那它应该代表的就是



RE


信号的一


个周期时间(读信号的一个周期)



TREA


呢?



看标号看不出所以然,那么我们就看他的起始和结束时间



从时序图能看到,这个指的是从



RE


有效(变低)



到数据出现之间的


时间。



那么


tREA


可想而知就应该是



读信号有效到数据被读之间的时间



后面的都是这个同样的分析方法



比如最后的那个



tRHZ


是从



RE


无效(高电平)到数据线变成高阻态



之间的时间(数据线画在中间表示的是高阻态)



看下手册中的解释



也基本就是这个意思





到这里



对 于时序图怎么看,相信大家都应该能理解了。甚至可能连手册都不用看,就知道他是什么意思了。因为我们能从< /p>



时间的起始地址来推


测时间标号的意思







上面这些分析,都是很底层的操作,如果我们使用



s3c2440


这种高级的处理器



这些时序操作我们根本不需要去实现,顶多也就往几个寄存器




设置一下上面说的一些时间



然后,


CPU


中的



nand flash


控制器会自动完成上面所的所有操作。但是还需要了解的原因是,如果你碰到一个没




nand flash


控制器的处理器



怎么办,那你只能亲自实现这些



具体的



写命令,写地址。等等



单元操作。



然后才能将这些单元操作组合成



读数据,写数据等操作(上面说过



比如读操作



他并不是一个简单的命令 而是一系列操作,你要片选使能,然


后发命令


(


读命令


)




然后发地址(要读的数据的地址),需要的话还需发一个命令,然后需要等待操作完成,然后读书数据)





说完了



这些具体的单元操作,那么我们再来看看一个



读操作



具体需要哪些步骤。也就是我们需要真正必须掌握的时序操作



对于我这款



nand flash


读操作时序如下



我们要注意的主要是



最下面一行





I/Ox


信号线的状态,他指示了



读操作需要哪些,单元步骤。



1


首先



我们看到



有一个



0x00


是什么?数据?地址?命令?





ALE/CLE

< br>线啊,这两根线不是决定了现在的数据的类型嘛










顺着往上看,我们知道

< p>
0x00


是在



CLE< /p>


有效期间的数据那么它就是一个命令



2


然后是



address(5Cycle)


即五个地址序列

< p>
(


这款


nand


flash


指定读数据的地址时要发送五个地址序列


)



往上看,


是在


ALE


有效期间的数据,


那么应该就是地址 了










(对于这五个地址,前面两个是列地址,后面三个是行地址。在


na nd flash


的物理结构中



行地 址对应的某一页,列地址就对应


这一页中的某一列)





3


接着又是



0x30


,此时


CLE


有效,那么就是命令了(也就是说这款


nand flash


的读操作需要两个命令)。










但是之后数据并未立刻出来,我们看到在到



DATA Output


即数据输出之前还有一段时间,为什么 有这段时间?










往上看



R/nB


这个数据线上说明了原因,这段时间内它是低电平



即指示现在



处于



忙碌状态,还未准备好数据输出 。为什么


会这样?










因为你



写了



一个命令,写了要读数据的地址,又写了一个命令。



你总要给



cpu


一些时间去处理这些命令吧,










R/nB


为低电平这段时间就是



在处理这些命令(实际上是根据命令将你定位的那一页数据读到内部寄存器中),

< p>











R/nB


变成高电平了,就指示命令处理完毕,现在数据也就可以读出来了





综上我们从手册中我们就知道了读操作的具体步骤,



1


首先


nand flash


也是一个外设,要访问他就需要片选它,所以在执行时序图上的步骤之前需要片选

< p>
nand flash.


2


看后面就是安装时序图来了,看时序图


!


第一步先是发送一个命令



0x00.


3


看时序图!


然后发送五个地址序列(先发送两个列地址,在发送三个行地址(即页地址))



4


看时序图!



接着再是一个命令



0x30.


5


看时序图!



R/nB


引脚为低表示现在正忙,正在处理这些命令,那就要等待



R/nB


引脚变为高电平



6


看时序图!



这个时候就可以读数据了



7


一次读操作结束了



nand flash


暂时是不需要使用了,那么别忘了应该



取消片选信号。





至于这每一个步骤中具体的时序,


c pu


中的


nand flash


控制器 会帮我们完成。我们要做就是设置几个时间参数


-


-


-


-


-


-


-


-



本文更新与2021-02-27 21:43,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/676247.html

怎么看时序图--nand flash的读操作详解的相关文章