这两节课主要讲解了中断的相关概念和知识
一、中断的基本概念中断是指计算机运行过程中,当某个紧急事件或异常情况需要主机干预时,机器能自动停止正在运行的程序,并转入处理新情况的程序,处理完毕后再返回原被暂停的程序继续运行的过程。 二、中断的分类中断可分为硬件中断和软件中断两大类: - 硬件中断:
- 由硬件设备(如网卡、时钟电路等)产生的中断。
- 又可细分为可屏蔽中断和不可屏蔽中断。可屏蔽中断可通过设置中断屏蔽寄存器来关闭;而不可屏蔽中断则不受此影响,一旦产生,CPU必须立即响应。
- 硬中断具有实时性强、可靠性高、处理速度快等特点。
- 软件中断:
- 由软件程序主动发起的,如系统调用、异常等。
- 响应速度和实时性相对较差,但具有灵活性和可控性高的特点。
三、中断的工作机制中断的工作机制一般包括以下步骤: - 中断请求:
- 中断源(如硬件设备或软件程序)向CPU发出中断请求信号。
- 中断响应:
- CPU在每条指令执行的最后一个时钟周期检测中断请求输入端,判断有无中断请求。
- 若CPU接收到了中断请求信号,且此时CPU内部的中断允许触发器的状态为1,则CPU在现行指令执行完后,发出INTA信号响应中断。
- 保护断点:
- CPU响应中断后,需要保护当前正在执行程序的断点信息(即返回主程序时执行的第一条指令的地址),以便在中断结束后仍能回到该断点处继续执行。
- 处理中断:
- CPU跳转到中断处理程序去处理这个中断。用户编写的用于CPU为中断源进行中断处理的程序称为中断服务程序。
- 中断返回:
- 中断服务程序执行完毕后,CPU恢复被保护的断点信息,并返回到原先被中断的程序继续执行。
四、中断的优先级当多个中断源同时发出中断请求时,CPU会根据中断的优先级来决定先响应哪个中断。例如,在8086/8088系统中,中断优先级从高到低依次为:软件中断(除单步中断)>非屏蔽中断NMI>可屏蔽中断INTR>单步中断。 计算机的中断系统一般允许多个中断源,当几个中断源同时向CPU请求中断,要求为其服务的时候,就存在CPU优先响应哪一个中断源请求的问题。通常根据中断源的轻重缓急排队,优先处理最紧急事件的中断请求源,即规定每一个中断源有个优先级别。CPU总是先响应优先级别最高的中断请求。 当CPU正在处理一个中断源请求的时候(执行相应的中断服务程序),发生了另外一个优先级比它更高的中断源请求,CPU暂停原来中断源的服务程序,转而去处理优先级更高的中断请求源,处理完以后,再回到原低优先级中断的服务程序这样的过程称为中断嵌套 老师重点讲了STC8H8K64U的中断源还有中断标志位 5.单片机中断处理过程 (1)中断响应的条件及过程 当中断源向CPU发出中断请求时,如果中断的条件满足,CPU将进入中断响应周期。单片机响应中断的条件是: 1)中断源有请求。 2)中断允许寄存器位相应位置1。 3)CPU中断开放(EA=1)
CPU响应中断时,将相应的优先级状态触发器置1,然后由硬件自动产生一个长调用指令LCALL,此指令首先把断点地址压入堆栈保护,再将中断服务程序的入口地址送入到程序计数器PC,使程序转向相应的中断服务程序。 (2)中断服务 中断服务程序从入口地址开始执行,直到执行返回指令RETI为止。RETI指令表示中断服务程序的结束,CPU执行该指令,一方面清除中断响应时所置位的优先级有效触发器,一方面由栈顶弹出断点地址送程序计数器PC,从而返回主程序。中断服务程序由四个部分组成,即保护现场、中断服务、恢复现场以及中断返回。 由于在主程序中一般都会用到累加器A和程序状态字寄存器PSW,所以在现场保护时一般都需要保护A和PSW,其他寄存器根据使用情况决定是否需要保护。 在编写中断服务程序时应注意以下两点: 1)单片机响应中断后,不会自动关闭中断系统。如果用户程序不希望出现中断嵌套,则必须在中断服务程序的开始处关闭中断,从而禁止更高优先级的中断请求中断当前的服务程序。2)为了保证保护现场和恢复现场能够连续进行,在保护现场和恢复现场之前应先关中断,当现场保护或现场恢复结束后,再根据实际需要决定是否需要开中断,
|