资讯详情

zynq7000中断系统

7.1环境

本章描述了系统级中断环境和中断控制器功能。PS端是基于ARM架构,使用两个Cortex-A9处理器和型号pl390的GIC中断控制器。可编程逻辑器件(PL)、从外部IO接受的中断请求密切相关。本章包含以下关键点:

1 私有、共享以及软件中断

2 GIC功能

3 中断优先级和中断处理

7.1.1 私有、共享和软件中断

每个CPU拥有一组使用banked寄存器(R8~R14) 具有私有访问权限的 私有外部中断(PPI)。PPI来源包括本地timer,私有看门狗timer,私有timer,以及来自于PL的FIQ/IRQ。中断软件生成(SGIs)被发送到一两个CPU,SGIs通过写通用中断控制器(GIC)生成的寄存器,详见7.三章-寄存器概述。共享外部中断(SPIs)通过PS/PL端的I/O以及内存控制器。SPIs只发送到两个CPU中的一个。来自PS端外设的SPI也会发送中断PL端。

7.1.2 通用中断控制器(GIC)

GIC是集中式中断管理块,用于管理和发送CPU的中断。GIC以编程方式进行以下操作:优先排序能源、残疾、屏蔽、中断资源,确定中断发送到哪个CPU。此外,GIC安全要求系统的操作支持安全扩展。

控制器的版本是 Generic Interrupt Controller Architecture version 1.0 (GIC v一、非矢量型。

寄存器通过CPU私有总线的高速读写响应是通过避免暂时阻塞和其他瓶颈来实现的。

将最高优先级的中断发送到独立的每一个CPU之前,GIC所有中断资源资源。GIC确保一个指定发送到多个指定CPU同时,中断只次中断CPU捕获。每个中断源都有一个独特的中断号。每个中断源都有可配置的优先级和目标CPU列表(一个中断可以发送到多个CPU,那么此时就需要一个表来存储需要被发送到的CPU号)。

7.1.3 及时钟重置

中断控制器通过 reset子系统 重置。具体操作是写作。A9_CPU_RST_CTRL寄存器的PERI_RST位置。同样的重置信号也会重置CPU私有timers还有私人看门狗timers(AWDT)。reset之后,包括悬挂或需要处理在内的所有中断都将被忽略。

7.1.4 时钟示意图

包括多个子系统在内的共享外部中断 PS端的I/O外设以及PL终端逻辑。中断源如图7-2所示。

7.1.5 CPU中断信号传输

来自于PL的IRQ/FIQ可通过中断GIC作为PPI中断发送,或绕过GIC,使用传输数据选择器。mpcore的ICCICR如表7-1所示,寄存器使能。

7.2 功能描述

7.2.1软件中断(SGI)

中断软件,每个CPU你可以中断自己和其他人CPU、或者中断多个CPU。共有16个软件中断(Table 7-2)。一个SGI中断通过写入中断号到ICDSGIR寄存器产生中断和指定目标CPU,通过这种写入操作CPU进行私有总线。每个CPU拥有它自己的SGI生成一个或多达16个软件中断的寄存器组。通过写入ICCIAR寄存器的 corresponding 位为1 或 读取ICCIAR清除中断的寄存器。

所有的SGI边缘触发中断。SGI中断触发类型固定且不变;ICDICFR0寄存器是只读寄存器,它指定了所有16个SGI触发类型中断。

7.2.2 CPU私有外部中断(PPI)

每个CPU连接到5个私有外部中断。PPI中断列在Table7-3中。

PPI中断的触发类型也是固定的,不能改变;因此,ICDICFR寄存器只读,指定了这5个PPI触发类型中断。注:来自PL端的FIQ中断和IRQ因此,即使中断信号被发送到中断控制器,ICDICFR1寄存器指示它们处于低电平活动状态(即低电平会触发中断),它们在PS-PL接口仍处于高电平活动状态。

7.2.共享外部中断(SPI)

大约60个中断可以从每个模块发送到一个或多个CPU或PL端。GIC控制器管理这些中断的优先级和接收者。

除了 61~68号以及84~91号中断,所有中断触发类型都是由请求源固定而不变的。GIC控制器需要通过编程来适应上述特性。boot ROM(芯片内固化的起始代码)不会编程这些寄存器;因此SDK设备驱动(uboot/kernel)必须对GIC适应这些触发类型的编程。

对于电平触发模式的中断,在收到中断后,请求源必须提供一种中断操作方法来清除中断。这一要求应用于所有使用高电平触发模式的要求IRQF2P[n]中断。

对于一个上升沿触发方式的中断,请求源必须提供一个足够被GIC控制器捕获的脉冲宽度。脉宽通常至少需要两个 CPU_2x3x 周期。这一要求应用于所有使用上升沿触发的方法IRQF2P[n]中断。

ICDICFR2寄存器通过ICDICFR5寄存器配置SPI中断类型,每个中断占2bit用于指定触发和处理的位域。

SPI中断见Table 7-4。

7.2.4中断触发、目标、处理

有三种进入GIC的中断:SPI,PPI,SGI(已介绍上述章节)。一般情况下,中断信号包含触发设置,处理中断CPU数量,中断目标CPU。然而,大多数中断信号是固定的,其他中断信号是可编程的。

中断触发、处理、指定目标有两组寄存器:

1 mpcore.ICDICFR寄存器: 触发和处理,见Figure 7-4。

2 mpcore.ICDIPTR寄存器:指定CPU,见Figure7-5。

共享外部中断(SPI)

SPI中断可以发送到任何数量CPU,但只有一个CPU处理它。如果一个中断发送到两个CPU且这两个CPU同时回复GIC控制器,所以MPcore保证只有一个CPU会读到这个中断ID号。而另外一个CPU读伪中断ID读下一个挂起等待处理的中断号-1023或ID这取决于时序。在执行中断服务时,通过删除请求。通过ICDIPTR寄存器:8]寄存器可获得指定的指定CPU操作是否结束。每个SPI必须通过编程来匹配表7-4中列出的内容。通过触发ICDICFR[5:2]编程寄存器位。

私有外部中断(PPI)

每个CPU拥有自己的独立PPI中断。触发、处理和发送目标的选项不能编程,每个中断只会发送到自己的CPU并被处理。ICDICFR[1]寄存器只读,只读ICDIPTR[5:2]寄存器实际上是闲置的。

软件中断(SGI)

SGI中断总是被边缘触发,只有当软件写中断号到达时ICDSGIR只有在寄存器中断时才会产生。所有定义ICDIPTR寄存器位的目标[23:8]CPU必须处理中断并清除ICDSGIR寄存器。

标签: ppi0001495连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司