NANDFLASH外设的理论知识
---参考朱有鹏ARM裸机课堂
1、什么是NANDFLASH?
NANDFLASH存储器是flash存储器的一种,用来存储。被封装成各种U盘等器件。
2、nandflash的功能框图?
(1)nand的结构可以看成一个矩阵式存储器,其中被分成一个一个的小块,每一个小块
都可以存储一个bit位,然后彼此以一定的单位组合成整个NAND。
(2)从下图可以看出:NAND中可以被单次访问的最小单元叫做PAGE页;
对NAND进行读写至少要以这个单元或者是这么多的整数倍,在K9F2G08芯片中,PAGE的大小为2K+64B
(3)页往上还有一个叫做块(BLOCK)的概念,1个块等于诺干个页,一个块等于64页。
(4)块设备分这几个概念有什么意义?
首先要明白,块设备不能完全按字节访问必须以块为访问的限制:
PAGE是读写NAND的最小单位;BLOCK是檫除NAND的最小的单位,这些规则都是NAND的物理原理和限制要求。
(5)NANDFLASH这个芯片是以列地址和行地址访问的,但是有29条总线,所以需要分几个周期发送。
3、NANDFLASH的结构:
(1)什么是ECC?(err correction code,错误校验码)
因为nand存储本身出错概率高,(位反转)
nand比NOR最大的缺点就是稳定性,所以我们将有效信息存储到
按照一定的算法计算一个ECC信息,比如CRC16校验算法。
将ECC信息同时存储到NAND这个页的带外数据区。
如果校验通过则证明nand的有效数据可信,如果校验不通过只能丢弃。
(2)坏块标志:
nand芯片用一段时间后,可能某些块坏掉(这些块无法檫除了,或者无法读写了)
坏块是不可避免的,而且随着nand使用坏块会越来越多,当
坏块还不算太多时,这个nand都是可以用的,除非坏块太多了。
才会换新的。所以nand本身为了管理nand发明了一种坏块标志机制。
nand的每个页de64字节的带外数据中,我们定义一个固定位置。
文件系统来标记这个块是好的还是坏的,文件系统在发现这个块已经坏了没法用了。
会将这个块标记为坏块。
(3)nand的地址时序:
(1)nand的地址有多位,分4或者5个周期,通过我们的IO引脚发送给我们的nand的芯片。
寻址的最小单位是字节,但是读写的最小单位是页。
(2)nand的地址在写代码按照我们nand要求的时序和顺序依次写入。
4、NANDFLASH的常见的操作和流程分析:
(1)页的读写操作:
(2)檫除操作:
(3)坏块检查:
5、S5PV210的nandflash控制器:
(1)如果我们SOC用软件操作nandflash芯片本身的接口电路:
nand芯片本身通过nand接口电路来存取数据,nand接口电路和SOC之间通过nand的接口时序来通信。
这种方式有两种不好的地方:
1、你很难保证你的时序很难保持,
2、代码很难写,解决方案就是内部集成一个nand控制器
(实际上就是一种硬件电路,这个硬件电路完全满足nand接口的时序操作)
然后将这个接口时序的操作寄存器化。
(2)SOC和NAND芯片的之间的通信,在SOC没有NAND控制器需要SOC自己来处理接口时序。
编程十分的麻烦,需要程序员看nand的芯片手册,严格按照接口时序图中编程。
(3)在SOC有nand控制器时SOC只需要操控nand控制器的寄存器即可。
nand控制器内部硬件会根据寄存器值生成合适的nand接口时序和nand芯片通信。
所以在有nand控制器时编程要简单很多。我们读写nand芯片时再也不用关注nand的
接口时序了。只要关注SOC的nand控制器的寄存器即可。

1340

被折叠的 条评论
为什么被折叠?



