检测主机usb接口传输率的系统及方法

文档序号:6368676阅读:267来源:国知局
专利名称:检测主机usb接口传输率的系统及方法
技术领域
本发明涉及一种检测主机USB接口传输率的系统及方法,特别是关于一种通过固件程序直接利用USB2.0芯片内的储存区进行USB主机传输率测试的系统及方法。
背景技术
数据储存设备是电脑设备中的重要组成部份,在当前各种实际应用中,用户需要储存的数据逐渐增多,USB储存设备具有便捷、大容量、高速率的进行数据储存特点,如USB接口的硬盘,其中基于USB1.0方式的最大传输速率为12Mbps,基于USB2.0方式更是高达480Mbps,而且其容量大,体积小,支持热拔插,得到了十分广泛的应用。
正是因为USB储存设备的广泛应用,对电脑主机上的USB接口的传输速率进行检测就变得尤其重要,它是USB设备正常运行的重要保证。传统的检测方式,是通过借助硬盘等外部储存设备储存执行检测的数据,而在进行大规模的USB传输率检测时,就需要大量的硬盘或其它外部储存设备,由于硬盘的成本很高,而且长期读写硬盘可能会使其损坏,这样就会无形中提高测试的成本。
此时,就需要一种低成本的检测主机USB接口传输率的系统及方法解决上述问题。

发明内容
有鉴于此,本发明为解决上述问题而提出了一种检测主机USB接口传输率的系统及方法,通过固件程序直接利用USB2.0芯片内的储存区进行USB主机传输率测试。
本发明提出了一种检测主机USB接口传输率的方法,该方法包括如下步骤首先启动USB驱动程序;然后将该USB驱动程序中的固件程序下载到周边设备控制器芯片中;再确定USB控制器的类型;接下来,根据该USB控制器类型传输数据,确定传输时间;最后根据数据传输量及该传输时间确定该USB控制器的传输率。
本发明提出了一种检测主机USB接口的系统,该系统包括由USB控制器及驱动模块组成的电脑主机,其中该USB控制器用于提供执行检测的USB接口,该驱动模块用于生成提供检测的固件程序,由储存模块及固件处理模块组成的周边设备控制器芯片,其中该储存模块用于储存提供检测的固件程序,该固件处理模块用于执行该固件程序,以及用于提供该电脑主机与该周边设备控制器芯片之间的连接电路。
与现有的方法相比,本发明提供的检测主机USB接口传输率的系统及方法,直接利用USB2.0芯片内的储存区进行USB主机传输率测试,所需的测试边设周边设备仅仅为USB2.0芯片及其标准电路组件,而非现有技术中的硬盘,从而很大程度上降低了测试成本,有效避免了资源的浪费。


图1为本发明的检测主机USB接口传输率的方法的总体流程图;图2为本发明所提出的启动USB驱动程序的流程图;图3为本发明所提出的将该USB驱动程序中的固件程序下载到周边设备控制器芯片中的流程图;图4为本发明所提出的实现对周边设备控制器芯片的控制的流程图;图5为本发明所提出的根据接收到的芯片设置数据包情况执行相应操作的流程图;图6为本发明所提出的根据再次接收到的芯片设置数据包情况执行相应操作的流程图;图7为本发明所提出的根据该USB控制器类型对该周边设备控制器芯片进行控制的流程图;及图8为本发明所提出的检测主机USB接口传输率的系统的模块架构图。
其中,附图标记说明如下步骤110 启动USB驱动程序步骤120 将该USB驱动程序中的固件程序下载到周边设备控制器芯片中步骤130 确定USB控制器的类型步骤140 根据该USB控制器类型传输数据,确定传输时间步骤150 根据数据传输量及该传输时间确定该USB控制器的传输率步骤210 读取该周边设备控制器芯片信息步骤220 确定该周边设备控制器芯片中无固件程序步骤310 固件程序下载完成后重新启动该周边设备控制器芯片步骤320 在该周边设备控制器芯片中执行该固件程序步骤330 重新读取周边设备控制器芯片信息,确定该周边设备控制器芯片中的固件程序步骤340 根据该USB控制器类型对该周边设备控制器芯片进行控制步骤410 执行固件程序初始化步骤420 开始接收该周边设备控制器芯片的中断信号步骤430 根据接收到的芯片设置数据包情况执行相应操作步骤440 根据再次接收到的芯片设置数据包情况执行相应操作步骤510 为当接收到该数据包时,根据该数据包的内容执行相应操作步骤520 当未接收到该数据包时,延迟1秒种后继续准备接收该数据包步骤610 当再次接收到该数据包时,执行其中的设备中断请求步骤620 当未再次接收到该数据包时,确定USB总线空闲标志及延迟处理的设置情况步骤630 根据该设置情况执行相关操作步骤710 当该USB总线空闲标志及延迟处理都进行设置时,延迟对该数据包的处理步骤720 当该USB总线空闲标志未设置时,则设置该标志步骤730 当该延迟处理未设置时,则设置延迟处理810 电脑主机811 USB控制器
812 驱动模块820 周边设备控制器芯片821 储存模块822 固件处理模块830 连接电路具体实施方式
下面结合附图对本发明进行详细说明通过图1来说明,该图为本发明的检测主机USB接口传输率的方法的总体流程图,说明如下首先启动USB驱动程序(步骤110);然后将该USB驱动程序中的固件程序下载到周边设备控制器芯片中(步骤120);再确定USB控制器的类型(步骤130);接下来,根据该USB控制器类型传输数据,确定传输时间(步骤140);最后根据数据传输量及该传输时间确定该USB控制器的传输率(步骤150)。
USB驱动程序(USB Driver)可以是Windows或者是Linux下的USB驱动程序,依据操作系统的类型来决定。其中,Windows操作系统下的USBDriver可以在cypress公司提供的开发包所提供的代码基础上进行修改,从而得到检测所需的USB Driver;Linux操作系统下的USB Driver没有可以直接使用的软件程序,本发明是通过对Linux操作系统中自带的dabusb driver进行修改,从而得到检测所需的固件程序。
现有的USB标准包括USB1.0及USB2.0两种,分别对应不同的USB控制器。
通过执行周边设备控制器芯片(例如Cypress公司的EZ-USB FX2芯片)中的固件程序,USB Driver就能控制该周边设备控制器芯片读取数据,并由此得到传输的数据量及传输时间,将传输数据量/传输时间,就能检测出该USB控制器的传输率。
下面,进一步说明本发明的流程。
请参见图2,该图为本发明所提出的启动USB驱动程序的流程图,说明如下
首先读取该周边设备控制器芯片信息(步骤210);然后确定该周边设备控制器芯片中无固件程序(步骤220)。
该周边设备控制器芯片可以为USB2.0FX2芯片,通常的芯片都是含有固件程序的,固件程序是刻录在该芯片中的只读存储器(ROM)内的,但本发明所使用的USB2.0芯片中并没有ROM。
请参见图3,该图为本发明所提出的将该USB驱动程序中的固件程序下载到周边设备控制器芯片中的流程图,说明如下固件程序下载完成后重新启动该周边设备控制器芯片(步骤3 10);在该周边设备控制器芯片中执行该固件程序(步骤320);重新读取该周边设备控制器芯片信息,确定周边设备控制器芯片中的固件程序(步骤330);根据该USB控制器类型对该周边设备控制器芯片进行控制(步骤340)。
由于本发明所使用的USB2.0芯片中没有ROM,不包含固件程序,这样就可以充分利用USB2.0芯片的特性,将USB Driver内的固件程序直接写入FX2内的储存区中,然后根据该USB控制器类型,通过该固件程序控制该FX2内的储存区执行检测。
请参见图4,该图为本发明所提出的根据该USB控制器类型对该周边设备控制器芯片进行控制的流程图,说明如下执行固件程序初始化(步骤410);开始接收该周边设备控制器芯片的中断信号(步骤420);根据接收到的芯片设置数据包情况执行相应操作(步骤430);根据再次接收到的芯片设置数据包情况执行相应操作(步骤440)。
该固件程序实际上所控制的是USB2.0芯片中FX2内的储存区,因为在不同类型的USB控制器中,其FIFO(First In Fist Out)的端点是不同的,在固件程序初始化过程中,就需要根据各FIFO端点的特点,进行空间分配及相关缓存器设置,从而实现对周边设备控制器芯片的控制,执行检测。
请参见图5,该图为本发明所提出的根据接收到的芯片设置数据包情况执行相应操作的流程图,说明如下当接收到该数据包时,根据该数据包的内容执行相应操作(步骤510);当未接收到该数据包时,延迟1秒种后继续准备接收该数据包(步骤520)。
该数据包中的内容包括设备中断请求、USB总线空闲标志及延迟处理的设置等相关信息,是芯片执行操作的重要依据。
请参见图6,该图为本发明所提出的根据再次接收到的芯片设置数据包情况执行相应操作的流程图,说明如下当再次接收到该数据包时,执行其中的设备中断请求(步骤610);当未再次接收到该数据包时,确定USB总线空闲标志及延迟处理的设置情况(步骤620);根据该设置情况执行相关操作(步骤630)。
请参见图7,该图为本发明所提出的根据该设置情况执行相关操作的流程图,说明如下当该USB总线空闲标志及延迟处理都进行设置时,延迟对该数据包的处理(步骤710);当该USB总线空闲标志未设置时,则设置该标志(步骤720);当该延迟处理未设置时,则设置延迟处理(步骤730)。
请参见图8,该图为本发明所提出的检测主机USB接口传输率的系统的模块架构图,如图所示,包括由USB控制器811及驱动模块812组成的电脑主机810,由储存模块821及固件处理模块822组成的周边设备控制器芯片820,以及用于提供该电脑主机与该周边设备控制器芯片之间的连接电路830。
其中,该周边设备控制器芯片为USB2.0芯片周边设备控制器芯片,该USB控制器811用于提供执行检测的USB接口,该驱动模块812用于生成提供检测的固件程序,该储存模块821为USB2.0芯片中FX2内的储存区,用于储存提供检测的固件程序,该固件处理模块822用于执行该固件程序。
下面说明用两种较佳的USB Driver实例。
Windows操作系统下的USB Driver是在cypress公司提供的开发包所提供的代码基础上进行修改,得到检测所需的USB Driver,其步骤如下(1)应用开发包的Hex2C软件将固件程序*.hex转变为c语言代码*.c;(2)将*.c加入到download数组中;(3)在download固件程序的代码前添加判断周边设备信息功能,以决定是download固件程序还是对周边设备进行控制;(4)应用Windows DDK build程序得到*.sys USB driver;及(5)将*.sys和相应的*.inf文件拷贝到Windows系统目录。
该程序生成后,通过执行USB Driver,就能将固件程序下载到USB2.0芯片中FX2内的储存区,通过其在USB2.0芯片中执行来完成检测过程。
Linux操作系统下没有可以直接使用的USB Driver程序,本发明是通过对Linux操作系统中自带的dabusb driver进行修改,得到检测所需的driver,其步骤如下(1)应用开发包的Hex2C软件将固件程序*.hex转变为c语言代码*.c;(2)将*.c加入到download数组中;(3)在download固件程序的代码前添加判断周边设备信息功能,以决定是download固件程序还是对周边设备进行控制;(4)在linux的dabusb代码中添加我们周边设备的product id和vendorid;(5)在probe函数中对fpga和interface部分进行修改;(6)修改open函数的报错条件,与我们的周边设备配合;(7)对bulk传输的endpoint设置进行修改,应用copy_from_user和copy_to_user进行driver与应用的数据交换;(8)应用gcc进行编译得到dabusb.o;及(9)应用脚本控制实现加载driver。
该程序生成后,通过执行USB Driver,就能将固件程序下载到USB2.0芯片中FX2内的储存区,通过其在USB2.0芯片中执行来完成检测过程。
以上所述者,仅为本发明其中的较佳实施例而已,并非用来限定本发明的实施范围;即凡根据本发明的内容所作的均等变化与改进,都应属于本发明的专利范围。
权利要求
1.一种检测主机USB接口传输率的方法,其特征在于,所述方法至少包括以下步骤启动USB驱动程序;将所述USB驱动程序中的固件程序下载到周边设备控制器芯片中;确定USB控制器的类型;根据所述USB控制器类型传输数据,确定传输时间;及根据数据传输量及所述传输时间确定所述USB控制器的传输率。
2.如权利要求1所述的检测主机USB接口传输率的方法,其特征在于,启动USB驱动程序的步骤还包括以下步骤读取所述周边设备控制器芯片信息;及确定所述周边设备控制器芯片中无固件程序。
3.如权利要求1所述的检测主机USB接口传输率的系统,其特征在于,所述周边设备控制器芯片为USB2.0芯片。
4.如权利要求1所述的检测主机USB接口传输率的方法,其特征在于,将所述USB驱动程序中的固件程序下载到周边设备控制器芯片中的步骤还包括以下步骤固件程序下载完成后重新启动所述周边设备控制器芯片;在所述周边设备控制器芯片中执行所述固件程序;重新读取周边设备控制器芯片信息,确定所述周边设备控制器芯片中的固件程序;及根据所述USB控制器类型对所述周边设备控制器芯片进行控制。
5.如权利要求4所述的检测主机USB接口传输率的方法,其特征在于,根据所述USB控制器类型对所述周边设备控制器芯片进行控制的步骤还包括以下步骤执行固件程序初始化;开始接收所述周边设备控制器芯片的中断信号;根据接收到的芯片设置数据包情况执行相应操作;根据再次接收到的芯片设置数据包情况执行相应操作。
6.如权利要求5所述的检测主机USB接口传输率的方法,其特征在于,执行固件程序初始化为根据USB控制器的缓冲区端点,分配空间并执行相关缓存器设置。
7.如权利要求5所述的检测主机USB接口传输率的方法,其特征在于,根据接收到的芯片设置数据包情况执行相应操作为当接收到所述数据包时,根据所述数据包的内容执行相应操作。
8.如权利要求5所述的检测主机USB接口传输率的方法,其特征在于,根据接收到的芯片设置数据包情况执行相应操作为当未接收到所述数据包时,延迟1秒种后继续准备接收所述数据包。
9.如权利要求5所述的检测主机USB接口传输率的方法,其特征在于,根据再次接收到的芯片设置数据包情况执行相应操作为当再次接收到所述数据包时,执行其中的设备中断请求。
10.如权利要求5所述的检测主机USB接口传输率的方法,其特征在于,根据再次接收到的芯片设置数据包情况执行相应操作是当未再次接收到所述数据包时执行以下步骤当未再次接收到所述数据包时,确定USB总线空闲标志及延迟处理的设置情况;及根据所述设置情况执行相关操作,所述操作为当所述USB总线空闲标志及延迟处理都进行设置时,延迟对所述数据包的处理;当所述USB总线空闲标志未设置时,则设置所述标志;当所述延迟处理未设置时,则设置延迟处理。
11.一种检测主机USB接口传输率的系统,其特征在于,所述系统包括一电脑主机,所述电脑主机包括一USB控制器,用于提供执行检测的USB接口;及一驱动模块,用于生成提供检测的固件程序;一周边设备控制器芯片,所述周边设备控制器芯片包括一储存模块,用于存放检测数据;一固件处理模块,用于执行所述固件程序;及一连接电路,用于提供所述电脑主机与所述周边设备控制器芯片之间的连接电路。
12.如权利要求11所述的检测主机USB接口传输率的系统,其特征在于,所述周边设备控制器芯片为USB2.0周边设备控制器芯片。
13.如权利要求11所述的检测主机USB接口传输率的系统,其特征在于,所述储存模块为USB2.0芯片中的储存区。
全文摘要
一种检测主机USB接口传输率的系统及方法,通过固件程序直接利用USB2.0芯片内的储存区进行USB主机传输率测试,该系统包括由USB控制器及驱动模块组成的电脑主机,由储存模块及固件处理模块组成的周边设备控制器芯片,以及连接电路,首先启动USB驱动程序,然后将USB驱动程序中的固件程序下载到周边设备控制器芯片中,再确定USB控制器的类型,接下来,根据USB控制器类型传输数据,确定传输时间,最后根据数据传输量及传输时间确定USB控制器的传输率。
文档编号G06F11/34GK1553334SQ03143188
公开日2004年12月8日 申请日期2003年6月5日 优先权日2003年6月5日
发明者刘文涵, 宋建福, 李冰 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1