计组与微机控制
4.2 SRAM6116
4.2 SRAM6116
SRAM6116:
1. 芯片概览:2K x 8 的存储空间
· 容量:6116 能存储的数据总量为 2K × 8 bit = 16K bit,也就是 2048 个字节。
· 结构:这 2048 个存储单元在芯片内部被排列成了一个“128×128”的矩阵。
· 寻址:芯片有 11 根地址线(A10 ~ A0),刚好覆盖 2KB 的存储空间。
· 数据:它通过 I/O7 ~ I/O0 这 8 根双向数据线与外界交换数据。
· 工艺:属于静态 RAM,只要保持通电,数据就不会丢失,也无需刷新。
· 封装:采用 24 引脚的 DIP 或 SOIC 封装。

2. 引脚详解:地址、数据与三根控制线
6116 的 24 个引脚大致分为三类,尤其是三根控制线是重点。
· 地址线 (A10 ~ A0, 11 根):输入引脚,用于选择要访问的存储单元。
· 数据线 (I/O7 ~ I/O0, 8 根):双向、三态引脚,用于读写数据。
· 核心控制线:
· 片选 (CS, Chip Select):低电平有效。当 CS=0 时,芯片被选中;CS=1 时,芯片未选中,数据线呈高阻态,拒绝任何读写操作。
· 输出使能 (OE, Output Enable):低电平有效。仅在读操作时使用,将其置 0 会打开内部的三态缓冲器,允许芯片将数据“推送”到 I/O 引脚上。
· 写使能 (WE, Write Enable):低电平有效。这是一个“写入许可”信号,当其为 0 时,数据总线上的数据将被写入到地址线指定的存储单元。

5跟控制线:2根电源是VCC GND,3根是信号线OE WE CE
3. 功能真值表:三种状态
这三种控制信号 (CE, OE, WE) 的各种组合,定义了芯片的四种工作状态:

模式 CE OE WE 数据线 (I/O) 状态
未选中 1 (H) X X 高阻态 (High-Z)
输出 (读) 0 (L) 0 (L) 1 (H) 输出数据 (Dout)
输入 (写) 0 (L) X 0 (L) 输入数据 (Din)
输出禁用 0 (L) 1 (H) 1 (H) 高阻态 (High-Z)
当 WE 和 OE 同为低电平 (0) 时,6116 会尝试同时进行读写,这种冲突状态是绝对要避免的。
4. 读写时序流程:CPU 与芯片的对话
这是芯片工作的灵魂,需要理解 CPU 是如何按步骤操作这些引脚的。
读操作 (CPU 从 6116 读数据):
1. 地址建立:CPU 将目标地址放到地址总线 A10~A0 上,并保持稳定。
2. 选中芯片:CPU 通过地址译码逻辑向 CS 引脚发送 低电平,激活芯片。
3. 配置模式:CPU 使 WE 保持高电平(宣布“我不写”),同时将 OE 拉低(宣布“请输出”)。
4. 数据输出:芯片内部将对应地址单元的数据送到输出缓冲器,并通过被 OE 开启的三态门,将数据“推”到数据总线 I/O7~I/O0 上。
5. 读取数据:CPU 在数据总线上锁存数据,完成读取。
6. 结束操作:总线周期结束后,CPU 将 CS 和 OE 置为无效(高电平),数据总线恢复高阻态。
2. 写操作 (CPU 向 6116 写数据):
1. 地址建立:CPU 将目标地址放到 A10~A0 上,并保持稳定(CE 为高)。
2. 选中芯片 & 数据准备:CPU 将 CS 拉低,并将要写入的数据放到 I/O7~I/O0 上。
3. 发送写入脉冲:CPU 向 WE 引脚发送一个低电平脉冲。数据线上的数据在 WE 的上升沿被锁存进芯片。
4. 数据写入:在 WE 为低期间,芯片内部将数据总线上的数据写入到地址线指定的存储单元。
5. 结束操作:写入完成后,WE 和 CS 恢复高电平,芯片重新进入待机模式。
这只是数据线上和类似于8086CPU之间配合IO口的操作,但是具体要把数据放在寄存器的哪个位置呢,还需要看是如何选址的
5. 系统集成:高位片选与低位片内寻址
6116 作为数据“仓库”,需要被 CPU 编入内存地图,才能被正确使用。
· 寻址原则:CPU 发出的地址被分成两部分:“高位地址选芯片”,“低位地址进芯片”。
· 低位地址:A10 ~ A0 这 11 根线直接连到 6116 的 A10~A0 引脚,负责在 2KB 空间内找到具体的字节。
· 高位地址:A19~A11 进入地址译码器(如 74LS138),译码器的输出再连到 6116 的 CS,负责在众多芯片中选中 6116。
· 示例地址范围:假设 6116 基地址被译码为 0x40000,则其寻址范围是 0x40000 ~ 0x407FF。其中 0x40000 是高位基址,0x7FF 是低位偏移。
这种官话太敷衍了,我一步步说吧
先看图

一、先分清两个概念
· 片选 (Chip Select):决定 哪一片芯片被激活(在多个芯片组成的系统中)。
· 位选 (Byte/Word Select):在已经被选中的芯片内部,选择具体的某一个存储单元(也就是“字选”或“地址译码”)。
对于 单颗 6116 来说:
· 片选:由 CS 引脚控制(低有效):CS = 0 表示选中这颗芯片;CS = 1 表示不选,芯片数据引脚高阻。
· 位选:由地址线 A10 ~ A0 决定:共有 11 根地址线,可以访问 2K = 2048 个不同的存储单元。
在多芯片系统中,“片选”信号通常由 CPU 的高位地址通过译码器产生;“位选”则直接把低位地址接到 6116 的 A10~A0。
二、6116 进行“片选 + 位选”的完整流程
假设你有一块 6116,已经正确连接到 CPU 的总线(地址、数据、控制)。
第 1 步:CPU 发出完整地址
CPU 将要访问的内存地址(例如 20 位)放到地址总线上。
· 高位地址(比如 A19 ~ A11) → 送往外部的地址译码器。
· 低位地址(A10 ~ A0) → 直接连接到 6116 的 A10 ~ A0 引脚。
第 2 步:外部译码器产生片选信号
外部译码器(如 74LS138)根据高位地址的数值,判断是否应该选中 6116:
· 如果地址落在 6116 的地址范围内 → 译码器输出 CS = 0(低有效)。
· 否则 → CS = 1,6116 不会被选中,所有数据引脚呈高阻,本次访问无效。
第 3 步:6116 片选判断
6116 内部逻辑检测 CS 引脚:
· 若 CS = 1 → 芯片忽略所有其他操作,I/O0~7 高阻。
· 若 CS = 0 → 芯片被激活,继续执行下一步。
第 4 步:位选(片内地址译码)
在 CS = 0 的前提下,6116 内部的行/列译码器根据 A10 ~ A0 的值,从 2048 个存储单元中 唯一定位 到其中一个单元。
· 这 11 根地址线同时参与译码,不存在“先传行后传列”的分时(那是 DRAM 的做法)。
第 5 步:根据 OE 和 WE 执行读或写
现在芯片已被选中,并且具体的单元也已被定位。接下来:(就是刚刚4. 读写时序流程)
· 读操作:OE = 0(输出使能有效),WE = 1 → 选中单元的数据被送到 I/O0~7 上,CPU 读取。
· 写操作:WE = 0(写使能有效),OE 通常置 1 → CPU 把数据放到 I/O0~7 上,然后 WE 上升沿将数据锁入选中单元。
第 6 步:结束访问(总线周期结束)
· 控制信号(CS、OE、WE)恢复无效电平(高)。
· I/O0~7 恢复高阻,释放数据总线。
流程就是:
高位译码选芯片 —→ CS 变低被激活。
低位地址进芯片 —→ 唯一定位某单元。
OE 为 0 向外读,WE 为 0 向内写。
CE、OE、WE 相配合,总线高阻不冲突。
总结
· 6116 是一个 2K x 8 的静态 RAM,用 11 根地址线选择 2048 个存储单元。
· 它通过 三根控制线 (CS, OE, WE) 协同工作,共同决定芯片是“读”、“写”还是“高阻”。
· 读操作:CS=0, WE=1, OE=0。
· 写操作:CS=0, WE=0。
· 在系统应用中遵循“高位地址线译码选芯片(片选),低位地址线直连芯片地址脚(字选)”的原则,来为 6116 分配唯一的内存地址。
