← 返回 计组与微机控制

计组与微机控制

4.3 SRAM6264 和 DRAM 2164A

4.3 SRAM6264 ? DRAM 2164A

SRAM6264

1. 芯片概览:8K x 8 的存储空间

· 容量:6264 能存储 8K × 8 bit = 64 Kbit,即 8192 个字节。

· 结构:内部存储阵列通常组织为 256 行 × 256 列 × 8 位(或类似)。

· 寻址:需要 13 根地址线(A12 ~ A0),因为 2^{13} = 8192。

· 数据:8 根双向数据线 I/O7 ~ I/O0。

· 工艺:CMOS 静态 RAM,低功耗,无需刷新。

· 封装:常用 28 引脚 DIP 或 SOP 封装。

2. 引脚详解:地址、数据与多控制线

6264 与 6116 最大的不同是多了几个控制引脚,以适应更复杂的系统。

4.3 SRAM6264 ? DRAM 2164A ? 1

· 地址线 (A12 ~ A0, 13 根):输入,选择 8192 个单元之一。

· 数据线 (I/O7 ~ I/O0, 8 根):双向三态,读写数据。

· 核心控制线:

· 片选1 (CE1):低电平有效。必须为 0 才能选中芯片。

· 片选2 (CE2):高电平有效。必须为 1 才能选中芯片。

(注:两个片选同时有效才选中,这为地址译码提供了灵活性。)

· 输出使能 (OE):低电平有效。读数据时需为 0。

· 写使能 (WE):低电平有效。写数据时需为 0。

· 电源与地:Vcc(典型 5V),GND。

· 未使用引脚:部分封装可能有多余的 NC(No Connect)引脚。

3. 功能真值表

模式 CE1 CE2 OE WE I/O 状态

未选中 1 (H) X X X 高阻态

未选中 X 0 (L) X X 高阻态

输出 (读) 0 (L) 1 (H) 0 (L) 1 (H) 输出数据

输入 (写) 0 (L) 1 (H) X 0 (L) 输入数据

输出禁用 0 (L) 1 (H) 1 (H) 1 (H) 高阻态

注意:写操作时 OE 通常设为高电平(或任意,但为避免总线冲突,常将其置为1)。

4. 读写时序流程

4.3 SRAM6264 ? DRAM 2164A ? 2

与 6116 几乎一致,只是控制信号多了一个 CE2。

读操作:

1. 地址建立:CPU 将 13 位地址放到 A12~A0 上。

2. 选中芯片:CE1 = 0,CE2 = 1,同时满足。

3. 配置模式:WE = 1(禁止写),OE = 0(允许输出)。

4. 数据输出:芯片将选中单元的数据驱动到 I/O 线上。

5. 读取数据:CPU 锁存数据。

6. 结束:CE1 = 1 或 CE2 = 0,总线高阻。

写操作:

1. 地址建立:同上。

2. 选中芯片:CE1 = 0,CE2 = 1。

3. 数据准备:CPU 将要写的数据放到 I/O 线上。

4. 写入脉冲:WE = 0(保持一段时间),数据在 WE 上升沿被锁存。

5. 结束:WE = 1,CE1 = 1 或 CE2 = 0。

5. 系统集成与地址译码

6264 的 13 根地址线需要连接 CPU 的低位地址总线(如 8086 的 A0~A12)。

高位地址线(如 A13~A19)通过译码器产生满足 CE1=0 且 CE2=1 的信号。

示例:用两片 6264 组成 16KB 内存(8086 系统)。

· 将 CPU 的 A0~A12 并联到两片 6264 的地址脚。

· 用 A13 作为片选:

· A13 = 0 时,第一片 CE1 有效(还需配合 CE2 固定接高电平)。

· A13 = 1 时,第二片 CE1 有效。

· CE2 可直接接 Vcc(常高),或接系统控制信号防止冲突。

· 这样第一片地址范围:0x0000 ~ 0x1FFF,第二片:0x2000 ~ 0x3FFF(假设 A19~A14 全为 0)。

如果 CPU 是 8 位数据总线(如 8088),一片 6264 就满足;如果是 16 位(如 8086),则需要两片 6264 分别处理高 8 位和低 8 位数据,此时 BHE 和 A0 用于体选。

总结

· 6264 是一个 8K×8 的静态 RAM,需要 13 根地址线。

· 控制信号包含 两个片选(CE1 低有效,CE2 高有效)、输出使能 OE 和 写使能 WE。

· 读操作:芯片选中后,WE=1,OE=0,数据被读出。

· 写操作:芯片选中后,WE=0(OE 通常置 1),数据被写入。

· 在系统中,用 高位地址译码 产生 CE1 和 CE2,低位地址 直接连 A12~A0,从而实现内存地址空间的分配。

番外:像是做大题一样,我也是初次接触分享经历

8086 + 两片 6264(8KB×8)构成 16 位内存系统 的连接图画出来,并解释每根线的去向。

一、整体逻辑结构

· CPU:8086(最小模式)

· 存储器芯片:2 片 6264,每片 8KB×8 位,共 16KB。

· 数据总线分配:

· 高位片(奇地址体):连接 8086 的 D15 ~ D8(高 8 位数据线)。

· 低位片(偶地址体):连接 8086 的 D7 ~ D0(低 8 位数据线)。

· 地址范围:假设从 00000H 开始,两片并联,地址线 A0~A12 并联,A13 作为片选(区分两片),更高地址线(A14~A19)全部接地(假设只用最低 16KB 空间)。

实际系统中高位地址线通常通过译码器,这里为了简化,直接固定 A14~A19=0,地址范围 00000H~03FFFH(16KB)。

· 字节/字访问控制:

· 当 CPU 写一个字节到偶地址(A0=0) → 只选通低 8 位片。

· 写一个字节到奇地址(A0=1) → 只选通高 8 位片。

· 写一个字(16 位) → 两片同时选通。

为此,除了地址译码,还需要用 A0 和 BHE(高字节使能)信号来分别控制两片的片选或写使能。下面提供两种常见连接法:方法一(片选加字节使能) 更标准。

二、引脚连接图(ASCII )

+-------------------+

| 8086 CPU |

+-------------------+

| |

地址总线 A19..A0 ------+-- (A19..A0 输出) |

| |

数据总线 D15..D0 ----+-+-- (D15..D0 双向) |

| |

控制总线 | | |

RD ---------------+-------------------> (读信号)

WR ---------------+-------------------> (写信号)

BHE --------------+--------------------> (高字节使能)

A0 --------------+--------------------> (地址最低位)

|

|

+----------------+----------------+

| |

v v

(低位片:偶地址体) (高位片:奇地址体)

6264 (低8位) 6264 (高8位)

+-------------+ +-------------+

| A12..A0 |<---- A12..A0 (并联) | A12..A0 |

| I/O7..I/O0 |<--> D7..D0 | I/O7..I/O0 |<--> D15..D8

| CE1 (低有效)|<--- 片选信号 (由地址 | CE1 (低有效)|<--- 片选信号 (由地址

| CE2 (高有效)| + A13 产生) | CE2 (高有效)| + A13 产生)

| OE |<--- RD (读信号) | OE |<--- RD

| WE |<--- 写控制逻辑 | WE |<--- 写控制逻辑

+-------------+ (由 WR+A0+...产生) +-------------+

三、详细信号线连接列表

1. 地址线

· 8086 的低 13 位地址 A12~A0 直接连接到两片 6264 的 A12~A0 引脚(并联)。

2. 数据线

· 低位 6264 的 I/O0~I/O7 接 8086 的 D7 ~ D0。

· 高位 6264 的 I/O0~I/O7 接 8086 的 D15 ~ D8。

3. 片选信号(CE1 和 CE2)

· 每片 6264 有两个片选:CE1(低有效)、CE2(高有效)。

· 我们将 CE2 直接接 高电平(Vcc)(始终有效),只使用 CE1 作为片选。

· 用 A13 和 地址译码 产生 CE1 低有效的信号:

· 令 A13 = 0 时,选中低位片。

· 令 A13 = 1 时,选中高位片。

· 但为了支持字节/字写操作,实际片选还要与 WR、BHE、A0 组合,见下一节。

为了简化,这里用 3-8 译码器 74LS138 的 Y0 和 Y1 输出分别接两片的 CE1,输入为 A13、A14、A15(A14=A15=0)。这样:

· A13=0 → Y0 有效 → 低位片 CE1=0,高位片 CE1=1(无效)。

· A13=1 → Y1 有效 → 高位片 CE1=0,低位片 CE1=1(无效)。

4. 读写控制(OE 和 WE)

· OE:两片的 OE 都直接接 8086 的 RD 信号(低有效)。

· WE:写信号不能简单直接接 WR,因为写字节时需要只写其中一片。

· 低位片 WE = WR 与 ( A0=0 或 BHE=0 当写字时?实际上更常用:)

正确组合:

· 写偶地址字节 (A0=0, BHE=1):只写低位片。

· 写奇地址字节 (A0=1, BHE=0):只写高位片。

· 写字 (A0=0, BHE=0):两片同时写。

因此:

· 低位片 WE = WR 与 ( A0=0 ) (即低电平有效时,偶地址才写低位)

· 高位片 WE = WR 与 ( BHE=0 ) (即高字节使能有效时,写高位)

· 可以用 与门 实现:WR 信号与 A0(经反相或直接)组合,WR 与 BHE 组合。

5. 其他控制

· READY 接高电平(默认就绪),或由等待电路产生。

· 复位等信号略。

四、地址范围与译码真值表

假设 A19~A14 全为 0,只使用 A13 区分两片:

A19..A14 A13 选中的芯片 地址范围 (16 进制)

000000 0 低位片 00000H ~ 01FFFH

000000 1 高位片 02000H ~ 03FFFH

但因为两片同时访问时构成 16 位字,字地址 A0=0,所以一个字访问的物理地址是:

· 偶地址(如 00000H)的低位字节在低位片,高位字节在高位片,对应同一 A13 值(0)。

· 因此实际上 A13 决定了 16KB 的块,每块内部由 A12..A0 寻址 8KB,高 8KB 和低 8KB 分别在不同芯片。

更常见的做法是:将两片 6264 的 CE1 并联,用 A0 和 BHE 控制 WE 来实现字节/字写,而地址线 A12..A1 并联,A0 不连到 6264(因为 6264 没有 A0 这回事,我们连的是 A12..A0,所以 A0 直接连到 6264 的 A0),这样 6264 内部地址范围就是连续的,但两片的数据线分别接高位和低位。这样,对于写操作,通过 WE 的门控实现选择性写入。

五、最终建议

在实际画原理图时,步骤是:

1. 将 8086 的 A12..A0 接到两片 6264 的 A12..A0。

2. 将 8086 的 D15..D8 接高位片 I/O0~7,D7..D0 接低位片 I/O0~7。

3. 将两片的 OE 接 RD。

4. 将两片的 CE2 接 Vcc。

5. 用 74LS138 将 A15、A14、A13 译码,Y0 接低位片 CE1,Y1 接高位片 CE1(确保 A14=A15=0)。

6. 用与门产生 WE:

· 低位片 WE = WR & (~A0) (即 WR 与 A0 取反)

· 高位片 WE = WR & (~BHE) (即 WR 与 BHE 取反)

7. 可选:将 A0 和 BHE 也接入译码器,但通常按上述方法足够。

DRAM

4.3 SRAM6264 ? DRAM 2164A ? 3

1. 芯片概览:64K x 1bit的设计哲学

· 与SRAM的差异:现代存储器更常被设计成每个芯片提供多位数据(如 x8, x16)来简化系统,但在2164A诞生的年代,为了最大化良率,将存储阵列设计得更紧凑的 x1 结构是主流选择。

· 核心区别:2164A的数据输入(Din)和数据输出(Dout)是分离的,而SRAM的数据线是双向的:

· Din: 数据输入

· Dout: 数据输出

· 独特的控制逻辑:讲解Intel 2164A芯片没有专门的片选(CS)引脚,其工作由RAS和CAS信号直接控制。只有 RAS 信号可以真正让芯片开始工作,其上升沿标志一个操作周期的结束;高电平时芯片处于待机状态,低电平时被激活。而 CAS 只在芯片被RAS激活后才起作用,用于锁存列地址并控制数据的输出。

2. 引脚详解

它采用16引脚封装,相比于SRAM,引脚数大幅减少。

· 地址线 (A0-A7, 8根):分时复用的地址输入引脚,用于接收8位的行地址和列地址,共同构成16位的完整地址。

· 数据线 (Din, Dout, 2根):

· Din: 数据输入。在写操作中,数据通过此引脚输入。

· Dout: 数据输出。在读操作中,数据通过此引脚输出。

· 核心控制线:

· RAS (Row Address Strobe, 行地址选通):用于锁存行地址,也充当芯片的总使能信号。其下降沿标志着操作周期的开始。

· CAS (Column Address Strobe, 列地址选通):用于锁存列地址,并控制数据的输出。其下降沿标志着地址输入的完成和内部读/写操作的启动。

· WE (Write Enable, 写使能):高电平时为读操作,低电平时为写操作,决定了Din/Dout引脚的方向。

3. 存储单元结构与寻址原理

2164A内部将64K个存储单元排列成一个256×256的矩阵,并由4个相同的128×128阵列构成,每个矩阵有128行×128列,并由专门的读出放大器和地址锁存器管理寻址和数据读出。由于采用地址复用技术,它通过以下两步完成16位地址(A0-A15)的传输:

1. 行地址:先通过8根地址线(A0-A7)发送行地址(高8位,对应行地址RA8-RA15)。在RAS信号的下降沿,这个行地址被锁存到芯片内部。

2. 列地址:随后通过相同的8根地址线发送列地址(低8位,A0-A7)。在CAS信号的下降沿,这个列地址被锁存。

4. 读写时序流程

一个完整的操作周期由RAS信号的低电平区间定义,在此期间进行行、列地址的锁存及数据的读写。

读操作

当WE引脚为高电平时,芯片执行读操作。

1. 行地址锁存:CPU将行地址放在A0-A7上,随后RAS信号变为低电平,其下降沿将行地址锁存到芯片内部。

2. 列地址锁存:CPU将列地址放在A0-A7上,随后CAS信号变为低电平,其下降沿将列地址锁存。

3. 数据输出:经过存取时间(tRAC, tCAC)后,选中存储单元的数据会出现在Dout引脚上并保持,直到CAS或RAS变为高电平。CPU在此阶段读取Dout上的数据。

写操作

当WE引脚为低电平时,芯片执行写操作。

1. 前两步与读操作相同:行地址锁存和列地址锁存。

2. 数据写入:在CAS信号有效期间,CPU将要写入的数据置于Din引脚,并在WE有效时将其写入选中的存储单元。

5. 刷新机制 (Refresh)(刷新速度快所以做动态内存)

由于存储单元是电容器,其存储的电荷会泄露,必须定期(典型为2ms或4ms)进行刷新(读出后再写回)以维持数据。

· 刷新方式:刷新是逐行进行的。只需提供行地址,芯片内部读出放大器会将这一行所有列的数据读出并重新写入,从而恢复电荷。

· 刷新地址来源:RAS Only Refresh刷新模式只用RAS信号控制,由外部刷新计数器自动生成行地址。而CAS Before RAS Refresh刷新模式则是在CAS信号先于RAS变为有效时进入,芯片内部的刷新计数器会自动提供被刷新的行地址。

· 刷新周期:2164A的刷新计数器通常为7位,需在4ms内完成全部128行(因为芯片内部被组织成了4个128x128的矩阵,所以刷新一个行地址信号可刷新4行数据)的刷新。

· 系统实现:在PC/XT等老系统中,常通过DMA控制器(如8237A)的通道0,用片内的刷新计数器产生行地址,并配合RAS Only时序控制2164A刷新。

(片选位选下节讲吧太多了)