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、IIC、UART 以及定时器
设计示例是使用 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

    文章

    9446

    浏览量

    156145
  • Xilinx
    +关注

    关注

    73

    文章

    2192

    浏览量

    129943
  • 定时器
    +关注

    关注

    23

    文章

    3361

    浏览量

    121750

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    AMD Versal自适应SoC上的级联模式示例

    本篇博文主要讲解在 PL 中如何使用 AXI Interrupt Controller (INTC) 的级联模式,将 IP 核超过 32 个的中断连接到 PS 上。
    的头像 发表于 07-22 17:41 1431次阅读
    AMD Versal自适应SoC上的级联模式示例

    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

    STM32外部中断简介

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

    中断系统的应用举例 (源程序)

    中断系统的应用举例 (源程序) 6.4.1  外部中断举例【例6-3】使用外部中断0,当每次响应中断时,P1口依次
    发表于 02-23 11:59 2537次阅读
    <b class='flag-5'>中断</b>系统的应用举例 (<b class='flag-5'>含</b>源程序)

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

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

    关于MPSoC的中断处理介绍

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

    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通信编程

    STM32中断与DMA通信编程

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

    STM32入门编程总结4 (中断+串口)

    。GPIO的中断,EXTI (External interrupt/event controller)外部中断/事件(event)控制器,外部中断
    的头像 发表于 02-19 22:12 4641次阅读
    STM32入门编程总结4 (<b class='flag-5'>中断</b>+串口)

    AMD Xilinx AXI Interrupt Controller中断优先级

    AXI Interrupt Controller支持中断优先级。 在Vivado Block Design中, bit-0连接的中断优先级最
    的头像 发表于 07-11 17:03 1685次阅读
    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 2024次阅读
    PCIe控制器(FPGA或ASIC),PCIe-<b class='flag-5'>AXI-Controller</b>