Usb多电脑切换器的制造方法
【技术领域】
[0001]本公开涉及通用串行总线的多电脑切换装置,尤其涉及使用虚拟USB切换多部主机的USB多电脑切换器与方法。
【背景技术】
[0002]多电脑切换装置(KVM switch),是指可以利用一组例如包含键盘(keyboard)、屏幕(video)、鼠标(mouse)等控制设备(console device)的电子装置,通过信号切换元件或模块的方式,来连接及控制两台以上的电脑主机。通用串行总线(USB)为一种电脑主机与周边设备之间包含软、硬件的通信协议,目前已经是电脑、智能手机以及智能电视等产品中最主要的标准接口之一。此外,USB周边设备已广泛使用在一般电脑主机中。将通用串行总线(USB)与多电脑切换装置相结合即成为专用于USB周边设备的多电脑切换器(USB KVMswitch)ο
[0003]目前USB KVM产品主要分为三类:切换式USB KVM、模拟式USB KVM与复制型USBKVM,分述于图1A、图1B与图1C中。
[0004]图1A所示为现有技术的切换式USB KVM 10的系统方块图。请参阅图1A,切换式USB KVM 10包含至少一 USB信号切换模块11以及至少一 USB集线器12。当要切换电脑主机PCl?PC4时,控制端USB周边设备Dl、D2的信号会与原来主机端连接的电脑主机断开,并切换至新的电脑主机。此作法最为简单,但每一次USB周边设备连接至新的电脑主机时,新的电脑主机必须再做一次或多次的USB周边设备的枚举程序。这段时间内USB周边设备无法正常运作,所以每次切换后必须要等待一段时间才能再次使用USB周边设备。而当切换速度过快时,可能导致USB信号异常,从而必须重新插拔USB信号电缆线或重启(reboot)电脑才能恢复正常。
[0005]图1B所示为现有技术的模拟式USB KVM 20的系统方块图。请参阅图1B,USB KVM20包含一微处理器21、一 USB主控制器22、一 USB集线器23以及多个USB设备控制器24。此架构可以改善切换式USB KVM类产品的缺点,当切换电脑主机PCl?PC4时,USB设备控制器24与电脑主机PCl?PC4间的连接并不会中断,而只是将控制端的USB周边设备D1、D2的数据转由相对应的USB设备控制器来传送,因此切换时可以达到稳定的效果。但控制端的USB周边设备并不是与电脑主机直接连接,而是经由微处理器21以及USB集线器23,利用一固件(firmware)程序,由微处理器21来模拟成电脑主机并读取控制端的USB周边设备的数据封包,然后经过解译并转换成为新的数据封包,并经由多USB设备控制器24送到电脑主机PCl?PC4上。因此,电脑主机所「看到」的USB键盘、USB鼠标是由USB设备控制器24所模拟而生成的新设备,而并非是控制端的USB键盘D1、USB鼠标D2。此作法可能会有如下缺点:
[0006](I)键盘、鼠标的原厂驱动程序或应用程序无法使用。
[0007](2)受限于USB KVM 20内微处理器21的有限资源,常无法解译最新型的USB键盘及鼠标,而产生USB周边设备无法使用,相容性不够完整的现象。
[0008](3)产品成本比切换式USB KVM 10高。
[0009]图1C所示为现有技术的复制型USB KVM30的系统方块图。USB KVM 30的运作原理与USB KVM 20类似,请参阅图1C,USB KVM 30在控制端依然是以微处理器21、USB主控制器22以及USB集线器23来构成,而在每一电脑PCl?PC2端则包含一 USB集线器36与至少两个USB设备控制器,其中一个USB设备控制器34模拟成USB键盘,另一个USB设备控制器35模拟成USB鼠标。较特别的是,主机端的USB键盘或鼠标是完全复制控制端的USB键盘及鼠标的叙述表格(descriptor),所以能解决切换断开、以及不兼容的问题。不过为了能模拟成任何键盘及鼠标,每一个USB设备控制器34、35必须是相当高规格的产品,而且每一电脑端必须是两个,所以广品成本是最尚的。
[0010]上述的三种类型的USB KVM目前只能处理USB键盘以及USB鼠标等周边设备,而目前流行的触控装置如触控屏幕、绘图板则无法处理。
【发明内容】
[0011]本公开的一实施例公开一种通用串行总线(USB)多电脑切换器,用以耦接于至少一主机及至少一 USB设备之间。该USB多电脑切换器包含一第一虚拟USB集线器,经建构以与一第一主机通信;一第一虚拟USB设备,经建构以经由该第一虚拟USB集线器连接至该第一主机,且具有与一第一 USB设备相同的端点设定数据;一微处理器,经建构以产生该第一虚拟USB集线器,并因应于该第一 USB设备的电性连接,枚举该第一 USB设备;以及一第一多位址USB设备控制器模块,经建构以经由该第一虚拟USB集线器电性连接至该第一主机,并经由一 USB主控制器模块以及一 USB集线器,因应于该第一 USB设备的枚举,确定该第一 USB设备的端点设定数据。
[0012]在本公开的一实施例中,另包含一第二虚拟USB设备,经建构以经由该第一虚拟USB集线器连接至该第一主机,且具有与一第二 USB设备相同的端点设定数据。
[0013]在本公开的一实施例中,该微处理器经建构以因应于该第二 USB设备的电性连接,枚举该第二 USB设备,以及该第一多位址USB设备控制器模块经建构以因应于该第二USB设备的枚举,确定该第二 USB设备的端点设定数据。
[0014]在本公开的一实施例中,另包含一第二虚拟USB集线器,经建构以与一第二主机通信,其中该微处理器经建构以产生该第二虚拟USB集线器。
[0015]在本公开的一实施例中,另包含一第一虚拟USB设备,经建构以经由该第二虚拟USB集线器连接至该第二主机,且具有与该第一 USB设备相同的端点设定数据。
[0016]在本公开的一实施例中,该微处理器经建构以因应于该第二 USB设备的电性连接,枚举该第二 USB设备,USB多电脑切换器另包含一第二多位址USB设备控制器模块,经建构以经由该第二虚拟USB集线器电性连接至该第二主机,并因应于该第二 USB设备的枚举,确定该第二 USB设备的端点设定数据。
[0017]在本公开的一实施例中,另包含一第二虚拟USB设备,经建构以经由该第二虚拟USB集线器连接至该第二主机,且具有与该第二 USB设备相同的端点设定数据。
[0018]在本公开的一实施例中,该至少一 USB设备包含USB键盘、USB鼠标、USB音频设备以及USB储存盘。
[0019]在本公开的一实施例中,另包含一影像信号切换模块,经建构以电性连接至该第一主机,并提供影像信号至一显示装置。
[0020]在本公开的一实施例中,该端点设定数据包含端点的轮询时间的设定值,该微处理器经建构以于一中断传输期间,在该第一主机发出一中断传输的请求前,对该第一 U S B设备发出一中断传输的请求。
[0021]在本公开的一实施例中,该端点设定数据包含端点的轮询时间的设定值,该微处理器经建构以于一中断传输期间,在该第一虚拟USB设备接收到来自该第一主机的中断传输请求时,即先回应一肯定应答(ACK)。
[0022]在本公开的一实施例中,该端点设定数据包含端点的轮询时间的设定值,该微处理器经建构以于一同步传输期间,使该第一 USB设备的时序输出与该第一主机的时序输出相同步。
[0023]在本公开的一实施例中,该端点设定数据包含端点的轮询时间的设定值,该微处理器经建构以于一同步传输期间,于该第一主机产生一个同步传输的请求前,询问该第一USB设备的同步传输数据。
[0024]本公开的又一实施例公开一种USB设备共享方法,该方法包含:建立相对应于一第一主机的一第一虚拟USB集线器,以及相对应于一第二主机的一第二虚拟USB集线器;检测是否有一 USB设备电性连接;因应于一 USB设备的电性连接,枚举该USB设备并取得该USB设备的组态叙述;基于该USB设备的组态叙述,确定该USB设备的端点设定数据;以及基于该USB设备的端点数据,建立相对应于该第一虚拟USB集线器的一第一虚拟USB设备,以及相对应于该第二虚拟USB集线器的一第一虚拟USB设备。
[0025]在本公开的一实施例中,另包含:检测是否有另一 USB设备电性连接;以及因应于该另一 USB设备的电性连接,基于该另一 USB设备的端点数据,建立相对应于该第一虚拟USB集线器的一第二虚拟USB设备,以及相对应于该第二虚拟USB集线器的一第二虚拟USB设备。
[0026]在本公开的一实施例中,该端点设定数据包含端点的轮询时间的设定值,该方法另包含:于一中断传输期间,在该第一主机发出一中断传输的请求前,对该第一 USB设备发出一中断传输的请求。
[0027]在本公开的一实施例中,该端点设定数据包含端点的轮询时间的设定值,该方法另包含:于一中断传输期间,在该第一虚拟USB设备接收到来自该第一主机的中断传输请求时,即先回应一肯定应答(ACK)。
[0028]在本发明的一实施例中,该端点设定数据包含端点的轮询时间的设定值,该方法另包含:于一同步传输期间,使该第一 USB设备的时序输出与该第一主机的时序输出相同步。
[0029]在本公开的一实施例中,该端点设定数据包含端点的轮询时间的设定值,该方法另包含:于一同步传输期间,于该第一主机产生一个同步传输的请求前,询问该第一 USB设备的同步传输数据。
[0030]在本公开的一实施例中,另包含:于该第一主机枚举该USB设备的期间,以一否定应答(NAK)回复该第二主机对该USB设备的枚举命令。
[0031]在本公开的上述实施例中,已完成枚举程序的主机与USB电子设备之间只要该等主机或USB电子设备未拔除,则该等主机与USB电子设备之间的切换皆无需重新枚举。因此,本公开能使多部主机分享多个USB电子设备的资源,且在多主机与多USB电子设备的运用中,能有效率地实现主机与USB电子设备之间的切换。
[0032]本公开利用上述的基本特性,采用特殊的多个多位址USB设备控制器(mult1-addressed USB device controller)的设计,经由虚拟USB的技术方式,来实现将控制端的USB键