第五章 微处理器总线操作与时序

Post on 21-Jan-2016

71 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

第五章 微处理器总线操作与时序. 总线概述 Intel 8086/8088 总线操作与时序 微机系统总线技术. 总线:一组导线的集合 系统与系统之间 或 系统内部各部件之间 进行信息传输所必需的全部信号线的总和. 第二节 Intel 8086/8088 的引脚及总线. 两种工作模式公共引脚定义 最小模式和处理器总线结构 最大模式和处理器总线结构. GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND. 40 - PowerPoint PPT Presentation

TRANSCRIPT

1

第五章 微处理器总线操作与时序

总线概述 Intel 8086/8088 总线操作与时序 微机系统总线技术

总线:一组导线的集合 系统与系统之间或系统内部各部件之间进

行信息传输所必需的全部信号线的总和

2

第二节 Intel 8086/8088 的引脚及总线 两种工作模式公共引脚定义 最小模式和处理器总线结构 最大模式和处理器总线结构

3

8086/8088 引脚信号1234567891011121314151617181920

4039383736353433323130292827262524232221

GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND

VCCAD15A16/S3A17/S4A18/S5A19/S6BHE/S7MN/MXRDHOLD*HLDA*WR*M/IO*DT/R*DEN*ALE*INTA*TESTREADYRESET

80

86

一、通用信号一、通用信号

4

8086 的工作模式 最小模式:也称“单处理器系统”,即在系统中只有

一个 8086 处理器,全部的系统总线信号均由 8086 直接产生。 总线控制逻辑减到最少,故称最小模式。

最大模式:也称“多处理器系统”,即系统中包含两个或多个处理器,其中一个为主处理器( 8086 ),其他的处理器为“协处理器”( Co - Processor )。 通常,和 8086 配合使用的协处理器有两个:一个是数值运

算协处理器 8087 ,一个是 I/O 协处理器 8089 。 最大模式下必须增加专用的总线控制芯片 8288 。 另外,当系统为具有两个以上的主 CPU 的多处理器系统时,

必须配上总线仲裁器 8289 。

5

最小组态的引脚信号

1. 数据和地址引脚2. 读写控制引脚3. 中断请求和响应引脚4. 总线请求和响应引脚5. 其它引脚

6

1. 数据和地址引脚

AD7 ~ AD0 ( Address/Data ) 地址 / 数据分时复用引脚,双向、三态 在访问存储器或外设的总线操作周期中,

这些引脚在第一个时钟周期输出存储器或I/O 端口的低 8 位地址 A7 ~ A0

其他时间用于传送 8 位数据 D7 ~ D0

7

1. 数据和地址引脚(续 1 )

A15 ~ A8 ( Address ) 中间 8 位地址引脚,输出、三态 这些引脚在访问存储器或外设时,提供全

部 20 位地址中的中间 8 位地址 A15 ~ A8

8

1. 数据和地址引脚(续 2 )

A19/S6 ~ A16/S3 ( Address/Status ) 地址 / 状态分时复用引脚,输出、三态 这些引脚在访问存储器的第一个时钟周期

输出高 4 位地址 A19 ~ A16

在访问外设的第一个时钟周期全部输出低电平无效

其他时间输出状态信号 S6 ~ S3

9

2. 读写控制引脚

ALE ( Address Latch Enable ) 地址锁存允许,输出、三态、高电平有效 ALE 引脚高有效时,表示复用引脚: AD

7 ~ AD0 和 A19/S6 ~ A16/S3 正在传送地址信息

由于地址信息在这些复用引脚上出现的时间很短暂,所以系统可以利用 ALE 引脚将地址锁存起来

10

2. 读写控制引脚(续 1 )

IO/M* ( Input and Output/Memory ) I/O 或存储器访问,输出、三态 该引脚输出高电平时,表示 CPU 将访问 I

/O 端口,这时地址总线 A15 ~ A0 提供 16

位 I/O 口地址 该引脚输出低电平时,表示 CPU 将访问

存储器,这时地址总线 A19 ~ A0 提供 20

位存储器地址

11

2. 读写控制引脚(续 2 )

WR* ( Write ) 写控制,输出、三态、低电平有效 有效时,表示 CPU 正在写出数据给存储

器或 I/O 端口RD* ( Read ) 读控制,输出、三态、低电平有效 有效时,表示 CPU 正在从存储器或 I/O

端口读入数据

12

2. 读写控制引脚(续 3 )

IO/M* 、 WR* 和 RD* 是最基本的控制信号 组合后,控制 4 种基本的总线周期

总线周期 IO/M* WR* RD*

存储器读 低 高 低存储器写 低 低 高

I/O 读 高 高 低I/O 写 高 低 高

13

2. 读写控制引脚(续 4 )

READY 存储器或 I/O 口就绪,输入、高电平有效 在总线操作周期中, 8088 CPU 会在第 3 个时钟

周期的前沿测试该引脚 如果测到高有效, CPU 直接进入第 4 个时钟周期 如果测到无效, CPU 将插入等待周期 Tw

CPU 在等待周期中仍然要监测 READY 信号,有效则进入第 4 个时钟周期,否则继续插入等待周期 Tw 。

14

2. 读写控制引脚(续 5 )

DEN* ( Data Enable ) 数据允许,输出、三态、低电平有效 有效时,表示当前数据总线上正在传送数据,

可利用他来控制对数据总线的驱动 DT/R* ( Data Transmit/Receive ) 数据发送 / 接收,输出、三态 该信号表明当前总线上数据的流向 高电平时数据自 CPU 输出(发送) 低电平时数据输入 CPU (接收)

15

2. 读写控制引脚(续 6 )

SS0* ( System Status 0 ) 最小组态模式下的状态输出信号 它与 IO/M* 和 DT/R* 一道,通过编码指

示 CPU 在最小组态下的 8 种工作状态:1. 取指 5. 中断响应2. 存储器读 6. I/O 读3. 存储器写 7. I/O 写4. 过渡状态 8. 暂停

16

3. 中断请求和响应引脚

INTR ( Interrupt Request ) 可屏蔽中断请求,输入、高电平有效 有效时,表示请求设备向 CPU 申请可屏

蔽中断 该请求的优先级别较低,并可通过关中断

指令 CLI 清除标志寄存器中的 IF 标志、从而对中断请求进行屏蔽

17

3. 中断请求和响应引脚(续 1 )

INTA* ( Interrupt Acknowledge ) 可屏蔽中断响应,输出、低电平有效 有效时,表示来自 INTR 引脚的中断请求

已被 CPU 响应, CPU 进入中断响应周期 中断响应周期是连续的两个,每个都发出

有效响应信号,以便通知外设他们的中断请求已被响应、并令有关设备将中断向量号送到数据总线

18

3. 中断请求和响应引脚(续 2 )

NMI ( Non-Maskable Interrupt ) 不可屏蔽中断请求,输入、上升沿有效 有效时,表示外界向 CPU 申请不可屏蔽中断 该请求的优先级别高于 INTR ,并且不能在 CPU

内被屏蔽 当系统发生紧急情况时,可通过他向 CPU 申请不

可屏蔽中断服务

主机与外设进行数据交换通常采用可屏蔽中断不可屏蔽中断通常用于处理掉电等系统故障

19

4. 总线请求和响应引脚

HOLD 总线保持(即总线请求),输入、高电平有效 有效时,表示总线请求设备向 CPU 申请占有总线 该信号从有效回到无效时,表示总线请求设备对总

线的使用已经结束,通知 CPU 收回对总线的控制权

DMA 控制器等主控设备通过 HOLD 申请占用系统总线(通常由 CPU 控制)

20

4. 总线请求和响应引脚(续 1 )

HLDA ( HOLD Acknowledge ) 总线保持响应(即总线响应),输出、高电平

有效 有效时,表示 CPU 已响应总线请求并已将总线释放

此时 CPU 的地址总线、数据总线及具有三态输出能力的控制总线将全面呈现高阻,使总线请求设备可以顺利接管总线

待到总线请求信号 HOLD 无效,总线响应信号HLDA 也转为无效, CPU重新获得总线控制权

21

5. 其它引脚

RESET 复位请求,输入、高电平有效 该信号有效,将使 CPU回到其初始状

态;当他再度返回无效时, CPU 将重新开始工作

8088 复位后 CS= FFFFH 、 IP= 0000H ,所以程序入口在物理地址 FFFF0H

22

5. 其它引脚(续 1 )

CLK ( Clock ) 时钟输入 系统通过该引脚给 CPU 提供内部定时信

号。 8088 的标准工作时钟为 5MHz IBM PC/XT机的 8088采用了 4.77MHz

的时钟,其周期约为 210ns

23

5. 其它引脚(续 2 )

Vcc 电源输入,向 CPU 提供+ 5V 电源GND 接地,向 CPU 提供参考地电平MN/MX* ( Minimum/Maximum ) 组态选择,输入 接高电平时, 8088 引脚工作在最小组态;反之, 8088 工作在最大组态

24

5. 其它引脚(续 3 )

TEST* 测试,输入、低电平有效 该引脚与 WAIT 指令配合使用 当 CPU执行 WAIT 指令时,他将在每个时钟周

期对该引脚进行测试:如果无效,则程序踏步并继续测试;如果有效,则程序恢复运行

也就是说, WAIT 指令使 CPU 产生等待,直到引脚有效为止

在使用协处理器 8087 时,通过引脚和 WAIT 指令,可使 8088 与 8087 的操作保持同步

25

“ 引脚”小结

CPU 引脚是系统总线的基本信号可以分成三类信号: 8 位数据线: D0 ~ D7

20 位地址线: A0 ~ A19

控制线:ALE 、 IO/M* 、 WR* 、 RD* 、 READY INTR 、 INTA* 、 NMI , HOLD 、 HLDARESET 、 CLK 、 Vcc 、 GND

CPU 引脚是系统总线的基本信号可以分成三类信号: 8 位数据线: D0 ~ D7

20 位地址线: A0 ~ A19

控制线:ALE 、 IO/M* 、 WR* 、 RD* 、 READY INTR 、 INTA* 、 NMI , HOLD 、 HLDARESET 、 CLK 、 Vcc 、 GND

有问题!有问题!

26

“ 引脚”提问

提问之一:CPU 引脚是如何与外部连接的呢? 解答:总线形成

提问之一:CPU 引脚是如何与外部连接的呢? 解答:总线形成

提问之二:CPU引脚是如何相互配合,实现总线操作、控制系统工作的呢? 解答:总线时序

提问之二:CPU引脚是如何相互配合,实现总线操作、控制系统工作的呢? 解答:总线时序

27

最小组态的总线形成

AD7 ~ AD

0

A15 ~ A8

A19/S6 ~ A16/S3

+5V

8088

ALE

8282STB

系统总线信号

A19 ~ A16

A15 ~ A8

A7 ~ A0

D7 ~ D0

IO/M*RD*WR*

8282STB

8282STB

8286TOE*

MN/MX*IO/M*

RD*WR*

DT/R*DEN*

OE*

OE*

OE*

( 1 ) 20 位地址总线——采用 3个三态透明锁存器 8282进行锁存和驱动( 2) 8 位数据总线——采用数据收发器 8286 进行驱动( 3 )系统控制信号——由 8088 引脚直接提供

28

补充:三态门和 D触发器

三态门和以 D触发器形成的锁存器是微机接口电路中最常使用的两类逻辑电路

三态门:功率放大、导通开关 器件共用总线时,一般使用三态电路:

需要使用总线的时候打开三态门;不使用的时候关闭三态门,使之处于高阻

D触发器:信号保持,也可用作导通开关三态三态 锁存锁存

29

三态缓冲器(三态门)具有单向导通和三态的特性

T 为低平时:输出为高阻抗(三态)T 为高电平时:输出为输入的反相

T

A F

表示反相或低电平有效

T

A F

T

A F

T

A F

30

74LS244

双 4 位单向缓冲器• 分成 4 位的两组• 每组的控制端连

接在一起• 控制端低电平有

效• 输出与输入同相

每一位都是一个三态门,每 4 个三态门的控制端连接在一起

31

双向三态缓冲器具有双向导通和三态的特性

A B

T

OE*

OE* = 0 ,导通 T= 1 A→B T= 0 A←BOE* = 1,不导通

OE* = 0 ,导通 T= 1 A→B T= 0 A←BOE* = 1,不导通

32

Intel 8286 8 位双向缓冲器• 控制端连接在一起,

低电平有效• 可以双向导通• 输出与输入同相

OE*= 0 ,导通 T= 1 A→B T= 0 A←BOE* = 1,不导通

OE* = 0 ,导通 T= 1 A→B T= 0 A←BOE* = 1,不导通

每一位都是一个双向三态门,8 位具有共同的控制端

33

74LS2458 位双向缓冲器• 控制端连接在一起,

低电平有效• 可以双向导通• 输出与输入同相

E*= 0 ,导通 DIR= 1 A→B DIR= 0 A←BE* = 1,不导通

E* = 0 ,导通 DIR= 1 A→B DIR= 0 A←BE* = 1,不导通

74LS245 与 Intel 8286功能一样

34

D触发器

D QC Q

电平锁存

D QC Q 上升沿锁存

电平锁存:高电平通过,低电平锁存上升沿锁存:通常用负脉冲触发锁存

负脉冲的上升沿

D QC Q

S

R

带有异步置位清零的电平控制的锁存器

35

74LS273

具有异步清零的TTL 上升沿锁存器

每一位都是一个 D触发器,8 个 D触发器的控制端连接在一起

36

三态缓冲锁存器(三态锁存器)

T

A D Q C

B

锁存环节 缓冲环节

37

Intel 8282

具有三态输出的TTL 电平锁存器

STB 电平锁存引脚OE* 输出允许引脚

每一位都是一个三态锁存器,8 个三态锁存器的控制端连在一起

38

74LS373

具有三态输出的TTL 电平锁存器

LE 电平锁存引脚OE* 输出允许引脚

74LS373 与 Intel 8282功能一样

39

最小组态的总线形成

AD7 ~ AD

0

A15 ~ A8

A19/S6 ~ A16/S3

+5V

8088

ALE

8282STB

系统总线信号

A19 ~ A16

A15 ~ A8

A7 ~ A0

D7 ~ D0

IO/M*RD*WR*

8282STB

8282STB

8286TOE*

MN/MX*IO/M*

RD*WR*

DT/R*DEN*

OE*

OE*

OE*

40

( 1 ) 20 位地址总线的形成

采用 3 个 8282 进行锁存和驱动 Intel 8282 是三态透明锁存器,类似有

Intel 8283 和通用数字集成电路芯片 373

三态输出:输出控制信号有效时,允许数据输出;无效时,不允许数据输出,呈高阻状态

透明:锁存器的输出能够跟随输入变化

41

( 2 ) 8 位数据总线的形成

采用数据收发器 8286 进行双向驱动 Intel 8286 是 8 位三态双向缓冲器,类似功能的器件还有 Intel 8287 、通用数字集成电路 245 等

另外,接口电路中也经常使用三态单向缓冲器,例如通用数字集成电路 244 就是一个常用的双 4 位三态单向缓冲器

42

( 3 ) 系统控制信号的形成

由 8088 引脚直接提供 因为基本的控制信号 8088 引脚中都含

有 例如: IO/M* 、 WR* 、 RD* 等 其它信号的情况看详图

43

最大组态的引脚定义

8088 的数据 / 地址等引脚在最大组态与最小组态时相同

有些控制信号不相同,主要是用于输出操作编码信号,由总线控制器 8288译码产生系统控制信号: S2* 、 S1* 、 S0*——3 个状态信号 LOCK*—— 总线封锁信号 QS1 、 QS0—— 指令队列状态信号 RQ*/GT0* 、 RQ*/GT1*——2 个总线请求 /同意信号

44

最大组态的总线形成系统总线信号

MEMR*MEMW*IOR*IOW*INTA*

DMA应答电路

AENBRDAEN’*

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*

8288DT/R*

DENALE

S2* ~ S0*S2* ~ S0*

MN/MX*

OE*

E*

MRDC*AMTW*

IORC*AIOWC*

INTA*

⑴ 系统地址总线采用三态透明锁存器 74LS373 和三态单向缓冲器

74LS244

⑵ 系统数据总线通过三态双向缓冲器 74LS245形成和驱动

⑶ 系统控制总线主要由总线控制器 8288形成MEMR* 、 MEMW* 、 IOR* 、 IOW* 、 INTA

*

45

5.2 8088 的总线时序

时序( Timing )是指信号高低电平 ( 有效或无效 )变化及相互间的时间顺序关系。

总线时序描述 CPU 引脚如何实现总线操作 CPU 时序决定系统各部件间的同步和定时

什么是总线操作?什么是总线操作?

46

4.2 8088 的总线时序(续 1 )

总线操作是指 CPU 通过总线对外的各种操作 8088 的总线操作主要有:

存储器读、 I/O 读操作存储器写、 I/O 写操作中断响应操作总线请求及响应操作CPU 正在进行内部操作、并不进行实际对外操作的空闲状态 Ti

描述总线操作的微处理器时序有三级:指令周期 → 总线周期 → 时钟周期

什么是指令、总线和时钟周期?什么是指令、总线和时钟周期?

47

5.2 8088 的总线时序(续 2 )

指令周期是指一条指令经取指、译码、读写操作数到执行完成的过程。若干总线周期组成一个指令周期

总线周期是指 CPU 通过总线操作与外部(存储器或 I/O 端口)进行一次数据交换的过程

8088 的基本总线周期需要 4 个时钟周期 4 个时钟周期编号为 T1 、 T2 、 T3 和 T4

总线周期中的时钟周期也被称作“ T 状态” 时钟周期的时间长度就是时钟频率的倒数

当需要延长总线周期时需要插入等待状态 Tw

何时有总线周期?何时有总线周期?

48

5.2 8088 的总线时序(续 3 )

任何指令的取指阶段都需要存储器读总线周期,读取的内容是指令代码

任何一条以存储单元为源操作数的指令都将引起存储器读总线周期,任何一条以存储单元为目的操作数的指令都将引起存储器写总线周期

只有执行 IN 指令才出现 I/O 读总线周期,执行 OUT 指令才出现 I/O 写总线周期

CPU 响应可屏蔽中断时生成中断响应总线周期如何实现同步?如何实现同步?

49

5.2 8088 的总线时序(续 4 )

总线操作中如何实现时序同步是关键 CPU 总线周期采用同步时序:

各部件都以系统时钟信号为基准当相互不能配合时,快速部件( CPU )

插入等待状态等待慢速部件( I/O 和存储器)

CPU 与外设接口常采用异步时序,它们通过应答联络信号实现同步操作

50

两种工作模式公共引脚定义

1 .地址 / 数据总线 AD15 ~ AD0 :分时复用地址 / 数据总线

A19/S6 ~ A16/S3 :分时复用的地址 / 状态信号线 存储读写操作总线周期的 T1 状态输出高 4 位地址 A19 ~ A16

对 I/O 接口输入输出操作时,这 4条线不用,全为低电平

在总线周期的其他 T 状态,这 4条线用来输出状态信息 S6始终为低电平

S5 是标志寄存器( PSW )的中断允许标志位 IF 的当前状态

S3 和 S4 用来指示当前正在使用的段寄存器

51

状态信号 A19/S6 –A16/S3 (输出,三态)

S4 S3 当前正在使用的段寄存器0 0 ES

0 1 SS

1 0 CS 或未使用任何段寄存器1 1 DS

S6始终为低电平; S5是标志寄存器(即 PSW)的中断允许标志位 IF的当前状态; S4 和 S3 用来指示当前正在使用的段寄存器。如表所示。

52

8088 与 8086 的差别 8088 引脚如前页图所示。 8088 与 8086略有差别:

( 1 ) 8088 有 8根外部数据引脚而不是 8086 的 16

根,这导致对一个 16 位数的存储器读写,总是需要二个总线周期才能完成。( 2 )第 28 引脚 8088 为M/IO ,而 8086 为 M/IO 。

( 3 ) 8088 与 8086 的第 34 引脚不同, 8088 中只能进行 8 位传输 ,故 BHE信号就用不着了 ,改为 SS0 等效于 S0,与M/IO 、 DT/R 组合决定最小模式下的总线操作,在最大模式下,该脚总为高电平。

53

8086 最小工作模式下控制核心单元的组成

+ 5V

读写控制

读写控制

读写控制

CSH奇地址存

储体

8284时钟

发生器

RESET

READY

CB

D7 ~ D0

D15 ~ D8

DB

CSL偶地址存

储体

CSI/O

接口

AB

A0

A1 ~ A19

BHE

STB OE8282

锁存器

8086CPUMN/MX

INTA RD

CLK WRREADY M/IORESET

ALEBHE

A19-A16

AD15-AD0

DEN DT/R

TOE 8286

收发器

D15~

D0

54

最小模式总线状态及操作

无效110

写存储器010

读存储器100

取指令000

暂停111

写 I/O011

读 I/O101

中断响应001

操作SS0DT/RIO/M

55

8086 最大工作模式下控制核心单元的组成

读写控制

读写控制

读写控制

CS

I/O接口

STB OE8282

锁存器

TOE

8286TOE 8286

收发器

8284时钟

发生器

RESET

READY

A1 ~ A19

A0BHE

AB

D7 ~ D0

D15 ~ D8

DB

CB

D15~

D0 CSH

奇地址存储体

CSL

偶地址存储体

8288S0 INTAS1 MRDCS2

MWTCDEN IORCDT/R IOWC ALE

8086CPUS0S1S2

MN/MX

CLK READY RESET

BHE A19-A16

AD15-AD0

56

最大模式总线状态 S0S1S2 总线周期状态信号(输出、三态),经过 828

8 总线控制器译码产生对存储器、 I/O 端口访问所需的控制信号

8288 输出命令CPU状态

中断响应读 I/O端口写 I/O端口

暂停取指令

读存储器写存储器无源状态

INTAIORC

IOWCAIOWC无

MRDC

MRDCMWTC,AMWC

0 0 00 0 1

1 1 11 1 0

1 0 00 1 10 1 0

1 0 1

S2 S1 S0

57

8086 最小组态和最大组态的比较

1)不同之处    最小模式下系统控制信号直接由 8086CPU

提供;最大模式下因系统复杂,芯片数量较多,为提高驱动能力和改善总线控制能力,大多数的系统控制信号由总线控制器 8288 提供

最小模式下 8086 的 31、 30 脚提供一组总线请求 / 响应信号( HOLD、 HLDA),而最大模式下 8086 的 31、 30 脚将提供两组总线请求 / 响应信号( RQ/GT0 、 RQ/GT1)。

58

2)相同之处: 8086 的低位地址线与数据线复用,为保证

地址信号维持足够的时间,需使用 ALE信号将低位地址线锁存(通过锁存器 8282),以形成真正的系统地址总线;

8086 的数据线通过数据收发器 8286 后形成系统数据总线,以增大驱动能力,数据收发器主要由 DEN 和 DT/R 两个信号控制。

8086 最小组态和最大组态的比较

59

1 、时钟周期 T ( T 状态)

时钟脉冲的一个循环时间叫做一个时钟周期。每个时钟周期 T 又称一个“状态”,它是 CPU 工作最小时间单位,所有操作都以这个时钟周期为基准,是计算机系统工作速度的重要标志。

IBM-PC/XT 时钟频率为 4.77MHZ

时钟周期 210nS 。

第三节、 8086/8088 的总线时序一 . 概述

60

2 、总线周期(机器周期)CPU 从存储器或 I/O 口存取一个字或字

节的时间称为总线周期8086 的总线周期有:存储器读写周期、

输入 / 输出周期、中断响应周期; 3 、指令周期

执行一条指令所需要的时间称为指令周期。一般要 1个以上的总线周期。

61

8086/8088 的时钟和总线周期

典型的 BIU 总线周期波形图

CLK //

//

T1 T2 T3,TW T4 T1 T1 T2 T3

总线周期 //总线周期

地址输出 数据输入地址/数据总线缓冲 浮空

地址/数据总线 地址输出 数据输出 写周期

读周期

图5-2 典型的BIU总线周期波形图

62

二、 8086/8088 的总线时序

系统的复位和启动操作 总线操作 暂停操作 中断操作 总线保持或总线请求 / 允许操作

63

RESET (输入):系统复位信号,高电平有效(至少保持四个时钟周期)。

CLK

图5-9 复位时序

RESET输入

内部RESET

浮空总线

不作用状态

64

复位后相关寄存器的初始状态

寄存器 初始状态 寄存器 初始状态状态标志寄存

器清 0 IP 0000H

CS FFFFH DS 0000H

SS 0000H ES 0000H

指令队列寄存器

清空 其他寄存器 0000H

65

8086 总线操作及时序

T1 T2 T3 Tw T4 T1 T2 T3 T4 Ti Ti T1 T2 T3 Tw Tw T4 Ti T1

  在两个总线周期T之间执行空闲周期 i

Tw I /O状态用来等待内存或 接口的响应

8086典型的 总线周期序列

总线周期 总线周期

时钟周期

时序图时序图:描述某一操作过程中,芯片:描述某一操作过程中,芯片 // 总线上有总线上有关引脚信号随时间发生变化的关系图关引脚信号随时间发生变化的关系图总线周期总线周期::执行一个执行一个总线操作总线操作所需要的时间所需要的时间一个基本的总线周期通常包含 一个基本的总线周期通常包含 4 4 个个 TT 状态状态

66

最小组态的总线时序

本节展开微处理器最基本的 4 种总线周期

存储器读总线周期

存储器写总线周期

I/O 读总线周期

I/O 写总线周期

67

8088 存储器写总线周期T4T3T2T1

ALE

CLK

A19/S6 ~ A16/S3

A15 ~ A8

AD7 ~ AD0

A15 ~ A8

A7 ~ A0 输出数据

A19 ~ A16S6 ~ S3

READY (高电平)

IO/M*

WR*

T1 状态——输出 20 位存储器地址 A19 ~ A0

IO/M* 输出低电平,表示存储器操作;ALE输出正脉冲,表示复用总线输出地址T2 状态——输出控制信号 WR* 和数据 D7 ~ D

0

T3 和 Tw状态——检测数据传送是否能够完成

T4 状态——完成数据传送

T1 状态——输出 20 位存储器地址 A19 ~ A0

IO/M* 输出低电平,表示存储器操作;ALE输出正脉冲,表示复用总线输出地址T2 状态——输出控制信号 WR* 和数据 D7 ~ D

0

T3 和 Tw状态——检测数据传送是否能够完成

T4 状态——完成数据传送

68

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 ~ D

0

T3 和 Tw状态——检测数据传送是否能够完成

T4 状态——完成数据传送

T1 状态——输出 16 位 I/O 地址 A15 ~ A0

IO/M* 输出高电平,表示 I/O 操作;ALE输出正脉冲,表示复用总线输出地址T2 状态——输出控制信号 WR* 和数据 D7 ~ D

0

T3 和 Tw状态——检测数据传送是否能够完成

T4 状态——完成数据传送

69

8088 存储器读总线周期T4T3T2T1

ALE

CLK

A19/S6 ~ A16/S3

A15 ~ A8

AD7 ~ AD0

A15 ~ A8

A7 ~ A0 输入数据

A19 ~ A16S6 ~ S3

READY (高电平)

IO/M*

RD*

T1 状态——输出 20 位存储器地址 A19 ~ A0

IO/M* 输出低电平,表示存储器操作;ALE输出正脉冲,表示复用总线输出地址T2 状态——输出控制信号 RD*

T3 和 Tw状态——检测数据传送是否能够完成

T4 状态——前沿读取数据,完成数据传送

T1 状态——输出 20 位存储器地址 A19 ~ A0

IO/M* 输出低电平,表示存储器操作;ALE输出正脉冲,表示复用总线输出地址T2 状态——输出控制信号 RD*

T3 和 Tw状态——检测数据传送是否能够完成

T4 状态——前沿读取数据,完成数据传送

70

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 状态——前沿读取数据,完成数据传送

T1 状态——输出 16 位 I/O 地址 A15 ~ A0

IO/M* 输出高电平,表示 I/O 操作;ALE输出正脉冲,表示复用总线输出地址T2 状态——输出控制信号 RD*

T3 和 Tw状态——检测数据传送是否能够完成

T4 状态——前沿读取数据,完成数据传送

71

插入等待状态 Tw

同步时序通过插入等待状态,来使速度差别较大的两部分保持同步

在读写总线周期中,判断是否插入 Tw1. 在 T3的前沿检测 READY 引脚是否有

效2. 如果 READY 无效,在 T3和 T4 之间

插入一个等效于 T3 的 Tw ,转13. 如果 READY 有效,执行完该 T状态,

进入 T4 状态

72

8088 最大组态的写总线时序

111110

T4T3T2T1

A15 ~ A8

A19 ~ A

16

S6 ~ S3

由 8288产生

ALE

S2* ~ S0*

CLK

A19/S6 ~ A16/S3

A15 ~ A8

DEN

写命令

AD7 ~ AD0 A7 ~ A

0

输出数据

DT/R*

AMWTC* MWTC*

73

8088 最大组态的读总线时序

111101

A15 ~ A8

A19 ~ A1

6

S6 ~ S3

ALE

S2* ~ S0*

CLK

A19/S6 ~ A16/S3

A15 ~ A8

DEN

由 8288产生

输入数据A7 ~ A

0

AD7 ~ AD0

T4T3T2T1

DT/R*

MRDC*

74

单 CPU 系统 8086 读操作总线周期时序

75

单 CPU 系统 8086 写操作总线周期时序

76

8086 最大模式下的读总线周期时序

81( DS )=3000H, (BX)=500CH, (3500CH)=9AH

1.IO/M变低, CPU 将对内存进行

操作 2. A19~A0 上出现地

址信号 0011 0101 0000 0000 1100

3. ALE 上出现正脉冲信号

4. DT/R变低, 数据收发器处于接受状态

执行指令 MOV AL,[BX] 的时序图 T1

A19~A16

T1 T2 T3 T4

A19~A16/S6~S3

M/IO

A15~A8

RD

DT/R

DEN

CLK

S6 ~ S3

D15 ~D0AD15~AD0

ALE

A15 ~ A0

82

5.A19~A16 上 出 现状态信号 S6S5S44S3

=0 IF 1 1 ,使用 DS 6.AD7~AD0变高阻

态 7.RD 变低 , CPU

将进行读操作 8. DEN 变低,允许

数 据 收 发 器 进 行 数据传送

执行指令 MOV AL,[BX] 的时序图 T2

A19~A16

T1 T2 T3 T4

A19~A16/S6~S3

M/IO

A15~A8

RD

DT/R

DEN

CLK

S6 ~ S3

D15 ~D0AD15~AD0

ALE

A15 ~ A0

83( DS )=3000H, (BX)=500CH, (3500CH)=9AH

9.AD7~AD0 上出现数据信号 1 0 0

1 1 0 1 0

执行指令 MOV AL,[BX] 的时序图 T3

A19~A16

T1 T2 T3 T4

A19~A16/S6~S3

M/IO

A15~A8

RD

DT/R

DEN

CLK

S6 ~ S3

D15 ~D0AD15~AD0

ALE

A15 ~ A0

84

10. RD 变高, CP

U 从数据线上读数据 , 数据 9AH 读到 AL 中11. DEN 变高,数据收发器与总线断开, AD7~AD0

变高阻态

执行指令 MOV AL,[BX] 的时序图 T4

A19~A16

T1 T2 T3 T4

A19~A16/S6~S3

M/IO

A15~A8

RD

DT/R

DEN

CLK

S6 ~ S3

D15 ~D0AD15~AD0

ALE

A15 ~ A0

85

中断响应周期 可屏蔽中断请求输入信号,高电平有效。

当 INTR为高电平时,表示外部有中断请求。 CPU在每条指令的最后一个时钟周期对 INTR进行测试,以便决定现行指令执行完后是否响应中断。 CPU 对可屏蔽中断的响应受中断允许标志位 IF 状态的影响。

86

INTA (输出)

INTA 是处理器发向中断控制器的中断响应信号。在相临的两个总线周期中输出两个负脉冲。外部设备(中断源)不能直接通过 8086/8088 的 INTR端向 CPU提出可屏蔽中断请求,必须通过可编程中断控制器 8259A。具体方法如下图所示。

87

中断响应周期时序

88

总线保持 HOLD (输入请求)总线释放 HLDA (输出允许)

HOLD是系统中其它总线主控设备向 CPU请求总线使用权的总线申请信号,高电平有效。 CPU让出总线控制权直到这个信号撤消后才恢复对总线的控制权。

HLDA是 CPU对系统中其它总线主控设备请求总线使用权的应答信号,高电平有效,当 CPU让出总线使用权时,就发出这个信号,并使微处理器所有具有三态的引脚处于高阻状态,与外部隔离。

89

CPU 在每个时钟脉冲的前沿测试 HOLD 引脚。如 CPU 在 T4 之前或T1 期间收到一个 HOLD 信号,则 CPU 发 HLDA 信号。后续的总线周期将授予提出请求的主控设备,直到该主控设备撤消总线请求为止。总线请求信号 HOLD变低是在下一个时钟脉冲的上升沿进行测试的,而 HLDA 信号则在该时钟脉冲后 1—2 个时钟脉冲的后沿下降为低电平。当 HLDA 为高电平时, CPU 所有三态输出都进入高阻状态,已在指令队列中的指令将继续执行,直到指令需要使用总线为止。

top related