0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用 AXI Interrupt Controller完成含超16次中断的布线

XILINX开发者社区 来源:XILINX开发者社区 作者:XILINX开发者社区 2022-08-24 09:21 次阅读

本文主要讲解在 PL 中从 IP 核到 PS 之间需要完成含超 16 次中断的布线的情况下,该如何使用 AXI Interrupt Controller (INTC)。其中使用的AMD Xilinx外设包括 Vivado 设计中的 GPIO、IICUART 以及定时器
设计示例是使用 Vivado 2020.1 版本,以 ZCU106 评估板为目标而创建的。中断在 PetaLinux 2020.1 上经过测试,此处随附了设计 Tcl 和 system-user.dtsi 文件。

AXI GPIO:
General Purpose Input/output (GPIO) 核是支持轻松访问器件内部属性的接口。该核还可用于控制外部器件的行为。


中断:
中断控制可从 GPIO 通道获取中断状态,并向主机生成中断。在 Vivado 中设置“Enable Interrupt”(启用中断)选项后,即可启用中断控制。

65d05b4a-22d6-11ed-ba43-dac502259ad0.png

对于输入模式,gpio_input 管脚连接到 ZCU106 的如下按钮 (PUSH BUTTON):

gpio_input(0) = GPIO_SW15

gpio_input(1) = GPIO_SW14

gpio_input(2) = GPIO_SW16

gpio_input(3) = GPIO_SW17

gpio_input(3) = GPIO_SW18

65f32aa8-22d6-11ed-ba43-dac502259ad0.png

AXI INTC:
AXI Interrupt Controller (INTC) 核可将来自外设器件的多个中断输入集中到系统处理器的单一中断输出。使用寄存器来检查、启用和确认中断。

661dec84-22d6-11ed-ba43-dac502259ad0.png

此示例的主要目的是将超过 16 个中断连接到 PS。AXI INTC 核可支持我们满足此需求。使用单一 AXI INTC 块的情况下最多可连接 32 个中断,并且您还可使用级联。(我们可能会通过另一篇博文来提供此操作示例。)

在下文描述 Concat IP 的多个图例中,您可以看到中断的连接方式。

块设计:
由于设计太大了,我并没有添加完整设计的示意图,因此下面会逐一展示必要的连接示意图。

Concat IP:
Concat IP 核可提供相应机制来将不同宽度的总线信号组合到单一总线内。

663e6400-22d6-11ed-ba43-dac502259ad0.png

从 IP catalog(IP 目录)添加 Concat 块,然后双击 IP(如下所示)以打开“Re-customize IP”(重新自定义 IP)对话框。

6659cd08-22d6-11ed-ba43-dac502259ad0.png

将“Number of Ports”(端口数)参数设置为期望的输入端口数。在此示例中,所选数量为 18。
完成自定义 IP 后,结果如下所示,第 18 个端口连接到如前文所述的 GPIO_PUSH_BUTTONS 中断行。

668ebed2-22d6-11ed-ba43-dac502259ad0.png

dout 为输出端口,其位宽等于所有输入端口的位宽总和,该输出端口布线到 AXI INTC 核的输入 intr 端口。

66b79050-22d6-11ed-ba43-dac502259ad0.png66d54ece-22d6-11ed-ba43-dac502259ad0.png


AXI INTC 的输出连接到 Zynq MPSoC 块的 pl_ps_irq_0 端口:

66f9252e-22d6-11ed-ba43-dac502259ad0.png

请验证设计并遵循其余步骤进行操作以生成比特流。导出硬件,用于构建 PetaLinux 镜像。

PetaLinux:
内核配置:
在 menuconfig 中启用以下选项。默认情况下,这些选项均已启用,但您应核实其状态,以防万一。

671c0a12-22d6-11ed-ba43-dac502259ad0.png

向设备树添加按钮:

按钮仅可用于 Input GPIO 应用。
创建的每个子节点均可控制 GPIO 的单个位。在 dts 文件中的“gpio-keys”键节点下,根据设计,为按钮 (Push Buttons) 创建含如下名称的子节点:

6732d3c8-22d6-11ed-ba43-dac502259ad0.png

完成此操作后,请启动 Linux。您可在 cat /proc/interrupts 中看到按钮 SW15 到 SW18 的标签

67630688-22d6-11ed-ba43-dac502259ad0.png

随机按下按钮后,触发器计数会按如下所示方式增加:

679637e2-22d6-11ed-ba43-dac502259ad0.png

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    7640

    浏览量

    148515
  • Xilinx
    +关注

    关注

    70

    文章

    2121

    浏览量

    119388
  • 定时器
    +关注

    关注

    23

    文章

    3148

    浏览量

    112048

原文标题:开发者分享|如何使用 AXI Interrupt Controller 处理超过 16 次中断

文章出处:【微信号:gh_2d1c7e2d540e,微信公众号:XILINX开发者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    S5PV210中断配置详解

    [table][tr][td]The interrupt controller in S5PV210 is composed of four Vectored Interrupt
    发表于 07-04 01:35

    S5PV210中断配置

    [table][tr][td]The interrupt controller in S5PV210 is composed of four Vectored Interrupt
    发表于 07-09 01:09

    什么会导致VDMA(AXI视频直接存储器访问)的S2MM中的帧计数器中断

    我使用VDMA,AXI互连器和DDR3进行了设计,以实现视频帧缓冲。我遇到了一个问题,即在完成第一帧之后,VDMA卡在第二帧的开头。我通过AXI lite读取了VDMA的寄存器来检查状态:34h
    发表于 03-14 15:28

    STM32外部中断简介

    /事件控制器(External Interrupt/Event Controller,EXTI)和各个外设中断控制器部分构成。我们通过外部中断/事件线路映射。将IO端口映射到
    发表于 08-16 07:46

    单片机C51中interrupt和using应该如何使用详细方法说明

     interrupt 0 指明是外部中断0; interrupt 1 指明是定时器中断0; interrupt 2 指明是外部
    发表于 09-25 17:17 3次下载
    单片机C51中<b class='flag-5'>interrupt</b>和using应该如何使用详细方法说明

    单片机中断中的interrupt 1和using 1各代表什么意思

    interrupt 关键字是不可缺少的,由它告诉编译器该函数是中断服务函数,并由后面的 n 指明所使用的中断号。n 的取值范围为0-31,但具体的中断号要取决于芯片的型号,像 AT89
    发表于 07-05 17:41 1次下载
    单片机<b class='flag-5'>中断</b>中的<b class='flag-5'>interrupt</b> 1和using 1各代表什么意思

    关于MPSoC的中断处理介绍

    目录1. MPSoC的中断处理介绍 2. 扩展PL中断 3. 扩展AXI Intc中断 3.1. AXI Intc PL连接 3.2.
    的头像 发表于 05-07 15:34 3696次阅读

    C51 interrupt 中断

    沿引起INT1外部中断1,中断请求信号由P3.3输入,低电平或下降沿引起T0定时器/计数器0中断,由T0计数器记满回0引起T1定时器/计数器1中断,由T1计数器记满回0引起RX、TX串
    发表于 11-22 14:36 0次下载
    C51 <b class='flag-5'>interrupt</b>  <b class='flag-5'>中断</b>

    STM32 中断原理及外部中断的实现

    NVIC 中断配置Nested Vectored Interrupt Controller,嵌套向量中断控制器。CM3支持256个中断
    发表于 11-23 18:06 1次下载
    STM32 <b class='flag-5'>中断</b>原理及外部<b class='flag-5'>中断</b>的实现

    STM32中断与DMA通信编程

    一、STM32中断使用NVIC 中断优先级管理Nested Vectored Interrupt Controller,嵌套向量中断控制器。
    发表于 12-06 20:36 0次下载
    STM32<b class='flag-5'>中断</b>与DMA通信编程

    STM32中断与DMA通信编程

    一、STM32中断使用NVIC 中断优先级管理Nested Vectored Interrupt Controller,嵌套向量中断控制器。
    发表于 12-07 10:51 7次下载
    STM32<b class='flag-5'>中断</b>与DMA通信编程

    单片机c语言中断/定时器

    汇编语言c语言采用interrupt加序号,序号对应中断向量地址interrupt 0 外部中断0interrupt 1 T0
    发表于 01-13 13:53 7次下载
    单片机c语言<b class='flag-5'>中断</b>/定时器

    STM32中断与DMA通信编程

    一、STM32中断使用NVIC 中断优先级管理Nested Vectored Interrupt Controller,嵌套向量中断控制器。
    发表于 01-14 15:37 1次下载
    STM32<b class='flag-5'>中断</b>与DMA通信编程

    AMD Xilinx AXI Interrupt Controller中断优先级

    AXI Interrupt Controller支持中断优先级。 在Vivado Block Design中, bit-0连接的中断优先级最
    的头像 发表于 07-11 17:03 680次阅读
    AMD Xilinx <b class='flag-5'>AXI</b> <b class='flag-5'>Interrupt</b> <b class='flag-5'>Controller</b><b class='flag-5'>中断</b>优先级

    PCIe控制器(FPGA或ASIC),PCIe-AXI-Controller

    PCIe-AXI-Controller兼容PCI Express Base Specification Revision 3.1,实现PCIe PHY Layer,Data Link Layer以及
    的头像 发表于 02-21 15:15 266次阅读
    PCIe控制器(FPGA或ASIC),PCIe-<b class='flag-5'>AXI-Controller</b>