ARM第9章存储器接口.ppt

上传人:本田雅阁 文档编号:2101885 上传时间:2019-02-14 格式:PPT 页数:46 大小:720.01KB
返回 下载 相关 举报
ARM第9章存储器接口.ppt_第1页
第1页 / 共46页
ARM第9章存储器接口.ppt_第2页
第2页 / 共46页
ARM第9章存储器接口.ppt_第3页
第3页 / 共46页
亲,该文档总共46页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《ARM第9章存储器接口.ppt》由会员分享,可在线阅读,更多相关《ARM第9章存储器接口.ppt(46页珍藏版)》请在三一文库上搜索。

1、ARM嵌入式体系结构与接口技术 第9章 存储器接口,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 思考与练习,本章课程:,3,Falsh器件的主要特点是在不加电的情况下能长期保持存储的信息。Flash Memory属于EEPROM(电擦除可编程只读存储器)类型。它既有ROM的特点,又有很高的存取速度,而且易于擦除和重写,功耗很小。 Flash主要有两种类型:“或非N

2、OR”和“与非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个引脚用来传送控制、地址和数据信息。,9.1 Flash ROM介绍,4,2、容

3、量和成本对比 相比起NAND Flash来说,NOR Flash的容量要小,一般在132MByte左右 3、可靠性性对比 NAND器件中的坏块是随机分布的,而坏块问题在NOR Flash上是不存在的 4、寿命对比 NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次 5、升级对比 NOR Flash的升级较为麻烦,因为不同容量的NOR Flash的地址线需求不一样 不同容量的NAND Flash的接口是固定的,所以升级简单 6、读写性能对比 擦除NOR器件时是以64128KB的块进行的,执行一个写入/擦除操作的时间约为为5s。擦除NAND器件是以832KB的块进行的,执行相

4、同的操作最多只需要4ms。NOR的读速度比NAND稍快一些。,9.1 Flash ROM介绍,5,9.2.1 SST39VF160芯片介绍 SST39VF160是一个1M16的CMOS多功能Flash器件 SST39VF160的工作电压为.73.6V,单片存储容量为M字节,采用48脚TSOP封装,16位数据宽度。 SST39VF160引脚图,9.2 Nor Flash操作,6,SST39VF160的引脚功能描述如下表,9.2 Nor Flash操作,7,9.2.2 SST39VF160字编程操作 1、执行3字节装载时序,用于解除软件数据保护 2、装载字地址和字数据 在字编程操作中,地址在CE#

5、或WE#的下升沿(后产生下降沿的那个)锁存,数据在CE#或WE#的上升沿(先产生上升沿的那个)锁存。 3、执行内部编程操作该操作 在第4个WE#或CE#的上升沿出现(先产生上升沿的那个)之后启动编程操作。一旦启动将在20ms内完成。,9.2 Nor Flash操作,8,9.2.3 SST39VF160扇区/块擦除操作 扇区操作通过在最新一个总线周期内执行一个6字节的命令时序(扇区擦除命令30H和扇区地址SA)来启动。块擦除操作通过在最新一个总线周期内执行一个6字节的命令时序(块擦除命令50H和块地址BA)来启动。,9.2 Nor Flash操作,9,9.2.4 SST39VF160芯片擦除操作

6、 芯片擦除操作通过在最新一个总线周期内执行一个6字节的命令5555H地址处的芯片擦除命令10H时序来启动在第6个WE#或CE#的上升沿(先出现上升沿的那个)开始执行擦除操作,擦除过程中只有触发位或数据查询位的读操作有效,9.2 Nor Flash操作,10,9.2.5 SST39VF160与S3C2410X的接口电路 一片SST39VF160以16位的方式和S3C2410的接口电路:,9.2 Nor Flash操作,11,9.2.6 SST39VF160存储器的程序设计 1、字编程操作 从内存“DataPtr”地址的连续“WordCnt”个16位的数据写入SST39VF160的“ProgSta

7、rt”地址 利用了数据查询位(DQ7)和查询位(DQ6)来判断编程操作是否完成 函数中用到的几个宏的定义如下: #define ROM_BASE 0x00000000 #define CMD_ADDR0 *(volatile U16 *)(0x5555*2+ROM_BASE) #define CMD_ADDR1 *(volatile U16 *)(0x2aaa*2+ROM_BASE),9.2 Nor Flash操作,12,9.2.6 SST39VF160存储器的程序设计 2、扇区擦除操作 SectorErase函数实现了一个扇区(扇区的开始地址为“sector”)的擦除工作 注意数据查询位(D

8、Q7)在编程函数和擦除函数中的使用差别,9.2 Nor Flash操作,13,9.2.6 SST39VF160存储器的程序设计 3、读操作 FlashRead函数实现了从“ReadStart”位置,读取“Size”个字节的数据到“DataPtr”中。 void FlashRead(unsigned int ReadStart, unsigned short *DataPtr, unsigned int Size) int i; ReadStart += ROM_BASE; for(i=0; iSize/2; i+) *(DataPtr+i) = *(unsigned short *)ReadS

9、tart+i); ,9.2 Nor Flash操作,14,9.3.1 K9F1280芯片介绍 常见的8位Nand Flash有三星公司的K9F1208、K9F1G08、K9F2G08等,K9F1208、K9F1G08、K9F2G08的数据页大小分别为512B、2kB、2kB。 K9F1208存储容量为64M字节,除此之外还有2048K字节的spare存储区。该器件采用TSSOP48封装,工作电压2.73.6V。 K9F1208对528字节一页的写操作所需时间典型值是200s,而对16K字节一块的擦除操作典型仅需2ms。8位I/O端口采用地址、数据和命令复用的方法。这样既可减少引脚数,还可使接口

10、电路简洁。,9.3 NAND Flash操作,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操作,16,9.3.1 K9F1280芯片介绍 1block = 32page;1page = 528byte = 512byte(Main Area) + 16byte(Spare Area) 总容量为 = 4 096(block数

11、量) 32(page/block) 512(byte/page) = 64MB Nand Flash以页为单位读写数据,而以块为单位擦除数据。 对Nand Flash的操作主要包括:读操作、擦除操作、写操作、坏块设别、坏块标识等。,9.3 NAND Flash操作,17,9.3.2 读操作过程 K9F1208的寻址分为4个cycle,分别是A0:7、A9:16、A17:24、A25 读操作的过程为: 发送读取指令; 发送第1个cycle地址; 发送第2个cycle地址; 发送第3个cycle地址; 发送第4个cycle地址; 读取数据至页末 K9F1208提供了两个读指令:“0x00”、“0x

12、01”。这两个指令区别在于“0x00”可以将A8置为0,选中上半页;而“0x01”可以将A8置为1,选中下半页 读操作的对象为一个页面,建议从页边界开始读写至页结束,9.3 NAND Flash操作,18,9.3.2 读操作过程 K9F1208读操作流程如图,9.3 NAND Flash操作,19,9.3.3 擦除操作过程 擦除的操作过程为: 发送擦除指令“0x60”; 发送第1个cycle地址(A9A16); 发送第2个cycle地址(A17A24); 发送第3个cycle地址(A25); 发送擦除指令“0xD0”; 发送查询状态命令字“0x70”; 读取K9F1208的数据总线,判断I/O

13、 6上的值或判断R/B线上的值,直到I/O 6 = 1或R/ = 1; 判断I/O 0是否为0,从而确定操作是否成功。0表示成功,1表示失败。 擦除的对象是一个数据块,即32个页面。,9.3 NAND Flash操作,20,9.3.3 擦除操作过程 K9F1208擦除操作流程图,9.3 NAND Flash操作,21,9.3.4 写操作过程 写入的操作过程为: 发送编程指令“0x80”; 发送第1个cycle地址(A0A7); 发送第2个cycle地址(A9A16); 发送第3个cycle地址(A17A24); 发送第4个cycle地址(A25); 向K9F1208的数据总线发送一个扇区的数据

14、; 发送编程指令“0x10”; 发送查询状态命令字“0x70”; 读取K9F1208的数据总线,判断I/O 6上的值或判断R/线上的值,直到I/O 6=1或R/ =1; 判断I/O 0是否为0,从而确定操作是否成功。0表示成功,1表示失败。 注意:写入的操作对象是一个页面。,9.3 NAND Flash操作,22,9.3.4 写操作过程 K9F1208写操作流程图,9.3 NAND Flash操作,23,9.4.1 S3C2410X Nand Flash控制器概述 S3C2410x 可以实现从NAND Flash启动和引导系统,在SDRAM上执行主程序代码。 S3C2410x中的NAND Fl

15、ash的特性有: 支持读/擦/编程NAND Flash存储器 支持自动引导模式:复位后,引导代码被送入Steppingstone,传送后,引导代码在Setppingstone中运行 具备硬件ECC产出模块 NAND Flash控制器工作机制,9.4 S3C2410X中Nand Flash控制器的操作,24,9.4.2 S3C2410X Nand Flash控制器寄存器详解 配置寄存器NFCONF (地址0x4E000000),9.4 S3C2410X中Nand Flash控制器的操作,25,9.4.2 S3C2410X Nand Flash控制器寄存器详解 命令寄存器NFCMD(地址:0x4e

16、000004) 地址寄存器NFADDR(地址:0x4E000008),9.4 S3C2410X中Nand Flash控制器的操作,26,9.4.2 S3C2410X Nand Flash控制器寄存器详解 数据寄存器NFDATA(地址:0x4E00000C) 状态寄存器NFSTAT(地址:0x4E000010),9.4 S3C2410X中Nand Flash控制器的操作,27,9.5.1 K9F1208和S3C2410X的接口电路 K9F1208和S3C2410X 的接口电路,9.5 S3C2410X Nand Flash接口电路与程序设计,28,9.5.2 S3C2410X NAND Flas

17、h寄存器设置 (1)控制器初始化时,需要使能控制器 设置UFCON的15为“1”。 (2)使能NAND Flash芯片 设置UFCON的11为“0”。 (3)通过NAND控制器向NAND Flash写入命令 设置NFCMD为要发送的命令。 (4)通过NAND控制器向NAND Flash写入地址 设置NFADDR为要发送的地址。 (5)通过NAND控制器向NAND Flash写入数据 设置NFDATA为要写入的数据。,9.5 S3C2410X Nand Flash接口电路与程序设计,29,9.5.3 S3C2410X控制K9F1208的程序设计 实现向K9F1208的一个页面中写入0,1,2,3

18、,4,5,6,7,8,9。然后读出数据,打印到串口终端。程序设计如下: 1、NAND Flash控制器相关寄存器及宏定义 2、主测试程序 3、K9F1208初始化函数 4、K9F1208页面读函数 5、K9F1208页面写函数 6、K9F1208块擦除函数 7、调试与运行结果,9.5 S3C2410X Nand Flash接口电路与程序设计,30,9.6.1 SDRAM介绍 SDRAM存储一个位的消息只需要一只晶体管,但是需要周期性地充电,才能使保存的信息不消失。 SDRAM的一个存储位单元结构如图 电容器的状态决定了这个 SDRAM单位的逻辑状态是 1还是0。一个充电的电容 器被认为是逻辑上

19、的1, 而“空”的电容器则是0 。,9.6 SDRAM芯片介绍,31,9.6.1 SDRAM介绍 SDRAM内部结构 示意图,9.6 SDRAM芯片介绍,32,9.6.1 SDRAM介绍 SDRAM的读取过程: SDRAM的写入过程和读取过程基本一样,这里就不再详细介绍了 在SDRAM读取方式中,当一个读取周期结束后,和都必须失效,然后再进行一个回写过程才能进入到下一次的读取周期中。,9.6 SDRAM芯片介绍,33,9.6.1 SDRAM介绍 与Flash存储器相比较,SDRAM不具有掉电保持数据的特性,但其存取速度大大高于Flash存储器,且具有读/写的属性,因此,SDRAM在系统中主要用

20、作程序的运行空间,数据及堆栈区。当系统启动时,CPU首先从复位地址0x0处读取启动代码,在完成系统的初始化后,程序代码一般应调入SDRAM中运行,以提高系统的运行速度,同时,系统及用户堆栈、运行数据也都放在SDRAM中。 SDRAM的存储单元可以理解为一个电容,总是倾向于放电,为避免数据丢失,必须定时刷新(充电) 目前常用的SDRAM为8位/16位的数据宽度,工作电压一般为3.3V。主要的生产厂商为HYUNDAI、Winbond等,9.6 SDRAM芯片介绍,34,9.6.2 HY57V561620的结构 HY57V561620存储容量为4M4bank16位(32M字节),工作电压为3.3V,

21、常见封装为54脚TSOP,兼容LVTTL接口,支持自动刷新(Auto-Refresh)和自刷新(Self-Refresh),16位数据宽度,9.6 SDRAM芯片介绍,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芯片介绍,36,9.6.3 接口电路 采用的是利用两片16位的SDRA

22、M构造成一片32位的SDRAM存储系统。,9.6 SDRAM芯片介绍,37,9.6.3 接口电路 引脚描述如下: nSRAS:SDRAM行地址选通信号 nSCAS:SDRAM列地址选通信号 nGCS6:SDRAM芯片选择信号 nWBE3:0:SDRAM数据屏蔽信号 SCLK01:SDRAM时钟信号 SCKE:SDRAM时钟允许信号 DATA0:31:32位数据信号 ADDR2:14:行列地址信号 ADDR25:24:bank选择线,9.6 SDRAM芯片介绍,38,9.6.3 接口电路 HY57V561620的Bank选择线BAn与S3C2410X地址线的对应关系,依照表9-12选择连接。HY

23、57V561620的Bank大小位64MB,总线宽度位16位,单个器件容量为256MB,存储空间配置为(4MB164BANK)2片。所以BANK地址对应A25:24 SDRAM Bank地址配置表,9.6 SDRAM芯片介绍,39,9.6.4 寄存器设置 1BWSCON寄存器 BWSCON寄存器主要用来设置外接存储器的总线宽度和等待状态 BWSCON寄存器在Bank6上的位定义 SDRAM(Bank6)采用32位总线宽度,因此,DW6=10,其他2位采用缺省值,9.6 SDRAM芯片介绍,40,9.6.4 寄存器设置 2BANKCONn寄存器的设置 S3C2410X有8个BANKCONn寄存器

24、,分别对应着Bank0Bank7。Bank6Bank7可以作为FP/EDO/SDRAM等类型存储器的映射空间 BANKCONn寄存器在Bank6和Bank7上的位定义 BANKCONn寄存器在MT=11时的相关位定义 Trcd是从行使能到列使能的延迟,根据S3C2410X的HCLK频率(100M)及HY57V561620特性,此项取01。SCAN为列地址线数量,此项根据HY57V561620特性取01。,9.6 SDRAM芯片介绍,41,9.6.4 寄存器设置 3REFRESH寄存器是DRAM/SDRAM的刷新控制器,9.6 SDRAM芯片介绍,42,9.6.4 寄存器设置 4、BANKSIZ

25、E寄存器,9.6 SDRAM芯片介绍,43,9.6.4 寄存器设置 5、MRSR寄存器 MRSR寄存器有2个,为MRSRB6和MRSRB7对应着Bank6和Bank7 注意:当代码在SDRAM中运行时,绝不能够重新配置MRSR寄存器。 在掉电模式下,SDRAM必须进入SDRAM的自我刷新模式。,9.6 SDRAM芯片介绍,44,本章重点讲解了在嵌入式系统中常用的各种存储器,以及在S3C2410X芯片中NAND Flash、NOR Flash、SDRAM的操作方法。,9.7 小结,45,9-1 Nor Flash和Nand Flash的特征及它们之间特性的对比? 9-2 Nor Flash的读、写、擦擦操作方法? 9-3 Nand Flash的读、写、擦擦操作方法? 9-4 SDRAM和RAM的区别?,9.8 思考与练习,46,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1