版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式系统中Nand-Flash地原理及应用文档说明: 当前各类嵌入式系统开发设计中,存储模块是不可或缺地重要方面.NOR和NAND是目前市场上两种主要地非易失闪存技术. Nor-flash存储器地容量较小、写入速度较慢,但因其随机读取速度快,因此在嵌入式系统中,常应用在程序代码地存储中.Nor-flash存储器地内部结构决定它不适合朝大容量发展;而Nand-flash存储器结构则能提供极高地单元密度,可以达到很大地存储容量,并且写入和擦除地速度也很快.b5E2RGbCAP Nand-flash存储器是flash存储器地-种,其内部采用非线性宏单元模式,为固态大容量存储器地实现提供了廉价有效地
2、解决方案.Nand-flash存储器具有容量较大,改写速度快,适用于大量资料地存储,因而在业界得到了越来越广泛地应用,如嵌入式产品中包括数码相机、MP3随身听记忆卡、体积小巧地U盘等. 本文以三星公司地K9F1208UOB芯片为例,介绍Nand-flash存储器芯片地读写流程和时序.p1EanqFDPw 1 Nand-Flash存储器地工作原理 1.1 Nand-Flash存储器地组成结构及指令集 K9F1208UOB地容量为64Mb,存储空间按128K个页(行)、每页中528个字节(列)地组成方式构成.备用地16列,位于列地址地512-527.K9F1208UOB还将存储空间分为块(bloc
3、k),每1块由32个页构成.因此K9F1208UOB中一共有4096个块.这种“块-页”结构,恰好能满足文件系统中划分簇和扇区地结构要求.K9F1208UOB地内部结构如图1所示.DXDiTa9E3d 图1 K9F1208UOB地内部结构 K9F1208UOB地读和写都以页为单位,擦除则以块为单位进行操作. K9F1208UOB地地址通过8位端口传送,有效地节省了引脚地数量,并能够保持不同密度器件引脚地一致性,系统可以在电路不作改动地情况下升级为高容量存储器件. RTCrpUDGiT K9F1208UOB通过CLE和ALE信号线实现I/O口上指令和地址地复用.指令、地址和数据都通过拉低WE和C
4、E从I/O口写入器件中.有一些指令只需要一个总线周期完成,例如,复位指令、读指令和状态读指令等;另外一些指令,例如页写入和块擦除,则需要2个周期,其中一个周期用来启动,而另一个周期用来执行.5PCzVD7HxA 1.2 Nand-Flash操作 1.2.1 页读操作 在初始上电时,器件进入缺省地“读方式1模式”.在这一模式下,页读操作通过将00h指令写入指令寄存器,接着写入3个地址(1个列地址,2个行地址)来启动.一旦页读指令被器件锁存,下面地页读操作就不需要再重复写入指令了. jLBHrnAILg 写入指令和地址后,处理器可以通过对信号线R/B地分析来判断该操作是否完成.如果信号为低电平,表
5、示器件正“忙”;为高电平,说明器件内部操作完成,要读取地数据被送入了数据寄存器.外部控制器可以在以50ns为周期地连续RE脉冲信号地控制下,从I/O口依次读出数据.连续页读操作中,输出地数据是从指定地列地址开始,直到该页地最后-个列地址地数据为止.xHAQX74J0X 1.2.2 页写操作 K9F1208UOB地写入操作也以页为单位.写入必须在擦除之后,否则写入将出错. 页写入周期总共包括3个步骤:写入串行数据输入指令(80h),然后写入3个字节地地址信息,最后串行写入数据.串行写入地数据最多为528字节,它们首先被写入器件内地页寄存器,接着器件进入一个内部写入过程,将数据从页寄存器写入存储宏
6、单元. LDAYtRyKfE 串行数据写入完成后,需要写入“页写入确认”指令10h,这条指令将初始化器件地内部写入操作.如果单独写入10h而没有前面地步骤,则10h不起作用.10h写入之后,K9F1208UOB地内部写控制器将自动执行内部写入和校验中必要地算法和时序,这时系统控制器就可以去做别地事了. Zzz6ZB2Ltk 内部写入操作开始后,器件自动进入“读状态寄存器”模式.在这一模式下,当RE和CE为低电平时,系统可以读取状态寄存器.可以通过检测R/B地输出,或读状态寄存器地状态位(I/O 6)来判断内部写入是否结束.在器件进行内部写入操作时,只有读状态寄存器指令和复位指令会被响应.当页写
7、入操作完成,应该检测写状态位(I/O 0)地电平. dvzfvkwMI1 内部写校验只对没有成功地写为0地情况进行检测.指令寄存器始终保持着读状态寄存器模式,直到其他有效地指令写入指令寄存器为止.rqyn14ZNXI 1.2.3 块擦除 擦除操作是以块为单位进行地.擦除地启动指令为60h,块地址地输入通过两个时钟周期完成.这时只有地址位A14到A24是有效地,A9到A13则被忽略.块地址载入之后执行擦除确认指令D0h,它用来初始化内部擦除操作.擦除确认命令还用来防止外部干扰产生擦除操作地意外情况.器件检测到擦除确认命令输入后,在WE地上升沿启动内部写控制器开始执行擦除和擦除校验.内部擦除操作完
8、成后,检测写状态位(I/O 0),从而了解擦除操作是否有错误发生.EmxvxOtOco 1.2.4 读状态寄存器 K9F1208UOB包含一个状态寄存器,该寄存器反应了写入或擦除操作是否完成,或写入和擦除操作是否无错.写入70h指令,启动读状态寄存器周期.状态寄存器地内容将在CE或RE地下降沿处送出至I/O端口. SixE2yXPq5 器件一旦接收到读状态寄存器地指令,它就将保持状态寄存器在读状态,直到有其他地指令输入.因此,如果在任意读操作中采用了状态寄存器渎操作,则在连续页读地过程中,必须重发00h或50h指令.6ewMyirQFL 1.2.5 读器件ID K9F1208UOB器件具有一个
9、产品鉴定识别码(ID),系统控制器可以读出这个ID,从而起到识别器件地作用.读ID地步骤是:写入90h指令,然后写入一个地址00h.在两个读周期下,厂商代码和器件代码将被连续输出至I/O口. kavU42VRUs 同样,一旦进入这种命令模式,器件将保持这种命令状态,直到接收到其他地指令为止. 1.2.6 复位 器件提供一个复位(RESET)指令,通过向指令寄存器写入FFh来完成对器件地复位.当器件处于任意读模式、写入或擦除模式地忙状态时,发送复位指令可以使器件中止当前地操作,正在被修改地存储器宏单元地内容不再有效,指令寄存器被清零并等待下一条指令地到来.当WP为高时,状态寄存器被清为C0h.y
10、6v3ALoS89 2 系统硬件连线及软件设计 2.1硬件连线 K9F1208UOB和S3C2440A地接口电路如图2所示. 图2 K9F1208UOB与S3C2440A硬件电路 2.2 软件设计 步骤1:Nand-Flash初始化 利用ADS1.2等工具建立工程文件nandflash_test.mcp,在Nand.c文件中Test_K9S1208子函数实现了主要测试功能.gpacon = rGPACON;rGPACON=(rGPACON &(0x3f17)|(0x3f17);首先备份rGPACON地内容,再设置GPA17-22地工作方式.然后调用Nand-Flash初始化函数.NF8_Ini
11、t0;/初始化函数初始化函数地实现源码如下:rNFCONF=(TACLS12)|(TWRPH08)I(TWRPH14)|(00):rNFCONT=(013)|(012)|(010)|(09)|(08)|(16)|(15)|(14)|(11)|(18):Uart_Printf(Maker:%x,Device:%x ,maker,device);NF8_Print_Id()源码如下:NF_CMD(0x90);/写入90h指令NF_ADDR(0x0);/写入地址00hfor(i=0;i10;i+);Uart_Printf(NFSTAT:0x%x ,rNFSTAT);id=NF_RDDATA8()8;
12、/Maker code 0xec读出ID值id |=NF_RDDATA8();/Devide code(K9S1208V:0x76),(K9K2G16U0M:0xca)0YujCfmUCw 步骤3:页读写程序 本实验实现了某页地写及读出验证功能.Test_NFS_Rw子函数实现这一功能.程序首先初始化要写入地数据,*dstPt是要读出验证地数据,先填0;*srcPt是要写入地数据,先用随机数填满.for(i=0;i512;i+) *dstPt+=0x0;/填0for(i=0;i512;i+)#if ADS10=TRUEif(offset=-1) *srcPt+=rand()%0xff;/随机数
13、填满#elseif(offset=-1) srcPt+ =i%0xf;#endifelse *srcPt+=i+offset;写之前先进行擦除工作:if(NF8_EraseBIock(block)=FAIL) return;然后进行页写入操作:if(NF8_WritePage(block,page,srcPt)=FAIL) return;将用随机数填满地srcPt指向地数据写入到指定地页中.写入之后再读出验证:if(NF8_ReadPage(block,page,dstPt)=FAIL) return;Uart_Printf(Checking data. );for(error=0,i=0;i
14、512;i+)if(*srcPt+!=*dstPt+)/比较操作Uart_Printf(Error:%dW:%x,R:%x ,i,*srcPt,*dstPt);error+;if(error!=0)Uart_Printf(Fail to R/W test(%d). ,error);return(2);elseUart_Printf(R/W test OK. );return(1); eUts8ZQVRd 其中NF8_ReadPage(block,page,dstPt)将读出地数据放入dstPt指向地地址空间里.最后将写入地数据和读出地数据比较,打印验证信息.sQsAEJkW5T 步骤4:编译工
15、程所有地函数都实现以后,通过ADS1.2进行编泽,生成可执行文件.在工程文件夹 andflash_testaandflash_test_DatakDebugRel下,可以看到nandflash_test.bin可执行文件.GMsIasNXkA 步骤5:下载程序运行 将串口线与硬件开发系统板串口和开发PC机地COM1连接好(主要用于回显),用USB线和开发PC 机地USB口相连后(主要用于数据地下载),打开DNW 软件,将串口设置为COM1,比特率设置为,USB下载地址设为0x. TIrRGchYzg 使用DNW 将前面生成地可执行文件下载到内存中去运行. 3 结束语 本文主要讨论了Nand-f
16、lash存储器芯片地工作原理以及以三星公司基于ARM公司地ARM920T处理器核S3C2440A为平台举了一个测试实例,让读者对整个存储系统地软硬件设计过程有了一个较为全面地了解,便于在其它嵌入式系统设计中运用.7EqZcWLZNX版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有This article includes some parts, including text, pictures, and design. Copyright is personal ownership.lzq7IGf02E用户可将本文地内容或服务用于个人学习、研究或欣赏,以及其他非商
17、业性或非盈利性用途,但同时应遵守著作权法及其他相关法律地规定,不得侵犯本网站及相关权利人地合法权利.除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人地书面许可,并支付报酬.zvpgeqJ1hkUsers may use the contents or services of this article for personal study, research or appreciation, and other non-commercial or non-profit purposes, but at the same time, they shall abide by th
18、e provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.NrpoJac3v1转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目地地合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任.1nowfTG4KIReproduction or quo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026北京印钞有限公司招聘26人考试参考试题及答案解析
- 2026传奇腾芳幼儿园公开招聘5人考试参考题库及答案解析
- 2026年1月广西百色市田阳区城镇公益性岗位工作人员招聘1人考试备考试题及答案解析
- 2026重庆医科大学编外聘用人员招聘(第2轮)考试备考试题及答案解析
- 2026江西吉安市井冈山垦殖场农产品开发有限责任公司面向社会招聘3人考试参考试题及答案解析
- 2026广西南宁马山县人民法院招聘1人考试备考题库及答案解析
- 胺碘酮的儿科应用
- 2025浙江杭州余杭水务有限公司招聘36人考试备考题库及答案解析
- 2026江西晶昊盐化有限公司专业技术技能人才(第二次)招聘6人考试备考试题及答案解析
- 2026湖北省面向同济大学普通选调生招录考试备考题库及答案解析
- 室外给排水管道施工技术交底范本
- 移动电源生产工艺流程
- 动静脉内瘘术后护理查房规范
- 核安全事故培训课件
- 码头泊位改造试运行方案
- 2025年中考英语真题分类汇编(全国)专题04 时态、语态、三大从句及常识和情景交际(原卷版)
- 【语文】北京市朝阳外语小学小学二年级上册期末试卷(含答案)
- 追女生的聊天技巧
- 船舶代理与货运作业指导书
- 药物配置错误不良事件
- 员工技能矩阵管理办法
评论
0/150
提交评论