第七章 输入/输出与中断【微机原理】2

简介: 第七章 输入/输出与中断【微机原理】2

7.2.3 直接存储器存取(DMA)传送方式

DMA方式适合于在外设和存储器之间进行大批量的高速数据交换,数据的传送不依赖CPU执行I/O指令,而是直接由专用的接口芯片DMA控制器(DMAC)来控制。

传送过程中,CPU暂停指令的执行并让出总线控制权,由DMA控制器接管总线的控制权。传送过程全部由硬件实现,所以传送速率非常高。

7.3 中断技术

7.3.1 中断的基本概念

1. 中断的定义

计算机在执行正常程序过程中,当出现某种异常事件或某种外部请求时,处理器就暂停执行当前的程序,而转去执行对异常事件或某种外部请求的处理操作。当处理完毕后,CPU再返回到被暂停执行的程序,继续执行,这个过程称为程序中断。

中断系统为实现中断功能而设置的硬件电路和与之相应的软件,称为中断系统。


2. 中断源

引起中断的原因或发出中断请求的来源称为中断源。中断源可分为硬件中断源和软件中断源两类。

3. 中断处理过程

对于单个中断源的中断处理过程应包括中断请求、中断响应、保护断点、中断处理和中断返回等五个过程。

① 中断请求:是中断源向CPU发出的请求中断的要求。

软件中断源是在CPU内部由中断指令或程序出错直接发中断;

硬件中断源必须通过专门的电路将中断请求信号送给CPU,CPU也有专门的引脚接收中断请求信号。

② 中断响应:是指当计算机系统接收到中断请求后应作出的反应。对于可屏蔽中断的响应要具备两个条件:一是中断允许触发器的状态为1(即开中断),二是CPU在执行完现行指令之后。

③ 保护断点:所谓断点是指处理完中断后返回主程序时执行的第一条指令的地址。保护断点是为了在中断处理结束后能正确返回。

④ 中断处理:是指执行中断服务子程序,完成中断服务功能。主要包括保护现场、中断服务和恢复现场等过程。

⑤ 中断返回:是指执行完中断服务程序后返回到被中断的主程序的断点处,继续向下执行,即恢复断点。

7.3.2中断优先级和中断的嵌套

1.中断优先级
中断请求是随机发生的,当系统具有多个中断源时,有时会同时出现多个中断请求,CPU只能按一定的次序予以响应和处理,这个响应的次序称为中断优先级。

对于不同级别的中断请求,一般的处理原则是:不同按高低 低级让高级 高级封低级 同级等处理
不同按高低 不同优先级的多个中断源同时发出中断请求,按优先级由高到低依次处理。

低级让高级 低优先级中断正在处理,出现高优先级请求,应转去处理高优先级请求,服务结束后再返回原优先级较低的中断服务程序继续执行。(即中断嵌套)
高级封低级 高优先级中断正在处理,出现低优先级请求,可暂不响应。

同级等处理 中断处理时,出现同级别请求,应在当前中断处理结束以后再处理新的请求。

2.中断优先级的确定

微机系统中通常用三种方法来确定中断源的优先级别,即:

  • 软件查询法
  • 硬件排队电路法
  • 专用中断控制芯片法

1)软件查询法
软件查询法需要简单的硬件电路支持。以8个中断源为例,其硬件电路如图7.13所示,将8个外设的中断请求组合起来作为一个端口(中断寄存器),并将各个外设的中断请求信号相或,产生一个总的INT信号。



采用软件查询方式,各中断源的优先级是由查询顺序决定的。

优点:节省硬件

缺点:CPU每次响应中断时都要对各中断源进行逐一查询,所以其响应速度较慢。对于优先级较低的中断源来说,该缺点更为明显。


2)硬件排队电路法

各个外设的优先级与其接口在排队电路中的位置有关。响应信号沿链式电路进行传递时,最靠近CPU并发出中断请求的接口将首先拦截住响应信号。


3)专用中断控制芯片法

软件查询和硬件排队法虽然可以解决中断优先级控制问题,但实现起来在硬件和软件上都要做大量的工作,十分麻烦。较为方便的办法就是利用可编程中断控制器,例如广泛应用于80x86微机系统中的专用可编程中断控制芯片Intel 8259A,可以实现单片管理8级中断,通过级联最多可以用9片8259A管理64级中断。

7.4 8086/8088中断系统

7.4.1 8086/8088的中断源类型

8086/8088 CPU可以处理256种不同类型的中断,每一种中断都给定一个编号(0255),称为中断类型号,CPU根据中断类型号来识别不同的中断源。

8086/8088的中断源如图7.17所示。


8086/8088中断源的优先级顺序由高到低依次为:

软件中断(除单步中断外)

非屏蔽中断

可屏蔽中断

单步中断

7.4.2 中断向量表

中断向量 是中断服务子程序的入口地址。

中断向量表是存放中断向量的一个特定的内存区域。
8086/8088共有256个中断类型号,对应256个中断服务程序的入口地址。所有中断服务子程序的入口地址都存放在中断向量表中。每个入口地址的段地址和段内偏移地址占4个存储单元,所以其中断向量表长度为1K(256×4)个单元。8086/8088系统的中断向量表位于内存的前1K字节,地址范围为00000H~003FFH。


CPU响应中断时,把中断类型号N乘以4,得到对应地址4N,然后把由此地址开始的两个低字节单元(4N,4N+1)的内容装入IP寄存器,再把两个高字节单元(4N+2,4N+3)的内容装入CS寄存器,于是CPU转入中断类型号为N的中断服务子程序。

7.4.3 8086/8088的中断处理过程

7.4.4中断服务程序的设计

中断服务程序的一般结构如图所示。如前所述,在进入中断处理前,硬件已自动关中断,若想让该中断处理能被更高级别的中断源中断,则需事先加入开中断指令。中断服务程序的最后一定要有中断返回指令IRET,以保证断点的恢复。


用户在设计中断服务程序时要预先确定一个中断类型号,确定了中断类型号,还要把中断服务入口地址置入中断向量表,以保证在中断响应时CPU能自动转入与该类型号相对应的中断服务程序。

将中断服务程序入口地址置入中断向量表的方法有两种:DOS系统功能调用法和直接装入法。

相关文章
|
8月前
|
数据格式
LabVIEW编程LabVIEW开发控制安东电子LU-926U04Y四路调节模例程与相关资料
LabVIEW编程LabVIEW开发控制安东电子LU-926U04Y四路调节模例程与相关资料
53 1
|
7月前
|
移动开发
技术好文:stm32寄存器版学习笔记06输入捕获(ETR脉冲计数)
技术好文:stm32寄存器版学习笔记06输入捕获(ETR脉冲计数)
325 0
|
8月前
LabVIEW编程LabVIEW开发PXI-6704输出大于20mA的电流例程与相关资料
LabVIEW编程LabVIEW开发PXI-6704输出大于20mA的电流例程与相关资料
57 0
|
物联网
STM32:TIM输入捕获硬件部分(内含:1.输入捕获简介+2.频率测量+3.通用/高级定时器的输入捕获电路分析(重点)+4.主从触发模式+5.输入捕获基本结构(重点)+6.PWM基本结构)
STM32:TIM输入捕获硬件部分(内含:1.输入捕获简介+2.频率测量+3.通用/高级定时器的输入捕获电路分析(重点)+4.主从触发模式+5.输入捕获基本结构(重点)+6.PWM基本结构)
582 0
STM32:TIM输入捕获硬件部分(内含:1.输入捕获简介+2.频率测量+3.通用/高级定时器的输入捕获电路分析(重点)+4.主从触发模式+5.输入捕获基本结构(重点)+6.PWM基本结构)
第七章 输入/输出与中断【微机原理】1
第七章 输入/输出与中断【微机原理】1
82 0
|
C++
第七章 输入/输出与中断【微机原理】3
第七章 输入/输出与中断【微机原理】3
162 0
【单片机期中测试】2.独立按键控制LED移位
【单片机期中测试】2.独立按键控制LED移位
111 0
|
存储 芯片
【微机原理笔记】第 6 章 - 输入输出和中断技术
【微机原理笔记】第 6 章 - 输入输出和中断技术
377 0
|
算法 异构计算
通过状态机方法实现基于FPGA的维特比译码器,包含testbench测试文件
通过状态机方法实现基于FPGA的维特比译码器,包含testbench测试文件
168 0
|
编解码 内存技术
HIMA EABT3 DAC设计再现的可能输出电平数
HIMA EABT3 DAC设计再现的可能输出电平数
HIMA EABT3 DAC设计再现的可能输出电平数