版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ARM嵌入式体系结构与接口技术嵌入式体系结构与接口技术第第9章章 存储器接口存储器接口第1页/共46页2 9.1 Flash ROM介绍 9.2 Nor Flash操作 9.3 NAND Flash操作 9.4 S3C2410X中Nand Flash控制器的操作 9.5 S3C2410X Nand Flash接口电路与程序设计 9.6 SDRAM芯片介绍 9.7 小结 9.8 思考与练习本章课程:本章课程:第2页/共46页3 Falsh器件的主要特点是在不加电的情况下能长期保持存储的信息。Flash Memory属于EEPROM(电擦除可编程只读存储器)类型。它既有ROM的特点,又有很高的存取
2、速度,而且易于擦除和重写,功耗很小。 Flash主要有两种类型:“或非NOR”和“与非NAND” Intel于1988年首先开发出NOR Flash技术 东芝公司1989年发表了NAND Flash结构 Nand Flash与Nor Flash对比: 1、接口对比 NOR Flash带有通用的SRAM接口,可以轻松地挂接在CPU的地址、数据总线上,对CPU的接口要求低。NOR Flash的特点是芯片内执行(XIP,eXecute In Place),这样应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。NAND Flash器件使用复杂的I/O口来串行地存取数据,8个引脚用来
3、传送控制、地址和数据信息。 9.1 Flash ROM介绍第3页/共46页4 2、容量和成本对比相比起NAND Flash来说,NOR Flash的容量要小,一般在132MByte左右 3、可靠性性对比NAND器件中的坏块是随机分布的,而坏块问题在NOR Flash上是不存在的 4、寿命对比NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次 5、升级对比NOR Flash的升级较为麻烦,因为不同容量的NOR Flash的地址线需求不一样不同容量的NAND Flash的接口是固定的,所以升级简单 6、读写性能对比擦除NOR器件时是以64128KB的块进行的,执行一个写入/擦
4、除操作的时间约为为5s。擦除NAND器件是以832KB的块进行的,执行相同的操作最多只需要4ms。NOR的读速度比NAND稍快一些。9.1 Flash ROM介绍第4页/共46页5 9.2.1 SST39VF160芯片介绍 SST39VF160是一个1M16的CMOS多功能Flash器件 SST39VF160的工作电压为.7,单片存储容量为M字节,采用48脚TSOP封装,16位数据宽度。 SST39VF160引脚图 9.2 Nor Flash操作第5页/共46页6 SST39VF160的引脚功能描述如下表 9.2 Nor Flash操作第6页/共46页7 9.2.2 SST39VF160字编程
5、操作 1、执行3字节装载时序,用于解除软件数据保护 2、装载字地址和字数据 在字编程操作中,地址在CE#或WE#的下升沿(后产生下降沿的那个)锁存,数据在CE#或WE#的上升沿(先产生上升沿的那个)锁存。 3、执行内部编程操作该操作 在第4个WE#或CE#的上升沿出现(先产生上升沿的那个)之后启动编程操作。一旦启动将在20ms内完成。 9.2 Nor Flash操作第7页/共46页8 9.2.3 SST39VF160扇区/块擦除操作 扇区操作通过在最新一个总线周期内执行一个6字节的命令时序(扇区擦除命令30H和扇区地址SA)来启动。块擦除操作通过在最新一个总线周期内执行一个6字节的命令时序(块
6、擦除命令50H和块地址BA)来启动。 9.2 Nor Flash操作第8页/共46页9 9.2.4 SST39VF160芯片擦除操作 芯片擦除操作通过在最新一个总线周期内执行一个6字节的命令5555H地址处的芯片擦除命令10H时序来启动在第6个WE#或CE#的上升沿(先出现上升沿的那个)开始执行擦除操作,擦除过程中只有触发位或数据查询位的读操作有效 9.2 Nor Flash操作第9页/共46页10 9.2.5 SST39VF160与S3C2410X的接口电路 一片SST39VF160以16位的方式和S3C2410的接口电路: 9.2 Nor Flash操作第10页/共46页11 9.2.6
7、SST39VF160存储器的程序设计 1、字编程操作 从内存“DataPtr”地址的连续“WordCnt”个16位的数据写入SST39VF160的“ProgStart”地址 利用了数据查询位(DQ7)和查询位(DQ6)来判断编程操作是否完成 函数中用到的几个宏的定义如下: #define ROM_BASE 0 x00000000 #define CMD_ADDR0 *(volatile U16 *)(0 x5555*2+ROM_BASE) #define CMD_ADDR1 *(volatile U16 *)(0 x2aaa*2+ROM_BASE)9.2 Nor Flash操作第11页/共46
8、页12 9.2.6 SST39VF160存储器的程序设计 2、扇区擦除操作 SectorErase函数实现了一个扇区(扇区的开始地址为“sector”)的擦除工作 注意数据查询位(DQ7)在编程函数和擦除函数中的使用差别 9.2 Nor Flash操作第12页/共46页13 9.2.6 SST39VF160存储器的程序设计 3、读操作 FlashRead函数实现了从“ReadStart”位置,读取“Size”个字节的数据到“DataPtr”中。 void FlashRead(unsigned int ReadStart, unsigned short *DataPtr, unsigned in
9、t Size) int i;ReadStart += ROM_BASE;for(i=0; iSize/2; i+)*(DataPtr+i) = *(unsigned short *)ReadStart+i); 9.2 Nor Flash操作第13页/共46页14 9.3.1 K9F1280芯片介绍 常见的8位Nand Flash有三星公司的K9F1208、K9F1G08、K9F2G08等,K9F1208、K9F1G08、K9F2G08的数据页大小分别为512B、2kB、2kB。 K9F1208存储容量为64M字节,除此之外还有2048K字节的spare存储区。该器件采用TSSOP48封装,工作
10、电压。 K9F1208对528字节一页的写操作所需时间典型值是200s,而对16K字节一块的擦除操作典型仅需2ms。8位I/O端口采用地址、数据和命令复用的方法。这样既可减少引脚数,还可使接口电路简洁。 9.3 NAND Flash操作第14页/共46页15 9.3.1 K9F1280芯片介绍 管脚名称 描述I/O0 I/O7 数据输入输出 CLE命令锁存使能 ALE地址锁存使能CE#片选 RE#读使能 WE#写使能WP#写保护R/B#准备好/忙碌 输出 VCC电源(+2.7V3.6V) VSS地 N.C空管脚9.3 NAND Flash操作第15页/共46页16 9.3.1 K9F1280芯
11、片介绍 1block = 32page;1page = 528byte = 512byte(Main Area) + 16byte(Spare Area) 总容量为 = 4 096(block数量) 32(page/block) 512(byte/page) = 64MB Nand Flash以页为单位读写数据,而以块为单位擦除数据。 对Nand Flash的操作主要包括:读操作、擦除操作、写操作、坏块设别、坏块标识等。 9.3 NAND Flash操作第16页/共46页17 9.3.2 读操作过程 K9F1208的寻址分为4个cycle,分别是A0:7、A9:16、A17:24、A25 读操
12、作的过程为: 发送读取指令; 发送第1个cycle地址; 发送第2个cycle地址; 发送第3个cycle地址; 发送第4个cycle地址; 读取数据至页末 K9F1208提供了两个读指令:“0 x00”、“0 x01”。这两个指令区别在于“0 x00”可以将A8置为0,选中上半页;而“0 x01”可以将A8置为1,选中下半页 读操作的对象为一个页面,建议从页边界开始读写至页结束 9.3 NAND Flash操作第17页/共46页18 9.3.2 读操作过程 K9F1208读操作流程如图 9.3 NAND Flash操作第18页/共46页19 9.3.3 擦除操作过程 擦除的操作过程为: 发送
13、擦除指令“0 x60”; 发送第1个cycle地址(A9A16); 发送第2个cycle地址(A17A24); 发送第3个cycle地址(A25); 发送擦除指令“0 xD0”; 发送查询状态命令字“0 x70”; 读取K9F1208的数据总线,判断I/O 6上的值或判断R/B线上的值,直到I/O 6 = 1或R/ = 1; 判断I/O 0是否为0,从而确定操作是否成功。0表示成功,1表示失败。 擦除的对象是一个数据块,即32个页面。 9.3 NAND Flash操作第19页/共46页20 9.3.3 擦除操作过程 K9F1208擦除操作流程图9.3 NAND Flash操作第20页/共46页
14、21 9.3.4 写操作过程 写入的操作过程为: 发送编程指令“0 x80”; 发送第1个cycle地址(A0A7); 发送第2个cycle地址(A9A16); 发送第3个cycle地址(A17A24); 发送第4个cycle地址(A25); 向K9F1208的数据总线发送一个扇区的数据; 发送编程指令“0 x10”; 发送查询状态命令字“0 x70”; 读取K9F1208的数据总线,判断I/O 6上的值或判断R/线上的值,直到I/O 6=1或R/ =1; 判断I/O 0是否为0,从而确定操作是否成功。0表示成功,1表示失败。 注意:写入的操作对象是一个页面。 9.3 NAND Flash操作
15、第21页/共46页22 9.3.4 写操作过程 K9F1208写操作流程图 9.3 NAND Flash操作第22页/共46页23 9.4.1 S3C2410X Nand Flash控制器概述 S3C2410 x 可以实现从NAND Flash启动和引导系统,在SDRAM上执行主程序代码。 S3C2410 x中的NAND Flash的特性有: 支持读/擦/编程NAND Flash存储器 支持自动引导模式:复位后,引导代码被送入Steppingstone,传送后,引导代码在Setppingstone中运行 具备硬件ECC产出模块 NAND Flash控制器工作机制9.4 S3C2410X中Nan
16、d Flash控制器的操作第23页/共46页24 9.4.2 S3C2410X Nand Flash控制器寄存器详解 配置寄存器NFCONF (地址0 x4E000000) 9.4 S3C2410X中Nand Flash控制器的操作第24页/共46页25 9.4.2 S3C2410X Nand Flash控制器寄存器详解 命令寄存器NFCMD(地址:0 x4e000004) 地址寄存器NFADDR(地址:0 x4E000008) 9.4 S3C2410X中Nand Flash控制器的操作第25页/共46页26 9.4.2 S3C2410X Nand Flash控制器寄存器详解 数据寄存器NFD
17、ATA(地址:0 x4E00000C) 状态寄存器NFSTAT(地址:0 x4E000010) 9.4 S3C2410X中Nand Flash控制器的操作第26页/共46页27 9.5.1 K9F1208和S3C2410X的接口电路 K9F1208和S3C2410X 的接口电路 9.5 S3C2410X Nand Flash接口电路与程序设计第27页/共46页28 9.5.2 S3C2410X NAND Flash寄存器设置 (1)控制器初始化时,需要使能控制器 设置UFCON的15为“1”。 (2)使能NAND Flash芯片 设置UFCON的11为“0”。 (3)通过NAND控制器向NAN
18、D Flash写入命令 设置NFCMD为要发送的命令。 (4)通过NAND控制器向NAND Flash写入地址 设置NFADDR为要发送的地址。 (5)通过NAND控制器向NAND Flash写入数据 设置NFDATA为要写入的数据。9.5 S3C2410X Nand Flash接口电路与程序设计第28页/共46页29 9.5.3 S3C2410X控制K9F1208的程序设计 实现向K9F1208的一个页面中写入0,1,2,3,4,5,6,7,8,9。然后读出数据,打印到串口终端。程序设计如下: 1、NAND Flash控制器相关寄存器及宏定义 2、主测试程序 3、K9F1208初始化函数 4
19、、K9F1208页面读函数 5、K9F1208页面写函数 6、K9F1208块擦除函数 7、调试与运行结果9.5 S3C2410X Nand Flash接口电路与程序设计第29页/共46页30 9.6.1 SDRAM介绍 SDRAM存储一个位的消息只需要一只晶体管,但是需要周期性地充电,才能使保存的信息不消失。 SDRAM的一个存储位单元结构如图 电容器的状态决定了这个 SDRAM单位的逻辑状态是 1还是0。一个充电的电容 器被认为是逻辑上的1, 而“空”的电容器则是0 。9.6 SDRAM芯片介绍第30页/共46页31 9.6.1 SDRAM介绍 SDRAM内部结构 示意图 9.6 SDRA
20、M芯片介绍第31页/共46页32 9.6.1 SDRAM介绍 SDRAM的读取过程: SDRAM的写入过程和读取过程基本一样,这里就不再详细介绍了 在SDRAM读取方式中,当一个读取周期结束后,和都必须失效,然后再进行一个回写过程才能进入到下一次的读取周期中。9.6 SDRAM芯片介绍第32页/共46页33 9.6.1 SDRAM介绍 与Flash存储器相比较,SDRAM不具有掉电保持数据的特性,但其存取速度大大高于Flash存储器,且具有读/写的属性,因此,SDRAM在系统中主要用作程序的运行空间,数据及堆栈区。当系统启动时,CPU首先从复位地址0 x0处读取启动代码,在完成系统的初始化后,
21、程序代码一般应调入SDRAM中运行,以提高系统的运行速度,同时,系统及用户堆栈、运行数据也都放在SDRAM中。 SDRAM的存储单元可以理解为一个电容,总是倾向于放电,为避免数据丢失,必须定时刷新(充电) 目前常用的SDRAM为8位/16位的数据宽度,工作电压一般为。主要的生产厂商为HYUNDAI、Winbond等9.6 SDRAM芯片介绍第33页/共46页34 9.6.2 HY57V561620的结构 HY57V561620存储容量为4M4bank16位(32M字节),工作电压为,常见封装为54脚TSOP,兼容LVTTL接口,支持自动刷新(Auto-Refresh)和自刷新(Self-Ref
22、resh),16位数据宽度9.6 SDRAM芯片介绍第34页/共46页35 9.6.2 HY57V561620的结构引脚名称CLK时钟CKE时钟使能 /CS片选 BA0,BA1组地址选择 A12A0地址总线/RAS行地址锁 /CAS存列地址锁/WE存写使能LDQM,UDQM数据I/O屏蔽DQ15DQ0数据总线VDD/VSS电源/地 VDDQ/VSSQ电源/地 NC未连接9.6 SDRAM芯片介绍第35页/共46页36 9.6.3 接口电路 采用的是利用两片16位的SDRAM构造成一片32位的SDRAM存储系统。9.6 SDRAM芯片介绍第36页/共46页37 9.6.3 接口电路 引脚描述如下
23、: nSRAS:SDRAM行地址选通信号 nSCAS:SDRAM列地址选通信号 nGCS6:SDRAM芯片选择信号 nWBE3:0:SDRAM数据屏蔽信号 SCLK01:SDRAM时钟信号 SCKE:SDRAM时钟允许信号 DATA0:31:32位数据信号 ADDR2:14:行列地址信号 ADDR25:24:bank选择线9.6 SDRAM芯片介绍第37页/共46页38 9.6.3 接口电路 HY57V561620的Bank选择线BAn与S3C2410X地址线的对应关系,依照表9-12选择连接。HY57V561620的Bank大小位64MB,总线宽度位16位,单个器件容量为256MB,存储空间配置为(4MB164BANK)2片。所以BANK地址对应A25:24 SDRAM Bank地址配置表 9.6 SDRAM芯片介绍第38页/共46页39 9.6.4 寄存器设置 1BWSCON寄存器 BWSCON寄存器主要用来设置外接存储器的总线宽度和等待状态 BWSCON寄存器在Bank6上的位定义 SDRAM(Bank6)采用32位总线宽度,因此,DW6=10,其他2位采用缺省值 9.6 SDRAM芯片介
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程进度保障及质量标准承诺书范文6篇
- 优生优育保障承诺书4篇
- 2019高压电工作业国家总局题库全套
- 家庭生活写人记事6篇
- 原材料供应商变更告知函5篇范本
- 知识管理分享与交流指南
- 消化科术中术后监护管理
- 供应商质量改善计划确认函(4篇)
- 企业资源配置方案编写参考模板
- 企业运营效率提升工具包版
- 2024年电脑动画13464自考复习题库(含答案)
- 2024年中国铁路上海局集团有限公司招聘笔试参考题库含答案解析
- 大学有机化学实验必做试题
- 幼儿园小班绘本故事《大熊山》
- S型单级双吸离心泵安装说明中英文
- 建设施工分包安全管理培训讲义图文并茂
- (完整版)英语仁爱版九年级英语下册全册教案
- JJG 602-2014低频信号发生器
- GA 1800.6-2021电力系统治安反恐防范要求第6部分:核能发电企业
- 教学课件-氢氧化钠溶液的配制与标定
- 人教版政治七年级下册全套课件
评论
0/150
提交评论