嵌入式_中断名词详解、分类与过程

中断

一、定义

当CPU正在正常运行时,外部发生的某一随机事件请求CPU去处理,于是CPU暂时中止现行程序的运行而处理所发生的事件,处理完毕后,再回到原来被中止的地方继续执行,这种能力和行为称为中断。系统为实现中断而采取的硬件和软件措施称为中断系统。
• 一个完整的中断过程应该包括:中断请求、中断判优、
中断响应、中断处理和中断返回。
首先中断源提出中断申请,在该中断允许的情况下,CPU首先响应优先级别高的中断源提出的中断请求,等处理完高优先级中断源的中断服务程序后再响应较
低优先级别的中断请求;CPU暂停现行程序,将PC中下一条指令的地址入栈保护起来,响应中断请求,进入中断服务程序;中断服务程序首先保护现场,接着执行中断源服务程序主体部分,然后恢复现场,最后返回主程序。

二、基本观念

(一)、中断源

引起中断的事件,即发出中断请求的来源,称为中断源。在计算机系
统中,软件和硬件均可以提出中断请求。

  1. 一般的I/O 设备,如键盘、打印机等。
  2. 实时时钟。
  3. 软、硬件故障。
  4. 为了调试程序而设置的中断。(例如设置断点,单步运行等)

中断源的设置—即使是最高级的计算机,也不能够处理全部的异常情 况和特殊事件,它只能根据应用目的设计一些事先确定的中断源。

(二)、中断请求

用某种信号通知CPU指明某个外设正在请求中断,需要CPU中断现行程序的执行。
中断请求的条件:
(1)外设具有提出中断请求功能;
(2)CPU允许该外设发中断请求。
中断屏蔽:是否允许CPU响应中断请求。可通过设置状态寄存器上的IF标识位来控制。
(1)非屏蔽中断(NMI)
出现在NMI线上的中断请求为非屏蔽中断,这种中断不受中断允许标志IF的影响,
它总是被CPU接受的。非屏蔽中断的优先权高于可屏蔽中断。
(2)可屏蔽中断
出现在INTR线上的中断请求信号。是否响应INTR的请求,取决于中断允许标志
位IF的状态。只有当中断允许标志位IF为1时,CPU才能响应INTR的中断请求。
• 如果IF为0,即使INTR端有中断请求信号CPU也不会响应。这种情况称为中断屏蔽。
• 通常CPU为每个中断源设置一个中断请求触发器,把该触发器置“1”时,向CPU发
出中断请求且一直保持这一状态,直到CPU响应该中断请求后才能而且必须清除这一请求信号,以防止重复中断。

1、中断请求信号的传送

• 中断请求信号产生后,可以通过中断请求线传送给CPU。
• 按照中断请求线的数目分为单线中断 多线中断 多线多级中断
1). 单线中断
• 各中断源的请求信号通过三态门汇集到一根公共请求线上,如下图。
• 当收到中断请求后,CPU必须通过相应的软件或硬件的方法来判断是哪个设备提出中断请求。在微机中广泛采用这种模式。
在这里插入图片描述
2). 多线中断
• 在多线中断技术中,各个中断源单独设置中断请求线,将中断请求直接送往
CPU。
当CPU收到中断请求信号后,就知道了请求源是谁,这有利于提高中断响应的
速度,便于采用向量中断技术,但其硬件代价较大。
• 缺点:中断源的数目难以扩充。
在这里插入图片描述
3). 多线多级中断
• 当中断源的数目大于中断输入线的数目时,通常是将中断请求线连接成二维结构
(多线多级技术),如下图。
在这里插入图片描述

(三)、中断响应

• 中断响应 • 中断响应是指主机发现外部中断请求,中止现行程序的执行,
到调出中断服务程序这一过程。
• 中断响应的条件
① CPU处于开中断状态
② 在一条指令执行完
② 至少要有一个未被屏蔽的中断请求
• 中断响应过程
① 关中断0=>中断允许触发器CIEN
② 保护断点和程序状态PC=>堆栈(或特殊寄存器EPC)PSW=>堆栈
③ 识别中断源,取得中断服务程序首地址和初始程序状态字分别送PC和PSWR

(四)、中断处理过程

中断处理过程包括:
进入中断服务程序,中断服务程序首先保护现场,接着执行中断源服务程序主
体部分,然后恢复现场,最后返回主程序。
中断请求——中断判优——中断响应——中断处理——中断返回
进一步可细分为:

  1. 关中断
  2. 保存断点(入栈当前IP值)
  3. 识别中断源(寻找相应的中断服务程序入口地址)
  4. 保护现场(入栈各重要寄存器)
  5. 执行中断服务程序
  6. 恢复现场(出栈各寄存器)
  7. 开中断
  8. 返回(出栈IP)。

猜你喜欢

转载自blog.csdn.net/Kattlin_gsc/article/details/106856465
今日推荐