0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

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

XILINX開發(fā)者社區(qū) ? 來源:XILINX開發(fā)者社區(qū) ? 作者:XILINX開發(fā)者社區(qū) ? 2022-08-24 09:21 ? 次閱讀

本文主要講解在 PL 中從 IP 核到 PS 之間需要完成含超 16 次中斷的布線的情況下,該如何使用 AXI Interrupt Controller (INTC)。其中使用的AMD Xilinx外設包括 Vivado 設計中的 GPIO、IIC、UART 以及定時器
設計示例是使用 Vivado 2020.1 版本,以 ZCU106 評估板為目標而創(chuàng)建的。中斷在 PetaLinux 2020.1 上經(jīng)過測試,此處隨附了設計 Tcl 和 system-user.dtsi 文件。

AXI GPIO:
General Purpose Input/output (GPIO) 核是支持輕松訪問器件內(nèi)部屬性的接口。該核還可用于控制外部器件的行為。


中斷:
中斷控制可從 GPIO 通道獲取中斷狀態(tài),并向主機生成中斷。在 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) 核可將來自外設器件的多個中斷輸入集中到系統(tǒng)處理器的單一中斷輸出。使用寄存器來檢查、啟用和確認中斷。

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

此示例的主要目的是將超過 16 個中斷連接到 PS。AXI INTC 核可支持我們滿足此需求。使用單一 AXI INTC 塊的情況下最多可連接 32 個中斷,并且您還可使用級聯(lián)。(我們可能會通過另一篇博文來提供此操作示例。)

在下文描述 Concat IP 的多個圖例中,您可以看到中斷的連接方式。

塊設計:
由于設計太大了,我并沒有添加完整設計的示意圖,因此下面會逐一展示必要的連接示意圖。

Concat IP:
Concat IP 核可提供相應機制來將不同寬度的總線信號組合到單一總線內(nèi)。

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

從 IP catalog(IP 目錄)添加 Concat 塊,然后雙擊 IP(如下所示)以打開“Re-customize IP”(重新自定義 IP)對話框。

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

將“Number of Ports”(端口數(shù))參數(shù)設置為期望的輸入端口數(shù)。在此示例中,所選數(shù)量為 18。
完成自定義 IP 后,結(jié)果如下所示,第 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

請驗證設計并遵循其余步驟進行操作以生成比特流。導出硬件,用于構(gòu)建 PetaLinux 鏡像。

PetaLinux:
內(nèi)核配置:
在 menuconfig 中啟用以下選項。默認情況下,這些選項均已啟用,但您應核實其狀態(tài),以防萬一。

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

向設備樹添加按鈕:

按鈕僅可用于 Input GPIO 應用。
創(chuàng)建的每個子節(jié)點均可控制 GPIO 的單個位。在 dts 文件中的“gpio-keys”鍵節(jié)點下,根據(jù)設計,為按鈕 (Push Buttons) 創(chuàng)建含如下名稱的子節(jié)點:

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

完成此操作后,請啟動 Linux。您可在 cat /proc/interrupts 中看到按鈕 SW15 到 SW18 的標簽

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

隨機按下按鈕后,觸發(fā)器計數(shù)會按如下所示方式增加:

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

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    8667

    瀏覽量

    151515
  • Xilinx
    +關注

    關注

    71

    文章

    2168

    瀏覽量

    121772
  • 定時器
    +關注

    關注

    23

    文章

    3254

    瀏覽量

    115069

原文標題:開發(fā)者分享|如何使用 AXI Interrupt Controller 處理超過 16 次中斷

文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發(fā)者社區(qū)】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    S5PV210中斷配置詳解

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

    S5PV210中斷配置

    [table][tr][td]The interrupt controller in S5PV210 is composed of four Vectored Interrupt
    發(fā)表于 07-09 01:09

    什么會導致VDMA(AXI視頻直接存儲器訪問)的S2MM中的幀計數(shù)器中斷?

    我使用VDMA,AXI互連器和DDR3進行了設計,以實現(xiàn)視頻幀緩沖。我遇到了一個問題,即在完成第一幀之后,VDMA卡在第二幀的開頭。我通過AXI lite讀取了VDMA的寄存器來檢查狀態(tài):34h
    發(fā)表于 03-14 15:28

    STM32外部中斷簡介

    /事件控制器(External Interrupt/Event Controller,EXTI)和各個外設中斷控制器部分構(gòu)成。我們通過外部中斷/事件線路映射。將IO端口映射到
    發(fā)表于 08-16 07:46

    中斷系統(tǒng)的應用舉例 (源程序)

    中斷系統(tǒng)的應用舉例 (源程序) 6.4.1  外部中斷舉例【例6-3】使用外部中斷0,當每次響應中斷時,P1口依次
    發(fā)表于 02-23 11:59 ?2309次閱讀
    <b class='flag-5'>中斷</b>系統(tǒng)的應用舉例 (<b class='flag-5'>含</b>源程序)

    單片機C51中interrupt和using應該如何使用詳細方法說明

     interrupt 0 指明是外部中斷0; interrupt 1 指明是定時器中斷0; interrupt 2 指明是外部
    發(fā)表于 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.
    的頭像 發(fā)表于 05-07 15:34 ?4039次閱讀

    C51 interrupt 中斷

    引起INT1外部中斷1,中斷請求信號由P3.3輸入,低電平或下降沿引起T0定時器/計數(shù)器0中斷,由T0計數(shù)器記滿回0引起T1定時器/計數(shù)器1中斷,由T1計數(shù)器記滿回0引起RX、TX串行
    發(fā)表于 11-22 14:36 ?0次下載
    C51 <b class='flag-5'>interrupt</b>  <b class='flag-5'>中斷</b>

    STM32 中斷原理及外部中斷的實現(xiàn)

    NVIC 中斷配置Nested Vectored Interrupt Controller,嵌套向量中斷控制器。CM3支持256個中斷
    發(fā)表于 11-23 18:06 ?1次下載
    STM32 <b class='flag-5'>中斷</b>原理及外部<b class='flag-5'>中斷</b>的實現(xiàn)

    STM32中斷與DMA通信編程

    一、STM32中斷使用NVIC 中斷優(yōu)先級管理Nested Vectored Interrupt Controller,嵌套向量中斷控制器。
    發(fā)表于 12-06 20:36 ?0次下載
    STM32<b class='flag-5'>中斷</b>與DMA通信編程

    STM32中斷與DMA通信編程

    一、STM32中斷使用NVIC 中斷優(yōu)先級管理Nested Vectored Interrupt Controller,嵌套向量中斷控制器。
    發(fā)表于 12-07 10:51 ?7次下載
    STM32<b class='flag-5'>中斷</b>與DMA通信編程

    STM32中斷與DMA通信編程

    一、STM32中斷使用NVIC 中斷優(yōu)先級管理Nested Vectored Interrupt Controller,嵌套向量中斷控制器。
    發(fā)表于 01-14 15:37 ?1次下載
    STM32<b class='flag-5'>中斷</b>與DMA通信編程

    STM32入門編程總結(jié)4 (中斷+串口)

    。GPIO的中斷,EXTI?(External interrupt/event controller)外部中斷/事件(event)控制器,外部中斷
    的頭像 發(fā)表于 02-19 22:12 ?4087次閱讀
    STM32入門編程總結(jié)4 (<b class='flag-5'>中斷</b>+串口)

    AMD Xilinx AXI Interrupt Controller中斷優(yōu)先級

    AXI Interrupt Controller支持中斷優(yōu)先級。 在Vivado Block Design中, bit-0連接的中斷優(yōu)先級最
    的頭像 發(fā)表于 07-11 17:03 ?1001次閱讀
    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>優(yōu)先級

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

    PCIe-AXI-Controller兼容PCI Express Base Specification Revision 3.1,實現(xiàn)PCIe PHY Layer,Data Link Layer以及
    的頭像 發(fā)表于 02-21 15:15 ?965次閱讀
    PCIe控制器(FPGA或ASIC),PCIe-<b class='flag-5'>AXI-Controller</b>