- UID
- 1029342
- 性别
- 男
|
实时计算经常要求中断针对事件快速做出响应。只要掌握Zynq SoC中断结构的工作原理,就不难设计出中断驱动型系统。
在嵌入式处理中,中断表示暂时停止处理器的当前活动。处理器会保存当前的状态并执行中断服务例程,以便对引起中断的原因进行寻址。中断可能来自下列三个地方之一:
硬件 – 直接连接处理器的电子信号
软件 – 处理器加载的软件说明
异常情况 – 发生错误或异常事件时处理器出现的异常情况
无论中断的来源在何处,都可将中断的类别归为可屏蔽和不可屏蔽两种。您可通过在中断掩码寄存器中设置相应的位来安全地忽略可屏蔽中断。但不能忽略不可屏蔽中断,因为这类中断通常用于定时器和看门狗监控器。
中断的触发既可以是边缘触发也可以是水平触发。我们将在后面部分看到,赛灵思Zynq®-7000 All Programmable SoC支持中断的这两种配置方式。
为什么使用中断驱动方案?
实时设计通常要求采用中断驱动方案,因为众多系统都会有很多输入单元(如键盘、鼠标、按钮、传感器以及类似设备等)偶尔需要处理。这些设备的输入单元通常会被异步至当前正在执行的进程或任务,因而用户不可能始终准确预测事件的发生时间。
使用中断,处理器能继续进行处理,直到事件发生,这时处理器便可处理这一事件。此外,与轮询方案相比,中断驱动方案对事件的响应时间更短,在中断驱动方案中,程序会以同步的方式主动对外部设备的状态进行采样。
Zynq SoC的中断结构
随着处理器技术不断进步,中断的来源也多种多样。如图1所示,Zynq SoC可使用通用中断控制器(GIC)来处理中断。GIC可处理源自以下方面的中断:
I/O外设 | 通用设置 | 应用处理器单元(APU) | | 系统级控制寄存器 | 窥探控制单元 | 64b | | AXI | ACP | 从系统 | 512KB L2 高速缓存与控制器 | 端口 | | FLASH 存储器接口 | 中央互联 | DMA8 | 存储器接口 | | 通道 | CoreSight | DR2/3,LPDDR2控制器 | | | SMC 时序计算Calulation | 组件 | | 到存储器互联点的可编程逻辑 | | | | 复位 | 时钟生成 | | 扩展MIO (EMIO) | PS-PL时钟端口 | 32b GP | 32b GP | | AXI | AXI | 主系统端口 | 从系统端口 | DMA 同步 | 配置 | 高性能 | 处理系统 (PS) | | DMA 通道 | AES/ | AXI 32b/64b 从系统端口 | | | SHA | | 可编程逻辑 (PL) |
|
|