《《微机原理及接口技术》全套PPT电子课件教案-第八章 中断》由会员分享,可在线阅读,更多相关《《微机原理及接口技术》全套PPT电子课件教案-第八章 中断(35页珍藏版)》请在金锄头文库上搜索。
1、第八章 中断z 中断 z 中断优先权 z 8086中断方式z 中断控制器8259A第一节 引言一、中断系统及功能 uCPU和外设接口的硬件:中断控制逻辑 u指令系统:管理中断的指令中断功能: z 1. 分时操作 z 2. 实现实时处理 z 3. 故障处理二、中断源z 引起中断或发出中断请求的来 源称中断源。 z 1. 外部设备请求中断 z 2. 故障强迫中断 z 3. 实时时钟 z 4. 程序自愿中断三、中断处理过程z1. 中断请求中断源提出中断请求的条件:(1) 外设工作已告一段落(2) CPU允许该设备发出中断请求 z2. CPU允许中断开中断指令:STI 允许CPU响应可屏蔽中断关中断指
2、令:CLI 禁止CPU响应可屏蔽中断z3. 中断优先级排队有多个中断源,根据轻重缓急,事 先安排一个中断优先级顺序,称中断 排队。 z4. CPU检测中断请求信号CPU在现行指令的最后一个总线周 期的最后一个T状态时,检测中断请求 INTR,若有,则下一周期进入中断响 应周期。z5. CPU响应中断中断响应周期。(1) 发中断响应信息INTA,关闭中断。(2) 保留断点,将IP,CS入栈。(3) 给出中断入口,转入相应的中断服务 程序。 z6. 中断服务首先保护现场,中断服务,恢复现 场。 33z7. 中断返回开中断,IRET中断返回,CPU恢复 主程序执行。 z8. 关于多重中断多中断源,C
3、PU执行一中断服务程序 ,又有优先级别更高的中断请求产生 。中断服务程序中STI(开中)指令安排 在不同地方,效果不同。第二节 中断优先权z一、软件排队 z 一进入中断服务程序 ,就是一段软件查询程 序。1. 屏蔽法 IN AL,20H TEST AL,80H JNE PWF TEST AL,40H JNE DISS 2. 移位法 IN AL,20H RCL AL,1 JC PWF RCL AL,1 JC DISS (3)中断响应慢 ,尤其是中断 源多时,查询 时间长。(2)不需要判断 与确定优先权的 硬件排队电路。(1) 询问次 序即中断优 先权的次序 。二、硬件优先权排队电路z1.中断优先
4、权编码电路排队过程(2) 有中断正在处理, 此时,优先权失效信号 =0,封锁门2,编码 B2B1B0输出至比较器。(1)没有中断产生,CPU 执行主程序,优先权失 效信号=1,开放门2 。当任一中断请求产生, 编码A2A1A0,中断请求 通过门2,使INTR为高 ,向CPU发出中断请求 。CPU响应,发 出INTA,取 得中断矢量 。1) AB,即新产生 的中断请求的级别比 正在处理的低,比较 器输出AB=0,封 锁门1,不能发INTR 。2) AB,即新产生 的中断请求的级别比 正在处理的高,比较 器输出AB=1,打 开门1,发出INTR。2.链式优先权排队电路(1)中断输入1 有中断请求2
5、)门A2输出为 低B2低C2 低D2低 屏蔽了所有 低级中断。排队过程1) F/FA输出高 ,中断响应为 高,门A1输出 为高,控制转 向中断1的服 务程序。 (2)中断输入1 没有中断请求 , F/FA输出 为0,门A2输 出1,中断响 应传至中断2 ;若F/FB输出为 0(没有中断2) , 门B2输出1 ,中断响应传 至中断3。z (1) 若上级的输出信号为0,则屏蔽 了本级和所有低级中断。 z (2) 若上级的输出信号为1,本级有 中断请求,转去执行本级的中断服务 程序,本级至下级的输出为0,屏蔽所 有低级中断。 z (3) 若上级的输出信号为1,本级无 中断请求,则本级至下级的输出为1
6、, 允许下一级中断。 34总结 :第三节 8088中断方式z CPU支持256个中断,0255, 中断类型码(中断号) z硬中断:外设引起的外中断 08H0FH z 70H77H z内中断:内部硬件,CPU引起的 0H07H z软中断:中断指令引起的 10HFFH 一、内中断u 内部硬件出错引发NMI中断 u CPU遇到某些特殊事件,引发CPU中断 z 1. 微处理器中断 z (1) 0号中断除数零DIV(无符号) IDIV(有符号) z (2) 1号中断单步执行TF=1(单步标志)z (3) 3号中断断点处理 z (4) 4号中断运算溢出OF=1 z2.不可屏蔽中断NMI z NMI输入端上
7、跳边沿触发,引起2号 中断NMI。 z二、外中断源 z INTR可屏蔽中断请求信号线,IF=1 ,CPU才响应,STI/CLI管理。z三、软中断INT n n=10HFFH z四、优先权除数零 INT n 断点 溢出不可屏蔽中断NMI 可屏蔽中断INTR 单步执行高低低五、中断向量表z 256个中断号,256个中断服务程序入口地 址,每个地址CS:IP 4个字节,2564=1024u中断向量表 z 内存0000:0000开 始的1K空间建立的表 z 存放256个中断向量( 中断号)的中断服务程序 入口地址,前2个字节为 IP,后2个字节为CS。 z 中断向量 n z 中断向量表地址=0000:
8、n4六、8086中断响应过程CPU响应中断,取得中断类型码(中断号)n 。 u(1) n 4 ,作为中断向量表指针。 u(2) SP-2,标志寄存器Flags入栈。 u(3) 清除中断标志IF=0,单步标志TF=0。 u(4) SP-2,断点CS入栈。SP-2,断点IP入栈。 u(5) n 4 的后2个字节CSn 4 的前2个字节IP u(6) CS:IP,CPU转向执行该中断服务程序。第四节 中断控制器8259A一、功能 u1. 管理八级向量中断,可级联,最 多管理64级。 u2. 每级都可屏蔽或允许。 u3. 响应周期提供中断向量。 u4. 可编程选择几种工作方式。(1) 保存中 断请求信
9、号(2) 每一位可对IRR相 应的中断源进行屏蔽(3) 存放当前正 在服务的中断级 。(5) 实现 8259A的 级连。二 、结构(4) 对保存在IRR 中的中断请求, 经判断确定最高 优先权,送ISR 。1.单片连接2.多片连接利用CAS0 CAS2寻 址从控制 器(1) 主片: CAS0CAS2 为输出线SP/EN接地 ,从CAS0 CAS2接收主 片发的从片 识别码。SP/EN接 高电平(2) 从片: CAS0CAS2 为输入线z过程: z(1) 主片从CAS0CAS2送 出该次中断响应所属的从 控制器编码。z (2) 各从控制器将接收到的编 码与自身的编码比较,相同说 明本控制器的请求
10、被响应,将 中断类型码送DB; z 若不相同的从控制器不动作 。三、编程z(1) 初始化编程 z 写入初始化命令 字ICW1ICW4, 建立8259A基本工 作条件。 z ICW1,ICW2 必须送,ICW3, ICW4由工作方式 选择。z(2) 操作编程 z 写入操作命令字OCW1 OCW3,用于对中断处理过程实 现动态控制,如嵌套方式,优先 权循环方式,查询等。1.初始化命令字z(1) ICW1中断请求方式: 1:电平触发 0:边沿触发对8086/8088 系统不起作用1:单片8259 0:多片级连1:需要ICW4 0:不需要z(2) ICW2z 设置中断向量的高五位,低三位 由IRi自动
11、填入。 z 例:T7T3=00001 z 则IR0IR7的中断号依次为08H 0FH。 37z(3) ICW3z主片 1:IRi上有从片 0:IRi上没有从片z从片: ID2ID0是从片识别码,表示从片 的INT接至主片的哪端Iri z 例:接至IR2,则识别码为010。z(4) ICW41:自动结束中断 0:正常方式1:8086/8088 0:8080/80851:缓冲方式主片 0:缓冲方式从片1:缓冲方式 0:非缓冲方式1:特殊全嵌套方式 0:一般嵌套方式2.操作命令字z(1) OCW1 屏蔽字直接写入IMRz 0:允许中断 z 1:屏蔽中断z(2) OCW2 设置优先权是否循环,循 环方
12、式及中断结束方式EOI:中断结束命令位1:正常EOI方式时 ,该位使ISR复位。R:中断排队是否循环1:循环,如优先级 IR0最高,IR7最低,当 有一个IR4服务完,则 IR5变为最高级,IR6次 之,依此类推。L2L1L0:最低优 先级的编码。SL 1:L2L1L0 选 择有效D4D3=00 写入OCW2 的标志z(3) OCW3 读取ISR或IRR寄存器内容,发查 询命令,设置特殊屏蔽方式1) 读ISR或IRR RR:1 允许读ISR或IRR0 禁止读ISR或IRR RIS:1 读ISR0 读IRR2) 查询 P=18259A查询方式,将 中断请求写入ISR相应 位,并将其编码送数据 总
13、线,CPU对8259A读 。SMM: 1:特殊屏蔽 0:复位成一般屏蔽ESMM 1:允许SMM起 作用 0:SMM无意义 D4D3=01 写入OCW3 的标志CODE SEGMENT ASSUME CS:CODE START:PUSH DS MOV AX,0000H MOV DS,AX MOV AX,OFFSET IRQ7 MOV SI,003CH MOV SI,AX MOV AX,0000H MOV SI,003EH MOV SI,AX CLI POP DSDS=0000 取中断程序 入口地址0FH*4=3CHIPCS主程序MOVAL,13H OUT 20H,AL MOV AL,08H OU
14、T 21H,AL MOV AL,0DH OUT 21H,AL IN AL,21H ANDAL,7FH OUT21,ALICW1:边沿 触发,单片 ,要ICW4ICW2:T7 T3=00001ICW4:一般 嵌套,缓冲, 主,正常EOIOCW1:中断 屏蔽字,开放 IR7MOV CX,000AH A1: CMP CX,0000H JNZ A2 IN AL,21H OR AL,80H OUT 21H,AL STI HLT A2: STI JMP A1CX=10, 中断次数CX0 ,开中 断CX=0, 屏蔽 IR7中 断IRQ7: MOV AX,0137HINT 10HMOV AX,0120HINT 10HDEC CXMOV AL,20HOUT 20H,ALCLIIRET CODE ENDSENDSTART 38IR7中断服 务程序, 显示字符7 和空格。OCW2: EOI=1, 结束中断 。思考题 :z1. 什么叫中断? z2. 什么叫中断矢量? z3. 什么叫中断优先级?如何确定 ? z4. CPU响应中断的条件是什么? 简述中断处理过程。