朱有鹏老师linux核心大讲堂---ARM裸机第十一部分 NandFlash和iNand学习笔记

本文详细介绍了NandFlash的接口、结构、操作流程,特别是针对S5PV210处理器的NandFlash控制器进行了深入解析。同时,文章还探讨了iNand的特性、结构以及与NandFlash的区别,并分析了SD卡与iNand的操作,包括硬件接口、命令响应和代码实战。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、NandFlash的接口  数据手册:K9F2G08/K9F4G08

2、NandFlash结构框图

3、Nandflash的结构

4、NandFlash常见操作以及流程分析

5、S5PV210的NandFlash控制器

6、Nand操作代码解析

7、iNand介绍

8、SD卡、inand操作

9、SD/iNand代码实战分析1

10、SD/iNand代码实战分析2

11、SD/iNand代码分析


1、NandFlash的接口  数据手册:K9F2G08/K9F4G08

S5PV210核心板NAND FLASH接口电路:

(1)型号的含义:就如K9F2G08,K9F:三星公司的型号,2g存储,08:8位数据线。

(2)数据线不一定只传送数据,还可能传送命令

2、NandFlash结构框图

组成部分:存储矩阵+控制电路,控制电路接口与我们的soc里的nand控制器连接。nand控制器负责产生nandflash芯片所需的读写时序,我们操作nandflash时只需要操作soc上nand控制器提供的寄存器即可,根据读写流程图进行编程来读、写、擦除操作。

 

(1)Nand中可以被单次访问的最小单元叫做页。(最小单元是至少一次要读取指定的位数(字节),或者这些固定位数的整数倍),这就是块设备

(2)页往上就是Block(块),一个块就等于若干个页,再往上就是整个Nand芯片了,叫device,一个device是若干个block。

(3)为什么要分页和块呢,因为块设备不能完全按字节访问,只能按块访问这是物理硬件限制的。页是Nand的最小读写单元,block是擦除Nand的最小单位。(这些都是硬件所决定的)

(4)nand中的多个存储单元,每个单元都有自己的地址(地址是精确到字节的)。所以是地址编排精确到字节,但是实际读写却只能精确到也(所以操作时需要页对齐,譬如2k、4k等这些地址对齐)。nand读写时地址传输通过IO线发送的,因为地址是30位,而IO地址只有8位,所以需要分次进行地址发送,如需要5个cycle才能发送完毕。

(5)总结:nand芯片内部有存储空间,这些空间是由电路来管理的,NAND向外部提供了一套统一的接口标准,然后我们的soc通过接口时序来访问Nand的存储空间,理论上我们可以通过外部soc直接时序访问,但实际上NAND提供的是一套标准公用的接口,SOC有专门的控制模块来读取nand,不需要我们再写读写时序。直接通过soc提供的模块来操作nand芯片即可。(这些控制器一般作为soc的内部外设来存在的)

 

3、Nandflash的结构

(1)大页Nand与小页Nand   等同于硬盘的扇区,扇区最早的磁盘中是512字节,后来也有些高级的硬盘扇区不是512字节而是1024字节、2048字节等。nand的页也有512字节,1024字节,2048,4096字节,一般说大字节是大页,小字节是小页Nand

(2)一个块等于多少个page也是不定的,不同的nand也不同。一个Nand芯片有多少block也是不定的,不同的nand芯片不同。

总结:nand的组织架构就比较乱,接口时序也不同,不同厂家的nand接口不一样。一旦升级容量或者换芯片则硬件要从新做,软件也要从新移植。

(3)带内数据2k和带外数据64(ECC数据,存储坏块数据) ECC:eeror correction code,错误校验码)nandflash出错概率比较高所以需要ECC校验数据。

(4)坏块标志:nand芯片用一段时间后,可能某些会坏掉(这些块无法擦除,也无法读写了),类似硬盘的坏道。坏块是不可避免的,而且随着Nand的使用坏块会越来越多。当块块还不算多的时候这个Nand是可以用的,除非坏块太多不划算使用才更换新的。所以我们有了nand管理坏块的标志机制。nand的每一页的64字节的外带数据中,我们(一般是文件系统)定义一个固定位置(譬如定位24字节)来标志这个坏块是好的还是坏的。文件系统在发现这个坏块已经坏了没法用了时会将这个坏块标志位坏块,以后访问nand时直接跳过这个块即可。

(5)计算存储容量的时候没有加上64字节的。

(6)nand的地址有多位,分4/5周期通过IO引脚发送给nand芯片来对nand进行寻址。寻址的最小单位是字节,但读写的最小单元是页。

(7)nand的地址在写代码时要按照nand要求的时序和顺序依次写入。

(8)nand命令码:

 

(9)nand芯片内部的管理电路本身可以接收外部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值