外围设备的通用串行总线仿真的制作方法
【专利摘要】公开了一种用于对通用串行总线设备进行仿真的系统和方法。示例实施例可以包括仿真的USB(EUP)设备,所述设备可对USB外设或者USB连接的主机侧进行仿真。所述设备可以具有微控制器,所述微控制器利用软件进行编程以通过支持多个USB简档来对多个物理USB外围设备进行仿真。为了仿真指定物理USB外围设备,EUP设备可以接收包括与要被仿真的特定物理USB外围设备有关的设备标识符在内的描述符。为了仿真USB设备的主机连接,EUP设备可以对USB主机模式总线信号进行配置、启动总线上的USB帧、向仿真过程指示设备状态、并且在设备与仿真过程之间中继分组。
【专利说明】
外围设备的通用串行总线仿真
【背景技术】
[0001]计算设备可以经由通用串行总线(USB)与诸如鼠标、键盘、打印机、扬声器、扫描仪、麦克风、以及WEB照相机的外围设备相连接,所述通用串行总线是定义计算设备与外围设备之间的通信协议的行业标准。使用USB,当USB设备(107)被附连到与主计算设备(105)相连接(或者在其之上)的USB端口或者从USB端口移除USB设备(107)时,主计算设备(105)使用总线枚举过程以识别并管理USB设备(107)的状态。在图1a中图示了主机/设备关系。在枚举过程中每个设备(107)使用一系列描述符消息来识别本身。如在图1b(1l)中所图示的,描述符消息使用明确定义的协议并且可使用USB分析器来记录所述描述符消息。图1b示出了在USB设备与主计算设备之间发送的以便进行通信的各种命令。典型地,设备描述符包括设备ID、字符串、以及报告描述符。在图4a(401)中示出了示例设备描述符。附加消息可以定义设备的输入、输出、以及状态。
[0002]诸如销售点(POS)系统的许多传统计算系统要求多个USB外围设备以便正常运转。例如,计算系统可以包括USB键盘、USB鼠标、以及USB扫描仪/打印机。对计算系统以及与所有外围设备的交互进行测试以确定计算系统是否在正常工作这是至关重要的。这些系统可以要求USB设备与计算设备之间物理连接以测试USB设备/主机交互。
[0003]测试将要验证处于测试之中的计算设备或系统如何对外设做出响应并且还验证需要指定外设的应用和/或系统正常运转。为了测试并验证系统与外设的交互,通常对可与系统相连接的每个外围设备执行手动数据录入和验证规程。对每个设备来说需要手动录入,因为每个设备将其本身呈现出具有唯一 USB识别并且简单的通用接口测试不验证每个设备的指定特征。此外,当测试需要诸如特殊键盘这样的指定USB外设的系统或应用时,通常使用全系统来执行手动测试和确认。这些测试方法很容易出错并且可能需要被重复以保证准确性。
[0004]如本发明人所认识到,应有这样一种方式来自动地仿真要测试的系统中的外围设备,同时使误差最小化并确保准确性。
【发明内容】
[0005]所述说明书描述了通常与测试计算系统之内的USB外围设备交互有关的技术,并且具体地描述了与当测试计算设备和/或系统时可对多个USB外设进行仿真的方法和系统有关的技术。所述说明书还描述了通常与测试计算系统之内的USB硬件设备交互有关的技术,并且具体地描述了与当测试计算设备和/或系统时可对多个USB主机连接进行仿真的方法和系统有关的技术。
[0006]通常,在所述说明书中所描述的主题的一个方面可具体体现为对计算系统中的物理外围物设备进行仿真的仿真通用串行总线(USB)硬件设备以及用于测试外围设备交互的计算系统。
[0007]—种示例仿真USB硬件设备包括:存储配置描述符的存储器;USB转串行接口芯片;以及具有USB支持的一个或多个微控制器,一个或多个微控制器利用软件进行编程以通过支持多个USB简档来对多个物理USB外围设备进行仿真。所述一个或多个微控制器被配置为:通过接收包括与要被仿真的特定物理USB外围设备有关的设备标识符在内的指定描述符来对特定物理USB外围设备进行仿真;通过USB协议对测试中的计算设备做出响应;以及使用第二协议与用于模拟物理USB外围设备的USB交互的测试执行器计算设备进行通信。
[0008]—个示例计算系统包括:测试执行器计算设备,所述测试执行器计算设备被配置为运行测试框架、设备仿真、以及仿真USB硬件设备通信驱动器;处于测试之中的计算设备;以及至少一个仿真通用串行总线(USB)硬件设备,所述至少一个仿真通用串行总线硬件设备利用软件进行编程以通过支持多个USB简档来对多个物理USB外围设备进行仿真并且模拟第一物理USB外围设备与测试中的计算设备的USB交互。至少一个仿真USB硬件设备被配置为通过接收包括与要被仿真的特定物理USB外围设备有关的设备标识符在内的指定描述符来对特定物理USB外围设备进行仿真;通过USB协议对测试中的计算设备做出响应;以及使用第二协议与用于模拟物理USB外围设备的USB交互的测试执行器计算设备进行通信。
[0009]这些及其它实施例可选择性地包括一个或多个以下特征。一个或多个微控制器可以被配置为运行所述设备仿真应用,所述设备仿真应用与测试执行器计算设备相交互并且允许在不对存储在所述微控制器上的固件进行重写的情况下仿真USB硬件设备由测试执行器计算设备重新配置以仿真不同物理USB外围设备。一个或多个微控制器可以被配置为接收设置指示切换设备的状态的所述控制信号的软件命令,所述切换设备将特定物理USB外围设备或者仿真的USB硬件设备与测试中的计算设备相连接。示例硬件设备可以包括对仿真USB硬件设备提供附加功能的一个或多个微控制器上的一个或多个输入/输出端口。所述一个或多个输入/输出端口可以控制向仿真USB硬件设备的供电。对于非USB外围设备而言一个或多个输入/输出端口可以是串行端口。一个或多个输入/输出端口可以是与POS收银机进行通信的销售点(POS)收银机端口。一个或多个输入/输出端口可以与可向仿真USB硬件设备添加附加功能的扩展卡相连接。示例仿真USB硬件设备可以被配置为接收随后的指定描述符集以在不重写固件的情况下对第二物理USB外围设备进行仿真。示例仿真USB硬件设备可被配置为在无需从所述测试执行器计算设备要求交互的情况下,自动地对从测试中的计算设备所接收到的某些消息做出响应。示例计算机系统可以包括第二仿真USB硬件设备,所述第二仿真USB硬件设备对第二物理USB外围设备进行仿真并且对第二物理设备与测试中的计算设备的USB交互进行模拟。来自第一仿真USB硬件设备的数据可以用于对来自第二仿真USB硬件设备的响应进行计时或选择。测试执行器计算设备的测试框架可以包括测试前数据获取、测试用例执行、以及测试后数据获取和确认。USB切换设备可允许与所述测试中的计算设备进行USB连接,所述测试中的计算设备在仿真USB硬件设备与仿真USB设备正在仿真的特定物理USB外围设备之间进行切换。
[0010]在所述说明书中所描述的主题的附加方面可体现为对计算系统中的USB设备的主机连接进行仿真的仿真通用串行总线(USB)硬件设备以及用于测试外围设备交互和主机连接的计算系统。
[0011 ] 一种示例仿真USB硬件设备包括:存储配置描述符的存储器;USB转串行接口芯片;以及具有USB支持的一个或多个微控制器,一个或多个微控制器利用软件进行编程以通过接收所述软件来仿真物理USB设备的主机连接,所述软件对USB主机模式总线信号进行配置、启动串行总线上的USB帧、向设备仿真过程指示设备连接状态、并且在物理USB设备与设备仿真过程之间中继分组。
[0012]用于测试外围设备交互和主机连接的示例计算系统包括:测试执行器计算设备,所述测试执行器计算设备被配置为运行测试框架、主机连接、以及仿真USB硬件设备通信驱动器;处于测试之中的计算设备;物理USB外围设备;以及至少一个仿真通用串行总线(USB)硬件设备,这至少一个仿真通用串行总线(USB)硬件设备利用软件进行编程以仿真物理USB设备的主机连接,其中至少一个仿真通用串行总线硬件设备被配置为:对USB主机模式总线信号进行配置;启动串行总线上的USB帧、向设备仿真过程指示设备连接状态,并且在物理USB设备与设备仿真过程之间中继分组。
[0013]这些及其它实施例可选择性地包括一个或多个以下特征。示例仿真USB硬件设备可以包括对仿真USB硬件设备提供附加功能的一个或多个微控制器上的一个或多个输入/输出端口。所述一个或多个输入/输出端口可以控制向仿真USB硬件设备的供电。对于非USB外围设备而言一个或多个输入/输出端口可以是串行端口。一个或多个输入/输出端口可以是与POS收银机进行通信的销售点(POS)收银机端口。一个或多个输入/输出端口可以与可向仿真USB硬件设备添加附加功能的扩展卡相连接。一个或多个微控制器可以被配置成接收设置指示切换设备的状态的所述控制信号的软件命令,所述切换设备将物理USB主机设备或仿真的USB硬件设备与物理USB设备相连接。仿真USB硬件设备可以被配置为在不重写固件的情况下接收用于对物理USB外围设备进行仿真的指定描述符集。测试执行器计算设备可以对所接收到的数据进行监控并且过滤并显示所接收到的数据。USB切换设备可以被包括在计算系统之中,其允许与要在仿真USB硬件设备与仿真USB设备所仿真的物理主机连接之间被切换的物理USB外围设备进行USB连接。
[0014]在仅通过说明的方式所给出的附图以及下面的描述中阐述了对本发明的一个或多个实施例的细节。通过所述描述、附图、以及权利要求本发明的其它特征、方面、以及优点将变得显而易见。各个附图中的相同参考数字和标记表示相同元素。
【附图说明】
[0015]图1a是图示了主计算设备与物理USB外围设备之间的通常的枚举过程的框图。
[0016]图1b图示了在USB设备与主计算设备之间发送的以便进行通信的各种命令。
[0017]图2是示例仿真的USB硬件设备的示意图。
[0018]图3是具有USB切换设备的示例仿真的USB硬件设备的示意图。
[0019]图4a是用于对仿真特定USB外围设备的示例微控制器进行编程的示例伪码。
[0020]图4b是来自对仿真特定USB外围设备的示例微控制器进行编程的图4a的示例伪码的继续。
[0021]图5a是用于对通用串行总线外围设备进行仿真的示例性方法的流程图。
[0022]图5b是用于对通用串行总线连接进行仿真的示例性方法的流程图。
[0023]图6a是POS测试用例的示例。
[0024]图6b是用于POS测试的组件的示例框图。
[0025]图7是对USB连接的主机侧进行仿真的示例仿真USB硬件设备的示意图。
[0026]图8是图示了示例性计算设备的框图。
【具体实施方式】
[0027]根据示例实施例,为了测试需要至少一个USB外围设备的系统,存在仿真外设和/或主机连接的仿真的USB外围(EUP)硬件设备。可以通过诸如“仿真的USB外围(EUP)设备”、“仿真的USB外围硬件设备”、以及“仿真的USB硬件设备”的若干术语来指代示例硬件设备。这些术语都是指具有根据设备的配置而在主机或设备模式下进行操作的能力的相同设备。
[0028]一种示例EUP设备可以能够在两种模式之间切换:设备模式和主机模式。在设备模式中,EUP设备能够对许多不同外设进行仿真。在主机模式中,EUP设备可以对USB连接的主机侧进行仿真。这还可以是仿真USB外设确认框架,该仿真USB外设确认框架包括EUP设备、运行测试脚本的测试执行器计算设备、以及正在测试其外设交互的系统(例如处于测试之中的计算设备)。
[0029]处于设备模式的EUP设备
[0030]如图2所示,示例仿真USB外围硬件设备(EUP)可以包括具有USB支持的一个或多个微控制器(203)以及USB转串行接口芯片(202)。USB支持可以是内置的或者可以使用外部芯片。EUP设备可以对于每个USB信道具有一个微控制器,但也可以具有多个微控制器和USB信道,串行芯片(202)可以创建与测试执行器计算设备(201)的连接。测试执行器计算设备
(201)是运行测试应用和EUP驱动器的设备以便EUP设备可以与测试中的计算设备(204)相交互。
[0031]在一些实施例中,处于设备模式的EUP设备可能不仅仅被用于测试目的。例如,EUP设备可被用于仿真可能不容易得到或者与传统计算设备相接口连接的外围设备。在这些情况下,仍然可以将EUP设备与测试执行器计算设备相连接以便接收命令并且与计算设备相连接。此后EUP设备与计算设备相交互以作为难以获得的或者不容易获得的外围设备或者作为与传统计算设备的接口。
[0032]微控制器中的USB支持可以允许微控制器附连到USB上/从USB拆下、检测重置、接收请求或消息、并且发送消息。在设备模式中,每个微控制器可以每次仿真USB外围设备的一个实例。
[0033]USB接口可以仅自动地接收寻址到EUP设备的分组并且中止通过端点传入的分组。在通常的USB设备中,在固件中对所有指令和响应进行编程并且将所选消息部分转发至测试中的计算设备并且从测试中的计算设备被转发。在示例实施例中,EUP设备运行与测试中的计算设备相交互的应用以仿真给定的USB物理设备。因为EUP设备运行在固件之上的应用,因此EUP设备可被配置成在不对存储在微控制器上的固件进行重写的情况下仿真不同设备。
[0034]在一些实施例中,如在图3中所图示的,可以存在由EUP设备(310)所控制的USB切换设备(300)。示例切换设备(301)可以是作为用于使物理外设(305)与示例系统相连接或断开的硬件组件而实现的。该切换设备(300)可允许将USB连接在EUP设备(模拟的USB外围设备)(310)与EUP设备所表示的以便测试计算系统内两者的交互的物理设备(305)(USB外设)之间变化。
[0035]示例切换设备(300)可以具有用于物理设备(305)的加电USB连接器以及与测试系统相连接的功率输入连接器。切换设备(300)可以仅对USB信号连接进行切换。可以将来自测试应用的软件命令发送到EUP设备(310)的微控制器(303)以设置用以指定切换设备的状态的控制信号以示出物理USB外设或者仿真外设在给定时间是否相连接。如果EUP测试执行器计算设备(301)未被连接或者未被用于测试,那么示例切换设备(300)可以默认与物理设备(305)相连接。当EUP设备(310)被配置为使用时,EUP驱动器软件可以将EUP设备(310)切换到系统之中。如果测试应用未运行该软件以控制切换设备(300)或者EUP设备(310)未加电时,切换设备(300)恢复到通过连接而穿过套接字。
[0036]示例EUP设备可以包括微控制器上的附加输入/输出(1)端口以提供功能,诸如对处于测试之中的计算设备或系统的功率进行管理以及提供用于非USB外设测试的串行端口。每个EUP微控制器可在给定时间仿真一个物理USB外围设备。另外,在仿真物理USB外围设备的同时,微控制器还可提供对一个或多个串行设备以及一个或多个物理接触切换设备的仿真。在一些实施例中,除了别的以外,输入/输出(1)端口可以对POS收银机进行仿真,所述POS收银机可以感知请求打开抽屉的信号并且生成指示抽屉是打开的信号。此外,输入/输出端口可以被用于将扩展卡添加到EUP设备以便提供有待定义的附加功能。
[0037]为了使EUP设备仿真外围设备,可以利用通用软件对示例EUP设备的微控制器进行编程,所述通用软件可对用于与测试中的计算设备相交互的标准USB协议以及与测试执行器设备相交互的串行协议进行解释并做出响应。在图4a和4b中图示了用于配置微控制器的示例代码。测试执行器计算设备可以使用该代码以将包括与特定USB外围设备有关的指定描述符在内的任何USB简档加载到EUP微控制器上。指定描述符可以包括设备ID、字符串、以及报告描述符;因此EUP设备可以仿真特定设备的特定型号和实例。例如,针对如图4a(401)中所示出的特定键盘型号,测试执行器计算设备可以将指定描述符信息提供给EUP设备。当将描述符信息被加载到EUP设备上时,EUP设备仿真针对其加载描述符的特定键盘型号的功能。在测试执行器计算设备与EUP设备之间存在有通信协议,所述通信协议定义了分组,设备将对所述分组自动做出响应或者将所述分组转发到测试执行器计算设备。任何未被指定的命令不会发出响应,因为物理设备不会对所有命令做出响应。
[0038]测试执行器计算设备可以指定微控制器自动对某些消息做出响应。测试执行器计算设备还可以对要被发送到本身的某些USB分组进行配置以便可由运行在测试执行器计算设备上的设备仿真过程来计算该应答。在测试执行器计算设备上使用设备仿真过程可允许要在设备上进行的复杂的仿真。
[0039]EUP设备可以仿真实际USB外围设备将在正常操作中发送的任何消息。因为描述符信息被加载到EUP设备上,因此可完成枚举过程而无需测试执行器计算设备交互。USB标准需要用以在某个时间量(诸如十毫秒)之内执行枚举的设备。通过将枚举数据加载到示例EUP设备的存储器之中,EUP设备能够在所需的超时期间之内完成该枚举而不取决于在期望的时间帧之内做出响应的测试运行器应用。运行在测试执行器计算设备上的设备仿真过程可以生成具有较长响应超时的其它消息。
[0040]标准USB总线枚举包括若干步骤。首先,USB设备所附连到的端口向主计算设备告警USB设备已被连接并且USB设备处于加电状态。接下来,USB主机将命令发送到该端口并且向USB设备分配唯一地址。USB设备的状态变为寻址(addressed)状态。USB主机从USB设备读取配置信息并且确定将如何使用USB设备。此后,USB主机向设备分配配置值并且将设备的状态设置为已配置。
[0041]EUP设备使用由测试执行器计算设备先前所存储的数据对来自处于测试枚举之中的计算设备的枚举命令做出响应。枚举过程与实际物理外围物设备类似。
[0042]在枚举之后,通过EUP设备将命令从测试应用发送到测试中的计算设备或系统。将来自测试中的计算设备的响应返回到EUP设备,此后所述EUP设备将该响应返回到测试应用。使用该处理,测试应用可继续适当地响应,仿真通过EUP设备所测试的设备。
[0043]在一些实施例中,示例仿真USB外围确认框架可以存在于测试执行器计算设备上。该框架可以配置至少一个EUP设备来仿真外设USB设备。此后该框架可运行测试用例的序列,如果可能的话对来自每个测试用例的意外输出进行处理,确认从每个测试用例生成了预期结果,并且指示每个测试用例成功或失败。例如,可以提供示例确认框架以仿真销售点(POS)系统。为了执行POS系统测试,示例性实施例可以附加地包括销售点(POS)终端和POS控制器以及若干EUP设备以仿真诸如键盘和扫描仪的外设。在一些情况下,终端和控制器可以是相同系统。此外,可以存在多个终端和多个控制器。API模拟服务器还可以被用于创建端到端测试环境。测试可以与所述测试应用一起执行,所述测试应用用于根据所提供的输入以及系统上的应用的行为来确认系统的行为。
[0044]该框架可以读取系统配置并且选择要运行的测试。此后,可以对POS终端进行初始化。测试可以被排序并且然后被执行。随着测试执行,日志可以记录事务和响应。此后测试程序可以采用已收集到的数据并且将该数据转换成易于确认的形式。可以记录所收集到的数据和结果以用于后续调查。在一些实例中,如果测试没有正确运行,那么可以允许对该系统手动干预以纠正问题。
[0045]通过将测试执行器计算设备与具有USB支持以及USB转串行接口芯片的仿真USB外围(EUP)设备上的微控制器相连接,示例方法开始于测试执行器计算设备中。微控制器可以是使用诸如设备仿真应用的软件来配置的,所述软件可通过支持如在图5a中所图示的
(501)的多个USB简档来仿真多个物理USB外围设备。可以将非设备指定的USB应用存储在微控制器的闪速存储器中。该软件可以解释并响应于与测试中的计算设备相交互的标准USB协议以及用于与测试执行器计算设备相交互的串行协议。使用该串行协议,微控制器可以与模拟正在被仿真的特定物理USB外围设备的USB交互的测试执行器计算设备进行通信
(502)。将定义USB简档的指定描述符加载到EUP设备的微控制器之内(503)。可以将指定描述符所定义的设备配置存储在微控制器的RAM中。这些描述符包括与微控制器将仿真的实际USB设备有关的设备标识符。在该示例情况中,微控制器加载有POS扫描仪的设备ID。此后,可在仿真的设备与测试中的计算设备之间发送消息以对实际USB外围设备与测试中的计算设备之间的实际消息进行仿真(506)。可以通过微控制器从测试中的计算设备接收对外围设备的输出并且将其转发到测试执行器计算设备。
[0046]图6a图示了POS系统的示例测试用例。在该测试用例中,当物品被购买时,会员卡被模拟为已被扫描并且此后两个通用产品代码(UPC)被模拟为已被扫描。图6b图示了示例系统。测试执行器计算设备(601)可以运行包含测试框架、设备仿真、以及EUP设备通信驱动器的一个过程。替选地,测试执行器计算设备(601)可以对该框架、仿真、以及通信驱动器运行不同过程。示例测试框架可以包括:测试前数据捕获、测试用例执行、以及测试后数据捕获和确认。在诸如在图6b中所图示的系统的示例系统中,可以存在不止一个EUP设备(610a,610b)以在给定时间对系统中的多个外围设备进行仿真。例如,如图6b所示,一个EUP设备可以仿真条形码扫描仪USB设备(610a)并且另一 EUP设备可以仿真POS键盘(610b)。可以经由测试执行器计算设备来存储并发送设备仿真。测试执行器计算设备(601)具有EUP设备通信驱动器以与EUP设备进行通信。对每个EUP设备可能存在执行线程并且在EUP设备之间使用输入/输出数据进行协同/通信。在一些实施例中,一个EUP设备可以输出用于对来自第二EUP设备的响应进行计时或选择的数据。例如,在示例POS系统中,可能在键盘上存在WAIT灯,该WAIT灯如果被激活,则使扫描仪停止接受任何更多扫描。该软件使用这种关系以避免过度运行POS输入缓冲区。替选地,当存在错误消息或提示时,示例实施例可以读取POS系统的显示器以确定要发送的下一键。
[0047]在该测试用例中,期望仿真扫描仪的EUP设备(610a)正确地发送用于通过数字标识符以及所扫描的两个产品的标识符来识别会员卡的消息。期望仿真键盘的EUP设备(610b)正确地发送与被按下的键盘键相对应的输入串并且释放“QTY”和“TOTAL” XashOut(结账)可以是用于查看显示器的智能例程并且此后通过键盘发送正确录入。确认可以确定出测试已经按预期被执行。确认可以包括:验证事务已经按预期发生、验证所应用的优惠券号码是正确的、或者验证外围设备所辨识出的客户号码是正确的。
[0048]EUP设备可在给定时间对每个微控制器仿真一个外围设备。如果EUP设备包含不止一个微控制器,那么EUP设备可以同时仿真不同外围设备,这向每个微控制器分配一个外围设备。
[0049]如在POS系统示例中所讨论的,计算系统可能需要测试多个外围设备交互。计算系统可能需要利用鼠标、键盘、以及打印机来测试功能。在一个实施例中,一个EUP设备可以被用于以串行方式来测试每个设备。可以对EUP设备进行编程以在不同时间仿真每个外设。例如,EUP设备可以首先仿真鼠标,此后仿真键盘,此后仿真打印机。替选地,多个EUP设备可以被用于仿真计算系统之内的多个外围设备。例如,三个EUP设备可以分别被用于仿真鼠标、键盘、以及打印机。此后计算系统可以执行对与外围设备的多个交互的并行测试。通过仿真多个外设,诸如状态灯的来自测试中的计算设备的操作系统的指示器可被用于对设置到诸如键盘或扫描仪的其它外设的信息速率进行调节。
[0050]处于主机模式的EUP设备
[0051 ] 在一些实施例中,EUP设备可以仿真如图7所图示的USB连接的主机侧。EUP设备可以含有上面就设备模式所讨论的所有特征。另外,EUP设备的微控制器端口可以实现工作状态中的USB以便设备可以充当处于设备模式中的外设或者处于主机模式中的USB设备的主机端。
[0052]为了仿真主机连接,EUP微控制器可以接收软件,所述软件配置了 USB主机模式总线信号(510)、启动总线上的USB帧(512)、向仿真过程指示设备状态(连接或断开)(513)、并且如图5b中所图示的在设备与仿真过程之间中继分组(516)。可以利用15k电阻器来下拉主机模式总线信号线D+和D-并且可以以Ikhz或8khz生成USB帧分组。主机模式中的EUP设备的USB接口可以将分组发送到特定设备和端点。因此与它们处于设备模式相比在主机模式中可以对分组缓冲器进行不同地处理。在示例EUP设备中,微控制器可以具有缓冲描述符表(BDT)以跟踪用于每个端点(每个设备)或传出分组(主机)的存储器。如果正在发送分组并且分组是固定数据,那么它可以是从程序空间中的表格发送的而不是从RAM发送的。此外,设备还可以能够在设备模式与主机模式之间动态地变化。
[0053]切换设备可以允许特定物理USB主机设备或被连接到物理USB外围设备的仿真的USB硬件设备的切换。就仿真物理USB外围设备的EUP设备而言,该切换设备可以与如上面所讨论的切换设备类似或相同。
[0054]可以存在用于将物理外设与配置在USB主机模式中的EUP设备相连接的附加切换设备。如图7所示,EUP设备的一个微控制器可以在主机模式中并且与还被连接至仿真USB设备(设备模式)的EUP设备的第二微控制器相连接的测试执行器计算设备。处于设备模式的EUP设备的微控制器可以被连接至测试中的计算设备。该配置可以允许通过与总线分析器类似的系统来追踪数据。可以经由EUP设备来收集用于仿真新设备的数据而无需任何附加硬件。测试执行器计算设备可以监控所接收的数据并且对所接收到的数据进行过滤并显示。图7的系统配置还可以允许通过运行EUP设备的软件来修改来自USB外围设备的数据。例如,仿真USB设备可以使所报告的USB鼠标的运动方向倒转以便可使鼠标上下颠倒并且被用作轨迹球。另外或替选地,所述两个微控制器(或两个EUP设备)的组合可以用于根据预期功能来有选择地传递数据。虽然图7描绘了具有两个微控制器的一个EUP设备:一个处于设备模式并且一个处于主机模式,但是可以使用两个EUP设备或者具有更多微控制器的EUP设备实现类似配置。例如,可以将一个EUP设备配置为在主机模式中并且可以将另一个EUP设备配置在设备模式中。替选地,EUP设备可以具有每个信道都有一个微控制器的四个信道。该示例设备可以提供总线分析器模式的两个实例,其中每个实例需要主机和设备信道。
[0055]主机与设备模式之间的切换
[0056]当USB接口被配置为主机模式时,配置适当USB下拉电阻器,并且在总线上生成USB帧。当设备被连接时,将消息发送到执行器,所述执行器此后启动枚举过程。来自执行器的软件命令可以指示出微控制器是处于设备还是主机模式。
[0057]高级框图
[0058]图8是用于仿真要被测试的计算机系统中的通用串行总线设备而布置的示例计算机(800)的高级框图。在非常基本的配置(801)中,计算设备(800)典型地包括一个或多个处理器(810)以及系统存储器(820)。存储器总线(830)可用于在处理器(810)与系统存储器(820)之间进行通信。
[0059]根据所期望的配置,处理器(810)可以是包括但不限于微处理器(μΡ)、微控制器(μC)、数字信号处理器(DSP)、或者其任意组合的任何类型。处理器(810)可包括诸如级别一高速缓存(811)和级别二高速缓存(812)的一个以上级别的高速缓存、处理器内核(813)、以及寄存器(814)。处理器内核(813)可包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理内核(DSP内核)、或者其任意组合。存储器控制器(816)还可以与处理器(810) —起使用,或者在一些实施方式中存储器控制器(815)可是处理器(710)的内部部分。
[0060]根据所期望的配置,系统存储器(820)可以是包括但不局限于易失性存储器(诸如RAM)、非易失存储器(诸如R0M、闪速存储器等等)、或者其任何组合的任何类型。系统存储器(820)典型地包括操作系统(821)、一个或多个应用(822)、以及程序数据(824)。应用(822)可以包括用于仿真通用串行总线硬件设备的方法。程序数据(824)包括存储指令,所述指令当被一个或多个处理设备执行时实现用于仿真处于测试之中的计算设备中的通用串行总线硬件设备。在一些实施例中,应用(822)可被布置成利用操作系统(821)上的程序数据(824)进行操作。
[0061]计算设备(800)可具有附加特征或功能以及附加接口,以促进在基本配置(801)与任何所需设备和接口之间的通信。
[0062]系统存储器(820)是计算机存储介质的示例。计算机存储介质包括但不局限于RAM、R0M、EEPR0M、闪速存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或其它磁存储设备、或者可以用于存储期望的信息且可由计算设备800访问的任何其它介质。任何这样的计算机存储介质可是设备(800)的一部分。
[0063]计算设备(800)可以作为诸如蜂窝电话、智能电话、个人数据助理(PDA)、个人媒体播放器设备、平板计算机(平板)、无线web观看设备、个人耳机设备、应用指定设备、或者包括上述功能中的任何功能的混合设备的小型便携式(或移动)电子设备的一部分被实现的。计算设备(800)还可以作为包括膝上型计算机和非膝上型计算机配置这两者在内的个人计算机实现的。
[0064]上面的详细描述已经由框图、流程图、和/或示例的使用对设备和/或处理的各个实施例进行了阐述。就这样的框图、流程图、和/或示例包含一个或多个功能和/或操作而言,本领域普通技术人员可以理解的是这样的框图、流程图、或示例之内的每个功能和/或操作可是由多种硬件、软件、固件、或者其实质上的任何组合而单独地和/或整体地实现的。在一个实施例中,本文中所描述的主题的若干部分可以是经由应用专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、其它集成形式、或者作为Web服务而实现的。然而,本领域普通技术人员将认识到本文中所公开的实施例的一些方面可全部地或部分地作为运行在一个或多个计算机上的一个或多个计算机程序、作为运行在一个或多个处理器上的一个或多个程序、作为固件、或者作为其实际上地任何组合而等同地在集成电路中实现,并且鉴于本公开对软件和/或固件设计电路和/或编写代码将完全在本领域技术人员的技术范围内。另外,本领域普通技术人员将理解的是本文中所描述的主题的机制能够作为多种形式的程序产品而被分配,并且本文中所描述的主题的说明性实施例应用,而与用于实际上执行该分配的非暂时性信号承载介质的特定类型无关。非暂时性信号承载介质的示例包括但不局限于以下:诸如软盘、硬盘驱动、压缩盘(CD)、数字视频盘(DVD)、数字磁带、计算机存储器等等的可记录型介质;以及诸如数字和/或模拟通信介质(例如光纤电缆、波导、有线通信链路、无线通信链路等等)的传输型介质。
[0065]就本文中复数和/或单数形式的术语的使用而言,本领域普通技术人员可以根据上下文和/或应用的需要从复数转换成单数和/或者从单数转换成复数。为明确起见,在本文中可以对各种单数/复数变换做出明确阐述。
[0066]因而,已对本主题的特定实施例进行了描述。其它实施例在以下权利要求的范围之内。在一些情况下,在权利要求中所列举的动作可以不同顺序执行并且仍可获得期望结果。另外,在附图中所描绘的过程不是必须需要所示的特定顺序或连续顺序才能获得期望结果。在某些实现中,多任务和并行处理可能是有利的。
【主权项】
1.一种仿真计算系统中的物理外围设备的仿真通用串行总线USB硬件设备,所述仿真USB硬件设备包括: 用于存储配置描述符的存储器; USB转串行接口芯片;以及 具有USB支持的一个或多个微控制器,所述一个或多个微控制器可用软件编程以通过支持多个USB简档来对多个物理USB外围设备进行仿真; 其中,所述一个或多个微控制器被配置为: 通过接收包括与被仿真的特定物理USB外围设备有关的设备标识符的指定描述符来对所述特定物理USB外围设备进行仿真; 通过USB协议对测试中的计算设备做出响应;以及 使用第二协议与模拟所述物理USB外围设备的USB交互的测试执行器计算设备进行通?目O2.根据权利要求1所述的仿真USB硬件设备,其中,所述一个或多个微控制器进一步被配置为: 运行与所述测试执行器计算设备相交互的设备仿真应用,所述设备仿真应用允许在不对存储在所述微控制器上的固件进行重写的情况下所述仿真USB硬件设备由所述测试执行器计算设备重新配置以仿真不同的物理USB外围设备。3.根据权利要求1所述的仿真USB硬件设备,进一步包括: 对所述仿真USB硬件设备提供附加功能的所述一个或多个微控制器上的一个或多个输入/输出端口。4.根据权利要求3所述的仿真USB硬件设备,其中,所述一个或多个输入/输出端口控制向所述仿真USB硬件设备的供电。5.根据权利要求3所述的仿真USB硬件设备,其中,对于非USB外围设备而言所述一个或多个输入/输出端口是串行端口。6.根据权利要求3所述的仿真USB硬件设备,其中,所述一个或多个输入/输出端口是与销售点POS收银机进行通信的POS收银机端口。7.根据权利要求3所述的仿真USB硬件设备,其中,所述一个或多个输入/输出端口连接到能够向所述仿真USB硬件设备添加附加功能的扩展卡。8.根据权利要求1所述的仿真USB硬件设备,其中,所述一个或多个微控制器进一步被配置为: 接收设置指示切换设备的状态的控制信号的软件命令,所述切换设备将所述特定物理USB外围设备或所仿真的USB硬件设备与所述测试中的计算设备相连接。9.一种用于测试外围设备交互的计算系统,所述计算系统包括: 测试执行器计算设备,所述测试执行器计算设备被配置为运行测试框架、设备仿真、以及仿真USB硬件设备通信驱动器; 测试中的计算设备;以及 至少一个仿真通用串行总线USB硬件设备,所述至少一个仿真通用串行总线硬件设备可用软件编程以通过支持多个USB简档来对多个物理USB外围设备进行仿真并且模拟第一物理USB外围设备与所述测试中的计算设备的USB交互, 其中,所述至少一个仿真通用串行总线硬件设备被配置为: 通过接收包括与被仿真的特定物理USB外围设备有关的设备标识符的指定描述符来对所述特定物理USB外围设备进行仿真; 通过USB协议对测试中的计算设备做出响应;以及 使用第二协议与模拟所述物理USB外围设备的USB交互的测试执行器计算设备进行通?目O10.根据权利要求9所述的计算机系统,其中,所述至少一个仿真通用串行总线硬件设备进一步被配置为: 接收随后的指定描述符集以在不重写固件的情况下对第二物理USB外围设备进行仿真。11.根据权利要求9所述的计算机系统,其中,所述至少一个仿真通用串行总线硬件设备进一步被配置为:在无需来自所述测试执行器计算设备的交互的情况下,自动地对从所述测试中的计算设备所接收到的某些消息做出响应。12.根据权利要求9所述的计算机系统,其中,所述至少一个仿真通用串行总线硬件设备进一步被配置为具有对至少一个所述仿真USB硬件设备提供附加功能的所述一个或多个微控制器上的一个或多个输入/输出端口。13.根据权利要求12所述的计算机系统,其中,所述一个或多个输入/输出端口控制向所述至少一个仿真USB硬件设备的供电。14.根据权利要求12所述的计算机系统,其中,对于非USB外围设备而言所述一个或多个输入/输出端口是串行端口。15.根据权利要求12所述的计算机系统,其中,所述一个或多个输入/输出端口是与销售点POS收银机进行通信的POS收银机端口。16.根据权利要求12所述的计算机系统,其中,所述一个或多个输入/输出端口连接到能够向所述至少一个仿真USB硬件设备添加附加功能的扩展卡。17.根据权利要求9所述的计算机系统,进一步包括附加仿真USB硬件设备,所述附加仿真USB硬件设备对第二物理USB外围设备进行仿真并且对所述第二物理USB外围设备与所述测试中的计算设备的USB交互进行模拟。18.根据权利要求17所述的计算系统,进一步包括所述附加仿真USB硬件设备与所述至少一个仿真USB硬件设备之间的协同,其中来自至少一个仿真USB硬件设备的数据被用于对来自所述附加仿真USB硬件设备的响应进行计时或选择。19.根据权利要求9所述的计算系统,其中,所述测试执行器计算设备的测试框架包括测试前数据捕获、测试用例执行、以及测试后数据捕获和确认。20.根据权利要求9所述的计算机系统,进一步包括USB切换设备,所述USB切换设备允许与所述测试中的计算设备的USB连接在所述仿真USB硬件设备与所述仿真USB设备正在仿真的所述特定物理USB外围设备之间切换。21.—种仿真计算系统中的USB设备的主机连接的仿真通用串行总线USB硬件设备,所述仿真USB硬件设备包括: 用于存储配置描述符的存储器; USB转串行接口芯片;以及 具有USB支持的一个或多个微控制器,所述一个或多个微控制器可用软件编程以通过接收软件来仿真物理USB设备的主机连接,所述软件: 对USB主机模式总线信号进行配置, 启动串行总线上的USB帧, 向设备仿真过程指示设备连接状态,并且 在物理USB设备与所述设备仿真过程之间中继分组。22.根据权利要求1所述的仿真USB硬件设备,进一步包括: 对所述仿真USB硬件设备提供附加功能的所述一个或多个微控制器上的一个或多个输入/输出端口。23.根据权利要求3所述的仿真USB硬件设备,其中,所述一个或多个输入/输出端口控制向所述仿真USB硬件设备的供电。24.根据权利要求3所述的仿真USB硬件设备,其中,对于非USB外围设备而言所述一个或多个输入/输出端口是串行端口。25.根据权利要求3所述的仿真USB硬件设备,其中,所述一个或多个输入/输出端口是与销售点POS收银机进行通信的POS收银机端口。26.根据权利要求3所述的仿真USB硬件设备,其中,所述一个或多个输入/输出端口连接到能够向所述仿真USB硬件设备添加附加功能的扩展卡。27.根据权利要求1所述的仿真USB硬件设备,其中,所述一个或多个微控制器进一步被配置为: 接收设置指示切换设备的状态的控制信号的软件命令,所述切换设备将物理USB主机设备或仿真的USB硬件设备与所述物理USB设备相连接。28.根据权利要求1所述的仿真USB硬件设备,进一步被配置为: 接收指定描述符集以在不重写固件的情况下仿真物理USB外围设备。29.—种用于测试外围设备交互以及主机连接的计算系统,所述计算系统包括: 测试执行器计算设备,所述测试执行器计算设备被配置为运行测试框架、主机连接、以及仿真USB硬件设备通信驱动器; 测试中的计算设备; 物理USB外围设备;以及 至少一个仿真通用串行总线USB硬件设备,所述至少一个仿真通用串行总线硬件设备可用软件编程以仿真物理USB设备的主机连接,其中所述至少一个仿真通用串行总线硬件设备被配置为: 对USB主机模式总线信号进行配置; 启动串行总线上的USB帧; 向设备仿真过程指示设备连接状态;并且 在所述物理USB外围设备与所述设备仿真过程之间中继分组。30.根据权利要求9所述的计算机系统,其中,所述测试执行器计算设备对所接收的数据进行监控并且过滤并显示所接收到的数据。31.根据权利要求9所述的计算机系统,进一步包括USB切换设备,所述USB切换设备允许与所述物理USB外围设备的USB连接在所述仿真USB硬件设备与所述仿真USB设备正在仿真的物理主机连接之间切换。32.根据权利要求9所述的计算机系统,其中,所述至少一个仿真通用串行总线硬件设备进一步被配置为具有对至少一个所述仿真USB硬件设备提供附加功能的所述一个或多个微控制器上的一个或多个输入/输出端口。33.根据权利要求12所述的计算机系统,其中,所述一个或多个输入/输出端口控制向所述至少一个仿真USB硬件设备的供电。34.根据权利要求12所述的计算机系统,其中,对于非USB外围设备而言所述一个或多个输入/输出端口是串行端口。35.根据权利要求12所述的计算机系统,其中,所述一个或多个输入/输出端口是与销售点POS收银机进行通信的POS收银机端口。36.根据权利要求12所述的计算机系统,其中,所述一个或多个输入/输出端口连接到能够向所述至少一个仿真USB硬件设备添加附加功能的扩展卡。
【文档编号】G06F13/42GK105940384SQ201580006340
【公开日】2016年9月14日
【申请日】2015年3月13日
【发明人】丹尼尔·A·克里斯蒂安, 贝尔德·乔纳森·拉姆齐
【申请人】谷歌公司