中断系统的主要作业可分为以下核心部分,结合了硬件机制与软件流程:
一、中断请求检测
外部中断请求 由外部设备通过中断请求引脚(如P3.2、P3.3)发送信号,CPU在每个时钟周期检测这些引脚状态,若检测到有效信号且系统允许中断(IF=1),则触发中断响应。
内部中断请求
由CPU内部状态变化产生(如定时器溢出、I/O设备状态变化),通过内部中断控制逻辑直接触发中断响应。
二、中断请求处理
中断判优
当多个中断同时发生时,系统需根据中断优先级进行排序。优先级由硬件(如优先级向量表)或软件(如软件查询)决定,确保高优先级中断优先执行。
中断响应
CPU暂停当前指令,自动保存现场(如程序计数器、寄存器状态)并跳转至中断服务程序入口地址。对于外部中断,响应发生在当前指令执行完毕后的最后一个时钟周期。
三、中断服务程序执行
服务程序运行
CPU执行针对具体中断源的服务程序,完成对中断事件的响应(如数据传输、状态更新等)。
中断屏蔽与嵌套控制
- 中断屏蔽: 允许高优先级中断打断低优先级中断,避免低优先级任务干扰紧急任务。 - 中断嵌套
四、中断返回
现场恢复 中断服务程序执行完毕后,CPU从堆栈中恢复被中断时的程序计数器和寄存器状态,确保程序能正确返回到中断点继续执行。
中断解除
关闭中断标志位(如IF、TF),释放被占用的硬件资源,为下一次中断响应做准备。
补充说明
中断向量表: 存储中断服务程序的入口地址,便于快速跳转。 软件查询机制
中断系统通过上述流程,使CPU能够高效处理异步事件,提升系统实时性和响应能力。