存储器系统设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一个机器周期
S1
S2
S3
S4
S5
S6
S1
S2
S3
S4
S5
S6
ALE
PSEN
RD / WR
P2
PCH输出
DPH或P 输出 2
PCH
P0
PCL 输出
指令 输入
地址 输出
数据输出 (输入)
PCL 输出
第二周期:第一个ALE信号丢失,若执行的是读指令(MOVX A,@DPTR),P0口由输出变为输入,随即 RD为低电平有效。外部数据 存储器被选通。相应存储单元内容出现在P0口上供CPU读入累加器中, 若执行的是写指令(MOVX @DPTR,A),此时 W R为低电平有效。被写的 数据出现在P0口,并在 W R结束之前一直保持不变,写入相应的外部数 PSEN有效,读的内容丢弃。 据存储器单元。第二个ALE锁存的地址,
第5章 存储器系统设计
5.1 MCS-51存储器系统配置
内部4K, 0000 ~ 0FFFH 8051 / 8751 外部64K0000 ~ FFFFH 程序存储器(ROM) 0000 ~ FFFFH , EA 0 8031外部64K,
EA 1内部 重叠部分由EA区分 EA 0 外部
0000~0FFFH(4KB) 8000~9FFFH(8KB) 8000~9FFFH A000~BFFFH C000~DFFFH E000~FFFFH
写入16字节数据的子程序,入口参数:
DPTR:指向RAM数据区首址;
R7: 写入字节数(10H)
R0: E2PROM地址低8位
P2: E2PROM地址高8位
从P0口地址/数据复用线中分离出地址来。
地址译码器 为什么要用地址译码器:CPU给出一个地址,对应的存储器中有一个 存储器单元与其唯一的对应。通常存储器有多片组成,因此,要对存储器 芯片地址进行编址。 分两个层次:(1) 某个存储芯片的选择片选(8K/片8片64K) (2) 被选中的存储芯片内部存储单元的选择字选。 地址不能重叠,一般就要用译码器的功能。
2.扩展24KB EPROM(部分地址译码)用译码对单片机的高位地址线 进行译码,以译码器的输出作为某一存储器的片选信号。
74LS139
B
A
Y2
Y1 Y0
P2.6 P2.5 P2.4~P2.0
5
8031
G 74LS373
A0~A7 A8~A12 Q0~Q7 / OE A0~A7 A8~A12 Q0~Q7 / OE A0~A7 A8~A12 Q0~Q7 / OE
2. 电可擦可编程只读存储器E2PROM 读写的操作同SRAM,掉电后,数据保存,不会丢失。注意 它不是做程序存储器用!
5.3.3 数据存储器扩展设计
1. 8051扩展2KB静态RAM,8051内部有ROM,用地址线扩展2KB RAM。
5V Vcc P2 3 373 1D~8D 1Q~8Q
CE A10~A8
ALE
8
2764
2764
2764
P0
PSEN
P2.6 0 0 1 P2.5 0 1 0 /Y0 /Y1 /Y2 0 1 1 0000-1FFFH (8000H-9FFFH) 括号内 1 0 1 2000-3FFFH(A000H-BFFFH) 为重叠 1 1 0 4000-5FFFFH(C000H-DFFFH) 区!
3. 扩展64KB EPROM(全地址译码)
P2.7 (A15) 0 0 P2.6 (A14) 0 0 P2.5 (A13) 0 1 0000~1FFFH 2000~3FFFH 地址空间
0
0 1 1 1 1
1
1 0 0 1 1
0
1 0 1 0 1
4000~5FFFH
6000~7FFFH 8000~9FFFH A000~BFFFH C000~DFFFH E000~FFFFH
;将最后一个字节数据取出 ;原始数据比较,陷入死循环! ;最高位不同,再查!
00H ~ 7FH 内部128字节, 数据存储器(RAM) 0000 ~ FFFFH 外部 64K,
5.2 程序存储器扩展设计
外部程序存储器操作时序
S1
振荡周期 一个机器周期
S2
S3
S4
S5
S6
S1
S2
S3
S4
S5
S6
ALE
PSEN
P2 P0
PCH输出
PCH
PCH
PCH
PCL 输出
指令 输入
64KB/8=8KB/根译码线。译码器的输出是互异的,每次只能选中一 个存储器芯片,不会出现地址竞争(地址竞争是几片同类型存储器占用同 一段地址,当CPU从该空间取数时,它们将同时向数据总线提供数据, 导致读取出错)。
5.3 数据存储器扩展设计
执行:MOVX A,@DPTR( 或MOVX @DPTR,A) MOVX A,@Ri (或MOVX @Ri,A) CPU访问外部数据存储器时,ALE信号少出现一次,地址数 据输出后经过悬浮(高阻)状态后,才能进入数据输入或输出状态! 第一周期:P2口输出地址的高8位,P2口输出地址的低8位。ALE下 降沿将低8位地址锁存到外部地址锁存器。随即 PSEN 低电平有效。P0口 由输出变为输入,对应选 中的存储单元中的指令出现在P0口,由CPU 读取。经CPU译码后,知道是对外部数据存储器的操作。随后,P2口输 出外部数据存储器地址的高8位,P0口输出外部数据存储器的低8位。由 PSEN 一直为高电平无效(PSEN ALE锁存,由于是与外部数据存储器打交道。 信号线接EPROM的 OE 端,选通的是程序存储器!)
74LS138的真值表
输出有效时,只有一个为低电平,其余为高电平,故用其来接被选的芯片时, 只有一个被选中。保持芯片之间地址的不重叠。(74LS139的介绍见书P158)
5.2.3 程序存储器扩展设计
(1)扩展16KB EPROM(线选法用单片机地址总线高位地址作为选择某 一存贮器的片选信号)。
地址 输出
指令 输入
PCL 输出
指令 输入
PCL 输出
P2口输出程序存储器的高8位地址PCH(A15~A8),具有锁存功能。 P0口地址/数据复用线,在ALE上升为高电平时,P0口输出程序存储 器的低8位地址(A7~A0),在ALE的下降沿,把A7~A0锁存到外部地 址锁存器中,得到地址信号,接着,P0口由输出变为输入,高8位地 址不变(低8位已锁存),故已选定外部ROM的某一个地址,随即 PSEN 低电平有效,外部ROM通,对应地址单元中的指令字节出现在数据 总线上供CPU读取。
PSEN
8 P2 ALE P0 8 锁存器
A15~A8
8 A7~A0
地址总线
数据总线
D7~D0
下面就涉及到的程序存储器芯片,就如何来进行电路设计进行分析。
5.2.2 常用程序存储器芯片
EPROM电路
(专门的编程器 ) 程序写入后 存储器电路 掉电后信息不会丢失的 可擦除可编程只读存储器 照射信息 可擦除,用紫外线灯光 Erase 擦除,可重新再写 Programmable !
G 373
1D~7D
27256
Q0~Q7
OE
WE
62256
D0~D7
OE
P0
PSEN
8
WR
RD
程序存储器 CE 接地,常选0000~7FFFH, PSEN 有效,数据存 W E, 储器0000~7FFFH, RD 有效,地址重叠,但不会冲突。
3. 程序存储器空间和数据存储器空间的合并(哈佛结构:两个存储器在逻 辑上完全独立,是由于执行不同的指令时,由硬件产生不同的选信号, 从而选通两个不同的逻辑空间)。单片机仿真系统就是采用这种合并 后的一维线性空间,因为程序存放在EPROM中,就无法对EPROM中 的程序进行在线修改,如果把程序存放在RAM中,一面调试一面修改, 方便。 P2.7
W E, RD有效。 之类的指令时,
4. 8051扩展8KBE2PROM(ROM和RAM合并)
P2.7 5V

P2 P0
5
A12~A8 373
A0~A7
CE
2864
ALE
I/O0~I/O7
PSEN RD WR
OE WE
内部ROM: 外部ROM,RAM: 重叠区: 10 1010 1100 1110
5.3.2 常用数据存储器芯片介绍
1.静态RAM(SRAM)芯片
13
地址线
VCC
A12~A0
21023=8K
双向数据线
GND
8
D7~D0 6264
片选线1
CE
写允许线
WE
读选通线
OE
CS1
片选线2
(当/CE = 0时,选中 CS1=1时,读片)
操作控制 /CE /OE /WE D0~D7 (/CE=0,CS1=1) 读 0 0 1 D0~D7(OUT) 写 0 1 0 D0~D7(IN) 维持 1 X X 高阻 掉电后数据丢失!(同计算机内存)
WR16:MOVX MOV MOVX INC INC CJNE INC NEXT: DJNZ DEC CNECK:MOVX XRL JB RET
A,@DPTR R4,A @R0,A DPTR R0 R0,#00H,NEXT P2 R7,WR16 R0 A,@ R0 A,R4 ACC.7,CHECK
EA
8051 P0 口
8 A7~A0 6116 8
G ALE
D0~D7
OE WE
6116 的 片 选端 CE 接地,为 常选状态, 地 址 为 0000~07F FH
RD
WR
• 2. 8031扩展32KB EPROM和32KB RAM
8 P2 7
8031
8 1Q~7Q ALE A0~A7 A8~A14 CE A0~A7 A8~A14 CE
Read Only Memory
功能图:
操作方式: 编程方式:把程序代码固化到EPROM中 编程校验方式:读出EPROM中的内容,校对编程操作的正确性 读出方式:CPU从EPROM中读出指令和常数 (CE 0, OE 0) 维持方式:数据端是高阻 (CE 1) 。
地址锁存器(74LS373)
P 如果 CE 接地,系统 只能接1片 ROM P2.7 6
CE
P2
8031 P0 74LS373
A13~A8 27128 8
A7~ A0
Q0~Q7
OE
ALE
PSEN
27128128/8=16K2102414根地址线A0~A13,片内地址由P2.5~P2.0, P0.7~P0.0决定。该片由P2.7选中,存在重叠区域4000~7FFFH(但芯片内地址 不存在,但无关紧要),而且存在地址禁区!(0000~3FFFH)不可能扩展2块。
8 P2 8031 1Q~8Q A0~A7 A8~A14 27256 Q0~Q8 8

ALE
CE
OE
A0~A7 A8~A14 62256 D0~D7
CE
OE
G 373 1D~8D 8
P0
PSEN
WR
Βιβλιοθήκη BaiduRD
系统的EPROM(27256)0000~7FFFH(管理仿真系统的程序),系统的仿 真ROM和数据存储器为8000~FFFFH。当执行系统的管理程序时, 27256有效(尽管有效 PSEN ,但地址不对),62256无效,当执行自己 编的仿真程序时,系统转向62256中执行你输入的程序,当遇到MOVX
相关文档
最新文档