CN105378692A - 通用串行总线数据路由 - Google Patents
通用串行总线数据路由 Download PDFInfo
- Publication number
- CN105378692A CN105378692A CN201380076252.6A CN201380076252A CN105378692A CN 105378692 A CN105378692 A CN 105378692A CN 201380076252 A CN201380076252 A CN 201380076252A CN 105378692 A CN105378692 A CN 105378692A
- Authority
- CN
- China
- Prior art keywords
- usb
- host computer
- computer device
- attachment
- computing equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000002093 peripheral effect Effects 0.000 claims abstract description 73
- 238000000034 method Methods 0.000 claims description 40
- 238000004891 communication Methods 0.000 claims description 13
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 230000001960 triggered effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 21
- 238000009434 installation Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000003384 imaging method Methods 0.000 description 8
- 238000013500 data storage Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
公开了用于通用串行总线数据路由的计算设备的示例。在根据本公开的方面的一种实现中,计算设备可以包括一个或多个处理器、存储器和数据存储部。计算设备还可以包括第一通用串行总线(USB)连接端口,用于将附着的计算设备通信地耦合到主计算设备;以及第二USB连接端口,用于将外围设备通信地耦合到主计算设备。计算设备还可以包括存储在存储器中且在一个或多个处理器中的至少一个上执行的USB数据路由模块,用于经由主计算设备在附着的计算设备和外围设备之间路由USB数据。
Description
背景技术
计算机系统的用户可能期望在诸如雇主的网络的他人网络上使用他们自己的设备。例如,用户可能希望使用诸如膝上型计算机、平板计算机等他自己的计算设备在工作时或从远程位置安全地连接到其雇主的网络。
附图说明
以下的详细描述参照附图,其中:
图1图示了根据本公开的示例的用于在附着的计算设备和外围设备之间路由USB数据的主计算设备的框图;
图2图示了根据本公开的示例的用于在附着的计算设备和外围设备之间路由USB数据的主计算设备的框图;
图3图示了根据本公开的示例的用于通过主计算设备在附着的计算设备和外围设备之间路由USB数据的方法300的流程图;以及
图4图示在主计算设备、附着的计算设备和外围设备之间的USB数据路由的框图。
具体实施方式
希望远程访问诸如用户的雇主的网络的网络的用户可以利用连接到用户自己的计算设备的专用计算设备,诸如USB棒上的计算设备。当使用USB棒上的计算设备时,用户可能希望访问连接到用户自己的计算设备的外围设备。
计算设备的用户可能期望连接专用计算设备以用于访问远程网络。例如,用户可能期望从远程位置或者从用户自己的设备访问用户的雇主的网络。要这样做,用户可以将小设备形式的专用计算设备(诸如通用串行总线(USB)设备)附着到用户的计算机。该专用的或附着的计算设备可以附着到主计算设备,附着的计算设备使得用户能够经由主计算设备访问附着的计算设备上的专用计算环境。一旦用户将附着的计算设备附着到主计算设备,附着的计算设备就可以在附着的计算设备上启动并加载操作系统。然后,例如,用户可以通过主计算机经由web浏览器访问附着的计算设备上的操作系统。
然而,用户可能无法从在附着的计算设备上运行的操作系统会话通过USB访问连接到主计算设备的任何外围设备。例如,用户可能期望从在附着的计算设备上运行的操作系统会话在连接到主计算设备的打印机上打印文档。实际上,附着的计算设备可能不知道主计算设备具有任何附着的外围设备,因此在附着的计算设备上运行的操作系统会话不能访问那些附着的外围设备。
以前,主计算设备可能已经利用定制USB驱动程序和私有协议,来解码和重新编码附着的计算设备和外围设备之间的USB消息。该过程涉及在主计算设备上安装并运行的操作系统接收、解码、重新编码和重新传输数据。在此场景中,主计算设备可以经由USB通信链路从附着的计算设备接收要发送到连接到主计算设备的外围设备的数据。主计算设备将接收数据、解码数据、将数据分割成分组、重新编码数据,以及然后将数据传输到外围设备。然后,外围设备可以按通常的方式接收数据、解码数据以及处理数据。
类似地,对于从外设发送到附着的计算设备的数据,主计算设备可以接收数据、解码数据、将数据分割成分组、重新编码数据并然后通过诸如TCP/IP或UDP的网络协议将数据传输到外围设备,以及然后重新组装USB数据并将它们插回到附着的计算设备的USB总线协议消息队列中。然后,附着的计算设备可以按通常的方式处理数据。
以前的方法具有的弊端是没有直接使用USB消息。而且,所有的USB消息需要被编码、传输、解码,导致了诸如智能卡、web摄像机和成像设备的同步设备和高带宽设备的问题。
下面将参照通用串行总线(USB)数据路由的若干示例描述各种示例,包括在附着的计算设备和连接到主计算设备的外围设备之间通过主计算设备进行的USB数据路由。本文所公开的USB数据路由利用安装在主计算设备上的专用USB驱动程序,其实现在主计算设备与附着的计算设备之间USB消息的共享,使得附着的计算设备可以访问和控制附着到同一USB总线的外围设备,而不需要更高层级的设备控制,例如主计算设备的操作系统的参与。
在一些实现中,USB消息不需要被打散、编码成分组、经由高层级网络协议(诸如TCP/IP或UDP)传输、以及然后解码、重新组装和处理。由先前过程产生的开销可能导致定时的问题并可能增加显著复杂度,因为从未设计或试图将USB消息分解成分组。本文描述的示例通过以下避免了不必要的USB消息编码、封包和传输的开销:使用现有的USB基础设施和接口,在附着的计算设备与附着到主计算设备的外围设备之间直接传输USB消息。这些和其他优势将从下面的描述而清楚。
图1图示了根据本公开的示例的用于在附着的计算设备120和外围设备130之间路由USB数据的主计算设备100的框图。应当理解的是,主计算设备可以包括任何合适类型的计算设备,例如包括智能电话、平板计算机、台式计算机、膝上型计算机、工作站、服务器、智能监控器、智能电视、数字标牌、科学仪器、零售销售点设备、视频墙、成像设备、外设等等。
主计算设备100可以包括处理器102,其可配置为处理并执行指令。处理器102可以是任何合适类型的处理器或微处理器,包括ARM处理器或其他类型的基于RISC的处理器,或者处理器102可包括通用处理器或专用处理器。
指令可以存储在非暂态有形计算机可读存储介质(诸如存储器设备104)上,或者存储在单独设备(未示出)上,或者存储在任何其他类型的存储指令以使得可编程处理器执行本文所描述的技术的易失性或非易失性存储器上。可替代地或附加地,主计算设备100可以包括专用硬件,诸如一个或多个集成电路、专用集成电路(ASIC)、专用特殊处理器(ASSP)、现场可编程门阵列(FPGA)或者前述专用硬件示例的任意组合,以用于执行本文所描述的技术。在一些实现中,适当的话,可以使用多个处理器连同多个存储器和/或多种类型的存储器。
在一些示例中,诸如图1中所示,可以在主计算设备100中包括数据存储部106,其可以用于存储数据。数据可以包括例如操作系统、一个或多个设备驱动程序、和/或其他合适的数据。数据存储部106可以是硬盘驱动器、闪速存储器设备、只读存储器设备、随机存取存储器设备、或者用于存储数据的另外的合适设备。数据存储部106还可以存储可以由主计算设备100的用户启动和使用的应用或程序。在其他示例中可以利用(相同或不同类型的)多个数据存储部。
主计算设备100还可以包括USB数据路由模块108,用于在USB附着的USB设备之间路由USB数据。在一个示例中,USB数据路由模块108可以在附着的计算设备120与外围设备130之间路由USB数据。在其他示例中,USB数据路由模块108可以在附着到或通信地耦合到主计算设备100的各种其他设备之间和当中路由USB数据。
在一个示例中,USB数据路由模块108可以是专用硬件组件,诸如修改的USB控制器芯片组。然而,在另一个示例中,USB数据路由模块可以集成到USB主控制器固件中,或者集成到安装在主计算设备200的操作系统上的USB驱动程序中。
例如,在不用主计算设备100上的应用层的辅助的情况下,USB数据路由模块108可以使主计算设备能够在附着的计算设备120和外围设备130之间和当中路由USB通信量。确切地说,USB数据路由模块108可以在硬件层级处理USB数据并在附着的计算设备120和外围设备130之间路由USB数据。在该场景中,USB数据不需要被解码、分解成分组、重新编码以及然后重新传输。另外,由于USB数据可以作为单个USB消息而不是打散的USB消息的多个分组被发送,因此接收设备(例如,外围设备130,如果附着的计算设备120为发送设备的话)不需要重新组装分组。以该方式,定日期发送过程期间将出现很少时延。而且,由于USB数据消息作为整体发送,因此存在可能丢失分割的消息的个体分组的降低的机会。
主计算设备100的用户可以对USB数据路由模块具有某种控制,所述用户可以是典型用户或管理员用户或者是主计算设备100制造商。例如,合适的一方可以选择应当将哪些消息和哪些设备路由到附着的计算设备120而不是到主计算设备100。另外,在一个示例中,当设备被附着和通信时可以修改该行为,而不用重置或拔掉任何设备。
附着的计算设备120可以是附着到主计算设备100的设备,其使得用户能够发起操作系统环境,诸如通过远程桌面协议、Citrix、虚拟机等的远程会话。例如,主计算设备的用户可以将附着的计算设备120附着到USB端口121。以该方式,在附着的计算设备120与主计算设备100之间形成USB连接123。USB连接123可以在主计算设备100与附着的计算设备120之间传输数据。数据可以经由USB连接123从主计算设备100发送到附着的计算设备120。类似地,数据可以经由USB连接123从附着的计算设备120发送到主计算设备100。USB连接可以包括物理电缆、系列电缆、和/或USB集线器或其他适当的连接,或者附着的计算设备可以直接附着到主计算设备100的USB端口121。USB端口121和USB端口131可以在计算设备100内的相同或不同的USB控制器上。而且,USB端口121和131可以连接到不同类型的USB控制器,诸如USB1.0、1.1、2.0和/或3.0。主计算设备100可以在每个控制器上安装模块,使得不同的控制器能够进行通信。在另一个示例中,主计算设备100的操作系统可以管理USB控制器。
外围设备130可以包括附着到和/或通信地耦合到主计算设备100的各种不同的外围设备。例如,外围设备130可以是附着到主计算设备100的打印机。外围设备130还可以是诸如web摄像机或扫描仪的成像设备、外部数据存储部设备、智能卡、安全访问设备或者任何数量的各种适当的外围设备。
外围设备130可以在主计算设备的USB接口端口131处通过USB连接133附着到和/或通信地耦合到主计算设备100。USB连接133可以在主计算设备100与外围设备130之间传输数据。数据可以经由USB连接133从主计算设备100发送到外围设备130。类似地,数据可以经过USB连接133从外围设备130发送到主计算设备100。USB连接可以包括物理电缆、系列电缆、和/或USB集线器或其他适当的连接,或者附着的计算设备可以直接附着到主计算设备100的USB端口121。
在一个示例中,USB数据可以经由USB连接123从附着的计算设备120被发送,并且可以在主计算设备100的USB端口121处被接收。主计算设备的USB数据路由模块108可以处理所接收的USB数据。在处理USB数据中,路由模块108可以确定应当将USB数据路由到另一个附着的设备,诸如外围设备130。在该情况中,USB数据路由模块108可以通过USB端口131经由USB连接133将从附着的计算设备120接收的USB数据路由到外围设备。
通过使用USB数据路由模块108来处理并路由数据,主计算设备100不需要利用操作系统和/或应用层来路由数据,从而节省了对解码、将数据拆成分组和重新传输数据的需要。而且,在此场景中,外围设备130可以按照与USB数据被附着的计算设备120发送的相同形式来接收所发送的USB数据,由此在减少时延和错误的同时节省时间和计算力。在另一个示例中,主计算设备100可以利用主计算设备108的操作系统来执行USB数据路由。
在一个示例中,USB接口端口121和USB连接端口131可以在单个USB控制器上或连接到单个USB控制器。在另一个示例中,单个USB控制器可以具有额外的USB接口端口。在再另一个示例中,USB接口端口121可以在与USB连接端口131不同的USB控制器上。
图2图示了根据本公开的示例的用于在附着的计算设备120和外围设备之间路由USB数据的主计算设备100的框图。
主计算设备200可以包括USB数据路由模块208,用于在USB附着的USB设备之间路由USB数据。在图2中所示的一个示例中,USB数据路由模块208可以在附着的计算设备220与外围设备之间路由USB数据,外围设备诸如打印机232、外部数据存储部234和/或成像设备236。在其他示例中,USB数据路由模块208可以在附着到或通信地耦合到主计算设备200的各种其他设备之间和当中路由USB数据。
在一个示例中,USB数据路由模块208可以是专用硬件组件,诸如修改的USB控制器芯片组。然而,在另一个示例中,USB数据路由模块208可以集成到USB主控制器固件中,或集成到安装在主计算设备200的操作系统上的USB驱动程序中。
在不用主计算设备200上的应用层的辅助的情况下,USB数据路由模块208可以使主计算设备能够在附着的计算设备220和各种外围设备之间和当中路由USB通信量,外围设备诸如打印机232、外部数据存储部234和/或成像设备236。确切地说,USB数据路由模块208可以在硬件层级处理USB数据并在附着的计算设备220和一个或多个外围设备之间路由USB数据,外围设备包括打印机232、外部数据存储部234和/或成像设备236。在该场景中,USB数据不需要被解码、分解成分组、重新编码以及然后重新传输。另外,由于USB数据可以作为单个USB消息而不是打散的USB消息的多个分组被发送,因此接收设备(例如,打印机220,如果附着的计算设备220为发送设备的话)不需要重新组装分组。以该方式,定日期发送过程期间将出现很少时延。而且,由于USB数据消息作为整体发送,因此存在可能丢失分割的消息的个体分组的降低的机会。
图2中示出的附着的计算设备220可以包括用于执行指令的处理器222、用于储存指令的存储器224、用于使得用于在主计算设备200内路由USB数据的USB设备驱动程序在主计算设备上安装或更新的驱动程序安装模块226、以及用于在主计算设备200上发起操作系统会话的操作系统模块228。
在主计算设备200中还可以包括网络接口(未显示)。网络接口可以是任何适当类型的网络接口卡,诸如无线或有线网络接口卡。例如,网络接口可以是配置为使用射频在802.11标准下操作的无线网卡。网络接口还可以是配置为经由电线诸如通过以太网连接而连接到网络的有线网络接口卡。在不同的示例中可以使用各种其他网络接口,包括蓝牙、WLAN、近场通信、RF或者任何其他适当类型的有线或无线网络接口。
在一个示例中,附着的计算设备220可以包括驱动程序安装模块。驱动程序安装模块可以存储在存储器224中,可以在处理器222上执行,并可以使得用于在主计算设备200内路由USB数据的USB设备驱动程序在主计算设备上安装或更新。在一个示例中,在安装前,设备驱动程序可以存储在存储器224中,或者在另一个示例中,可以存储在附着的计算设备220的数据存储部中。数据存储部中可以存储多个USB设备驱动程序,并且正确的USB设备驱动程序可以由驱动程序安装模块或者由主计算设备的用户选择。
在不用主计算设备200上应用层的辅助的情况下,设备驱动程序可以使主计算设备200能够在附着的计算设备220和外围设备之间和当中路由USB通信量。
驱动程序安装模块226还包括在附着的计算设备220中,并可以使得主计算设备200安装用于路由USB消息的USB设备驱动程序。例如,如果当计算设备附着到主计算设备时主计算设备200已经上电,则可以自动触发主计算设备200。在此情况中,驱动程序安装模块226可以将USB设备驱动程序连同命令(或命令集)递送或传送给主计算设备200,以使得主计算设备200安装设备驱动程序。还可以诸如通过物理按钮按压、通过在命令提示时键入命令、或者通过在用户接口上选择来手动触发驱动程序安装模块226。
在一个示例中,主计算设备200可以提示主计算设备200的用户允许或接受USB设备驱动程序安装。在另一个示例中,主计算设备200还可以在没有来自用户的输入和/或没有用户的知识的情况下安装USB设备驱动程序。一旦在主计算设备上安装了USB设备驱动程序,主计算设备200就可以在附着的计算设备和一个或多个外围设备之间和当中路由USB消息。
附着的计算设备220还可以包括操作系统模块220,其可以在主计算设备200上发起操作系统会话。例如,操作系统模块220可以使得操作系统(例如,Linux、微软Windows、安卓OS、苹果iOS等)在附着的计算设备220上启动和发起。这可以包括加载在附着的计算设备220上发起操作系统会话所必需的相关的操作系统软件和/或驱动程序。操作系统会话可以加载到存储器224中,并且可以在处理器222上执行。操作系统模块228可以在附着的计算设备220一附着到主计算设备200就开始发起操作系统(如果主计算设备已经上电),或者可以一旦主计算设备200开启就开始(如果附着的计算设备220已经附着到主计算设备)。
一旦操作系统被发起,附着的计算设备220就可以使得主计算设备启动主计算设备200用户接口上的web浏览器接口。用户也可以经由其的用户接口手动启动主计算设备200上的web浏览器接口。web浏览器接口可以经由USB通信链路223连接到附着的计算设备220上,USB通信链路223例如经由连接端口221在附着的计算设备220和主计算设备200之间被建立。
附着的计算设备220和主计算设备200可以使用各种应用层通信类型以及通过其他层通过通信链路进行通信。例如,设备可以使用应用层中的(不安全的或安全的)超文本传输协议进行通信。另外,通过经由USB通信链路223发送和接收要由主计算设备200在USB端口221处接收的USB消息,附着的计算设备220可以在硬件层与主计算设备200进行通信。在一个示例中,这些USB数据消息可以不由在应用层中的主计算设备200的操作系统处理。替代地,USB数据路由模块208可以在硬件层级处理并路由USB数据消息。然而,在另一个示例中,主计算设备100可以利用主计算设备108的操作系统来执行USB数据路由。
类似地,发送到外围设备或从外围设备发送的数据可以由主计算设备200的USB数据路由模块208处理,而不是(或附加地)由应用层中的主计算设备200的操作系统处理,外围设备诸如打印机232、外部数据存储部234和/或成像设备236。
图2中所图示的主计算设备200可以配置为在处理器200上处理指令,并且指令可以存储在诸如存储器204的非暂态有形计算机可读存储介质中,或在单独设备(未示出)上,或在存储用于使得可编程处理器执行本文所描述的技术的指令的任何其他类型的易失性或非易失性存储器上。
例如,指令可以使得处理器202执行至少以下功能:在第一USB接口221从通信地耦合到主计算设备200的附着的计算设备220接收USB数据消息;在第二USB接口231将在第一USB接口221从附着的计算设备220接收的USB数据消息路由到通信地耦合到主计算设备200的外围设备(例如,打印机232、外部数据存储部234和成像设备236);经由第二USB接口231从外围设备接收USB数据消息;以及经由第一USB接口221将经由第二USB接口231从外围设备接收的USB数据消息路由到附着的计算设备220。在一个示例中,指令还可以使得处理器200使得主计算设备200在主计算系统200上安装USB数据路由模块208。
图3图示了根据本公开的示例的用于通过主计算设备在附着的计算设备和外围设备之间路由USB数据的方法300的流程图。例如,该方法可以由图1和图2中分别示出的计算设备100和200执行,或者由另一类似的适当设备执行。
方法300可以至少包括:通过主计算设备在主计算系统上安装USB数据路由模块(块302);通过主计算设备在第一USB接口从通信地耦合到主计算设备的附着的计算设备接收USB数据消息(块304);以及通过安装在主计算设备上的USB数据路由模块在第二USB接口将在第一USB接口从附着的计算设备接收的USB数据消息路由到通信地耦合到主计算设备的外围设备(块306)。
在示出的示例中,在块302,方法300可以包括通过主计算设备在主计算系统上安装USB数据路由模块。在另一个示例中,可以由附着的计算设备来触发该安装。在该情况中,附着的计算设备可以包括可以在主计算设备上安装的USB数据路由模块安装包。
在一个示例中,在主计算系统上安装USB数据路由模块可以包括修改在主计算系统上的现有USB模块以包括USB数据路由模块。如果主计算设备已经包括USB模块,则方法300可以检测现有USB模块的存在并确定该现有模块是否包括相关的USB数据路由模块功能性。如果否,则可以安装或更新正确的USB数据路由模块。然后,流程可以继续到块304。
在块304,方法300可以包括通过主计算设备在第一USB接口从通信地耦合到主计算设备的附着的计算设备接收USB数据消息。附着的计算设备可以发送例如意图要由诸如打印机的外围设备接收的USB数据消息(例如,打印文档的命令)。在此情况中,主计算设备在第一USB接口接收USB数据消息。然后,流程可以继续到块306。
在块306,方法300可以包括通过安装在主计算设备上的USB数据路由模块在第二USB接口将在第一USB接口从附着的计算设备接收的USB数据消息路由到通信地耦合到主计算设备的外围设备。在上面的其中USB数据消息从附着的计算设备被发送并意图由外围设备(诸如打印机)接收的示例中,主计算设备可以将USB数据消息路由到外围设备。
主计算设备可以使用安装在主计算设备上的USB数据路由模块来路由USB数据消息。在此情况中,USB数据路由模块在不用任何应用层参与或操作系统辅助(诸如编码、解码、打包等)的情况下执行所有的路由功能。所有的路由功能性可以出现在主计算设备的硬件层中。
还可以包括附加的处理,并且应当理解的是,图3中描绘的处理表示一般化的图示,并且可以添加其他处理或者可以移除、修改或重新布置现有的处理,而不背离本公开的范围和精神。
例如,方法300可以包括通过主计算设备经由第二USB接口从外围设备接收USB数据消息。方法300还可以包括通过安装在主计算设备上的USB数据路由模块经由第一USB接口将经由第二USB接口从外围设备接收的USB数据消息路由到附着的计算设备。这两个步骤可以响应于从附着的计算设备接收USB数据消息而执行,或者可以被独立地发起。
图4图示在主计算设备410、附着的计算设备420和外围设备430之间的USB数据路由的框图400。在此示例中,框图400示出了USB数据流通过主USB数据路由模块412从外围设备430到附着的设备USB子系统424的路由。当然,USB数据可以按照相反的顺序通过主USB数据路由模块412从附着的设备USB子系统424流到外围设备430。
主计算设备410可以包括主USB数据路由模块412、主USB子系统414和主操作系统416。主USB子系统414和主操作系统416使主计算设备能够与附着的外围设备430和/或附着的计算设备420交互。然而,如流所示的,对于附着的计算设备420和外围设备430经由USB通信链路423和433来交换数据而言,这两个模块并非必需的。
类似地,附着的计算设备420可以包括附着的设备USB子系统424和附着的设备操作系统426。附着的设备USB子系统直接与主USB数据路由模块进行通信以交换USB数据,而不用涉及主USB子系统414或主操作系统416。
应当强调的是,上述的示例仅仅是实现的可能示例,并且是为了本发明的清晰理解而阐述。可以对上述的示例做出很多变型和修改,而实质上不背离本公开的精神和原理。此外,本公开的范围意图覆盖上文讨论的所有元件、特征和方面的任何和所有的合适组合和子组合。所有这样的合适的修改和变型意图包括在本公开的范围内,并且对于个体方面或者元件或步骤的组合的所有可能的权利要求意图被本公开支持。
Claims (15)
1.一种方法,包括:
通过主计算设备在主计算系统上安装通用串行总线(USB)数据路由模块;
通过安装在主计算设备上的USB数据路由模块在第一USB接口从通信地耦合到主计算设备的附着的计算设备接收USB数据消息;以及
通过安装在主计算设备上的USB数据路由模块在第二USB接口将在第一USB接口从附着的计算设备接收的USB数据消息路由到通信地耦合到主计算设备的外围设备。
2.根据权利要求1的方法,其中在主计算系统上安装USB数据路由模块包括修改在主计算系统上的现有USB模块以包括USB数据路由模块。
3.根据权利要求1的方法,其中在主计算系统上安装USB数据路由模块由通信地耦合到主计算设备的附着的计算设备来触发。
4.根据权利要求1的方法,还包括:
通过安装在主计算设备上的USB数据路由模块经由第二USB接口从外围设备接收USB数据消息。
5.根据权利要求4的方法,还包括:
通过安装在主计算设备上的USB数据路由模块经由第一USB接口将经由第二USB接口从外围设备接收的USB数据消息路由到附着的计算设备。
6.根据权利要求1的方法,其中路由USB数据消息发生在主计算设备的硬件层中。
7.根据权利要求1的方法,其中从第一USB接口路由到第二USB接口的USB数据消息具有相同的格式且不被改变。
8.一种主计算设备,包括:
一个或多个处理器;
存储器;
数据存储部;
第一通用串行总线(USB)连接端口,用于将附着的计算设备通信地耦合到主计算设备;
第二USB连接端口,用于将外围设备通信地耦合到主计算设备;以及
存储在存储器中且在一个或多个处理器中的至少一个上执行的USB数据路由模块,用于经由主计算设备在附着的计算设备和外围设备之间路由USB数据。
9.根据权利要求8的主计算设备,其中附着的计算设备包括用于发起主计算设备的用户能访问的操作系统会话的模块。
10.根据权利要求8的主计算设备,其中USB控制器控制第一USB连接端口和第二USB连接端口。
11.根据权利要求8的主计算设备,其中路由USB数据发生在主计算设备的硬件层中。
12.根据权利要求8的主计算设备,其中从第一USB连接端口路由到第二USB连接端口的USB数据具有相同的格式且不被改变。
13.根据权利要求8的主计算设备,其中第一USB连接端口和第二USB连接端口通信地耦合到单个USB控制器。
14.一种存储指令的非暂态计算机可读存储介质,所述指令当由处理器执行时使得处理器:
在第一通用串行总线(USB)接口从通信地耦合到主计算设备的附着的计算设备接收USB数据消息;
在第二USB接口将在第一USB接口从附着的计算设备接收的USB数据消息路由到通信地耦合到主计算设备的外围设备;
经由第二USB接口从外围设备接收USB数据消息;以及
经由第一USB接口将经由第二USB接口从外围设备接收的USB数据消息路由到附着的计算设备。
15.根据权利要求14的非暂态计算机可读存储介质,还包括指令,所述指令使得处理器:
在主计算系统上安装USB数据路由模块。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2013/049216 WO2015002648A1 (en) | 2013-07-03 | 2013-07-03 | Universal serial bus data routing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105378692A true CN105378692A (zh) | 2016-03-02 |
CN105378692B CN105378692B (zh) | 2018-08-31 |
Family
ID=52144093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380076252.6A Active CN105378692B (zh) | 2013-07-03 | 2013-07-03 | 通用串行总线数据路由 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10423564B2 (zh) |
EP (1) | EP3017376B1 (zh) |
CN (1) | CN105378692B (zh) |
TW (1) | TWI537740B (zh) |
WO (1) | WO2015002648A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110692219A (zh) * | 2017-05-01 | 2020-01-14 | 惠普发展公司,有限责任合伙企业 | 输入数据切换器 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5670391B2 (ja) * | 2012-07-27 | 2015-02-18 | 住友電気工業株式会社 | コンテンツ管理装置、コンテンツ管理方法およびコンテンツ管理プログラム |
US10078608B2 (en) | 2016-09-16 | 2018-09-18 | Intel Corporation | USB-C multiple connector support for host and device mode configurations |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1804820A (zh) * | 2005-01-14 | 2006-07-19 | 微软公司 | 应用程序服务器环境中的usb设备 |
TW200849019A (en) * | 2007-06-08 | 2008-12-16 | Ddtic Corp Ltd | Two-way connectivity USB control device and operation method therefor |
US20110231539A1 (en) * | 2006-02-28 | 2011-09-22 | Microsoft Corporation | Device Connection Routing for Controllers |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5745785A (en) * | 1995-05-09 | 1998-04-28 | Sofmap Future Design, Inc. | System for alternatively transferring data from external memory to memory device and from memory device to internal memory depending upon processing unit's operational |
KR100462589B1 (ko) * | 1998-12-07 | 2005-04-06 | 삼성전자주식회사 | 프린터와, 이를 적용한 화상인쇄시스템 및 그 비밀문서 인쇄방법 |
JP4046897B2 (ja) * | 1999-06-30 | 2008-02-13 | キヤノン株式会社 | 画像入力装置およびその制御方法 |
US6704824B1 (en) * | 1999-07-27 | 2004-03-09 | Inline Connection Corporation | Universal serial bus adapter with automatic installation |
JP2002077641A (ja) * | 2000-08-30 | 2002-03-15 | Matsushita Electric Ind Co Ltd | ファクシミリ装置 |
US7124086B2 (en) * | 2001-05-30 | 2006-10-17 | Olympus Corporation | Data reproducing apparatus and data reproducing system for reproducing contents stored on a removable recording medium |
EP1492016B1 (en) * | 2003-06-26 | 2009-01-14 | Broadcom Corporation | Interface device coupled to PC host via USB |
US20050216639A1 (en) * | 2003-07-24 | 2005-09-29 | Craig Sparer | Mobile memory device with integrated applications and online services |
JP2005056130A (ja) * | 2003-08-04 | 2005-03-03 | Fuji Photo Film Co Ltd | プリントシステム |
US8504707B2 (en) | 2004-12-07 | 2013-08-06 | Cisco Technology, Inc. | Method and system for sending and receiving USB messages over a data network |
US20080052770A1 (en) * | 2006-03-31 | 2008-02-28 | Axalto Inc | Method and system of providing security services using a secure device |
US7478191B2 (en) | 2006-04-14 | 2009-01-13 | Standard Microsystems Corporation | Method for automatically switching USB peripherals between USB hosts |
US7587536B2 (en) * | 2006-07-28 | 2009-09-08 | Icron Technologies Corporation | Method and apparatus for distributing USB hub functions across a network |
US20080141042A1 (en) * | 2006-12-11 | 2008-06-12 | Phison Electronics Corp. | Memory card and security method therefor |
JP4337891B2 (ja) * | 2007-03-01 | 2009-09-30 | セイコーエプソン株式会社 | 記憶端末および情報処理システム |
TW200844755A (en) | 2007-05-03 | 2008-11-16 | Realtek Semiconductor Corp | Method for setting configuration, electronic system, computer and USB device |
US8341087B2 (en) | 2010-03-03 | 2012-12-25 | Cassis International Pte Ltd | Method for implementing and application of a secure processor stick (SPS) |
US8429678B1 (en) * | 2010-04-20 | 2013-04-23 | American Megatrends, Inc. | Redirecting video to a remote client using a service processor |
TWI528161B (zh) | 2010-09-30 | 2016-04-01 | 瑞昱半導體股份有限公司 | 資料傳輸系統以及資料傳輸方法 |
US9858126B2 (en) | 2010-12-16 | 2018-01-02 | Microsoft Technology Licensing, Llc | Device redirection for remote systems |
US9116821B2 (en) | 2011-03-23 | 2015-08-25 | Avocent Corporation | Method and system for USB device virtualization |
KR101831785B1 (ko) | 2011-12-30 | 2018-04-05 | 에스프린팅솔루션 주식회사 | 복수의 호스트들과 연결 가능한 화상형성장치 및 화상형성장치에서 화상형성 작업을 제어하는 방법 |
US9467368B2 (en) * | 2013-03-04 | 2016-10-11 | Dell Products, Lp | System and method for routing data to devices within an information handling system |
-
2013
- 2013-07-03 CN CN201380076252.6A patent/CN105378692B/zh active Active
- 2013-07-03 US US14/787,999 patent/US10423564B2/en not_active Expired - Fee Related
- 2013-07-03 WO PCT/US2013/049216 patent/WO2015002648A1/en active Application Filing
- 2013-07-03 EP EP13888866.4A patent/EP3017376B1/en active Active
-
2014
- 2014-07-02 TW TW103122822A patent/TWI537740B/zh not_active IP Right Cessation
-
2019
- 2019-08-14 US US16/540,953 patent/US10853302B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1804820A (zh) * | 2005-01-14 | 2006-07-19 | 微软公司 | 应用程序服务器环境中的usb设备 |
US20110231539A1 (en) * | 2006-02-28 | 2011-09-22 | Microsoft Corporation | Device Connection Routing for Controllers |
TW200849019A (en) * | 2007-06-08 | 2008-12-16 | Ddtic Corp Ltd | Two-way connectivity USB control device and operation method therefor |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110692219A (zh) * | 2017-05-01 | 2020-01-14 | 惠普发展公司,有限责任合伙企业 | 输入数据切换器 |
US11422966B2 (en) | 2017-05-01 | 2022-08-23 | Hewlett-Packard Development Company, L.P. | Input data switches |
CN110692219B (zh) * | 2017-05-01 | 2023-09-05 | 惠普发展公司,有限责任合伙企业 | 输入数据切换器 |
Also Published As
Publication number | Publication date |
---|---|
TW201516693A (zh) | 2015-05-01 |
US10853302B2 (en) | 2020-12-01 |
EP3017376B1 (en) | 2020-12-16 |
EP3017376A1 (en) | 2016-05-11 |
US20170262399A1 (en) | 2017-09-14 |
EP3017376A4 (en) | 2017-02-22 |
US20190370210A1 (en) | 2019-12-05 |
TWI537740B (zh) | 2016-06-11 |
US10423564B2 (en) | 2019-09-24 |
WO2015002648A1 (en) | 2015-01-08 |
CN105378692B (zh) | 2018-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200351354A1 (en) | System and method for supporting data communication in a heterogeneous environment | |
EP3462328B1 (en) | Serial connection between management controller and microcontroller | |
JP5129770B2 (ja) | ネットワーク装置 | |
HUE035735T2 (en) | Data redirection for universal serial bus devices | |
US10853302B2 (en) | Data routing by a driver installed from a computing device | |
US20180077245A1 (en) | System and method for providing multiple ipmi serial over lan (sol) sessions in management controller stack | |
US10326659B2 (en) | Device and method for automatic switching of communication protocol of network devices based on user action | |
US9779037B2 (en) | Establishing connectivity of modular nodes in a pre-boot environment | |
US10009425B1 (en) | Synchronization of transactions utilizing multiple distributed cloud-based services | |
CN114064091A (zh) | Ota升级控制方法、装置、电子设备及自动驾驶车辆 | |
KR20180050001A (ko) | 사물인터넷 기기의 펌웨어 업그레이드 시스템 및 방법 | |
RU2018145653A (ru) | Системы и способы для инициализации конфигурирования устройств, работающих в средах промышленной автоматизации | |
CN110651255B (zh) | 负载控制方法、可移动平台及计算机可读存储介质 | |
CN116915602A (zh) | 软件升级方法及系统、电子设备、存储介质 | |
EP3694151A1 (en) | Terminal network sharing method, apparatus, air conditioning adjustment device, and storage medium | |
CN105246170B (zh) | 可穿戴设备及其进行数据收发的方法 | |
CN105867954B (zh) | 一种系统数据更新方法、第一电子设备及系统 | |
KR101529613B1 (ko) | 차량진단장치 시스템의 통신유지(test-present) 수행 방법 | |
US10310993B2 (en) | Emulation of physical equipment | |
US9330030B2 (en) | Bridge decoder for a vehicle infotainment system | |
CN112653627B (zh) | 一种数据传输的方法、装置、系统、计算机设备及计算机可读存储介质 | |
KR102250138B1 (ko) | 마이크로서비스 기반의 기기 제어 인터페이스 제공 시스템 및 그 방법 | |
TWI481292B (zh) | 無線通信系統及其控制方法 | |
US10803008B2 (en) | Flexible coupling of processor modules | |
CN107038079B (zh) | 一种通信控制系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |