论述LPC2000系列ARM的中断系统VIC功能模块及作用。(画图表示,并简要说明)参考课本图4.74
4条回答 默认 最新
关注引自免费微信小程序:皆我百晓生
LPC2000系列是NXP(恩智浦半导体)基于ARM Cortex-M内核设计的一系列微控制器。在这些微控制器中,中断管理系统叫做Vector Interrupt Controller (VIC),它负责管理并优先级排序所有可能发生的中断事件,然后将控制权转交给相应的中断服务程序。
VIC的主要功能模块包括以下几个部分:
-
中断请求输入(Interrupt Request Inputs, IRQs):这些输入端口接收来自外设或内部模块的中断请求信号。中断源可以是定时器、串行通信接口、ADC转换完成、PWM等。
-
中断向量表(Interrupt Vector Table, IVT):这是存储中断处理程序地址的内存区域。每个中断请求都有一个对应的IVT条目,当中断发生时,CPU会跳转到该条目的地址开始执行中断服务程序。
-
中断使能寄存器(Interrupt Enable Registers, IERs):用于控制每个中断请求的使能状态。只有当某个中断的使能位被置为1时,该中断才会被 VIC 接受并触发。
-
中断屏蔽寄存器(Interrupt Mask Registers, IMRs):用来设置中断的屏蔽状态。即使中断使能,如果其对应的IMR位被置为1,中断也会被屏蔽掉,不会引起中断请求。
-
中断优先级寄存器(Interrupt Priority Registers, IPRs):定义了每个中断的优先级。优先级高的中断会先被处理,如果有多个高优先级中断同时到达,将按照抢占式原则处理,即处理最高优先级的中断。
-
中断分组(Interrupt Grouping):允许用户将中断分成不同的组别,每组有自己的中断使能和中断屏蔽寄存器,这样可以在不影响其他组中断的情况下,独立地启用或禁用一组中断。
-
中断优先级重映射(Interrupt Priority Remapping):允许对中断优先级进行动态调整,提高系统的灵活性和实时性。
-
中断服务状态寄存器(Interrupt Service Status Register, ISSR):保存当前正在执行的服务中断号,以及是否允许新的更高优先级中断进入。
-
中断标志寄存器(Interrupt Flag Registers, IFRs):记录各个中断的发生情况,中断服务完成后通常需要清零。
以下是 VIC 的简化逻辑框图:
+-----------------+ | Interrupt | | Request | | Inputs | +-----------------+ | V +-----------------+ | Interrupt | | Enable | | Registers | +-----------------+ | V +-----------------+ | Interrupt | | Mask | | Registers | +-----------------+ | V +-----------------+ | Interrupt | | Priority | | Registers | +-----------------+ | V +-----------------+ | Interrupt | | Vector | | Table | +-----------------+ | V +-----------------+ | Interrupt | | Grouping | | Control | +-----------------+ | V +-----------------+ | Interrupt | | Service | | Status | | Register | +-----------------+ | V +-----------------+ | Interrupt | | Flag | | Registers | +-----------------+在LPC2000系列微控制器中,VIC是一个非常重要的组件,它使得系统能够高效、有序地处理各种硬件中断,从而实现多任务并发和实时操作。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录-