微型计算机通信与接口技术第二版-刘兵-电子教案_第2章节_幻灯片

上传人:E**** 文档编号:89888670 上传时间:2019-06-03 格式:PPT 页数:52 大小:944.50KB
返回 下载 相关 举报
微型计算机通信与接口技术第二版-刘兵-电子教案_第2章节_幻灯片_第1页
第1页 / 共52页
微型计算机通信与接口技术第二版-刘兵-电子教案_第2章节_幻灯片_第2页
第2页 / 共52页
微型计算机通信与接口技术第二版-刘兵-电子教案_第2章节_幻灯片_第3页
第3页 / 共52页
微型计算机通信与接口技术第二版-刘兵-电子教案_第2章节_幻灯片_第4页
第4页 / 共52页
微型计算机通信与接口技术第二版-刘兵-电子教案_第2章节_幻灯片_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《微型计算机通信与接口技术第二版-刘兵-电子教案_第2章节_幻灯片》由会员分享,可在线阅读,更多相关《微型计算机通信与接口技术第二版-刘兵-电子教案_第2章节_幻灯片(52页珍藏版)》请在金锄头文库上搜索。

1、第二章 中断接口技术,2.1 8086的中断系统,2.1.1 中断与中断系统功能 1中断的概念 中断是一个过程,是CPU在正常执行程序的过程中,遇到外部或内部的紧急事件需要处理,暂时中断(中止)当前程序的执行,而转去为紧急事件服务,当为这个紧急事件服务处理完毕之后,再返回到暂停点(中断点)继续执行原来的程序,由于CPU正在执行的原程序被暂停执行,所以称为中断 .,2中断系统的功能,()中断处理与返回 ()中断优先权判断 ()中断嵌套,2.1.2 中断分类,硬件中断和软件中断 1硬件中断 硬件中断是指通过外部硬件产生的中断,如打印机、键盘等,有时也称为外部中断。硬件中断又可分为两类:可屏蔽中断和

2、不可屏蔽中断。,2软件中断(内部中断),(1)除法出错中断 (2)INT0溢出中断 (3)INT n指令 (4)断点中断 (5)单步中断,2.1.3 中断向量和中断向量表,本章首页,2.1.4 中断响应过程与时序,1硬件中断的响应过程,2硬件中断的时序,3软件中断,软件中断是指通过中断指令来使CPU执行中断处理子程序的方法 (1)中断类型码由指令提供,不需执行中断响应总线周期,也不受IF标志的影响。 (2)正在执行软件中断时,若有通过NMI发出的中断请求,则立即响应;若发生可屏蔽中断请求,只要条件允许(如IF1,当前指令执行完)即可响应中断。,3软件中断,(3)软件中断,由于其处理程序的入口是

3、通过中断向量表来定位,所以可以方便地用INT n指令进行调用,因此在使用中和一般的子程序没有两样,并且原则上0255种软件中断类型均可使用。,2.1.5 中断程序设计举例,/*例2-1.c*/ #include /支持标准输入输出,如printf()。 #include /控制台输入输出 #include /支持接口访问、中断向量操作函数 void interrupt (*sys_vect09)(); /申明一个函数为中断函数,该中断函数的中断号为sys_vect09 unsigned int key; /定义全局变量key(无符号整型),记录60H端口的值 unsigned int flag

4、; /定义标志flag,用来判断是否进行过新的中断 void interrupt my_vect09() /自定义的中断函数 key=inportb(0x60); /从60H端口读取一个字节的数据送变量key flag=1; /标志flag置1,说明变量key从端口读取一个新值 (*sys_vect09)(); /执行原来系统中的中断函数 ,void main() flag=0; /初始化标志flag,表示还没有发生新的中断 sys_vect09 = getvect(0x09);/读取系统9号调用的中断向量地址存入sys_vect09 setvect(0x09,my_vect09); /设置系

5、统新的9号调用入口地址是my_vect09 while(1) if(flag) printf(“%02x“,key); /输出中断中从60H端口读取的值到屏幕 flag=0; /标志清0,准备接收新的key值 if(key = 0x0010) break; /当输入的值是0AH时,退出while循环 if(key /恢复系统9H中断的中断入口地址 ,2相关函数说明,(1)inportb: inportb函数的原型是: int inportb(int port)。 该函数是从指定的输入端口port读入一个字节,并返回这个字节。,2相关函数说明,(2)getvect与setvect getvect

6、函数是用来获取中断处理程序的入口地址的;setvect函数则用来设置某个中断处理程序的入口地址。 (3)interrupt 定义一个中断类型函数void interrupt (*sys_vect09)();在用setvect改写中断09h时就是setvect(0x09,my_vect09); 在改写之前应该先保存原来中断09h的中断向量地址,这就用到了getvect,sys_vect09 = getvect(0x09);其中sys_vect09是个声明为“void interrupt (*sys_vect09)();”型的指针,2.2 可编程中断控制器Intel 8259A,Intel 825

7、9A的主要性能包括: 具有8级中断优先控制,通过级连可以扩展至64级优先权控制; 每一级中断都可以通过初始设置为允许或屏蔽状态; 8259A的工作方式可以通过编程进行设置; 8259A采用NMOS制造工艺,只需要单一的+5V电源。,2.2.1 8259A的内部结构和工作原理,8259A的内部结构主要有数据总线缓冲器、读/写控制逻辑、级连缓冲器、中断控制逻辑电路、中断请求寄存器、优先级比较器,1数据总线缓冲器,数据总线缓冲器是8259A与系统数据总线的接口,是8位双向三态缓冲器。数据线D7D0与CPU系统总线相连,构成CPU与8259A之间的信息传送的通道。,2读/写控制逻辑,用于接收CPU的读

8、写命令 一方面把来自CPU的初始化命令字ICW和操作命令字OCW存入8259A内部相应的端口寄存器,用以规定8259A的工作方式和控制模式; 另一方面也可使CPU通过读写电路读8259A内部有关端口寄存器的状态信息。,3级连缓冲器,8259A既可以工作于单片方式,也可以工作于多片级联方式。当用于实现8259A芯片之间的级连时,可把中断源由8级扩展至64级;在多片级连时,只有一个为主片,其余为从片。,4中断控制逻辑电路 5中断请求寄存器IRR 6中断屏蔽寄存器IMR 7中断服务寄存器ISR 8优先级比较器PR,2.2.2 8259A的外部引脚,2.2.3 8259A的工作过程,当完成初始化后,8

9、259A对外部中断请求的响应和处理过程如下: (1)当有一条或若干条中断请求输入(IR7IR0)有效时,则使中断请求寄存器的IRR的相应位设置为1。 (2)若CPU处于开中断状态,则在当前指令执行完之后,响应中断,并且从INTA发应答信号(两个连续的INTA负脉冲)。,2.2.3 8259A的工作过程,(3).第一个INTA负脉冲到达时,IRR的锁存功能失效,对于IR7IR0上发来的中断请求信号不予理睬。 (4)使ISR寄存器的相应位置1,以便为中断优先级比较器的工作做好准备。 (5)使寄存器的相应位复位,即清除中断请求。 (6)第二个INTA负脉冲到达时,将中断类型寄存器中的内容ICW2,送

10、到数据总线的D7-D0上,CPU以此作为相应中断的类型码。 (7)若ICW4中的中断结束位为1,那么,第二个INTA负脉冲结束时,8259A将ISR寄存器的相应位清零;否则,直至中断服务程序执行完毕,才能通过输出操作命令字EOI,使该位复位。,2.2.4 8259A的工作方式,1中断优先权管理方式 (1)全嵌套方式 (2)特殊全嵌套方式 (3)优先级自动循环方式 (4)优先级特殊循环方式,2中断源的屏蔽方式,CPU对于8259A提出的中断请求,都可以加以屏蔽控制,屏蔽控制有普通屏蔽方式和特殊屏蔽方式两种。,3结束中断处理的方式,(1)中断自动结束方式 (2)一般的中断结束方式 (3)特殊的中断

11、结束方式,优点:CPU效率高,实时性好,速度快。 缺点:程序编制较为复杂。,2.2.3 8259A的工作过程,(1)当有一条或若干条中断请求输入(IR7IR0)有效时,则使中断请求寄存器的IRR的相应位设置为1。 (2)若CPU处于开中断状态,则在当前指令执行完之后,响应中断,并且从INTA发应答信号(两个连续的INTA负脉冲)。 (3)第一个INTA负脉冲到达时,IRR的锁存功能失效,对于IR7IR0上发来的中断请求信号不予理睬。,(4)使ISR寄存器的相应位置1,以便为中断优先级比较器的工作做好准备。 (5)使寄存器的相应位复位,即清除中断请求。 (6)第二个INTA负脉冲到达时,将中断类

12、型寄存器中的内容ICW2,送到数据总线的D7-D0上,CPU以此作为相应中断的类型码。 (7)若ICW4中的中断结束位为1,那么,第二个INTA负脉冲结束时,8259A将ISR寄存器的相应位清零;否则,直至中断服务程序执行完毕,才能通过输出操作命令字EOI,使该位复位。,2.2.4 8259A的工作方式,中断优先权管理 中断嵌套 中断屏蔽 中断结束,1中断优先权管理方式,8259A中断优先权的管理方式有: 全嵌套方式 特殊全嵌套方式 优先级自动循环方式 优先级特殊循环方式。,2中断源的屏蔽方式,CPU对于8259A提出的中断请求,都可以加以屏蔽控制,屏蔽控制有: 普通屏蔽方式 特殊屏蔽方式,3

13、结束中断处理的方式,是自动结束方式(AEI)和非自动结束方式。 非自动结束方式又可进一步分为一般的中断结束方式和特殊的中断结束方式。,向CPU发出总线请求信号HOLD,接收CPU发出总线响应信号HLDA 接管对总线的控制,进入DMA方式 发出地址信息,对存储器寻址并修改地址指针 发出DMA结束信号,释放总线,使CPU恢复正常工作,4系统总线的连接方式,(1)缓冲方式 (2)非缓冲方式,5引入中断请求的方式,(1)边沿触发方式 (2)电平触发方式 (3)中断查询方式,本章首页,可编程中断控制器8259A(续),8259A的外部特性和内部结构,1)引脚(28脚),2)内部结构,本章首页,可编程中断

14、控制器8259A(续),中断请求寄存器(IRR):8位,寄存有请求的中断级,IRi有请求,IRRi=1 中断服务寄存器(ISR):8位,寄存正在服务的中断级,IRi被响应且未服务完,ISRi=1,ISR可能多位同时为1 中断屏蔽寄存器(IMR):8位,寄存中断级的屏蔽情况,IMRi=1,IRi被屏蔽 优先级分析器(PR):由IRR、IMR、ISR的状态确定INT引脚的输出; 优先级编码器+比较电路,中断嵌套,本章首页,可编程中断控制器8259A(续),级联缓冲器/比较器:级联时传送级联代码;缓冲方式控制传送方向 读写控制逻辑:中断类型号的读取不是读写逻辑控制的,8259A的工作方式,1)中断触

15、发方式,2)连接系统总线的方式,3)中断屏蔽的方式,4)优先级排队的方式,5)中断结束的方式,本章首页,可编程中断控制器8259A(续),8259A的编程命令及中断操作功能,1)ICW1,4个初始化命令字(ICW14)、3个操作命令字(OCW13);写入到2个端口中同一端口写入多个命令字的区分方式:设置特征位、规定写入顺序,ICW1还实现对8259A的复位,如PC机:边沿触发,单片,MOV AL,13H OUT 20H,AL,2)ICW2,如PC机:类型号08H0FH,MOV AL,08H OUT 21H,AL,确定中断类型号的高五位,本章首页,可编程中断控制器8259A(续),3)ICW3(

16、级联系统才写入,主、从片格式不同),如图中所示的级联系统,主片的ICW3=24H ;00100100 从片1的ICW3=02H;00000010从片2的ICW3=05H;00000101,ID2ID1ID0的编码=i,该从片挂在主片的IRi上,主片:相应的申请端是否挂接从片,从片:该从片的识别码,级联方式的硬件连接,级联方式下工作过程,CPU的操作与单片无任何区别,本章首页,可编程中断控制器8259A(续),4)ICW4,特定完全嵌套方式(用于级联系统的主片),开放同级和高级中断,上例中,主片若采用特定完全嵌套方式,则允许D打断B的服务,给主片送EOI的条件:从片ISR=00H,5)OCW1(设置IMR),如开放IR1、IR77; 屏蔽IR3、IR76;其他不变,本章首页,可编程中断控制器8259A(续),6)O

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号