1
第 5章 总线与时序
5 总线与时序教学重点
8086/8088引脚信号和工作模式
8086/8088典型时序
总线标准
3
3.1 8086/ 8088引脚信号和工作模式
外部特性表现在其引脚信号上,学习时请特别关注以下几个方面:
⑴ 引脚的功能
⑵ 信号的流向
⑶ 有效电平
⑷ 三态能力指引脚信号的定义、
作用;通常采用英文单词或其缩写表示信号从芯片向外输出,
还是从外部输入芯片,
或者是双向的起作用的逻辑电平高、低电平有效上升、下降边沿有效输出正常的低电平、
高电平外,还可以输出高阻的第三态
4
3.1.1 8088的两种组态模式
两种组态构成两种不同规模的应用系统
最小组态模式
构成小规模的应用系统
8088本身提供所有的系统总线信号
最大组态模式
构成较大规模的应用系统,例如可以接入数值协处理器 8087
8088和总线控制器 8288共同形成系统总线信号
5
3.1.1 8088的两种组态模式 (续)
两种组态利用 MN/MX*引脚区别
MN/MX*接高电平为最小组态模式
MN/MX*接低电平为最大组态模式
两种组态下的内部操作并没有区别
IBM PC/XT采用最大组态
本书以最小组态展开基本原理
6
8088的引脚图
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
GND
A14
A13
A12
A11
A10
A9
A8
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
NMI
INTR
CLK
GND
VCC
AD15
AD16 / S3
AD17 / S4
AD18 / S5
AD19 / S6
SS0* (HIGH)
MN / MX*
RD*
HOLD (RQ)*/ GT0*)
HLDA (RQ1* /GT1*)
WR* (LOCK*)
M / IO ( S2* )
DT / R* ( S1* )
DEN ( S0 )
ALE
INTA
TEST*
READY
RESET
8088
7
3.1.2 最小组态的引脚信号
1,数据和地址引脚
2,读写控制引脚
3,中断请求和响应引脚
4,总线请求和响应引脚
5,其它引脚
8
1,数据和地址引脚
AD7~ AD0( Address/Data)
地址 /数据 分时复用 引脚,双向,三态
在访问存储器或外设的总线操作周期中,
这些引脚在第一个时钟周期输出存储器或
I/O端口的低 8位地址 A7~ A0
其他时间用于传送 8位数据 D7~ D0
9
1,数据和地址引脚 (续 1)
A15~ A8( Address)
中间 8位 地址引脚,输出,三态
这些引脚在访问存储器或外设时,提供全部 20位地址中的中间 8位地址 A15~ A8
10
1,数据和地址引脚 (续 2)
A19/S6~ A16/S3( Address/Status)
地址 /状态 分时复用引脚,输出,三态
这些引脚在访问存储器的第一个时钟周期输出高 4位地址 A19~ A16
在访问外设的第一个时钟周期全部输出低电平无效
其他时间输出状态信号 S6~ S3
11
2,读写控制引脚
ALE( Address Latch Enable)
地址锁存允许,输出,三态,高电平有效
ALE引脚高有效时,表示复用引脚:
AD7~ AD0和 A19/S6~ A16/S3正在传送地址信息
由于地址信息在这些复用引脚上出现的时间很短暂,所以系统可以利用 ALE引脚将地址锁存起来
12
2,读写控制引脚 (续 1)
IO/M*( Input and Output/Memory)
I/O或存储器访问,输出,三态
该引脚输出高电平时,表示 CPU将访问
I/O端口,这时地址总线 A15~ A0提供 16位
I/O口地址
该引脚输出低电平时,表示 CPU将访问存储器,这时地址总线 A19~ A0提供 20位存储器地址
13
2,读写控制引脚 (续 2)
WR*( Write)
写控制,输出,三态,低电平有效
有效时,表示 CPU正在写出数据给存储器或 I/O端口
RD*( Read)
读控制,输出,三态,低电平有效
有效时,表示 CPU正在从存储器或 I/O端口读入数据
14
2,读写控制引脚 (续 3)
IO/M*,WR*和 RD*是最基本的控制信号
组合 后,控制 4种基本的总线周期总线周期 IO/M* WR* RD*
存储器读 低 高 低存储器写 低 低 高
I/O读 高 高 低
I/O写 高 低 高
15
2,读写控制引脚 (续 4)
READY
存储器或 I/O口就绪,输入,高电平有效
在总线操作周期中,8088 CPU会在第 3个时钟周期的前沿测试该引脚
如果测到高有效,CPU直接进入第 4个时钟周期
如果测到无效,CPU将插入等待周期 Tw
CPU在等待周期中仍然要监测 READY信号,有效则进入第 4个时钟周期,否则继续插入等待周期 Tw。
16
2,读写控制引脚 (续 5)
DEN*( Data Enable)
数据允许,输出,三态,低电平有效
有效时,表示当前数据总线上正在传送数据,
可利用他来控制对数据总线的驱动
DT/R*( Data Transmit/Receive)
数据发送 /接收,输出,三态
该信号表明当前总线上数据的流向
高电平时数据自 CPU输出 ( 发送 )
低电平时数据输入 CPU( 接收 )
17
2,读写控制引脚 (续 6)
SS0*( System Status 0)
最小组态模式下的 状态输出 信号
它与 IO/M*和 DT/R*一道,通过编码指示
CPU在最小组态下的 8种工作状态:
1,取指 5,中断响应
2,存储器读 6,I/O读
3,存储器写 7,I/O写
4,过渡状态 8,暂停对比
18
3,中断请求和响应引脚
INTR( Interrupt Request)
可屏蔽中断请求,输入,高电平有效
有效时,表示请求设备向 CPU申请可屏蔽中断
该请求的优先级别较低,并可通过关中断指令 CLI清除标志寄存器中的 IF标志,从而对中断请求进行屏蔽
19
3,中断请求和响应引脚 (续 1)
INTA*( Interrupt Acknowledge)
可屏蔽中断响应,输出,低电平有效
有效时,表示来自 INTR引脚的中断请求已被 CPU响应,CPU进入中断响应周期
中断响应周期是连续的两个,每个都发出有效响应信号,以便通知外设他们的中断请求已被响应,并令有关设备将中断向量号送到数据总线
20
3,中断请求和响应引脚 (续 2)
NMI( Non-Maskable Interrupt)
不可屏蔽中断请求,输入,上升沿有效
有效时,表示外界向 CPU申请不可屏蔽中断
该请求的优先级别高于 INTR,并且不能在 CPU内被屏蔽
当系统发生紧急情况时,可通过他向
CPU申请不可屏蔽中断服务
21
4,总线请求和响应引脚
HOLD
总线保持 ( 即总线请求 ),输入,高电平有效
有效时,表示总线请求设备向 CPU申请占有总线
该信号从有效回到无效时,表示总线请求设备对总线的使用已经结束,通知 CPU收回对总线的控制权
22
4,总线请求和响应引脚 (续 1)
HLDA( HOLD Acknowledge)
总线保持响应 ( 即总线响应 ),输出,高电平有效
有效时,表示 CPU已响应总线请求并已将总线释放
此时 CPU的 地址总线,数据总线 及 具有三态输出能力的控制总线 将全面呈现高阻,使总线请求设备可以顺利接管总线
待到总线请求信号 HOLD无效,总线响应信号
HLDA也转为无效,CPU重新获得总线控制权
23
5,其它引脚
RESET
复位请求,输入,高电平有效
该信号有效,将使 CPU回到其初始状态;当他再度返回无效时,CPU将重新开始工作
8088复位后 CS= FFFFH,IP= 0000H,
所以程序入口在物理地址 FFFF0H
24
5,其它引脚 (续 1)
CLK( Clock)
时钟输入
系统通过该引脚给 CPU提供内部定时信号 。
8088的标准工作时钟为 5MHz
IBM PC/XT机的 8088采用了 4.77MHz的时钟,其周期约为 210ns
25
5,其它引脚 (续 2)
Vcc
电源输入,向 CPU提供+ 5V电源
GND
接地,向 CPU提供参考地电平
MN/MX*( Minimum/Maximum)
组态选择,输入
接高电平时,8088引脚工作在最小组态;
反之,8088工作在最大组态
26
5,其它引脚 (续 3)
TEST*
测试,输入,低电平有效
该引脚与 WAIT指令配合使用
当 CPU执行 WAIT指令时,他将在每个时钟周期对该引脚进行测试:如果无效,则程序踏步并继续测试;如果有效,则程序恢复运行
也就是说,WAIT指令使 CPU产生等待,直到引脚有效为止
在使用协处理器 8087时,通过引脚和 WAIT指令,可使 8088与 8087的操作保持同步
27
“引脚,小结
CPU引脚是系统总线的基本信号可以分成三类信号:
8位数据线,D0~ D7
20位地址线,A0~ A19
控制线:
ALE,IO/M*,WR*,RD*,READY
INTR,INTA*,NMI,HOLD,HLDA
RESET,CLK,Vcc,GND
28
“引脚,提问
提问之一:
CPU引脚是如何与外部连接的呢?
解答:总线形成
提问之二:
CPU引脚是如何相互配合,
实现总线操作,控制系统工作的呢?
解答:总线时序
29
3.1.3 最小组态的总线形成
AD7~ AD0
A15~ A8
A19/S6~ A16/S3
+5V
8088
ALE
8282
STB
系统总线信号
A19~ A16
A15~ A8
A7~ A0
D7~ D0
IO/M*
RD*
WR*
8282
STB
8282
STB
8286T
OE*
MN/MX*
IO/M*
RD*
WR*
DT/R*
DEN*
OE*
OE*
OE*
( 1) 20位地址总线 ——
采用 3个三态透明锁存器 8282进行锁存和驱动
( 2) 8位数据总线 ——
采用数据收发器 8286进行驱动
( 3)系统控制信号 ——
由 8088引脚直接提供
30
( 1) 20位地址总线的形成
采用 3个 8282进行锁存和驱动
Intel 8282是 三态透明锁存器,类似有
Intel 8283和通用数字集成电路芯片 373
三态输出:
输出控制信号有效时,允许数据输出;
无效时,不允许数据输出,呈高阻状态
透明:锁存器的输出能够跟随输入变化三态锁存
31
补充:三态门和 D触发器
三态门和以 D触发器形成的锁存器是微机接口电路中最常使用的两类逻辑电路
三态门:功率放大,导通开关
器件共用总线时,一般使用三态电路:
需要使用总线的时候打开三态门;
不使用的时候关闭三态门,使之处于高阻
D触发器:信号保持,也可用作导通开关
32
D触发器
D Q
C Q 电平锁存
D Q
C Q 上升沿锁存电平锁存:
高电平通过,低电平锁存上升沿锁存:
通常用负脉冲触发锁存负脉冲的上升沿
D Q
C Q
S
R
带有异步置位清零的电平控制的锁存器
33
74LS273
具有异步清零的
TTL上升沿锁存器
34
74LS373
具有三态输出的
TTL电平锁存器
LE 电平锁存引脚
OE* 输出允许引脚
35
Intel 8282
具有三态输出的
TTL电平锁存器
STB 电平锁存引脚
OE* 输出允许引脚
36
三态缓冲器 三态门具有单向导通和三态的特性
T为低平时:
输出为高阻抗(三态)
T为高电平时:
输出为输入的反相T
A F
表示反相或低电平有效
T
A F
T
A F
T
A F
37
74LS244
双 4位单向缓冲器
分成 4位的两组
每组的控制端连接在一起
控制端低电平有效
输出与输入同相
38
双向三态缓冲器 三态门具有双向导通和三态的特性
A B
T
OE*
OE*= 0,导通
T= 1 A→ B
T= 0 A← B
OE*= 1,不导通
39
Intel 8286
8位双向缓冲器
控制端连接在一起,
低电平有效
可以双向导通
输出与输入同相
OE*= 0,导通
T= 1 A→ B
T= 0 A← B
OE*= 1,不导通
40
74LS245
8位双向缓冲器
控制端连接在一起,
低电平有效
可以双向导通
输出与输入同相
E*= 0,导通
DIR= 1 A→ B
DIR= 0 A← B
E*= 1,不导通
41
( 2) 8位数据总线的形成
采用数据收发器 8286进行双向驱动
Intel 8286是 8位三态双向缓冲器,类似功能的器件还有 Intel 8287,通用数字集成电路 245等
另外,接口电路中也经常使用三态单向缓冲器,例如通用数字集成电路 244就是一个常用的双 4位三态单向缓冲器
42
( 3) 系统控制信号的形成
由 8088引脚直接提供
因为基本的控制信号 8088引脚中都含有
例如,IO/M*,WR*,RD*等
其它信号的情况看详图其它
43
3.1.4 最大组态的引脚定义
8088的数据 /地址等引脚在最大组态与最小组态时相同
有些控制信号不相同,主要是用于输出操作编码信号,由总线控制器 8288译码产生系统控制信号:
S2*,S1*,S0*—— 3个状态信号
LOCK*—— 总线封锁信号
QS1,QS0—— 指令队列状态信号
RQ*/GT0*,RQ*/GT1*—— 2个总线请求 /同意信号
44
3.1.5 最大组态的总线形成系统总线信号
MEMR*
MEMW*
IOR*
IOW*
INTA*
DMA
应答电路
AENBRD
AEN’*
AEN*
CEN
A19~ A12
A11~ A8
A7~ A0
D7~ D0
AD7~ AD0
A11~ A8
A19/S6~ A16/S3
A15~ A12
74LS245
74LS373
74LS373
G
G
G*
DIR
74LS244
8088
OE*
8288
DT/R*
DEN
ALE
S2*~ S0*S2*~ S0*
MN/MX*
OE*
E*
MRDC*
AMTW*
IORC*
AIOWC*
INTA*
⑴ 系统地址总线采用三态透明锁存器 74LS373和三态单向缓冲器 74LS244
⑵ 系统数据总线通过三态双向缓冲器 74LS245形成和驱动
⑶ 系统控制总线主要由总线控制器 8288形成
EMR*,MEMW*,IOR*,IOW*,INTA*
45
3.2 8086/8088典型时序
时序 ( Timing) 是指信号高低电平
( 有效或无效 ) 变化及相互间的时间顺序关系 。
总线时序描述 CPU引脚如何实现总线操作
CPU时序决定系统各部件间的同步和定时什么是 总线操作?
46
3.2 8088的典型时序 (续 1)
总线操作是指 CPU通过总线对外的各种操作
8088的总线操作主要有:
存储器读,I/O读操作
存储器写,I/O写操作
中断响应操作
总线请求及响应操作
CPU正在进行内部操作,并不进行实际对外操作的空闲状态 Ti
什么是 总线周期?
47
3.2 8088的典型时序 (续 2)
总线周期是指 CPU通过总线操作与外部 ( 存储器或 I/O端口 ) 进行一次数据交换的过程
指令周期是指一条指令经取指,译码,读写操作数到执行完成的过程
8088的基本总线周期需要 4个时钟周期
4个时钟周期编号为 T1,T2,T3和 T4
总线周期中的时钟周期也被称作,T状态,
时钟周期的时间长度就是时钟频率的倒数
当需要延长总线周期时需要插入等待状态 Tw
何时有 总线周期?
演示
48
3.2 8088的典型时序 (续 3)
任何指令的取指阶段都需要存储器读总线周期,
读取的内容是指令代码
任何一条以存储单元为源操作数的指令都将引起 存储器读总线周期,任何一条以存储单元为目的操作数的指令都将引起 存储器写总线周期
只有执行 IN指令才出现 I/O读总线周期,执行
OUT指令才出现 I/O写总线周期
CPU响应可屏蔽中断时生成 中断响应总线周期如何实现 同步?
49
3.2 8088的典型时序 (续 4)
总线操作中如何实现时序同步是关键
CPU总线周期采用 同步时序,
各部件都以系统时钟信号为基准
当相互不能配合时,快速部件 ( CPU) 插入等待状态等待慢速部件 ( I/O和存储器 )
CPU与外设接口常采用 异步时序,它们通过应答联络信号实现同步操作
50
3.2.1 最小组态的总线时序本节展开微处理器最基本的 4种总线周期存储器读总线周期存储器写总线周期
I/O读总线周期
I/O写总线周期
51
存储器写总线周期
T4T3T2T1
ALE
CLK
A19/S6~ A16/S3
A15~ A8
AD7~ AD0
A15~ A8
A7~ A0 输出数据
A19~ A16 S6~ S3
READY (高电平)
IO/M*
WR*
T1状态 —— 输出 20位存储器地址 A19~ A0
IO/M*输出低电平,表示存储器操作;
ALE输出正脉冲,表示复用总线输出地址
T2状态 —— 输出控制信号 WR*和数据 D7~ D0
T3和 Tw状态 —— 检测数据传送是否能够完成
T4状态 —— 完成数据传送
52
I/O写总线周期
T4T3T2T1
ALE
CLK
A19/S6~ A16/S3
A15~ A8
AD7~ AD0
A15~ A8
A7~ A0 输出数据
0000 S6~ S3
READY (高电平)
IO/M*
WR*
T1状态 —— 输出 16位 I/O地址 A15~ A0
IO/M*输出高电平,表示 I/O操作;
ALE输出正脉冲,表示复用总线输出地址
T2状态 —— 输出控制信号 WR*和数据 D7~ D0
T3和 Tw状态 —— 检测数据传送是否能够完成
T4状态 —— 完成数据传送
53
存储器读总线周期
T4T3T2T1
ALE
CLK
A19/S6~ A16/S3
A15~ A8
AD7~ AD0
A15~ A8
A7~ A0 输入数据
A19~ A16 S6~ S3
READY (高电平)
IO/M*
RD*
T1状态 —— 输出 20位存储器地址 A19~ A0
IO/M*输出低电平,表示存储器操作;
ALE输出正脉冲,表示复用总线输出地址
T2状态 —— 输出控制信号 RD*
T3和 Tw状态 —— 检测数据传送是否能够完成
T4状态 —— 前沿读取数据,完成数据传送演示
54
I/O读总线周期
T4T3T2T1
ALE
CLK
A19/S6~ A16/S3
A15~ A8
AD7~ AD0
A15~ A8
A7~ A0 输入数据
S6~ S3
READY (高电平)
IO/M*
RD*
0000
T1状态 —— 输出 16位 I/O地址 A15~ A0
IO/M*输出高电平,表示 I/O操作;
ALE输出正脉冲,表示复用总线输出地址
T2状态 —— 输出控制信号 RD*
T3和 Tw状态 —— 检测数据传送是否能够完成
T4状态 —— 前沿读取数据,完成数据传送
55
插入等待状态 Tw
同步时序通过插入等待状态,来使速度差别较大的两部分保持同步
在 读写总线周期中,判断是否插入 Tw
1,在 T3的前沿检测 READY引脚是否有效
2,如果 READY无效,在 T3和 T4之间插入一个等效于 T3的 Tw,转 1
3,如果 READY有效,执行完该 T状态,进入
T4状态演示
56
3.2.2 最大组态的写总线时序
111110
T4T3T2T1
A15~ A8
A19~
A16
S6~ S3
由 8288
产生
ALE
S2*~ S0*
CLK
A19/S6~ A16/S3
A15~ A8
DEN
写命令
AD7~ AD0 A7~ A0 输出数据
DT/R*
AMWTC* MWTC*
57
3.2.2 最大组态的读总线时序
111101
A15~ A8
A19~ A16 S6~ S3
ALE
S2*~ S0*
CLK
A19/S6~ A16/S3
A15~ A8
DEN
由 8288
产生输入数据
A7~ A0AD7~ AD0
T4T3T2T1
DT/R*
MRDC*
58
3.3 总线标准
微机系统采用总线结构 。 系统中主要部件通过系统总线相互连接,实现数据传输,
并使微机系统具有组态灵活,易于扩展等诸多优点
广泛应用的总线都实现了标准化,便于互连各个部件时遵循共同的总线规范 。 接口的任一方只需要根据总线标准的要求来实现和完成接口的功能,而不必了解对方的接口方式 。
总线接口也是一种通用的接口技术
59
3.3.1 微机总线概述
总线连接方法广泛用于微机系统的各个连接层次上
大规模集成电路芯片内部 ( 如微处理器的内部总线 )
主机板中微处理器,存储器及 I/O接口电路之间,主机模板与各种接口模板之间
微机系统之间以及微机系统与外部设备之间
60
芯片总线( Chip Bus)
一个大规模集成电路芯片内部,或一个较小系统中各种不同器件连接在一起的总线;用于芯片级互连
芯片总线也称为局部总线 ( Local Bus)
微处理器的引脚信号就是芯片总线
微处理器内部的控制器,运算器,寄存器之间,还有系统主机板上 CPU,存储器,接口电路等之间通常就是利用芯片级总线互连的图示
61
内总线 ( Internal Bus)
微机系统中模板与模板间连接的总线,
是微机系统所特有的总线;用于模板级互连
内总线也被称为板级总线或系统总线
( System Bus)
多数已实现标准化,例如 STD总线,ISA
总线等 。
微机主板的各种扩展插槽多属于内总线图示
62
外总线 ( External Bus)
微机系统之间或微机系统与其外设通信的总线,
用于设备级互连
外总线过去又称为通信总线,主要指串行通信总线,例如 RS-232
现在,外总线的意义常延伸为外设总线,主要用于连接各种外设
外总线种类较多,常与特定设备有关,例如
Centronics并行打印机总线,IEEE 488智能仪器仪表并行总线 ( 又称为 GPIB总线 )
图示
63
常见系统总线
在微机发展和应用中出现了许多种内,
外总线标准
第一个标准化的微机总线 S-100总线
面向工业控制领域的 STD总线
32位 PC机上的 ISA系统总线,EISA总线,
VESA总线,PCI总线,USB总线等图示
64
3.3.2 IBM PC总线
IBM PC总线是 IBM PC/XT机上使用的 8位系统总线
有 62条信号线,用双列插槽连接,分 A
面 ( 元件面 ) 和 B面 ( 焊接面 )
实际上是 8088 CPU核心电路总线的扩充和重新驱动
与最大组态下的 8088总线相似
65
1,信号功能
D0~ D7—— 8位双向数据线
A0~ A19—— 20位输出地址线
ALE—— 地址锁存允许,每个 CPU 总线周期的
T1 状态高电平有效
MEMR*—— 存储器读,输出,低有效
MEMW*—— 存储器写,输出,低有效
IOR*—— I/O读,输出,低有效
IOW*—— I/O写,输出,低有效
I/O CH RDY—— I/O通道准备好,输入,高有效
66
1,信号功能 (续 1)
IRQ2~ IRQ7—— 中断请求信号,输入,高有效
AEN—— 地址允许信号,输出,高有效,用于指示 DMA总线周期
DRQ1~ DRQ3—— DMA请求信号,输入,高有效
DACK0*~ DACK3*—— DMA响应信号,输出,
低有效
T/C—— 计数结束信号,输出,正脉冲有效
67
1,信号功能 (续 2)
RESET—— 复位信号,输出,高有效
IOCHCK*—— I/O通道校验,输入,低有效
OSC—— 晶振频率脉冲,输出 14.31818MHz
的主振频率信号
CLK—— 系统时钟,输出 4.77MHz的系统时钟信号
+ 5V,- 5V,+ 12V,- 12V,GND—— 电源和地线第 3章 总结
1,了解 8088的两种组态形式;
2,掌握最小组态下的引脚定义,总线形成和总线时序;
3,了解最大组态下的引脚定义,总线形成和总线时序;
第 3章 总结 (续)
4,理解总线及其层次结构
5,掌握 IBM PC总线的引脚及其总线周期 。