专利名称:一种通用fifo接口测试设备和系统的制作方法
技术领域:
本发明涉及一种测试设备,更具体地说,涉及一种可对FIFO接口进行测试的通用FIFO接口测试设备和系统。
背景技术:
在各种类型电子设备的设计中,常常会需要设备带有FIFO接口,但所设计FIFO接口的测试却非常困难。对具有输出功能的FIFO接口,在设备将数据送入FIFO接口后,数据是否被正确送入,目前只能通过示波器或逻辑分析仪进行简单的测试,而对于需传输大量数据的进一步功能、性能测试,只有在与其配套的可对FIFO中的数据进行读取的相关设备研制完成后才能有效地进行,而这种相关的设备开发会对设备的研制进度造成不良的影响;对于具有输入功能的FIFO接口,在与其配套的可将数据写入FIFO中的相关设备研制完成前,对FIFO接口的测试几乎是不可能的。
发明内容
本发明的目的在于提供一种发明基于PC机的通用FIFO接口测试设备和系统。
为了实现上述目的,本发明提供一种通用FIFO接口测试设备,连接于计算机的PCI总线和用户FIFO接口之间,包括一个PCI接口模块,用于与计算机PCI总线的连接;一个用户接口模块,用于与用户FIFO接口的连接;其中,所述用户接口模块包括PCI命令解码单元,用于将PCI命令转换成用户接口模块和用户FIFO接口可识别的命令格式;总线寻址单元,用于寻找存放数据的计算机寄存器的地址;写操作单元,用于将数据写入带FIFO接口的用户设备;读操作单元,用于从用户FIFO接口中读取数据。
所述PCI接口模块为标准PCI接口芯片。
所述PCI接口模块由如下模块组成PCI逻辑核模块,用于与PCI总线的会话;总线配置模块,用于实现PCI总线的配置空间。
所述设备用FPGA芯片实现。
利用上述的FIFO接口测试设备,本发明还提供一种FIFO接口测试系统,用于测试一用户FIFO接口,包括一个计算机与一个前述的FIFO接口测试设备,该FIFO接口测试设备与计算机通过PCI总线连接。所述计算机包括动态写模块,用于向所述FIFO接口测试设备发送一动态写命令;动态读模块,用于向所述FIFO接口测试设备发送一动态读命令;静态写模块,用于向所述FIFO接口测试设备发送一静态写命令;静态读模块,用于向所述FIFO接口测试设备发送一静态读命令;时间间隔设置模块,用于动态读写过程中数据包发送或接收的时间间隔;状态读取模块,用于读取并显示用户FIFO接口的状态;判断模块,用于判断用户FIFO接口的状态是否大于或等于半满。
本发明的FIFO接口测试设备和系统可对用户设备的FIFO接口进行动态和静态的读写测试,且可以对数据发送速度进行调节,从而对用户设备的FIFO接口进行全面的测试。本发明的FIFO接口测试设备和系统具有通用性,不依赖于用户设备,因此可在用户设备的任何研制和设计阶段对其FIFO接口进行测试,提高了用户设备的研制和设计进度。
图1是本发明的FIFO接口测试设备的的应用场景示意图;图2是本发明的FIFO接口测试设备的一个实施例;图3是本发明的FIFO接口测试设备的另一个实施例;图4是采用本发明的FIFO接口测试设备对用户设备的FIFO接口的测试流程图。
具体实施例方式
下面结合附图和具体实施方式
对本发明作进一步详细描述。
如图1所示,本发明的FIFO接口测试设备20在工作时连接于计算机的PCI总线10和用户设备的FIFO接口40之间。该FIFO接口测试设备20最后成形为插卡的形式,从而可直接插在计算机的PCI总线10上。该FIFO接口测试设备20与用户设备的FIFO接口40之间用电缆30进行连接,该电缆30包括数据线、读写控制线和状态线,以便在接口测试设备20和FIFO接口40之间传送数据信号、控制信号和状态信号,这一点将在下文中详细说明。
图2特别是在图2中的虚框中示出了本发明的FIFO接口测试设备20的一个实施例。在该实施例中,测试设备20包括一个PCI接口模块21和一个用户接口模块22。PCI接口模块21可采用现有的标准PCI接口芯片或者Xilinx公司提供的PCIlogicCORE(PCI逻辑核)来实现,用于与PCI总线10的会话和PCI总线10的配置。用户接口模块22主要是用于实现用户接口功能,包括对来自PCI接口模块21的PCI信号进行解码,驱动本设备工作,以及产生本测试设备20与测试目标(即用户设备的FIFO接口40)之间联机的接口信号。PCI接口模块21和用户接口模块22可用FPGA芯片来实现。
如图2所示,本发明接口测试设备20的PCI接口模块21与计算机PCI总线之间通过双向数据线71和双向控制线72通信;PCI接口模块21与用户接口模块22之间通过双向线23通信,以传送命令、数据、控制和/或状态信号;用户接口模块22与用户设备的FIFO接口40之间通过双向数据线31、读写控制线32和状态控制线33,以便在用户接口模块22与用户设备的FIFO接口40之间传送数据信号、读写控制信号和用户状态信号。双向数据线31、读写控制线32和状态控制线33均包含在图1中的电缆30中。
事实上,如本领域的技术人员所熟知的,图2中的PCI接口模块21可用两个功能模块来实现,一个模块用于与PCI总线的会话,另一个模块用于PCI总线的配置。据此,图3特别是在图3中的虚框中示出了本发明的FIFO接口测试设备20的另一个实施例。在该实施例中,测试设备20包括PCI逻辑核模块211、总线配置模块212和用户接口模块22。其中,PCI逻辑核模块211负责与PCI总线10的会话,所有的PCI信号都将被其封装,用户无法直接访问;总线配置模块212用于实现PCI总线的配置空间,其功能是对整个PCI设备进行寄存器配置,其中最为关键的PCI配置空间包括设备ID和发行商的ID,基地址寄存器,PCI配置头等。用PCI逻辑核模块211和总线配置模块212来实现图2中的PCI接口模块21好处是可以将用户接口模块22与PCI逻辑核模块211和总线配置模块212一起用一个FPGA芯片来实现,按照各模块的逻辑功能实现逻辑设计,降低简化设计难度。
图3中实现接口测试设备20的FPGA芯片是利用Xilinx公司已公开的IP核PCI逻辑核(PCI logiCORE)技术,IP核是比较简单的实现现有成熟模块的方法,通过IP核设计的程序一般都得到了较为深入的优化,它能大大简化设计的难度。本发明最终的设计实现,就是使用了IP核,通过对其参数和端口进行配置,实现PCI接口主要逻辑设计。如图3所示,在完成所有FPGA芯片逻辑设计后,通过FPGA配置数据下载接口50,并通过电源模块60加电后,即可构成具有专用功能的集成电路。
如图3所示,本发明接口测试设备20的PCI逻辑核模块211与计算机PCI总线之间通过双向数据线71和双向控制线72通信;PCI逻辑核模块211和总线配置模块212之间单向控制线24通信;PCI逻辑核模块211与用户接口模块22之间通过双向线23通信,以传送命令、数据、控制和/或状态信号;用户接口模块22与用户设备的FIFO接口40之间通过双向数据线31、读写控制线32和状态控制线33,以便在用户接口模块22与用户设备的FIFO接口40之间传送数据信号、读写控制信号和用户状态信号。双向数据线31、读写控制线32和状态控制线33均包含在图1中的电缆30中。
图2和图3中的用户接口模块22用于实现带FIFO的用户接口功能,主要包括对来自PCI接口模块21(图2)或PCI逻辑核模块211(图3)的PCI信号进行解码,驱动本设备20工作;产生本设备20与用户设备的FIFO接口40之间联机的接口信号,包括数据线31、读写控制线32和状态控制线33。
为了实现上述功能,用户接口模块22一般包括以下单元PCI命令解码单元将PCI命令转换成用户接口模块22和用户设备的FIFO接口40能够识别的命令格式;总线寻址单元寻找存放数据的计算机寄存器的地址;写操作单元将数据写入带FIFO接口的用户设备;读操作单元从用户设备的FIFO接口读取数据。
本发明的接口测试设备20工作时,用户接口模块22接收来自于PCI接口模块21(图2)或PCI逻辑核模块211(图3)的PCI命令,由PCI命令解码单元对PCI命令进行解码,转换为用户接口模块22和用户设备的FIFO接口40能够识别的命令格式,根据所得的命令,完成下一步的操作。若该PCI命令是读操作命令,则在计算机中寻找可用的寄存器,将该寄存器与用户设备的FIFO接口40直接相连,然后将用户设备的FIFO接口40中的数据读入计算机的该寄存器中。若该命令是写操作命令,则在计算机中查找待传送数据所在的寄存器地址,然后将该寄存器与用户设备的FIFO接口40直接相连,将该寄存器中的数据写入用户设备的FIFO接口40。
将本发明的接口测试设备20分别与计算机的PCI总线10和用户设备的FIFO接口40连接后,即可进行对用户设备的FIFO接口40的测试。一个完整的测试系统还需要包括与接口测试设备20通过PCI总线10连接的计算机,一般来说,该带有专用程序的计算机需要实现如下模块类型选择模块,用于根据用户指令选择对用户设备的FIFO接口40进行动态测试还是静态测试;
方式选择模块,用于根据用户指令选择向用户设备的FIFO接口40发送数据还是从用户设备的FIFO接口40接收数据;动态写模块,用于向接口测试设备20发送一动态写命令;动态读模块,用于向接口测试设备20发送一动态读命令;静态写模块,用于向接口测试设备20发送一静态写命令;静态读模块,用于向接口测试设备20发送一静态读命令;时间间隔设置模块,用于动态读写过程中数据包发送或接收的时间间隔;状态读取模块,用于读取并显示用户设备的FIFO接口40的状态;判断模块,用于判断用户设备的FIFO接口40的状态是否大于或等于半满。
按照本发明的接口测试设备20及其与计算机组成的测试系统进行用户设备的FIFO接口40测试的流程如图4所示。在图4中,首先由计算机中的状态读取模块显示用户设备的FIFO接口40的初始状态,然后由用户通过类型选择模块和方式选择模块的选择,启动动态写模块、动态读模块、静态写模块或静态读模块中的一个模块以向接口测试设备20发送相应的命令,从而启动相应的动态写、动态读、静态写或静态读测试过程。下面结合图4对这四种测试过程进行详细描述。
1)静态数据写入的测试过程计算机通过PCI总线10发送一个静态写命令,该命令通过PCI接口模块21(图2)或PCI逻辑核模块211(图3)传给用户接口模块22,用户接口模块22的解码PCI命令单元解码PCI命令,得出是静态写命令以后,用户接口模块22中的写操作单元将相关寄存器中的数据通过计算机PCI总线10与PCI逻辑核模块211之间的数据线71传给PCI逻辑核模块211,通过PCI逻辑核模块211与用户接口模块22间的双向线23传给用户接口模块22并实现写操作,即通过用户接口模块22与用户设备的FIFO接口30之间的数据线31将数据一次写入用户设备的FIFO接口40。用户设备的FIFO接口40将实时状态信息(满,半满,非空)在计算机显示模块的作用下显示。
2)静态数据读出的测试过程计算机通过PCI总线1O发送一个静态读命令,该命令通过PCI接口模块21(图2)或PCI逻辑核模块211(图3)传给用户接口模块22,用户接口模块22的解码PCI命令单元解码PCI命令,得出是静态读命令以后,用户设备的FIFO接口30中的状态信息与数据分别通过用户接口模块22与用户设备的FIFO接口30之间的状态线33和用户接口模块22与用户设备的FIFO接口40之间的数据线31一次传递给用户接口模块22,并可显示接收的数据内容与状态信息。
3)动态数据写入的测试过程计算机通过PCI总线10发送一个动态写命令,该命令通过PCI接口模块21(图2)或PCI逻辑核模块211(图3)传给用户接口模块22,用户接口模块22的解码PCI命令单元解码PCI命令,得出是动态写命令以后,用户接口模块22中的写操作单元将相关寄存器中的数据通过计算机PCI总线10与PCI逻辑核模块211之间的数据线71传给PCI逻辑核模块211,通过PCI逻辑核模块211与用户接口模块22间的双向线23传给用户接口模块22,进行写操作。用户设备的FIFO接口40此时有状态信息(满,半满,非空),由计算机的判断模块对这些状态信息加以判断。当状态信息是半满或满的时候,用户设备不断从用户设备的FIFO接口40中读取数据,与此同时,在计算机发送模块的作用下,数据不断从计算机中的寄存器中向用户设备的FIFO接口40发送,直至数据发送完毕。在计算机的时间间隔设置模块中还能够设定数据发送时间间隔,以调整发送数据的平均传输速度,以达到速度可调这一目的。
4)动态数据读出的测试过程计算机通过PCI总线10发送一个动态读命令,该命令通过PCI接口模块21(图2)或PCI逻辑核模块211(图3)传给用户接口模块22,用户接口模块22的解码PCI命令单元解码PCI命令,得出是动态读命令以后,计算机中的判断模块测试用户设备的FIFO接口40的状态信息,若此时为半满或者是满,则计算机中的接收模块调用用户接口模块22中的读操作单元进行读操作,将用户设备的FIFO接口40中的数据通过用户接口模块22与用户设备的FIFO接口40之间的数据线31传递给用户接口模块22,与此同时用户设备向用户设备的FIFO接口40存入数据。在用户接口模块22中的数据沿着PCI逻辑核模块211与用户接口模块22间的双向线23,PCI逻辑核模块211,计算机PCI总线10与PCI逻辑核模块211之间的数据线71最终写入指定的接收文件。这一过程直到数据读取完毕为止。在数据动态读出过程开始之前,在计算机接收模块中最好还可以设定接收数据总量。
权利要求
1.一种通用FIFO接口测试设备,连接于计算机的PCI总线和用户FIFO接口之间,其特征在于,包括一个PCI接口模块,用于与计算机PCI总线的连接;一个用户接口模块,用于与用户FIFO接口的连接;所述用户接口模块包括PCI命令解码单元,用于将PCI命令转换成用户接口模块和用户FIFO接口可识别的命令格式;总线寻址单元,用于寻找存放数据的计算机寄存器的地址;写操作单元,用于将数据写入带FIFO接口的用户设备;读操作单元,用于从用户FIFO接口中读取数据。
2.根据权利要求1所述的通用FIFO接口测试设备,其特征在于,所述PCI接口模块为标准PCI接口芯片。
3.根据权利要求1所述的通用FIFO接口测试设备,其特征在于,所述PCI接口模块由如下模块组成PCI逻辑核模块,用于与PCI总线的会话;总线配置模块,用于实现PCI总线的配置空间。
4.根据权利要求3所述的通用FIFO接口测试设备,其特征在于,所述设备用FPGA芯片实现。
5.一种FIFO接口测试系统,用于测试一用户FIFO接口,其特征在于,包括一个计算机与一个FIFO接口测试设备,该FIFO接口测试设备与计算机通过PCI总线连接;所述FIFO接口测试设备包括一个PCI接口模块,用于与计算机PCI总线的连接;一个用户接口模块,用于与用户FIFO接口的连接;其中,所述用户接口模块包括PCI命令解码单元,用于将PCI命令转换成用户接口模块和用户FIFO接口可识别的命令格式;总线寻址单元,用于寻找存放数据的计算机寄存器的地址;写操作单元,用于将数据写入带FIFO接口的用户设备;读操作单元,用于从用户FIFO接口中读取数据;所述计算机包括动态写模块,用于向所述FIFO接口测试设备发送一动态写命令;动态读模块,用于向所述FIFO接口测试设备发送一动态读命令;静态写模块,用于向所述FIFO接口测试设备发送一静态写命令;静态读模块,用于向所述FIFO接口测试设备发送一静态读命令;时间间隔设置模块,用于动态读写过程中数据包发送或接收的时间间隔;状态读取模块,用于读取并显示用户FIFO接口的状态;判断模块,用于判断用户FIFO接口的状态是否大于或等于半满。
全文摘要
本发明公开了一种通用FIFO接口测试设备和系统,该接口测试设备包括PCI接口模块和用户接口模块。用户接口模块包括PCI命令解码单元、总线寻址单元、写操作单元、读操作单元。本发明的FIFO接口测试系统包括FIFO接口测试设备和计算机,该计算机包括动态写模块、动态读模块、静态写模块、静态读模块、时间间隔设置模块、状态读取模块和判断模块。本发明可对用户设备的FIFO接口进行动态和静态的读写测试,且可以对数据发送速度进行调节。本发明的FIFO接口测试设备和系统具有通用性,不依赖于用户设备,因此可在用户设备的任何研制和设计阶段对其FIFO接口进行测试,提高了用户设备的研制和设计进度。
文档编号G01R31/28GK1637684SQ20041007117
公开日2005年7月13日 申请日期2004年7月30日 优先权日2003年12月30日
发明者惠平, 李慧军, 曹松, 孙辉先, 陈小敏, 孟宪元 申请人:中国科学院空间科学与应用研究中心