第4章 存储器接口电路设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)可用 语言来编写,向addr地 可用C语言来编写 可用 语言来编写, 地 址单元写入数据data和从 和从addr地址单 址单元写入数据 和从 地址单 元读出数据。 元读出数据。
#define _WR(addr,data) *((U16 *)(addr<<1))=(U16)data
#define _RD(addr)
4.2.5 只读存储器ROM
• 掩膜ROM
PROM一次性编程的只读存储器
EPROM可擦除可编程的只读存储器 可擦除可编程的只读存储器
4.2.6 Flash 存储器接口
F1ash闪速存储器又称快擦型存储器,它是在 闪速存储器又称快擦型存储器, 闪速存储器又称快擦型存储器 EPROM和EEPROM工艺基础上产生的种新型的、具有性 工艺基础上产生的种新型的、 能价格比更好、可靠性更高的可擦写非易失性存储器。 能价格比更好、可靠性更高的可擦写非易失性存储器。 Flash按内部构架和实现技术可以分为AND、NAND、 按内部构架和实现技术可以分为 、 、 NOR等几种,目前以NOR Flash和NAND Flash为主流。 等几种, 为主流。 NOR的特点是:芯片内执行,即应用程序可以不必 的特点是: 的特点是 芯片内执行, 内运行; 把代码读到系统RAM中而直接在Flash内运行;传输效率 很高, ~ 的小容量时具有很高的成本效益, 很高,在1~16MB的小容量时具有很高的成本效益,但 是很低的写入和擦除速度大大影响了它的性能。 是很低的写入和擦除速度大大影响了它的性能。 NAND的特点是:极高的单元密度,可以达到高存 的特点是: 的特点是 极高的单元密度, 储密度;写入和擦除的速度也很快, 储密度;写入和擦除的速度也很快,但NAND需要特殊 的系统接口来串行地存取数据。 的系统接口来串行地存取数据。对NAND的管理比较复 杂。
和复位等命令 和复位等命令
• BooT FLASH 电路及编程 -------29LV160TE芯片 芯片 擦除
29LV160TE芯片具有 种擦除方式 整片擦除、 芯片具有3种擦除方式 整片擦除、 芯片具有 种擦除方式:整片擦除 扇区擦除和 扇区擦除和快擦除 扇区 擦除
: RESET( ); //芯片复位 芯片复位 _WR(0x555,0xaa); _WR(0x2aa,0x55); _WR(0x555,0x80); _WR(0x555,0xaa); _WR(0x2aa,0x55); _WR(BADDR2WADDR(targetAddr),0x30); _WAIT( ); //等待擦除结束 等待擦除结束 _RESET( ); //芯片复位 芯片复位 :
同步动态存储器SDRAM KM416S4020B芯片 同步动态存储器 芯片 •SDRAM全称是同步动态随机存储器(Synchronous 全称是同步动态随机存储器 Dynamic Random Access Memory)。 •SDRAM集成度高 存储容量大 读/写速度快 经 集成度高,存储容量大 写速度快,经 集成度高 存储容量大,读 写速度快 常用其作为主存储器。 常用其作为主存储器。 •SDRAM类型的存储器芯片有许多,其中 类型的存储器芯片有许多, 类型的存储器芯片有许多 KM416S4020B系列是一种容量为1M×16bit×4bank × × 的SDRAM。其工作电压为 。其工作电压为3.3V,支持自动刷新 , (Auto-Refresh)和自刷新(Self- Refresh)。 )和自刷新( )
编程写入 • BooT FLASH 电路及编程 -------编程写入
int _WAIT(void) //检测 检测DQ6输出是否停止翻转 检测 输出是否停止翻转 { volatile U16 flashStatus,old; old=*((volatile U16 *)0x0); while(1) { flashStatus=*((volatile U16 *)0x0); if( (old&0x40) == (flashStatus&0xFra Baidu bibliotek0)) break; if( flashStatus&0x20 ) //测试超时标志位 测试超时标志位DQ5 测试超时标志位 { old=*((volatile U16 *)0x0);
( *((U16 *)(addr<<1)) )
• BooT FLASH 电路及编程 -------29LV160TE芯片擦除 芯片擦除
HY29LV160是HYUNDAI公司生产的 是 公司生产的Flash存储 公司生产的 存储 操作编程命令包括读 擦除、 器。HY29LV160操作编程命令包括读、擦除、编程
4.3 S3C44B0X存储系统实例 存储系统实例
系统中, 在EV44B0II系统中,使用 系统中 使用Bank0上的一 上的一 片1MB×16位的FLASH(29LV160TE)存 × 位 ( ) 储器来放置系统BIOS,系统上电以后,PC 储器来放置系统 ,系统上电以后, 指针自动指向Bank0的第一个单元,开始进 的第一个单元, 指针自动指向 的第一个单元 行系统自举。使用Bank6上的一片 上的一片4MB×16 行系统自举。使用 上的一片 × 位的SDRAM(KM416S4020B)存储器来存 位的 ( ) 放用户应用程序。 放用户应用程序。
内部结构
引脚
HY29LV160操作编程命令包 操作编程命令包 等命令, 括读、擦除、编程和复位等命令, 擦除、 如表4-3 所示。 所示。 如表
状态查询---包括 个状态位 数据查询位DQ7、 状态查询 包括3个状态位 数据查询位 包括 个状态位,数据查询位 、 翻转位DQ6和超时状态位 和超时状态位DQ5。 翻转位 和超时状态位 。 数据查询位DQ7。正在执行内部编程操 ① 数据查询位 。 作时,任何读DQ7的操作将得到真实数据的取反 作时,任何读 的操作将得到真实数据的取反 一旦编程操作结束, 为真实的数据。 值。一旦编程操作结束,DQ7为真实的数据。 为真实的数据 翻转位DQ6。在内部编程或擦除操作过 ② 翻转位 。 程中,读取DQ6将得到 或0,即所得的 将得到1或 ,即所得的DQ6在1 程中,读取 将得到 在 之间变化。 和0之间变化。当内部编程或擦除操作结束后, 之间变化 当内部编程或擦除操作结束后, DQ6位的值不再变化。 位的值不再变化。 位的值不再变化 超时状态位DQ5。内部编程或擦除过程超 ③超时状态位 。 过芯片内部规定的时限, 过芯片内部规定的时限,则DQ5为1,否则为 。 为 ,否则为0。
2. NOR Flash型存储芯片 29LV160TE
HY29LV160是HYUNDAI公司生产的 是 公司生产的Flash存储器, 存储器, 公司生产的 存储器 主要特点有 其主要特点有: (1) 3V单电源供电,可使内部产生高电压进行编程 单电源供电, 单电源供电 和擦除操作; 和擦除操作; (2) 支持 支持JEDEC单电源 单电源Flash存储器标准和 存储器标准和CFMI 单电源 存储器标准和 (Common Flash Memory Interface)特性; )特性; (3) 只需向其命令寄存器写入标准的微处理器指令, 只需向其命令寄存器写入标准的微处理器指令, 具体编程、擦除操作由内部嵌入的算法实现, 具体编程、擦除操作由内部嵌入的算法实现,并且可 以通过查询特定的引脚或数据线监控操作是否完成; 以通过查询特定的引脚或数据线监控操作是否完成; (4) 可以对任一扇区进行读、写或擦除操作 ,而不 可以对任一扇区进行读、写或擦除操作, 影响其它部分的数据。 影响其它部分的数据
• BooT FLASH 电路及编程 -------编程写入 编程写入
int F29LV160_ProgFlash(U32 realAddr,U16 data) { volatile U16 *tempPt; int temp,count=0; tempPt=(volatile U16 *)realAddr; _WR(0x555,0xaa); _WR(0x2aa,0x55); _WR(0x555,0xa0); 判断写入是否完成的 *tempPt=data; _WAIT()的过程 的过程 return _WAIT( ); }
4.2.3 静态随机存取存储器 静态随机存取存储器SRAM
• 1.静态RAM基本单元电路
2114 RAM芯片的结构示意图
A3 A4 A5 A6 A7 A8
I / O1 I / O2 数据 I / O3 I / O4 控制 列选择 行 选 择 . . . . . . VCC GND 64× 64存储矩阵
4.2 半导体存储器
• 半导体存储器分类
半导体存储芯片结构
• 1.半导体存储芯片的基本结构 .
2.半导体存储芯片的译码驱动方式 .
16×1字节线选法芯片结构。用一根字选择线, × 字节线选法芯片结构 用一根字选择线, 字节线选法芯片结构。 直接选中一个存储单元的各位
1 K×1位重合法结构。只要用 根选 位重合法结构。 × 位重合法结构 只要用64根选 择线(X、 两个方向各 两个方向各32根 , 择线 、Y两个方向各 根),便可选择 32×32矩阵中的任一位 . × 矩阵中的任一位
2. 编程 (1) 存储器读 写的汇编语言代码。 存储器读/写的汇编语言代码 写的汇编语言代码。 使用汇编语言向0x0c010000存储单 使用汇编语言向 存储单 元写一个字、 元写一个字、半字和字节或者从 0x0c010000存储单元读取一个字、 存储单元读取一个字、 存储单元读取一个字 半字、字节。 半字、字节。
4.3.1 SDRAM存储器接口及编程
• 1. 电路
SDRAM由MCU专用 由 专用SDRAM片 专用 片 选信号nSCS0/nGCS6选通,地址 选通, 选信号 选通 空间为0x0C000000~0x0C800000。 ~ SDRAM分成 个Bank,每 分成4个 , SDRAM有16位数据宽度, 位数据宽度, 有 位数据宽度 个Bank的容量为1M×l6位。 的容量为 × SDRAM的A0引脚接到决定, 的 引脚接到决定, Bank的地址由 的地址由BAl、BAO决定 的地址由 、 S3C44B0X的A1地址线上, 的 地址线上, 00对应 对应Bank0,01对应 对应Bankl, 对应 , 地址线上, 对应 即ADDR[12:1]同A[11:0]对应 对应 10对应 对应Bank2,11对应 对应Bank3 , 对应 ,同 对应 BA1、 接到A22和A21引脚上。 引脚上。 接到 和 引脚上 连接 、BA0接到
. . . . . . 输入 列 I/O 电路
A0 A2 A1 A9 CS WE
Intel 2114外特性示意图
4.2.4 动态随机存取存储器DRAM
• 1.动态RAM的基本单元电路
单管动态DRAM 4116芯片
• 16 K×1位的存储芯片 × 位的存储芯片
读时序
读时序
• 动态 动态RAM的刷新。刷新的过程 的刷新。 的刷新 实质上是先将原有信息读出, 实质上是先将原有信息读出,再 由刷新放大器形成原信息并重新 写入的再生过程 • 通常有三种方式刷新:集中刷 通常有三种方式刷新: 分散刷新和异步刷新。 新、分散刷新和异步刷新
RWramtest: ldr r2,=0x0c010000 ldr r3,=0x55aa55aa str r3,[r2] /*将一个字0x55aa55aa写入地址0x0c010000处*/ ldr r3,[r2] /*从地址0x0c10000处读取一个字*/ ldr r2,=0x0c010000 ldrh r3,[r2] /*从地址0x0c010000处读取一个半字*/ strh r3,[r2],#2 /*地址加2后,半字*/ ldr r2,=0xc010000 ldrb r3,[r2] /*从地址0xc010000处读取一字节*/ strb r3,[r2],#1 /*地址加1后,向该地址写入一字节*/
第4章 存储器接口电路设计及 章 编程
(1)存储器的分类、存储结构 )存储器的分类、 (2)半导体存储器 2) (3)SRAM和DRAM ) 和 (4)只读存储器 )只读存储器ROM (5)Flash 存储器接口及编程 ) (6)SDRAM存储器接口及编程 ) 存储器接口及编程
4.1 存储器概述 存储器的层次结构