本发明属于计算机系统领域,尤其涉及一种基于fpga的中断管理方法。
背景技术:
cpu对事件的中断处理方式具有很高的实时性,但常规的cpu中断处理电路在中断频繁发生时容易产生丢失的问题,同时频繁地进出中断消耗了大量的cpu时间,侵占主程序运行时间,从而影响了系统的可靠性和效率。
技术实现要素:
本发明旨在解决上述问题,提供一种在fpga中对中断进行缓冲及处理,从而使得cpu能够对中断进行高效和无遗漏响应的中断管理方法。
本发明所述基于fpga的中断管理方法,将中断信息存储在fpga的fifo中;cpu通过读取fifo中的内容获知中断信息,并进行中断处理。使每一类中断信号被存储在fpga的对应的fifo中,cpu通过读取该fifo中的内容获知中断信息,并进行中断处理。由于fifo具有极高的存取速度和缓冲能力,该方法避免了当中断频繁发生时,由于cpu响应不及时而丢失中断,同时也减少cpu进出中断的次数,降低了程序的开销,提高了cpu的运行效率。
进一步,本发明所述基于fpga的中断管理方法,包括如下步骤:
1)在fpga内部为每一种中断建立一个独立对应的fifo;
2)当任意一种中断发生时,通过外部中断信号的边沿将中断状态及发生的时刻写入与该中断对应的fifo;
3)当任意一个fifo非空时,fpga向cpu输出中断信号;
4)cpu收到中断信号后进入中断处理程序。
进一步,本发明所述基于fpga的中断管理方法,步骤4)所述中断处理程度的具体过程为:先查询各个fifo是否为空;若不为空,说明该fifo中存储有中断信息;cpu先读取优先级最高的中断所对应的fifo,并根据其中的中断状态信息及中断发生时间处理中断;若该fifo仍然非空则继续读取直到该fifo为空;然后读取优先级次之的fifo并处理中断直至所有fifo均为空。
本发明所述基于fpga的中断管理方法,在fpga中对中断进行缓冲及处理,从而使得cpu能够对中断进行高效和无遗漏响应,能够避免cpu由于处理中断不及时而产生的丢失中断问题,降低cpu进入中断的次数从而提高cpu运行的效率;且可以准确记录高速、并发的中断时间及信息,同时提高cpu对外部时间的响应。
附图说明
图1为本发明所述基于fpga的中断管理方法原理框图。
具体实施方式
下面通过附图及实施例对本发明所述基于fpga的中断管理方法进行详细说明。
本发明所述基于fpga的中断管理方法,包括如下步骤:
1)在fpga内部为每一种中断建立一个独立对应的fifo;
2)当任意一种中断发生时,通过外部中断信号的边沿将中断状态及发生的时刻写入与该中断对应的fifo;
3)当任意一个fifo非空时,fpga向cpu输出中断信号;
4)cpu收到中断信号后进入中断处理程序。
步骤4)所述中断处理程度的具体过程为:先查询各个fifo是否为空;若不为空,说明该fifo中存储有中断信息;cpu先读取优先级最高的中断所对应的fifo,并根据其中的中断状态信息及中断发生时间处理中断;若该fifo仍然非空则继续读取直到该fifo为空;然后读取优先级次之的fifo并处理中断直至所有fifo均为空。
如图1所示,为每一类外部中断在fpga中建立一个独立的fifo;外部中断不直接输入cpu,而是输入fpga处理;每一类中断的发生时间和状态通过fifo的输入数据总线,在中断发生时刻被写入对应的fifo;当有fifo为非空状态时,fpga产生中断并通知cpu;cpu接收到中断信号后进入中断,并按照优先级先读取高优先级中断对应fifo中的中断信息并处理中断,直至所有fifo全部为空后退出中断。
1.一种基于fpga的中断管理方法,其特征在于:将中断信息存储在fpga的fifo中;cpu通过读取fifo中的内容获知中断信息,并进行中断处理。
2.根据权利要求1所述基于fpga的中断管理方法,其特征在于包括如下具体步骤:
1)在fpga内部为每一类中断建立一个独立对应的fifo;
2)当任意一类中断发生时,通过外部中断信号的边沿将中断状态及发生的时刻写入与该中断对应的fifo;
3)当任意一个fifo非空时,fpga向cpu输出中断信号;
4)cpu收到中断信号后进入中断处理程序。
3.根据权利要求1所述基于fpga的中断管理方法,其特征在于:步骤4)所述中断处理程序的具体过程为:先查询各个fifo是否为空;若不为空,说明该fifo中存储有中断信息;cpu先读取优先级最高的中断所对应的fifo,并根据其中的中断状态信息及中断发生时间处理中断;若该fifo仍然非空则继续读取直到该fifo为空;然后读取优先级次之的fifo并处理中断直至所有fifo均为空。