CN101739377B - 具有自动切换能力的通用串行总线共享切换器 - Google Patents
具有自动切换能力的通用串行总线共享切换器 Download PDFInfo
- Publication number
- CN101739377B CN101739377B CN2009101380384A CN200910138038A CN101739377B CN 101739377 B CN101739377 B CN 101739377B CN 2009101380384 A CN2009101380384 A CN 2009101380384A CN 200910138038 A CN200910138038 A CN 200910138038A CN 101739377 B CN101739377 B CN 101739377B
- Authority
- CN
- China
- Prior art keywords
- controller
- switch
- computing machine
- computer terminal
- computer
- 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.)
- Active
Links
Images
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/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Multi Processors (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
一种具有自动切换功能的USB共享切换器,及用于其的连接端口监测程序及方法,使得多个计算机可以共享通用串行总线(USB)打印机。共享切换器在计算机及打印机间传输USB数据而无需改变数据格式。在实施例中,该共享切换器包含对应于该多个计算机的多个USB装置控制器,且共享切换器使用多个切换器及USB集线器。因此每一计算机都可以连接到其对应的装置控制器,而目前所连接到打印机的计算机在打印时也可与其对应的控制器通信。目前所连接到打印机的计算机在排存服务完成后可以送出一排存服务完成指令给其对应的控制器。在接收到排存服务完成指令后,该共享切换器将打印机自动切换到下一计算机。
Description
技术领域
本发明有关一种通用串行总线(USB)共享切换器,尤其是有关于拥有自动切换能力的USB共享切换器。
背景技术
共享切换器可以将数台计算机连接以共享一台或多台外围设备,例如打印机、扫描仪、数据存储装置等。多台计算机可以同时利用该共享切换器分享上述的外围设备。通用串行总线(Universal Serial Bus;USB)共享切换器使用USB通信协议来作为计算机及外围设备之间的通信协议。在传统的USB共享切换器上,必须经由手动按共享切换器上的按钮或从计算机发出指令给共享切换器来进行切换动作。USB共享切换器经由USB线来连接计算机与外围装置,经由分享切换器传输USB格式的数据而无须改变其格式。
可共享打印机的另一形式的装置为打印机服务器。典型来说,计算机通过网络,比如,以太网连接到打印机服务器,且打印机服务器经由电线,比如,USB线连接到打印机。引表机服务器处理在网络上从计算机收到的分组数据并且为打印机将其转化为USB数据。
发明内容
本发明提供共享切换器及其操作方法,该共享切换器可以是通用串行总线(Universal Serial Bus;USB)切换器,计算机及外围设备经由USB通信协议进行通信。
本发明公开了一种共享切换器,用以将计算机外围设备与多个计算机连接,包括下列:多个计算机端切换器、集线器装置、多个装置控制器及控制器端切换器。每个切换器耦接到该所对应的计算机。集线器装置包含:连接到计算机端切换器的上数据流连接端点,第一下数据流连接端点,耦接到计算机外围设备,及第二下数据流连接端点。每个装置控制器耦接到对应的计算机端切换器,其中每个计算机端切换器将对应计算机的连接切换到对应的装置控制器或集线器装置的上数据流连接端点。控制器端切换器,耦接到装置控制器及集线器装置的第二下数据流连接端点,使得集线器装置的第二下数据流连接端点可以耦接到装置控制器。
依据本发明的一个方面,提供了连接端口监测程序,应用于计算机外围设备共享系统,计算机外围设备共享系统包括如权利要求1所述的共享切换器、计算机外围设备以及连接到共享切换器的多个计算机,外围设备为打印机,连接端口监测程序安装在每一计算机上,包括下列:第一程序代码及第二程序代码。第一程序代码为当连接端口监测程序从计算机上的排存服务程序收到排存服务指令后,自动传输切换请求给共享切换器。第二程序代码为当检测到打印机已连接之后,使计算机监测该打印机的打印机连接状态及对打印机启动排存服务。
依据本发明的一个方面,提供了一种实施于共享切换器及计算机的方法,应用于计算机外围设备共享系统,计算机外围设备共享系统包括共享切换器、外围设备以及耦接到共享切换器的多个计算机,上述方法包括下列步骤:在共享切换器上的步骤:(a)将目前所选择的计算机连接到外围装置;(b)接收来自计算机的多个切换请求指令;(c)将切换请求指令放入队列;(d)判断目前选定的计算机传输到外围设备的数据传输是否完成;及(e)如果判断目前所选定的计算机的数据传输已完成,从队列撷取第二切换请求指令,并且根据第二切换请求指令将下一台选择到的计算机连接到外围设备。
前述为示例性及解释性的描述,并不用以限定本发明。
附图说明
图1为依据本发明的第一实施例的包含共享切换器的系统框图。
图2依据本发明的第一实施例,举例说明共享切换器的操作。
图3为举例说明连接于图1的共享切换器上的计算机程序的操作程序。
图4为依据本发明的第二实施例的包含共享切换器的系统框图。
图5依据本发明的第二实施例,举例说明共享切换器的操作。
图6为依据本发明的第三实施例的包含共享切换器的系统框图。
图7为举例说明在图1、4及6的共享切换器上的主控制器操作程序。
10、40、60共享切换器 12、42、62计算机端切换器
14、44、64 USB装置控制器 16 USB集线器(USB hub)
18、48控制器端切换器 20计算机
20A、20B USB端口监测程序 30打印机
46、66 USB忙碌(busy)检测线路 49、69共同连接线
具体实施方式
下述将示例本发明的实施例,但是本发明的技术、系统及操作结构可以多样化的形式及模式实施,其中部分可与下述公开的实施例相异。因此,下述特定的结构与功能仅为象征性的并不用以限定本发明。
本发明提供一种具有自动切换能力的通用串行总线(Universal SerialBus;USB)共享切换器,该共享切换器使得多个计算机可以很方便地共享USB打印机。计算机及打印机都经由USB线连接到该共享切换器,该共享切换器可直接以USB的格式传递数据而不需作数据转换。该自动切换功能是由共享切换器上的硬件和固件及计算机上的驱动软件(driver software)所共同完成的。
图1所示的打印机共享系统依据本发明的第一具体实施例,打印机共享系统包含共享切换器10。如图中所示,该共享切换器10耦接(couple)到打印机30及多个计算机20,而图中的实施例中以四部计算机20(PC-1到PC-4)来举例说明。
共享切换器10包括连接到计算机20的多个计算机端切换器(computer-side switch)12及连接到该计算机端切换器12的多个USB装置控制器(USB device controller)14,而图1中的实施例以四个计算机端切换器12(SW-1到SW-4)及四个USB装置控制器14(Contr-1到Contr-4)来举例说明。
共享切换器10中也包含USB集线器(USB hub)16,计算机端切换器12也连接到同一集线器16的上数据流连接端口(upstream port),因此计算机端切换器12就可以将其对应的计算机20的连接切换到该USB集线器16或对应的USB装置控制器14。
共享切换器10中另包含控制器端切换器18(controller-side switch),该控制器端切换器18连接到每个USB装置控制器14的另一端及集线器16的第一下数据流连接端口(downstream port),因此该控制器端切换器18可以将集线器16切换到USB装置控制器14中的任何一台。
打印机30连接到集线器16的第二下数据流连接端口。
USB装置控制器14可以是低速的装置控制器,在某些应用上其可以是通用串行总线人机接口装置(Human Interface Device;HID)等级的装置控制器,因此计算机20可以直接利用其预设HID驱动软件(HID driver)跟USB装置控制器14进行通信。
USB装置控制器14之间是彼此耦接的且利用主从模式(master-slavemodel)来进行彼此的通信,因此这些USB装置控制器中有一个为主(master)装置控制器,其余为从(slave)装置控制器。为了让图1不至于太挤,因此并未画出USB装置控制器14之间的连接线。
一个或多个USB装置控制器14被编程以控制计算机端切换器12及控制器端切换器18的切换操作。原则上USB装置控制器14之一,例如主控制器(master controller),可以控制所有切换器12及18的操作,然而实际上因为控制器的管脚的数目是有限的,因此控制器可以控制的切换器也是有限的,尤其是当使用价格不贵的USB装置控制器芯片时。因此需要主控制器及一个或多个从控制器一起合作来控制切换器12及18。以此着眼,当本说明书或权利要求中提到“装置控制器”控制切换器的切换时,不是代表所有的装置控制器都涉入其中。经由控制排线在控制器14与其控制的切换器12及18之间传递控制信号,为了避免图1过于拥挤,并未画出该控制线。
每一部计算机20都加载USB连接端口监测程序20A。该程序20A与计算机20的排存服务(spooler service)及共享切换器10协力配合完成打印机30的打印数据的排存服务(spooling of print data),此部分将在后续有更详尽的描述。
图2是以特定例子描述共享切换器10的操作。在此例子中,第四台计算机PC-4目前连接到打印机30,而且排存服务(Simultaneous PeripheralOperation On-Line;Spooling)打印数据到打印机30(步骤21),第四台计算机PC-4可视为目前选定的计算机。在此时,对应于第四台计算机PC-4的计算机端切换器SW-4切换到集线器16。经由集线器16及切换器SW-4,可以在第四台计算机PC-4及打印机30之间传递数据。其它的计算机端切换器12(SW-1、SW-2及SW-3)则被分别切换到其所对应的控制器14(Contr-1、Contr-2及Contr-3)。控制器端切换器18在此时则被切换到计算机PC-4所对应的控制器Control-4。因此计算机PC-4经由对应的计算机端切换器12、USB集线器16及控制器端切换器18连接到所对应的控制器14,而切换器10未切换选择到的计算机PC-1、PC-2及PC-3则经由计算机端切换器12连接到所对应的控制器14。因此每一计算机20都能与其对应的控制器14进行通信。
当第四台计算机完成打印数据的排存服务(spooling print data)时,它经由第四计算机端切换器SW-4、USB集线器16及控制器端切换器18发出排存服务完成(spooling finished)命令给对应的控制器Contr-4(步骤S22)。控制器Contr-4将此排存服务完成(spooling finished)指令传送到主控制器(在本实施例中假设此时主控制器为第一控制器Contr-1)。该主控制器内含队列(queue),用于存放从各个计算机20所传递过来的请求切换指令。该主控制器在接收到来自第四台计算机的排存服务完成指令(spooling finishedcommand)后,主控制器从队列(queue)中撷取一第二请求切换指令(步骤S23)。如果队列(queue)是空的,主控制器会等待计算机所传递过来的第二请求切换指令而且将其放入队列。
在这个例子当中,假设在队列中的第二请求切换指令是来自于第一台计算机PC-1(视为下一个选定的计算机)的。主控制器和从控制器14(在主控制器的指令之下)控制切换器的切换功能,将打印机30从目前选定的计算机PC-4切换到下一选定的计算机PC-1。
此时,第四个计算机端切换器SW-4被控制而将第四台计算机PC-4从USB集线器16切换到第四个USB控制器Contr-4(步骤S24)。控制第一计算机端切换器SW-1切换到集线器16(步骤S25),而控制控制器端切换器18切换至第一控制器Contr-1,即对应到下一个选定计算机的控制器。步骤S24到S26的先后顺序并不重要。第二及第三计算机端切换器SW-2及SW-3在此期间并无需执行切换动作,因其切换状态并无改变。
经过上述切换动作后,第二个选定的计算机PC-1经由其对应的计算机端切换器SW-1及USB集线器16连接到打印机30。第二个选定的计算机PC-1也经由其对应的计算机端切换器SW-1、USB集线器16及控制器端切换器18连接到其对应的控制器Contr-1。而此时没有被共享切换器10选定的计算机20(PC-2、PC-3及PC-4)则经由计算机端切换器12(SW-2、SW-3及SW-4)连接到其对应的控制器14(Contr-2、Contr-3及Contr-4)。第二个选定连接到打印机30的计算机PC-1即可进行打印动作(步骤S27)。当计算机PC-1打印完成之后,可以对之后的切换需求重复类似上述动作。
在上述例子中,主控制器是USB装置控制器14的其中之一,在另一实施例中,主控制器也可以是独立的控制器(非四个USB装置控制器14的其中之一),而四个USB装置控制器14为从控制器。此外,四个USB装置控制器14也可以整单芯片(例如用ASIC、FPGA等)的方式完成,该芯片包含上述描述的功能。实际上的实施方式并不重要,只要有四个USB装置控制器对应到四台计算机PC-1至PC-4即可。
图3说明在计算机20上的USB连接端口监测程序20A的执行过程。在Windows打印架构中,USB连接端口监测程序20A是介于排存服务(spooler)及USB驱动程序堆栈(USB Driver Stack)之间的,此两者都由Windows系统所提供。例如,USB连接端口监测程序20A可以取代Windows系统所提供的USB连接端口监测程序(Usbmon.dll)。
如图3所示,当USB连接端口监测程序20A从排存服务接收到一个排存服务请求(spooling request)时(步骤S31),USB连接端口监测程序传送切换请求指令到共享切换器10(步骤S32)。该切换请求是程序自动产生的,无需通知计算机使用者来发出该切换指令,计算机使用者只须发出打印指令即可。就如之前所提到的,共享切换器10内含一队列(queue),用于存放从各个计算机20所传递过来的请求切换指令,且自动执行切换动作,在适当时机执行切换操作将打印机30从一台计算机20切换到另外一台计算机20。因此在传送切换请求后,连接端口监测程序20A监测共享切换器10的连接状态,来确认共享切换器10是否将此台特定计算机连接到打印机30(步骤S33)。例如,连接端口监测程序20A可监测计算机的装置占据状态,其中“占据”状态代表已建立对打印机的联机。当该监测程序20A的监测结果是尚未连接到打印机时(在步骤S34中“否”),监测状态会一直持续下去直到监测到共享切换器10将该计算机20连接到打印机30(在步骤S34中“是”)。
如果判断已经建立连接(在步骤S34中“是”),该连接端口监测程序20A送出“锁住”指令给共享切换器10,然后经由切换器10送回响应确认切换锁住状态(步骤S35)。步骤S35是选择性步骤,因为共享切换器10可以设计成将在切换后自动锁住连接,而仅在收到来自目前选定的计算机的排存服务完成指令后解除锁定。接下来连接端口监测程序20A通知排存服务开始排存服务数据(步骤S36),排存服务的过程是以连续不断的方式实行的(步骤S37)。更具体地说,该连接端口监测程序20A从排存服务接收打印数据,然后经过共享切换器10将其传送给打印机30,并接收打印机状态信息并通过共享切换器10将其传送给排存服务。在完成排存服务打印(spooling print)后,连接端口监测程序20A从排存服务得到通知,然后将排存服务完成指令传送给共享切换器10(步骤S38)。
如同之前所提到的,一旦打印机30被切换到计算机20的其中一台(称为目前选定的计算机),共享切换器10不会切换到其它台计算机,除非从目前所选定的计算机收到排存服务完成指令。在完成步骤S24到S26(图2)的切换动作之后,如果共享切换器10从连接端口监测程序20A收到锁住指令(参照图3中的S35步骤),共享切换器10也会送回锁住确认指令给连接端口监测程序20A。这保证了在一些异常状况发生时(例如:打印机卡纸、缺纸等)可以完成排存服务。
如先前已提到的,计算机20使用预设USB HID等级装置驱动软件与共享切换器10的USB装置控制器14进行通信。因此,除了以上连接端口监测程序20A以外,计算机20并不需要再安装其它特殊的应用程序。
如图4所示,其是依据本发明的共享切换器的第二具体实施例。共享切换器40耦接到打印机30及多个计算机20(此实施例中以四部计算机:PC-1到PC-4来举例说明)。共享切换器40具有耦接到计算机20的多个计算机端切换器42(computer-side switch)(此实施例中以四个切换器:SW-1到SW-4来举例说明)及多个USB装置控制器44(USB device controller)(此实施例中以3个装置控制器:Contr-1到Contr-3来举例说明)。也就是说USB装置控制器44的个数小于计算机端切换器42的个数(该计算机端切换器的个数被记为“N”)。在此实施例中,该三个USB装置控制器44经由对应的三个控制器端切换器(controller-side switch)48(SW-5至SW-7)耦接到四个计算机端切换器42的其中三个,并使该三个USB装置控制器44可被切换至四个计算机端切换器42中的任意三个。具体地说,第一控制器端切换器SW-5可以将第一控制器Contro-1切换连接到第一计算机端切换器SW-1或下一个计算机端切换器SW-2,第二控制器端切换器SW-6可以将第二控制器Contro-2切换连接到第二计算机端切换器SW-2或下一个计算机端切换器SW-3,以此类推。
每一个计算机端切换器42也经由共同连接线49耦接到打印机30,因此计算机端切换器42可使对应的计算机20切换到打印机30或是控制器端切换器48的其中之一。
如同第一实施例一样,USB装置控制器44可以是USB HID等级的装置控制器,计算机20可以直接利用其预设HID驱动软件与USB装置控制器44通信。该多个USB装置控制器44之间利用主从模式(master-slave model)来进行彼此的通信,为了让图4不至于太乱,并未画出该多个USB装置控制器44之间的连接线。这些主、从USB装置控制器44控制计算机端切换器42及控制器端切换器48的切换操作。而且,为了让图4不至于太乱,并未画出这些USB装置控制器44与它们的控制的切换器之间的连接线。
共享切换器40也包含一USB忙碌(USB busy)检测线路46,其经由一条共同连接线49耦接于计算机端切换器42及打印机30之间。该USB忙碌(USB busy)检测线路46检测共同连接线49上的信号以得知该信号线是否处于忙碌状态(数据传输),即,是否计算机20目前正对打印机30传送排存服务数据。该USB忙碌检测线路46根据检测结果,经由一条控制线(未绘于图4中)传送信号到控制器44之一(例如:主USB装置控制器)。
每一台计算机20安装一特殊的USB连接端口监测程序20B,该程序与计算机的排存服务(spooler service)及共享切换器40合作完成对打印机30的排存打印数据(spooling of print data),此部分的细节后续再详述。
图5试举一例说明图4的共享切换器40的操作原理。在此例子中,第四台计算机PC-4目前连接到打印机30,而且对打印机30传送排存打印数据(步骤S51)。在此时,对应于第四台计算机的计算机端切换器SW-4经由共享接线49切换到打印机30。可经由第四计算机端切换器SW-4在第四台计算机PC-4及打印机30之间传递数据。其它三个计算机端切换器42(SW-1、SW-2及SW-3)则被切换到其它三个控制器端切换器48(SW-5、SW-6及SW-7)。该三个控制器端切换器48将未被选择到的计算机(PC-1、PC-2及PC-3)切换为连接到USB装置控制器44。而在此例子中,第一控制器端切换器SW-5将第一控制器Contr-1切换到第一计算机端切换器SW-1,第二控制器端切换器SW-6将第二控制器Contr-2切换到第二计算机端切换器SW-2,第三控制器端切换器SW-7将第三控制器Contr-3切换到第三计算机端切换器SW-3。因此,三个未被选择到的计算机20(PC-1、PC-2及PC-3)连接到三个控制器44(Contr-1、Contr-2及Contr-3),并且可以与对应的控制器44进行指令通信。
当某台计算机正在排存打印数据时,共享切换器40会持续判断是否完成排存服务(步骤S52)。在图4的具体实施例中,目前选定的计算机20(在此例中为PC-4)在对打印机30传送排存服务数据时并未连接到任何USB装置控制器44。因此,目前选定的计算机PC-4无法传递排存服务完成指令给共享切换器40。所以排存服务是否完成的决定是由USB忙碌检测线路46自己执行或其与主控制器44共同执行的。
为了保证排存服务不会被过早打断,共享切换器40实施一种延迟机制,以致必须检测到共同连接线49在一段预定时间内无动作,共享切换器40才能切换到另外一台计算机。在一实施例中,该忙碌检测线路46传送忙碌与否的信号给主控制器44,例如每当共同连接线49从忙碌变成不忙碌或其相反状况时,忙碌检测线路46传送一新的信号给主控制器44。根据此信号,主控制器44使用定时器来监测共同连接线49已处于不忙碌状态多长时间,并决定在不忙碌状态中预定时间之后排存服务已经完成。在另外一种实施例中,USB忙碌检测线路46拥有一定时器,可以决定共同连接线49已处于不忙碌状态多长时间,并在共同连接线49处于不忙碌状态一段预定时间之后,传输一排存服务完成指令给主控制器44。
主控制器44包括队列(queue),用于存放从各个计算机20所传递过来的请求切换指令。在主控制器确认目前选定的计算机已完成排存服务后,主控制器从队列中撷取第二请求切换指令(步骤S53)。如果队列是空的,主控制器会等待从计算机所传递过来的第二请求切换指令而且将其放入队列。在这个例子当中,假设在队列中的第二请求切换指令来自于第一台计算机PC-1(视为下一个要切换的计算机)。主控制器和从控制器44(在主控制器的指令之下)实施适当的控制功能以将打印机30从目前的计算机PC-4切换到下一部计算机PC-1。
在本例中,此时,第四个计算机端切换器SW-4在控制之下将第四台计算机PC-4切换到第三个控制器端切换器SW-7(也就是,第四台计算机PC-4不再连接到打印机30)(步骤S54)。控制第一计算机端切换器SW-1以将第一台计算机PC-1切换到打印机30(步骤S55)。而且,第三控制器端切换器SW-7被控制以切换到第四计算机端切换器SW-4,第二控制器端切换器SW-6被控制以切换到第三计算机端切换器SW-3,并且第一控制器端切换器SW-5被控制以切换到第二计算机端切换器SW-2(步骤S56)。切换步骤S54至S56的次序并非固定的。而第二、第三计算机端切换器SW-2、SW-3无须执行任何动作,因为它们的切换状态并无改变。
经过上述切换操作后,第二个被选定的计算机PC-1经由其对应的计算机端切换器SW-1连接到打印机30,而此时没有被选定的计算机20(PC-2、PC-3及PC-4)则经由对应的计算机端切换器42(SW-2、SW-3及SW-4)及控制器端切换器48连接到控制器44(Contr-2、Contr-3及Contr-4)。第二个选定的计算机PC-1即可进行打印动作(步骤S57)。当计算机PC-1打印完成之后,可以重复类似上述程序以响应第二切换需求指令。
在图4所示的第二实施例中,由装载于计算机20中的USB连接端口监测程序20B执行的程序类似于在图1所示的第一具体实施例中的连接端口监测程序20A与图3所示的程序,其中一些不一样的地方则解释于下。
第一个不同点是在步骤S33,连接端口监测程序20B经由轮询(polling)HID(控制器44)来确认HID连接是否丧失以决定打印机连接状态。如果HID丧失连接则代表打印机的连接已经建立。第二个不同点是连接端口监测程序20B并没有执行步骤S35的操作(送出锁住指令及确认锁住状态)。第三个不同点是连接端口监测程序20B并没有执行步骤S38的操作(送出一排存服务完成指令给USB共享切换器)。原因如前所述,USB共享切换器40是由USB忙碌检测线路46来决定计算机的排存服务是否完成。
如前所述,一旦打印机30切换到特定计算机20(目前选定的),共享切换器40不会将打印机切换到其它计算机,除非USB忙碌检测线路46或主控制器确认排存服务动作已完成。因此一般而言目前选定的计算机的排存服务是不会被中断的,虽然并非百分之百防止中断排存服务。
在图四的共享切换器40中,如果计算机20经由对应的计算机端切换器42连接到打印机,该计算机不会连接到控制器44。控制器44的数目可以比计算机端切换器42的数目少一个,因此节省成本。三个控制器端切换器48可以使得不管哪一台计算机20都可切换到打印机,而其它三个计算机端切换器42可以连接到三个控制器44。
图6显示第二实施例的变型。共享切换器60中包含同样数量的控制器64、计算机端切换器62及计算机20。每一个控制器64直接连接到对应的计算机端切换器62,图4中的控制器端切换器48则是不必要的。在此架构之下,如果控制器64所对应的计算机20连接到打印机30,该控制器64不会有任何动作。在图6中的USB忙碌检测线路66和主控制器44的操作与图4的实施例中的USB忙碌检测线路46和主控制器44的操作相同。
计算机端切换器62的切换操作类似于图四的计算机端切换器42的操作。图4的连接端口监测程序20B也可用在该实施例中。
图7总结在共享切换器10/40/60的主控制器14/44/64的信号通信及切换程序。虽然并未画在图1、4及6中,可在切换器的外壳选择性地提供一个或多个按钮。当主控制器收到切换请求指令时(步骤S71),它会判断该切换请求指令来自于共享切换器的按钮或是来自于计算机20(步骤S72,为一选择性步骤)。如果该切换请求指令是来自按钮,只有当打印机不被其它计算机锁定的情况下,该共享切换器10/40/60才会启始切换动作,否则该切换请求指令将会被忽略且不作处理(步骤S76)。如果该切换请求不是来自于按钮(步骤S72中的“否”),该切换请求命令会被放入队列(步骤S73)。主控制器然后监测是否有计算机20正在打印并确认打印何时完成(步骤S74)。如前所述,这个步骤在图1、图4及图6的实施例中是有差别的。当打印已完成时,主控制器从队列的开头撷取切换请求指令,并启动切换动作将第二个选定的计算机20切换到打印机30(步骤S75)。
使用此处所述的共享切换器,在计算机的软件和共享切换器的硬件/固件彼此配合下,此系统将可以完成全自动的切换和打印。只要将USB连接端口监测程序安装在计算机上,使用者将可以执行打印动作而无须去执行另外的切换步骤。共享切换器的主控制器建立一切换请求指令的队列,以先到先服务的基本原则进行处理。而且在图1的实施例中,共享切换器的固件可以执行切换且锁住功能而无任何延迟。
打印机30可为任何形式的打印机,例如喷墨或激光打印机。
虽然上述实施例中的共享切换器是使用USB协议的,其它协议例如IEEE1394也可用于其与计算机及打印机的接口,只要对计算机和打印机使用同一种协议即可,因此共享切换器无须在计算机及打印机之间作数据格式转换的动作。
虽然在上述实施例中是使用打印机为例子,该共享切换器也可使用其它外围设备如存储设备、扫描机等。
至于上述使用的名词“排存服务(spooling)”或“打印(printing)”,可以用更通用的词“数据传输(data transfer)”来取代。例如“排存服务完成(spooling finished)”指令可以被更广泛地称为“数据传输完成(data transferfinished)”。在使用其它外围设备的情况下,也许需要修正计算机中的驱动程序来与该共享切换器协同运作。
本发明虽以较佳实例描述如上,然其并非用以限定本发明的精神与发明实体仅限于上述实施例。所以,在不脱离本发明的精神与范围内所作的修改均应被包含在所附权利要求内。
Claims (8)
1.一种共享切换器,用以将计算机外围设备与多个计算机连接,包括下列:
多个计算机端切换器,每个计算机端切换器耦接到所对应的计算机;
集线器装置,包含:
连接到所述多个计算机端切换器的上数据流连接端点,
第一下数据流连接端点,耦接到所述计算机外围设备,及
第二下数据流连接端点;
多个装置控制器,每个装置控制器耦接到对应的计算机端切换器,其中每个计算机端切换器将对应计算机的连接切换到对应的装置控制器或集线器装置的上数据流连接端点;及
控制器端切换器,耦接到所述多个装置控制器及所述集线器装置的所述第二下数据流连接端点,使得所述集线器装置的第二下数据流连接端点可以耦接到装置控制器;
所述装置控制器控制所述计算机端切换器及所述控制器端切换器的切换,使得选定的计算机所对应的所述计算机端切换器切换至所述集线器装置,而其它计算机端切换器切换至与它们对应的装置控制器,并且所述控制器端切换器切换至与所述选定计算机对应的装置控制器,因此所述选定的计算机经由所述对应的计算机端切换器及所述集线器装置连接到所述计算机外围设备。
2.如权利要求1所述的共享切换器,其中,所述计算机端切换器在这些计算机及所述集线器装置间传递数据而无须作数据格式的转换。
3.如权利要求1所述的共享切换器,其中所述多个装置控制器之一为主装置控制器,而其它装置控制器为多个从装置控制器,这些从装置控制器被所述主装置控制器所控制。
4.如权利要求3所述的共享切换器,
其中这些从装置控制器从它们对应的计算机接收请求切换指令及数据传输完成指令,然后将这些指令传送给所述主装置控制器,
其中所述主装置控制器内有队列,所述队列存储来自所述对应计算机或来自从装置控制器的多个请求切换指令,及
其中当所述主装置控制器从其对应的计算机或从这些从装置控制器之一接收到数据传输完成指令时,所述主装置控制器从所述队列中撷取第二请求切换指令,并启动这些计算机端切换器及所述控制器端切换器的切换,使得下一个计算机得以连接到外围设备。
5.如权利要求4所述的共享切换器,其中,所述主装置控制器只有在接收到数据完成指令后才会启动这些计算机端切换器及所述控制器端切换器的切换。
6.如权利要求3所述的共享切换器,其中,更包含共同连接线,其耦接到所述外围设备及所述计算机端切换器;及忙碌检测线路,其耦接到所述共同连接线,检测所述共同连接线的忙碌状态,并且产生代表检测结果的信号,并传输代表所述检测结果的信号到所述主装置控制器。
7.一种实施于共享切换器及计算机的方法,应用于计算机外围设备共享系统,所述计算机外围设备共享系统包括共享切换器、外围设备以及耦接到所述共享切换器的多个计算机,所述共享切换器包括多个计算机端切换器、集线器装置、多个装置控制器以及控制器端切换器,其中所述多个计算机端切换器用于使每个计算机端切换器耦接到所对应的计算机,所述集线器装置包含连接到所述多个计算机端切换器的上数据流连接端点、耦接到所述计算机外围设备第一下数据流连接端点以及第二下数据流连接端点,所述多个装置控制器中的每个装置控制器耦接到对应的计算机端切换器,其中每个计算机端切换器将对应计算机的连接切换到对应的装置控制器或集线器装置的上数据流连接端点,所述控制器端切换器耦接到所述多个装置控制器及所述集线器装置的所述第二下数据流连接端点,使得所述集线器装置的第二下数据流连接端点可以耦接到装置控制器,所述方法包括下列步骤:
在所述共享切换器上的步骤:
(a)将目前所选择的计算机连接到所述外围装置;
(b)接收来自这些计算机的多个切换请求指令;
(c)将这些切换请求指令放入队列;
(d)判断目前选定的计算机传输到所述外围设备的数据传输是否完成;及
(e)如果判断目前所选定的计算机的数据传输已完成,从所述队列撷取第二切换请求指令,并且根据所述第二切换请求指令将下一台选择到的计算机连接到所述外围设备。
8.如权利要求7所述的方法,其更包含下列步骤:
在每一计算机上的步骤:
(f)当所述计算机上的程序要求传输数据到所述外围设备或从所述外围设备传入数据时,自动传递切换请求指令给所述共享切换器;
(g)监测所述外围设备的连接状态;及
(h)在确认已经连接上所述外围设备之后,对所述外围设备传入/输出数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/268,974 | 2008-11-11 | ||
US12/268,974 US7886106B2 (en) | 2008-11-11 | 2008-11-11 | USB sharing switch with automatic switching capabilities |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101739377A CN101739377A (zh) | 2010-06-16 |
CN101739377B true CN101739377B (zh) | 2012-05-30 |
Family
ID=42166224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101380384A Active CN101739377B (zh) | 2008-11-11 | 2009-05-04 | 具有自动切换能力的通用串行总线共享切换器 |
Country Status (3)
Country | Link |
---|---|
US (2) | US7886106B2 (zh) |
CN (1) | CN101739377B (zh) |
TW (1) | TWI386805B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7836241B2 (en) * | 2008-11-14 | 2010-11-16 | Genesys Logic, Inc. | Electronic apparatus having switching unit |
US20100312926A1 (en) * | 2009-06-03 | 2010-12-09 | Silicon Storage Technology, Inc. | Switch for a two way connection between a removable card, a mobile wireless communication device, or a computer |
US20110113166A1 (en) * | 2009-11-06 | 2011-05-12 | Cpo Technologies Corporation | Method and Apparatus of USB 3.0 Based Computer, Console and Peripheral Sharing |
US20110161428A1 (en) * | 2009-12-28 | 2011-06-30 | Ezpnp Technologies Corp. | Two-way data and resources sharing method |
US8427680B2 (en) * | 2010-03-03 | 2013-04-23 | Xerox Corporation | Delayed printing from a computerized device |
AU2012253786A1 (en) * | 2011-05-06 | 2014-01-09 | Belkin International Inc. | Keyboard-video-mouse system and method of providing and using the same |
KR101831785B1 (ko) * | 2011-12-30 | 2018-04-05 | 에스프린팅솔루션 주식회사 | 복수의 호스트들과 연결 가능한 화상형성장치 및 화상형성장치에서 화상형성 작업을 제어하는 방법 |
CN102566949B (zh) * | 2012-01-05 | 2015-09-09 | 石家庄科林电气股份有限公司 | 变电站中智能设备打印机的共享打印方法 |
JP2013178743A (ja) * | 2012-01-31 | 2013-09-09 | Ricoh Co Ltd | 機器管理装置、機器管理システム、及びプログラム |
FR2997775B1 (fr) * | 2012-11-06 | 2016-03-25 | Renault Sas | Dispositif et procede d'evaluation de compatibilite d'un systeme electronique avec plusieurs appareils |
KR101827704B1 (ko) * | 2016-04-12 | 2018-03-22 | 현대자동차주식회사 | Usb 멀티 호스트 장치, 그를 포함하는 차량 및 usb 멀티 호스트 장치의 제어방법 |
US10582636B2 (en) * | 2017-08-07 | 2020-03-03 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Server having a dual-mode serial bus port enabling selective access to a baseboard management controller |
TWI685752B (zh) * | 2017-09-20 | 2020-02-21 | 旺玖科技股份有限公司 | 萬用串列匯流排集線器 |
TWI647571B (zh) * | 2017-09-20 | 2019-01-11 | 旺玖科技股份有限公司 | 萬用串列匯流排集線器 |
CN108228509B (zh) * | 2018-01-04 | 2020-06-09 | 中科创达软件股份有限公司 | 一种usb接口切换装置和电子设备 |
US11176071B2 (en) * | 2018-11-09 | 2021-11-16 | Cypress Semiconductor Corporation | USB signal switch circuitry using standard USB hub and method of operation the same |
DE102019126059A1 (de) * | 2019-09-26 | 2021-04-01 | Computer Mack GmbH | USB Automatik Umschalter |
CN115391255B (zh) * | 2022-10-27 | 2023-01-31 | 北京恩威特科技有限公司 | 一种高可用usb设备共享服务器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1105768A (zh) * | 1994-01-17 | 1995-07-26 | 北京联想计算机集团公司 | 打印机内置式多并口共享器 |
GB2352540A (en) * | 1999-04-28 | 2001-01-31 | Adder Tech Ltd | Universal Serial Bus Switching Device |
CN1602473A (zh) * | 2001-11-09 | 2005-03-30 | 阿托恩科技有限公司 | 用于控制台和外围设备的信号切换器 |
CN101004721A (zh) * | 2007-01-23 | 2007-07-25 | 福建升腾资讯有限公司 | 计算机外围设备共享服务器控制方法 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5280585A (en) * | 1990-09-28 | 1994-01-18 | Hewlett-Packard Company | Device sharing system using PCL macros |
ATE166984T1 (de) * | 1992-10-12 | 1998-06-15 | Leunig Gmbh | Einrichtung für die wahlweise datenübertragung und dateiübertragung |
US6308239B1 (en) * | 1996-11-07 | 2001-10-23 | Hitachi, Ltd. | Interface switching apparatus and switching control method |
JP2000076038A (ja) * | 1998-08-28 | 2000-03-14 | Matsushita Electric Ind Co Ltd | Usbハブ回路及びディスプレイ装置 |
US6600739B1 (en) * | 1999-06-07 | 2003-07-29 | Hughes Electronics Corporation | Method and apparatus for switching among a plurality of universal serial bus host devices |
US6546450B1 (en) * | 1999-12-22 | 2003-04-08 | Intel Corporation | Method and apparatus for sharing a universal serial bus device among multiple computers by switching |
TWI295885B (en) | 2002-06-03 | 2008-04-11 | Action Star Entpr Co Ltd | Ubs sharer for use with an usb device |
US20040075638A1 (en) * | 2002-10-17 | 2004-04-22 | Hsu Han | USB based on-line on-screen display and method for switching between microprocessor based electronic devices |
TWI220476B (en) * | 2003-03-18 | 2004-08-21 | Aten Int Co Ltd | Resources sharing device |
US6993620B2 (en) * | 2003-06-13 | 2006-01-31 | Hewlett-Packard Development Company, L.P. | User resource sharing through the USB interface |
US7502878B1 (en) * | 2003-06-27 | 2009-03-10 | Cypress Semiconductor Corporation | Method and apparatus for switching USB devices between multiple USB hosts |
US20050216620A1 (en) * | 2004-03-26 | 2005-09-29 | Francisc Sandulescu | KVM and USB peripheral switch |
US20060123182A1 (en) * | 2004-12-07 | 2006-06-08 | Francisc Sandulescu | Distributed KVM and peripheral switch |
US7523243B2 (en) * | 2006-04-14 | 2009-04-21 | Standard Microsystems Corporation | Multi-host USB device controller |
US7478191B2 (en) * | 2006-04-14 | 2009-01-13 | Standard Microsystems Corporation | Method for automatically switching USB peripherals between USB hosts |
US20070255869A1 (en) * | 2006-04-27 | 2007-11-01 | Microsoft Corporation | Device evaluation using automatic connection path reconfiguration |
TW200825839A (en) * | 2006-12-13 | 2008-06-16 | Tangtop Technology Co Ltd | USB auto switch |
US7769940B2 (en) * | 2008-02-13 | 2010-08-03 | Belkin International, Inc. | Switching device configured to couple a first computer to a first peripheral device and one or more second peripheral devices and method of manufacturing same |
TW200935226A (en) * | 2008-02-15 | 2009-08-16 | Alcor Micro Corp | KVM switch and operation method thereof |
US8135874B2 (en) * | 2008-04-02 | 2012-03-13 | June-On Technology Co., Ltd. | Automatic mapping and updating computer switching device |
US20090257089A1 (en) * | 2008-04-10 | 2009-10-15 | Action Star Enterprise Co., Ltd. | Method and System for Managing Print Jobs for a Shared Printer |
JP5371348B2 (ja) * | 2008-09-19 | 2013-12-18 | 株式会社Pfu | スキャナ共有器 |
US7769941B2 (en) * | 2008-09-23 | 2010-08-03 | Aten International Co., Ltd. | USB matrix switch system |
-
2008
- 2008-11-11 US US12/268,974 patent/US7886106B2/en active Active
-
2009
- 2009-03-10 TW TW098107683A patent/TWI386805B/zh active
- 2009-05-04 CN CN2009101380384A patent/CN101739377B/zh active Active
-
2010
- 2010-12-29 US US12/981,402 patent/US8352668B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1105768A (zh) * | 1994-01-17 | 1995-07-26 | 北京联想计算机集团公司 | 打印机内置式多并口共享器 |
GB2352540A (en) * | 1999-04-28 | 2001-01-31 | Adder Tech Ltd | Universal Serial Bus Switching Device |
CN1602473A (zh) * | 2001-11-09 | 2005-03-30 | 阿托恩科技有限公司 | 用于控制台和外围设备的信号切换器 |
CN101004721A (zh) * | 2007-01-23 | 2007-07-25 | 福建升腾资讯有限公司 | 计算机外围设备共享服务器控制方法 |
Also Published As
Publication number | Publication date |
---|---|
US8352668B2 (en) | 2013-01-08 |
US20110093641A1 (en) | 2011-04-21 |
US20100122010A1 (en) | 2010-05-13 |
CN101739377A (zh) | 2010-06-16 |
US7886106B2 (en) | 2011-02-08 |
TW201019117A (en) | 2010-05-16 |
TWI386805B (zh) | 2013-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101739377B (zh) | 具有自动切换能力的通用串行总线共享切换器 | |
RU2464626C2 (ru) | Электронное устройство и способ управления им | |
US6549966B1 (en) | Data routing device and system | |
EP2936329B1 (en) | Systems and methods for exchanging usb information with selected remote devices | |
WO2005043399A2 (en) | Providing both wireline and wireless connections to a wireline interface | |
CN101246333B (zh) | 通信控制装置和图像形成装置 | |
EP1940106B1 (en) | Infrared communication apparatus and infrared communication method | |
EP2663016B1 (en) | Communication apparatus operable in auto-negotiation mode, method of controlling the communication apparatus, and storage medium | |
CN101252463A (zh) | 用于配置业务参数的方法和系统 | |
JP5495743B2 (ja) | ネットワーク機器及びその制御方法、並びにプログラム | |
CN104104817A (zh) | 图像形成系统以及图像形成系统通信控制方法 | |
AU2001267838B9 (en) | Image forming device | |
CN103092539A (zh) | 外围设备的状况监视方法、计算机以及网络系统 | |
JP2001184296A (ja) | Usb通信インターフェース、コンピュータ、ハブ、電子機器、電子機器における機能切換方法 | |
CN104731071B (zh) | 集中控制系统中主机冗余热备份方法 | |
JP2003308286A (ja) | 複合デバイスシステム | |
TWI396089B (zh) | 以參數提供多通道傳輸串列資料之裝置及其方法 | |
CN110336380A (zh) | 一种分布式智能配电终端系统的参数推送方法 | |
JP3269406B2 (ja) | 周辺機器切り替え方式 | |
JPH08115284A (ja) | Crt切替え方法 | |
JPS6364120A (ja) | 端末装置のプリンタ制御方式 | |
CN102281528B (zh) | 移动终端的升级系统、方法及装置 | |
JP3957203B2 (ja) | 周辺機器管理装置 | |
JP2002111927A (ja) | ファクシミリ装置 | |
JP2642489B2 (ja) | マルチポート切換え制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |