CN204595844U - Usb多电脑切换器 - Google Patents
Usb多电脑切换器 Download PDFInfo
- Publication number
- CN204595844U CN204595844U CN201520130440.9U CN201520130440U CN204595844U CN 204595844 U CN204595844 U CN 204595844U CN 201520130440 U CN201520130440 U CN 201520130440U CN 204595844 U CN204595844 U CN 204595844U
- Authority
- CN
- China
- Prior art keywords
- usb
- usb device
- end points
- virtual
- main frame
- 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.)
- Expired - Fee Related
Links
- 230000004044 response Effects 0.000 claims abstract description 20
- 230000005540 biological transmission Effects 0.000 claims description 72
- 238000012546 transfer Methods 0.000 claims description 66
- 230000001360 synchronised effect Effects 0.000 claims description 42
- 238000010276 construction Methods 0.000 claims description 39
- 230000002093 peripheral effect Effects 0.000 claims description 22
- 238000004891 communication Methods 0.000 claims description 13
- 238000000034 method Methods 0.000 description 50
- 230000008569 process Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 13
- 230000009471 action Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000009342 intercropping Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000009897 systematic effect Effects 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/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/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/22—Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- 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/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Information Transfer Systems (AREA)
Abstract
本公开提供一种通用串行总线的多电脑切换器,用以耦接于至少一主机及至少一USB设备之间。该USB多电脑切换器包含一第一虚拟USB集线器,经建构以与一第一主机通信;一第一虚拟USB设备,经建构以经由该第一虚拟USB集线器连接至该第一主机,且具有与一第一USB设备相同的端点设定数据;一微处理器,经建构以产生该第一虚拟USB集线器,并因应于该第一USB设备的电性连接,枚举该第一USB设备;以及一第一多位址USB设备控制器模块,经建构以经由该第一虚拟USB集线器电性连接至该第一主机,并因应于该第一USB设备的枚举,经建构以产生该第一虚拟USB设备,且确定该第一USB设备的端点设定数据。
Description
技术领域
本公开涉及通用串行总线的多电脑切换装置,尤其涉及使用虚拟USB切换多部主机的USB多电脑切换器与方法。
背景技术
多电脑切换装置(KVM switch),是指可以利用一组例如包含键盘(keyboard)、屏幕(video)、鼠标(mouse)等控制设备(console device)的电子装置,通过信号切换元件或模块的方式,来连接及控制两台以上的电脑主机。通用串行总线(USB)为一种电脑主机与周边设备之间包含软、硬件的通信协议,目前已经是电脑、智能手机以及智能电视等产品中最主要的标准接口之一。此外,USB周边设备已广泛使用在一般电脑主机中。将通用串行总线(USB)与多电脑切换装置相结合即成为专用于USB周边设备的多电脑切换器(USB KVM switch)。
目前USB KVM产品主要分为三类:切换式USB KVM、模拟式USBKVM与复制型USB KVM,分述于图1A、图1B与图1C中。
图1A所示为现有技术的切换式USB KVM 10的系统方块图。请参阅图1A,切换式USB KVM 10包含至少一USB信号切换模块11以及至少一USB集线器12。当要切换电脑主机PC1~PC4时,控制端USB周边设备D1、D2的信号会与原来主机端连接的电脑主机断开,并切换至新的电脑主机。此作法最为简单,但每一次USB周边设备连接至新的电脑主机时,新的电脑主机必须再做一次或多次的USB周边设备的枚举程序。这段时间内USB周边设备无法正常运作,所以每次切换后必须要等待一段时间才能再次使用USB周边设备。而当切换速度过快时,可能导致USB信号异常,从而必须重新插拔USB信号电缆线或重启(reboot)电脑才能恢复正常。
图1B所示为现有技术的模拟式USB KVM 20的系统方块图。请参阅图1B,USB KVM 20包含一微处理器21、一USB主控制器22、一USB集线器23以及多个USB设备控制器24。此架构可以改善切换式USB KVM类产品的缺点,当切换电脑主机PC1~PC4时,USB设备控制器24与电脑主机PC1~PC4间的连接并不会中断,而只是将控制端的USB周边设备D1、D2的数据转由相对应的USB设备控制器来传送,因此切换时可以达到稳定的效果。但控制端的USB周边设备并不是与电脑主机直接连接,而是经由微处理器21以及USB集线器23,利用一固件(firmware)程序,由微处理器21来模拟成电脑主机并读取控制端的USB周边设备的数据封包,然后经过解译并转换成为新的数据封包,并经由多USB设备控制器24送到电脑主机PC1~PC4上。因此,电脑主机所「看到」的USB键盘、USB鼠标是由USB设备控制器24所模拟而生成的新设备,而并非是控制端的USB键盘D1、USB鼠标D2。此作法可能会有如下缺点:
(1)键盘、鼠标的原厂驱动程序或应用程序无法使用。
(2)受限于USB KVM 20内微处理器21的有限资源,常无法解译最新型的USB键盘及鼠标,而产生USB周边设备无法使用,相容性不够完整的现象。
(3)产品成本比切换式USB KVM 10高。
图1C所示为现有技术的复制型USB KVM30的系统方块图。USBKVM 30的运作原理与USB KVM 20类似,请参阅图1C,USB KVM 30在控制端依然是以微处理器21、USB主控制器22以及USB集线器23来构成,而在每一电脑PC1~PC2端则包含一USB集线器36与至少两个USB设备控制器,其中一个USB设备控制器34模拟成USB键盘,另一个USB设备控制器35模拟成USB鼠标。较特别的是,主机端的USB键盘或鼠标是完全复制控制端的USB键盘及鼠标的叙述表格(descriptor),所以能解决切换断开、以及不兼容的问题。不过为了能模拟成任何键盘及鼠标,每一个USB设备控制器34、35必须是相当高规格的产品,而且每一电脑端必须是两个,所以产品成本是最高的。
上述的三种类型的USB KVM目前只能处理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设备,USB多电脑切换器另包含一第二多位址USB设备控制器模块,经建构以经由该第二虚拟USB集线器电性连接至该第二主机,并因应于该第二USB设备的枚举,确定该第二USB设备的端点设定数据。
在本公开的一实施例中,另包含一第二虚拟USB设备,经建构以经由该第二虚拟USB集线器连接至该第二主机,且具有与该第二USB设备相同的端点设定数据。
在本公开的一实施例中,该至少一USB设备包含USB键盘、USB鼠标、USB音频设备以及USB储存盘。
在本公开的一实施例中,另包含一影像信号切换模块,经建构以电性连接至该第一主机,并提供影像信号至一显示装置。
在本公开的一实施例中,该端点设定数据包含端点的轮询时间的设定值,该微处理器经建构以于一中断传输期间,在该第一主机发出一中断传输的请求前,对该第一USB设备发出一中断传输的请求。
在本公开的一实施例中,该端点设定数据包含端点的轮询时间的设定值,该微处理器经建构以于一中断传输期间,在该第一虚拟USB设备接收到来自该第一主机的中断传输请求时,即先回应一肯定应答(ACK)。
在本公开的一实施例中,该端点设定数据包含端点的轮询时间的设定值,该微处理器经建构以于一同步传输期间,使该第一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设备接收到来自该第一主机的中断传输请求时,即先回应一肯定应答(ACK)。
在本发明的一实施例中,该端点设定数据包含端点的轮询时间的设定值,该方法另包含:于一同步传输期间,使该第一USB设备的时序输出与该第一主机的时序输出相同步。
在本公开的一实施例中,该端点设定数据包含端点的轮询时间的设定值,该方法另包含:于一同步传输期间,于该第一主机产生一个同步传输的请求前,询问该第一USB设备的同步传输数据。
在本公开的一实施例中,另包含:于该第一主机枚举该USB设备的期间,以一否定应答(NAK)回复该第二主机对该USB设备的枚举命令。
在本公开的上述实施例中,已完成枚举程序的主机与USB电子设备之间只要该等主机或USB电子设备未拔除,则该等主机与USB电子设备之间的切换皆无需重新枚举。因此,本公开能使多部主机分享多个USB电子设备的资源,且在多主机与多USB电子设备的运用中,能有效率地实现主机与USB电子设备之间的切换。
本公开利用上述的基本特性,采用特殊的多个多位址USB设备控制器(multi-addressed USB device controller)的设计,经由虚拟USB的技术方式,来实现将控制端的USB键盘、USB鼠标或是其他USB设备能够同时分享给多台电脑的功能。
上文中已经概略地叙述本公开的技术特征,为能更佳了解本公开,下文中将详细描述构成本公开权利要求标的其它技术特征。
就本公开所属技术领域中技术人员而言,应可了解基于下文中所公开的概念与特定实施例,便能轻易地修改或设计出其它结构而实现与本公开相同的目的。本公开所属技术领域中技术人员亦应可了解这类等效的建构并未脱离后附的权利要求所界定的本公开精神。
附图说明
图1A所示为现有技术的切换式通用串行总线(USB)多电脑切换器的系统方块图;
图1B所示为现有技术的模拟式USB多电脑切换器的系统方块图;
图1C所示为现有技术的复制型USB多电脑切换器的系统方块图;
图2所示为本公开一实施例的USB多电脑切换器的系统方块图;
图3所示为本公开一实施例的控制IN传输(主机接收数据)的流程示意图;
图4所示为本公开一实施例的控制OUT传输(主机送出数据)的流程示意图;
图5A所示为本公开一实施例的中断IN传输(主机接收数据)的流程示意图;
图5B所示为本公开另一实施例的中断IN传输(主机接收数据)的流程示意图;
图6A所示为本公开一实施例的中断OUT传输(主机送出数据)的流程示意图;
图6B所示为本公开另一实施例的中断OUT传输(主机送出数据)的流程示意图;
图7所示为本公开一实施例的巨量IN传输(主机接收数据)的流程示意图;
图8所示为本公开一实施例的巨量OUT传输(主机送出数据)的流程示意图;
图9A所示为本公开一实施例的同步OUT传输(主机送出数据)的流程示意图;
图9B所示为本公开一实施例的帧对齐方法的示意图;
图10所示为本公开一实施例的同步IN传输(主机接收数据)的流程示意图;
图11所示为本公开一实施例的USB多电脑切换器的系统方块图;以及
图12所示为本公开一实施例的USB设备分享的方法。
附图标记说明:
10 切换式USB KVM
11 USB信号切换模块
12 USB集线器
20 模拟式USB KVM
21 微处理器
22 USB主控制器
23 USB集线器
24 USB设备控制器
30 复制型USB KVM
34 键盘设备控制器
35 鼠标设备控制器
36 USB集线器
50 USB多电脑切换器
51 微处理器
52 存储器
54 USB设备控制寄存器
55 USB主控制器寄存器
56 USB主控制器模块
57 USB集线器
60 USB多电脑切换器
65 主系统模块
66 影像信号切换模块
101~105 方法步骤
531 第一多位址USB设备控制器模块
532 第二多位址USB设备控制器模块
581 第一虚拟USB集线器
582 第二虚拟USB集线器
C11 缆线
C15 显示装置
D1 USB键盘
D2 USB鼠标
D3 USB音频设备
D4 USB储存盘
PC1 第一主机
PC2 第二主机
PC3 主机
PC4 主机
U1 缆线
U2 缆线
V1 缆线
V2 缆线
VK1 第一虚拟USB设备(对应第一主机)
VK2 第一虚拟USB设备(对应第二主机)
VM1 第二虚拟USB设备(对应第一主机)
VM2 第二虚拟USB设备(对应第二主机)
具体实施方式
在USB的规范中,明确订立USB周边设备与USB主机的沟通方式。每个USB周边设备都具有一设备地址(device address)以及多个端点地址(endpoint address)。主机与端点的通信,则经由所谓的流水线(pipe)所构成的,一旦流水线建立好之后,主机就可以根据每个端点的特性做不同目的的传输。所以对于USB的通信,可以将其视为一种虚拟流水线的概念,例如在整个USB的通信中包含了一个大的虚拟流水线(USB总线)以及高达127个小的虚拟流水线,而每一个小的虚拟流水线可比拟为USB设备。又,每一个小虚拟流水线又可再细分为许多的微虚拟流水线,这些微虚拟流水线可比拟为端点(endpoint)。在一个单独的小虚拟流水线内最多可再分割成15组的微虚拟流水线(端点),也就是可对15个输出/入的端点(共30个)定址。
如上所述,USB之间的通信是通过虚拟流水线的观念来对应到实际的设备端点缓冲区存储器52中,其实践的方式是在每个通信数据封包开始的前端,使用一个令牌(token)封包数据载明接收方的设备地址以及端点地址,接着再传送数据(data)区块,最后再以握手(handshake)封包来确定数据传送成功。所以令牌、数据、握手是所有标准USB传输的规范。一USB传输业务(transaction)即由上述的令牌、数据、握手封包所构成。此外,USB的令牌封包中定义了4种型态,分别为OUT/IN/SOF/SETUP。如果USB设备收到一个OUT(主机至设备)令牌封包,则表示该USB设备将会从主机接收到数据;如果收到一个IN(设备至主机)令牌封包,则表示该USB设备将会传送数据给主机;如果收到一个SOF(start of frame)令牌封包,则为一个同步信号;如果收到了一个SETUP令牌封包,则表示主机将会使用Endpoint 0传送或接收数据。上述4种令牌封包中OUT/IN/SETUP需要USB设备做进一步的回应及处理,SOF则无。
又,在USB的规范中,多个的USB设备装置必须通过集线器(HUB)来与电脑主机相连接,主机对于集线器之下USB设备的通信则必须通过集线器来转送。
当USB主机检测到有USB设备接入时,USB主机会使用枚举(enumerate)的机制来获悉USB设备的种类、性质、特性以及端点所支持的数据传输方式。目前端点数据传输类别共有4种:分别为控制(control)、巨量(bulk)、同步(isochronous)以及中断(interrupt)传输。枚举为USB主机请求获得USB设备各种叙述表的一个总称,该等叙述表包含:设备叙述表(device descriptor)、组态叙述(configuration descriptor)、接口叙述表(interface descriptor)与端点叙述表(endpoint descriptor)等等。枚举完成之后,主机即会按照组态叙述中所设定的数据传输类别,与USB设备的端点进行数据传送。控制、巨量、同步以及中断等数据传输皆有其标准的方式,所有的传输都有一个数据传输阶段(data stage)以及状态阶段(status stage),但控制传输则无状态阶段,而只有数据传输阶段。在USB的规范中,当USB设备无法实时处理主机的请求时,可以在数据传输阶段或是状态阶段传送一个NAK(negative acknowledgement;否定应答)信号,此时主机会在固定时间之后,再重复一次相同的传输,此即USB设备流量控制的机制。
图2所示为本公开一实施例的USB多电脑切换器50的系统方块图。请参阅图2,USB多电脑切换器50包含一微处理器51、一存储器52、一第一多位址USB设备控制器模块(multi-addressed USB device controller)531、一第二多位址USB设备控制器模块532、一USB设备控制寄存器(USB device control register)54、一USB主控制器寄存器55、一USB主控制器模块(host controller)56以及一USB集线器(USB root hub)57。
微处理器51通过USB设备控制寄存器54来分别控制第一多位址USB设备控制器模块531以及第二多位址USB设备控制器模块532,以及通过USB主控制器寄存器55来控制USB主控制器模块56以及USB集线器57。
第一多位址USB设备控制器模块531以及第二多位址USB设备控制器模块532内分别有独立的USB实体层(SIE/PHY),以及收发器(transceiver)来转换、传送以及解译USB信号,且在USB设备控制寄存器54亦分别有独立的地址(address)管理器及端点(endpoint)管理器,端点存储缓冲区(endpoint buffer)则位于存储器52。在本公开一实施例中,存储器52包含随机存取存储器。
USB主控制器模块56内亦有独立的USB实体层(SIE/PHY),以及收发器(transceiver)来转换、传送以及解译USB信号,传送及接收的端点存储缓冲区则位于存储器52。
当系统上电之后,微处理器51自内部或外部的存储器(例如快闪存储器)载入固件程序,并对第一多位址USB设备控制器模块531、第二多位址USB设备控制器模块532、USB主控制器模块56以及USB集线器57做初始化的设定,随后即以5个阶段来执行运作。第1阶段-建立第一虚拟USB集线器581及第二虚拟USB集线器582;第2阶段-检测USB周边设备D1、D2的插入;第3阶段-分析USB周边设备的组态(configuration);第4阶段-虚拟USB设备VK1、VM1、VK2、VM2的建立及维护;以及第5阶段-数据的桥接转送。
第1阶段:分别在第一多位址USB设备控制器模块531以及第二多位址USB设备控制器模块532所对应的USB设备控制寄存器54填入第一虚拟USB集线器581及第二虚拟USB集线器582的地址及端点的设定数据,并使用微处理器51来模拟成两个独立的虚拟USB集线器。微处理器51分别对第一主机PC1对于第一虚拟USB集线器581的枚举程序以及第二主机PC2对于第二虚拟USB集线器582的枚举程序做出正确的讯息接收及回馈。自此之后,主机PC1、PC2对本系统下的USB设备的通信皆会交由第一虚拟USB集线器581及第二虚拟USB集线器582来转送。
第2阶段:此时微处理器51扮演USB主机(host)的角色,控制USB主控制器模块56对USB集线器57发出USB设备插入或移除的状态检测命令。当检测到例如USB鼠标D2插入的事件发生时,微处理器51即会按照标准的枚举步骤,对USB鼠标D2完成枚举的程序,同时赋予USB鼠标D2一个实际的设备地址(physical device address)。
第3阶段:USB主控制器模块56对枚举所取得的USB鼠标D2的组态叙述(configuration descriptor)做分析解译,以便解析出所使用端点的基本数据,包含端点号码(endpoint number)、端点地址(endpoint address)、端点传输种类(control/bulk/interrupt/isochronous),以及端点大小(endpointpacket size)。
第4阶段:依据第3阶段所取得的数据,微处理器51通过USB设备控制寄存器54分别在第一多位址USB设备控制器模块531以及第二多位址USB设备控制器模块532建立完全相同的端点设定,并建立一个相对应的虚拟位址,并由第一虚拟USB集线器581及第二虚拟USB集线器582报告USB鼠标D2插入的事件。
当第一主机PC1收到第一虚拟USB集线器581所产生的状态改变数据,即开始对USB鼠标D2做枚举的程序,此时系统会按照图3的流程来做数据的转送,然后进入到阶段5,以下以第一主机PC1为例说明图3控制传输(control transfer)的数据转送流程。
在本公开一实施例中,USB多电脑切换器50包含例如:现场可编程逻辑门阵列(Field-Programmable Gate Arrays,FPGA)芯片、特殊应用集成电路(Application-specific integrated circuit,ASIC)或一系统芯片(Systemon Chip,SOC)。又,主机PC1、PC2包含个人电脑、手提电脑、平板电脑及智能手机。USB设备则包含USB人机操作接口装置、USB储存装置、USB打印机或其他USB电子设备。
图3所示为本公开一实施例的控制IN传输(主机接收数据)的流程示意图。请参阅图3,于控制传输的设定阶段(Setup Stage),当第一主机PC1对第一虚拟USB集线器581传送一个Setup传输业务时,此传输数据会交由第一多位址USB设备控制器模块531来解译并比对USB设备控制寄存器54中的地址管理器,是否有相对应的地址。如果比对成功,同时再比对端点管理器,是否有相对应的端点位址。如果一切符合,即将数据放置到存储器52中,并产生中断信号,交由微处理器51来处理。若经第一多位址USB设备控制器模块531比对虚拟位址与实际位址的设备地址对照表确定为USB鼠标D2,端点地址为0(预设控制端点control endpoint),微处理器51即将此数据由USB主控制器模块56经由USB集线器57传送到USB鼠标D2,并进入数据接收阶段(Data IN Stage),收取USB鼠标D2所传回的数据。
在进入数据IN阶段时,第一主机PC1传送一个IN令牌,第一多位址USB设备控制器模块531会先以NAK回复第一主机PC1,直到USB主控制器模块56成功接收到USB鼠标D2所传回的数据,并将此数据在下一次第一主机PC1的IN令牌发生时送出,此动作会重复到数据阶段结束。
当进入到状态阶段(Status Stage)时,第一主机PC1会传送一个数据长度为0的OUT令牌(OUT Token)封包,第一多位址USB设备控制器模块531会先以NAK回复第一主机PC1,并等待微处理器51完成控制USB主控制器模块56对实际的USB鼠标D2产生相同的状态阶段的程序,然后会在下一次第一主机PC1的OUT令牌发生时送出ACK(肯定应答)。经过上述一连串的动作,即可以完成控制传输IN的数据转送。
图4所示为本公开一实施例的控制OUT传输(主机送出数据)的流程示意图。请参阅图4,于控制传输的设定阶段,当第一主机PC1对第一虚拟USB集线器581传送一个Setup传输业务时,此传输数据会交由第一多位址USB设备控制器模块531来解译并比对USB设备控制寄存器54中的地址管理器,是否有相对应的地址。如果比对成功,同时再比对端点管理器,是否有相对应的端点位址。如果一切符合,即将数据放置到存储器52中,并产生中断信号,交由微处理器51来处理。若经第一多位址USB设备控制器模块531比对虚拟位址与实际位址的设备地址对照表确定为USB鼠标D2,端点地址为0(预设控制端点),微处理器51即将此数据由USB主控制器模块56经由USB集线器57传送到USB鼠标D2,并进入数据送出阶段(Data OUT Stage)。
当进入数据OUT阶段时,第一主机PC1传送一个OUT令牌以及OUTData。第一多位址USB设备控制器模块531会先以NAK回复第一主机PC1,并将此事件通知微处理器51。微处理器51会将OUT令牌以及OUTData经由USB主控制器模块56传送到USB鼠标D2,在USB鼠标D2回复之前,因应于第一主机PC1的OUT令牌的握手请求,皆会以NAK回复。等到USB鼠标D2回复ACK之后,此ACK会在下一次第一主机PC1的OUT令牌的握手请求时送出,此动作会重复到数据阶段结束。
当进入到状态阶段(Status Stage)时,第一主机PC1会传送一个IN令牌(IN Token)封包。第一多位址USB设备控制器模块531会先以NAK回复第一主机,并将此事件通知微处理器51。微处理器51会将IN令牌经由USB主控制器模块56传送到USB鼠标D2,在D1-USB鼠标回复之前,因应于第一主机PC1的IN令牌请求,皆会以NAK回复。等到USB鼠标D2回复一长度为0的IN数据之后,此长度为0的IN数据会在下一次第一主机PC1的IN令牌发生时送出。经过上述一连串的动作,即可以完成控制传输OUT的数据转送。
经由图3的控制IN传输与图4的控制OUT传输的流程后,第一主机PC1即完成对USB鼠标D2的正确枚举流程。就第一主机PC1来说,此时在第一虚拟USB集线器581下出现一个虚拟的USB鼠标设备VM1。
同理,经由图3的控制IN传输与图4的控制OUT传输的流程后,亦可完成第一主机PC1对USB键盘D1的枚举,使USB键盘D1可正确地被第一主机PC1辨认。就第一主机PC1来说,此时在第一虚拟USB集线器581下出现一个虚拟的USB键盘设备VK1。
又,经由图3的控制IN传输与图4的控制OUT传输的流程后,亦可完成第二主机PC2对USB鼠标D2的枚举,使USB鼠标D2可正确地被第二主机PC2辨认。就第二主机PC2来说,此时在第二虚拟USB集线器582下出现一个虚拟的USB鼠标设备VM2。
同理,经由图3的控制IN传输与图4的控制OUT传输的流程后,亦可完成第二主机PC2对USB键盘D1的枚举,使USB键盘D1可正确地被第二主机PC2辨认。就第二主机PC2来说,此时在第二虚拟USB集线器582下出现一个虚拟的USB键盘设备VK2。
然而第一主机PC1以及第二主机PC2有可能同时会对同一个周边设备做不同的枚举命令,因为周边设备的端点数据是同时被设置到第一多位址USB设备控制器模块531、第二多位址USB设备控制器模块532所对应到的USB设备控制寄存器54中。为解决此冲突问题,微处理器51必须建立一个数据仲裁机制,以例如先进先服务的原则,当一方主机先进入Setup阶段时,则取得数据转送的资格,在未完成状态阶段前,另一方主机的控制传输在进入数据阶段或状态阶段时,皆先以NAK回复,进行流量的管制。待优先一方主机的状态阶段后,此时等待一方的主机的控制传输才会恢复正常进行。
图5A所示为本公开一实施例的中断IN传输(主机接收数据)的流程示意图。USB KVM控制端的主要周边设备为USB鼠标D2及USB键盘D1,此两USB设备的数据封包是经由中断传输来完成。请参阅图5A,当第一主机PC1对虚拟USB鼠标VM1发出主机中断IN的传输时,此IN令牌数据请求会由第一多位址USB设备控制器模块531以NAK回复,同时此IN令牌亦同时交由第一多位址USB设备控制器模块531来解译并放置到存储器52中,并交由微处理器51来处理。经第一多位址USB设备控制器模块531比对虚拟位址与实际位址的设备地址对照表确定为USB鼠标D2,端点地址为1,微处理器51即将此数据由USB主控制器模块56经USB集线器57传送到USB鼠标D2。当USB鼠标D2回复数据之后,USB主控制器模块56主动对USB鼠标D2送出ACK之后结束USB主控制器模块56对USB鼠标D2的中断传输,并将数据内容存入相对应的虚拟USB鼠标VM1的端点存储缓冲输出区内,并在下一次第一主机PC1对虚拟USB鼠标VM1发出主机中断IN的传输时即将此数据送出,完成虚拟USB鼠标VM1对第一主机PC1的中断IN传输的请求。
同样方式亦适用于虚拟USB键盘VK1对第一主机PC1的中断IN传输的请求。
上述中断IN传输的实施例是以第一主机PC1作为目前作用的电脑主机来说明,此时非作用的第二主机PC2所有对虚拟USB鼠标VM2所发出的中断传输皆会以NAK来回复。当目前作用的第一主机PC1切换为第二主机PC2时,第二主机PC2对虚拟USB鼠标VM2所发出的中断传输会按照上述对其进行说明相同原理来处理,而非作用的第一主机PC1所有对虚拟USB鼠标VM1所发出的中断传输皆会以NAK来回复。
上述中断IN传输的实施例虽可处理第一主机PC1、第二主机PC2对USB鼠标D2、USB键盘D1的中断IN传输的转送,但会产生一个延迟的问题。由于主机对中断传输的端点会有一项轮询时间(interval time)的设定,主机会按照此设定每到一个轮询时间后即会对中断传输的端点产生一个中断传输请求。如果此时USB设备回复NAK,则会等到下次的轮询时间点后,主机才会再发出请求。所以依上述说明转送USB设备的中断数据封包会有至多两个轮询时间值的差异,此对USB鼠标的游标运作可能发生延迟的现象。为解决此问题,可依图5B的方式来运作。
图5B所示为本公开另一实施例的中断IN传输(主机接收数据)的流程示意图。请参阅图5B,由于在枚举阶段已解析过USB鼠标D2的组态叙述,故可知USB鼠标D2中断传输的端点的轮询时间的设定值,所以可由微处理器51以及USB主控制器56在每到轮询时间点时,即主动对USB鼠标D2发出中断传输的请求。一旦USB鼠标D2有回复数据时,即将此数据内容存入相对应的虚拟USB鼠标VM1的端点存储缓冲输出区内,并在下一次第一主机PC1对虚拟USB鼠标VM1发出主机中断IN的传输时即将此数据送出。如此可将时间差异值控制在小于一个轮询时间的设定值,使USB鼠标D2的游标运作不会发生延迟的现象。此方法亦使用在USB键盘D1上的中断IN传输的转送流程上。
图6A所示为本公开一实施例的中断OUT传输(主机送出数据)的流程示意图。请参阅图6A,当第一主机PC1对虚拟USB鼠标VM1发出主机中断OUT的传输时,此OUT令牌数据请求会由第一多位址USB设备控制器模块531以NAK回复,同时此OUT令牌及数据封包亦同时交由第一多位址USB设备控制器模块531来解译并放置到存储器52中,并交由微处理器51来处理。经第一多位址USB设备控制器模块531比对虚拟位址与实际位址的设备地址对照表确定为USB鼠标D2,端点地址为2,微处理器51即将此数据由USB主控制器模块56经USB集线器57传送到USB鼠标D2。当USB鼠标D2回复ACK之后,微处理器51将ACK内容存入相对应的虚拟USB鼠标VM1的端点存储缓冲输出区内,并在下一次第一主机PC1对虚拟USB鼠标VM1发出主机中断OUT的传输时输出ACK,完成虚拟USB鼠标VM1对第一主机PC1的中断OUT传输的请求。
同样方式亦适用于虚拟USB键盘D1对第一主机PC1的中断OUT传输的请求。
上述中断OUT传输的实施例是以第一主机PC1作为目前作用的电脑主机来说明,此时非作用的第二主机PC2所有对虚拟USB鼠标VM2所发出的中断OUT传输皆会以NAK来回复。当目前作用的第一主机PC1切换为第二主机PC2时,第二主机PC2对虚拟USB鼠标VM2所发出的中断OUT传输会按照上述对其进行说明相同原理来处理,但非作用的第一主机PC1所有对虚拟USB鼠标VM1所发出的中断OUT传输则皆会以NAK来回复。
上述中断OUT传输的实施例虽可处理第一主机PC1、第二主机PC2对USB鼠标D2、USB键盘D1的中断OUT传输的转送,但可能会产生一个延迟的问题。由于主机对中断OUT传输的端点会有一项轮送时间的设定,主机会按照此设定每到一个轮送时间后即会对中断传输的端点产生一个中断OUT的传输请求。如果此时USB设备回复NAK,则会等到下次的轮送时间点后,主机才会再发出请求。所以USB设备的中断OUT传输数据封包会有至多两个轮送时间值的差异。为解决此问题,可依图6B的方式来运作。
图6B所示为本公开另一实施例的中断OUT传输(主机送出数据)的流程示意图。请参阅图6B,由于在枚举阶段已解析过USB鼠标D2的组态叙述,可知道USB鼠标D2中断OUT传输的端点的轮询时间的设定值,所以当虚拟USB鼠标VM1的端点由第一主机PC1收到中断OUT传输时,即先由微处理器51回应ACK,完成第一主机PC1对虚拟USB鼠标VM1的端点中断OUT的输出。然后立即将同样的中断OUT的传输数据,经由USB主控制器模块56对USB鼠标D2发出中断OUT传输的请求。如此可将时间差异值控制在小于一个轮送时间的设定值。此方法亦使用在USB键盘D1的中断OUT传输的转送流程上。
上述说明是以USB鼠标及USB键盘来举例说明,此两种设备是属于人机接口(HID class)种类的设备,大部分只提供控制以及中断IN的传输端点,可适用于本公开在图2的KVM系统架构图中。因此,本公开实现以虚拟USB的方式来实现KVM系统中使第一主机PC1与第二主机PC2分享使用USB鼠标D2及USB键盘D1的目的。此外,当相对应于第一主机PC1的虚拟USB鼠标VM1与虚拟USB键盘VK1以及相对应于第二主机PC2的虚拟USB鼠标VM2与虚拟USB键盘VK2建立后,第一主机PC1与第二主机PC2之间相切换时,切换后的主机无需重新枚举USB鼠标D2与USB键盘D1。本公开能使多部主机分享多个USB设备的资源,且在多主机与多USB设备的运用中,能有效率地实现主机与USB设备之间的切换。
在本公开中,虚拟USB的延迟回应的功能除可支持USB鼠标D2及USB键盘D1等USB设备的虚拟外,通过固件的设计,另外还能支持USB储存盘、USB音频设备以及USB集线器等三种目前常见的USB设备外,亦可支持其它USB周边设备。USB储存盘则为巨量传输,USB音频设备为同步传输,而USB集线器则属于中断传输。在本公开的一实施例中,微处理器51经建构以经由图3的控制IN传输与图4的控制OUT传输的流程,使USB音频设备与USB储存盘正确枚举于第一主机PC1与第二主机PC2。就第一主机PC1来说,此时在第一虚拟USB集线器581下出现一个虚拟的USB音频设备与一个虚拟的USB储存盘。
图7所示为本公开一实施例的巨量IN传输(主机接收数据)的流程示意图。请参阅图7,当第一主机PC1产生一个巨量IN传输的请求后,此巨量IN令牌会由第一多位址USB设备控制器模块531解译并放置到存储器52中,并先以NAK回复第一主机PC1,同时交由微处理器51来处理。经第一多位址USB设备控制器模块531比对虚拟位址与实际位址的设备地址对照表确定为USB储存盘,端点地址为1,微处理器51即将此数据经由USB主控制器模块56以及USB集线器57传送到实际的USB储存盘。在USB储存盘回复数据之前,第一多位址USB设备控制器模块531针对第一主机PC1对USB储存盘巨量IN传输的请求,皆会以NAK回复。等到USB储存盘回复数据之后,此回复数据会在下一次第一主机PC1发出巨量传输IN令牌时送出此回复数据。
图8所示为本公开一实施例的巨量OUT传输(主机送出数据)的流程示意图。请参阅图8,当第一主机PC1产生一个巨量传输OUT令牌的请求后,此OUT令牌以及OUT数据会交由第一多位址USB设备控制器模块531来解译并放置到存储器52中,并先由第一多位址USB设备控制器模块531以NAK回复第一主机PC1,同时通知微处理器51来处理。经第一多位址USB设备控制器模块531比对虚拟位址与实际位址的设备地址对照确定表为USB储存盘,端点地址为2,微处理器51即将此数据经由USB主控制器模块56以及USB集线器57传送到USB储存盘。待USB储存盘回复ACK之后,下一次第一主机PC1的巨量传输OUT令牌以及数据(Data)发生时送出ACK回复。
图9A所示为本公开一实施例的同步OUT传输(主机送出数据)的流程示意图。同步传输与其他类型的传输最大的不同在于:传输过程皆会只有令牌(token)与数据(data),并无握手的过程。
请参阅图9A,当第一主机PC1产生一个同步传输Out令牌及数据的请求后,此同步传输OUT令牌以及数据会由第一多位址USB设备控制器模块531解译并放置到存储器52中,并通知由微处理器51来处理。经第一多位址USB设备控制器模块531比对虚拟位址与实际位址的设备地址对照表确定为USB音频设备,端点地址(Endpoint Address)为2,微处理器51即将此数据经由USB主控制器模块56以及USB集线器57传送到实际的USB音频设备。
然而图9A的转送方式可能会造成USB音频设备数据输出时间差超过了1个标准时帧(SOF Frame),产生声音不连续或爆音的现象。为解决此问题,可依图9B的方式来运作。
图9B所示为本公开一实施例的帧对齐方法的示意图。请参阅图9B,USB音频设备数据输出的时间差问题可通过同步化USB主控制器模块56的时序(SOF Frame)输出与第一主机PC1的时序输出予以改善。在本公开的一实施例中,微处理器51经建构以使USB主控制器模块56的时序输出与第一主机PC1的时序输出相同步,而使得USB音频设备的时序输出与第一主机PC1的时序输出相同步。
图10所示为本公开一实施例的同步IN传输(主机接收数据)的流程示意图。请参阅图10,当第一主机PC1产生一个同步IN传输的请求后,虚拟USB音频设备必须要将声音数据输出,所以在第一主机PC1产生一个同步IN传输的请求之前,必须先由微处理器51分析USB音频设备的同步IN传输的端点叙述,取得轮询的时间,设定USB主控制器模块56在同一轮询时间内主动询问USB音频设备的同步传输IN数据,然后在第一主机PC1产生一个同步IN传输的请求后,主动将数据回复于第一主机PC1。
图11所示为本公开一实施例的USB多电脑切换器60的系统方块图。请参阅图11,USB多电脑切换器60包括一主系统模块65与一影像信号切换模块66。主系统模块65与图2所示的USB多电脑切换器50相似,而于本实施例中,主系统模块65可连接至USB键盘D1、USB鼠标、USB音频设备D3与USB储存盘D4。另外,主系统模块65除虚拟USB键盘、虚拟USB鼠标外,另具有虚拟USB音频设备与虚拟USB储存盘。
主系统模块65通过U1、U2的USB缆线分别与PC1、PC2的USB连接埠相接。影像信号切换模块66则通过V1、V2的影像信号缆线分别与PC1、PC2的显示卡输出埠连接。影像信号切换模块66另通过控制信号G0与主系统模块65相连接。主系统模块65将USB键盘D1、USB鼠标D2、USB音频设备D3与USB储存盘D4在PC1及PC2之间作切换,当切换时主系统模块65通过控制信号G0对影像信号切换模块66送出切换的请求,并将影像信号经由C11影像信号缆线输出至C15的屏幕上。
在本公开的一实施例中,影像信号切换模块66可依据影像信号类别的不同而采用不同的切换IC,例如模拟信号VGA,或系数字信号DVI、HDMI、DisplayPort等。
依上述的说明,利用虚拟USB的技术方式不仅可以让控制端的USB键盘D1、USB鼠标D2可于第一主机PC1、第二主机PC2之间来切换使用,更可进一步扩展支持USB音频设备D3、USB储存盘D4以及USB集线器。除此之外在主机端,亦不需要实际的USB集线器,利用多位址设备控制器,即可以虚拟的方式实现同样的功能,大幅度减少USB主动元件的使用。
在本公开一实施例中,USB多电脑切换器60包含例如:现场可编程逻辑门阵列(FPGA)芯片、特殊应用集成电路(ASIC)或一系统芯片(SOC)。
图12所示为本公开一实施例的USB设备分享的方法。请参阅图12,于步骤101,是于一USB多电脑切换器中建立相对应于一第一主机的一第一虚拟USB集线器,以及相对应于一第二主机的一第二虚拟USB集线器。
于步骤102,检测是否有一USB设备电性连接于该USB多电脑切换器。若否,则重复步骤102。
若于步骤102检测出一USB设备电性连接于该USB多电脑切换器,则于步骤103,由一微处理器枚举该USB设备,并取得USB设备的组态叙述。
其后,于步骤104,基于该USB设备的组态叙述以分析解译出该USB设备的端点数据。
于步骤105,基于该USB设备的端点数据,于该USB多电脑切换器中建立相对应于该第一虚拟USB集线器的一第一虚拟USB设备,以及相对应于该第二虚拟USB集线器的一第一虚拟USB设备。
其后,返回步骤102以检测是否有另一USB设备电性连接于该USB多电脑切换器。若是,则重复步骤103~105。于步骤105,基于该另一USB设备的端点数据,于该USB多电脑切换器中建立相对应于该第一虚拟USB集线器的一第二虚拟USB设备,以及相对应于该第二虚拟USB集线器的一第二虚拟USB设备。
在一实施例中,该端点数据包含一中断传输类别端点数据,其包含一端点的轮询时间的设定值,本分享方法于第一主机接收该USB设备的该端点数据的中断传输期间,于第一主机对该端点发出一中断传输的请求前,主动对该USB设备的该端点发出一中断传输的请求。一旦该USB设备有回复该中断传输端点数据时,即将此数据内容存入相对应的虚拟USB设备的端点存储缓冲输出区内,并在第一主机对该端点发出该中断传输时即将此数据送出。
在另一实施例中,该端点数据包含一中断传输类别端点数据,其包含一端点的轮询时间的设定值,本分享方法于第一主机送出数据予该USB设备的该端点的中断传输期间,于该虚拟USB设备接收到来自第一主机的该端点的中断传输请求时,即先回应ACK。然后立即对该USB设备的该端点发出该中断传输请求。
在另一实施例中,该端点数据包含一同步传输类别端点数据,其包含一端点的轮询时间的设定值,本分享方法于第一主机送出数据予该USB设备的该端点的同步传输期间,使该USB设备的时序输出与第一主机的时序输出相同步。
在另一实施例中,该端点数据包含一同步传输类别端点数据,其包含一端点的轮询时间的设定值,本分享方法于第一主机接收该USB设备的该端点数据同步传输期间,于第一主机对该端点产生一个同步传输的请求前,主动询问USB设备的该端点的同步传输数据,然后在第一主机对该端点产生该同步传输的请求时,将该数据回复于第一主机。
在另一实施例中,本分享方法于第一主机枚举该USB设备的期间,以NAK回复第二主机对该USB设备的枚举命令。
本公开的实施例能够让一个USB设备,如USB键盘、USB鼠标等不同的装置能同时出现在两台主机以上的装置表中,通过虚拟切换的方式,让USB键盘、USB鼠标切换至不同的电脑主机时,无需等待设备枚举的耗时动作,而能立即使用。此外,在电脑装置表中所出现的USB键盘、USB鼠标与实际的USB键盘、USB鼠标设备一致,而无任何差异,因而原厂所提供的驱动程序依然可以运作。
本公开的技术内容及技术特点已公开如上,然而本公开所属技术领域中技术人员应了解,在不背离权利要求所界定的本公开精神和范围内,本公开的教示及公开可作种种的替换及修饰。
此外,本公开的权利范围并不局限于上文公开的特定实施例的系统、装置、方法或步骤。本公开所属技术领域中技术人员应了解,基于本公开教示及公开系统、装置、方法或步骤,无论现在已存在或日后开发者,其与本公开实施例公开者是以实质相同的方式执行实质相同的功能,而达到实质相同的结果,亦可使用于本公开。因此,权利要求是用以涵盖用以此类系统、装置、方法或步骤。
Claims (13)
1.一种USB多电脑切换器,用以耦接于至少一主机及至少一USB设备之间,该USB多电脑切换器包含:
一第一虚拟USB集线器,经建构以与一第一主机通信;
一第一虚拟USB设备,经建构以经由该第一虚拟USB集线器连接至该第一主机,且具有与一第一USB设备相同的端点设定数据;
一微处理器,经建构以产生该第一虚拟USB集线器,并经由一USB主控制器模块以及一USB集线器,因应于该第一USB设备的电性连接,枚举该第一USB设备;以及
一第一多位址USB设备控制器模块,经建构以经由该第一虚拟USB集线器电性连接至该第一主机,并因应于该第一USB设备的枚举,确定该第一USB设备的端点设定数据。
2.如权利要求1所述的USB多电脑切换器,另包含:
一第二虚拟USB设备,经建构以经由该第一虚拟USB集线器连接至该第一主机,且具有与一第二USB设备相同的端点设定数据。
3.如权利要求2所述的USB多电脑切换器,其中:
该微处理器经建构以因应于该第二USB设备的电性连接,枚举该第二USB设备;以及
该第一多位址USB设备控制器模块经建构以因应于该第二USB设备的枚举,确定该第二USB设备的端点设定数据。
4.如权利要求1所述的USB多电脑切换器,另包含:
一第二虚拟USB集线器,经建构以与一第二主机通信,
其中该微处理器经建构以产生该第二虚拟USB集线器。
5.如权利要求4所述的USB多电脑切换器,另包含:
一第一虚拟USB设备,经建构以经由该第二虚拟USB集线器连接至该第二主机,且具有与该第一USB设备相同的端点设定数据。
6.如权利要求5所述的USB多电脑切换器,其中该微处理器经建构以因应于一第二USB设备的电性连接,枚举该第二USB设备,另包含:
一第二多位址USB设备控制器模块,经建构以经由该第二虚拟USB集线器电性连接至该第二主机,并因应于该第二USB设备的枚举,确定 该第二USB设备的端点设定数据。
7.如权利要求6所述的USB多电脑切换器,另包含:
一第二虚拟USB设备,经建构以经由该第二虚拟USB集线器连接至该第二主机,且具有与该第二USB设备相同的端点设定数据。
8.如权利要求1所述的USB多电脑切换器,其中该至少一USB设备包含USB键盘、USB鼠标、USB音频设备以及USB储存盘或其它USB周边设备。
9.如权利要求1所述的USB多电脑切换器,另包含:
一影像信号切换模块,经建构以电性连接至该第一主机,并提供影像信号至一显示装置。
10.如权利要求1所述的USB多电脑切换器,其中该端点设定数据包含一中断传输类别端点设定数据,其包含一端点的轮询时间的设定值,该微处理器经建构以于该端点的中断传输期间,在该第一主机对该端点发出一中断传输的请求前,对该第一USB设备的该端点发出一中断传输的请求。
11.如权利要求1所述的USB多电脑切换器,其中该端点设定数据包含一中断传输类别端点设定数据,其包含一端点的轮询时间的设定值,该微处理器经建构以于该端点的中断传输期间,在该第一虚拟USB设备接收到来自该第一主机对该端点的中断传输请求时,即先回应一肯定应答。
12.如权利要求1所述的USB多电脑切换器,其中该端点设定数据包含一同步传输类别端点设定数据,其包含一端点的轮询时间的设定值,该微处理器经建构以于一同步传输期间,使该第一USB设备的时序输出与该第一主机的时序输出相同步。
13.如权利要求1所述的USB多电脑切换器,其中该端点设定数据包含一同步传输类别端点设定数据,其包含一端点的轮询时间的设定值,该微处理器经建构以于该端点的同步传输期间,于该第一主机对该端点产生一个同步传输的请求前,询问该第一USB设备的该端点的同步传输数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104201487U TWM501592U (zh) | 2015-01-30 | 2015-01-30 | 使用虛擬通用串列匯流排(usb)切換多部主機之usb多電腦切換器 |
TW104201487 | 2015-01-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN204595844U true CN204595844U (zh) | 2015-08-26 |
Family
ID=53723327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201520130440.9U Expired - Fee Related CN204595844U (zh) | 2015-01-30 | 2015-03-06 | Usb多电脑切换器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20160224493A1 (zh) |
CN (1) | CN204595844U (zh) |
TW (1) | TWM501592U (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095123A (zh) * | 2016-06-17 | 2016-11-09 | 山东超越数控电子有限公司 | 一种kvm一体机虚拟多路usb键鼠设备的方法 |
CN112416447A (zh) * | 2020-12-03 | 2021-02-26 | 深圳市国科亿道科技有限公司 | 一个usb端口实现多个复合功能设备的方法及复合设备 |
TWI779848B (zh) * | 2021-09-27 | 2022-10-01 | 宏正自動科技股份有限公司 | 切換裝置及其切換方法 |
CN115988246A (zh) * | 2023-02-22 | 2023-04-18 | 北京小鸟科技股份有限公司 | 多模式usb2.0坐席远传切换系统 |
CN118568015A (zh) * | 2024-07-31 | 2024-08-30 | 苏州元脑智能科技有限公司 | 设备通信方法、系统、装置、设备、存储介质及程序产品 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160371107A1 (en) * | 2015-06-18 | 2016-12-22 | Dell Products, Lp | System and Method to Discover Virtual Machines from a Management Controller |
TWI598736B (zh) * | 2015-12-31 | 2017-09-11 | 鋒厚科技股份有限公司 | 分配模組及其發射端延伸器 |
TWI608356B (zh) | 2016-07-20 | 2017-12-11 | 聯陽半導體股份有限公司 | 週邊介面晶片及其資料傳送方法 |
JP6991812B2 (ja) * | 2017-09-26 | 2022-01-13 | キヤノン株式会社 | 接続された外部装置と通信可能であって省電力状態に移行が可能なコントローラを備える情報処理装置及びその制御方法 |
TWI675317B (zh) * | 2018-07-20 | 2019-10-21 | 緯創資通股份有限公司 | 切換方法以及相關的電子系統 |
CN110597750B (zh) * | 2019-10-29 | 2024-06-21 | 杭州国迈电子科技有限公司 | 一种usb会议装置 |
CN113282527B (zh) * | 2021-05-08 | 2024-08-13 | 珠海金智维信息科技有限公司 | 一种实现usb设备切换管理的方法、装置和主机 |
US11972113B2 (en) * | 2022-07-26 | 2024-04-30 | Silicon Motion, Inc. | Method and apparatus for performing link management of memory device in predetermined communications architecture with aid of handshaking phase transition control |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7035948B1 (en) * | 2001-03-19 | 2006-04-25 | Transdimension, Inc. | System and method for USB controllers |
TWI321731B (en) * | 2006-09-18 | 2010-03-11 | Quanta Comp Inc | Device connection system and device connection method |
WO2012143954A1 (en) * | 2011-04-21 | 2012-10-26 | Ineda Systems Pvt. Ltd | Multi-root peripheral connect interface manager |
US9178314B2 (en) * | 2011-05-31 | 2015-11-03 | Adder Technology Limited | Electronic device security |
IN2013CH05400A (zh) * | 2013-11-22 | 2015-05-29 | Ineda Systems Pvt Ltd |
-
2015
- 2015-01-30 TW TW104201487U patent/TWM501592U/zh not_active IP Right Cessation
- 2015-03-06 CN CN201520130440.9U patent/CN204595844U/zh not_active Expired - Fee Related
-
2016
- 2016-01-29 US US15/010,842 patent/US20160224493A1/en not_active Abandoned
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095123A (zh) * | 2016-06-17 | 2016-11-09 | 山东超越数控电子有限公司 | 一种kvm一体机虚拟多路usb键鼠设备的方法 |
CN112416447A (zh) * | 2020-12-03 | 2021-02-26 | 深圳市国科亿道科技有限公司 | 一个usb端口实现多个复合功能设备的方法及复合设备 |
TWI779848B (zh) * | 2021-09-27 | 2022-10-01 | 宏正自動科技股份有限公司 | 切換裝置及其切換方法 |
CN115988246A (zh) * | 2023-02-22 | 2023-04-18 | 北京小鸟科技股份有限公司 | 多模式usb2.0坐席远传切换系统 |
CN115988246B (zh) * | 2023-02-22 | 2023-05-16 | 北京小鸟科技股份有限公司 | 多模式usb2.0坐席远传切换系统 |
CN118568015A (zh) * | 2024-07-31 | 2024-08-30 | 苏州元脑智能科技有限公司 | 设备通信方法、系统、装置、设备、存储介质及程序产品 |
Also Published As
Publication number | Publication date |
---|---|
US20160224493A1 (en) | 2016-08-04 |
TWM501592U (zh) | 2015-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN204595844U (zh) | Usb多电脑切换器 | |
US8347008B2 (en) | Method and system for hardware based implementation of USB 1.1 over a high speed link | |
WO2016099627A1 (en) | DATA TRANSMISSION USING PCIe PROTOCOL VIA USB PORT | |
US8762544B2 (en) | Selectively communicating data of a peripheral device to plural sending computers | |
CN104813301B (zh) | 用于经由中间传送的usb信令的方法和设备 | |
CN102819512A (zh) | 一种基于spi的全双工通信装置及其方法 | |
CN107908589B (zh) | I3c验证从设备、主从设备的通信验证系统及方法 | |
KR20100101677A (ko) | 통합된 커넥터 아키텍처 | |
CN104571581A (zh) | 一种用于多主机共享显示设备的切换装置及切换方法 | |
CN204117142U (zh) | 提供主机即时切换分享通用串行总线电子设备的电子装置 | |
CN107391419A (zh) | 支持多主机的通用序列汇流排集线设备及车用主机 | |
CN108446088B (zh) | 终端及投屏系统 | |
CN106126465A (zh) | 一种数据传输方法及装置 | |
CN108920193A (zh) | Fpga和cpu间sdio通信接口实现方法、及装置 | |
CN103092676A (zh) | 虚拟机集群的模拟输入输出方法、装置及系统 | |
CN104461978A (zh) | 单向数据传输的方法及装置 | |
CN113765712A (zh) | 服务器管理方法、装置、电子设备及可读存储介质 | |
CN204595794U (zh) | Usb电脑切换器信号延长器及延长器系统 | |
CN104850518A (zh) | 远程登入电脑的方法 | |
CN110098989A (zh) | 一种基于canfd总线的多路can仿真系统及测试方法 | |
CN109800202B (zh) | 一种基于pcie的数据传输系统、方法及装置 | |
CN111290689B (zh) | 电子设备及其主控装置、控制方法、触控共享系统 | |
CN102929828B (zh) | 同时支持标准和非标准i2c接口的数据传输方法及装置 | |
CN110971696B (zh) | 一种实现虚拟电子卡通讯的系统和方法 | |
TWM494348U (zh) | 提供主機即時切換及分享通用串列匯流排(usb)電子設備之電子裝置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150826 Termination date: 20190306 |