一种提高频谱分析仪扫描速度的块读取方法与流程

文档序号:17319775发布日期:2019-04-05 21:28阅读:712来源:国知局
一种提高频谱分析仪扫描速度的块读取方法与流程

本发明涉及测试技术领域,特别涉及一种提高频谱分析仪扫描速度的块读取方法。



背景技术:

手持式频谱分析仪是通信、雷达、导航、信号监测等领域现场测试中必不可少的测试仪器。扫描速度是手持式频谱分析仪的一项重要性能指标,主cpu从fpga芯片读取数据的速度是影响整机扫描速度的一个重要方面。

现有手持式频谱分析仪的数据读取方式都是采用逐点读取。整个数据读取系统是由应用程序层、操作系统的驱动程序i/o接口层和fpga芯片内存组成,通过三者之间的数据传递将fpga芯片中的数据读取到应用程序层,该过程的流程图如图1所示。在该过程中,应用程序层首先向驱动程序发送数据的读取地址,由操作系统的驱动i/o接口向fpga芯片内存发出读取内存的指令并寻址;进而将fpga该点的数据指针传回驱动程序i/o接口;最后驱动程序将读取到的数据指针传回应用程序层。循环此过程,完成一个波段中所有采样点的数据读取。在整个数据传递过程中,耗费的时间主要在于应用程序层与操作系统中驱动程序i/o接口的链接。而每次读取一个采样点信息时,应用程序层都会与操作系统的驱动i/o接口进行链接。在手持式频谱分析仪中,其扫描点数一般都至少是数百个或数千个,逐点传输的方式随着传输点数的增加所需要的传输时间会以指数级增加,达到数十上百毫秒。

如图2所示,传统的fpga芯片数据读取实现流程如下:

步骤(1),应用程序需要获取fpga芯片中的数据,首先应用程序需要获取某一波段的当前采样点数据在内存中的物理地址,并发送该数据的地址;

步骤(2),操作系统驱动程序向应用程序提供了一组标准接口,该接口接收应用程序发出的地址读取指令并发送读取指令;

步骤(3),应用程序链接到操作系统的接口,在驱动程序中读取fpga芯片中该采样点的数据信息;

步骤(4),将fpga芯片中读取数据指针回传到应用程序;

步骤(5),重复步骤(2)操作,直至该波段所有采样点完成读取操作;

步骤(6),应用程序对读取的数据进行处理,将返回的该波段数据信息转换成屏幕坐标信息并绘制显示。

现有技术在fpga芯片的数据读取过程中通常使用逐点读取的方式,主cpu每次读取fpga芯片中的一个采样点数据,每执行一次读取操作,应用程序都将进行应用程序发送读取地址、操作系统驱动接收指令、发送读取指令、回传数据指针几个步骤。其中应用程序层与操作系统驱动i/o接口的链接过程的耗时,约占整个读取过程的70%。fpag芯片中存储的数据一般是数以千计的,上述步骤所执行的次数与fpga芯片读取所有采样点数据的个数是相同的。随着读取点数的增加,整个读取速度的时间消耗增加明显,这严重的影响了整机的扫描速度。



技术实现要素:

为解决上述现有技术中的不足,本发明提出一种提高频谱分析仪扫描速度的块读取方法。

本发明的技术方案是这样实现的:

一种提高频谱分析仪扫描速度的块读取方法,从fpga中读出每个波段的所有数据再更新。

可选地,所述方法包括以下步骤:

步骤(a),应用程序获取数据在内存中的物理地址,并发送读取数据块的起始地址、和该波段的数据个数,获取fpga芯片中的数据;

步骤(b),操作系统驱动程序向应用程序提供了一组标准接口,该接口接收应用程序发出的地址读取指令并发送读取指令;

步骤(c),应用程序链接到操作系统的接口,在驱动程序中循环读取fpga芯片中该波段数所有采样点的数据;

步骤(d),将fpga芯片中读取数据指针回传到应用程序;

步骤(e),应用程序对读取的数据块进行处理,将返回的数据信息转换成屏幕坐标信息并绘制显示。

本发明的有益效果是:

应用程序读取fpag芯片中的数据时,应用程序与操作系统的驱动程序建立一次链接,即可读出某波段所有数据点,将从fpga到主cpu的数据传输方式由逐点传递的方式改为块传递的方式,从而能够极大提高频谱分析仪的扫描速度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为传统的应用程序读取fpga芯片数据的流程图;

图2为传统方法读取fpga芯片数据过程的流程图;

图3为本发明一种提高频谱分析仪扫描速度的块读取方法的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

现有频谱分析仪的数据读取方式都是采用逐点读取的方式,在整个数据传递过程中,耗费的时间主要在于应用程序层与操作系统中驱动程序i/o接口的链接。而每次读取一个采样点信息时,应用程序层都会与操作系统的驱动i/o接口进行链接。

由于大量的时间损耗集中于应用程序层与操作系统驱动i/o接口的链接过程,优化应用程序读取fpga芯片中数据的效率是提升频谱扫描仪扫描速度的关键环节。若主cpu每执行一次读取操作可以从fpga芯片中读取一组数据,就会使得寻址、读取、回传指针的等步骤的执行次数得到骤减,从而提升扫描速度和效率。

本发明提出了一种提高频谱分析仪扫描速度的块读取方法,将以前每个波段单点从fpga中读数直接更新数据,变为一次性从fpga中读出每个波段的所有数据再更新,这样就大大提高了主cpu读取fpga芯片中数据的效率,减少了操作系统与fpag之间交互次数。

如图3所示,本发明的方法包括以下步骤:

步骤(a),应用程序获取数据在内存中的物理地址,并发送读取数据块的起始地址、和该波段的数据个数,获取fpga芯片中的数据;

步骤(b),操作系统驱动程序向应用程序提供了一组标准接口,该接口接收应用程序发出的地址读取指令并发送读取指令;

步骤(c),应用程序链接到操作系统的接口,在驱动程序中循环读取fpga芯片中该波段数所有采样点的数据;

步骤(d),将fpga芯片中读取数据指针回传到应用程序;

步骤(e),应用程序对读取的数据块进行处理,将返回的数据信息转换成屏幕坐标信息并绘制显示。

采用上述可选实施例,应用程序读取fpag芯片中的数据时,应用程序与操作系统的驱动程序建立一次链接,即可读出某波段所有数据点,将从fpga到主cpu的数据传输方式由逐点传递的方式改为块传递的方式,从而能够极大提高频谱分析仪的扫描速度。

块读取与逐点读取的时间效率对比如表1所示,以4001个采样点为例,本发明提出的块读取方法使得时间消耗从之前的127.92毫秒缩短到12.08毫秒,扫描速度提高明显。

表1

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1