通用串行总线主机控制器快速测试系统及其方法

文档序号:6558157阅读:160来源:国知局
专利名称:通用串行总线主机控制器快速测试系统及其方法
技术领域
本发明涉及一种USB主机控制器快速测试系统及其方法,尤其涉及一种通过虚拟USB设备与实际USB接口建立关联对特定USB接口测试以完成USB主机控制器的快速测试的系统及其方法。
背景技术
通用串行总线(Universal Serial Bus,英文简称USB)是一种应用在个人计算机(PC)领域的新型接口技术。目前在测试此类USB主机控制器芯片时,基本上采用结合USB治具来作为测试手段。通常,先将USB治具连接入计算机,然后加载USB治具的驱动程序,最后由用户模式的应用程序发送指令,指示操作系统进行测试,然后等待操作系统的回馈,根据回馈信息计算USB数据传输速率。然而,在现有技术中,利用USB治具进行USB控制芯片的测试存在如下缺点1、降低测试速度。由于USB治具通常是单芯片微处理机系统,其处理速度一般无法与计算机的处理速度相比,因此,由于单芯片微处理机系统与计算机的处理速度的不匹配,而降低整个测试速度。
2、浪费人力资源,增加测试成本。需要测试人员执行相关操作,以在测试的时候单独将USB治具连接入计算机的USB端口,浪费了宝贵的人力资源,而且由于需要使用USB治具进行测试,增加了测试成本并且随着测试要求的不断改变和提高,总是需要不断地改进USB治具。
3、增加出错机率,降低工作效率。由于USB治具本身很可能存在质量问题或者因为某些原因而导致其损坏,而导致测试程序的误判断。同时,由于添加人工操作,增加了测试程序出错的机率。另外,当发现USB装置工作异常时,无法确定是埠连接异常亦或USB装置工作异常,因此会导致测试结论错误,所以还需要通过检测来确认USB装置是否工作正常,这样势必导致工作效率降低。

发明内容
本发明所要解决的技术问题在于提供一种USB主机控制器快速测试系统及其方法,通过虚拟USB设备与实际USB接口建立关联对特定USB接口测试以完成USB主机控制器的快速测试。
为实现上述目的,本发明所提供的一种USB主机控制器快速测试系统,包含控制模块,用以获取USB主机控制器的控制权;过滤模块,用以接收并拦截用户模式的应用程序向USB主机控制器发出的数据封包,以判断是否存在待测USB设备的测试激活或者测试结束的信息;虚拟USB设备,用以令计算机与多个实际USB接口之间构成测试信道;以及测试模块,用以通过虚拟USB设备分别与待测的多个实际USB接口连接,以完成对指定的实际USB设备的接口的测试。
而且,为实现上述目的,本发明所提供的一种USB主机控制器快速测试方法,包含以下步骤获取USB主机控制器的控制权;建立虚拟USB设备;通过虚拟USB设备分别与多个实际USB设备的接口连接,以完成对指定的实际USB设备的接口的测试准备;激活对指定的实际USB设备的接口的测试程序;接收并拦截用户模式的应用程序向USB主机控制器发出的数据封包,以判断是否存在待测USB设备的测试激活信息;若不存在测试激活信息,则继续接收并拦截用户模式的应用程序向USB主机控制器发出的数据封包;当接收到测试激活信息后,激活对指定的实际USB设备的接口的测试程序;在测试激活后接收并拦截用户模式的应用程序向USB主机控制器发出的数据封包,以判断是否存在待测USB设备的测试终止信息;若未接收到测试终止信息,则继续接收并拦截用户模式的应用程序向USB主机控制器发出的数据封包;以及当接收到测试终止信息后,终止测试程序并且返回测试结果至用户模式的应用程序,并结束对指定的实际USB设备的接口的测试。
综上所述,本发明的优点在于1、排除USB治具的影响,降低研发和生产USB治具的成本。本发明采用的方法直接测试USB主机控制器芯片,并且设计一个USB过滤(USB Filter)驱动程序,负责接收激活/结束测试指令,接收到指令以后,按照规定的流程,激活/结束测试程序。测试结束后返回测试结果到用户模式的应用程序。因此无需使用USB治具,排除了USB治具的影响,降低了研发和生产USB治具的成本。
2、自动、快速完成测试USB数据传输的任务。本发明所揭露的技术方案无需使用USB治具,而仅利用计算机端就能够进行测试。现在的计算机从性能以及稳定性方面都超过了USB治具,因此测试的精度和速度能够得到保证。本发明在测试时,使用虚拟设备的技术,将具体的USB端口映像成为虚拟USB设备,实际测试中,以虚拟USB设备和USB主机控制器芯片构成测试信道,在计算机内部形成一个快速回复的数据流通道,此信道不会由于USB治具或者其它因素而延缓数据的传输,因此能够快速完成测试任务。并且仅需要按照规定的流程激活相关测试程序,就能够自动快速的实现测试USB速度测试,节省了大量宝贵的人力资源。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。


图1为本发明的USB主机控制器快速测试系统的系统方块图;图2为本发明的USB主机控制器快速测试方法的方法流程图;以及图3为本发明的获取USB主机控制器的控制权的方法流程图。
其中,附图标记10USB主机控制器11控制模块12过滤模块13虚拟USB设备14测试模块15用户模式的应用程序16实际USB接口步骤100获取USB主机控制器的控制权步骤200建立虚拟USB设备步骤300通过虚拟USB设备分别与多个实际USB设备接口连接,以完成对指定的实际USB设备接口的测试准备步骤400激活对指定的实际USB设备的接口的测试程序步骤500接收并拦截用户模式的应用程序向USB主机控制器发出的数据封包步骤600判断是否存在待测USB设备的测试激活信息步骤700判断是否存在待测USB设备的测试终止信息步骤800终止测试程序,返回测试结果至用户模式的应用程序,并结束对指定的实际USB设备接口的测试步骤110查找USB主机控制器步骤120获得USB主机控制器的全域唯一识别码步骤130通过全域唯一识别码获取USB主机控制器的信息集步骤140通过信息集得到USB主机控制器的所有接口信息步骤150通过所有接口信息得到所有USB设备接口的名称步骤160获取USB主机控制器的访问路径步骤170绑定USB过滤模块与USB主机控制器具体实施方式
如图1所示,图中表示了本发明的USB主机控制器快速测试系统的系统方块图,通过虚拟USB设备与实际USB接口建立关联对特定USB接口测试以完成USB主机控制器的快速测试,此系统工作原理如下通过控制模块11,向用户模式的应用程序15发送控制信息,通过过滤模块12,获取USB主机控制器10的控制权,以绑定USB主机控制器10与过滤模块12,并且建立绑定的数据通路,通过用户模式的应用程序15直接发送指令给过滤模块12以激活或者终止此测试,且通过虚拟USB设备13与实际USB接口16建立关联,测试模块14,与过滤模块12及虚拟USB设备13电连接,用以通过虚拟USB设备13分别与待测的多个实际USB接口16连接,以完成对指定的实际USB设备的接口的测试,由此,计算机就可以访问实际USB接口16,以完成对特定USB端口测试的目的。
在本发明的一实施例中,此控制模块11还包括USB主机控制器查找模块(附图中未表示),用以查找USB主机控制器10并获得USB主机控制器10的全域唯一识别码(英文全称Globally Unique Identifier,英文简写GUID)、USB主机控制器10的信息集、所有USB设备的名称以及USB主机控制器10的访问路径;以及绑定模块(附图中未表示),用以绑定USB主机控制器10与过滤模块12,以通过用户模式的应用程序15向过滤模块12直接发送指令以激活或者终止对指定的实际USB设备接口16的测试。其中绑定模块还包括查找模块(附图中未表示),用以查找设备列表数据库以及USB主机控制器10的唯一确定的访问键值;以及标记模块(附图中未表示),用以在设备列表数据库添加标记,以绑定过滤模块12与USB主机控制器10,以建立绑定的数据通路。
此过滤模块12,用以接收并拦截用户模式的应用程序15向USB主机控制器10发出的数据封包,以判断是否存在一待测USB设备的一测试激活或者测试结束的信息;同时在测试中由于USB主机控制器10属于USB系统的根节点,USB设备都需要通过此根节点传输数据,为保证数据的正常传输,需要将实际的数据传输和测试数据加以区别,通过此过滤模块12来区别实际的数据传输和测试。
在本发明的一实施例中,激活测试时,为保证测试数据的正常传输,约定了两个字符串用来激活或者中止测试,其中,一个字符串作为测试激活标志,另一个作为测试停止标志,如果过滤模块12监测到激活标志,则激活测试程序。随后的时间里,过滤模块12就会截获USB总线上传输的数据,直到接收到停止标志。测试结束以后,通过一解除模块(附图中未表示)解除已经建立起的USB主机控制器10与过滤模块12的绑定关系。最后,完成一些清理工作以最终完成整个测试流程。
在本发明的一实施例中,虚拟USB设备13进一步包含储存模块(附图中未表示),用以储存虚拟USB设备13的设备描述符号以及计算机分配的新地址。
如图2所示,此图为本发明一种USB主机控制器快速测试方法的方法流程图,如图所示,本发明的USB主机控制器快速测试方法包含以下步骤获取USB主机控制器的控制权(步骤100),步骤100将在下文中做进一步解释;建立虚拟USB设备(步骤200),步骤200将在下文中做进一步解释;通过虚拟USB设备分别与多个实际USB设备的接口连接,以完成对指定的实际USB设备的接口的测试准备(步骤300);激活对指定的实际USB设备的接口的测试程序(步骤400);接收并拦截用户模式的应用程序向USB主机控制器发出的数据封包(步骤500);判断是否存在待测USB设备的测试激活的信息(步骤600);若不存在该测试激活信息,则返回步骤500;当接收到该测试激活信息后,激活一对指定的实际USB设备的接口的测试程序;在测试激活后接收并拦截该用户模式的应用程序向该USB主机控制器发出的数据封包,以判断是否存在该待测USB设备的一测试终止信息;判断是否存在待测USB设备的测试终止信息(步骤700);若未接收到该测试终止信息,则返回步骤500;以及当接收到测试终止信息后,终止测试程序并且返回测试结果至用户模式的应用程序,并结束对指定的实际USB设备的接口的测试(步骤800)。
图3为本发明的获取USB主机控制器的控制权(步骤100)的方法流程图。如图所示,其包含如下步骤查找USB主机控制器(步骤110);获得USB主机控制器的全域唯一识别码(步骤120);通过全域唯一识别码获取USB主机控制器的信息集(步骤130);通过信息集得到USB主机控制器的所有接口信息(步骤140);通过所有接口信息得到所有USB设备接口的名称(步骤150);获取USB主机控制器的访问路径(步骤160);绑定USB过滤模块与USB主机控制器,以通过用户模式的应用程序向USB过滤模块直接发送指令以激活或者终止对指定的实际USB设备的接口测试(步骤170),步骤170将在下文中做进一步解释。
在本发明的一实施例中,其中绑定一USB过滤模块与USB主机控制器,以通过用户模式的应用程序向USB过滤模块直接发送指令以激活或者终止对指定的实际USB设备的接口测试(步骤170)可以通过以下方法实现查找一设备列表数据库,以得到所有USB设备的信息;通过所有USB设备的信息得到USB主机控制器的一唯一确定的访问键值;以及通过在设备列表数据库添加标记的方式,绑定USB过滤模块与USB主机控制器,以建立绑定的数据通路。
本发明的建立一虚拟USB设备的步骤(步骤200)进一步通过以下方法实现首先,激活一总线枚举程序,以得到虚拟USB设备的一设备描述符。在本发明的一实施例中,设置虚拟USB设备的地址为零;计算机向地址为零的虚拟USB设备发送请求设备描述符的指令;此地址为零的虚拟USB设备向计算机发送回此设备的设备描述符。其次,设置并储存虚拟USB设备的一地址,以作为此后通信的基础。在此阶段,本发明的一实施例中,计算机向地址为零的虚拟USB设备发送指令,分配新地址(不为零),虚拟的USB设备存储此新地址,并以此作为以后通信的基础。最后,获取虚拟USB设备的一配置描述信息。在本发明的一实施例中,主机向新分配地址的虚拟USB设备请求设备描述符,虚拟USB设备回复设备描述符;主机请求配置和报告描述符,虚拟USB设备回复所有描述符;主机向虚拟USB设备发出确认收到的指令,虚拟USB设备回复确认收到的指令。总线枚举程序结束后,虚拟USB设备开始正常工作,通过与实际USB接口建立关联,以访问实际USB接口,并完成对指定的USB埠测试的目的,因而实现测试整个USB系统。
当接收到测试终止信息后,终止测试程序并且返回一测试结果至用户模式的应用程序,并结束对指定的实际USB设备的接口的测试的步骤(步骤800)在本发明的一实施例中进一步包含如下步骤解除USB主机控制器与USB过滤模块的绑定。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种通用串行总线主机控制器快速测试系统,通过虚拟通用串行总线设备与实际通用串行总线接口建立关联对特定通用串行总线接口测试以完成通用串行总线主机控制器的快速测试,其特征在于,该系统包含一控制模块,用以获取一通用串行总线主机控制器的控制权;一过滤模块,用以接收并拦截一用户模式的应用程序向该通用串行总线主机控制器发出的数据封包,以判断是否存在一待测通用串行总线设备的一测试激活或者测试结束的信息;一虚拟通用串行总线设备,用以令计算机与多个实际通用串行总线接口之间构成测试信道;以及一测试模块,用以通过该虚拟通用串行总线设备分别与待测的多个实际通用串行总线接口连接,以完成对指定的实际通用串行总线设备的接口的测试。
2.根据权利要求1所述的通用串行总线主机控制器快速测试系统,其特征在于,该控制模块进一步包含一通用串行总线主机控制器查找模块,用以查找该通用串行总线主机控制器并获得该通用串行总线主机控制器的一全域唯一识别码、该通用串行总线主机控制器的一信息集、所有通用串行总线设备的名称以及该通用串行总线主机控制器的访问路径;以及一绑定模块,用以绑定该通用串行总线主机控制器与该通用串行总线过滤模块,以通过该用户模式的应用程序向该通用串行总线过滤模块直接发送指令以激活或者终止该对指定的实际通用串行总线设备的接口的测试。
3.根据权利要求2所述的通用串行总线主机控制器快速测试系统,其特征在于,该绑定模块进一步包含一查找模块,用以查找一设备列表数据库以及该通用串行总线主机控制器的一唯一确定的访问键值;以及一标记模块,用以在该设备列表数据库添加标记,以绑定该通用串行总线过滤模块与该通用串行总线主机控制器,以建立绑定的数据通路。
4.根据权利要求2所述的通用串行总线主机控制器快速测试系统,其特征在于,进一步包含一解除模块,用以解除该通用串行总线主机控制器与该通用串行总线过滤模块的绑定。
5.根据权利要求1所述的通用串行总线主机控制器快速测试系统,其特征在于,该虚拟通用串行总线设备进一步包含一储存模块,用以储存该虚拟通用串行总线设备的设备描述符号以及一计算机分配的新地址。
6.一种通用串行总线主机控制器快速测试方法,通过虚拟通用串行总线设备与实际通用串行总线接口建立关联对特定通用串行总线接口测试以完成通用串行总线主机控制器的快速测试,其特征在于,该测试方法包含有下列步骤获取一通用串行总线主机控制器的控制权;建立一虚拟通用串行总线设备;通过该虚拟通用串行总线设备分别与多个实际通用串行总线设备的接口连接,以完成该对指定的实际通用串行总线设备的接口的测试准备;激活对指定的实际通用串行总线设备的接口的测试程序;接收并拦截一用户模式的应用程序向该通用串行总线主机控制器发出的数据封包,以判断是否存在一待测通用串行总线设备的一测试激活信息;若不存在该测试激活信息,则继续接收并拦截该用户模式的应用程序向该通用串行总线主机控制器发出的数据封包;当接收到该测试激活信息后,激活一对指定的实际通用串行总线设备的接口的测试程序;在测试激活后接收并拦截该用户模式的应用程序向该通用串行总线主机控制器发出的数据封包,以判断是否存在该待测通用串行总线设备的一测试终止信息;若未接收到该测试终止信息,则继续接收并拦截该用户模式的应用程序向该通用串行总线主机控制器发出的数据封包;以及当接收到该测试终止信息后,终止该测试程序并且返回一测试结果至该用户模式的应用程序,并结束该对指定的实际通用串行总线设备的接口的测试。
7.根据权利要求6所述的通用串行总线主机控制器快速测试方法,其特征在于,该获取一通用串行总线主机控制器的控制权的步骤进一步包含如下步骤查找该通用串行总线主机控制器;获得该通用串行总线主机控制器的一全域唯一识别码;通过该全域唯一识别码获取该通用串行总线主机控制器的一信息集;通过该信息集得到该通用串行总线主机控制器的所有接口信息;通过该所有接口信息得到所有通用串行总线设备接口的名称;获取该通用串行总线主机控制器的访问路径;以及绑定一通用串行总线过滤模块与该通用串行总线主机控制器,以通过该用户模式的应用程序向该通用串行总线过滤模块直接发送指令以激活或者终止该对指定的实际通用串行总线设备的接口的测试。
8.根据权利要求7所述的通用串行总线主机控制器快速测试方法,其特征在于,该绑定一通用串行总线过滤模块与该通用串行总线主机控制器,以通过该用户模式的应用程序向该通用串行总线过滤模块直接发送指令以激活或者终止该对指定的实际通用串行总线设备的接口的测试的步骤进一步包含如下步骤查找一设备列表数据库,以得到所有通用串行总线设备的信息;通过该所有通用串行总线设备的信息得到该通用串行总线主机控制器的一唯一确定的访问键值;以及通过在该设备列表数据库添加标记的方式,绑定该通用串行总线过滤模块与该通用串行总线主机控制器,以建立绑定的数据通路。
9.根据权利要求6所述的通用串行总线主机控制器快速测试方法,其特征在于,该建立一虚拟通用串行总线设备,并将该虚拟通用串行总线设备与计算机建立联的步骤进一步包含如下步骤激活一总线枚举程序,以得到该虚拟通用串行总线设备的一设备描述符;设置并储存该虚拟通用串行总线设备的一地址,以作为此后通信的基础;以及获取该虚拟通用串行总线设备的一配置描述信息。
10.根据权利要求6所述的通用串行总线主机控制器快速测试方法,其特征在于,当接收到该测试终止信息后,终止该测试程序并且返回一测试结果至该用户模式的应用程序,并结束该对指定的实际通用串行总线设备的接口的测试的步骤进一步包含如下步骤解除该通用串行总线主机控制器与该通用串行总线过滤模块的绑定。
全文摘要
本发明公开了一种通用串行总线主机控制器快速测试系统及其方法。该方法包括步骤获取通用串行总线主机控制器的控制权;建立虚拟通用串行总线设备;通过虚拟通用串行总线设备分别与多个实际通用串行总线设备接口连接;激活对指定的实际通用串行总线设备接口的测试程序;接收并拦截用户模式的应用程序向通用串行总线主机控制器发出的数据封包;若接收到测试激活信息,激活对指定的实际通用串行总线设备接口的测试程序;在测试激活后接收并拦截用户模式的应用程序向通用串行总线主机控制器发出的数据封包;若接收到测试终止信息,终止测试程序并且返回测试结果至用户模式的应用程序,结束对指定的实际通用串行总线设备的接口的测试。
文档编号G06F11/267GK101063952SQ20061007495
公开日2007年10月31日 申请日期2006年4月25日 优先权日2006年4月25日
发明者王志, 陈玄同, 刘文涵 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1