1 / 37

5.3 8086 的中断系统

5.3 8086 的中断系统. 5.3.1 中断结构 采用中断矢量结构 , 每个中断有一个中断类型码 ( 号 ), 供 CPU 进行识别 , 最多能处理 256 种不同的中断类型 ( 即 256 个入口矢量 ). 一、中断向量表 存放中断服务程序入口地址的表格 . 结构如图 5-15 所示。存放在存储器的最低端,占用 0~3FFH ( 1024 个)字节的地址空间。. 构成:每个中断入口地址占 4 个字节,低 2 字节放入口地址的段内偏移量 IP ,高 2 字节放段基址 CS , 4 个单元的最低地址称为向量地址(中断向量)。 向量地址 = 中断类型码* 4

tarika
Download Presentation

5.3 8086 的中断系统

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 5.3 8086的中断系统 • 5.3.1 中断结构 • 采用中断矢量结构,每个中断有一个中断类型码(号),供CPU进行识别,最多能处理256种不同的中断类型(即256个入口矢量). • 一、中断向量表 • 存放中断服务程序入口地址的表格.结构如图5-15所示。存放在存储器的最低端,占用0~3FFH(1024个)字节的地址空间。

  2. 构成:每个中断入口地址占4个字节,低2字节放入口地址的段内偏移量IP,高2字节放段基址CS,4个单元的最低地址称为向量地址(中断向量)。构成:每个中断入口地址占4个字节,低2字节放入口地址的段内偏移量IP,高2字节放段基址CS,4个单元的最低地址称为向量地址(中断向量)。 • 向量地址=中断类型码*4 • 例:设中断类型码13H,放IP=0A00H,CS=1E00H。 • 向量地址=13H*4=4CH,由4CH、4DH单元取出IP值,由4EH、4FH单元取出CS值,得入口地址1EA00H,则从1EA00H处开始执行。 • 可见,计算机通过中断向量转向相应的中断服务程序。

  3. 二、中断分类 • 1、内部中断:由软件中断指令INT n 启动,由n提供类型号; • 2、外部中断: • 1)可屏蔽中断INTR——由外部硬设备启动,由硬件提供类型号; • 2)不可屏蔽中断NMI——由CPU内自动提供类型号。

  4. 8086/8088的中断源可有256个,如图5-13所示 • 专用5个(内部中断):在某些特定情况下,由CPU内硬件自动提供类型号0~4; • 保留27个(软件中断):由内部软件的中断指令产生,供系统开发用。 • 用户定义224个(外部中断):由外部设备硬件启动。 • 可以利用保留的中断类型码扩充自己需要的中断功能,只要在向量表中加入对应的中断向量即可。

  5. 5.3.2 外部中断 • 一、可屏蔽中断INTR 处理过程: • 1)接口发请求,若屏蔽位(可用命令写入)=0, • 通常由可编程中断控制器8259A PIC驱动,INTR=1,一直保持到收到响应信号或撤消请求为止. • 若IF=0(关中断,可由CLI复位),CPU不响应,继续处理下一条指令; • 若IF=1(开中断,可由STI置位),CPU响应, • 2)执行两个INTA总线周期,发两个INTA信号,时序见图5-14, • 第一个INTA信号通知8259A请求已被接收;

  6. 在第二个INTA信号有效,8259A送中断类型码(初始化时写入8259A)到数据总线,由CPU启动中断过程,同时撤消中断请求信号.在第二个INTA信号有效,8259A送中断类型码(初始化时写入8259A)到数据总线,由CPU启动中断过程,同时撤消中断请求信号. • 二、不可屏蔽中断NMI • 发生“灾难性”事件(如电源掉电、存储器读写出错、总线奇偶出错或协处理器中断请求等),NMI=1,无法禁止(不受IF影响),优先级比INTR高,且是边沿触发(只要有效宽度大于2T即可),中断类型号为2,CPU响应NMI,不发INTA,不要求外设提供中断向量,自动到08H单元取入口地址。

  7. 5.3.3 内部中断 • 通过软件调用的不可屏蔽中断,有以下几种: • 一、溢出中断——类型4(单字节指令) • OF=1,执行INTO,产生一个4类中断。 • 二、除法出错中断——类型0 • 在执行DIV和IDIV后,出现除数为0后商大于寄存器所能表示的范围,CPU产生一个0类中断。 • 三、INT n 指令中断——类型n • 由系统提供或用户定义,CPU执行后,立即产生中断,转向n规定的中断服务程序去,入口地址在初始化时已预置在中断向量表中。

  8. 四、断点中断——类型3(单字节指令) • CPU执行INT 3 (简写INT)时,产生中断,进行特殊处理,如显示寄存器、存储单元的内容,以检查程序运行的结果是否正确。在调试时把断点插入程序中的关键之处,命令如-G CS:nnnnH。 • 五、单步(陷阱)中断——类型1 • 当陷阱标志TF=1,8086/8088处于单步工作方式,用-T命令,CPU每执行完一条指令就自动产生一个1型中断,把状态标志PSW、CS、IP压栈,清除TF和IF,则CPU执行单步中断服务程序时以非单步工作方式,单步中断服务程序结束后,

  9. 弹出IP、CS、PSW,此时TF=1,CPU返回后以单步方式工作。弹出IP、CS、PSW,此时TF=1,CPU返回后以单步方式工作。 • 单步中断过程可以是:打印或显示寄存器内容、指令指针值或关键的寄存器变量等,详细跟踪一个程序的具体执行过程,确定程序出错的位置。 • TF的设置: 在PSW中,D8=TF • TF置1:PUSHF,将栈顶内容与0100H相“或”,POPF; • TF清0:PUSHF,将栈顶内容与FEFFH相“与”,POPF;

  10. 内部中断的特点 • 1、中断类型码或包含在指令中,或是预先规定的; • 2、不执行INTA总线周期; • 3、除单步中断外,任何内部中断都无法屏蔽; • 4、除单步中断外,任何内部中断的优先权都比外部中断的优先权高。8086/8088的中断优先级见表5-1。但执行内部中断时,会响应不可屏蔽中断请求,若用了开中断,也可响应可屏蔽中断请求;

  11. 5、若用软件中断INT n 指令,使它与外设的类型码相同,来启动由外设启动的外设中断服务程序,可用于模拟调试外部设备的中断服务程序; • 6、软件中断无随机性; • 7、软件中断可用于管理调用和系统程序的再定位。如:在一个文件中查找一个记录、向另一程序发送一个信息、请求分配存储器空间、互相通信和互相调用。

  12. 5.4 I/O接口中的中断控制电路 • 5.4.1 CPU与多个中断源的连接 • 8个外设的中断请求触发器组成一个端口,如图5-16,所有INT信号相“或”后接CPU的INTR端。 • 5.4.2 中断源的识别 • 找到相应的中断服务程序的入口地址。有两种方法: • 1.查询中断 • 收到中断请求,CPU才查询,主要用软件查询。CPU依次读出每一个外设的的外设的中断状态位,通过测试该状态位来判断对应的外设是否发出请求,以转到相应的中断服务程序。

  13. 例:4个外设的查询测试程序的流程图和硬件示意图如图5-17,4个请求经“或”输入,若4次都未测到,则由于出错引起,程序转向出错出口。例:4个外设的查询测试程序的流程图和硬件示意图如图5-17,4个请求经“或”输入,若4次都未测到,则由于出错引起,程序转向出错出口。 • 2.向量中断(矢量中断) • 每个外设被指定一个中断向量,当CPU响应时,由硬件的控制逻辑送入中断向量,以提供中断服务程序的入口地址,转入中断服务。 • 4、保护现场(有关寄存器内容和标志寄存器的状态入栈) • 5、执行中断服务程序

  14. 6、恢复现场(有关寄存器内容和标志寄存器的状态出栈)6、恢复现场(有关寄存器内容和标志寄存器的状态出栈) • 7、开中断与返回 • 5.4.3 中断优先级 • 根据中断源要求的轻重缓急,排好中断优先次序(即优先级或优先权),先响应优先级最高的中断请求,正在处理中断时,能响应优先级更高的中断请求,而屏蔽同级和较低级的中断请求(即多重中断).

  15. 确定中断优先级的方法: • 1.软件查询确定中断优先级 • 硬件:8个外设的中断请求触发器组成一个端口,如图5-18,所有INT信号相“或”后接CPU的INTR端。 • 软件:当CPU响应后,在中断服务程序前加一段判优的查询程序,即CPU逐位检测放在中断寄存器的状态,若有请求,即转入相应的中断服务程序入口。而询问的次序即为优先级的次序。 • 优点:省硬件; • 缺点:中断源较多时,查询花费的时间长,响应慢。

  16. 2.硬件查询确定优先级(链式) • 如图5-19,INTR信号的产生同软件查询法,靠近CPU的优先级最高。 • 当INTA=0 • 1)若本级中断触发器=1,EN=1,外设经三态缓冲器往总线送中断标志(类型号),转中断处理;下级门被封锁,INTA不下传。 • 2)若本级中断触发器=0,本级EN=0,不响应,下级门打开,INTA传给下一设备。 • 优点:响应快,硬件较简单。 • 缺点:优先级固定。

  17. 5-19

  18. 三、中断优先级编码电路 • 如图5-20,INT是否传入CPU的INTR端,受三方面控制:1)若中断屏蔽位IMn=0;2)受比较器控制;3)受优先级失效信号( CPU不在处理中断服务时为1)控制。 • 优先级编码器:8个中断输入线,对应产生三位二进制优先编码,最高的为111,最低为000,但只输出优先级最高的一个A到比较器,而优先级寄存器(当前中断服务寄存器)的编码作为另一输入B,1)若AB,“AB”=0,封锁门1,禁止向CPU发INT;2)若“AB”=1,打开门1,INT送入CPU。 • 当CPU响应后,发INTA=0,打开三态缓冲器,中断向量送入CPU.

  19. 5-20

  20. 中断的嵌套 • 中断嵌套(多重中断):当CPU执行优先级较低的中断服务程序时,允许响应优先级更高的中断请求,而挂起正在处理的中断,转去处理较高的中断服务,处理完再返回被中断的较低优先级的中断服务。 • 与单级中断的区别: • (1) 屏蔽本级和较低级中断请求; • (2)为保证中断嵌套,进行中断服务前,在保护现场、屏蔽本级和较低级中断后,要开中 • (3)为使恢复现场不受干扰,先关中断。

  21. 5.4.4 中断传送方式的接口电路 • 如图5-21所示中断传送方式的输入接口电路. • 1)输入设备准备好,发选通信号READY,一使数据送入锁存器,二使中断请求触发器U2置1; • 2)若系统允许,中断屏蔽触发器U3已置1,经与门U7向CPU发INTR=1信号; • 3)若开中断(IF=1),则在现行指令执行完后可响应中断,执行中断响应周期; • 4)CPU发INTA=0,一使要求外设接口将中断类型码送上数据总线,二清除中断请求触发器使U2=0; • 5)转去执行中断程序,发IN指令,取数据到数据总线D7~D0 • 6)返回.

  22. 5.5 I/O接口芯片概述 • 5.5.1 I/O接口电路的发展与分类 • 1.发展 • 简单接口芯片 • 可编程I/O接口芯片段 • 功能接口板,控制芯片组(芯片组) • 2.分类 • 1)按功能选择的灵活性分 • (1)不可编程接口芯片 • (2)可编程接口芯片

  23. 2)按接口的通用性分 • (1)通用接口芯片 • (2)专用接口芯片

  24. 5.5.2 简单的I/O接口芯片 • 1.特点与组成 • 电路结构简单,功能单一固定,不可通过指令改变.如: • 1)仅含三态缓冲器的并行接口电路 • Intel 8216, SN74LS244,245等 • 2)仅含数据锁存器的并行接口电路 • 74LS273,375等 • 3)兼具数据锁存器和三态缓冲器的并行接口电路 Intel 8212, 74LS373,375等

  25. 2 三种简单的I/O接口芯片 • 在外设接口电路中,对信息进行放大、隔离以及锁存的功能的接口芯片最简单的是缓冲器、数据收发器和锁存器。 • 1)74系列器件 • 是TI公司的中小规模TTL集成电路芯片。从功能和速度分为: • 74nnn——标准TTL • nnn——代表逻辑功能 • 74后跟L——表示低功耗;S——肖特基型 • ALS——高性能; F——高速型

  26. 2)锁存器74LS373 • 具有三态总线驱动输出的8D锁存器, 逻辑电路和引脚图如图5-22所示,D触发器时钟连在一起作“锁存允许”(使能)信号G,输出允许为OE-。 • 当G=H,OE=L,Q=D (直通门) • G=L,OE=L,Q=Q0(保持原态) • OE=H,Q=Z (高阻抗) • 用途: • 1、IBM PC/XT机中用于锁存地址信息和页面地址信息

  27. 2、匹配外设和微处理器的速度。输入时,锁住设备的输入信息,保持到微处理器取走信息;输出时,锁存微处理器送出的数据直到外设取走数据。2、匹配外设和微处理器的速度。输入时,锁住设备的输入信息,保持到微处理器取走信息;输出时,锁存微处理器送出的数据直到外设取走数据。 • 常用的锁存器还有:74LS273,573,Intel8282和8283等。

  28. 3)缓冲器74LS244 • 8缓冲器和线驱动器,逻辑电路和引脚图如图5-23所示,分二路,4根数据线的使能端G连在一起,1A1Y由1G-控制,2A 2Y由2G-控制。 • 当 G=L,Y=A; G=H,Y=Z(高阻态) • 用途: • 1、存储地址驱动器、时钟驱动器和总线定向接收器和定向发送器; • 2、电平转换:CMOS  TTL; • 3、IBM PC/XT机中,作存储地址缓冲器/驱动器。 • 常用的缓冲器还有:74LS240和74LS241等。

  29. 4)数据收发器74LS245 • 三态输出的8总线收发器,逻辑电路和引脚图如图5-24所示,16个双向传送的数据端, 使能端 G=0,传送 • G=1,隔开 • 方向控制端 DIR=0,B A • DIR=1,A  B • 用途: • 用于数据的双向传送、缓冲和驱动。 • 常用的数据收发器还有:74LS243,Intel8286,Intel8287等。

  30. 5.5.3 简单的I/O接口芯片的应用举例 • 1.74LS373、245、244在PC/XT机中的应用 • 利用锁存器74LS373和数据收发器74LS245,将8086的双重总线分开。如图15.3和图5-27。

  31. 1)地址锁存器74LS373和地址缓冲器74LS244 • AD7~AD0——74LS373的D端——接A7~A0 • A11~A8(不变)——74LS244(驱动器) • A19/S6~A16/S3,A15~A12——74LS373——接系统总线A19~A12 • G(74LS373)——ALE(8288) • OE(74LS373)——AENBRD(DMA应答电路) • 1G(74LS244)

  32. 2)双向数据收发器74LS245 • AD7~AD0——74LS245的A • 使局部数据总线和系统总线相连: G(74LS245)——DEN(8288)反相 • DIR(74LS245)——DT/R(8288) • CPU工作时,AENBRD=0,ALE=H, DEN=H, 74LS373、244、245正常工作。 • DMA方式时,74LS373、244、245高阻,与系统总线隔开。

  33. 2.用于一般的总线驱动电路 • 在8086系统中,存储器和I/O接口较多,在CPU和系统总线之间要加总线驱动电路。如图5-28所示。 • 要求:CPU能进行常规的存储器读写、I/O读写、中断的响应、总线请求响应以及在RESET有效时的相应操作。

  34. (1)确定器件 • 依提意,双重总线A19/S6~A16/S3,AD15~AD0和BHE/S7共21位用3片74LS373来锁存和驱动,连到系统总线的A19~A0和BHE。而AD15~AD0用二片74LS245驱动,连到系统总线的D15~D0, • 而单向控制信号RD、WR、M/IO、ALE、INTA等用74LS244来驱动。

  35. (2)控制信号的连接 • 两种工作状态: • 1)正常工作状态:CPU进行存储器读写和I/O读写,373、245、244要正常工作,74LS373的OE-、74LS245的G-、74LS244的1G-、2G-都应为L。 • 2)DMA方式和RESET时, 373、245、244输出为高阻状态:74LS373的OE-、74LS245的G-、74LS244的1G-、2G-都应为H。

  36. 控制信号的连接 • 因此把74LS373的OE-、74LS245的G-、74LS244的1G-、2G-连一起,由RESET和HLDA经一或门的输出来提供。 • 工作时: • 1)读和中断响应,要求B A即74LS245的DIR=0,可由RD-和INTA-经一与门连到DIR。 • 2)T1时锁存地址,要求74LS373的G=H,可连到ALE。

More Related