精华内容
下载资源
问答
  • 中断系统流程图
    千次阅读
    2020-12-20 04:41:20

    教学方法、实施步骤

    时间分配

    教学手段

    5

    ×

    2

    板书

    计算机

    投影仪

    多媒体课件等

    40

    ×

    2

    3

    ×

    2

    2

    ×

    2

    讲授内容:

    6. 1

    输入

    /

    输出数据的传输控制方式

    一、输入

    /

    输出的一般概念

    1

    引言

    输入

    /

    输出是微机系统与外部设备进行信息交换的过程。输入

    /

    输出设备称

    为外部设备,与存储器相比,外部设备有其本身的特点,存储器较为标准,而

    外部设备则比较复杂,性能的离散性比较大,不同的外部设备,其结构方式不

    同,有机械式、电动式、电子式等;输入

    /

    输出的信号类型也不相同,有数字

    信号,也有模拟信号;有电信号,也有非电信号;输入

    /

    输出信息的速率也相

    差很大。因此,

    CPU

    与外部设备之间的信息交换技术比较复杂。

    CPU

    与外设之间的信息交换,是通过它们之间接口电路中的

    I/O

    端口来进

    行的,由于同一个外部设备与

    CPU

    之间所要传送的信息类型不同,方向不同,

    作用也不一样(例如数据信息、状态信息、控制信息、输入

    /

    输出等)

    ,所以接

    口电路中可以设置多个端口来分别处理这些不同的信息。

    更多相关内容
  • 最重要! 共八个中断端口:外部中断(0 1 2 3)+定时器(0 1 2 )+串口 8051或8052等较低级单片机有5个:外部中断(0 1)定时器(0 1)+串口 优先级问题: 外部中断优先级排列:(从上到下,优先级依次...

     

     

     

    响应处 若有多个中断响应,需要先执行中断优先级高的

    中断嵌套:A程序执行,中断服务程序B打断A,执行B,执行B时又有中断服务程序C打断C,先执行C,再执行B,再执行A

    下图最重要!

    共八个中断端口:外部中断(0 1 2 3)+定时器(0 1 2 )+串口

    8051或8052等较低级单片机有5个:外部中断(0 1)定时器(0 1)+串口

    优先级问题:

    外部中断优先级排列:(从上到下,优先级依次降低)

    INTO(外部中断0)>TO(定时器0)>INT1(外部中断1)>T1(定时器1)>RX>TX(RX+TX组成串口)

    若通过寄存器改变默认(上述优先级),形成两个优先级相同,则也需要比较默认优先级高低来执行

    INT0,连接P3^2管脚,通过寄存器生效,选择是下降沿触发还是低电平触发,

    将INTO设置成0,则非后为1,则为低电平触发。将INTO设置成1,则选择下降沿触发,不管选择哪一个,都作用于IEO,IEO为中断标志,自动生成1。将外部势能中断EXO打开为1,再打开全局中断EA为1。IP默认选择之后,传递给中断入口

    INT1,连接P3^3管脚,....

    TO,连接P3^4管脚,寄存器16位,范围0~65535,若是65536,则溢出,TFO自动置1,ETO置哦,EA连接,PXO默认选择,传递给中断入口

    T1,连接P3^5管脚,......

    RX+TX,对应P3^0+P3^1功能,传递给RI和TI,经过或门(有一个为1就为1),传递给ES置1,PS置1,传递给中断入口

    注:需要打开总中断,否则任意一个中断都无法工作

    (上一张图EX部分为寄存器)

    EA为总中断,ES为串行口中断允许位,......

    已介绍过,可跳过

     

    注:编程时,中断号对应的中断源程序要背会,如0对应INTO......不能更改,不能记错

     

    解释:中断请求+中断代码+总中断打开

     

    进入中断需要interrupt关键字,不能写错.....0对应外部中断0,不能写错 using 1可省略

     

     

     

     

     

     

    展开全文
  • 中断过程的流程图

    千次阅读 2021-11-23 16:37:51
    中断中断 硬件中断软件中断 非屏蔽中断和可屏蔽中断 (2).中断判优 (3).中断响应 (4).中断处理过程 中断隐指令 关中断 保存断点 引出中断服务程序 中断(处理)程序 保存现场和屏蔽字 中断服务程序 开中断 ...

    (1).中断请求

    • 内中断外中断
    • 硬件中断软件中断
    • 非屏蔽中断和可屏蔽中断

    (2).中断判优

    (3).中断响应

    (4).中断处理过程

    • 中断隐指令
      • 关中断
      • 保存断点
      • 引出中断服务程序
    • 中断(处理)程序
      • 保存现场和屏蔽字
      • 中断服务程序
        • 开中断
        • 执行中断服务程序
        • 关中断
      • 恢复现场和屏蔽字
      • 开中断
      • 中断返回
        xmind中断图示
    展开全文
  • PCIe中断方法和系统流程

    千次阅读 2020-12-29 10:02:15
    本发明实施例涉及通信技术领域,尤其涉及一种PCIe中断方法和系统。背景技术:PCIe(Peripheral Component Interconnect Express,高速外围组件互联)是最新的总线和接口标准,这个新标准将全面取代现行的PCI和AGP,...

    本发明实施例涉及通信技术领域,尤其涉及一种PCIe中断方法和系统。

    背景技术:

    PCIe(Peripheral Component Interconnect Express,高速外围组件互联)是最新的总线和接口标准,这个新标准将全面取代现行的PCI和AGP,最终实现总线标准的统一。

    基于引脚的PCI中断也就是INTx中断,经常在几个设备间共享,内核必须调用与该中断相关的每一个中断处理函数,效率比较低。当设备向内存写入数据,然后发起引脚中断时,有可能在CPU接收到中断时,数据还未到达内存(在PCI-PCI桥后的设备更有可能如此)。为了保证数据已达到内存,中断处理程序必须轮询产生该中断的设备的一个寄存器,PCI事务保序规则会确保所有数据达到内存后,寄存器才会返回值。

    PCI的每个功能设备只支持一个基于引脚的中断,驱动常常需要查询设备来确定发生的事件,降低了中断处理的效率,因此在PCIe系统中采用了MSI中断。MSI中断不是共享的,因此不存在INTx中断中共享的问题,使用MSI时,产生中断的写操作不能超过数据写操作,因而当中断产生时,驱动可以确信所有数据已经到达内存。MSI中断是采用向特定地址写入特定数值的方式实现,而且可以支持最多32个中断向量,但MSI中断又存在中断向量号必须连续的约束。为了解决此问题,MSI-X也被提出,与MSI Capability寄存器相比,MSI-X Capability寄存器使用一个数组存放Message Address字段和Message Data字段,而不是将这两个字段放入Capability寄存器中。从而当PCIE设备使用MSI-X机制时,每一个中断请求可以使用独立的Message Address字段和Message Data字段。MSI-X不需要中断向量号连续,而且可支持最多2048个中断向量。不同的处理器对PCIE设备发出的MSI报文的解释并不相同。但是PCIe设备在提交MSI中断请求时,都是向MSI/MSI-X Capability结构中的Message Address的地址写Message Data数据,从而组成一个存储器写TLP,向处理器提交中断请求。

    在实际设计中,驱动所支持的中断类型可能是传统INTx中断、MSI中断或者是MSI-X中断中的一种或多种。基于开发简便的原因,可能硬件逻辑只完成和其匹配的某种中断,而放弃其余2种中断方式。这样就会造成在后续的驱动平台升级过程中可能支持的中断类型发生变化,从而导致底层FPGA开发人员要做相应功能适配来配合软件的升级,从而增加了项目周期和可维护性,也不利于项目的平台化实现。

    技术实现要素:

    本发明实施例提供一种PCIe中断方法和系统,以扩展FPGA对处理器中断的兼容性。

    第一方面,本发明实施例提供了一种PCIe中断方法,FPGA与处理器之间通过PCIe接口实现数据通信,该方法包括:

    接收中断请求;

    获取所述FPGA中已配置的中断类型,其中,所述中断类型包括INTx中断类型、MSI中断类型和MSI-X中断类型中的至少一种;

    根据所述中断类型生成PCIe中断数据,并根据所述中断类型确定所述PCIe接口上所述PCIe中断数据对应的传输接口;

    通过所述传输接口发送所述PCIe中断数据。

    进一步的,在所述接收中断请求的步骤之前,还包括:

    配置所述FPGA的中断类型,并配置所述PCIe接口为全类型模式,其中,所述全类型模式支持所有所述中断类型。

    进一步的,所述根据所述中断类型确定所述PCIe中断数据对应的传输接口的步骤包括:

    若中断类型为MSI-X中断,则确定传输接口为AXI4-S接口;

    若中断类型为MSI中断,则确定传输接口为CFG_INT接口;

    若中断类型为INTx中断,则确定传输接口为CFG_INT接口。

    进一步的,当传输接口为CFG_INT接口时,通过所述传输接口发送所述PCIe中断数据的处理时序包括:INTx中断执行流程和MSI中断执行流程;

    所述INTx中断执行流程包括:

    将CFG_INT接口的cfg_interrupt_assert信号和cfg_interrupt信号置为高电平;

    当监测到CFG_INT接口的cfg_interrupt_rdy信号被CPU置为高电平时,将所述cfg_interrupt信号置为高电平,且将所述cfg_interrupt_assert信号置为低电平;

    当所述cfg_interrupt_rdy信号被CPU置为高电平时,确定所述CPU响应所述中断;

    所述MSI中断执行流程包括:

    将所述CFG_INT接口的cfg_interrupt信号和cfg_interrupt_di信号置为第一标志位;

    在监测到CFG_INT接口的cfg_interrupt_rdy信号被CPU置为高电平时,将所述cfg_interrupt信号和cfg_interrupt_di信号置为第二标志位,作为所述中断请求;

    在所述cfg_interrupt_rdy信号被CPU置为高电平时,确定所述CPU响应所述中断请求。

    进一步的,当传输接口为AXI4-S接口时,通过所述传输接口发送所述PCIe中断数据的处理时序包括:

    将AXI4-S接口的s_axis_tx_tvalid信号置为高电平,s_axis_tx_tdata、s_axis_tx_tkeep、s_axis_tx_tlast信号填充适当数据;

    当监测到AXI4-S接口的s_ais_tx_tready信号被CPU置为高电平时,表明当前传输的数据被接收,当s_axis_tx_tlast置为高电平时,表明是最后一笔中断数据传输;

    当监测到AXI4-S接口的s_ais_tx_tready信号被CPU置为高电平时,表明整个中断数据传输完成,则将s_axis_tx_tvalid、s_axis_tx_tlast、s_axis_tx_tdata、s_axis_tx_tkeep置为低电平。

    第二方面,本发明实施例还提供了一种PCIe中断系统,FPGA与处理器之间通过PCIe接口实现数据通信,该系统包括:中断控制模块和PCIe接口模块;

    所述中断控制模块,用于接收中断请求,获取所述FPGA中已配置的中断类型,根据所述中断类型生成PCIe中断数据,并根据所述中断类型确定所述PCIe接口模块上的传输接口,其中,所述中断类型包括INTx中断类型、MSI中断类型和MSI-X中断类型中的至少一种;

    所述中断控制模块通过所述传输接口发送所述PCIe中断数据。

    进一步的,还包括:

    中断配置模块,用于配置所述FPGA的中断类型;

    所述PCIe接口模块还用于配置所述PCIe接口为全类型模式,其中,所述全类型模式支持所有所述中断类型。

    进一步的,所述中断控制模块还用于:

    当所述中断类型为MSI-X中断时,则确定传输接口为AXI4-S接口;

    当所述中断类型为MSI中断时,则确定传输接口为CFG_INT接口;

    当中断类型为INTx中断时,则确定传输接口为CFG_INT接口。

    进一步的,当传输接口为CFG_INT接口时,通过所述传输接口发送所述PCIe中断数据的处理时序包括:INTx中断执行流程和MSI中断执行流程;

    所述INTx中断执行流程包括:

    将CFG_INT接口的cfg_interrupt_assert信号和cfg_interrupt信号置为高电平;

    当监测到CFG_INT接口的cfg_interrupt_rdy信号被CPU置为高电平时,将所述cfg_interrupt信号置为高电平,且将所述cfg_interrupt_assert信号置为低电平;

    当所述cfg_interrupt_rdy信号被CPU置为高电平时,确定所述CPU响应所述中断;

    所述MSI中断执行流程包括:

    将所述CFG_INT接口的cfg_interrupt信号和cfg_interrupt_di信号置为第一标志位;

    在监测到CFG_INT接口的cfg_interrupt_rdy信号被CPU置为高电平时,将所述cfg_interrupt信号和cfg_interrupt_di信号置为第二标志位,作为所述中断请求;

    在所述cfg_interrupt_rdy信号被CPU置为高电平时,确定所述CPU响应所述中断请求。

    进一步的,当传输接口为AXI4-S接口时,通过所述传输接口发送所述PCIe中断数据的处理时序包括:

    将AXI4-S接口的s_axis_tx_tvalid信号置为高电平,s_axis_tx_tdata、s_axis_tx_tkeep、s_axis_tx_tlast信号填充适当数据;

    当监测到AXI4-S接口的s_ais_tx_tready信号被CPU置为高电平时,表明当前传输的数据被接收,当s_axis_tx_tlast置为高电平时,表明是最后一笔中断数据传输;

    当监测到AXI4-S接口的s_ais_tx_tready信号被CPU置为高电平时,表明整个中断数据传输完成,则将s_axis_tx_tvalid、s_axis_tx_tlast、s_axis_tx_tdata、s_axis_tx_tkeep置为低电平。

    本发明实施例通过接收中断请求;获取FPGA中已配置的中断类型;根据中断类型生成PCIe中断数据,并根据中断类型确定PCIe接口上PCIe中断数据对应的传输接口;通过传输接口发送PCIe中断数据。扩展了FPGA对CPU中断的兼容性。而且每种中断功能都可以独立开发和维护,且相互之间不会产生影响,降低了开发难度,且有助于实现FPGA逻辑平台化建设,也能从底层保证驱动层的平台化建设。

    附图说明

    图1是本发明实施例一中的一种PCIe中断方法的流程图;

    图2是本发明实施例一中的一种PCIe中断系统的结构示意图;

    图3是本发明实施例二中的一种PCIe中断方法的流程图;

    图4是本发明实施例二中的PCIe中断处理时序图;

    图5是本发明实施例二中的PCIe中断处理时序图;

    图6是本发明实施例二中的PCIe中断数据包结构示意图;

    图7是本发明实施例三中的一种PCIe中断系统的结构示意图;

    图8是本发明实施例三中的另一示例的PCIe中断系统的结构示意图。

    具体实施方式

    下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

    实施例一

    图1为本发明实施例一提供的一种PCIe中断方法的流程图,本实施例可适用于PCIe中断的情况,该方法可以由本发明实施例中PCIe中断系统来执行,该系统可采用软件和/或硬件的方式实现。对于一个具备某种功能的系统,其一般会包括CPU处理器,其是响应各种计算处理需求的核心器件。该系统还可能包括各种外围设备,例如键盘、鼠标、显示器、超声探头或存储器等。本发明实施例的方案中,提供了FPGA(Field-Programmable Gate Array,即现场可编程门阵列),其设置在外围设备和处理器CPU之间,辅助外围设备向CPU发起中断请求,也可以为FPGA获取CPU中的数据,向CPU发送中断,要求CPU为自己进行数据处理。FPGA与CPU之间通过PCIe接口实现数据通信。

    如图1所示,该方法具体包括如下步骤:

    S110,接收中断请求。

    该中断请求作为FPGA的内部中断请求,为开始中断数据传输的操作提示。所述普通数据为需要处理器处理的数据。具体过程为:外围设备获取普通数据(若外围设备为超声探头,则普通数据可以为超声波信号),并将数据传输至FPGA,FPGA包括数据传输模块和接收模块。接收模块用于接收外围设备传输的普通数据,数据传输模块用于通过AXI4-S接口将外围设备获取的普通数据发送至内存。内存和处理器属于同一设备,处理器负责运算和处理,内存负责数据交换。在数据传输模块将数据全部传输至内存后,数据传输模块向接收模块发送数据已经全部传输至内存的提示信息,接收模块接收提示信息。本实施例中的中断请求指的是数据传输模块将数据传输至内存,数据传输完成后,接收模块接收到数据传输完成的提示信息,即中断请求。

    S120,获取所述FPGA中已配置的中断类型,其中,所述中断类型包括INTx中断类型、MSI中断类型和MSI-X中断类型中的至少一种。

    其中,所述FPGA中配置的中断类型为所述FPGA根据处理器能够处理的中断类型,选取处理器能够处理的中断类型。若满足处理器能够处理的中断类型的中断类型不止一个,则选取其中最优的中断类型(MSI-X中断类型优于MSI中断类型,MSI中断类型优于INTx中断类型)。其中,所述FPGA中配置的中断类型可以为INTx中断类型和MSI中断类型,也可以为INTx中断类型、MSI中断类型和MSI-X中断类型,还可以为INTx中断类型和MSI-X中断类型,本实施例对此不进行限制。

    S130,根据所述中断类型生成PCIe中断数据,并根据所述中断类型确定所述PCIe接口上所述PCIe中断数据对应的传输接口。

    其中,所述传输接口用于传输中断数据,所述中断数据用于通知处理器普通数据传输完成。由于中断类型不同,相应的PCIe中断数据也不相同,因此需要根据所述中断类型生成相对应的PCIe中断数据。所述中断数据可以为设备存储器PCIe标准定义的信息,也可以为中断向量的地址,本实施例对此不进行限制。不同的中断类型对应的传输接口也不相同,因此需要根据所述中断类型确定所述PCIe接口上所述PCIe中断数据对应的传输接口。例如,如果中断类型为INTx中断类型,则相应的传输接口为CFG_INT接口;如果中断类型为MSI-X中断类型,则相应的传输接口为AXI4-S接口。

    具体的,各种中断类型所对应中断传输接口如下表所示:

    S140,通过所述传输接口发送所述PCIe中断数据。

    处理器接收PCIe中断数据后开始进行中断操作。

    在一个具体的例子中,若外围设备为超声探头,超声探头获取需要处理器处理的超声波信号,将所述超声波信号传输至FPGA,FPGA中的数据传输单元通过AXI4-S接口将超声波信号传输至内存,数据传输完成之后,数据传输单元向接收模块发送数据传输完成的提示信息,也就是向FPGA的接收模块发送中断请求,如图2所示,PCIe中断系统包括中断配置模块和中断处理模块,FPGA接收到超声波信号已经全部传输至内存的信息后,驱动层获取处理器能够处理的中断类型,中断配置模块配置相应的中断类型,中断处理模块根据处理器能够处理的中断类型配置相应的传输接口,将所述中断类型对应的PCIe中断数据通过相应的传输接口发送至PCIe IP核,PCIe IP核将数据发送至处理器中PCIe根控制器。进而实现将处理器中断请求发送至处理器,实现中断操作。PCIe根控制器作为连接CPU/内存和外部设备的枢纽,根控制器在整个PCIe体系结构中处于核心位置,它是I/O层次系统与CPU/内存系统连接的最顶层。一个根控制器可以支持一个或多个PCIe端口。每个端口定义了一个独立的域,每个域由一个单独的终端,或一个包含一个或多个交换机和终端的子系统构成。同时,根据协议规定,根控制器中可以根据具体选择支持不同域间报文路由的功能。

    本实施例的技术方案,通过FPGA接收内部中断请求;获取FPGA中已配置的中断类型;根据中断类型生成PCIe中断数据,并根据中断类型确定PCIe接口上PCIe中断数据对应的传输接口;通过传输接口发送PCIe中断数据。扩展了FPGA对处理器中断的兼容性。而且每种中断功能都可以独立开发和维护,且相互之间不会产生影响,降低了开发难度,且有助于实现FPGA逻辑平台化建设,也能从底层保证驱动层的平台化建设。

    实施例二

    图3为本发明实施例二中的一种PCIe中断方法的流程示意图,在上述实施例的基础上,在所述接收中断请求的步骤之前,还包括:配置所述FPGA的中断类型,并配置所述PCIe接口为全类型模式,其中,所述全类型模式支持所有所述中断类型。

    如图3所示,本实施例的方法具体包括如下步骤:

    S210,配置所述FPGA的中断类型,并配置所述PCIe接口为全类型模式,其中,所述全类型模式支持所有所述中断类型。

    其中,所述FPGA的中断类型可以为INTx中断类型,也可以为MSI中断类型,还可以为MSI-X中断类型。所述FPGA根据CPU能够处理的中断类型配置所述FPGA的中断类型。例如可以是,CPU能够处理的中断类型为INTx中断类型,配置所述FPGA的中断类型为INTx中断类型。

    具体的,所述全类型模式为可以支持INTx中断类型的数据传输,也可以支持MSI中断类型的数据传输,还可以为支持MSI-X中断类型的数据传输。

    具体的,由于所述INTx中断类型、MSI中断类型以及MSI-X中断类型需要的传输接口不同,因此,FPGA如果需要支持所有的中断类型,则需要配置多个传输接口,在不同的中断类型的情况下使用不同的传输接口传输数据。这样就可以保证不论外接设备的中断类型为INTx中断类型、MSI中断类型还是MSI-X中断类型,FPGA都可以根据需要为其提供相应的传输接口。

    S220,接收中断请求。

    具体的,先阐述一下FPGA和CPU之间的数据交换过程,以最常见的FPGA上传数据至DDR(Double Data Rate,双倍速率同步动态随机存储器)为例。当FPGA端想要上传数据至CPU端的主存设备时,为了减轻CPU负担在FPGA侧通常情况下会放入DMU(Direct Memory Unit,直接内存单元)模块,最初时刻DMU处于闲置状态,等待CPU配置DMU模块,其中,配置参数有传输数据长度、目标地址、通道号以及中断使能等信息。FPGA中数据传输模块通过DMA(Direct Memory Access,存储器直接访问)的方式透过PCIe接口将数据上传至CPU端DDR主存,当数据传输模块将数据搬运完成数据传输模块向FPGA中的接收模块发送内部中断请求,FPGA中的接收模块会接收到内部中断请求。

    S230,获取所述FPGA中已配置的中断类型,其中,所述中断类型包括INTx中断类型、MSI中断类型和MSI-X中断类型中的至少一种。

    S240,根据所述中断类型生成PCIe中断数据,并根据所述中断类型确定所述PCIe接口上所述PCIe中断数据对应的传输接口。

    可选的,所述根据所述中断类型确定所述PCIe中断数据对应的传输接口的步骤包括:

    若中断类型为MSI-X中断,则确定传输接口为AXI4-S接口;

    若中断类型为MSI中断,则确定传输接口为CFG_INT接口;

    若中断类型为INTx中断,则确定传输接口为CFG_INT接口。

    MSI中断请求是向Message Address所在的地址写Message Data字段包含的数据。MSI-X中断机制在MSI-X Capablity结构中存放了一个指向一组Message Address和Message Data字段的指针,从而一个PCIe设备可以支持的MSI-X中断请求数目大于32个,而且并不要求中断向量号连续。MSI-X机制使用的这组Message Address和Message Data字段存放在PCIe设备的BAR空间中,而不是在PCIe设备的配置空间中,从而可以由用户决定使用MSI-X中断请求的数目。

    S250,通过所述传输接口发送所述PCIe中断数据。

    具体的,数据搬运完成需要进行Interrupt中断请求处理,MSI-X中断类型对应的中断向量表存在于User Logic,User端只能通过发送含有中断信息的MWr TLP包实现,因此MSI-X中断必须通过操作AXI4-S接口实现。MSI中断类型存放于PCIe Capability Structure中,可以通过发送MWr TLP包或者操作CFG_INT接口来实现。INTx中断类型必须通过操作CFG_INT接口实现。其Interrupt详细处理流程如下:CPU配置中断类型;根据配置类型使能相应模块;在中断请求来到时,被使能的模块执行相应的中断流程;中断执行完成,返回空闲状态,等待下一次中断操作。

    可选的,当传输接口为CFG_INT接口时,通过所述传输接口发送所述PCIe中断数据的处理时序包括:INTx中断执行流程和MSI中断执行流程;

    所述INTx中断执行流程包括:

    将CFG_INT接口的cfg_interrupt_assert信号和cfg_interrupt信号置为高电平;

    当监测到CFG_INT接口的cfg_interrupt_rdy信号被CPU置为高电平时,将所述cfg_interrupt信号置为高电平,且将所述cfg_interrupt_assert信号置为低电平;

    当所述cfg_interrupt_rdy信号被CPU置为高电平时,确定所述CPU响应所述中断;

    具体的,通过配置接口cfg_interrupt和cfg_interrupt_assert来提交中断,当接收到有效中断时将cfg_interrupt_rdy置为有效,表示中断请求被接受。

    具体的,如图4所示,图中2所示位置为INTx中断请求被接收,在时钟输出的上升沿,中断置位信号(cfg_interrupt_assert信号)、中断请求信号(cfg_interrupt信号)以及中断响应信号(cfg_interrupt_rdy信号)为高电平。图中3所示的位置为释放INTx中断请求,在时钟输出的上升沿,中断请求信号(cfg_interrupt信号)为高电平,中断置位信号(cfg_interrupt_assert信号)为低电平以及中断响应信号(cfg_interrupt_rdy信号)为高电平,确定所述CPU响应INTx中断请求。

    所述MSI中断执行流程包括:

    将所述CFG_INT接口的cfg_interrupt信号和cfg_interrupt_di信号置为第一标志位;

    其中,将所述CFG_INT接口的cfg_interrupt信号和cfg_interrupt_di信号置为第一标志位可以为置高cfg_interrupt信号和将cfg_interrupt_di信号置为01h。

    在监测到CFG_INT接口的cfg_interrupt_rdy信号被CPU置为高电平时,将所述cfg_interrupt信号和cfg_interrupt_di信号置为第二标志位,作为所述中断请求;

    其中,将所述cfg_interrupt信号和cfg_interrupt_di信号置为第二标志位可以为置高cfg_interrupt信号和将cfg_interrupt_di信号置为00h。

    在所述cfg_interrupt_rdy信号被CPU置为高电平时,确定所述CPU响应所述中断请求。

    具体的,如图4所示,图中5所示位置为MSI中断请求被接收,在时钟输出的上升沿,CFG_INT接口的中断请求信号(cfg_interrupt信号)为高电平、中断输入数据信号(cfg_interrupt_di信号)为01h以及中断响应信号(cfg_interrupt_rdy信号)为高电平。图中4所示的位置为释放MSI中断请求,在时钟输出的上升沿,CFG_INT接口的中断请求信号(cfg_interrupt信号)为高电平、中断输入数据信号(cfg_interrupt_di信号)为00h以及中断响应信号(cfg_interrupt_rdy信号)为高电平,确定所述CPU响应MSI中断请求。

    可选的,当传输接口为AXI4-S接口时,通过所述传输接口发送所述PCIe中断数据的处理时序包括:

    具体的,ASI4-S遵守标准AXI4-Stream规范,其中的中断地址和中断数据包含在数据包内,都是预先RC配置到FPGA内部模块的。数据包格式需要遵从Xilinx提供的PCIe TLP数据结构。

    将AXI4-S接口的s_axis_tx_tvalid信号置为高电平,s_axis_tx_tdata、s_axis_tx_tkeep、s_axis_tx_tlast信号填充适当数据;

    当监测到AXI4-S接口的s_ais_tx_tready信号被CPU置为高电平时,表明当前传输的数据被接收,当s_axis_tx_tlast置为高电平时,表明是最后一笔中断数据传输;

    当监测到AXI4-S接口的s_ais_tx_tready信号被CPU置为高电平时,表明整个中断数据传输完成,则将s_axis_tx_tvalid、s_axis_tx_tlast、s_axis_tx_tdata、s_axis_tx_tkeep置为低电平。

    具体的,通过AXI4-S接口实现PCIe核与PCIe Root Complex之间数据的传输。

    具体的,如图5所示,图中1所示位置为AXI4-S接口数据传输完成,在时钟输出的上升沿,s_axis_tx_tvalid、s_axis_tx_tlast以及s_axis_tx_tready为高电平,表明传输完成。

    如图6所示,数据包格式遵从Xilinx提供的PCIe TLP数据结构,其中,传送类型字段(TC字段)定义报文的传送类型,TD位表示TLP中的TLP Digest是否有效,EP位表示当前TLP中的数据是否有效,报文模型字段定义报文的模型,报文的有效负载(Length),即需要读取的双字(DW)个数,第一标记由八位组成,决定了发送端能够暂存256个同类型的TLP,应用层需要根据报文的有效负载(Length)及地址(Address),使用完成报文返回相应的数据。

    本实施例的技术方案,通过配置所述FPGA的中断类型,并配置所述PCIe接口为全类型模式,其中,所述全类型模式支持所有所述中断类型。能够保证不管CPU端采用何种类型的CPU(ARM、x86、PowerPC等),也无论其支持哪种类型的中断(INTx、MSI、MSI-X),FPGA侧均可以支持,增强了FPGA对3种中断类型的兼容性,实现了接口的一致性以及CPU和PCIe之间的中断处理标准化,同时,亦可提升FPGA平台建设。

    实施例三

    图7为本发明实施例三的一种PCIe中断系统的结构示意图,所述系统用于执行PCIe中断方法。如图7所示,FPGA与处理器之间通过PCIe接口实现数据通信,所述PCIe中断系统具体包括:中断控制模块310和PCIe接口模块320。

    其中,所述中断控制模块310,用于接收中断请求,获取所述FPGA中已配置的中断类型,根据所述中断类型生成PCIe中断数据,并根据所述中断类型确定所述PCIe接口模块320上的传输接口,其中,所述中断类型包括INTx中断类型、MSI中断类型和MSI-X中断类型中的至少一种;

    所述中断控制模块310通过所述传输接口发送所述PCIe中断数据。

    可选的,如图8所示,还包括:中断配置模块330,用于配置所述FPGA的中断类型。所述PCIe接口模块还用于配置所述PCIe接口为全类型模式,其中,所述全类型模式支持所有所述中断类型。

    可选的,所述中断控制模块还用于:

    当所述中断类型为MSI-X中断时,则确定传输接口为AXI4-S接口;

    当所述中断类型为MSI中断时,则确定传输接口为CFG_INT接口;

    当中断类型为INTx中断时,则确定传输接口为CFG_INT接口。

    可选的,当传输接口为CFG_INT接口时,通过所述传输接口发送所述PCIe中断数据的处理时序包括:INTx中断执行流程和MSI中断执行流程;

    所述INTx中断执行流程包括:

    将CFG_INT接口的cfg_interrupt_assert信号和cfg_interrupt信号置为高电平;

    当监测到CFG_INT接口的cfg_interrupt_rdy信号被CPU置为高电平时,将所述cfg_interrupt信号置为高电平,且将所述cfg_interrupt_assert信号置为低电平;

    当所述cfg_interrupt_rdy信号被CPU置为高电平时,确定所述CPU响应所述中断;

    所述MSI中断执行流程包括:

    将所述CFG_INT接口的cfg_interrupt信号和cfg_interrupt_di信号置为第一标志位;

    在监测到CFG_INT接口的cfg_interrupt_rdy信号被CPU置为高电平时,将所述cfg_interrupt信号和cfg_interrupt_di信号置为第二标志位,作为所述中断请求;

    在所述cfg_interrupt_rdy信号被CPU置为高电平时,确定所述CPU响应所述中断请求。

    可选的,当传输接口为AXI4-S接口时,通过所述传输接口发送所述PCIe中断数据的处理时序包括:

    将AXI4-S接口的s_axis_tx_tvalid信号置为高电平,s_axis_tx_tdata、s_axis_tx_tkeep、s_axis_tx_tlast信号填充适当数据;

    当监测到AXI4-S接口的s_ais_tx_tready信号被CPU置为高电平时,表明当前传输的数据被接收,当s_axis_tx_tlast置为高电平时,表明是最后一笔中断数据传输;

    当监测到AXI4-S接口的s_ais_tx_tready信号被CPU置为高电平时,表明整个中断数据传输完成,则将s_axis_tx_tvalid、s_axis_tx_tlast、s_axis_tx_tdata、s_axis_tx_tkeep置为低电平。

    本实施例的技术方案,通过接收中断请求;获取FPGA中已配置的中断类型;根据中断类型生成PCIe中断数据,并根据中断类型确定PCIe接口上PCIe中断数据对应的传输接口;通过传输接口发送PCIe中断数据。扩展了FPGA的对处理器中断的兼容性。而且每种中断功能都可以独立开发和维护,且相互之间不会产生影响,降低了开发难度,且有助于实现FPGA逻辑平台化建设,也能从底层保证驱动层的平台化建设。

    上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。

    注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

    展开全文
  • 单片机的中断系统 多级中断控制实例
  • 目录硬知识中断系统中断结构中断优先级中断处理 普中51-单核-A2 STC89C52 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 硬知识 选自《STC89C52系列单片机器件手册》 中断系统   ...
  • 在画UML活动时,如何表示在一个过程中中断,转去执行另一个动作呢? 这么说可能有点太抽象,我们举个实际例子: 比如在用户发起订单后,需要用户确认,系统确认库存,用户付款,付款成功等众多流程,涉及多个系统...
  • 中断唤醒系统流程

    千次阅读 2018-07-12 14:05:28
    一般来说,当设备需要唤醒系统的时候,会通过改变interrupt pin电平状态,而SoC会检测到这个变化,将SoC从睡眠中唤醒,该设备通过相关的子系统通知上层应用做出相应的处理。这就是中断唤醒的过程...
  • 51单片机——中断系统结构

    千次阅读 2021-08-28 23:01:50
    本文主要介绍什么是中断、中断的基本概念、中断的处理过程、中断系统的结构和中断系统控制寄存器
  • 中断中断处理流程

    千次阅读 2020-12-20 04:41:20
    1. 中断概念中断是指由于接收到来自外围硬件(相对于中央处理器和内存)的异步信号或来自软件的同步信号,而进行相应的硬件/软件处理。发出这样的信号称为进行中断请求(interrupt request,IRQ)。硬件中断导致处理器...
  • PIE模块复用8个外设中断引脚向CPU申请中断,这些中断被分成12组,每组有一个中断信号向CPU申请中断。例如,PIE第l组复用CPU的中断1(NT1),... 图 典型的PIEICPU响应流程图  一旦PIE控制器有中断产生,相应的中断
  • 8051单片机的中断系统有5个中断请求源,有2优先级.,2为单片机中断系统结构 2 8051单片机中断系统结构 1.5个中断源 5个中断源,按照自然优先级从高到低依次为: 外部中断0 :INT0 定时/计数器0: TF0 外部...
  • 监控系统流程图.doc

    2022-06-28 17:19:41
    ----------------------- 监控系统流程图全文共1页,当前为第1页。 Y N Y N N Y 开始 系统初始化 允许定时器中断 单次转化结束 清转换标志 保存转换结果 转换路数+1 最后一路结束 清路数标志 数据处理 开串口中断 ...
  • 前言: 大家好,今天...一、Linux中断工作流程: 在讲解Linux中断工作流程,我们先来看一下一般的中断工作流程,当你熟悉了一般中断流程,那么Linux中断工作流程就差不多清晰了!中断工作流程:1、cpu工作模式的转...
  • 8086CPU中断响应流程.ppt

    千次阅读 2020-12-24 22:07:34
    ICW4 1 0 0 SFNM BUF M/S AEOI 1 A0 D7 D6 D5 D4 D3 D2 D1 D0 0 标志位 用于8088/ 8086系统 0 正常的完全嵌套方式 1 特殊的完全嵌套方式 (1) SFNM: 规定8259A中断的嵌套方式 (单片使用时,两种方式一样。...
  • 操作系统实验模板,实验环境是linux,实验内容是进程间的软中断通信。
  • F28335中断系统详解及其应用

    千次阅读 2020-08-06 15:36:41
    最近导师的项目中要应用到DSP F28335,由于之前一直对f28335的中断不是很理解,所以花了一点时间仔细看了一下《手把手教你学DSP:基于TMS28335》这本书讲解中断的环节,感觉有一定的收获,在此记录下来。 1 什么是...
  • 中断系统
  • 微机原理学习笔记——中断系统

    千次阅读 2022-02-18 13:27:09
    微机原理学习笔记——中断系统
  • 计算机中的中断处理流程

    千次阅读 2022-03-18 22:15:05
    一、关中断 处理器响应中断后,首先要保护程序的现场状态,在保护现场过程中, CPU 不应该响应更高级中断源的中断请求。否则 ,如果现场保存不完整,在中断服务程序结束后,也就不能正确地恢复并继续执行现行程序。...
  • STM32G4之NVIC中断系统

    千次阅读 2022-01-17 21:01:16
    STM32中断机制NVIC中断系统原理及实现
  • 【单片机】4.2 AT89S52中断系统结构

    千次阅读 2021-12-01 20:02:43
    中断系统结构4-2所示。 中断系统有6个中断请求源(简称中断源)(80c51单片机有5个中断源),两个中断优先级,可实现两级中断服务程序嵌套。 每一中断源可用软件独立控制为允许中断或关中断状态,中断优先级均可...
  • CPU的结构和功能——指令流水及中断系统

    千次阅读 多人点赞 2019-01-01 17:29:31
    处理中断:需要中断系统的支持。 实际上,处理上中给定的结构,还有其他的辅助电路,以及各个部分之间进行连接的互联机构。 (三)CPU的寄存器 1、用户可见的寄存器 (1) 通用寄存器:可用于存放操作数,...
  • 8.4-中断系统

    2022-03-29 22:47:26
    【README】 1.本文总结自bilibili《计算机组成原理(哈...【1】中断系统1)作用:用中断系统实现了外设数据的输入输出; 还可以用于程序调试,计算机系统的异常事件,都可以用中断系统来处理;2)中断因素人为设置的
  • 在计算机中,中断是处理器与异步事件进行信息交换(通信)的唯一手段。所谓异步事件,就是与当前正在做的事情在逻辑上无关的事件。例如,正当老师上课的过程中突然发生了地震,那么地震这个事件就是一个异步事件。因为...
  • 举一个生活例子来说明:小明在厨房干活,流程是烧水——洗菜——切菜——煮饭——煮汤。烧水需要10分钟,当小明加完水点火后,需要等10分钟才能烧完水。此时小明为了提高效率,不应该白白地10分钟,于是小明继续洗菜...
  • 单片机中断系统及其应用.ppt该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 106,471
精华内容 42,588
关键字:

中断系统流程图

友情链接: ForTestEAR.zip