第6章 中断系统.ppt_第1页
第6章 中断系统.ppt_第2页
第6章 中断系统.ppt_第3页
第6章 中断系统.ppt_第4页
第6章 中断系统.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

1、中断系统,第六章 中断系统,中断的作用,第6.1节 计算机中断系统 中断的作用 并行操作,提高工作效率 CPU与外设同时工作,多个外设同时工作。 实现实时处理 在控制系统中,有些参量要求计算机能快速处理,用中断方式容易实现。 故障处理 出现故障,提出中断申请,要求计算机及时响应。,中断源,中断源 任何能引发中断的事件都称为中断源,可分为: 硬件中断源:I/O设备,系统时钟,故障源等 软件中断源:程序中断指令(INT 3),指令运行出错(INTO)等 中断系统的功能 (一)实现中断及返回 检测中断 当中断允许时,CPU在每条指令的最后一个时钟周期检测中断请求。 响应中断时保护断点和现场 断点自动

2、保护,现场要在中断服务程序中保护,中断系统的功能,CPU响应中断时,会停止当前执行程序,转去执行中断处理程序,原程序被打断的地方称为“断点”。 断点地址是指中断处理程序结束后,返回原程序恢复执行的第一条指令的地址,又称“返回地址”。 现场是指进入中断服务程序之前CPU各个寄存器的状态。 中断服务完成时将中断申请信号撤销 中断服务完成后恢复现场和断点,返回原程序,中断系统的功能,(二)对中断进行控制 对中断申请进行控制 例1 一个输入设备的中断接口电路,中断系统的功能,电路说明 外设准备好数据后,发EOC信号(负脉冲),把数据放到接口线上,同时置“1”中断申请触发器。 执行如下指令,置中断允许触

3、发器为“1”,开放中断 MOV AL, 01H MOV DX, 160H OUT DX, AL 若禁止中断,则执行如下指令 MOV AL, 00H MOV DX, 160H OUT DX, AL,中断系统的功能,当INTR为高电平,且CPU中断开放(IF1),则CPU响应中断。在中断响应周期,INTA有效,读取中断类型码,清除中断申请触发器。 在中断服务程序中读取外设数据 MOV DX, 162H IN AL, DX 对中断响应进行控制 标志寄存器Flag中IF标志可控制CPU是否查询INTR引脚 STI IF=1 允许中断 CLI IF=0 禁止中断,中断系统的功能,(三)实现优先权排队 当

4、系统中多个中断源同时发出中断请求时,CPU按照重要性和急迫性(中断优先级)择优响应: 不同优先级同时请求时,CPU先响应高优先级中断; CPU在处理低优先级中断时,若出现高优先级中断请求,则转去处理高优先级中断(中断嵌套); CPU在处理高优先级中断时,若出现低优先级中断请求,暂不响应; CPU在处理中断时,若出现同级别中断请求,则等当前中断处理完后,才处理新的请求。,中断系统的功能,(四)寻找中断源 有中断申请时需要查找中断源,以决定中断服务程序入口地址。 预先约定 当有中断申请时,则转到固定地址执行中断服务程序。电路简单,但一般只能为几个中断源服务。 查询 在中断服务程序中查询中断源。 应

5、答方式(矢量中断) 响应中断时CPU发中断响应信号,中断源收到此信号发出中断类型码,CPU根据中断类型码决定中断服务程序入口地址。,中断系统的功能,中断源查找和中断优先级排队的实现 软件查询中断源 CPU响应中断后用软件查询申请中断的外设 查询方法优点 查询次序即是优先权次序; 省硬件,不需要硬件排队电路。 缺点:转至服务程序入口时间长,中断系统的功能,查询程序 IN AL, 20H LEA BX, BRNTAB CIRCLE: SHR AL, 1 JC GETAB ADD BX, 2 OR AL, AL JNZ CIRCLE JMP ERROR GETAB: JMP CS : BX BRNT

6、AB DW SUB1, SUB2, SUB3, SUB4 DW SUB5, SUB6, SUB7, SUB8,中断系统的功能,链式优先权排队电路(应答方式) 电路说明 每个接口有一个中断允许输入IEI和中断允许输出IEO,只有IEI为高电平时才允许该接口芯片发中断请求; IEO=IEIINT INT表示该设备有中断请求; 每个接口芯片的中断请求输出为OC门,具有负逻辑的“线或”关系; 响应中断时由INTA从接口读取中断矢量。,中断系统的功能,中断优先权编码电路,电路说明 中断请求寄存器由IR0 IR7可分别引入8个外设的中断请求。 优先权编码器把当前最高优先级的中断输入进行编码后输出。 中断服

7、务寄存器记录正在服务的中断申请。 中断申请的最高级与正在服务的最高级比较,只有申请级高于服务级才能提出中断申请(INT)。,8086 中断结构,第6.2节 8086/8088的中断结构 8086中断 8086 CPU中断分为两类 硬件中断:由外部请求引起的中断 软件中断:由指令执行引起的中断,8086 中断结构,(一)硬件中断 可屏蔽中断 可屏蔽中断申请输入为INTR引脚,高电平有效,该中断受IF控制,CPU在每条指令的最后一个T状态检测该引脚。CPU响应中断后,使INTA有效,从外设读取中断类型码。 8086/8088有256个中断类型,用1个字节进行编码称为中断类型码,每个中断类型码对应4

8、个字节的中断服务程序入口地址。,8086 中断结构,非屏蔽中断 非屏蔽中断申请输入为NMI引脚,上升沿有效,该中断不受CPU控制,中断类型码为2(INT 2)。 非屏蔽中断一般用于非常事件。PC/XT机中用于系统板上RAM奇偶错,I/O通道奇偶错和8087异常中断。,8086 中断结构,(二)软件中断 DIV和IDIV指令(INT 0) 若除数为0或商超过寄存器所能表达的范围,则产 生类型为0的软件中断。 INT 指令 (INT n) 执行INT n指令引起的中断。 INTO 指令(INT 4) 若OF=1,则指令INTO引起类型码为4的软件中断。 单步中断 (INT 1) 若TF=1,则CP

9、U每执行完一条指令后便产生类型码为1的软件中断。,中断优先级顺序,PC机的中断优先顺序 软件中断(单步中断除外) 不可屏蔽中断NMI 可屏蔽中断INTR 单步中断,中断向量表,PC机的中断向量 8086 CPU在内存00000H003FFH的1KB地址空间内建立一个中断向量表,存放256个中断服务程序的入口地址,每个地址占4个字节。前两个字节为中断服务程序偏移地址IP,后两个字节为服务程序段地址CS。,类型255指针,除数为0,单步,非屏蔽,断点,溢出,003FCH,00000H,00004H,00008H,0000CH,00010H,CS,IP,段地址,偏移量,一个中断服务程序的入口地址称为

10、 中断向量,中断向量表就是中断服务程 序入口地址表。,中断向量表,由于每个中断类型码对应4个字节的程序入口地址,因此中断类型码乘以4便可得到中断向量表中存放中断服务程序入口地址的存储单元的偏移量。 256个中断向量中 0 4: 专用中断类型 5 1FH: 保留中断类型 (可修改中断服务程序) 20H0FFH:用户可用中断类型 其中 80FH是8个硬件中断 例:INT 21H指令调用第21号中断服务 程序,其入口地址存放在中断向量表中 84H87H的连续4个字节。 (21H484H),INTR引脚信号说明,INTR引脚信号说明 计算机中,多个外设中断源通过8259A中断优先级管理器连接到INTR

11、引脚,外设中断源的优先级由8259A进行管理 IR0 IR7优先级由高到低,通常对应的中断类型码为80FH。(IR0IR7的编号恰好对应中断类型码的低3位) 例:IR0对应中断类型码08H,INTR引脚信号说明,IBM PC/XT机中一般使用两片8259A级连,8259级联后可管理15个外设,只能两级级联 优先级:0 1(815)37 高 低,中断响应过程,中断响应过程 中断检测 CPU在每条指令执行的最后一个时钟周期检测中断请求,如果出现以下之一,则进入中断响应周期。 有软件中断 有NMI中断信号 有INTR中断信号,而且CPU允许中断响应,即IF=1 获取中断类型码 进入中断响应周期以后,

12、 若是INTR,则产生INTA信号,中断源通过数据总线的低8位将中断类型码传送给CPU; 若是NMI,则类型码是2; 若程序出错产生中断,则使用默认的类型码; 若是中断指令,则指令中有类型码。,中断响应过程,保护断点 系统自动将标志寄存器压入堆栈,清除TF和IF,并将断点处的CS和IP压入堆栈,先压CS后压IP。 得到中断向量 系统根据中断类型码形成中断服务程序的入口地址,转入中断服务程序执行,每个中断都有自己的处理程序。 中断服务处理 进入中断服务程序后,通常由以下步骤组成 保护现场,开中断 中断处理 关中断,恢复现场,又开中断 用中断返回指令(IRET)返回 中断返回:从堆栈中恢复断点处C

13、S:IP和FLAG,8259功能简介,第6.3节 中断控制器 INTEL8259A INTEL8259A结构与功能 (一)功能简介 8259A是与8086系列CPU兼容的可编程中断控制器。 具有8级优先权控制,通过级联可扩展至64级 每一级中断都可以屏蔽和允许。 中断响应时提供中断类型码。 中断申请可以有电平触发,也可有边沿触发。 有多种工作方式。,8259内部结构,(二)8259内部结构,8259内部结构说明,内部结构说明 8259A有8个外部请求输入端IR0IR7,由中断请求寄存器IRR保存申请状态; 中断服务寄存器ISR保存CPU正在处理的中断请求; 中断屏蔽寄存器IMR对中断申请进行控

14、制; 中断优先级分析器决定中断申请的优先级; 控制逻辑中包含两个寄存器组 初始化命令寄存器组:ICW1ICW4 操作命令寄存器组: OCW1OCW3 级联逻辑控制8259A的主从工作方式。,8259引脚图,引脚说明 D7D0 双向,三态数据线,可直接与系统总线相连。 IR7IR0 8个外部中断请求输入引脚,可为高电平有效或上升沿有效。 RD 读信号,输入,低电平有效,若有效则把8259A内部寄存器数据读入到CPU。 WR 写信号,输入,低电平有效,若有效则把数据写入到8259A的内部寄存器。,(三)8259A引脚图,8259引脚图说明,CS 片选信号,低电平有效,给8259A分配地址。 A0

15、用于选择8259A内部不同寄存器。 INT 中断申请线,输出,高电平有效, 8259A的中断申请输出引脚(可连接8086的INTR)。 INTA 输入,低电平有效,有效时8259A输出中断类型码 CAS2CAS0 级联信号线,当8259A为主片时为输出引脚,从片时为输入引脚。收到第一个INTA时,主片通过这三根线通知有中断申请的从片在第二个INTA时送出中断类型码。 SP/EN 在非缓冲工作方式时,输入,决定8259A为主片还是从片;在缓冲工作方式时,输出,由它打开总线缓冲器。,8259与计算机的连接,8259A与计算机的连接 (一)8259A单片工作方式的接口电路,8259与计算机的连接,电

16、路说明 8259A 的数据线与控制线对应连接到系统总线; 由74LS30(8输入与非门)和74LS138(三八译码器)对地址线进行译码决定端口地址,地址为020H03FH; 8086使用低8位数据线与8259A传递信息。8086的A1接到8259的A0线上,使用偶地址; CAS2 CAS1 CAS0未接,SP/EN接正电源; 地址范围,(二)两片8259A级联工作管理15级中断,8259与计算机的连接,说明 从片8259A的中断申请端INT接主片的IR2 主片的SP/EN接+5V,从片的SP/EN接地,主从片的CAS2、CAS1、CAS0对应连接。 主片的端口地址INTA1CS为020H03F

17、H, 从片的端口地址INTA2CS为0A0 0BFH. 8086系统主从芯片都用偶地址传递信息。,8259初始化命令字,8259A编程 (一)初始化命令字 ICW1 (Initial Command Word) A0=0,D4=1 表示对ICW1编程 D0(IC4) D0=1需要ICW4;D0=0 不需要ICW4 D1(SNGL) D1=1为单片8259工作方式; D1=0 为级联工作方式,此时要用ICW3指明级联端,8259初始化命令字,D2(ADI) 指明8080/8085系统中地址间距,8086系统不用 D3(LTIM) D3=1 中断请求是电平触发方式; D3=0 上升沿触发方式。 D

18、5D7(A5A7) 8080/8085系统中断服务程序页面地址,8086系统不用 注:初始化命令字一般在初始化8259时才写入,而且写入有严格的顺序,先写ICW1,最后写ICW4,8259初始化命令字,ICW2 A0=1,跟在ICW1后表示对ICW2编程 A15A8 为8080/8085系统中页面地址高8位; T7T3 为8086系统中的中断类型码的高5位,低3位根据申请端自动填充。 例 若ICW2 = 0000 1000B ,则8259A的IR3引脚上的中断请求的中断类型码为 0000 1011 即0 x0B,8259初始化命令字,ICW3 A0=1,且ICW1的D1=0(SNGL),跟在I

19、CW2表示对ICW3编程 主片 Si=1表示该中断申请来自从片 从片 ID2ID0对应从片的标识位,响应中断时第一个INTA,主片从CAS2 CAS0送出识别号,若从片的CAS2CAS0与识别号相同,在第二个INTA送出中断类型码。ID2 ID0与从片连接到主片的输入端相对应。,8259初始化命令字,ICW4 A0=1,且ICW1的D0=1,跟在其他初始化字后表示对ICW4编程 D0(pm) D0=1为16位处理器体系;D0=0 为80/85处理器体系 D1(AEOI) D1=1自动结束中断方式,在第二个INTA清ISR中的对应位; D1=0 非自动结束中断方式,中断结束时发EOI命令清ISR

20、中的对应位,8259初始化命令字,D2(M/S) 在缓冲方式下(BUF=1),选择主片和从片,M/S=1为主片, M/S=0为从片。 在非缓冲方式下,由SP/EN引脚设定主片和从片。 D3(BUF) D3=1为缓冲工作方式, SP/EN为缓冲选通信号。单片系统都置1; D3=0为非缓冲工作方式。 D4(SFNM) D4=1 为特殊全嵌套方式,此时允许同级中断再次进入,一般用于多片级联方式; D4=0 为普通全嵌套方式,禁止同级中断再次进入。,8259操作命令字,(二)操作命令字 操作命令字可在任何时候写入8259A ,且无顺序。 OCW1 (Operation Command Word) A0

21、=1 表示设置OCW1 Mi=1 表示屏蔽IRi输入中断请求 例屏蔽键盘 IN AL, 22H OR AL, 02H / AND AL, 0FDH OUT 22H, AL,8259操作命令字,OCW2 A0=0,且D4D3 = 00,表示对OCW2编程 R 优先权循环状态 R=1优先权自动循环;R=0优先权不循环 SL 设定标志。SL=1由L2、L1、L0指明中断号或最低优先权 EOI 中断结束命令标志,非自动结束方式时清ISn 一般EOI指令为 MOV AL, 20H OUT 20H, AL,8259操作命令字,8259操作命令字,OCW3 A0=0,且D4D3 = 01,表示对OCW3编程

22、 ESMM SMM 1 1 设置特殊屏蔽,无优先级,未屏蔽中断申请均可进入 1 0 取消特殊屏蔽 P=1 ,设置8259A为查询工作方式,此时8259A不发INT信号,CPU通过查询指令决定服务程序。 查询得到格式如下表所示,8259操作命令字,I=1 表示有中断请求 W2 W1 W0为当前最高优先级的中断请求中断号 P=0,由RR和RIS设置下一个读取的寄存器 RR RIS 1 0 在下一个A0 = 0端口读IRR 1 1 在下一个A0 = 0端口读ISR 若下一个A0 = 1,则读取IMR寄存器,例:读取ISR到AL中 mov al, 0BH out 20H, al IN al, 20H

23、;读取IMR到AL中 mov al, 0AH out 20H, al IN al, 22H,8259命令字举例,8259A初始化编程举例 (一)8259A初始化编程顺序 先初始化ICW1和ICW2,然后判断是否级联工作方式,如果是级连工作方式,写入ICW3;由ICW1的D0位决定是否写入ICW4。,8259命令字举例,(二)IBM PC/XT机单片8259A初始化 要求: 端口地址为20H和22H 接收8个中断请求信号为边沿触发 选择全嵌套方式,IR0为最高优先级,IR7为最低优先级 设定IR0中断类型码为08H 注:8259A的地址线A0是连接到系统地址总线的A1上,8259命令字举例,初始化程序段 INTA0_0 EQU 20H INTA0_1 EQU

温馨提示

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

评论

0/150

提交评论