NandFlash_control
驱动:编写任何设备的驱动程序,都需要对该设备的原理有一定了解和认识。对于外部设备的访问总是需要通过一个控制器来间接访问,对于这个控制器的控制程序称为驱动程序
Nandflash 原理:
一:角色分析
数据存储的物理介质
二:Nandflash 分类
根据不同的方式可以将Nandflash 分出不同的类别出来,这里采用物理结构的方式来分类
(1)SLC(single level cell):单层次存储
(2)MLC(multi level cell):多层次存储
特点比较:
1)SLC 的存储格上只存储以为数据,而MLC的存储格上却存储两位数据,所以MLC的单位存储容量价格比SLC 更低
2)SLC使用寿命更长,SLC 10万次擦写,MLC只有1万次
3)SLC 比MLC访问速度更快,大约是3倍
4)MLC比SLC的功耗更高,大约高出15%
三:访问方式
(1)编址
注意:内存采用的是统一编址的方式,Nandfash采用的是独立编址的方式
1)内存单元既有地址总线,也有数据总线,然而Nandflash,地址和数据总线是复用的。
2)由于Nandflash 不像内存一样通过统一编址,那么怎么访问Nandflash呢?在cpu内部有一个叫做“Nandflash控制器”的东西,用来控制访问Nandflash
(2)地址结构
1)Nandflash控制器总共只有8个I/O管脚与之相连,明显根数太少,所以数据(地址或数据)是分几次送入的。
2)CPU内部的Nandflash控制器中,有几个寄存器,一个是“地址数据寄存器”,另外一个是“指令数据寄存器”,还有“数据寄存器”,这些寄存器的地址是统一编址的。实际上三个寄存器统称为“数据寄存器”,只是存放的数据的功能各不同。
地址——命令——数据
Nandflash 物理结构:
3)由图可知:
一个NandFlash被分为了,2048个块,每一个块又被分为64个页,每一个页被分为2k的空间,外加64byte 的空间用来放置校验码之类的。
4)对nandflash的读有两种方式:
页读:一种是给出页地址,一次将怎个页的内容读出来(只需要提供页地址,即为行地址)
随机读:另外一个方式是将页中的某个字节读出来。(需要给出行地址和列地址)
(3)信号引脚
控制引脚的含义如上图。
四:对Nandflash 的读操作
对于一些复杂的设备的操作,看懂时序图是一个很重要工作,按照时序图,根据I/O管脚上的信号有节奏的控制设备。
时序图:
Nandflash控制寄存器/Nandflash 配置寄存器(初始化配置):
作用分析:
用于初始化nandflash ,因为任何一个硬件的使用都必须事先进行初始化。
Nandflash控制寄存器
作用:
NFCONT 用于片选控制
nandflash 配置寄存器:
NFCONF 用于初始nandflash的时序控制,主要用于配置该寄存器中的TACLS TWRPH0 TWRPH1 这几个位。
作用分析:
根据上表可以算得各部分时间的最小值,然后根据此值,进行配置
重启控制方式时序逻辑:
写入时序逻辑图:
根据I/O管脚上的命令流,有节奏的操作
写入时序逻辑图:
根据I/O管脚上的命令流,有节奏的操作
擦除时序逻辑:
根据I/O管脚上的命令流,有节奏的操作
NandFlash_control的更多相关文章
随机推荐
- weblogica domain目录 环境变量 如何启动weblogic server
手工启动weblogic server
- 41 - 数据库-pymysql41 - 数据库-pymysql-DBUtils
目录 1 Python操作数据库 2 安装模块 3 基本使用 3.1 创建一个连接 3.2 连接数据库 3.3 游标 3.3.1 利用游标操作数据库 3.3.2 事务管理 3.3.3 执行SQL语句 ...
- RESTful Web 服务:教程
RESTful Web 服务:教程 随着 REST 成为大多数 Web 和 Mobile 应用的默认选择,势必要对它的基本原理有所了解. 在它提出十多年后的今天,REST 已经成为最重要的 Web ...
- BZOJ4840 NEERC2016 Binary Code
Problem BZOJ Solution 可能是因为快要省选了,所以最近更博的频率好像高了点_(:зゝ∠)_ 每个字符串最多有两个状态,然后要满足一些依赖关系,考虑2sat.可以先把字符串的结束节点 ...
- 【hihocoder1251】Today is a rainy day
#include<bits/stdc++.h> ; ; const int inf=0x3f3f3f3f; using namespace std; char s1[N],s2[N]; ] ...
- sed实例收集
url:http://blog.csdn.net/hepeng597/article/details/7852468 一.元字符集 1)^锚定行的开始 如:/^sed/匹配所有以sed开头的行. ...
- python网络编程-socket发送大数据包问题
一:什么是socket大数据包发送问题 socket服务器端或者客户端在向对方发送的数据大于对方接受的缓存时,会出现第二次接受还接到上次命令发送的结果.这就出现象第一次接受结果不全,第二次接果出现第一 ...
- java 证书体系及应用,自已做https证书
原文: https://blog.csdn.net/wjq008/article/details/49071857 接下来我们将域名www.zlex.org定位到本机上.打开C:\Windows\Sy ...
- CF529B 【Group Photo 2 (online mirror version)】
贪心枚举最后方案中最大的h,设为maxh若某个人i的wi与hi均大于maxh,则此方案不可行若某个人恰有一个属性大于maxh,则可确定他是否换属性剩下的人按wi-hi从大到小排序后贪心选择O(nlog ...
- 【剑指Offer面试题】 九度OJ1389:变态跳楼梯
转自:http://www.myexception.cn/program/1973966.html 时间限制:1 秒内存限制:32 兆特殊判题:否提交:2331解决:1332 题目描述: 一只青蛙一次 ...