主程序 中断1请求 中断1 服务程序 中断2请求 中断2 m 服务程序 中断3请求 中断3 断点2Y 服务程序 m 断点3 IRET 断点1 W+1 n+1 IRET IRET 图7-2中断嵌套示意图
中 断 1请 求 n 中 断 1 服 务 程 序 m 中 断 2 服 务 程 序 W 中 断 3 服 务 程 序 IRET W+1 IRET 中 断 3请 求 m+1 IRET n+1 断 点 1 中 断 2请 求 主 程 序 断 点 2 断 点 3 图 7-2 中断嵌套示意图
7.1.2微机系统中的中断处理过程 微机系统的中断处理从开始到结束包括以下几 个主要步骤: (1)识别中断源 (2)保护现场 (3)开中断 (4)中断服务 (5)中断返回
7.1.2 微机系统中的中断处理过程 微机系统的中断处理从开始到结束包括以下几 个主要步骤: (1)识别中断源 (2)保护现场 (3)开中断 (4)中断服务 (5)中断返回
71.3中断优先级的排队及判别 系统中多个中断源的中断请求信号都是送到CPU同一引脚 上申请中断服务,这就要求CPU能识别出是哪些中断源在申 请中断,同时比较它们的优先权,从而决定先响应哪一个中 断源的中断请求。另外,CPU正在处理中断时,也可能要响 应更高级的中断请求,并屏蔽同级或较低级的中断请求,这 些都需要分清各中断源的优先权。 中断源的优先级判别一般可采用软件优先级排队和硬件 优先级排队两种方法
7.1.3 中断优先级的排队及判别 系统中多个中断源的中断请求信号都是送到CPU同一引脚 上申请中断服务,这就要求CPU能识别出是哪些中断源在申 请中断,同时比较它们的优先权,从而决定先响应哪一个中 断源的中断请求。另外,CPU正在处理中断时,也可能要响 应更高级的中断请求,并屏蔽同级或较低级的中断请求,这 些都需要分清各中断源的优先权。 中断源的优先级判别一般可采用软件优先级排队和硬件 优先级排队两种方法
1.软件优先级排队 软件优先级排队是指各个中断源的优先权由软件安排 图7-4所示电路是一种配合软件优先级排队使用的电路, 图中各中断源的优先权不是由硬件电路安排,而是由软件 安排。 图中若干个外设的中断请求信号相“或”后,送至 CPU的中断接收引脚(如INTR)。这样,只要任一外设 有中断请求,CPU便可响应中断。在中断服务子程序前可 安排一段优先级的查询程序,即CPU读取外设中断请求状 态端口,然后根据预先确定的优先级级别逐位检测各外设 的状态,若有中断请求就转到相应的处理程序入口
1. 软件优先级排队 软件优先级排队是指各个中断源的优先权由软件安排。 图7-4 所示电路是一种配合软件优先级排队使用的电路, 图中各中断源的优先权不是由硬件电路安排,而是由软件 安排。 图中若干个外设的中断请求信号相“或”后,送至 CPU的中断接收引脚(如INTR)。这样,只要任一外设 有中断请求,CPU便可响应中断。在中断服务子程序前可 安排一段优先级的查询程序,即CPU读取外设中断请求状 态端口,然后根据预先确定的优先级级别逐位检测各外设 的状态,若有中断请求就转到相应的处理程序入口
端口地址 D 0 0#外设 态 缓冲器 D 7#外设 INTR R +5Vρ 图7-4软件优先级排队电路
三态 缓冲器 D0 D7 … INTR +5V R 0#外设 7#外设 … 端口地址 图7-4 软件优先级排队电路