一种fpga数据管理系统的制作方法

文档序号:6515809阅读:137来源:国知局
一种fpga数据管理系统的制作方法
【专利摘要】一种FPGA数据管理系统,包括中断侦测单元、中断消息队列、中断响应处理单元、总线开关和数据缓冲区;所述FPGA外接多路AD转换器;其中,中断侦测单元完成外部中断信号的检测和通道号的锁存;中断消息队列用来存储外部中断通道号,确保按照中断先来先处理的原则进行响应;中断响应处理单元负责执行具体的中断任务;总线开关负责把中断响应处理单元的总线和被响应的通道总线进行连接;数据缓冲区用来存放中断响应处理单元执行中断处理任务时从外部总线读取的数据。本发明使得相同优先级的多个外部中断能及时被处理,避免了因为中断响应不均衡带来的数据出错或者系统故障。
【专利说明】—种FPGA数据管理系统【技术领域】
[0001]本发明涉及一种FPGA数据管理系统。
【背景技术】
[0002]FPGA又称现场可编程门阵列。它是一种可编程逻辑器件,是作为专用集成电路领域中的一种半定制电路而出现的。既解决了定制电路的不足,又克服了原有可编程器件门电路有限的缺点。FPGA具有可重复修改设计、运行速度快的显著优点。它一般采用硬件描述语言(verilog或者VHDL)完成电路的设计,经过专用工具的综合和布局布线,形成二进制文件。生产的二进制文件烧录至FPGA上以后,上电即可自动运行。
[0003]由于FPGA采用软件编程的方法来实现硬件电路设计,所以采用FPGA来设计电路,具有非常大的灵活性。对于一个特定的功能,采用FPGA实现相比于采用专用处理器上的软件来实现,最大的优势在于速度。采用FPGA实现的功能电路,可以充分发挥出并行工作的优势,且响应速度可达到10纳秒以下。而采用软件来实现的功能,只能串行的工作,且响应速度一般在几百微妙甚至毫秒级。所以,在现代电子系统设计中,FPGA应用的越来越多。
[0004]在基于FPGA的应用系统中,有时候会利用FPGA来管理多个外部中断。传统的管理方法是采用基于优先级轮询的方法,对各个中断安排固定的优先级,依次进行轮询。这种方法稳定可靠,但是对于一些需要对外部事件及时响应的系统并不合适,可能会因为中断处理的不均衡使得外部中断不能被及时处理,造成外部数据丢失或者系统故障。本发明的提出就是为了解决这一问题,使得相同优先级的多个外部中断能及时被处理,避免了因为中断响应不均衡带来的数据出错或者系统故障。
[0005]
【发明内容】

本发明的目的在于提供一种FPGA数据管理系统,其使得相同优先级的多个外部中断能及时被处理,避免了因为中断响应不均衡带来的数据出错或者系统故障。
[0006]本发明的技术解决方案是:
一种FPGA数据管理系统,其特殊之处在于:
在FPGA中包括相互连接的中断侦测单元、中断消息队列、中断响应处理单元、总线开关和数据缓冲区;所述中断侦测单元完成外部中断信号的检测和通道号的锁存;所述FPGA外接多路AD转换器;
所述中断消息队列用来存储外部中断通道号,确保按照中断先来先处理的原则进行响
应;
所述中断响应处理单元负责执行具体的中断任务;
所述总线开关负责把中断响应处理单元的总线和被响应的通道总线进行连接;
所述数据缓冲区用来存放中断响应处理单元执行中断处理任务时从外部总线读取的数据。
[0007]上述FPGA数据管理系统,其特征在于:当FPGA外接多路AD转换器时,具体地
1)中断侦测单元负责外部中断信号的检测和记录,中断消息队列存放外部中断的通道信息;
2)当中断侦测单元检测到外部任意一个通道的中断信号后,向中断消息队列中存入当前的通道号;
3)在存放通道号时,按照先来先存放的原则顺序进行,确保准确的记录中断发生的先后顺序;
4)在向中断响应处理单元传递消息的时候,该消息队列按照先进先出的原则,确保先发生的中断先处理;
5)中断响应处理单元执行具体的中断任务处理,根据不同的应用场合可设计不同的功能,对于本发明所设计的硬件平台,就是读取AD转换中的数据,并写入到数据缓冲区中;
6)总线开关根据消息队列传递出来的通道号,进行总线的多路选择切换,确保中断响应处理单元的数据总线和将要被响应的AD转换通道的数据总线连接。
[0008]本发明具有如下优点:
1、中断处理速度快。相比于传统的采用软件来处理中断任务,采用FPGA来进行任务的处理具有更短的响应时间。软件处理中断任务每次都要经过入栈、任务处理和出栈三个过程,目前通用处理器上这个过程基本都在微秒级,如果在操作系统下进行任务切换时间会更长。而本发明完全没有入栈和出栈两个过程,并且任务处理完全通过硬件来实现,任务处理时间可达到纳秒级。这在高实时性系统中是非常有用的。
[0009]2、中断响应及时均衡。采用FPGA管理中断任务的传统方法是基于优先级的轮询方法进行管理,这种方法对每个任务预先排布一个固定的优先级,然后按照这个顺序依次轮询检查,有中断则处理,没有中断则继续轮询检查。这种方法会造成比较大的轮询时间浪费。而本发明对中断响应的思路为先来先响应,没有轮询的过程,从而确保中断任务的及时相应。
【专利附图】

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