微机接口技术实用教程何利第4章中断技术.pptVIP

  • 5
  • 0
  • 约1.25万字
  • 约 103页
  • 2017-11-09 发布于广东
  • 举报

微机接口技术实用教程何利第4章中断技术.ppt

第4章 中断技术 4.1 中断技术的基本概念 4.1.1 中断定义 所谓中断,是指CPU在正常运行程序时,由于内部或外部事件以及由程序的预先安排所引起的CPU暂停正在运行的程序,而转去执行相应的中断服务程序;服务完毕,再返回到暂停处继续执行原来的程序。 广义上讲:中断是一个过程是CPU在执行当前程序的过程中因硬件或软件的原因插入了另一段程序运行的过程。 4.1 中断技术的基本概念 4.1.3 中断的分类及其优先权 2.中断优先权 中断响应的几个过程 中断响应 关中断 保存断点 保护现场 给出中断服务程序入口地址,并转入 该服务程序 恢复现场 从中断返回 80486的中断响应过程 查询中断的顺序, 决定了各种中断源的优先权 软件中断 除法错中断 指令中断 溢出中断 非屏蔽中断 可屏蔽中断 单步中断 80486的中断响应过程(续) 80486的中断向量表 中断向量:中断服务程序的入口地址(首地址) 逻辑地址含有段地址CS和偏移地址IP(32位) 每个中断向量的低字是偏移地址、高字是段地址,需占用4个字节 8088微处理器从物理地址000H开始,依次安排各个中断向量,向量号也从0开始 256个中断占用1KB区域,就形成中断向量表 80486的中断类型 内部中断 除法错中断 指令中断 溢出中断 单步中断 外部中断 非屏蔽中断 可屏蔽中断 为了便于在中断向量表中查找中断向量(入口地址),通常设置一种指针,由它指出中断向量存放在中断向量表的什么位置,即中断向量的地址。这个指针在PC微机中断系统中是由中断类型号提供的。 中断类型号与中断向量指针的关系为:中断类型号(n)×4=中断向量最低字节的指针。如:软磁盘INT 13H,它的中断向量为0070H:0FC9H(CS:IP),中断类型号n=13H。当处理中断时,CPU根据所获取的中断类型号(13H)乘以4后得到中断向量的第一个字节的指针,即13H×4=004CH。指针指明从内存0000:004CH单元开始,连续4个单元中存放着13H号中断的中断服务程序的中断向量,如图所示。 应该指出的是,中断类型号是固定不变的,一经系统分配指定之后,就不再变化。 而中断类型号所对应的中断向量不是固定不变的,是可以改变的,即一个中断类型号所对应的中断服务程序不是唯一不变的,可以不同。也就是说,中断向量是可以修改的,这为用户使用系统中断资源带来很大方便。当然,对有些系统的专用中断,不允许用户随意修改。 8259A中断控制器 Intel 8259A是可编程中断控制器PIC 可用于管理Intel 8080/8085、8086/8088、80286/80386的可屏蔽中断 8259A的基本功能 一片8259A可以管理8级中断,可扩展至64级 每一级中断都可单独被屏蔽或允许 在中断响应周期,可提供相应的中断向量号 8259A设计有多种工作方式,可通过编程选择 8259A的内部结构和引脚 1. 中断控制 中断请求寄存器IRR 保存8条外界中断请求信号IR0~IR7的请求状态 Di位为1表示IRi引脚有中断请求;为0表示无请求 中断服务寄存器ISR 保存正在被8259A服务着的中断状态 Di位为1表示IRi中断正在服务中;为0表示没有被服务 中断屏蔽寄存器IMR 保存对中断请求信号IR的屏蔽状态 Di位为1表示IRi中断被屏蔽(禁止);为0表示允许 2. 与处理器接口 8259A的中断过程 8259A的工作方式 2. 结束中断处理方式 2. 结束中断处理方式 自动中断结束方式 普通中断结束方式 配合全嵌套优先权方式使用 当CPU用输出指令往8259A发出普通中断结束EOI命令时,8259A就会把所有正在服务的中断中优先权最高的ISR位复位 特殊中断结束方式 配合循环优先权方式使用 CPU在程序中向8259A发送一条特殊中断结束命令,这个命令中指出了要清除哪个ISR位 3. 屏蔽中断源方式 普通屏蔽方式 将IMR的Di位置1,则对应的中断IRi被屏蔽,该中断请求不能从8259A送到CPU 如果IMR的Di位置0,则允许IRi中断产生 特殊屏蔽方式 将IMR的Di位置1,对应的中断IRi被屏蔽的同时,使ISR的Di位置0 4. 中断触发方式 边沿触发方式 8259A将中断请求输入端出现的上升沿作为中断请求信号 电平触发方式 中断请求端出现的高电平是有效的中断请求信号 5. 数据线连接方式 缓冲方式 8259A的数据线需加缓冲器予以驱动 8259A把SP*/EN*引脚作为输出端,输出允许信号,用以锁存或开启缓冲器 非缓冲方式 SP*/EN*引脚为输入端 若8259A级连,由其确定是主片或从片 8259A的编程 初始化编程 8259A开始工作前,必须进行初始化编程 给8259A写入初始

文档评论(0)

1亿VIP精品文档

相关文档