- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
s3c2410 NandFlash K9F1208U0A/K9F1208U0B的读取操作
时间:2008-07-30 ? 来源: ? 作者:蔡于清 ? 点击:1684 ? 字体大小:【大 中 小】
-
??? 我的板子上使用的是SAMSUNG的K9F1208U0B,下面我将对此型号的NandFlash读取操作做一个讲解。??? 首先我们先从物理结构上来了解这颗芯片,结构图如下所示???? 正如硬盘的盘片被分为磁道,每个磁道又被分为若干扇区,一块Nand Flash被分为若干Block,每个Block又被分为若干Page。??? 由上图我们可以知道flash中Byte(字节),Page(页),Block(块)3个单位之间的关系为 1 Page =512 Bytes Data Field+ 16 Bytes Spare Field1 Blcok=32 Pages??? 我们讨论的K9F1208U0B总共有4096 个Blocks,故我们可以知道这块flash的容量为4096 *(32 *528)=Bytes = 66 MB??? 但事实上每个Page上的最后16Bytes是用于存贮检验码用的,并不能存放实际的数据,所以实际上我们可以操作的芯片容量为4096 *(32 *512) =Bytes = 64 MB????由上图所示,1个Page总共由528 Bytes组成,这528个字节按顺序由上而下以列为单位进行排列(1列代表一个Byte。第0行为第0 Byte ,第1行为第1 Byte,以此类推,每个行又由8个位组成,每个位表示1个Byte里面的1bit)。这528Bytes按功能分为两大部分,分别是Data Field和Spare Field,其中Spare Field占528Bytes里的16Bytes,这16Bytes是用于在读写操作的时候存放校验码用的,一般不用做普通数据的存储区,除去这 16Bytes,剩下的512Bytes便是我们用于存放数据用的Data Field,所以一个Page上虽然有528个Bytes,但我们只按512Bytes进行容量的计算。??? Data Field按位置关系又可分为两个部分,分别称为1st half与2nd half,每个half各占256个bytes。或许你会感到纳闷,为什么要把DataField分为两个部分?把他们看做一个整体进行操作不就好了吗?呵呵,凡事都有因果关系,这么分块自然有它的道理所在,但现在还不是告诉你答案的时候。我们还是先讨论一下它的操作吧。??? 对K9F1208U0B的操作是通过向Nand Flash命令寄存器(对于s3c2410来说此寄存器为NFCMD,内存映射地址为0x4e000004)发送命令队列进行的,为什么说是命令队列?就是因为要完成某个操作的时候发送的不是一条命令,而是连续几条命令或是一条命令加几个参数下面是K9F1208U0B的操作命令集:???? 读命令有两个,分别是 Read1,Read2其中Read1用于读取Data Field的数据,而Read2则是用于读取Spare Field的数据。对于Nand Flash来说,读操作的最小操作单位为Page,也就是说当我们给定了读取的起始位置后,读操作将从该位置开始,连续读取到本Page的最后一个 Byte为止(可以包括Spare Field)
Nand Flash的寻址??? Nand Flash的地址寄存器把一个完整的Nand Flash地址分解成Column Address与Page Address.进行寻址
Column Address: 列地址。Column Address其实就是指定Page上的某个Byte,指定这个Byte其实也就是指定此页的读写起始地址。
Page Address:页地址。由于页地址总是以512Bytes对齐的,所以它的低9位总是0。确定读写操作是在Flash上的哪个页进行的。
Read1命令??? 当我们得到一个Nand Flash地址src_addr时我们可以这样分解出Column Address和Page Addresscolumn_addr=src_addr%512;???????????????????????? // column addresspage_address=(src_addr9);?????????????????????? // page address??? 也可以这么认为,一个Nand Flash地址的A0~A7是它的column_addr,A9~A25是它的Page Address。(注意地址位A8并没有出现,也就是A8被忽略,在下面你将了解到这是什么原
您可能关注的文档
- QC安装与配置手册.docx
- QlikView课程2_产品安装及产品组件介绍.ppt
- QT 常用控件使用.pdf
- QTP中常用VB函数.pdf
- QTP中使用 FSO对象和vbs中依附FSO的对象.docx
- QT编码风格及规范.pdf
- qt编译与环境配置总结.docx
- QT简介和安装.pdf
- QT中调试器设置.doc
- QX100用于HER2拷贝数变异检测评价.pdf
- 山东省即墨市四年级数学期末点睛提升黑金试题(详细参考解析)详细答案和解析x - 创新小学教育理念与实践 .pdf
- 国开—管理英语4形考1-8测试及答案 .pdf
- 2024年高考真题——物理 试卷(黑吉辽卷)解析版 .pdf
- 2023-2024学年浙江省台州市路桥区部编版四年级上册期末考试语文试卷(解析版) .pdf
- 山东省东营市2023-2024学年高二下学期期末考试历史(解析版) .pdf
- 内蒙古自治区锡林浩特市初中历史九年级期末下册点睛提升实战演练题(详细参考解析)x - 经典试题解析与模拟 .pdf
- 【《建筑工程企业工程款供应链金融ABS应用探究》3700字】 .pdf
- 医学类基础综合-军队文职考试试卷(共五套) .pdf
- 基层防火力量合作与联动机制构建研究 .pdf
- 北京大学软件与微电子学院《数字电路》逻辑设计[专业硕士]历年考研真题汇编 .pdf
文档评论(0)