处理器8259.ppt_第1页
处理器8259.ppt_第2页
处理器8259.ppt_第3页
处理器8259.ppt_第4页
处理器8259.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、5.3 中断控制系统,中断最初是作为处理器与外部设备交换信息的一种控制方式提出的。由此,最初的中断全部是对外部设备而言的,称为外部中断或硬件中断。 随着计算机技术的发展,中断的范围也随之扩大,出现了内部软件中断的概念,它是为解决机器内部运行时出现的异常以及为编程方便而提出的。,外部中断或硬件中断通常称为中断,软件中断或异常中断通常称为异常(Exception),5.3.1中断的基本概念,不论哪种中断都遵循同样的中断处理过程,中断源,中断 请求,当 前 程 序,中断 服务 程序,程序断点,中断返回,中断响应,中断:处理器暂停执行当前程序,转而处理随机发生的事件,处理 完毕后再返回到断点处继续执行

2、原来程序的过程,中断的类型,PC系列微机最多可以支持256种中断,它们被分为四种类型: 1.内部中断和异常: 被零除、单步、溢出、断点 2.软件中断: 指令中断 INT n 3.外部可屏蔽中断:INTR 4.外部非屏蔽中断:NMI 每个中断和异常都指定了一个类型号代表不同的优先级。,1. 内部中断和异常,处理器执行某些操作而引起的中断,包括除法错误异常、单步调试中断、断点中断等 这类中断使用了0H07H中的若干个中断号 INT0-除法错误, 没有INT0形式的指令, CPU自动产生 INT1-单步中断,同样也没有INT1形式的指令,TF1时产生 INT2 -NMI,CPU处理外部紧急事件,硬件

3、中断 INT3-格式:INT, 断点中断 INT4-格式:INTO,溢出中断,OF1时配合INTO执行,2.软件中断,执行有定义的INT n指令而引发的中断,称为软件中断,它的形式是INT n, 包括BIOS中断和DOS中断,以及用户自定义中断等 有定义的 INT n :并非所有的中断号都有对应的中断 服务程序,没有定义的中断的INT n 是无意义的。 定义 INT n 包含三个内容: 1。确定合适的中断号n 2。用过程的形式完成中断服务子程序 3。将此过程的逻辑地址植入相应的中断矢量,3.外部可屏蔽中断,外部可屏蔽中断是处理器响应各种外部硬件中断的最常用的方法,通过CPU的INTR引脚产生外

4、部可屏蔽中断,受处理器内部的中断允许标志位IF的控制,处理器以电平触发方式接受INTR请求,当每条指令结束时,若INTR为高电平且IF=1,则CPU响应相应I/O接口的中断请求。处理器只有一个INTR引脚可以接受外部可屏蔽中断请求,为了管理众多的外部中断源,微机系统中采用可编程中断控制器8259。PC系列机通过两片8259级连可以响应15个外部中断源。,(注意:硬件可屏蔽中断没有INT n的指令形式, 但是它有INT n 的实质性的内容, 并且中断的发生是由INTR硬件引入),4.外部非屏蔽中断,为外部紧急请求提供服务的中断,通过处理器的NMI引脚产生 NMI输入是上升沿触发的,只要NMI输入

5、端上出现由0到1的跳变,一个中断服务请求就被锁存在CPU中,与IF标志的状态无关 NMI有一个专用的类型号02H 使用非屏蔽中断的典型例子是电源故障中断,中断的优先级与中断嵌套,通常一个系统有多个中断源,而CPU同一时刻只能响应一个中断源的请求,那么当多个中断源同时请求中断服务时,应该先响应哪一个,有一个次序安排的问题。按中断源的轻重缓急程度确定的优先级别,称为优先级。,当CPU正在响应某一中断源的请求,执行为其服务的中断服务程序时,如果有优先级更高的中断源发出请求,CPU将中止正在执行的中断服务程序而转入为新的中断源服务,等新的中断服务程序执行完后,再返回到被中止的中断服务程序,这一过程称为

6、中断嵌套。 中断嵌套可以有多级,具体级数原则上不限,只取决于堆栈深度,5.3.2 中断控制器 Intel 8259A,8259A是一种可编程中断控制器,一片Intel 8259可管理8个中断请求,并把当前优先级最高的中断请求送到CPU的INTR端。当CPU响应中断时,为CPU提供中断类型码。,在PC/AT系列微机中,使用两片8259级联,构成15级中断,功能 Intel 8259A是兼容于8080/8085和8086/8088系列的可编程中断控制器,其功能主要有: 1) 单片8259A可管理8级中断; 2) 通过级连,可管理多于8级的中断,在不增加其它电路的前提下,可使 用8片8259A构成6

7、4级主从式中断系统; 3) 每一级中断都可通过编程使之被屏蔽或被允许; 4) 8259A可通过编程被设定为几种不同的工作方式; 5) 8259采用NMOS工艺,只需要一组5V电源。,数据总线 缓冲器,读/写 逻辑,级联缓冲 比较器,控 制 逻 辑,ISR,优先权电路,IRR,IMR,IR0,IR7,D7D0,INTA INT,RD WR A0 CS,CAS0 CAS1 CAS2 SP/EN,内部数据总线,结构,IR1,CS WR RD D7 D6 D5 D4 D3 D2 D1 D0 CAS0 CAS1 GND,Vcc A0 INTA IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR

8、0 INT SP/EN CAS2,D7D0 数据总线(双向) RD 读输入 WR 写输入 A0 选择内部寄存器地址 CS 片选 CAS2CAS2 级连线 SP/EN 从程序/充许缓冲 INT 中断输出 INTA 中断响应输入 IR0IR7 中断请求输入,8259管脚对照表,1 28 2 27 3 26 4 25 5 24 6 23 7 22 8 21 9 20 10 19 11 18 12 17 13 16 14 15,管脚信号,8259A的读写操作,工作方式,1 设置优先级的方式 (1) 全嵌套方式 全嵌套方式是8259最常用的工作方式。初始化后若没有再设置其它优 先级方式(如优先权旋转),

9、8259自动进入全嵌套方式 。其特点是: 中断请求优先级顺序是IRQ 0IRQ7。 当一个中断被响应时,中断服务寄存器ISR得到相应的那以位被置为“1”,且 保持到中断服务程序在返回前发中断结束命令为止。 在ISR位置位期间,禁止再发生同级或较低记得中断,较高级的中断请求仍 能产生中断。 每个中断请求可分别由IMR相应位屏蔽。 (2) 特殊全嵌套 特殊全嵌套方式同全嵌套方式只有一点不同,即:在特殊全嵌套方式下,当 正处理某一级中断时,又有同级的中断请求产生时,8259A也会响应,从而实 现一种对同级中断请求的特殊嵌套。 特殊全嵌套方式一般用于多片8259A级连的系统中。,(3) 优先级自动旋转

10、方式 优先级自动旋转方式一般用于系统中有多个优先级相等的中断源的情况。 在这种方式下,优先级队列是变化的,一个设备受到服务后,其优先级自动降 到最低。初始优先级队列是固定的,为: IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 (由高到低)。 如果这时IRQ1有中断请求,则在完成其中断服务后,优先级队列变为(由 高到低): IRQ0 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 IRQ1 优先级自动旋转方式由操作命令字OCW2设定。 (4) 优先级特殊旋转方式 优先级特殊旋转方式与优先级自动旋转方式只有一点不同,即:在优先级特 殊旋转方式中,初始的

11、最低优先级由编程来决定,例如,设定IRQ3为最低优 先级,那么,IRQ4即为最高优先级。 优先级自动旋转方式也是由操作命令字OCW2设定。,(1)普通屏蔽方式 在该方式中,8259A的每一条中断请求线都可根据需要设置屏蔽,从而使 这个中断请求不能从8259A送到CPU。 可以通过操作命令字OCW1来设置屏蔽。8259A内部有一个中断屏蔽寄存 器IMR,它的每一位对应了一个中断请求输入,通过设置OCW1,使IMR中 任一位或几位为1,当某位为1时,对应的中断请求被屏蔽。 (2) 特殊屏蔽方式 在某些应用场合,希望能动态地改变系统的优先级结构,即在执行中断服务 程序的某一部分时,希望禁止某些较低级

12、的中断请求,而在执行中断服务程序 的另一部分时,又能够开放比自己级别低的中断请求。要达到这种目的,可采 用特殊屏蔽方式。 设置了特殊屏蔽方式后,在中断服务程序中用OCW1将本级中断屏蔽的同时, 使当前中断服务寄存器ISR的对应位自动清0,从而可以接受其它级别较低的中 断。(注意:在正常屏蔽方式中,设置OCW1屏蔽本级中断时,ISR的对应位仍 为1,故不能接受较低级的中断请求。) 特殊屏蔽方式由操作命令字OCW3来设置。,2 屏蔽中断源的方式,(1) 自动中断结束方式(AEIO) 自动中断结束方式由初始化命令字ICW4设置。 (2) 非自动中断结束方式 在这种方式下,当中断服务程序结束返回时,必

13、须向8259A送中断结束命令( EOI),8259A在接到该命令后,将中断服务寄存器中相应位复位。它有两种情 况: 非特殊EOI命令:在全嵌套方式下,EOI命令能自动地把当前ISR中优先级最 高的一位清0。因为在全嵌套方式中,最高的非零ISR位对应了最后一次被响 应和被处理的中断。也就是当前正在处理的中断,所以,它的复位相当于结束 了当前正在处理的中断。 特殊EOI命令:在非全嵌套方式下,因无法确定最后响应的是哪一级中断,故 应向8259A发特殊EOI命令。这个命令指出了要清除当前中断服务寄存器ISR 中的哪一位。 两种EOI命令由操作命令字OCW2设定。,3 结束中断处理的方式,8259A不

14、向CPU发INT请求信号,而由CPU发查询命令来获得对请求设备的中断优先级。其特点是: 外部设备仍然通过8259A发中断请求信号要求CPU进行服务,但8259A不是用INT信号向CPU发中断请求信号。 CPU内部的中断触发器复位,关闭外部对CPU的中断请求。 CPU使用软件查询确认中断源,进而对外部设备进行中断服务。具体步骤是: 1。通过OCW3发出查询命令,且P位1 2。随后对同一地址(A00)的读(IN)指令完成中断识别的操作:若有中断发生,ISR相应位为1,同时输入一个字节的信息入AL,格式如下,4 中断查询方式,1 0 0 0 0 ID2 ID1 ID0,D7 D6 D5 D4 D3

15、D2 D1 D0,8259A的编程,初始化命令字ICW(Initialization Command Word)通常是系统开机时,由 初始化程序填写,且在整个系统工作过程中保持不变。初始化命令字必须按顺 序填写。 下面我们讨论来讨论它的格式及填写规则。,(1) ICW1,1 初始化命令字,1需要ICW4 0不需要ICW4,1单片8259A 0级连,调用地址间距(仅用于MCS80 / 85模式),1电平触发方式 0边沿触发方式,中断向量地址(仅用于MCS80 / 85模式),A0 D7 D6 D5 D4 D3 D2 D1 D0,0,A7 A6 A5 1 LTIM ADI SNGL ICW4,例1

16、:若8259A采用电平触发,单片使用,需要ICW4,则程序段为: MOV AL,1BH ;ICW1的内容00011011 OUT 20H,AL ;写入ICW1 端口(A0=0) ICW1命令除了上述作用之外,实际上它是对8259A进行复位(8259A无RESET引脚),因为执行ICW1命令会使中断请求信号边沿检测电路复位,使它仅在IR信号由低变高时,才能产生中断;ICW1命令清除中断屏蔽寄存器,设置完全嵌套方式的中断优先级排队,使IRQ0最高,IRQ7最低。,1 A15 A14 A13 A12 A11 A10 A9 A8 T7 T6 T5 T4 T3 ,中断向量地址的A15A8位 (MCS80

17、80 / 8085 模式) 中断向量地址的T7T3位(8086 / 8088模式),A0 D7 D6 D5 D4 D3 D2 D1 D0,1,(2) ICW2,注: T7T3 中断向量类型码高位, 由编程决定,用于 PX8686系统。 低三位自动设置为 IR0 IR7 的类型编码。,8259A传送的中断向量,例2:在PC微机中断系统中,硬盘中断类型号的高5位是08H,它的中断请求线连到8259A的IR5上,在向ICW2写入中断类型号时,只写中断类型号的高5位(08H),低3位取0: MOV AL,08H ;ICW2的内容(中断类型号高5位) OUT 21H,AL ;写入ICW2的端口(A0=1

18、) 当CPU响应硬盘中断请求后,8259A把IR5的编码101作为低3位构成一个完整的8位中断类型号ODH,经数据总线提供给CPU。 可见外部硬中断中断源的中断号(8位代码)是由两部分构成的。即高5位(ICW2)加低3位(IRi的编码)。,1 S7 S6 S5 S4 S3 S2 S1 S0,1IR输入带有一个 从控制器 0IR输入不带一个 从控制器,A0 D7 D6 D5 D4 D3 D2 D1 D0,1,1 0 0 0 0 0 ID2 ID1 ID0,从控制器ID,编码000111分别对应07IR输入从片。,A0 D7 D6 D5 D4 D3 D2 D1 D0,1,(3) ICW3 (主控制

19、器),ICW3 (从控制器),级联的结构形式 在级联方式时,一般由一个作为主芯片的8259A和若干片作为从芯片的8259A组成,例3:图58中主片的IR3和IR6两个输入端分别连接了从片A与B的INT。所以主片的ICW301001000B48H。 MOV AL,48H ;ICW3(主) OUT 21H,AL ;ICW3(主)端口 (A0=1) 例4:图58中从片A和B的请求线INT分别连到主片的IR3和IR6,所以 从片A的ICW3=10000011B=83H 从片B的ICW3=10000110B=86H MOV AL,83H;ICW3(从片A) OUT OA1H,AL;ICW3(从片A)端口

20、(AO1)。,186 / 88模式 080 / 85模式,1自动EOI 0正常EOI,0 X 非缓冲方式 1 0 缓冲方式/从控制器 1 1 缓冲方式/主控制器,1特殊全嵌套方式 0非特殊全嵌套方式,A0 D7 D6 D5 D4 D3 D2 D1 D0,1,(4) ICW4,0 0 0 SFNM BUF M / S AEOI PM,例5:PC微机中CPU为80286,8259A与系统总线之间采用缓冲器连接,非自动结束方式,只用1片8259A,正常完全嵌套。 在这种条件下,ICW400001101BODH MOV AL,ODH;ICW4的内容 OUT 21H,AL;ICW4的端口(A0=1) 例

21、6:PT86单板机中,CPU为8086,采用非自动结束方式,使用两片8259A,非缓冲方式,为使从片也能提出中断请求,主片采用特定完全嵌套方式。其ICW4=00010101B=15H。若将它写入ICW4的端口,则用以下程序段: MOV DX,0FFDEH;ICW4的端口(A0=1) MOV AL,15H;ICW4的内容 OUT DX,AL,8259A初始化过程的流程图如图所示。,由CPU向8259A送三个字节的操作命令字OCW(Operation Command Word), 用以规定8259A的工作方式,如: 中断屏蔽 结束中断 优线权旋转 中断状态 等。 操作命令字是在应用程序中设置的,且

22、可设置多次。设置时,顺序上没有严格的要求。,2 操作命令字,(1)OCW1,OCW1是中断屏蔽命令字,命令格式如图。 命令字中的M7M0对应IMR的各位。Mi=1表示该中断被屏蔽,Mi=0表示该中断开放。,例7:要使中断源IR3开放,其余均被屏蔽,其OCW1=11110111B MOV AL,0F7H;OCW1内容 OUT 21H,AL;OCW1端口(AO1),命令格式如图。 R、SL、EOI的不同组合决定了8259A的几种工作方式。 L2L0 这几位确定当SL=1时指定的特殊结束或特殊循环时的中断优先级。,0 R SL EOI 0 0 L2 L1 L0,0 0 1 非特殊EOI命令 0 1

23、1 特殊EOI命令 1 0 1 按非特殊EOI命令旋转 1 0 0 以自动EOI方式旋转(设置) 自动旋转 0 0 0 以自动EOI方式旋转(清除) 1 1 1 按特殊EOI命令旋转 1 1 0 置优先权命令 0 1 0 无操作,0 0 0 0 有 0 0 1 1 效 0 1 0 2 的 0 1 1 3 中 1 0 0 4 断 1 0 1 5 请 1 1 0 6 求 1 1 1 7 级 别,(2)OCW2,A0 D7 D6 D5 D4 D3 D2 D1 D0,0,中断结束,特殊旋转,例9:若对IR3中断源采用指定中断结束方式,则需在中断服务程序中,中断返回指令IRET之前,写如下程序段: MO

24、V AL,01100011B;OCW2 OUT 20H,AL;写入,0CW2端口(A0=0),0 0 ESMM SMM 0 1 P RR RIS,1 = 查询命令 0 = 非查询命令,用于控制8259A的运行方式。命令格式如图。,(3)OCW3,A0 D7 D6 D5 D4 D3 D2 D1 D0,0,读寄存器命令,0 1 0 1 0 0 1 1,无作用,在下一个 读脉冲时 读IRR,在下一个 读脉冲时 读ISR,特殊屏蔽方式,0 0 1 1 0 1 0 1,无作用,复位 特殊 屏蔽,置 特殊 屏蔽,当送出OCW3且P0,随后对同一地址(A00)的读 (IN)指令完成读IRR(RR/RIS=1

25、/0)或读ISR(RR/RIS=1/1),IRR中断请求寄存器 IMR中断屏蔽寄存器 “ISR 服务寄存器:存放正在服务的中断优先级编码,例11:通过OCW3命令读取8259A的状态时,要分两步。首先,要通过OCW3命令指定被读寄存器,如 OCW3为00001010B时,表示下一个RD脉冲要读IRR寄存器的内容; OCW3=00001011B时,表示下一个RD脉冲要读ISR寄存器的内容; 其次,是用输入指令才可读出IRR或ISR的内容。如BIOS中读取ISR寄存器的程序段,8259A的编程命令的使用,8259A有两类编程命令:初始化命令字(ICW)和操作命令字(OCW)。 8259A初始化编程

26、和中断向量的装入一样,在PC微机中是由系统软件来做,并且开机上电就已经做好。不需要也不允许用户自己去做,否则,将对微机的中断系统产生很大的干扰,甚至破坏。所以,8259A初始化,一般只在没有配置完善的操作系统的单板微机上进行。 如果是在PC微机上开发中断程序,则不要使用ICW1ICW4去进行初始化,因为系统已经做好了。只需使用8259A的两个操作命令OCW1和OCW2进行中断屏蔽/开放和发中断结束命令。在实际中,OCW3很少使用。,初始化命令字(ICW) 在中断系统运行之前,系统中的每一个8259A必须按先后次序接收CPU的24个ICW初始化命令字进行初始化。初始化程序放在8259A之前,作为

27、主程序的一部分。初始化命令一定要按规定的顺序写入,其流程图如图,操作命令字(OCW) 当处理器对中断控制器完成初始化编程后,8259A就处于准备就绪状态,等待接收外界的中断请求,进行完全嵌套的中断管理。若用户要改变初始化设定的操作方式,可以通过CPU发操作命令OCW对中断控制器进行动态控制。 8259A的OCW与ICW不同,OCW不需要按顺序发送,一般也不要求安排在程序开头,而是根据需要在程序中任意安排。,3 初始化编程,PC机中使用单片8259A,定义地址为:20H、21H,8259A的工作方式设置如下: (1) 固定优先权级别:IR0最高,IR7最低 ; (2) 8个中断类型码分别是 08H 0FH; (3) 中断请求信号采用边沿触发方式; (4) 中断服务结束

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论