430 likes | 591 Views
一、 8086 的引脚功能 二、 8086 的两种工作模式. 第三节 8086 的引脚功能. CLK. 一、总线周期. 1. CPU 是在时钟信号的控制下工作. 时钟信号是一个按一定电压幅度, 一定时间间隔发出的脉冲信号. CPU 所有的操作都以时钟信号为基准 CPU 按严格的时间标准发出地址,控制信号, 存储器、接口也按严格的时间标准送出或接受数据 . 这个 时间标准就是由时钟信号确定 。. 2. 外频性能指标 8086CPU
E N D
一、8086的引脚功能 二、 8086的两种工作模式 第三节8086的引脚功能
CLK 一、总线周期 1.CPU是在时钟信号的控制下工作 时钟信号是一个按一定电压幅度, 一定时间间隔发出的脉冲信号 CPU所有的操作都以时钟信号为基准 CPU 按严格的时间标准发出地址,控制信号, 存储器、接口也按严格的时间标准送出或接受数据. 这个时间标准就是由时钟信号确定。
2.外频性能指标 8086CPU 频率f :1秒内的脉冲个数 5MHz 周期 T = 1/ f 200ns 占空比:高电平在一个周期中的比例 1: 3 CLK T
CLK T 3.T状态 • 相邻两个脉冲之间的时间间隔, 称为一个时钟周期,又称 T状态(T周期)。 每个T状态包括:下降沿、低电平、上升沿、高电平
T1 T2 T3 T4 CLK 总线周期 一个基本的总线周期通常包含 4 个T状态, 按时间的先后顺序分别称为T1、T2、T3、T4
T3 T4 Tw Tl T4 Tl T1 T1 CLK CLK 总线周期 总线周期 T3之后插等待状态TW Tl为总线空闲周期
4、指令周期 执行一条指令所需要的时间称为指令周期。 执行一条指令的时间: 是取指令、执行指令、取操作数、存放结果所需时间的总和。 用所需的时钟周期数表示。 例MOV BX, AX 2个T周期 MUL BL 70~77个T周期
不同指令的执行时间(即指令周期)是不同的; 同一类型的指令,由于操作数不同,指令周期也不同 例MOV BX, AX 2个T周期 MUL BL 70~77个T周期 MOV [ BX ], AX 14个T周期
执行指令的过程中, 需从存储器或I/O端口读取或存放数据, 故一个指令周期通常包含若干个总线周期 例1执行 MOV BX, AX 包含: 取指令 存储器读周期 • 例2执行ADD [ BX ], AX 包含: • 1)取指令 存储器读周期 • 2)取 ( DS:BX )内存单元操作数 存储器读周期 • 3)存放结果到 ( DS:BX )内存单元 存储器写周期
8086CPU是双列直插式 芯片,共有40条引脚; 引脚33决定工作模式: 接地,最大模式 接+5V, 最小模式 在两种模式下引脚24~31 有不同的名称和意义 二、8086的引脚功能
(一) 电源、地、时钟信号 • 40 Vcc +5V • 1和20 GND • 19 CLK 5MHz,占空比1/3达最佳状态,即1/3周期为高电平, 2/3周期位低电平;为CPU和总线控制逻辑电路提供定时手段。 (二) 处理器控制信号 • 21 RESET:输入,高电平有效,复位信号。使微处理器停 止现行操作,并进行初始化:CS置为0FFFFH, 其余寄存器清零、指令队列清空。 • 22 READY:输入,高电平有效,准备就绪引脚。当进行总 线操作时,该引脚有效才可以完成数据传送操作, 否则会一直等待该引脚为有效状态。 • 23 TEST:输入,低电平有效,测试引脚。当它有效时, 可以使微处理器退出WAIT指令的执行。 • 33 MN/MX:工作方式选择引脚。接高电平表示工作在最小模式, 低电平表示工作在最大模式。
总线保持的硬件握手信号1对变成2对 存储器与接口选择、数据传输方向控制、数据传 输允许变成了3个状态输出。最大模式时通过总线 控制器译码状态信号产生等同的控制信号。 地址锁存控制信号、中断响应信号变成 指令队列状态输出 • 17NMI:输入,上升沿有效,不可屏蔽中断请求引脚 • 18 INTR:输入,高电平有效,可屏蔽中断请求引脚 • 32 RD:输出,三态,低电平有效,读控制引脚 (三) 复用总线引脚 • 2—16,39 AD0~AD15地址/数据分时复用引脚,双向,三态 • 38,37,36,35 A16 ~A19 /S3~S6地址/状态分时复用引脚,输出,三态 • 34 BHE/S7高8位数据总线允许/状态复用引脚,输出,三态,低电平有效 (四) 在不同工作方式下定义不同的引脚 • 31 HOLD RQ/GT0 • 30 HLDA RQ/GT1 • 29 WR LOCK写控制信号变成总线封锁信号 • 28 M/IO S2 • 27 DT/R S1 • 26 DEN S0 • 25 ALE QS1 • 24 INTA QS0 • 小模式 大模式
(五) 引脚说明 • A16 ~A19 /S3~S6地址/状态分时复用引脚,在访问存储器时用来输出地址的高4位;其余时间作为内部状态信息来输出:S6=0 用来8086/8088当前与总线相连,通常保持0, S5=1 表示当前允许可屏蔽中断请求, S4 、S3组合指示当前正在使用的段寄存器。当系统总线处于“保持响应”时, A16 ~A19 /S3~S6高阻态。 • 在8086中,输出BHE信号,表示高8位数据线D15~D8上数据有效,而S7并未被赋予任何实际意义。
在最小模式下: • INTA:中断响应信号,输出,低电平有效,用来对外设的中断请求做出响应。 • ALE:地址锁存允许信号,输出,高电平有效。 • DEN:数据允许信号,输出,三态,为8286/8287数据总线收发器提供一个控制信号,表示CPU当前准备发送或接收一个数据。 • DT/R:数据收发控制信号,输出,三态,用于控制双向驱动器8286/8287的数据传送方向。高电平时数据发送;低电平时数据接收;DMA方式时高阻态。 • M/IO:存储器/输入输出控制信号,输出,三态。高电平时表示CPU和存储器之间进行数据传输;低电平时表示CPU和I/O设备之间进行数据传输; DMA方式时高阻态。 • WR:写信号,输出,低电平有效,表示CPU当前正在进行存储器或I/O写操作,具体为哪种写操作由M/IO信号决定, DMA方式时高阻态。 • HOLD:总线保持请求信号,输入,高电平有效,其他总线主控者向CPU请求使用总线的信号。 • HLDA:总线保持响应信号,输出,高电平有效,表示对其它主部件的总线请求做出响应,与此同时让出总线。
在最大模式下: QS1,QS0:指令队列状态信号,输出,表示当前8086中指令队列的 状态。 LOCK:总线封锁信号,输出,低电平有效,用来封锁外部处理器使用总线。 RQ/GT1,RQ/GT0:总线请求信号,输入/总线请求允许信号/输出,低电平有效,这两个信号都是双向的,总线请求信号和允许信号在同一引脚上传输,但方向相反。这两个信号端可供CPU以外的2个处理器用来发出使用总线的请求信号和接收CPU对总线请求信号的回答信号。
S2,S1,S0:总线周期状态信号,输出,这三个信号组合可指出当前总线周期中所进行的数据传输过程的类型。最大模式系统中的总线控制器8288就是利用它们来产生对存储器和I/O的控制信号。S2,S1,S0:总线周期状态信号,输出,这三个信号组合可指出当前总线周期中所进行的数据传输过程的类型。最大模式系统中的总线控制器8288就是利用它们来产生对存储器和I/O的控制信号。
三、8086的两种工作模式 用8086CPU构成一个系统时, 根据所连的存储器和外设规模的不同, 有两种不同的工作模式: 最小模式 最大模式
系统规模小: 只含有一个8086CPU 不含数字运算协处理器、 输入/输出协处理器 系统的控制总线直接由8086CPU的控制线供给, 系统中的总线控制逻辑电路被减少到最小。 1.最小模式
8284 时钟发生器 • 引脚图 CLK内部时钟三分频信号,占空比1/3 PCLK内部时钟六分频信号,占空比1/2 X1、X2外接晶体,供内部振荡器产生震荡频率 RESET复位信号产生 RDY1 内存或外设的等待请求信号
8286 (8位双向三态总线驱动器) • 引脚图 • 真值表 提高数据总线的驱动能力
8286收发器和8086连接 AD A B 0 0 0 AD A B 1 1 1 AD A B 2 2 2 数 AD A B 8286 8086 3 3 3 据 AD A B 4 4 4 总 AD A B 5 5 5 线 AD A B 6 6 6 AD A B 7 7 7 OE T DEN DT/ R 最小模式中:在存储的访问周期, I/O访问周期或中断响应周期 DEN=0; DT/R = 1, A=>B; DT/R = 0 ,B=>A
8286收发器和8086连接说明 • OE 输出允许, OE – DEN 相连 • DEN 数据允许信号(8086), 输出三态, • 最小模式中:在存储的访问周期, I/O访问周期或中断响应周期 • DEN=0; • DMA 方式 :DEN高阻. • v DT/R 数据发送/接收控制信号, 最小模式中,用来控制数据传送方向: • DT/R = 1, CPU 输出数据,收发器将数据送系统数据总线. A=>B • DT/R = 0, CPU 读入数据,收发器从系统数据总线读取数据, B=>A • DT/R高阻, DMA 方式
8282 (8下降沿锁存/三态器 ) • 真值表 • 引脚图 DI VCC 1 20 0 DI DQ 2 19 三态控制 锁存控制 输入 输出 1 0 DI DQ OE DI DQ 3 18 STB 2 1 DI DQ 4 17 0 1 1 ↓ 3 2 DI DQ 5 16 0 0 0 4 3 ↓ DI DQ 6 15 5 4 0 X 不变 ↓ DI DQ 7 14 6 5 1 ↓ X 高阻 DI DQ 8 13 7 6 OE DQ 9 12 解决地址/数据总线分时复用 7 STB GND 10 11
8282-8088连接图 ALE AD DI0 DO 0 0 DI1 AD DO 1 1 DI2 AD DO 2 2 AD DO 。。。 3 3 8282 AD DO 4 4 DI7 AD DO 5 5 AD DO 6 6 8086 AD DO 数据 7 7 OE STB 地 址 AD8 AD9 . . . AD15 A 16 A 17 8282 8282 A 18 OE OE A 19 STB STB BHE OE 输出允许: OE=0 输出 (1)ALE = STB 出现正脉冲时, AD7-AD0,AD15-AD8 出现16位地址信号, 将锁存16位地址. (2)ALE = STB = 0 时 出现数据时, 不会影响已锁存地址信息
8282-8086连接说明 8282作为地址锁存 O E 输出允许: OE = 0, DO -- DO 输出 7 0 OE = 1, DO -- DO 高阻 7 0 ALE 8086地址锁存允许, 高电平有效, 输出, 复用线上出现地址时为高电平. DI -- DI 7 0 与 CPU 地址/数据复用线 AD -- AD 相连. 7 0 ALE = STB 出现正脉冲时, AD -- AD 出现低8 位地址信号,将锁存 8 位地址. 7 0 OE = 0, D0 -- DO 为输出 CPU 8 位低地址。 7 0 ALE = STB = 0 时 , AD -- AD 出现数据时, 不会影已响锁存地 7 0 址信息.
系统规模较大: 除8086CPU外,还可以有其它协处理器 如 数字运算协处理器8087 输入/输出协处理器8089 系统的控制总线由总线控制器8288来提供 8288增强了8086CPU总线的驱动能力 将8086的状态信号(S2~S0)进行译码, 提供8086对存储器、I/O接口进行控制所需的信号 2.最大模式
命令 输出 状态输入 当系统中有多个处理器时,就一定要用到总线控制器8288。 8288的功能是根据CPU执行指令时提供的状态信号来建立控制时序,据此输出读/写控制信号。 8288用在最大模式时产生M或I/O的读/写信号、中断响应信号和总线控制信号。 控制 输入 控制 输出 8288 (总线控制器) • 功能 • 引脚图
状态输入信号 • 信号S2,S1,S0的组合确定当前CPU要执行的操作,从而发出响应命令信号。 S2 S1 S0对应操作 8288发出的控制命令 0 0 0 中断响应 INTA 0 0 1 读I/O IORC 0 1 0 写I/O IOWC和AIOWC(超前写) 0 1 1 暂停 1 0 0 取指令 MRDC 1 0 1 读内存 MRDC 1 1 0 写内存 MWTC和AMWC( 超前写) 1 1 1 无源状态
一、复位操作时序 二、I/O端口、存储器读周期 三、I/O端口、存储器写周期 第四节8086 在最小模式下的时序
学习时序的目的: • 加深对指令执行过程及计算机工作原理的了解。 • 设计接口时,需考虑各引脚信号在时序上的配合。
T2 T1 T3 T4 CLK RESET 输入 内部 RESET 浮空 三态门 输出信号 一、复位操作时序 8086的复位和启动通过RESET的高电平来实现的,至少要保持4个时钟周期。 (1)CS=FFFFH,IP=0000H。寄存器清零。 (2)三态输出总线变为高阻。(参见教材P45)
I/O端口、存储器读周期时序 T2 T1 T3 T4 CLK 8086 GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND VCC AD15 A16/S3 A17/S4 A18/S5 A19/S6 SSO MN/MX RD HOLD HLDA WR IO/M DT/R DEN ALE INTA TEST READY RESET M/IO 低IO 高Mem A19~A16 /S6~S3 A19~A16 S6 ~ S3 AD15~AD0 A15 ~ A0 D15 ~ D0 ALE RD DT/R DEN BHE/S7
例.( DS )=3000H, (BX)=500CH, (3500CH)=9AH 执行 MOV AL, [ BX ] T2 T1 T3 T4 CLK T1状态 M/IO 低IO 高Mem 1.M//IO变高, CPU将对内存进行操作 2. A19~A0上出现地址信号 0011 0101 0000 0000 1100 A19 A15 A11 A7 A3 A0 3. ALE上出现正脉冲信号 4. DT/R变低, 数据收发器处于接受状态 A19~A16 /S6~S3 A19~A16 S6 ~ S3 AD15~AD0 A15 ~ A0 D15 ~ D0 ALE RD DT/R DEN BHE/S7
( DS )=3000H, (BX)=500CH, (3500CH)=9AH 执行 MOV AL, [ BX ] T2状态 5.A19~A16上出现状态信号 0 IF 1 1 S6 S5 S4 S3 使用DS 6. AD15~AD0变高阻态 7. RD变低 发给内存, CPU将进行读操作 8. DEN 变低 允许数据收发器进行数据传送 T2 T1 T3 T4 CLK M/IO 低IO 高Mem A19~A16 /S6~S3 A19~A16 S6 ~ S3 AD15~AD0 A15 ~ A0 D15 ~ D0 ALE RD DT/R DEN BHE/S7
( DS )=3000H, (BX)=500CH, (3500CH)=9AH 执行 MOV AL, [ BX ] T2 T1 T3 T4 CLK M/IO 低IO 高Mem A19~A16 /S6~S3 T3状态 A19~A16 S6 ~ S3 9.AD7~AD0上出现数据信号 1 0 0 1 1 0 1 0 AD7 AD0 数据由 3500CH 内存单元送出 AD15~AD0 A15 ~ A0 D7 ~ D0 ALE RD DT/R DEN BHE/S7
( DS )=3000H, (BX)=500CH, (3500CH)=9AH 执行 MOV AL, [ BX ] T2 T1 T3 T4 CLK M/IO 低IO 高Mem A19~A16 /S6~S3 A19~A16 S6 ~ S3 AD15~AD0 A15 ~ A0 D7 ~ D0 T4状态 ALE 10. RD变高, CPU从数据线上读数据, 将数据9AH读到AL中 11. DEN变高, 数据收发器与总线断开, AD15~AD0 变高阻态 RD DT/R DEN BHE/S7
I/O端口、存储器写周期时序 T2 T1 T3 T4 8086 GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND VCC AD15 A16/S3 A17/S4 A18/S5 A19/S6 SSO MN/MX RD HOLD HLDA WR IO/M DT/R DEN ALE INTA TEST READY RESET CLK M/IO 低IO 高Mem A19~A16 /S6~S3 A19~A16 S6 ~ S3 BHE/S7 AD15~AD0 A15 ~ A0 D15 ~ D0 ALE WR DT/R DEN
( DS )=6000H, (DI)=300AH, (BL)=7CH 执行 MOV [ DI ], BL T2 T1 T3 T4 CLK 1.IO/M变低, CPU将对内存进行操作 2.A19~A0上出现地址信号 0110 0011 0000 0000 1010 A19 A15 A11 A7 A3 A0 3.ALE上出现正脉冲信号 4.DT/R变高,数据收发器发送 IO/M A19~A16 /S6~S3 A19~A16 S6 ~ S3 A15~A8 AD7~AD0 A7 ~ A0 D7 ~ D0 ALE WR DT/R DEN T1状态
( DS )=6000H, (DI)=300AH, (BL)=7CH 执行 MOV [ DI ], BL T2 T2状态 T1 T3 T4 CLK 5.WR变低, 发给内存, CPU将进行读 6. A19~A16上出现状态信号 0 IF 1 1 S6 S5 S4 S3 使用DS 7. DEN 变低, 允许数据收发器进行数据传送 8. AD7~AD0上出现数据信号 即BL的内容 0 1 1 1 1 1 0 0 AD7AD0 IO/M A19~A16 /S6~S3 A19~A16 S6 ~ S3 A15~A8 AD7~AD0 A7 ~ A0 D7 ~ D0 ALE WR DT/R DEN
( DS )=6000H, (DI)=300AH, (BL)=7CH 执行 MOV [ DI ], BL T2 T1 T3 T4 CLK IO/M A19~A16 /S6~S3 A19~A16 S6 ~ S3 A15~A8 AD7~AD0 A7 ~ A0 D7 ~ D0 ALE WR DT/R DEN T3状态 9.继续提供状态信号S6~S3 数据信号D7~D0 10.维持有关控制信号不变
( DS )=6000H, (DI)=300AH, (BL)=7CH 执行 MOV [ DI ], BL T2 T1 T3 T4 CLK T4状态 IO/M 11. WR变高, 将数据线上的数据7CH 写到 6300AH 内存单元中 12. DEN变高, 数据收发器与总线断开, AD7~AD0 变高阻态 A19~A16 /S6~S3 A19~A16 S6 ~ S3 A15~A8 AD7~AD0 A7 ~ A0 D7 ~ D0 ALE WR DT/R DEN