一种在fpga中实现的多中断均衡管理方法

文档序号:6386264阅读:292来源:国知局
专利名称:一种在fpga中实现的多中断均衡管理方法
技术领域
本发明涉及一种在FPGA中实现的多中断均衡管理方法。
背景技术
FPGA又称现场可编程门阵列。它是一种可编程逻辑器件,是作为专用集成电路领 域中的一种半定制电路而出现的。既解决了定制电路的不足,又克服了原有可编程器件门 电路有限的缺点。FPGA具有可重复修改设计、运行速度快的显著优点。它一般采用硬件描 述语言(verilog或者VHDL)完成电路的设计,经过专用工具的综合和布局布线,形成二进 制文件。生产的二进制文件烧录至FPGA上以后,上电即可自动运行。
由于FPGA采用软件编程的方法来实现硬件电路设计,所以采用FPGA来设计电路, 具有非常大的灵活性。对于一个特定的功能,采用FPGA实现相比于采用专用处理器上的软 件来实现,最大的优势在于速度。采用FPGA实现的功能电路,可以充分发挥出并行工作的 优势,且响应速度可达到10纳秒以下。而采用软件来实现的功能,只能串行的工作,且响应 速度一般在几百微妙甚至毫秒级。所以,在现代电子系统设计中,FPGA应用的越来越多。
在基于FPGA的应用系统中,有时候会利用FPGA来管理多个外部中断。传统的管 理方法是采用基于优先级轮询的方法,对各个中断安排固定的优先级,依次进行轮询。这种 方法稳定可靠,但是对于一些需要对外部事件及时响应的系统并不合适,可能会因为中断 处理的不均衡使得外部中断不能被及时处理,造成外部数据丢失或者系统故障。本发明的 提出就是为了解决这一问题,使得相同优先级的多个外部中断能及时被处理,避免了因为 中断响应不均衡带来的数据出错或者系统故障
发明内容
本发明的目的在于提供一种在FPGA中实现的多中断均衡管理方法,其使得相同优先 级的多个外部中断能及时被处理,避免了因为中断响应不均衡带来的数据出错或者系统故障。
本发明的技术解决方案是一种在FPGA中实现的多中断均衡管理方法,其特殊之处在于本方法依赖于在FPGA中实现的几个单元电路共同协作来实现;这几个单元电路包括 中断侦测单元、中断消息队列、中断响应处理单元、总线开关和数据缓冲区;其中中断侦测单元完成外部中断信号的检测和通道号的锁存;中断消息队列用来存储外部中断通道号,确保按照中断先来先处理的原则进行响应; 中断响应处理单元负责执行具体的中断任务;总线开关负责把中断响应处理单元的总线和被响应的通道总线进行连接;数据缓冲区用来存放中断响应处理单元执行中断处理任务时从外部总线读取的数据。
上述在FPGA中实现的多中断均衡管理方法,其特征在于具体地O中断侦测单元负责外部中断信号的检测和记录,中断消息队列存放外部中断的通道信息;2)当中断侦测单元检测到外部任意一个通道的中断信号后,向中断消息队列中存入当 前的通道号;3)在存放通道号时,按照先来先存放的原则顺序进行,确保准确的记录中断发生的先 后顺序;4)在向中断响应处理单元传递消息的时候,该消息队列按照先进先出的原则,确保先 发生的中断先处理;5)中断响应处理单元执行具体的中断任务处理,根据不同的应用场合可设计不同的功 能,对于本发明所设计的硬件平台,就是读取AD转换中的数据,并写入到数据缓冲区中;6)总线开关根据消息队列传递出来的通道号,进行总线的多路选择切换,确保中断响 应处理单元的数据总线和将要被响应的AD转换通道的数据总线连接。
上述FPGA外接多路AD转换器或多路的串口或多路CAN总线。
本发明具有如下优点1、中断处理速度快。相比于传统的采用软件来处理中断任务,采用FPGA来进行任务的 处理具有更短的响应时间。软件处理中断任务每次都要经过入栈、任务处理和出栈三个过 程,目前通用处理器上这个过程基本都在微秒级,如果在操作系统下进行任务切换时间会 更长。而本发明完全没有入栈和出栈两个过程,并且任务处理完全通过硬件来实现,任务处 理时间可达到纳秒级。这在高实时性系统中是非常有用的。
2、中断响应及时均衡。采用FPGA管理中断任务的传统方法是基于优先级的轮询 方法进行管理,这种方法对每个任务预先排布一个固定的优先级,然后按照这个顺序依次 轮询检查,有中断则处理,没有中断则继续轮询检查。这种方法会造成比较大的轮询时间浪 费。而本发明对中断响应的思路为先来先响应,没有轮询的过程,从而确保中断任务的及时 相应。


图1为本发明所依赖的一种硬件平台示意图。
图2为本发明在FPGA中实现时的系统逻辑框图。
图3为本发明中中断侦测单元的逻辑实现框图。
具体实施方式
为解决现有采用FPGA管理多个相同优先级中断的不均衡问题,本发明以FPGA外 接4路高速AD转换器的硬件平台为例,介绍在FPGA中实现多任务实时管理的方法。这种 管理方法可以推广到其他采用FPGA进行实时多任务管理的场合,比如FPGA外接多路的串 口,FPGA外接多路CAN总线,等等。
参见图1,本发明的实施依赖于一类特定的硬件平台。图1描述了一种FPGA外接 四路高速AD转换器的典型应用。该平台只是本发明的其中一种使用方式,借用该硬件平台 来描述本发明的实施方法。本发明的应用并不局限于图1说描述的硬件平台。
本发明在FPGA中的实施方法参见图2。本发明的实施依赖于五个基本模块中断 侦测单元、中断消息队列、中断响应处理单元、总线开关和数据缓冲区。
中断侦测单元完成外部中断的检测,并把对应的通道号锁存到中断消息队列。参 见图3,每个中断源对应一个同步器和一个判决器。同步器电路采用二级D触发器进行信号 的同步,以消除信号在跨时钟域时的信号亚稳态问题,确保信号被可靠采样。锁存器电路用 来锁存当前的中断信号,传递给通道记忆电路。当外部中断信号是一个脉冲信号时,通过锁 存器后,会变成一个电平信号,确保中断信号不会被遗漏采样。通道判决记忆电路负责对各 个锁存器所锁存的中断信号进行判断,对有效信号对应的通道号进行记录,写入到中断消 息队列中。
中断消息队列主要由一个FIFO来实现。各个发出中断信号的通道号被锁存后,按 照发生的先后次序被写入到FIFO中,以确保在执行中断任务时,能按照先来先处理的原则 进行。
总线开关采用一组多路选择器来实现,该多路选择器的选择输入信号就是中断消 息队列输出的通道号,根据该通道号,在总线开关内部进行总线切换,把中断响应处理单元 的总线和通道号对应的总线进行连接。
中断响应处理单元负责执行具体的中断任务处理功能,该任务功能通过状态机来 实现。对本发明所提及的硬件平台而言,就是从AD转换器中读取转换后的数据,并存放在 数据缓冲区中制定的存储区域中。根据不同的应用系统,具体任务可能有所不同,但任务处 理流程基本都可抽象为数据的外部接口读取和内部的存储管理两大状态。
权利要求
1.一种在FPGA中实现的多中断均衡管理方法,其特征在于 本方法依赖于在FPGA中实现的几个单元电路共同协作来实现;这几个单元电路包括中断侦测单元、中断消息队列、中断响应处理单元、总线开关和数据缓冲区; 其中 中断侦测单元完成外部中断信号的检测和通道号的锁存; 中断消息队列用来存储外部中断通道号,确保按照中断先来先处理的原则进行响应; 中断响应处理单元负责执行具体的中断任务; 总线开关负责把中断响应处理单元的总线和被响应的通道总线进行连接; 数据缓冲区用来存放中断响应处理单元执行中断处理任务时从外部总线读取的数据。
2.根据权利要求1或2所述在FPGA中实现的多中断均衡管理方法,其特征在于当FPGA外接多路AD转换器时,具体地 O中断侦测单元负责外部中断信号的检测和记录,中断消息队列存放外部中断的通道信息; 2)当中断侦测单元检测到外部任意一个通道的中断信号后,向中断消息队列中存入当前的通道号; 3)在存放通道号时,按照先来先存放的原则顺序进行,确保准确的记录中断发生的先后顺序; 4)在向中断响应处理单元传递消息的时候,该消息队列按照先进先出的原则,确保先发生的中断先处理; 5)中断响应处理单元执行具体的中断任务处理,根据不同的应用场合可设计不同的功能,对于本发明所设计的硬件平台,就是读取AD转换中的数据,并写入到数据缓冲区中; 6)总线开关根据消息队列传递出来的通道号,进行总线的多路选择切换,确保中断响应处理单元的数据总线和将要被响应的AD转换通道的数据总线连接。
全文摘要
一种在FPGA中实现的多中断均衡管理方法,依赖于在FPGA中实现的几个单元电路共同协作来实现;这几个单元电路包括中断侦测单元、中断消息队列、中断响应处理单元、总线开关和数据缓冲区;其中,中断侦测单元完成外部中断信号的检测和通道号的锁存;中断消息队列用来存储外部中断通道号,确保按照中断先来先处理的原则进行响应;中断响应处理单元负责执行具体的中断任务;总线开关负责把中断响应处理单元的总线和被响应的通道总线进行连接;数据缓冲区用来存放中断响应处理单元执行中断处理任务时从外部总线读取的数据。本发明使得相同优先级的多个外部中断能及时被处理,避免了因为中断响应不均衡带来的数据出错或者系统故障。
文档编号G06F9/48GK103049323SQ20121058901
公开日2013年4月17日 申请日期2012年12月31日 优先权日2012年12月31日
发明者刘升, 崔建杰 申请人:西安奇维科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1