首页> 中国专利> 通用串行总线速度测试系统及方法

通用串行总线速度测试系统及方法

摘要

本发明涉及一种通用串行总线速度测试系统及方法,应用于计算机装置与通用串行总线测试夹具中。首先分配计算机装置端的内存缓冲大小,以调整计算机装置的通用串行总线的速度测试数据的传输单位。并且当来自内存缓冲的速度测试数据充满通用串行总线测试夹具的测试数据输入缓冲时,发送一中断信号至通用串行总线测试夹具的微处理控制单元。接着,微处理控制单元丢弃速度测试数据,并回复一应答标志至通用串行总线测试夹具的测试数据输出缓冲。最后传送应答标志至计算机装置的测试程序中,以确认完成速度测试。本发明可提高通用串行总线的测试速率及测试稳定性。

著录项

  • 公开/公告号CN101122879A

    专利类型发明专利

  • 公开/公告日2008-02-13

    原文格式PDF

  • 申请/专利权人 英业达股份有限公司;

    申请/专利号CN200610112134.8

  • 发明设计人 王志;陈镇;陈玄同;刘文涵;

    申请日2006-08-11

  • 分类号G06F11/267(20060101);

  • 代理机构11006 北京律诚同业知识产权代理有限公司;

  • 代理人梁挥;徐金国

  • 地址 中国台湾台北市

  • 入库时间 2023-12-17 19:45:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-24

    未缴年费专利权终止 IPC(主分类):G06F11/267 授权公告日:20090527 终止日期:20190811 申请日:20060811

    专利权的终止

  • 2020-01-10

    专利权的转移 IPC(主分类):G06F11/267 登记生效日:20191223 变更前: 变更后: 申请日:20060811

    专利申请权、专利权的转移

  • 2009-05-27

    授权

    授权

  • 2008-04-09

    实质审查的生效

    实质审查的生效

  • 2008-02-13

    公开

    公开

说明书

技术领域

本发明涉及一种测试方法,尤其是涉及一种通用串行总线(UniversalSerial Bus,USB)的速度测试系统及方法。

背景技术

通用串行总线接口以其良好的性能和低廉的价格得到广泛应用,同时作为一种标准配置被集成至个人计算机系统中。因此对通用串行总线接口的检测则成为个人计算机测试中非常重要的环节,尤其是对通用串行总线的速度测试为检测的主要部分。

关于现有技术的通用串行总线速度测试请参考图1,图1为现有技术的通用串行总线速度测试系统的硬件结构方块图。

如图所示,现有技术的通用串行总线速度测试系统的硬件分为个人计算机装置1与通用串行总线测试家具2两个部份,以配合执行通用串行总线的速度测试。其中通用串行总线测试夹具2例如为基于增强型8051处理器单片系统,其由通用串行总线收发器3、8051核心4、先进先出缓冲(FIFO)5以及随机存取内存(RAM)6四个部份组成。在测试时,首先通用串行总线收发器3用来完成通用串行总线测试夹具2从总线上接收和发送数据。然后由先进先出缓冲5对接收和发送数据进行缓冲。当接收数据充满先进先出缓冲5时,会产生中断信号通知8051核心4,8051核心4得到相应中断信号后会控制先进先出缓冲5与随机存取内存6进行数据传输。同样,当需要向通用串行总线接口7发送数据时,8051核心4会将随机存取内存6上的数据传送到先进先出缓冲5,并发给先进先出缓冲5控制信号,以通过通用串行总线收发器3发送数据到通用串行总线接口7。个人计算机装置1则记录测试花费的时间,并根据传输的数据量大小计算通用串行总线的传输速率,并记录此数据得出速度测试结果。

然而,由图1可以看出,在进行通用串行总线数据传输时,数据会流经通用串行总线收发器3、先进先出缓冲5、随机存取内存6及8051核心4。通用串行总线收发器3为自动收发数据,不会影响测试速度,但是其它部件与8051核心4的震荡频率有关,并且由于8051核心4负责控制先进先出缓冲5与随机存取内存6进行数据传输,因此数据移动会花费太长的不必要时间,进而对数据传输速度造成很大影响。依照实际速度测试结果发现,由于受到通用串行总线夹具2的限制,整个测试速度非常低,测试速度大概只有40Mbps左右。而目前广泛使用的USB2.0标准的速度达480Mbps,因此实际测试速度远远低于协议的上限480Mbps。如果以这样的系统来测试一组大小为40MB字节的数据,则大概需要8s完成一次测试。如果进一步需要USB夹具对数据进行存储和转发等处理的话,实际上需要的时间将达到66s。

另外,通过分析个人计算机的应用程序发现,数据传输采用以通用串行总线测试夹具2的先进先出缓冲5的大小1k字节为单位,将数据分为多次传输。如果传输数据的字节较大,则系统就会频繁地在用户态和核心态反复传输数据。频繁的调用API函数会导致系统接收到应用程序的传输请求以后,不能马上满足需求,需要等待一段时间才能返回结果,这样就会导致传输速度波动。尤其是当系统负载大的时候,速度就有可能会上下波动。由于同一机器上会有不同的中央处理器负荷,因此传送速度会依照不同中央处理器负荷而上下波动,最高和最低的传输速率数值相差50多倍。由于中央处理器负载对测试速度的影响,会导致测试程序对通用串行总线器件好坏的误判,这样就会给生产线带来一些不必要的损失。

发明内容

本发明所要解决的技术问题在于提供一种通用串行总线速度测试系统及方法,以提高通用串行总线的测试速率及测试稳定性。

为了实现上述目的,本发明提供了一种通用串行总线速度测试系统,应用于计算机装置与通用串行总线测试夹具中,用以执行通用串行总线测试夹具对计算机装置的通用串行总线的速度测试,此速度测试系统包含通用串行总线收发器及微处理控制单元,设置于通用串行总线测试夹具中,其中速度测试系统还包含有:测试数据输入缓冲、测试数据输出缓冲以及分配模块;于此,此测试数据输入缓冲是连接于通用串行总线收发器与微处理控制单元之间,用以对通用串行总线收发器接收的来自计算机装置的通用串行总线的速度测试数据进行缓冲,并且当速度测试数据充满测试数据输入缓冲时发送一中断信号至微处理控制单元,进而微处理控制单元依照中断信号丢弃速度测试数据并回复一应答标志;测试数据输出缓冲连接于通用串行总线收发器与微处理控制单元之间,用以接收微处理控制单元回复的应答标志,并通过通用串行总线收发器传送应答标志至计算机装置的测试程序,以确认完成计算机装置的通用串行总线的速度测试;分配模块则设置于计算机装置的测试程序中,用以分配计算机装置端的内存缓冲大小,进而调整此速度测试数据的传输单位。

在较佳实施例中,可以分配模块分配的计算机装置端的内存缓冲大小为64KB,以储存两个通用串行总线请求区块封包来执行计算机装置的通用串行总线的速度测试。

另外,本发明提供了一种通用串行总线速度测试方法,应用于一计算机装置与一通用串行总线测试夹具中,用以执行通用串行总线测试夹具对计算机装置的通用串行总线的速度测试,其中,速度测试方法包含以下步骤:分配计算机装置端的内存缓冲大小,以调整计算机装置的通用串行总线的速度测试数据的传输单位;当来自计算机装置端的内存缓冲的速度测试数据充满通用串行总线测试夹具的一测试数据缓冲时,发送一中断信号至通用串行总线测试夹具的一微处理控制单元;微处理控制单元依照中断信号丢弃测试数据缓冲中的速度测试数据,并回复一应答标志至通用串行总线测试夹具的一测试数据输出缓冲;以及通过测试数据输出缓冲传送此应答标志至计算机装置的测试程序中,以确认完成计算机装置的通用串行总线的速度测试。

同样在较佳实施例中,可以在分配计算机装置端的内存缓冲大小的步骤中,所分配的计算机装置端的内存缓冲大小为64KB,以储存两个通用串行总线请求区块封包来执行计算机装置的通用串行总线的速度测试。

综上所述,本发明的通用串行总线速度测试系统及方法的优点在于:

1、本发明保留数据批量传输的代码,通过仅对一应答标志进行处理以确认数据传输的完成,进而消除现有技术的先进出缓冲和随机存取内存之间数据移动花费的不必要时间,除去硬件固件中所有影响测试传输速率的步骤,以提高通用串行总线的测试速率。

2、本发明通过分配计算机装置的内存缓冲大小以调整计算机装置的通用串行总线的速度测试数据的传输单位,进而能够减少应用程序设计接口(API)的调用频率,获得稳定的通用串行总线测试速度。

以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。

附图说明

图1为现有技术的通用串行总线速度测试系统的硬件结构方块图;

图2为本发明的通用串行总线速度测试系统的硬件结构方块图;

图3为通用串行总线传输速度与计算机装置的应用程序缓冲区大小的关系图表;以及

图4为本发明的通用串行总线速度测试方法的步骤流程图。

其中,附图标记:

1   计算机装置              2        通用串行总线测试夹具

3   通用串行总线收发器      4        8051核心

5   先进先出缓冲            6        随机存取内存

7   通用串行总线接口        10       计算机装置

12  分配模块                17       用串行总线接口

20  通用串行总线测试夹具     30        通用串行总线收发器

40  微处理控制单元          50        先进先出缓冲

52  测试数据输入缓冲        54        测试数据输出缓冲

60  串行接口引擎

步骤101分配计算机装置端的内存缓冲大小,以调整计算机装置的通用串行总线的速度测试数据的传输单位

步骤102通过通用串行总线的通用串行总线收发器接收来自计算机装置端的内存缓冲的通用串行总线速度测试数据

步骤103  传输速度测试数据至测试数据输入缓冲

步骤104  当速度测试数据充满测试数据缓冲时发送一中断信号至通用串行总线测试夹具的一微处理控制单元

步骤105  微处理控制单元依照中断信号丢弃测试数据缓冲中的速度测试数据并回复一应答标志至测试数据输出缓冲

步骤106  通过测试数据输出缓冲、通用串行总线收发器传送应答标志至计算机装置的测试程序中,以确认完成计算机装置的通用串行总线的速度测试

具体实施方式

请参考图2,图中表示为本发明的通用串行总线速度测试系统的硬件结构方块图。如图所示,本发明的通用串行总线速度测试系统的硬件也分为计算机装置10与通用串行总线测试夹具20两个部份,以配合执行通用串行总线测试夹具20对计算机装置10的通用串行总线的速度测试。计算机装置10通过通用串行总线接口17及通用串行总线的总线实现速度测试数据的相互传输。

本发明的通用串行总线测试夹具20包含一通用串行总线收发器30、串行接口引擎60、先进先出缓冲50及微处理控制单元,例如8051核心处理器单片系统。与现有技术的通用串行总线测试夹具相比,本发明的通用串行总线收发器30及串行接口引擎60执行相同的功能。即在测试时,首先通用串行总线收发器30通过通用串行总线接口17及通用串行总线的总线收发来自计算机装置10的速度测试数据,然后由串行接口引擎60完成通用串行总线测试数据的串/并双向转换,并按照USB 2.0规范完成通用串行总线数据流的位填充/位反填充等。

如图2所示,本发明的先进先出缓冲50包含一测试数据输入缓冲52与一测试数据输出缓冲54,并列连接于串行接口引擎60与微处理控制单元40之间。其中测试数据输入缓冲52用以对通用串行总线收发器30接收的来自计算机装置10的通用串行总线的速度测试数据进行缓冲,其中符号D+、D-表示通用串行总线收发器30用于输出和接收数据的差分信号。当速度测试数据充满于测试数据输入缓冲52中时,缓冲区会发出一中断信号至微处理控制单元40,例如实施例中给出的8051核心。8051核心在接收到此中断信号后丢弃掉速度测试数据,并回复一应答标志送入测试数据输出缓冲54。测试数据输出缓冲54用以接收微处理控制单元40回复的应答标志,并通过串行接口引擎60、通用串行总线收发器50及通用串行总线的总线及接口,进而传送应答标志至计算机装置10的测试程序中。

通过对通用串行总线测试夹具的改进,进而使得微处理控制单元在接受先进先出缓冲的中断信号后,通过只保留批量传输的代码,将现有技术需要通用串行总线测试夹具对通用串行总线的总线流动的数据处理,现在转化为对操作完成的应答标志的处理。消除了以前先进先出缓冲和随机存取内存之间进行数据移动时的瓶颈,这样就基本上就解决了计算机装置和通用串行总线测试夹具速度不匹配的问题,从而提高了传输速率。

此外,如图所示,本发明的通用串行总线速度测试系统还包含一分配模块12,设置于计算机装置10的测试程序中,用以分配计算机装置10端的内存缓冲大小,进而调整该速度测试数据的传输单位。

现有技术的通用串行总线测试系统在分配内存缓冲,即数据缓冲区大小是以通用串行总线测试夹具的先进先出缓冲的大小为依据的,以希望于通用串行总线测试夹具与计算机装置端建立大小一样的缓冲,不至于出现数据在哪一方等待而浪费时间,但是这样没有考虑到计算机装置的处理能力,实际上由于计算机装置的强大处理能力在和通用串行总线测试夹具交换数据时花费的时间不是很多,而是当调用应用程序设计接口(API)函数,在核心态和用户态进行数据交换时花费了很多时间。因此,在经过大量的调整内存缓冲的大小试验后,我们总结了相关的试验数据并绘制了通用串行总线传输速度与计算机装置的应用程序缓冲区大小的图表,如图3所示。

图3显示通用串行总线传输速度与计算机装置的应用程序缓冲区大小的关系图表。从图3中可以看出,在缓冲区大小为32KB时,传输速率约为210Mbps,这个数字和以前相比得到了很大的提高,在从32KB扩大为64KB时,传输速率反而有所下降。这是因为受限于总线带宽和具体的通用串行总线设备芯片,单纯扩大缓冲不能无限制地解决问题。通用串行总线传输在操作系统中的实现为每次传输都要包括通用串行总线请求区块封包(URB)的建立、发出、回收、数据整理等阶段,这些时间不产生有效数据。

因此,为了加快数据处理速度,由分配模块12设定核心态内存,以分配计算机装置10端的数据缓冲区大小,储存通用串行总线请求区块封包的测试数据,来执行计算机装置10的通用串行总线的速度测试。较佳的是,分配模块12设定的内存缓冲大小为64KB,以装载两个通用串行总线请求区块封包。通过建立两个通用串行总线请求区块封包,可以加快数据传输的处理速度。在等待一通用串行总线请求区块封包被回收时,起始化另一通用串行总线请求区块封包,并在回收后立刻将其发出。因此,此两个通用串行总线请求区块封包的数据区最大只能为核心态内存的一半,也就是32KB,如果超过了就只能处理其中一通用串行总线请求区块封包,等待此通用串行总线请求区块封包处理完释放资源才能起始化另外一通用串行总线请求区块封包。这也和上述试验结果相吻合,在数据缓冲区小于32KB时,没有满负荷工作,随着缓冲区的扩大,传输速率也开始提高,在达到32KB时效能最高。但是由于超过32KB后因为两个通用串行总线请求区块封包不能同时工作,因此传输速率开始下降。

当然,需要指出的是,分配模块12也可以设定核心态内存缓冲大小为32K至64K之间,仅用以一个通用串行总线请求区块封包的储存,本发明的内存缓冲分配并不局限于上述实施例。因此,分配模块12通过合适分配计算机装置10端的内存缓冲大小,来调节速度测试数据的传输单位,进而相应减少了应用程序设计接口函数的调用次数,减少了传输速率对中央处理器利用率的依赖程度,提高了速度测试的稳定性。

现在请参考图4,此图为本发明的通用串行总线速度测试方法的步骤流程图,如图所示,本发明的通用串行总线速度测试方法包含以下步骤:步骤101,首先,分配计算机装置端的内存缓冲大小,以分配速度测试数据缓冲区大小,进而调整计算机装置的通用串行总线的速度测试数据的传输单位;步骤102,通用串行总线测试夹具的收发器通过通用串行总线的总线,从计算机装置的通用串行总线接口接收储存于计算机装置端的内存缓冲的速度测试数据。之后,步骤103,将此速度测试数据传输至测试数据输入缓冲,步骤104,当速度测试数据充满测试数据缓冲时发送一中断信号至通用串行总线测试夹具的一微处理控制单元,步骤105,微处理控制单元依照此中断信号丢弃测试数据缓冲中的速度测试数据,接着回复一个表示传输完成的应答标志至测试数据输出缓冲。随之,步骤106,通过测试数据输出缓冲、通用串行总线收发器传送应答标志至计算机装置的测试程序中,计算机装置端接收到此应答标志后即认为此次传输的完成,进而确认完成计算机装置的通用串行总线的速度测试。

这里微处理控制单元收到中断信号后并不对此测试数据进行处理,而是转换为对完成标志的处理,因而省去了控制测试数据于先进先出缓冲以及随机存取内存之间传输的步骤,提高了传输速率。

此外,在分配计算机装置端的内存缓冲大小的步骤中,较佳的是所分配内存缓冲为64K,以装载两个通用串行总线请求区块封包。或者分配内存冲为332K,以装载一个通用串行总线请求区块封包。由此,本发明的通用串行总线测试方法不仅提高计算机装置的通用串行总线的传输速度至230Mbps,而且很大程度地提高了其速度测试的稳定性。

当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明权利要求的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号